body {
  background: #111 !important;
}

.noise {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 9999;
  
  /* High-contrast, dense static SVG */
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.5' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  
  /* Blends the static into the background color like a real CRT screen */
  mix-blend-mode: overlay; 
  opacity: 0.9;
  
  /* step-end forces it to snap instantly between positions, no gliding */
  animation: static-snap 0.2s infinite step-end;
}

@keyframes static-snap {
  0%   { background-position: 0px 0px; }
  10%  { background-position: -50px 50px; }
  20%  { background-position: -100px -50px; }
  30%  { background-position: 50px -100px; }
  40%  { background-position: -50px 100px; }
  50%  { background-position: -100px 50px; }
  60%  { background-position: 150px 0px; }
  70%  { background-position: 0px 100px; }
  80%  { background-position: -150px 0px; }
  90%  { background-position: 100px 50px; }
  100% { background-position: 50px 0px; }
}