/* v2.2.1: Scroll-triggered animations */

/* ── Base animation state (hidden before entering viewport) ── */

[data-animate] {
  opacity: 0;
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Fade up (default) */
[data-animate="fade-up"] {
  transform: translateY(32px);
}

/* Fade in (no movement) */
[data-animate="fade-in"] {
  transform: none;
}

/* Slide from left */
[data-animate="slide-left"] {
  transform: translateX(-40px);
}

/* Slide from right */
[data-animate="slide-right"] {
  transform: translateX(40px);
}

/* Scale up */
[data-animate="scale-up"] {
  transform: scale(0.92);
}

/* ── Animated state (visible after entering viewport) ── */

[data-animate].animated {
  opacity: 1;
  transform: translateY(0) translateX(0) scale(1);
}

/* ── Stagger delays for child items ── */

[data-animate-stagger] > [data-animate]:nth-child(1) { transition-delay: 0s; }
[data-animate-stagger] > [data-animate]:nth-child(2) { transition-delay: 0.08s; }
[data-animate-stagger] > [data-animate]:nth-child(3) { transition-delay: 0.16s; }
[data-animate-stagger] > [data-animate]:nth-child(4) { transition-delay: 0.24s; }
[data-animate-stagger] > [data-animate]:nth-child(5) { transition-delay: 0.32s; }
[data-animate-stagger] > [data-animate]:nth-child(6) { transition-delay: 0.40s; }
[data-animate-stagger] > [data-animate]:nth-child(7) { transition-delay: 0.48s; }
[data-animate-stagger] > [data-animate]:nth-child(8) { transition-delay: 0.56s; }
[data-animate-stagger] > [data-animate]:nth-child(9) { transition-delay: 0.64s; }
[data-animate-stagger] > [data-animate]:nth-child(10) { transition-delay: 0.72s; }
[data-animate-stagger] > [data-animate]:nth-child(11) { transition-delay: 0.80s; }
[data-animate-stagger] > [data-animate]:nth-child(12) { transition-delay: 0.88s; }

/* ── Respect reduced motion preference ── */

@media (prefers-reduced-motion: reduce) {
  [data-animate] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
