/* GTA6 STREET hero video first-frame contract.
 * Video heroes use the configured motion asset on every viewport. The poster is
 * fallback-only for reduced motion or playback failure, never a mobile-only mode.
 */
.ls-hero:has(.ls-hero__video) .ls-hero__poster,
.ls-hero.ls-hero--video .ls-hero__poster {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.ls-hero.ls-hero--video-fallback .ls-hero__poster,
.ls-hero.ls-hero--video-failed .ls-hero__poster {
    opacity: 1;
    visibility: visible;
}

.ls-hero.ls-hero--video:not(.ls-hero--video-ready) .ls-hero__motion {
    opacity: 0;
    pointer-events: none;
}

.ls-hero.ls-hero--video-ready .ls-hero__motion {
    opacity: 1;
    transition: opacity .18s ease;
}

@media (prefers-reduced-motion: reduce) {
    .ls-hero:has(.ls-hero__video) .ls-hero__poster,
    .ls-hero.ls-hero--video .ls-hero__poster {
        opacity: 1;
        visibility: visible;
        pointer-events: none;
    }

    .ls-hero:has(.ls-hero__video) .ls-hero__video,
    .ls-hero.ls-hero--video .ls-hero__video,
    .ls-hero:has(.ls-hero__video) .ls-hero__motion,
    .ls-hero.ls-hero--video .ls-hero__motion {
        display: none !important;
    }
}
