/* ══════════════════════════════════════════════
   ANIMATIONS — delete this file + its <link> to revert
   ══════════════════════════════════════════════ */

/* ── Base hidden state for reveal elements ── */
[data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity 0.7s cubic-bezier(0.34, 1.4, 0.64, 1),
    transform 0.7s cubic-bezier(0.34, 1.4, 0.64, 1);
}

[data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── Stagger children (cards, rows) ── */
[data-reveal-stagger] > * {
  opacity: 0;
  transform: translateY(22px);
  transition:
    opacity 0.6s cubic-bezier(0.34, 1.4, 0.64, 1),
    transform 0.6s cubic-bezier(0.34, 1.4, 0.64, 1);
}

[data-reveal-stagger].is-visible > * {
  opacity: 1;
  transform: translateY(0);
}

/* delays get set inline by JS, but define a max of 8 */
[data-reveal-stagger].is-visible > *:nth-child(1) { transition-delay: 0ms }
[data-reveal-stagger].is-visible > *:nth-child(2) { transition-delay: 70ms }
[data-reveal-stagger].is-visible > *:nth-child(3) { transition-delay: 140ms }
[data-reveal-stagger].is-visible > *:nth-child(4) { transition-delay: 210ms }
[data-reveal-stagger].is-visible > *:nth-child(5) { transition-delay: 280ms }
[data-reveal-stagger].is-visible > *:nth-child(6) { transition-delay: 350ms }
[data-reveal-stagger].is-visible > *:nth-child(7) { transition-delay: 420ms }
[data-reveal-stagger].is-visible > *:nth-child(8) { transition-delay: 490ms }

/* ── Hero-specific: content fades up on load (no scroll needed) ── */
.hero-content > * {
  opacity: 0;
  transform: translateY(20px);
  animation: heroIn 0.8s cubic-bezier(0.34, 1.4, 0.64, 1) forwards;
}
.hero-content > *:nth-child(1) { animation-delay: 0.15s }
.hero-content > *:nth-child(2) { animation-delay: 0.3s }
.hero-content > *:nth-child(3) { animation-delay: 0.45s }

@keyframes heroIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ── Statement section: slide from left ── */
[data-reveal="left"] {
  opacity: 0;
  transform: translateX(-28px);
}
[data-reveal="left"].is-visible {
  opacity: 1;
  transform: translateX(0);
}

/* ── Statement meta: slide from right ── */
[data-reveal="right"] {
  opacity: 0;
  transform: translateX(28px);
}
[data-reveal="right"].is-visible {
  opacity: 1;
  transform: translateX(0);
}

/* ── Respect prefers-reduced-motion ── */
@media (prefers-reduced-motion: reduce) {
  [data-reveal],
  [data-reveal-stagger] > *,
  .hero-content > * {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }
}
