/* ── Fade-up animation ── */

/* Initial state: invisible + shifted down */
[data-anim] {
  opacity: 0;
  transform: translateY(40px);
  transition:
    opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
    transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: opacity, transform;
}

/* Visible state */
[data-anim].is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── Stagger delays ── */
[data-anim-delay="1"] { transition-delay: 0.1s; }
[data-anim-delay="2"] { transition-delay: 0.2s; }
[data-anim-delay="3"] { transition-delay: 0.3s; }
[data-anim-delay="4"] { transition-delay: 0.4s; }
[data-anim-delay="5"] { transition-delay: 0.5s; }
[data-anim-delay="6"] { transition-delay: 0.6s; }

/* ── Images: slightly more travel distance ── */
img[data-anim] {
  transform: translateY(50px);
}
img[data-anim].is-visible {
  transform: translateY(0);
}

/* ── Respect reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  [data-anim] {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
