/* ── css/animations.css ── */

@keyframes fade-up {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes pop-in {
    0% {
        transform: scale(.92);
        opacity: 0;
    }

    60% {
        transform: scale(1.03);
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}

/* Staggered card entrance */
.quote-card,
.top-card {
    animation: fade-up .35s both;
}

/* Décalage par position dans la liste */
.quote-card:nth-child(1),
.top-card:nth-child(1) {
    animation-delay: .05s;
}

.quote-card:nth-child(2),
.top-card:nth-child(2) {
    animation-delay: .10s;
}

.quote-card:nth-child(3),
.top-card:nth-child(3) {
    animation-delay: .15s;
}

.quote-card:nth-child(4),
.top-card:nth-child(4) {
    animation-delay: .20s;
}

.quote-card:nth-child(5),
.top-card:nth-child(5) {
    animation-delay: .25s;
}

.quote-card:nth-child(6),
.top-card:nth-child(6) {
    animation-delay: .30s;
}

.quote-card:nth-child(7),
.top-card:nth-child(7) {
    animation-delay: .33s;
}

.quote-card:nth-child(8),
.top-card:nth-child(8) {
    animation-delay: .36s;
}

.quote-card:nth-child(n+9),
.top-card:nth-child(n+9) {
    animation-delay: .38s;
}

/* Vote button pop feedback */
.vote-btn.pop {
    animation: pop-in .25s forwards;
}