body::before{
  content:'';
  position:fixed;
  top:0; left:0;
  width:100%; height:100%;
  background:radial-gradient(ellipse at center, transparent 0%, transparent 50%, rgba(0,0,0,0.3) 100%);
  pointer-events:none;
  z-index:1000;
}

body::after{
  content:'';
  position:fixed;
  top:0; left:0;
  width:100%; height:100%;
  background:repeating-linear-gradient(
    0deg,
    rgba(0,0,0,0.04) 0px,
    rgba(0,0,0,0.04) 1px,
    transparent 2px,
    transparent 3px
  );
  pointer-events:none;
  z-index:1001;
  opacity:0.4;
}

@keyframes crt-flicker{
  0%{ opacity:0.97; }
  5%{ opacity:0.95; }
  10%{ opacity:0.98; }
  15%{ opacity:0.96; }
  20%{ opacity:0.98; }
  50%{ opacity:0.97; }
  80%{ opacity:0.96; }
  100%{ opacity:0.98; }
}

canvas{
  animation:crt-flicker 0.15s infinite;
}
