/* Auth pages — entrance on full page load (not SPA transitions) */

@keyframes auth-enter-rise {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes auth-enter-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes auth-enter-bg {
    from {
        opacity: 0;
        transform: scale(0.96);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

body.auth-enter .auth-bg-layer {
    animation: auth-enter-bg 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
}

body.auth-enter .mob-auth-header {
    animation: auth-enter-fade 0.4s ease both;
}

body.auth-enter .mob-auth-hero,
body.auth-enter .mob-auth-hero-logo {
    animation: auth-enter-rise 0.52s cubic-bezier(0.22, 1, 0.36, 1) both;
}

body.auth-enter .mob-auth-card--shell {
    animation: auth-enter-rise 0.58s cubic-bezier(0.22, 1, 0.36, 1) 0.09s both;
}

body.auth-enter .mob-auth-back {
    animation: auth-enter-fade 0.45s ease 0.2s both;
}

@media (prefers-reduced-motion: reduce) {
    body.auth-enter .auth-bg-layer,
    body.auth-enter .mob-auth-header,
    body.auth-enter .mob-auth-hero,
    body.auth-enter .mob-auth-hero-logo,
    body.auth-enter .mob-auth-card--shell,
    body.auth-enter .mob-auth-back {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}
