# Gotham The after-dark identity of a nightlife venue or private members' club. Cinematic near-black luxe, brass hairline accents, letterboxed heroes and tall condensed display type. A codeless BlockNinja `.bnp` theme (no Go, no `plugin.wasm`) — every block, page template, override and the email wrapper is a host-rendered `.ninjatpl`. ## Identity - **Palettes** — five dual-mode presets. Light is silver-screen platinum; dark is velvet black. Both are intentionally tuned (`presets.json`). - **Type** — Antonio (condensed display headings), Cormorant Garamond (elegant body), Inter (meta), IBM Plex Mono (mono). Bundled OFL woff2 in `assets/fonts/`; always consumed via `var(--font-heading|body|mono, ...)`. - **Motion** — MID tier. JS scroll reveals and a spotlight-follow on the hero. No canvas. `prefers-reduced-motion` honoured; renders fully with no JS. - **Utilities** — `reel-*`, `film-grain`, `spotlight`, `letterbox-scrim`, `reveal` in `manifest.yaml` `css.input_css_append`. Colour is always `hsl(var(--token))`. ## Page templates (`templates/gotham/`) `default`, `landing`, `article`, `full-width`, `blog-index`, `contact`, `auth`, plus `centered` (retained extra key). ## Overrides (`templates/overrides/gotham/`) All 49 mandatory builtin keys are re-skinned as template overrides (chrome, marketing, primitives, commerce/local, blog family, auth surface, the themed 404). Fields, provider reads, form wiring and block JS are preserved verbatim from the frozen builtins; only presentation changes. ## Theme blocks (`blocks/`) True persona furniture only: - `gotham:door_strip` — sticky door strip (reservations line, guest-list CTA, hours) - `gotham:events_marquee` — line-up of nights and residencies - `gotham:membership_tiers` — membership cards - `gotham:bottle_menu` — cellar / bottle-service list ## Seed (`seed/`) `seed.json` (`demo: true`) installs a private-club demo: home, about, a journal with three posts, a door/contact page (form + `contact_submissions` data table), and a members' login. `workflows.json` emails admins on a form submission. ## Build ``` make # pack gotham-.bnp (codeless, no wasm) make verify # loader-identical checks make archive-check make publish # ninja plugin publish --bnp ```