# Design Language for bada.city

## Aesthetics and Tone

bada.city is a **midnight foundry catalog from a city that doesn't quite exist yet** — a single editorial broadside printed on the inside of a candle-lit obsidian vitrine, where each artifact is photographed in **inflated-3d** and labeled like a catalogue raisonné from the year 2049. The conceit is precise and unusual: the **candle** is the sole light source in the entire site, but everything it illuminates is a **bulbous, helium-blown, latex-rubber-soft 3D sculpture** of a city object — a parking meter swollen until its display is a teardrop, a fire-hydrant inflated until its caps are pumpkins, a "WALK" pictogram puffed into a balloon-figure pilgrim. The mood is **futuristic-cutting-edge** but in the *quiet* register: not chrome-and-neon Blade Runner cutting-edge, but **gallery-late-at-night cutting-edge** — the deserted Saturday-2-AM hour at the design biennale when the docents have gone home and only the emergency exit candles are still lit.

The tonal axis is exactly three notes:

1. **Stillness** — every animation is slow, viscous, latex-physics, with springs critically damped to feel like room-temperature silicone, not bouncy rubber. Nothing snaps; everything **eases as if through honey**.
2. **Heat** — a single candle flame lives in the upper left of every section, hand-rendered with **8-frame loop noise** so the flicker is visibly artisanal, not procedural. Its warm 1850K orange is the **only warm hue in the entire palette**, surrounded by sub-zero blacks. The candle is the visitor's anchor.
3. **Mass** — every "city" object is rendered as an **over-inflated 3D primitive** (booleaned spheres, lofted toruses, smooth-shaded with a single subsurface-scatter pass), implying weight, soft skin, and slight translucency where the candle hits the rear edge.

Inspirations are **deliberately specific and slightly off-genre**: the catalog plates of *Object Lessons* by Dieter Roth, the inflatable typography of **Six N. Five** circa 2023, the candle-photography of Hiroshi Sugimoto's *Theaters* but reversed (lit instead of burned out), the blow-up urban-furniture renders of **Andrés Reisinger**, and the cursor-controlled lighting demos that **Bruno Simon's three.js portfolio** popularized — except here the cursor doesn't drive a car; it drives **the candle's hand**. The result is a site that feels like **a digital vitrine you have walked into alone, holding a single taper, examining inflated effigies of the city you live in**.

## Layout Motifs and Structure

The structure is **editorial-flow** in the literal magazine-monograph sense: one continuous vertical scroll of seven *plates*, each plate a full-viewport spread with **asymmetric column logic**, hand-set kerning, and editorial captions running in the marginalia. There is no header, no nav bar, no hero CTA, no footer in the conventional sense — only the candle, the scroll, and the plates.

**Spatial system — the "vitrine grid":**

- The page is a single column **min(960px, 88vw)** centered, but inside that column an **asymmetric 12-track grid** runs underneath. Tracks are unequal — the leftmost three are narrow (caption gutter), tracks 4–10 are the **plate field** (where the inflated-3d artifact sits), and tracks 11–12 are the **specimen-label gutter** at the right. This is the layout of a *Domus* photo essay rotated for screens.
- **Vertical rhythm is candle-paced**: every plate is `100svh` tall on desktop, with the artifact occupying roughly the middle 64% of vertical space and the caption nesting in the lower-left or lower-right specimen-label gutter, alternating plate by plate.
- The **candle widget** is a position-fixed element pinned to the upper-left at `top: clamp(28px, 4vw, 48px); left: clamp(28px, 4vw, 48px);` — it persists across every plate and is the **only fixed element on the page**. As the visitor scrolls, the candle stays. It is the reading lamp.

**Plate sequence (each one a full-viewport editorial spread):**

1. **Plate I — *Wordmark and Wick.*** A two-line wordmark "**bada / city**" set vertically in condensed typography, centered, rendered as if **carved into matte obsidian** with the candle's light raking across its bevels. Below the wordmark, one specimen line: *"a catalogue of inflated public objects, rendered after midnight, lit by hand."*
2. **Plate II — *Object 01: Hydrant Pneumatica.*** A latex-pink fire hydrant inflated until its body is a bulbous gourd. Caption in the right gutter, hand-set in 11pt condensed all-caps with a **fractional drop-cap "01"** flush left.
3. **Plate III — *Object 02: Crosswalk Pilgrim.*** The "WALK" pictogram blown up into a Michelin-Man balloon figure stepping into the dark. Caption in the left gutter this time — alternation is the whole rhythm.
4. **Plate IV — *Object 03: Bench Cumulus.*** A municipal park bench whose slats have been inflated into white sausage-rolls floating an inch above the ground.
5. **Plate V — *Object 04: Lamppost Lantern.*** A lamppost head inflated into a Chinese-paper-lantern globe that **subtly responds to cursor heat** — when the visitor's pointer enters its proximity, the globe brightens 8% and exhales a slow micro-rotation.
6. **Plate VI — *Object 05: Manhole Cake.*** A cast-iron manhole cover bulged upward like a jelly mold, rim still circular, surface engraved with the bada.city wordmark in negative.
7. **Plate VII — *Colophon.*** A single quiet plate listing the typefaces, the candle's color temperature (1850 K), the noise-grain texture's name (*Vellum 13B, scanned 2024*), and the visitor's local cursor coordinates rendered live in the marginalia as proof that *they were here*.

There is no horizontal navigation, no "Next" button, no progress bar. Reading is **a single downward gesture of the wheel or thumb**, lit by the candle.

## Typography and Palette

**Typography — Google Fonts only, condensed-doctrine with one display foil and one mono whisper:**

- **Display & wordmark — [`Oswald`](https://fonts.google.com/specimen/Oswald)** variable, weight 200–700, used for the masthead `bada / city`, plate numerals (`I` through `VII`), and object names (`HYDRANT PNEUMATICA`). Set at `clamp(4.4rem, 11vw, 9.6rem)` for the wordmark with **letter-spacing -2.0%**, all-caps with the small-caps trick disabled (true uppercase only). Oswald is the load-bearing **condensed** voice — its narrow proportions are what make the whole site feel **catalog-vertical** and exhibition-cool rather than dashboard-horizontal.
- **Captions, specimen labels, body — [`Barlow Condensed`](https://fonts.google.com/specimen/Barlow+Condensed)** variable, weights 300/400/500, used for marginalia at `13px / 1.55` with **letter-spacing +5.0%** and **all-caps for labels**, sentence-case for caption prose. Barlow Condensed is the **second condensed register** — slightly humanist, with subtle terminals — used for everything that is not a title.
- **Numerals & technical metadata — [`JetBrains Mono`](https://fonts.google.com/specimen/JetBrains+Mono)** at `11px`, only for: cursor-position readout in the colophon, color-temperature notation (`1850 K`), noise-texture serial number (`Vellum 13B`), and the fixed candle widget's flicker timestamp. Mono appears nowhere else — **it is reserved for instrumentation**.
- No serif anywhere. No italics anywhere. The site is **typographically monastic** — three families, condensed-condensed-mono, deployed with discipline.

**Palette — high-contrast, sub-zero blacks against a single warm candle hue:**

| Role | Hex | Notes |
|---|---|---|
| `--obsidian` | `#0A0B0E` | The page background. Not pure black — there's a 4-point lift toward warm-blue-black so the candle doesn't look glued on. |
| `--vitrine` | `#13151A` | Slightly raised plane for the artifact platform — used as a barely-perceptible vignette behind each inflated object. |
| `--paper` | `#F4EFE4` | The vellum tone for body type. Off-white, with a warm cream cast — the color of an old catalog page lit by candle. |
| `--candle` | `#FF7A1F` | The flame's primary orange. 1850 K. The single warm color. Used on the candle widget, the plate numerals' small accent dot, and active hover states only. |
| `--ember` | `#B33A0E` | The candle's wick base — a single deeper-red point at the wick's root. Used on the smallest interactive details only (cursor coordinates background plate, link underlines on hover). |
| `--latex` | `#E9DFC8` | The neutral subsurface tint shared by the inflated 3D objects when they sit in candle shadow. |
| `--latex-lit` | `#FFE6BA` | The warm-lit edge of inflated objects where the candle's rim-light hits them. |

The contrast ratio between `--obsidian` and `--paper` is roughly **18.7:1** — this is **deliberately extreme high-contrast**, an intentionally severe range that throws every inflated 3D object into theatrical relief. The candle's `--candle` orange is the **single chromatic anomaly** in an otherwise monochromatic black-and-cream world; everywhere it appears, it is doing dramaturgical work.

## Imagery and Motifs

**Imagery is exclusively inflated-3d artifacts photographed in candlelight, with universal noise-texture overlay.** Five rules govern every image:

1. **No photography of real objects.** Every artifact is a rendered 3D sculpture (the production note in the colophon describes them as "blown in Blender, baked in Cycles, scanned through 1980s catalog noise"). Real photos are forbidden — the conceit is the *inflated double* of a real city object.
2. **Single light source: the candle, upper-left.** All artifacts are lit from a virtual point matching the on-screen candle's pixel position (`top: 4vw, left: 4vw`) with a 1850 K color temperature. The shadow falls down-and-to-the-right at a constant 30° angle across the entire site. **Lighting consistency is the law of the catalog.**
3. **Inflated geometry only.** All forms are smooth, swollen, latex-rubbery — silhouette tests must pass the "could be a Macy's parade balloon" test. No sharp edges, no hard creases, no metal highlights. Subsurface scattering on every material at 0.4–0.6 thickness.
4. **Noise-texture overlay across the whole canvas.** A 256×256 monochrome grain tile (`--noise-overlay.png`, ~6% opacity, screen-blend mode) is applied as a fixed-position pseudo-element above every layer. It catches the candle's `--candle` hue subtly and gives the site the **patina of a printed lithograph**. The noise does not move with scroll — it is a fixed grain on the screen, like film stock in the projector gate.
5. **Candle-atmospheric secondary motif.** A second, smaller motif lives in the margins: tiny **wax drip glyphs** — five hand-drawn SVG droplets, each 14px tall, semi-transparent `--latex-lit`, used as section dividers between plates. They appear to have **dripped from the candle widget down the page** — their vertical stagger across the seven plates traces the arc of the candle's slow burning over the visitor's reading time.

**Per-plate artifact specifications (5 sculptures, plus a cold-open and a colophon, totaling seven plates):**

- **Plate II — *Hydrant Pneumatica*:** A traditional fire hydrant whose two side caps have been inflated into pumpkin-bulbs, top cap puffed into a beret. Material: **latex-pink** (#E9B6B0) with **subsurface scatter 0.5**. Sits on `--vitrine` ground, casting a long soft shadow at 30°. Slow rotation: 0.6° per second around the vertical axis.
- **Plate III — *Crosswalk Pilgrim*:** The white "WALK" pictogram inflated into a stocky Michelin-Man-ish figure mid-stride. Color: **paper-white** (#F4EFE4) with the candle rim-lighting his front shoulder at `--latex-lit`. He does not animate; he simply exists, frozen mid-step.
- **Plate IV — *Bench Cumulus*:** A four-slat municipal bench whose slats are inflated into white pillow-sausages, hovering 18 pixels off the ground (no legs visible). Material: matte cream latex. Subtle bob: ±3px vertical sway over a 6-second sine cycle.
- **Plate V — *Lamppost Lantern*:** A streetlamp pole, top inflated into a paper-lantern globe. The globe is **the one cursor-reactive element** on the page — when the cursor enters within `200px` of its center, its surface brightens by 8% and it emits a soft `--candle`-tinted bloom. (See *Cursor-Follow* in the next section.)
- **Plate VI — *Manhole Cake*:** A cast-iron round manhole cover bulged upward like a baked bread dome, retaining its concentric ring engravings, with the bada.city wordmark engraved into the apex in negative. Material: a **dark vulcanized-rubber** finish — surface is matte black with `--latex-lit` rim-light along the upper-left curve.

**Decorative micro-elements:**

- A **single hand-rendered candle widget** (SVG, 80px tall) pinned upper-left, with an 8-frame `<animate>` flame cycle (frame duration 90ms each) that loops indefinitely. The flame casts a soft 240px-radius radial gradient onto the page background that **drifts ±4px** in sympathy with its flicker. The wick has a real `--ember` glow at its base.
- **Wax drip dividers** (the secondary candle-atmospheric motif) — five SVG droplets between plates, each at a slightly different vertical drip-length, placed asymmetrically.
- **Specimen-label corner ticks** — four 6px L-shaped corner rules in `--paper` at 30% opacity wrap each artifact's specimen label, mimicking the registration marks of a museum's vitrine label.

## Prompts for Implementation

Build bada.city as a **single 7-plate vertical scroll, lit entirely by one candle, populated entirely by inflated-3d city artifacts, narrated entirely in condensed type.** It is one editorial broadside, not a website-with-pages.

**Engineering blueprint:**

1. **HTML skeleton — single `index.html`, seven `<section class="plate">` elements, one `<aside class="candle">`, one `<footer class="colophon">`.** No nav, no header, no hero CTA, no pricing block, no stat grid, no testimonial carousel, no FAQ, no footer-with-links. The page is a catalog, not a landing page.
2. **CSS variables** — declare all seven palette colors at `:root`, declare a `--scroll-progress: 0` custom property updated by JS, declare a `--cursor-x` and `--cursor-y` pair updated by JS on `pointermove`. These three CSS variables drive **every** interactive effect on the page; no other JS-to-CSS bridge exists.
3. **3D artifacts — inline `<model-viewer>` or pre-rendered video loop?** Both options are documented in the colophon. **Preferred:** pre-rendered 1920×1080 H.265 looping `<video>` tags, 8-second loops, muted, autoplaying, with `object-fit: cover` and a `mix-blend-mode: screen` overlay layer for the noise. This avoids the WebGL cost and keeps the candle-atmospheric mood **stable across every device**. Fallback: high-res baked PNGs at 2560px wide with a faint CSS-only animation (rotateY 0.6deg/s).
4. **The candle widget** — inline SVG, 8-frame flame loop using SMIL `<animate attributeName="d">` to morph the flame path, plus a CSS `filter: drop-shadow(0 0 24px var(--candle))` that intensifies the radial bloom. The widget is `position: fixed; top: clamp(28px, 4vw, 48px); left: clamp(28px, 4vw, 48px); z-index: 50;`.
5. **The candle's radial light on the page** — a `body::before` pseudo-element, position fixed, full viewport, `background: radial-gradient(circle at clamp(28px, 4vw, 48px) clamp(28px, 4vw, 48px), rgba(255,122,31,0.07) 0%, rgba(255,122,31,0.02) 200px, transparent 480px);` — and inside the SVG, a 16-second-period sine animation jitters the gradient origin by ±2px to make the candle "breathe."
6. **Cursor-follow (the single interactive pattern):** Listen for `pointermove`, write `--cursor-x` and `--cursor-y` as percentages of viewport. The Plate V Lamppost Lantern is the only element that reacts — its `filter: brightness()` and `box-shadow` blur radius respond to the **distance between cursor and globe center**, computed in CSS using `calc(...)` and the cursor variables. Closer cursor = brighter globe + larger bloom. Maximum cursor reactivity is gated to that single artifact; everywhere else the cursor is just an arrow on velvet. **This restraint is the point.** The site is not a cursor-follow particle-explosion festival; it is a single cursor-reactive object in an otherwise still room.
7. **Scroll behavior — slow, viscous, plate-snapping.** Use CSS `scroll-snap-type: y mandatory` on `<main>`, `scroll-snap-align: start` on each `.plate`. Each plate fades its caption in via `IntersectionObserver` with a 600ms cubic-bezier(0.22, 1, 0.36, 1) ease, plate numerals slide upward from y+40px to y+0px on entry. **No parallax.** No depth scrolling. The plates are still images that the visitor walks past — their movement is the visitor's own scroll wheel, not gratuitous parallax.
8. **Wax drip dividers** — placed between plates as `<svg class="wax-drip">` elements with a 2.4-second `<animate attributeName="cy">` that **slowly grows** the drip length on first scroll-into-view, then freezes. They never reset.
9. **Noise-texture overlay** — a single `body::after` with `background-image: url(/img/grain-vellum-13b.png); background-repeat: repeat; opacity: 0.06; mix-blend-mode: screen; pointer-events: none; position: fixed; inset: 0; z-index: 100;`. Static. It does not animate. The grain is the projector gate.
10. **The colophon (Plate VII)** — renders the visitor's live cursor coordinates in the right gutter using JetBrains Mono at 11px, updated on every `pointermove`. Above it, four lines of catalog metadata: type families, candle K-temperature, noise tile name, and a hand-set credit "*hand-blown after midnight*". This is the only page element that admits the visitor exists.

**Storytelling arc — the visitor's journey through the seven plates:**

The visitor arrives in darkness (Plate I), holds a candle (the widget pins to upper-left), walks past five inflated effigies of municipal furniture in turn (Plates II–VI), and exits at a colophon that proves they were there (Plate VII, with their cursor coordinates printed live). The narrative is **the late-night solo museum walk** — silence, a wick, and rooms of soft sculptures. There is no purchase decision, no signup, no pricing tier, no roadmap, no team page. **bada.city is not selling anything.** It is a city of inflated objects, lit by a candle, for the duration of the visitor's scroll.

**Interaction restraint — what is forbidden:**

- No hero CTA above the fold. No "Get started" button. No "Book a demo." No email capture. No newsletter modal. No cookie banner with personality. No 3-column features section. No 4-column stats section. No testimonial slider. No comparison table. No pricing tiers. No FAQ accordion. No footer with twelve link columns.
- No bouncy spring animations. No magnetic buttons. No tilt-3D card flips. No particle-burst cursor trails. No snap-to-grid horizontal scroller. No fullscreen video background with text-overlay-on-hover.
- No emoji. No flat-design icons. No stock photography. No illustration of a person waving.

**The site is over when the visitor reaches the colophon.** There is no next step. They close the tab carrying the memory of seven inflated objects under a candle.

## Uniqueness Notes

**Differentiators from the existing 39-design corpus, contextualized by the frequency analysis:**

1. **The first inflated-3d aesthetic in the corpus, paired with the rarest motif on the registry — *candle-atmospheric* (2%).** The frequency report shows hand-drawn at 84%, editorial at 51%, glassmorphism at 33% — no design has yet built around **inflated-3d**, and only one previous design has touched candle-atmospheric. bada.city is the **first design to make the candle the entire site's light source** and the **first design to render every artifact as latex-rubber inflated geometry**. This combination — a candle illuminating soft-balloon city furniture — does not exist anywhere else in the registry.

2. **Editorial-flow layout in a registry dominated by centered (92%) and full-bleed (87%).** Editorial-flow is logged at only 2% of the corpus. bada.city builds a strict **catalog-monograph editorial-flow** with seven full-viewport plates and asymmetric specimen-label gutters — closer to a *Domus* photo-essay or a museum catalogue raisonné than to any standard landing-page archetype. The sister design archaic.studio uses editorial-flow for a scholarly book; bada.city uses it for an after-hours museum vitrine. Same layout vocabulary, opposite worlds.

3. **Condensed typography at 5% becomes the site's entire voice.** Condensed appears in only 5% of the registry, and most designs that touch condensed use it as accent. bada.city makes condensed (Oswald + Barlow Condensed) the **load-bearing entire typographic system** with no serif and no italics anywhere — a discipline more austere than any prior condensed deployment. The narrow vertical proportions of condensed type **mirror the vertical scroll of the seven plates** and the vertical wick of the candle, making typography and layout congruent.

4. **High-contrast palette as theatrical chiaroscuro, not dashboard contrast.** High-contrast appears at 12% but is usually used for accessibility-compliant SaaS pages. bada.city pushes contrast to an **18.7:1 ratio between obsidian and paper**, then introduces a **single 1850 K candle hue** as the lone chromatic anomaly. This is **Caravaggio's tenebrism applied to a webpage** — extreme darkness with a single warm light source — not a corporate accessibility chart.

5. **Cursor-follow gated to a single sculpture.** Cursor-follow appears in 15% of the corpus and is usually used for full-canvas particle effects or tilting cards. bada.city **gates cursor reactivity to one element** — the Lamppost Lantern in Plate V — and uses the visitor's pointer as a **literal heat source** that brightens the lantern's globe. Restraint becomes the message: *most of the city does not respond to you; one lamp does.*

6. **Futuristic-cutting-edge tone (5%) rendered in candle-quiet, not chrome-loud.** Futuristic-cutting-edge usually means neon, HUDs, scanlines, glitch artifacts. bada.city makes it mean **a quiet midnight 2049 catalog of inflated city furniture lit by a candle** — a tonal inversion of the genre. The "cutting edge" here is the **softness of the rendering**, not the brightness of the lasers.

7. **No CTA, no pricing, no signup, no stat grid.** The frequency analysis does not measure these explicitly, but a survey of existing designs shows most include at least one conversion module. bada.city has zero. The visitor enters a candle-lit catalog, scrolls past seven plates, reads a colophon with their own cursor coordinates, and leaves. **The site is the experience; the experience is the entire offer.**

**Chosen seed (from assignment):** aesthetic: inflated-3d, layout: editorial-flow, typography: condensed, palette: high-contrast, patterns: cursor-follow, imagery: noise-texture, motifs: candle-atmospheric, tone: futuristic-cutting-edge.

**Avoided patterns from frequency analysis:** hand-drawn aesthetic (84% — saturated), photography imagery (92% — saturated), centered layout (92% — saturated), full-bleed layout (87% — saturated), vintage motifs (87% — saturated), warm palette (97% — saturated), mono typography as dominant register (94% — saturated as primary), parallax patterns (89% — saturated), professional tone (33% — overused as default), friendly tone (28% — overused as default). bada.city refuses every one of these majority defaults and builds itself entirely from the **rare-end of the vocabulary**.
<!-- DESIGN STAMP
  timestamp: 2026-05-05T10:15:04
  seed: seed
  aesthetic: bada.city is a **midnight foundry catalog from a city that doesn't quite exist y...
  content_hash: e6fceefb96de
-->
