[data-reveal] {
  opacity: 0;
  transition: opacity var(--t-slow) var(--ease-out), transform var(--t-slow) var(--ease-out);
  transition-delay: calc(var(--i, 0) * 70ms);
}
[data-reveal="up"] { transform: translateY(24px); }
[data-reveal="left"] { transform: translateX(-24px); }
[data-reveal="right"] { transform: translateX(24px); }
[data-reveal="scale-line"] { transform: scaleX(0); transform-origin: left; }

[data-reveal].is-in {
  opacity: 1;
  transform: translate(0,0) scaleX(1);
}

[data-reveal="mask"] { opacity: 1; overflow: hidden; }
[data-reveal="mask"] .mask-inner {
  display: inline-block;
  transform: translateY(110%);
  transition: transform var(--t-slow) var(--ease-out);
  transition-delay: calc(var(--i, 0) * 70ms);
}
[data-reveal="mask"].is-in .mask-inner { transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .hero-mesh, .hero-illustration, .scroll-cue::after { animation: none !important; }
  [data-reveal], [data-reveal="mask"] .mask-inner {
    opacity: 1 !important;
    transform: none !important;
  }
  .hero .hero-mesh, .hero .hero-grid, .hero .hero-rule, .hero .lead, .hero .hero-cta, .hero .hero-trust, .hero .scroll-cue, .hero-rotator {
    opacity: 1 !important;
    transform: none !important;
  }
  .hero h1 .word__inner { transform: none !important; }
}

.no-js .hero-mesh, .no-js .hero-grid, .no-js .hero-rule,
.no-js .hero .lead, .no-js .hero-cta, .no-js .hero-trust,
.no-js .hero-rotator, .no-js h1 .word__inner {
  opacity: 1 !important;
  transform: none !important;
}
