/* css/animations.css — CoverMangaHD */

@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(24px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes slideInLeft {
    from { opacity: 0; transform: translateX(-32px); }
    to   { opacity: 1; transform: translateX(0); }
}

@keyframes slideInRight {
    from { opacity: 0; transform: translateX(32px); }
    to   { opacity: 1; transform: translateX(0); }
}

@keyframes scaleIn {
    from { opacity: 0; transform: scale(0.9); }
    to   { opacity: 1; transform: scale(1); }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes slideDown {
    from { opacity: 0; transform: translateY(-16px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes pulse {
    0%, 100% { transform: scale(1); }
    50%       { transform: scale(1.04); }
}

@keyframes shimmer {
    0%   { background-position: -200% 0; }
    100% { background-position:  200% 0; }
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

@keyframes heroGlow {
    0%, 100% { transform: translate(0, 0); }
    50%       { transform: translate(15%, 15%); }
}

@keyframes toastSlideIn {
    from { opacity: 0; transform: translateX(100%); }
    to   { opacity: 1; transform: translateX(0); }
}

@keyframes toastSlideOut {
    from { opacity: 1; transform: translateX(0); }
    to   { opacity: 0; transform: translateX(100%); }
}

@keyframes toastProgress {
    from { width: 100%; }
    to   { width: 0%; }
}

@keyframes modalScaleIn {
    from { opacity: 0; transform: scale(0.93) translateY(8px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes backgroundPan {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* ===== Utility Classes ===== */
.animate-fadeInUp    { animation: fadeInUp    0.7s ease both; }
.animate-slideInLeft { animation: slideInLeft 0.6s ease both; }
.animate-slideInRight{ animation: slideInRight 0.6s ease both; }
.animate-scaleIn     { animation: scaleIn     0.5s ease both; }
.animate-fadeIn      { animation: fadeIn      0.5s ease both; }
.animate-slideDown   { animation: slideDown   0.5s ease both; }

.animate-shimmer {
    background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.06) 50%, transparent 100%);
    background-size: 200% 100%;
    animation: shimmer 2s infinite;
}

[data-theme="light"] .animate-shimmer {
    background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.04) 50%, transparent 100%);
    background-size: 200% 100%;
}

/* Stagger delays */
.stagger-1 { animation-delay: 0.08s; }
.stagger-2 { animation-delay: 0.16s; }
.stagger-3 { animation-delay: 0.24s; }
.stagger-4 { animation-delay: 0.32s; }
.stagger-5 { animation-delay: 0.40s; }
