CI / Build & Quality Checks (push) Canceled after 0s
CI / Trigger Desktop Build (push) Canceled after 0s
CI / Secret scan (gitleaks) (push) Canceled after 0s
CI / Docker image build & smoke test (push) Canceled after 0s
CI / Playwright smoke (e2e) (push) Canceled after 0s
All 11 seasonal overlays (particles + vanilla-extract keyframes) were in the main JS and CSS for everyone year-round. Each is now a React.lazy chunk fetched only when that season is active (auto date or override) or previewed in Settings → Appearance; the schedule/override decision stays in the main bundle. check-bundle-size: largest chunk 332.4 kB → 320.1 kB gzip; main CSS 68.4 kB → 56.5 kB; total gzip 1551.6 kB → 1561.3 kB (per-chunk overhead, only paid when a season is on). Verified headless: no theme chunk requested at startup with 'auto' out of season; the Settings grid fetches the 11 previews; picking Halloween renders the full-screen overlay (20 particle nodes). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA