/**
 * ANIMATIONS - Edda 
 *
 *  — Exactly 4 keyframes survive:
 *   1. modalSlideIn — 200ms ease-out, translateY -16→0 + opacity 0→1 (modal entry)
 *   2. pulse        — 1200ms ease-in-out infinite, opacity 0.6↔1.0 (status-chip dot)
 *   3. fadeInUp     — 400ms ease-out, translateY 16→0 + opacity 0→1 (hero reveal)
 *   4. shimmer      — 1400ms linear infinite, background-position 200% → -200% (skeleton)
 *
 * Every other keyframe + utility class deleted (fadeIn/fadeInDown/fadeInLeft/
 * fadeInRight/slideUp/scaleIn/spin/bounce/dots/countUp/numberPulse/flicker/
 * ember/fireGlow/glow/pulseGlow) per  (text-shadow ban) + §11.6
 * (translateY -5px ban per §11.6). prefers-reduced-motion global override
 * lives in edda.css (§TYPE/MOTION + @media blocks) — not duplicated here.
 */

/* =============================================
   KEYFRAMES — exatamente 4 
   ============================================= */

@keyframes modalSlideIn {
    from {
        opacity: 0;
        transform: translateY(-16px);
    }

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

@keyframes pulse {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.6;
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(16px);
    }

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

@keyframes shimmer {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

/* =============================================
   CLASSES DE ANIMAÇÃO — uma por keyframe
   ============================================= */

.animate-modalSlideIn {
    animation: modalSlideIn 200ms var(--ease-out) forwards;
}

.animate-pulse {
    animation: pulse 1200ms var(--ease-in-out) infinite;
}

.animate-fadeInUp {
    animation: fadeInUp 400ms var(--ease-out) forwards;
}

.animate-shimmer {
    animation: shimmer 1400ms linear infinite;
}

/* =============================================
   DELAYS PARA FADE-IN-UP EM SEQUÊNCIA
   Hero reveal cascades — 
   ============================================= */

.delay-100 {
    animation-delay: 100ms;
}

.delay-200 {
    animation-delay: 200ms;
}

.delay-300 {
    animation-delay: 300ms;
}

.delay-400 {
    animation-delay: 400ms;
}

.delay-500 {
    animation-delay: 500ms;
}

.delay-600 {
    animation-delay: 600ms;
}

/* =============================================
   LOADING SPINNER — editorial ring 
   ============================================= */

.loading-spinner {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 3px solid var(--color-accent-subtle);
    border-top-color: var(--color-accent);
    border-radius: var(--radius-pill);
    animation: pulse 1200ms var(--ease-in-out) infinite;
}

.loading-spinner-large {
    width: 40px;
    height: 40px;
    border-width: 4px;
}
