@keyframes authCardIn {
    from { opacity: 0; transform: translateY(30px) scale(0.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

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

@keyframes authShake {
    0%, 100% { transform: translateY(0) translateX(0); }
    20% { transform: translateY(0) translateX(-8px); }
    40% { transform: translateY(0) translateX(8px); }
    60% { transform: translateY(0) translateX(-5px); }
    80% { transform: translateY(0) translateX(5px); }
}

@keyframes authSuccessPulse {
    0% { transform: translateY(0) scale(0.96); opacity: 0; }
    50% { transform: translateY(0) scale(1.02); opacity: 1; }
    100% { transform: translateY(0) scale(1); opacity: 1; }
}

@keyframes authRipple {
    from { transform: scale(0); opacity: 1; }
    to { transform: scale(4); opacity: 0; }
}

@keyframes authOrbDrift {
    0%, 100% { transform: translate(0, 0) scale(1); }
    33% { transform: translate(30px, -20px) scale(1.1); }
    66% { transform: translate(-20px, 20px) scale(0.95); }
}

@keyframes authGlowPulse {
    0%, 100% { box-shadow: 0 0 0 4px rgba(74, 111, 165, 0.25); }
    50% { box-shadow: 0 0 0 6px rgba(74, 111, 165, 0.4); }
}

@keyframes authButtonPulse {
    0%, 100% { opacity: 0.55; }
    50% { opacity: 0.85; }
}

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