The app painted white until <ThemeProvider> mounted and set data-theme,
then snapped to the dark theme. Two fixes:
- Inline head script (rsbuild html.tags) sets data-theme before first
paint, mirroring modern-sk's exact logic (localStorage 'modern-sk-theme'
|| 'dark') so there's no second flip when the provider mounts. Inline =
zero round-trips.
- body now paints var(--color-bg) so the themed background shows before
React mounts #root and layers the felt grain on top.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>