87ddb845f4
Frontend half of §22 M3, paired with the M3-backend spec. /p/<project>/ routing (BrowserRouter + nested Routes + DeploymentProvider/ProjectLayout), N=1 redirect, the VITE_APP_NAME->runtime hard cut (brandTitle fallback), per-project theme overlay, real server-side 308 redirects, deployment directory + project switcher. Scope boundary: corpus calls stay unscoped (default project only) with a guard placeholder for non-served projects; second-project content is gated on Plan B. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>