/* Animation helpers — GSAP drives the motion (assets/js/animations.js) */
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.w>span{display:inline-block;will-change:transform}
[data-reveal="clip"]{will-change:clip-path}

.js-ready [data-count]{font-variant-numeric:tabular-nums}
.gallery__item{transition:opacity .5s var(--ease),transform .6s var(--ease)}
.gallery__item.is-leaving{opacity:0;transform:scale(.94)}
.gallery__item.is-entering{animation:galIn .7s var(--ease) both}
@keyframes galIn{from{opacity:0;transform:scale(.94) translateY(20px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .marquee__track{animation:none}
  .hero__img{animation:none;transform:none}
  .loader{display:none}
}
.js-ready .eyebrow::before{transform:scaleX(0);transform-origin:left;transition:transform 1.3s var(--ease) .15s}
.js-ready .eyebrow.in::before{transform:scaleX(1)}
