/* Match the existing public background-particle breakpoint. Keep this small
   policy synchronous so deferred component styles cannot start mobile effects. */
@media (max-width: 760px), (prefers-reduced-motion: reduce) {
    .site-bg-particles {
        display: none;
    }

    .site-game-bg {
        transform: none !important;
        transition: none !important;
        will-change: auto;
    }

    .js-ui-reveal [data-ui-reveal]:not([data-skip-ui-reveal], [data-skip-ui-reveal] *) {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }

    .discord-cta__button,
    .discord-cta__dismiss,
    .discord-cta__popin,
    .villager-npc__launcher,
    .villager-npc__bubble,
    .villager-npc__panel {
        transition: none !important;
    }

    .discord-cta__link:hover .discord-cta__button,
    .discord-cta__link:focus-visible .discord-cta__button,
    .discord-cta__dismiss,
    .discord-cta__popin,
    .discord-cta.is-popin-visible .discord-cta__popin,
    .villager-npc__launcher:hover,
    .villager-npc__launcher:focus-visible {
        transform: none !important;
    }

    .villager-npc__torch-glow,
    .villager-npc__ember,
    .villager-npc__spark,
    .server-card--stacked-stats .server-card__online-status::before,
    .vote-readiness--ready .vote-readiness__fill,
    .vote-account-benefits-card__primary-cta,
    .global-header__wallet-value.is-updating,
    .state-message.is-reward-highlight,
    .shop-page .state-message--success.is-shop-success-pulse,
    .credit-emphasis--reward,
    .credit-emphasis--auth {
        animation: none !important;
    }

    .villager-npc__torch-glow {
        opacity: 0.62;
    }

    .villager-npc__ember,
    .villager-npc__spark,
    .shop-success-confetti,
    .reward-earned-burst,
    .reward-earned-badge {
        display: none;
    }
}

/* Do not reset transforms globally: some establish static artwork/centering.
   State classes, visibility and focus outlines still apply without motion. */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
}
