/* Three short entrance beats: hero, subtitle, then the page. */
@keyframes intro-fade{from{opacity:0}to{opacity:1}}
@keyframes intro-rise{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
.intro-on .hero-v2 h1,.intro-on .hero-visual>img{animation:intro-fade .65s ease-out both}
.intro-on .hero-intro{animation:intro-rise .55s .65s ease-out both}
.intro-on .hero-copy>.eyebrow,.intro-on .hero-copy>.cta,.intro-on .hero-origin,.intro-on .hero-image-label,.intro-on .hero-float,.intro-on .hero-visual>figcaption,.intro-on .home-v2>.hero-stage~:not(script),.intro-on .home-v2>.nav{animation:intro-fade .5s 1.2s ease-out both}
.intro-on body:focus-within *{animation-delay:0s!important;animation-duration:0s!important}
@media(prefers-reduced-motion:reduce){.intro-on *{animation:none!important}}
/* Focus settles as the camera moves gently into the container. */
.hero-v2 .hero-visual>img{transform:scale(1.055);transform-origin:62% 48%}
.intro-on .hero-v2 .hero-visual>img{animation:hero-focus 1.8s cubic-bezier(.2,.65,.3,1) both}
@keyframes hero-focus{from{opacity:0;filter:blur(12px);transform:scale(1)}to{opacity:1;filter:blur(0);transform:scale(1.055)}}
@media(prefers-reduced-motion:reduce){.hero-v2 .hero-visual>img{transform:none;filter:none;animation:none!important}}
