/* Begin on first paint, before deferred scripts run. Backwards fill covers
   stagger delays; the final visible state does not depend on JavaScript. */
@keyframes landing-enter-rise {
    from { opacity: 0; transform: translateY(var(--landing-enter-offset, 12px)); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes landing-enter-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}
@media (prefers-reduced-motion: no-preference) {
    html:not([data-landing-enter="complete"]) .landing-nav {
        --landing-enter-offset: -6px;
        animation: landing-enter-rise 1000ms cubic-bezier(.25,.1,.25,1) backwards;
    }
    html:not([data-landing-enter="complete"]) .landing-hero .hero-media {
        animation: landing-enter-fade 1800ms cubic-bezier(.25,.1,.25,1) 100ms backwards;
    }
    html:not([data-landing-enter="complete"]) .landing-hero .hero-mobile-brand {
        --landing-enter-offset: 10px;
        animation: landing-enter-rise 1500ms cubic-bezier(.25,.1,.25,1) 350ms backwards;
    }
    html:not([data-landing-enter="complete"]) .landing-hero .hero-content h1 {
        --landing-enter-offset: 16px;
        animation: landing-enter-rise 1600ms cubic-bezier(.25,.1,.25,1) 500ms backwards;
    }
    html:not([data-landing-enter="complete"]) .landing-hero .hero-content p {
        --landing-enter-offset: 14px;
        animation: landing-enter-rise 1500ms cubic-bezier(.25,.1,.25,1) 800ms backwards;
    }
    html:not([data-landing-enter="complete"]) .landing-hero .hero-actions {
        animation: landing-enter-rise 1400ms cubic-bezier(.25,.1,.25,1) 1100ms backwards;
    }
}
