/* ============================================================
   Scroll Reveal & Reduced Motion
   ============================================================ */

.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--md-motion-duration-long) var(--md-motion-easing-decelerate),
              transform var(--md-motion-duration-long) var(--md-motion-easing-decelerate);
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Staggered entrance for children */
.stagger-item {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--md-motion-duration-long) var(--md-motion-easing-decelerate),
              transform var(--md-motion-duration-long) var(--md-motion-easing-decelerate);
  transition-delay: calc(var(--index, 0) * 60ms);
}

.stagger-item.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── Reduced Motion ────────────────────────────────────────── */

@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;
  }

  .reveal,
  .stagger-item {
    opacity: 1;
    transform: none;
  }
}
