/* ====== SLIDE DOWN / UP (Sidebar sections) ====== */
@keyframes slideDown {
    from {
        opacity: 0;
        max-height: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        max-height: 500px;
        transform: translateY(0);
    }
}

@keyframes slideUp {
    from {
        opacity: 1;
        max-height: 500px;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        max-height: 0;
        transform: translateY(-10px);
    }
}

/* ====== CORE ANIMATIONS ====== */
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

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

@keyframes driftA {
    from { transform: translate3d(0, 0, 0) scale(1); }
    to { transform: translate3d(-3vw, 2vh, 0) scale(1.08); }
}

@keyframes busPulse {
    /* Eski scale-based animation deprecated - busGlowPulse kullan */
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1); }
}

@keyframes driftB {
    from { transform: translate3d(0, 0, 0) scale(1); }
    to { transform: translate3d(4vw, -3vh, 0) scale(1.1); }
}

/* ====== LOADING SCREEN ANIMATIONS ====== */
@keyframes loadingPulse {
    0%, 100% { box-shadow: 0 0 40px rgba(99,102,241,0.35), 0 0 80px rgba(59,130,246,0.15); }
    50% { box-shadow: 0 0 60px rgba(99,102,241,0.55), 0 0 100px rgba(59,130,246,0.3); }
}

@keyframes dotBlink { 0%,80%,100%{opacity:0} 40%{opacity:1} }

/* ====== MODAL SLIDE ANIMATIONS ====== */
@keyframes slideInFromRight {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

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

/* ====== BUS GLOW PULSE ====== */
@keyframes busGlowPulse {
    0%, 100% {
        filter: drop-shadow(0 0 4px rgba(34, 211, 238, 0.4));
    }
    50% {
        filter: drop-shadow(0 0 8px rgba(34, 211, 238, 0.6)) drop-shadow(0 0 2px rgba(99, 102, 241, 0.3));
    }
}

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