/* Motion language drawn from the reference: image expansion, editorial text entrances,
   stepped panels and blue hover washes. All motion is progressive and opt-out aware. */
.hero{background-image:none;background-color:#0b2258;isolation:isolate}
.hero-media{position:absolute;inset:-3% 0 0;background-size:cover;background-position:center;z-index:0;transform:translate3d(0,var(--hero-parallax,0px),0) scale(1.08);will-change:transform,clip-path}
.hero-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(4,16,40,.52) 0%,rgba(9,29,73,.18) 30%,rgba(10,32,82,.78) 72%,#0b2258 100%);pointer-events:none}
.hero:after{z-index:1}
.hero-topline,.hero-content,.hero-edge{z-index:2}
.hero-title-line{display:block}
.hero h1{overflow:hidden}
.motion-on .hero-media{animation:heroImageOpen 1.55s cubic-bezier(.16,1,.3,1) both}
.motion-on .hero-title-line{animation:titleRise 1.02s cubic-bezier(.16,1,.3,1) both}
.motion-on .hero-title-line:nth-child(1){animation-delay:.22s}
.motion-on .hero-title-line:nth-child(2){animation-delay:.42s}
.motion-on .hero-content>.eyebrow,.motion-on .hero-topline,.motion-on .hero-bottom,.motion-on .hero-edge{animation:softRise .9s cubic-bezier(.16,1,.3,1) both}
.motion-on .hero-content>.eyebrow{animation-delay:.13s}
.motion-on .hero-topline{animation-delay:.05s}
.motion-on .hero-bottom{animation-delay:.78s}
.motion-on .hero-edge{animation-delay:.8s}
.motion-on .site-header{animation:headerEnter .8s ease-out both}
.round-link{position:relative;overflow:hidden}
.round-link:after{content:"";position:absolute;inset:0;border:1px solid currentColor;border-radius:50%;animation:cuePulse 2.8s ease-out infinite;pointer-events:none}

.cinematic-interlude{height:180vh;background:#0b2258;color:#fff;position:relative}
.interlude-sticky{position:sticky;top:0;width:100%;height:100vh;height:100svh;overflow:hidden}
.interlude-frame{position:absolute;inset:0;overflow:hidden;border-radius:var(--interlude-radius,18px);transform:scale(var(--interlude-scale,1));transform-origin:center;will-change:transform,border-radius;box-shadow:0 32px 100px rgba(0,0,0,.22)}
.interlude-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 65%,rgba(4,18,49,.36));pointer-events:none}
.interlude-frame img{width:100%;height:100%;object-fit:cover;transform:scale(var(--interlude-image-scale,1));will-change:transform}
.interlude-caption{position:absolute;z-index:2;left:clamp(24px,5vw,88px);right:clamp(24px,5vw,88px);bottom:36px;display:flex;justify-content:space-between;gap:20px;opacity:var(--caption-opacity,1);font-size:10px;font-weight:700;letter-spacing:.18em;text-shadow:0 2px 12px #081a43}

.intro{background:#0b2258;color:#fff}
.intro .eyebrow{color:#bdd1ff}
.intro-top{border-bottom-color:#ffffff47}
.intro-top p,.statement-side p{color:#d4def3}
.intro .text-link:hover{color:#d5ae80}
.statement h2{font-size:clamp(55px,6.8vw,105px)}
.statement-thumb{display:inline-block;vertical-align:middle;width:clamp(72px,11vw,170px);height:clamp(48px,7vw,98px);margin:0 6px 12px;border-radius:4px;overflow:hidden;transform:rotate(-4deg)}
.statement-thumb img{width:100%;height:100%;object-fit:cover}

.motion-on .motion-reveal{opacity:0;transform:translate3d(0,58px,0);clip-path:inset(0 0 18% 0);transition:opacity .8s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms),transform .9s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms),clip-path .9s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms);will-change:opacity,transform,clip-path}
.motion-on .motion-reveal.is-visible{opacity:1;transform:translate3d(0,0,0);clip-path:inset(0 0 0 0)}
.service-row{position:relative;isolation:isolate;overflow:hidden;transition:padding .4s cubic-bezier(.16,1,.3,1),color .35s}
.service-row:before{content:"";position:absolute;z-index:-1;inset:0;background:#2459dc;transform:translateX(-101%);transition:transform .55s cubic-bezier(.16,1,.3,1)}
.service-row:hover:before,.service-row:focus-visible:before{transform:translateX(0)}
.service-row:hover,.service-row:focus-visible{padding-left:24px;outline:none}
.service-row .service-arrow{transition:transform .35s ease,color .35s}
.service-row:hover .service-arrow,.service-row:focus-visible .service-arrow{transform:translate(7px,-7px);color:#fff}
.service-row h3{transition:letter-spacing .35s ease}
.service-row:hover h3,.service-row:focus-visible h3{letter-spacing:-.04em}

.steps{align-items:start}
.steps>div{min-height:310px;padding:28px;background:#12337f;color:#fff;border:1px solid #d9e2f4;box-shadow:0 22px 40px #0b225814}
.steps>div:nth-child(2){margin-top:45px;background:#1b47aa}
.steps>div:nth-child(3){margin-top:90px;background:#2459dc}
.steps span{color:#c8d6f5}
.steps p{color:#e0e8f8}
.photo-break img,.photo-quote img{transform:translate3d(0,var(--photo-shift,0px),0) scale(1.13);will-change:transform}
.photo-break:after,.photo-quote:after{transition:background .4s}
.contact-band{position:relative;isolation:isolate;overflow:hidden}
.contact-band:before{content:"";position:absolute;z-index:-1;width:70vw;height:70vw;right:-20vw;top:-25vw;border-radius:50%;background:radial-gradient(circle,#2459dc66,transparent 67%);animation:ambientGlow 8s ease-in-out infinite alternate}
.page-hero{isolation:isolate}
.motion-on .page-hero .eyebrow,.motion-on .page-hero h1,.motion-on .page-hero p,.motion-on .page-hero .round-link{animation:softRise 1s cubic-bezier(.16,1,.3,1) both}
.motion-on .page-hero .eyebrow{animation-delay:.12s}
.motion-on .page-hero h1{animation-delay:.24s}
.motion-on .page-hero p{animation-delay:.47s}
.motion-on .page-hero .round-link{animation-delay:.65s}
.menu-panel .menu-item,.menu-panel .menu-aside{opacity:0;transform:translateX(34px);transition:opacity .55s ease,transform .65s cubic-bezier(.16,1,.3,1),padding .2s,color .2s}
.menu-panel.open .menu-item,.menu-panel.open .menu-aside{opacity:1;transform:translateX(0)}
.menu-panel.open .menu-item:nth-child(1){transition-delay:.08s}
.menu-panel.open .menu-item:nth-child(2){transition-delay:.14s}
.menu-panel.open .menu-item:nth-child(3){transition-delay:.20s}
.menu-panel.open .menu-item:nth-child(4){transition-delay:.26s}
.menu-panel.open .menu-item:nth-child(5){transition-delay:.32s}
.menu-panel.open .menu-aside{transition-delay:.38s}
@keyframes heroImageOpen{from{opacity:0;clip-path:inset(24% 26% 24% 26%);filter:brightness(.4)}to{opacity:1;clip-path:inset(0 0 0 0);filter:brightness(1)}}
@keyframes titleRise{from{opacity:0;clip-path:inset(100% 0 0 0);transform:translateY(46px)}to{opacity:1;clip-path:inset(0 0 0 0);transform:translateY(0)}}
@keyframes softRise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}
@keyframes headerEnter{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
@keyframes cuePulse{0%{opacity:.65;transform:scale(.86)}70%,100%{opacity:0;transform:scale(1.5)}}
@keyframes ambientGlow{from{transform:translate(-7%,0) scale(.9);opacity:.65}to{transform:translate(5%,4%) scale(1.1);opacity:1}}
@media(max-width:720px){.cinematic-interlude{height:145vh}.interlude-caption{font-size:8px}.interlude-frame img{object-position:55% center}.statement-thumb{width:76px;height:48px;margin-bottom:5px}.steps>div:nth-child(2),.steps>div:nth-child(3){margin-top:0}.steps>div{min-height:220px}.hero-media{background-position:58% center}.service-row:hover,.service-row:focus-visible{padding-left:8px}}
@media(prefers-reduced-motion:reduce){.hero-media,.interlude-frame,.interlude-frame img,.photo-break img,.photo-quote img{transform:none!important;clip-path:none!important;filter:none!important}.cinematic-interlude{height:75vh}.interlude-sticky{height:75vh}.motion-reveal{opacity:1!important;clip-path:none!important;transform:none!important}.hero-title-line,.hero-content>* ,.page-hero *,.site-header,.round-link:after,.contact-band:before{animation:none!important}.menu-panel .menu-item,.menu-panel .menu-aside{transition:none;opacity:1;transform:none}}
