/* Graphics quality tiers (js/render/quality.js). <body> carries q-medium, q-low or q-minimal; high (the default look) has no class.
   Profiling (software raster, CPU-throttled): the animated #bg gears, backdrop blur and glow-pulsing drop-shadows are the
   main non-canvas costs; none of them carries gameplay information. */

/* the battle canvas is opaque and covers the stage: nothing behind it needs to animate (every tier, no visible change) */
#stage.in-battle #bg { display: none !important; }

/* medium + low: no backdrop blur on dialogs (a darker scrim instead), calm background */
.q-medium .modal-back:not(.net-back), .q-low .modal-back:not(.net-back), .q-minimal .modal-back:not(.net-back) { backdrop-filter: none !important; background: rgba(10, 5, 24, .84) !important; }
.q-medium .bg-gear, .q-low .bg-gear, .q-minimal .bg-gear { animation: none !important; }

/* low: static background, no looping glow / float / spin decoration, no animated drop-shadows */
.q-low .bg-stars, .q-minimal .bg-stars { animation: none !important; }
.q-low .logo-heart-wrap, .q-minimal .logo-heart-wrap { animation: none !important; filter: none !important; }
.q-low .lh-right, .q-minimal .lh-right, .q-low .lh-gear.spin, .q-minimal .lh-gear.spin, .q-low .lh-gear.spin-r, .q-minimal .lh-gear.spin-r { animation: none !important; }
.q-low .menu-buttons .row.hero .btn, .q-minimal .menu-buttons .row.hero .btn { animation: none !important; }
.q-low .rk-badge-wrap, .q-minimal .rk-badge-wrap, .q-low .ol-badge, .q-minimal .ol-badge { animation: none !important; }
.q-low .ol-badge .tier-badge, .q-minimal .ol-badge .tier-badge, .q-low .cp-icon canvas, .q-minimal .cp-icon canvas, .q-low .tc-badge, .q-minimal .tc-badge { filter: none !important; }
.q-low .mcard.ready, .q-minimal .mcard.ready, .q-low .lg-day.current.hl, .q-minimal .lg-day.current.hl, .q-low .rl-row.me, .q-minimal .rl-row.me { animation: none !important; }
.q-low .lvl-badge.xl .lvl-gear, .q-minimal .lvl-badge.xl .lvl-gear { animation: none !important; }
.q-low .lvl-badge.xl .lvl-gear svg, .q-minimal .lvl-badge.xl .lvl-gear svg { filter: none !important; }

/* low + minimal (0.7.9): endlessly looping decoration keeps the style / paint system busy on EVERY frame of the menus (profiling: ~0.7 ms of
   style recalculation per frame at 1x = 2.7 ms at 4x CPU throttle, with nothing else moving). They carry no information: frozen at rest. */
.q-low .lt, .q-minimal .lt,
.q-low .menu-badge, .q-minimal .menu-badge, .q-low .pg-dot, .q-minimal .pg-dot, .q-low .mc-ready, .q-minimal .mc-ready,
.q-low .tier.claimable .tn, .q-minimal .tier.claimable .tn, .q-low .ts-claim, .q-minimal .ts-claim,
.q-low .sb-bar i, .q-minimal .sb-bar i, .q-low .bar i, .q-minimal .bar i, .q-low .rk-bar i, .q-minimal .rk-bar i,
.q-low .panel.ready .ready-glow, .q-minimal .panel.ready .ready-glow, .q-low .btn.act.ready:not(.on), .q-minimal .btn.act.ready:not(.on),
.q-low .card.setb, .q-minimal .card.setb, .q-low .hw-pump, .q-minimal .hw-pump, .q-low .hw-bat, .q-minimal .hw-bat,
.q-low .hw-bat .wing, .q-minimal .hw-bat .wing { animation: none !important; }
.q-low .hw-pump, .q-minimal .hw-pump { filter: none !important; }
