The animated canvas background patterns (theme.js applyBgPattern) run regardless of the OS reduce-motion setting. style.css has ~10 prefers-reduced-motion blocks for CSS animations, but the JS-driven canvas effects bypass all of them — per-frame paint work continues for users who explicitly asked for reduced motion (accessibility, WCAG 2.3.3), and it is pure CPU/battery waste on software-rendered machines.
Fix on develop: c1231a2 — gate at the single applyBgPattern choke point (login.html routes through it too), with a matchMedia change listener so toggling the OS setting takes effect live.
Found via the macOS Tahoe bench (Reduce Motion on, SwiftShader render). Upstream-candidate.
The animated canvas background patterns (theme.js applyBgPattern) run regardless of the OS reduce-motion setting. style.css has ~10 prefers-reduced-motion blocks for CSS animations, but the JS-driven canvas effects bypass all of them — per-frame paint work continues for users who explicitly asked for reduced motion (accessibility, WCAG 2.3.3), and it is pure CPU/battery waste on software-rendered machines.
Fix on develop: c1231a2 — gate at the single applyBgPattern choke point (login.html routes through it too), with a matchMedia change listener so toggling the OS setting takes effect live.
Found via the macOS Tahoe bench (Reduce Motion on, SwiftShader render). Upstream-candidate.