/* Motion and compositing safety net. The visual language remains intact, but
   phones that explicitly save data or report low hardware do not keep large
   blurred layers and decorative animations alive forever. */

html.perf-low-power .hero-energy,
html.perf-low-power .hero-product-asset,
html.perf-low-power .model-stage::after,
html.perf-low-power .fallback-showroom img,
html.perf-low-power .config-smoke,
html.perf-low-power .config-aura,
html.perf-low-power .config-brand-field,
html.perf-low-power .config-brand-slice,
html.perf-low-power .config-particle,
html.perf-low-power .config-copy::before,
html.perf-low-power .config-rule,
html.perf-low-power .config-accent,
html.perf-low-power .config-paragraph-glow,
html.perf-low-power .config-product-float,
html.perf-low-power .mobile-basic-products-art {
    animation: none !important;
    will-change: auto !important;
}

html.perf-low-power .hero-showcase::before,
html.perf-low-power .hero-showcase::after,
html.perf-low-power .model-stage::after,
html.perf-low-power .config-shirt-2d::before,
html.perf-low-power .config-shirt-2d::after,
html.perf-low-power .config-dark-contrast-veil {
    filter: none !important;
}

html.perf-low-power .testing-notice-backdrop,
html.perf-low-power .webshop-modal,
html.perf-low-power .image-drop-overlay,
html.perf-low-power .editor-modal-backdrop {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
}

@media (max-width: 900px) {
    /* Full-viewport backdrop blur causes particularly expensive repainting
       while a drawer, product preview, or notice is open on mobile Chrome. */
    .testing-notice-backdrop,
    .webshop-modal,
    .image-drop-overlay,
    .editor-modal-backdrop {
        -webkit-backdrop-filter: none !important;
        backdrop-filter: none !important;
    }

    .hero-showcase::before,
    .hero-showcase::after {
        filter: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
