/* Parallax hero (Blue Forest style curtain reveal): the top hero (.ch-hero) pins (position:sticky) and the rest of
   the page slides up over it; compositor-scrolled, no scroll script. Content bands (.ch-pillars, .ch-cta) keep a
   fixed background on desktop pointers; touch screens get a JS translate instead. Reduced motion: normal scrolling. */
[data-parallax-hero]{position:relative;overflow:hidden;isolation:isolate}
.ch-hero[data-parallax-hero]{position:sticky;top:0;z-index:0;will-change:transform}
:where(main > .ch-hero[data-parallax-hero] ~ *){position:relative;z-index:1;background-color:var(--bg)}
:where(main > .ch-hero[data-parallax-hero] ~ .ch-anchor){background:none}
.ch-hero-bg{position:absolute;inset:0;z-index:-2;background-position:center;background-size:cover;background-repeat:no-repeat}
@media (hover:hover) and (pointer:fine){:not(.ch-hero) > .ch-hero-bg{background-attachment:fixed}}
@media (hover:none),(pointer:coarse){:not(.ch-hero) > .ch-hero-bg{inset:-14% 0;will-change:transform}}
.ch-hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,22,13,.55) 0%,rgba(8,22,13,.25) 40%,rgba(8,22,13,.62) 100%)}
@media (prefers-reduced-motion:reduce){.ch-hero[data-parallax-hero]{position:relative}.ch-hero-bg{background-attachment:scroll!important;inset:0!important;transform:none!important}}
