/* Scroll-reveal (Tier 1) — fade + slight upward translate on entry.
   main.js adds .is-visible via IntersectionObserver, once per element.
   Section-specific stagger (chat/bullets/steps) lives in their own files
   and hooks off the same .is-visible class. */

[data-reveal] {
  opacity: 0;
  transform: translateY(var(--reveal-distance));
  transition: opacity var(--reveal-duration) var(--reveal-ease),
    transform var(--reveal-duration) var(--reveal-ease);
}

[data-reveal].is-visible {
  opacity: 1;
  transform: none;
}

/* Reduced motion: show content immediately, don't wait on JS/observer. */
@media (prefers-reduced-motion: reduce) {
  [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
