/* Reused animations */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}

.pop-in {
    animation: pop-in var(--dur) var(--ease-spring) both;
}
@keyframes pop-in {
    0% { opacity: 0; transform: scale(0.8); }
    60% { opacity: 1; transform: scale(1.05); }
    100% { transform: scale(1); }
}

.slide-up {
    animation: slide-up var(--dur) var(--ease-out) both;
}
@keyframes slide-up {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: none; }
}

.pulse-glow {
    animation: pulse-glow 1.8s var(--ease-out) infinite;
}
@keyframes pulse-glow {
    0%, 100% { box-shadow: 0 0 0 0 rgba(124,231,255,0.6); }
    50% { box-shadow: 0 0 24px 4px rgba(124,231,255,0.4); }
}
