/* ════════════════════════════════════════════════════════════
   AI BIZ NERDS · Shared premium atmosphere layer
   Pair with fx.js (injects the layer divs + wires interactions)
   ════════════════════════════════════════════════════════════ */

::selection { background: var(--crimson); color: var(--cream); }
a:focus-visible, button:focus-visible {
  outline: 2px solid var(--crimson); outline-offset: 3px;
}

/* Film grain */
.fx-noise {
  position: fixed; inset: 0; z-index: 80; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.05'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Ambient corner glows */
.fx-ambient {
  position: fixed; z-index: -1; pointer-events: none;
  width: 60vw; height: 60vw; border-radius: 50%;
  filter: blur(60px);
}
.fx-ambient.a1 {
  top: -30vw; right: -20vw;
  background: radial-gradient(circle, rgba(212,22,60,0.07) 0%, transparent 65%);
}
.fx-ambient.a2 {
  bottom: -35vw; left: -22vw;
  background: radial-gradient(circle, rgba(212,22,60,0.05) 0%, transparent 65%);
}

/* Cursor spotlight over the grid paper */
.fx-spot {
  position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(620px circle at var(--mx, -999px) var(--my, -999px),
    rgba(245,241,234,0.045), transparent 65%);
}

/* Scroll progress bar */
.fx-progress {
  position: fixed; top: 0; left: 0; height: 2px; width: 100%;
  z-index: 90; pointer-events: none;
  background: var(--crimson);
  transform: scaleX(0); transform-origin: 0 50%;
}
