ThemeToggle's mount effect reads localStorage then setTheme, a pattern
react-hooks/set-state-in-effect flags. It is safe here: localStorage is
SSR-unavailable so the read must happen post-mount, and ThemeScript
already applies the dark class before hydration (no page FOUC). Add a
targeted eslint-disable-next-line with justification.
web/ lint is now green (0 errors).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>