/* animations.css - ALL @keyframes definitions unified */

/* Optimisations animations - respect prefers-reduced-motion */
@media (prefers-reduced-motion:reduce){
    *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important}
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

@keyframes slideUp {
    from { transform: translateY(100%); }
    to { transform: translateY(0); }
}

@keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: .3; }
}

@keyframes kenburns {
    0% { transform: scale(1) translate(0,0); }
    100% { transform: scale(1.15) translate(-2%,-1%); }
}

@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(15px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes slideDown {
    from { opacity: 0; max-height: 0; }
    to { opacity: 1; max-height: 2000px; }
}

/* Unified pulse - merged from 2 duplicate definitions */
@keyframes pulse {
    0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(255,71,87,.4); }
    50% { transform: scale(1.02); box-shadow: 0 0 20px 5px rgba(255,71,87,.2); }
}

@keyframes highlight {
    0%, 100% { background: transparent; }
    50% { background: rgba(255,71,87,.2); }
}

@keyframes shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-8px); }
    75% { transform: translateX(8px); }
}

@keyframes bounceIn {
    0% { transform: scale(0); opacity: 0; }
    50% { transform: scale(1.2); }
    100% { transform: scale(1); opacity: 1; }
}

@keyframes pulseInstall {
    0%, 100% { box-shadow: 0 4px 20px rgba(102,126,234,.4); }
    50% { box-shadow: 0 4px 30px rgba(102,126,234,.7); }
}

@keyframes admin-flash-red {
    0%, 100% { background-color: transparent; }
    50% { background-color: rgba(255, 71, 87, 0.3); }
}

@keyframes badge-bounce {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.3); }
}

@keyframes new-order-pulse {
    0%, 100% { box-shadow: 0 0 20px rgba(255, 71, 87, 0.3); }
    50% { box-shadow: 0 0 30px rgba(255, 71, 87, 0.6); }
}

@keyframes pulse-dot {
    0% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.3); opacity: 0.7; }
    100% { transform: scale(1); opacity: 1; }
}

@keyframes slideInRight {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

@keyframes loading {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

@keyframes shimmer {
    0% { left: -100%; }
    100% { left: 100%; }
}

@keyframes slideInLeft {
    from { transform: translateX(-100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}
