/* ── KEYFRAMES ────────────────────────────────────────────────── */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: 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); }
}

@keyframes goldPulse {
  0%, 100% { opacity: 0.6; }
  50%       { opacity: 1; }
}

/* ── REVEAL ON SCROLL ─────────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94),
    transform 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }

/* ── HERO ENTRANCE ────────────────────────────────────────────── */
.hero-ornament { animation: fadeInUp 0.7s ease 0.20s both; }
.hero-eyebrow  { animation: fadeInUp 0.8s ease 0.40s both; }
.hero-title    { animation: fadeInUp 0.9s ease 0.65s both; }
.hero-subtitle { animation: fadeInUp 0.8s ease 0.90s both; }
.hero-actions  { animation: fadeInUp 0.7s ease 1.10s both; }
.hero-scroll   { animation: fadeIn  0.6s ease 1.40s both, bounce 2s ease 2.0s infinite; }

/* ── STAT NUMBER ──────────────────────────────────────────────── */
.stat-number.counting {
  animation: countUp 0.4s ease both;
}

/* ── ORNAMENT HOVER ───────────────────────────────────────────── */
.fleur-ornament:hover {
  animation: goldPulse 1.5s ease-in-out;
}
