@keyframes shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-6px); }
    75% { transform: translateX(6px); }
}
.shake { animation: shake 0.35s ease; }

@keyframes rise {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}
.day-card { animation: rise 0.45s ease both; }
.day-card:nth-child(2) { animation-delay: 0.04s; }
.day-card:nth-child(3) { animation-delay: 0.08s; }
.day-card:nth-child(4) { animation-delay: 0.12s; }

@keyframes fall {
    to { transform: translateY(70px) rotate(40deg); opacity: 0; }
}

.toast { transition: opacity 0.25s ease, transform 0.25s ease; }
.progress-bar-fill { transition: width 0.45s ease; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
}
