three (Three.js) is imported at the top level of DottedSurface, adding ~150 kB to the landing page initial load.\n\nConvert DottedSurface to use React.lazy + Suspense with dynamic import for Three.js. DottedSurface should only load after the landing page is interactive.\n\nAcceptance Criteria: Landing page Lighthouse performance score increases by at least 5 points.\n\nFiles: components/ui/dotted-surface.tsx (Modify), app/page.tsx (Modify — add Suspense wrapper)
three (Three.js) is imported at the top level of DottedSurface, adding ~150 kB to the landing page initial load.\n\nConvert DottedSurface to use React.lazy + Suspense with dynamic import for Three.js. DottedSurface should only load after the landing page is interactive.\n\nAcceptance Criteria: Landing page Lighthouse performance score increases by at least 5 points.\n\nFiles: components/ui/dotted-surface.tsx (Modify), app/page.tsx (Modify — add Suspense wrapper)