/* ── KEYFRAMES ────────────────────────────────────────────────── */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInScale {
  from { opacity: 0; transform: scale(0.96) translateY(12px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes bounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%       { transform: translateX(-50%) translateY(8px); }
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@keyframes countUp {
  from { opacity: 0; transform: scale(0.8); }
  to   { opacity: 1; transform: scale(1); }
}

/* ── REVEAL ON SCROLL ─────────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.65s cubic-bezier(0.22,1,0.36,1), transform 0.65s cubic-bezier(0.22,1,0.36,1);
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-scale {
  opacity: 0;
  transform: scale(0.96) translateY(12px);
  transition: opacity 0.65s cubic-bezier(0.22,1,0.36,1), transform 0.65s cubic-bezier(0.22,1,0.36,1);
}

.reveal-scale.visible {
  opacity: 1;
  transform: scale(1) translateY(0);
}

.reveal-delay-1 { transition-delay: 0.08s; }
.reveal-delay-2 { transition-delay: 0.16s; }
.reveal-delay-3 { transition-delay: 0.24s; }
.reveal-delay-4 { transition-delay: 0.32s; }

/* ── HERO ENTRANCE ────────────────────────────────────────────── */
.hero-eyebrow  { animation: fadeInUp 0.6s ease 0.3s both; }
.hero-title    { animation: fadeInUp 0.6s ease 0.5s both; }
.hero-subtitle { animation: fadeInUp 0.6s ease 0.7s both; }
.hero-actions  { animation: fadeInUp 0.6s ease 0.9s both; }
.hero-scroll   { animation: fadeIn  0.6s ease 1.2s both, bounce 2s ease 1.8s infinite; }

/* ── STAT NUMBER ──────────────────────────────────────────────── */
.stat-number.counting {
  animation: countUp 0.4s ease both;
}
