/* Cinematic motion, with a fully static reduced-motion alternative. */
.hero{--hero-scroll:0px}
.hero-photo{animation:ocean-drift 20s cubic-bezier(.2,.5,.5,1) infinite alternate;transform-origin:68% 58%;will-change:transform}
@keyframes ocean-drift{from{transform:translateY(var(--hero-scroll)) scale(1.025)}to{transform:translateY(var(--hero-scroll)) scale(1.115)}}
.hero-copy .eyebrow{animation:hero-enter 1s .12s both}.hero-title{animation:hero-enter 1.25s .25s both}.hero-body{animation:hero-enter 1.15s .5s both}.hero-actions{animation:hero-enter 1.1s .7s both}.hero-note{animation:hero-enter 1.1s .9s both}
@keyframes hero-enter{from{opacity:0;filter:blur(7px);transform:translateY(34px);clip-path:inset(0 0 100% 0)}to{opacity:1;filter:blur(0);transform:translateY(0);clip-path:inset(-20% -10% -20% -10%)}}
.hero-visual::before{content:'';position:absolute;inset:-20%;z-index:2;pointer-events:none;background:linear-gradient(110deg,transparent 43%,#fff7d00d 49%,#fff7d019 50%,transparent 56%);animation:light-passage 13s ease-in-out infinite}
@keyframes light-passage{0%,12%{transform:translateX(-45%);opacity:0}30%{opacity:1}65%,100%{transform:translateX(45%);opacity:0}}
.route-overlay{animation:hero-enter 1.3s 1s both}.route-dot{animation:route-beacon 2.8s ease-out infinite}.map-route::before{animation:route-beacon 2.8s ease-out infinite}.map-route::after{animation:route-beacon 2.8s 1.4s ease-out infinite}
@keyframes route-beacon{0%{box-shadow:0 0 0 0 #a0e3d56b}85%,100%{box-shadow:0 0 0 18px #a0e3d500}}
.route-line{overflow:hidden}.route-line::before{height:2px;background:linear-gradient(90deg,#73c7b7 0%,#d5fff3 35%,#73c7b733 65%);background-size:200% 100%;animation:route-flow 3s linear infinite}
@keyframes route-flow{to{background-position:-200% 0}}
.reading-progress{position:fixed;top:0;inset-inline:0;height:3px;z-index:100;background:linear-gradient(90deg,#087f78,#a7e6ce);transform-origin:left;pointer-events:none;transform:scaleX(0)}
.motion-ready .scroll-scene{opacity:0;transform:translateY(44px);transition:opacity .85s var(--ease) var(--scene-delay,0ms),transform 1s var(--ease) var(--scene-delay,0ms)}
.motion-ready .scroll-scene.scene-visible{opacity:1;transform:translateY(0)}
.motion-ready .case-image-wrap,.motion-ready .about-visual{clip-path:inset(0 12% 0 0);transition:clip-path 1.3s var(--ease),opacity 1s,transform 1.2s var(--ease)}
.motion-ready .case-image-wrap.scene-visible,.motion-ready .about-visual.scene-visible{clip-path:inset(0)}
.case-image,.about-photo{transition:transform 1.2s var(--ease)}.case-image-wrap:hover .case-image,.about-visual:hover .about-photo{transform:scale(1.045)}
.button .icon{transition:transform .3s}.button:hover .icon{transform:translateX(5px)}[dir=rtl] .button:hover .icon{transform:translateX(-5px)}
@media(max-width:800px){.hero-photo{animation-duration:24s}.motion-ready .scroll-scene{transform:translateY(25px)}.motion-ready .scroll-scene.scene-visible{transform:none}.hero-visual::before{display:none}}
@media(prefers-reduced-motion:reduce){.hero-photo,.hero-copy>*,.hero-visual::before,.route-overlay,.route-dot,.map-route::before,.map-route::after,.route-line::before{animation:none!important}.hero-photo{transform:none!important;will-change:auto}.motion-ready .scroll-scene{opacity:1;transform:none;clip-path:none}.reading-progress{display:none}}
