/* ==========================================================================
   Evidence Scan - the RADAR (experimental, scan-beam copy).
   A fixed full-viewport layer behind the hero -> problem -> question arc:
   the hidden CVE print (two lagged microtext sheets) plus the radar-scope
   furniture (range rings, crosshair, ticks), all silver-locked foil - the
   cursor never excites them, ONLY the sweep lights them. The WRAPPER
   carries a conic phosphor-wedge mask: a sharp bright leading edge with a
   long decaying tail (the CRT afterglow), rotating about the radar centre.
   beam.js owns the rotation (slow idle spin, scroll accelerates) and the
   find choreography (blip ping -> FIRE list pill, styles in firelist.css).
   The foil canvases are never resized/hidden individually (wrapper-level
   masking only). Remove the layer div + beam.* + firelist.* to kill the
   experiment.
   ========================================================================== */

/* the radar's dark ground: a fixed slate-950 plate UNDER the sweep layer;
   beam.js fades it in for the "If it's in your scan" stretch, so the
   phosphor sweep runs over true dark - the classic radar scope */
.snb-ground{position:fixed;inset:0;z-index:0;pointer-events:none;background:var(--slate-950);opacity:0;}

.snb-light{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  opacity:var(--beam-o,0);
  /* the phosphor wedge: bright leading edge at the rotation angle, an
     ~110deg afterglow tail trailing behind it (the sweep runs clockwise) */
  -webkit-mask-image:conic-gradient(from calc(var(--radar-a,0deg)) at var(--radar-cx,82%) var(--radar-cy,42%),
    transparent 0deg,transparent 248deg,
    rgba(0,0,0,0.06) 292deg,rgba(0,0,0,0.18) 324deg,
    rgba(0,0,0,0.45) 348deg,rgba(0,0,0,0.85) 357deg,#000 360deg);
  mask-image:conic-gradient(from calc(var(--radar-a,0deg)) at var(--radar-cx,82%) var(--radar-cy,42%),
    transparent 0deg,transparent 248deg,
    rgba(0,0,0,0.06) 292deg,rgba(0,0,0,0.18) 324deg,
    rgba(0,0,0,0.45) 348deg,rgba(0,0,0,0.85) 357deg,#000 360deg);
}
/* the page's sections stack above the fixed layer */
.scan > section{position:relative;z-index:1;}

/* the print sheets: whisper alpha (the Surface globe's register - the
   texture is quiet, the foil under it full strength) */
.snb-light .hl,
.snb-light .hl.hl-gl{position:absolute;inset:0;width:100%;height:100%;}
.snb-micro1,.snb-micro1.hl-gl{opacity:0.38;-webkit-mask:url('../../assets/guilloche/cve-micro-1.svg') left top/640px auto repeat;mask:url('../../assets/guilloche/cve-micro-1.svg') left top/640px auto repeat;}
.snb-micro2,.snb-micro2.hl-gl{opacity:0.22;-webkit-mask:url('../../assets/guilloche/cve-micro-2.svg') left top/640px auto repeat;mask:url('../../assets/guilloche/cve-micro-2.svg') left top/640px auto repeat;}
/* the FIRE sheet: the same grid as sheet 1, but its mask holds ONLY the
   FIRE occurrences + their flame glyphs (cve-fire-1.svg). Not locked, not
   silver-at-rest: it burns in colour - and because it lives under the
   same wedge as the cold print, the sweep lights it and the phosphor
   decay puts it out. Capped at 0.5: a find stays a background event. */
.snb-fire,.snb-fire.hl-gl{opacity:0.5;-webkit-mask:url('../../assets/guilloche/cve-fire-1.svg') left top/640px auto repeat;mask:url('../../assets/guilloche/cve-fire-1.svg') left top/640px auto repeat;}

/* the hero's first contact: "dollars" rests as plain ink (foil face
   suppressed, the criteria-numbers recipe), and its foil canvas wears THE
   SAME rotating phosphor wedge as the radar field, recentred into the
   word's own box (beam.js feeds --find-cx/--find-cy each frame; --radar-a
   lives on the root). The sweep lights the word letter by letter as it
   passes, the afterglow puts it out - the word is simply the perimeter's
   first find, re-found on every revolution. */
.sn-hero__find{background:none;box-shadow:none;color:inherit;}
.sn-hero__find .warr-hl-canvas{
  -webkit-mask-image:conic-gradient(from var(--radar-a,0deg) at var(--find-cx,50%) var(--find-cy,50%),
    transparent 0deg,transparent 248deg,
    rgba(0,0,0,0.06) 292deg,rgba(0,0,0,0.18) 324deg,
    rgba(0,0,0,0.45) 348deg,rgba(0,0,0,0.85) 357deg,#000 360deg);
  mask-image:conic-gradient(from var(--radar-a,0deg) at var(--find-cx,50%) var(--find-cy,50%),
    transparent 0deg,transparent 248deg,
    rgba(0,0,0,0.06) 292deg,rgba(0,0,0,0.18) 324deg,
    rgba(0,0,0,0.45) 348deg,rgba(0,0,0,0.85) 357deg,#000 360deg);
}
@media(prefers-reduced-motion:reduce){.sn-hero__find .warr-hl-canvas{-webkit-mask-image:none;mask-image:none;opacity:0.5;}}

@media(prefers-reduced-motion:reduce){.snb-light{display:none;}}
