/* Motion layer — transform/opacity only, reduced-motion safe. */

.reveal{opacity:0;translate:0 38px;transition:opacity var(--dur) var(--ease),translate var(--dur) var(--ease)}
.reveal.in{opacity:1;translate:0 0}
.reveal[data-delay="1"]{transition-delay:.09s}
.reveal[data-delay="2"]{transition-delay:.18s}
.reveal[data-delay="3"]{transition-delay:.27s}
.reveal[data-delay="4"]{transition-delay:.36s}
.reveal[data-delay="5"]{transition-delay:.45s}
.reveal--left{translate:-46px 0}
.reveal--right{translate:46px 0}
.reveal--scale{translate:0 0;scale:.94}
.reveal--scale.in{scale:1}
.is-rtl .reveal--left{translate:46px 0}
.is-rtl .reveal--right{translate:-46px 0}
/* these come after .reveal.in and share its specificity, so the settled state
   has to be restated for RTL or the element stays nudged sideways */
.is-rtl .reveal--left.in,.is-rtl .reveal--right.in{translate:0 0}
.reveal--left.in,.reveal--right.in{translate:0 0}

/* hero word-by-word entrance */
.hero h1 .w{display:inline-block;opacity:0;translate:0 90%;animation:wordUp .95s var(--ease) forwards}
.hero h1 .w:nth-child(1){animation-delay:.10s}
.hero h1 .w:nth-child(2){animation-delay:.19s}
.hero h1 .w:nth-child(3){animation-delay:.28s}
.hero h1 .w:nth-child(4){animation-delay:.37s}
.hero h1 .w:nth-child(5){animation-delay:.46s}
.hero h1 .w:nth-child(6){animation-delay:.55s}
.hero h1 .w:nth-child(n+7){animation-delay:.62s}
@keyframes wordUp{to{opacity:1;translate:0 0}}
.hero__lead,.hero__cta{opacity:0;animation:fadeUp .9s var(--ease) .7s forwards}
.hero__cta{animation-delay:.85s}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

/* slow ken-burns on the hero poster/video */
.hero__media video,.hero__media>img{animation:kenburns 26s ease-in-out infinite alternate}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.07)}}

/* marquee strip */
.marquee{overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee__track{display:flex;gap:3rem;width:max-content;animation:mq 34s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.is-rtl .marquee__track{animation-direction:reverse}
@keyframes mq{to{transform:translateX(-50%)}}
.marquee__item{display:inline-flex;align-items:center;gap:.7rem;font-size:var(--step-1);font-weight:700;color:rgba(255,255,255,.34);white-space:nowrap}
.marquee__item span.dot{width:7px;height:7px;border-radius:50%;background:var(--c-gold);flex:none}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;translate:none;scale:none}
  .hero h1 .w,.hero__lead,.hero__cta{opacity:1;translate:none;animation:none}
}
