/* =========================================================================
   ENTRANCE ANIMATIONS — driven by IntersectionObserver in animations.js
   ========================================================================= */

/* Base state: hidden */
[data-animate] {
  opacity: 0;
  transition:
    opacity  0.6s var(--ease-out),
    transform 0.6s var(--ease-out);
}

[data-animate="slide-up"]    { transform: translateY(32px); }
[data-animate="slide-left"]  { transform: translateX(-48px); }
[data-animate="slide-right"] { transform: translateX(48px); }
[data-animate="fade"]        { transform: none; }
[data-animate="scale-up"]    { transform: scale(0.95); }

/* Visible state */
[data-animate].is-visible {
  opacity: 1;
  transform: none !important;
}

/* Staggered delays */
[data-delay="0"]   { transition-delay: 0ms; }
[data-delay="100"] { transition-delay: 100ms; }
[data-delay="200"] { transition-delay: 200ms; }
[data-delay="300"] { transition-delay: 300ms; }
[data-delay="400"] { transition-delay: 400ms; }
[data-delay="500"] { transition-delay: 500ms; }

/* Word-by-word headline (CTA section) */
.animate-words span {
  display: inline-block;
  margin-right: 0.2em;
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.5s var(--ease-out), transform 0.5s var(--ease-out);
}
.animate-words.is-visible span { opacity: 1; transform: none; }
.animate-words.is-visible span:nth-child(1) { transition-delay: 100ms; }
.animate-words.is-visible span:nth-child(2) { transition-delay: 200ms; }
.animate-words.is-visible span:nth-child(3) { transition-delay: 300ms; }
.animate-words.is-visible span:nth-child(4) { transition-delay: 400ms; }
.animate-words.is-visible span:nth-child(5) { transition-delay: 500ms; }

/* Stat counter animation */
[data-counter] {
  font-variant-numeric: tabular-nums;
}
