Resolve routes from pathname (and legacy hash), add a notFound route with
a dedicated 404 page, and show a blurred workspace preview for
unauthenticated project visits. Wire up Next.js app-router entry files and
listen for popstate so history navigation updates the route.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>