/**
 * Frame-budget helpers: keep paint/compositor work low so 60fps (and 120Hz) stays reachable.
 * Sites cannot force refresh rate — the display does; we just avoid missing frames.
 */

/* Once revealed, stop permanent layer promotion */
.reveal.reveal--settled {
    will-change: auto;
}

/* Parallax must not fight a CSS transition on every scroll tick */
.landing-hero-wrap,
.hero-card-parallax {
    transition: none !important;
    transform: translate3d(0, var(--hero-parallax-y, 0px), 0);
    backface-visibility: hidden;
}

@media (min-width: 768px) {
    .footer-parallax__inner {
        transition: none !important;
        transform: translate3d(0, var(--footer-y, 0px), 0) scale(var(--footer-scale, 1));
        backface-visibility: hidden;
    }
}

@media (max-width: 767px) {
    .footer-parallax__inner {
        transition: none !important;
        transform: translate3d(0, var(--footer-mobile-y, 0px), 0) scale(var(--footer-mobile-scale, 1));
        backface-visibility: hidden;
    }

    /* Blur is a major mobile GPU cost */
    .landing-hosts-msg span,
    .landing-hosts-float--card,
    .landing-hosts-float--status,
    .landing-hosts-arrow,
    .landing-trust-journey__proof,
    .landing-hero-mobile-map__status,
    .landing-hero-mobile-map__footer {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    .landing-hero-blob {
        display: none !important;
    }
}

/* Skip layout/paint for off-screen marketing blocks when supported */
.landing-for-walkers,
.landing-trust-journey,
.landing-hosts-story,
#landing-cities,
#landing-faq,
#urgent,
.hiw-playful {
    content-visibility: auto;
    contain-intrinsic-size: 1px 720px;
}

/* Decorative loops only while in view */
.is-anim-paused,
.is-anim-paused .float,
.is-anim-paused .float-delay,
.is-anim-paused .pulse-ring,
.is-anim-paused .landing-hosts-msg,
.is-anim-paused .landing-hosts-heart,
.is-anim-paused .landing-hosts-bar i,
.is-anim-paused .hiw-playful__photo-chip,
.is-anim-paused .landing-trust-journey__walk-route path,
.is-anim-paused .landing-hero-card {
    animation-play-state: paused !important;
}

/* Prefer compositor-friendly motion for looping bits */
.float,
.float-delay,
.landing-hosts-msg,
.landing-hosts-heart,
.hiw-playful__photo-chip {
    transform: translateZ(0);
    backface-visibility: hidden;
}

@media (prefers-reduced-motion: reduce) {
    .is-anim-paused,
    .is-anim-paused * {
        animation: none !important;
    }
}
