/* ================================
   CRT MONITOR EFFECT (NON-CONFLICTING VERSION)
   ================================ */

/* CRT overlay container */
#crt {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9999;
}

/* SCANLINES */
#crt::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      rgba(255,255,255,0.03) 50%,
      rgba(0,0,0,0.12) 50%
    );
  background-size: 100% 4px;
  opacity: 0.35;
}

/* NOISE */
#crt::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("pixel.apng");
  background-size: 2px 2px;
  opacity: 0.08;
  animation: crtNoise 0.2s infinite;
}

/* SUBTLE RGB SPLIT - applied to body but doesn't conflict */
body {
  filter: contrast(1.05) brightness(0.95);
  text-shadow:
    0.5px 0 rgba(255,0,0,0.15),
   -0.5px 0 rgba(0,255,255,0.15);
}

/* FLICKER */
@keyframes crtNoise {
  0%   { transform: translate(0,0); }
  25%  { transform: translate(-1px,1px); }
  50%  { transform: translate(1px,-1px); }
  75%  { transform: translate(-1px,-1px); }
  100% { transform: translate(0,0); }
}

/* FIREFOX TWEAK */
@-moz-document url-prefix() {
  #crt::before {
    opacity: 0.2;
  }
}
