Architecture
Multi-brand Platform
One core platform, one set of shared components, and a brand layer (tokens + assets) that swaps per partner. The same Sidebar, Topbar, GameCard, and auth flows render Punt, Purple Cat, or any future brand — only the design tokens in src/styles.css and the config in src/lib/brand.ts change.
Core Platform
Routing, data layer, hosting, auth provider, feature flags. Brand-agnostic.
Shared Components
Sidebar, Topbar, GameCard, Auth flows. Consume tokens — render any brand without code changes.
Brand Layer
Tokens in styles.css + config in brand.ts. New partner ≈ swap two files.