/**
 * Impulsa Aurora v2 — Motion tokens y keyframes
 */
:root {
    --motion-instant: 80ms;
    --motion-fast: 120ms;
    --motion-base: 200ms;
    --motion-slow: 320ms;
    --motion-slower: 480ms;

    --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
    --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes aurora-fade-up {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes aurora-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes aurora-shake {
    0%, 100% { transform: translateX(0); }
    20% { transform: translateX(-6px); }
    40% { transform: translateX(6px); }
    60% { transform: translateX(-4px); }
    80% { transform: translateX(4px); }
}

@keyframes aurora-pulse-ring {
    0% { box-shadow: 0 0 0 0 rgba(0, 144, 208, 0.35); }
    70% { box-shadow: 0 0 0 8px rgba(0, 144, 208, 0); }
    100% { box-shadow: 0 0 0 0 rgba(0, 144, 208, 0); }
}

@keyframes aurora-skeleton-shimmer {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

@keyframes aurora-slide-indicator {
    from { transform: scaleX(0.6); opacity: 0.6; }
    to { transform: scaleX(1); opacity: 1; }
}

@keyframes aurora-scale-in {
    from { opacity: 0; transform: scale(0.92); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes aurora-check-pop {
    0% { transform: scale(0.5); opacity: 0; }
    60% { transform: scale(1.15); }
    100% { transform: scale(1); opacity: 1; }
}

.aurora-animate-fade-up {
    animation: aurora-fade-up var(--motion-slow) var(--ease-out-expo) both;
}

.aurora-animate-fade-in {
    animation: aurora-fade-in var(--motion-base) var(--ease-out-expo) both;
}

.aurora-animate-scale-in {
    animation: aurora-scale-in var(--motion-base) var(--ease-spring) both;
}

.aurora-animate-shake {
    animation: aurora-shake var(--motion-base) var(--ease-in-out);
}

.aurora-stagger > * {
    animation: aurora-fade-up var(--motion-slow) var(--ease-out-expo) both;
}

.aurora-stagger > *:nth-child(1) { animation-delay: 0ms; }
.aurora-stagger > *:nth-child(2) { animation-delay: 60ms; }
.aurora-stagger > *:nth-child(3) { animation-delay: 120ms; }
.aurora-stagger > *:nth-child(4) { animation-delay: 180ms; }
.aurora-stagger > *:nth-child(5) { animation-delay: 240ms; }
.aurora-stagger > *:nth-child(6) { animation-delay: 300ms; }

@media (prefers-reduced-motion: reduce) {
    :root {
        --motion-instant: 0ms;
        --motion-fast: 0ms;
        --motion-base: 0ms;
        --motion-slow: 0ms;
        --motion-slower: 0ms;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    .aurora-stagger > * {
        animation: none !important;
    }
}
