/* animations.css — Transitions et micro-interactions */

@keyframes fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes slide-up {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes loader-bounce {
    0%, 80%, 100% { transform: scale(0.6); opacity: 0.5; }
    40%           { transform: scale(1);   opacity: 1; }
}

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

.is-fading-in   { animation: fade-in 200ms ease-out both; }
.is-sliding-up  { animation: slide-up 240ms ease-out both; }
.is-shaking     { animation: shake 320ms ease-in-out; }
