[data-animate] {
    opacity: 1;
    transform: translateY(0);
    transition: opacity var(--transition-slow), transform var(--transition-slow);
}

[data-animate].animate-ready {
    opacity: 0;
    transform: translateY(18px);
}

[data-animate].animate-ready.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@keyframes backgroundZoom {
    from { transform: scale(1); }
    to { transform: scale(1.03); }
}

@keyframes modalIn {
    from {
        opacity: 0;
        transform: translateY(10px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    [data-animate],
    [data-animate].animate-ready,
    .login-modal-card,
    body::before {
        animation: none !important;
        transition: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}
