@keyframes page-enter {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

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

.page-enter {
    animation: page-enter 280ms ease both;
}

@keyframes shuffle-card {
    from {
        transform: translateX(-7px) rotate(-2deg) scale(0.98);
    }

    to {
        transform: translateX(7px) rotate(2deg) scale(1.02);
    }
}

@keyframes reveal-card {
    0% {
        opacity: 0.55;
        transform: scale(0.86);
    }

    65% {
        transform: scale(1.06);
    }

    100% {
        opacity: 1;
        transform: scale(1);
    }
}

.shuffle-letter-card.is-shuffling {
    animation: shuffle-card 110ms ease-in-out infinite alternate;
}

.shuffle-letter-card.is-revealed {
    animation: reveal-card 420ms ease both;
}

@keyframes quick-countdown { from { transform: scaleX(1); } to { transform: scaleX(0); } }

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 1ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 1ms !important;
    }
}
