/* ========== ANIMATIONS — Purposeful, no global transition override ========== */

/* Hint cards reveal */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.indice { animation: fadeIn 0.4s ease-out; }

/* Congratulations bounce */
@keyframes bounceIn {
    from { transform: scale(0.9); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

#congratulations-message { animation: bounceIn 0.5s ease-out; }

/* Correct answer celebration */
@keyframes celebrate {
    0%, 100% { transform: scale(1); }
    25% { transform: scale(1.02) rotate(-1deg); }
    75% { transform: scale(1.02) rotate(1deg); }
}

@keyframes pulse-success {
    0%, 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.5); }
    50% { box-shadow: 0 0 0 12px rgba(16, 185, 129, 0); }
}

.history-item.correct-answer {
    animation: celebrate 0.6s ease-out, pulse-success 1.5s ease-out;
}

/* Wrong answer shake */
@keyframes shake {
    0%, 100% { transform: translateX(0); }
    20%, 60% { transform: translateX(-4px); }
    40%, 80% { transform: translateX(4px); }
}

.history-item.wrong-answer { animation: shake 0.4s ease-out; }

/* Modal */
.auth-modal:not(.hidden) { animation: fadeIn 0.2s ease-out; }

/* Stats staggered entrance */
.stat-card {
    animation: fadeIn 0.3s ease-out backwards;
}

.stat-card:nth-child(1) { animation-delay: 0s; }
.stat-card:nth-child(2) { animation-delay: 0.08s; }
.stat-card:nth-child(3) { animation-delay: 0.16s; }
.stat-card:nth-child(4) { animation-delay: 0.24s; }

/* Suggestions entrance */
.suggestions:not(.hidden) { animation: fadeIn 0.2s ease-out; }

.suggestion-item {
    animation: fadeIn 0.2s ease-out backwards;
}

.suggestion-item:nth-child(1) { animation-delay: 0s; }
.suggestion-item:nth-child(2) { animation-delay: 0.04s; }
.suggestion-item:nth-child(3) { animation-delay: 0.08s; }
.suggestion-item:nth-child(4) { animation-delay: 0.12s; }
.suggestion-item:nth-child(5) { animation-delay: 0.16s; }

/* History items */
.history-item { animation: fadeIn 0.3s ease-out; }

/* Progress bar shimmer */
@keyframes shimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

.progress-fill::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
    animation: shimmer 2s infinite;
}
