/* Mobile: keep marquees running even if older style.css still kills animations */
@media (max-width: 900px) {
    .top-ribbon__marquee {
        animation: top-ribbon-slide 38s linear infinite !important;
        will-change: transform;
    }
    .gallery__track {
        animation: gallery-marquee var(--gallery-duration, 90s) linear infinite !important;
        will-change: transform;
    }
    .gallery__shell.is-paused .gallery__track {
        animation-play-state: running !important;
    }
    .gallery__shell.is-reverse .gallery__track {
        animation-direction: reverse !important;
    }
    .reviews__track {
        animation: reviews-marquee var(--reviews-duration, 70s) linear infinite !important;
        will-change: transform;
    }
    .reviews__shell.is-static .reviews__track {
        animation: reviews-marquee var(--reviews-duration, 70s) linear infinite !important;
        width: max-content !important;
        margin-inline: 0 !important;
        display: flex !important;
        grid-template-columns: none !important;
    }
    .reviews__shell.is-paused .reviews__track {
        animation-play-state: running !important;
    }
    .reviews__shell.is-reverse .reviews__track {
        animation-direction: reverse !important;
    }
    .hero__content {
        animation: rise .8s ease both !important;
    }
    .btn--primary {
        animation: btn-grad-flow 3.6s ease-in-out infinite !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    .top-ribbon__marquee,
    .gallery__track,
    .reviews__track,
    .reviews__shell.is-static .reviews__track,
    .hero__content,
    .btn--primary {
        animation: none !important;
    }
}
