/* ═══════════════════════════════════════════════════════════
   Animations — Keyframes, transitions, scroll reveals
   ═══════════════════════════════════════════════════════════ */

@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-10px); }
}

/* ── Scroll reveal classes ───────────────────────── */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}

.reveal-delay-1 { transition-delay: 100ms; }
.reveal-delay-2 { transition-delay: 200ms; }
.reveal-delay-3 { transition-delay: 300ms; }
.reveal-delay-4 { transition-delay: 400ms; }
.reveal-delay-5 { transition-delay: 500ms; }

/* ── Hero entrance ───────────────────────────────── */
.hero__badge    { animation: fadeInUp 0.8s ease both 0.2s; }
.hero__title    { animation: fadeInUp 0.8s ease both 0.4s; }
.hero__subtitle { animation: fadeInUp 0.8s ease both 0.6s; }
.hero__actions  { animation: fadeInUp 0.8s ease both 0.8s; }
.hero__stats    { animation: fadeInUp 0.8s ease both 1.0s; }
