/* ==============================================
   SHARED KEYFRAME ANIMATIONS
   Centralized animation definitions for reuse
   across components and pages. Component-specific
   keyframes still belong in their local files.
   ============================================== */

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

/* ---- fade in with lift ---- */
@keyframes fade-in-up {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---- fade out ---- */
@keyframes fade-out {
    from { opacity: 1; }
    to   { opacity: 0; }
}

/* ---- scale in ---- */
@keyframes scale-in {
    from {
        opacity: 0;
        transform: scale(0.95);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* ---- breathe / pulse ---- */
@keyframes breathe {
    0%, 100% {
        opacity: 0.2;
        transform: scale(1);
    }
    50% {
        opacity: 1;
        transform: scale(1.5);
    }
}

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

/* ---- shimmer / skeleton loading ---- */
@keyframes shimmer {
    0%   { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

/* ---- slide in from right ---- */
@keyframes slide-in-right {
    from {
        opacity: 0;
        transform: translateX(16px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}
