/* ============================================================
   Pre-animation states.
   Every rule here is scoped under .js so a no-JS visitor always
   sees final, settled content — these classes only ever hide
   something that motion.js is guaranteed to reveal.
   ============================================================ */

.js [data-fade] {
  opacity: 0;
  transform: translateY(var(--dist-sm));
}

.js .mask-line__inner {
  transform: translateY(110%);
}

.js [data-reveal-clip] {
  clip-path: inset(0 0 100% 0);
}

.js [data-rule-draw] {
  transform: scaleX(0);
  transform-origin: left;
}

@media (prefers-reduced-motion: reduce) {
  .js [data-fade],
  .js .mask-line__inner,
  .js [data-reveal-clip],
  .js [data-rule-draw] {
    opacity: 1;
    transform: none;
    clip-path: none;
  }
}
