GET /api/mysteries returns only mysteries with an entrypoint (empties are
filtered out), and the splash now lists them as case files with a per-case
BEGIN / RESUME action instead of a single hardcoded New Game.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
vite.config.ts now reads WEB_PORT (Vite) and PORT (API) from .env via
loadEnv, with the /api proxy following PORT and strictPort on — so two
branch checkouts can each run `npm run dev` on their own ports.
Play now always lands on the splash at the bare root instead of silently
resuming an active playthrough; a Resume action continues one when present.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>