/* The hero film.

   Vocabulary, in the order you feel it: sessionStorage intro, SVG stroke draw,
   radial mask reveal, split-text reveal lit by a gradient exposure wipe,
   layered depth planes with pointer parallax and lerp, camera breathing,
   independent ambient clocks, then a scroll-scrubbed pinned scene running
   MotionPath orbit and a held tangency, ending in a shared-element hand-off.

   The film sits BEHIND the headline, so a line passes behind the letters and
   never in front of them. */
.hero-film{display:none}
@media screen and (min-width:1100px) and (prefers-reduced-motion:no-preference){
  .hero-film-active .hero-film{display:block;position:absolute;inset:0;width:100%;height:100%;
    z-index:2;pointer-events:none;overflow:hidden}
  .hero-film-active .hero > img.geo,
  .hero-film-active .group-hero-loop{display:none!important;visibility:hidden!important}
  .hero-film *{vector-effect:non-scaling-stroke}
  .hero-film .ring,.hero-film .trace,.hero-film .axis,.hero-film .horizon,.hero-film .tangent{
    fill:none;stroke:#CBA55C;stroke-width:1.45;stroke-linecap:round}
  .hero-film .ring--b{stroke:#E3C88F}
  .hero-film .dot{fill:#E3C88F;stroke:none}

  /* depth planes. The wall, its own second exposure, then the geometry. */
  .hero-film-active .hero__bg{transform:translate3d(var(--hero-x,0px),var(--hero-y,0px),0) scale(var(--cam,1))}

  .hero-film-active .group-hero-stage .hero{position:sticky;top:0}
}
@media(prefers-reduced-motion:reduce),print{.hero-film{display:none!important}}
