/* Shared homepage hero typography; independent entrance and scroll-layer reveal. */
html.service-scroll-active{scroll-behavior:auto}
.service-hero.hero--cinematic{padding:0;min-height:100svh;background:var(--navy);--hero-exit:0;--hero-lift:0px}
.service-hero.hero--cinematic .hero-grid{display:flex;flex-direction:column;justify-content:flex-end;min-height:100svh;padding:144px max(40px,calc((100vw - 1390px)/2 + 22px)) max(64px,8svh);isolation:isolate}
.service-hero.hero--cinematic .hero-copy{position:relative;inset:auto;width:100%;max-width:none;padding:0;transform:translateY(var(--hero-lift));opacity:calc(1 - var(--hero-exit));}
.service-hero.hero--cinematic .hero-headline{white-space:normal}
.service-hero .service-title-reveal{overflow:hidden}
.service-title-break{display:none}
.service-hero.hero--cinematic .hero-tagline{white-space:normal;max-width:38em}
.service-hero.hero--cinematic .hero-media{position:absolute;inset:0;min-height:0;border-radius:0;z-index:-2}
.service-hero.hero--cinematic .hero-media img{width:100%;height:100%;object-fit:cover;object-position:70% 36%;transform:none;animation:none}
.service-page--shadow .service-hero.hero--cinematic .hero-media img{object-position:34% 38%}
.service-hero.hero--cinematic .hero-media::after{background:linear-gradient(0deg,rgba(14,43,76,.88),rgba(14,43,76,.22) 43%,transparent 75%)}
.service-exit-veil{position:absolute;inset:0;pointer-events:none}
.service-exit-veil{z-index:1;opacity:0;background:var(--navy)}
.service-page--shadow .service-exit-veil{opacity:calc(var(--hero-exit)*.35)}
.service-hero :focus-visible{outline-color:white}
.service-film :focus-visible{outline-color:white}
.service-scroll-scene.is-layered{height:calc(var(--stage-height)*3.2);position:relative;background:var(--navy)}
.is-layered .service-scroll-stage{position:sticky;top:0;height:var(--stage-height);isolation:isolate;overflow:hidden;background:var(--navy)}
.is-layered .service-hero.hero--cinematic{position:absolute;inset:0;z-index:2;height:var(--stage-height);min-height:0;clip-path:inset(0 0 calc(var(--reveal,0)*100%) 0)}
.is-layered .service-hero.hero--cinematic .hero-grid{height:100%;min-height:0}
.service-page--shadow .is-layered .service-hero{clip-path:none}
.is-layered .service-film{position:absolute;inset:0;z-index:1;height:100%}
.is-layered .film-frame{height:100%;display:flex;align-items:center;justify-content:center}
.is-layered .film-frame video{width:100%;height:100%;object-fit:cover;aspect-ratio:auto;object-position:50% 50%}
.service-film video{pointer-events:none}
.is-layered .film-controls{opacity:var(--film-controls,0)}
.service-film .film-story{position:relative;display:grid;gap:48px;padding:64px 24px;background:var(--navy);text-align:center;pointer-events:none}
.service-film .film-story .film-statement{font-size:clamp(38px,4.5vw,68px);font-weight:500;line-height:1.45;letter-spacing:.02em;color:white;margin:0;max-width:none;background:none;text-shadow:0 2px 12px rgba(14,43,76,.45)}
.film-break{display:none}
.is-layered .film-story{position:absolute;inset:0;padding:96px 24px;place-items:center;background:rgba(14,43,76,var(--film-shade,0))}
.is-layered .film-story .film-statement{position:absolute;left:24px;right:24px;top:50%;opacity:var(--statement-opacity,0);transform:translateY(calc(-50% + var(--statement-y,0px)));}
.service-film .film-controls{justify-content:flex-end}
@media(max-width:767px){
 .film-break{display:block}.film-comma{display:none}
 .service-film .film-story .film-statement{font-size:clamp(30px,9.7vw,46px)}
}
@media(min-width:768px) and (orientation:portrait){
 .service-page--magic .is-layered .film-frame video{object-position:58% 50%}
 .service-page--shadow .is-layered .film-frame video{object-position:40% 50%}
}
.is-layered .service-film[inert]{pointer-events:none}
.service-film .film-overlay,.service-film .film-controls{z-index:2}
html.service-hero-pending .service-hero .hero-copy>h1,
html.service-hero-pending .service-hero .service-title-reveal,
html.service-hero-pending .service-hero .hero-tagline,
html.service-hero-pending .service-hero .button-row{opacity:0}
@media(max-width:980px){
 .service-hero.hero--cinematic .hero-grid{padding:128px 20px max(38px,6svh)}
 .service-hero.hero--cinematic .hero-copy{align-items:center;text-align:center}
 .service-page--magic .service-hero.hero--cinematic .hero-media img{object-position:54% 30%}
 .service-page--shadow .service-hero.hero--cinematic .hero-media img{object-position:32% 34%}
 .service-hero.hero--cinematic .hero-headline{max-width:100%}
 .service-hero.hero--cinematic .hero-tagline{max-width:31em}
 .service-hero.hero--cinematic .hero-copy h1{font-size:clamp(24px,5.8vw,30px)}
}
@media(max-width:767px){
 .service-title-break{display:block}
 .service-title-comma{display:none}
 .service-page--magic .service-hero.hero--cinematic .hero-media img{object-position:52% 30%}
 .service-page--shadow .service-hero.hero--cinematic .hero-media img{object-position:35% 30%}
 .service-hero.hero--cinematic .hero-tagline{max-width:22em;margin-top:12px}
}
@media(max-height:600px){
 .service-hero.hero--cinematic .hero-grid{padding-top:116px;padding-bottom:24px}
 .service-hero.hero--cinematic .hero-copy{bottom:auto}
}
@media(prefers-reduced-motion:reduce){
 .service-exit-veil{display:none!important}
 .service-hero.hero--cinematic .hero-copy{opacity:1;transform:none}
 html.service-hero-pending .service-hero .hero-copy>h1,
 html.service-hero-pending .service-hero .service-title-reveal,
 html.service-hero-pending .service-hero .hero-tagline,
 html.service-hero-pending .service-hero .button-row{opacity:1}
 .service-page--magic .service-film{clip-path:none}
 .service-page--shadow .service-film::before{display:none}
}
