.crt {
  pointer-events: none;
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  overflow: hidden;
}

.crt::before,
.crt::after {
  content: "";
  position: absolute;
  inset: 0;
}

.crt::before {
  background: repeating-linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0) 0px,
    rgba(255, 255, 255, 0) 2px,
    rgba(255, 255, 255, 0.05) 3px,
    rgba(255, 255, 255, 0) 4px
  );
  mix-blend-mode: screen;
  animation: crt-scan 0.2s linear infinite;
}

@keyframes crt-scan {
  from { background-position-y: 0; }
  to   { background-position-y: 4px; }
}

.crt::after {
  background:
    radial-gradient(
      ellipse at center,
      rgba(0, 0, 0, 0) 68%,
      rgba(0, 0, 0, 0.25) 100%
    );
  mix-blend-mode: multiply;
}

.crt__grille {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    to right,
    rgba(255, 0, 0, 0.03) 0px,
    rgba(0, 255, 0, 0.02) 1px,
    rgba(0, 0, 255, 0.03) 2px,
    rgba(0, 0, 0, 0) 3px
  );
  mix-blend-mode: overlay;
  opacity: 0.6;
}

.crt__glow {
  position: absolute;
  inset: -10%;
  background: radial-gradient(
    ellipse at center,
    rgba(140, 200, 170, 0.06) 0%,
    rgba(0, 0, 0, 0) 60%
  );
  animation: crt-flicker 6s infinite;
}

@keyframes crt-flicker {
  0%, 100% { opacity: 0.55; }
  92% { opacity: 0.55; }
  93% { opacity: 0.7; }
  94% { opacity: 0.5; }
  96% { opacity: 0.65; }
}

