/* A quiet visual rhythm, with an equally complete motion-free experience. */
:root{--reveal-ease:cubic-bezier(.22,1,.36,1);--reading-progress:0}
.header{transition:box-shadow .45s ease,background .45s ease}
.header.is-scrolled{box-shadow:0 8px 30px #071c2910;background:rgba(255,255,255,.97)}
.header::after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:linear-gradient(90deg,var(--blue),var(--gold));transform:scaleX(var(--reading-progress));transform-origin:left;pointer-events:none}
.hero-photo{transform:scale(1.025);object-position:50% 50%}
.hero-controls{display:flex;align-items:center;gap:32px}
.motion-toggle{display:none;align-items:center;gap:10px;padding:8px 0;color:#c8d0d2;font-size:9px;letter-spacing:.09em;line-height:1.5;min-height:34px}
.motion-toggle:disabled{opacity:.65;cursor:default}
.motion-toggle:hover:not(:disabled){color:var(--gold)}
.motion-icon{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:1px solid #ffffff55;border-radius:50%;position:relative}
.motion-icon::after{content:"";width:5px;height:6px;border-left:1px solid currentColor;border-right:1px solid currentColor}
.motion-toggle[aria-pressed="false"] .motion-icon::after{width:0;height:0;border:0;border-top:3px solid transparent;border-bottom:3px solid transparent;border-left:4px solid currentColor;margin-left:2px}
html[data-motion-ready] .motion-toggle{display:flex}
.button{position:relative;overflow:hidden;isolation:isolate}
.button::before{content:"";position:absolute;inset:0;background:#ffffff18;transform:translateX(-102%);transition:transform .5s var(--reveal-ease);z-index:-1}
.button:hover::before{transform:translateX(0)}
.button>span:last-child,.nav-contact>span:last-child,.text-link>span:last-child{transition:transform .35s var(--reveal-ease)}
.button:hover>span:last-child:not(:first-child),.nav-contact:hover>span:last-child,.text-link:hover>span:last-child{transform:translate(3px,-3px)}
.service-card{transition:background .35s,box-shadow .35s,opacity .75s var(--reveal-ease),transform .75s var(--reveal-ease);transition-delay:0s,0s,var(--reveal-delay,0ms),var(--reveal-delay,0ms)}
.service-icon{transition:stroke .35s,transform .6s var(--reveal-ease)}
.service-card:hover .service-icon{stroke:var(--blue);transform:translateY(-3px)}
.service-card:hover{box-shadow:inset 0 3px var(--blue),0 10px 40px #10252c07}
.focus-photo img{transition:transform 1.2s var(--reveal-ease)}
.focus-photo:hover img{transform:scale(1.035)}
.insight-image img{transition:transform 1.2s var(--reveal-ease),filter .6s ease}
.insight-card:hover img{filter:saturate(.95) brightness(.95);transform:scale(1.045)}
.process-step::after{content:"";height:1px;position:absolute;left:0;top:-1px;width:100%;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform 1s var(--reveal-ease) .2s}
.process-step.motion-seen::after{transform:scaleX(1)}
.contact-circle{position:relative;transition:color .4s,transform .6s var(--reveal-ease),border-color .4s}
.contact-action:hover .contact-circle{transform:rotate(45deg);border-color:var(--gold);color:#fff}
.global-route .route-line::after{content:"";height:1px;position:absolute;left:0;right:0;top:50%;background:linear-gradient(90deg,transparent,#ccb68b99,transparent);z-index:-1;transform:scaleX(1)}
.motion-enabled [data-motion]{transition:opacity .85s var(--reveal-ease) var(--reveal-delay,0ms),transform .85s var(--reveal-ease) var(--reveal-delay,0ms)}
.motion-enabled .motion-wait{opacity:0;transform:translate3d(0,24px,0)}
.motion-enabled .motion-seen{opacity:1;transform:none}
.motion-enabled .motion-instant{transition-duration:0s!important;transition-delay:0s!important}
.motion-enabled .hero-photo{animation:hero-camera 22s cubic-bezier(.2,.6,.4,1) both}
.motion-enabled .hero-content>*{animation:hero-intro 1.15s var(--reveal-ease) both}
.motion-enabled .hero-eyebrow{animation-delay:.08s}
.motion-enabled .hero-kicker{animation-delay:.16s}
.motion-enabled .hero h1{animation-delay:.24s}
.motion-enabled .hero-copy{animation-delay:.37s}
.motion-enabled .hero-buttons{animation-delay:.48s}
.motion-enabled .hero-bottom{animation:hero-intro 1.2s var(--reveal-ease) .65s both}
.motion-enabled .gold-line{transform-origin:left;animation:line-intro 1.6s var(--reveal-ease) .3s both}
.motion-enabled .scroll-icon{animation:scroll-cue 2.2s ease-in-out 1.3s 2}
.motion-enabled dialog[open]{animation:dialog-intro .32s var(--reveal-ease) both}
.motion-enabled dialog[open]::backdrop{animation:backdrop-intro .32s ease both}
@keyframes hero-camera{from{transform:scale(1.105)}to{transform:scale(1.025)}}
@keyframes hero-intro{from{opacity:0;transform:translate3d(0,24px,0)}to{opacity:1;transform:translateZ(0)}}
@keyframes line-intro{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes scroll-cue{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@keyframes dialog-intro{from{opacity:0;transform:translateY(14px) scale(.99)}to{opacity:1;transform:none}}
@keyframes backdrop-intro{from{opacity:0}to{opacity:1}}
@media(min-width:721px){.hero{height:auto;min-height:max(740px,calc(100svh - var(--header-h)));max-height:none}.hero h1{font-size:clamp(46px,4.45vw,70px);font-weight:400;line-height:1.4;letter-spacing:-.06em}.hero-content{padding-top:clamp(85px,10.5vh,130px);padding-bottom:130px}.hero-eyebrow{letter-spacing:.24em}.intro-statement{font-size:25px}.hero-copy{line-height:2}.section{padding-top:114px;padding-bottom:114px}}
@media(max-width:720px){.hero-controls{gap:18px}.motion-toggle{font-size:8px;gap:6px}.hero-caption{max-width:150px;font-size:7px;line-height:1.7}.hero-bottom{align-items:center}.motion-icon{width:16px;height:16px}.scroll-link{gap:8px}.scroll-link>span:first-child{display:none}.motion-enabled .motion-wait{transform:translate3d(0,15px,0)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-photo{transform:none}[data-motion],.motion-wait,.motion-seen{opacity:1!important;transform:none!important}*,*::before,*::after{animation:none!important;transition:none!important}}
html:not(.motion-enabled) .hero-photo{transform:scale(1.025)}
html[data-motion-ready]:not(.motion-enabled){scroll-behavior:auto}
html[data-motion-ready]:not(.motion-enabled) *,html[data-motion-ready]:not(.motion-enabled) *::before,html[data-motion-ready]:not(.motion-enabled) *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media print{.motion-toggle{display:none!important}[data-motion]{opacity:1!important;transform:none!important;animation:none!important}.hero-photo{animation:none!important;transform:none!important}}
