/* 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; }
}
/* Paint only the curve upward. Negative side insets preserve its diffused
   shadow; the stationary image fades in separately after the line is complete. */
@keyframes landing-curve-reveal {
    from { clip-path: inset(100% -100px 0); }
    to { clip-path: inset(0 -100px 0); }
}
@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;
    }
    @media (min-width: 768px) {
        html:not([data-landing-enter="complete"]) .landing-hero .hero-media {
            animation: landing-enter-fade 1200ms cubic-bezier(.25,.1,.25,1) 1000ms backwards;
        }
        html:not([data-landing-enter="complete"]) .landing-hero .hero-curve-edge {
            animation: landing-curve-reveal 1000ms cubic-bezier(.25,.1,.25,1) backwards;
        }
    }
}
