Context: PR #28 ships every public screen statically imported by App.tsx. The production bundle is 550 kB (164 kB gzipped), which vite warns about at build time.
The cheapest fix is React.lazy() on each screen so each route splits naturally. The shell + home are the hot path; everything else can lazy-load.
Acceptance:
Context: PR #28 ships every public screen statically imported by
App.tsx. The production bundle is 550 kB (164 kB gzipped), which vite warns about at build time.The cheapest fix is
React.lazy()on each screen so each route splits naturally. The shell + home are the hot path; everything else can lazy-load.Acceptance:
/) loads only the hero + shell-needed code