# lucid.rodeo — Ensemble of themed main sites

> The rodeo outgrew a single homepage. It is now an **ensemble** of skunkworks
> and private projects — each with its own front door, accent lane, and library
> of cards. The root is a gate, not a dump.

## The pattern

| Surface | Role | `data-site` | Accent lane |
|---|---|---|---|
| `/` | **Ensemble gate** — pick a world | `ensemble` | gold (default kit) |
| `/religion/` | **Religion** main — scripture & study | `religion` | purple / wonder |
| `/the420code/` | **420Code** main — axioms, proofs, Lucid | `420` | olive / camel |
| `/physics/` | **Physics** main — a₀, cosmos, sims | `physics` | blue / science |
| `/numbers/` | **Numbers** main — integers & irrationals | `numbers` | gold thread |
| `/estate/` | **Estate** main — vision, Klaus, Full Send | `estate` | mint |
| `/incerto/` | Incerto exhibits (deep project) | `incerto` | terracotta |
| `/music/` | Music player (deep project) | — | — |
| `/skunkworks/` | Demos (under Estate) | — | — |
| `bluebook.lucid.rodeo` | Lucid Bluebook (own deploy) | — | — |

**Rule:** a themed main owns its library. The gate only lists worlds. Deep pages
keep working at their old URLs; the main is the curated front door.

## How theming works

1. Set `data-site="religion|420|physics|numbers|estate|incerto|ensemble"` on `<html>`.
2. Light-first sites also set `data-site-default="light"` (420Code).
3. Load `/brand/theme.js`, then `/theme.css` (imports `sites.css` + `hub.css`).
4. Use the shared hub shell classes (`.hub-card`, `.hub-header`, …).
5. Do **not** scatter hex for new hub work — retoken in `brand/sites.css`.

## Subdomains

Point these CNAMEs at the same Pages/Render project as `lucid.rodeo`.
Host redirects live in `_redirects`:

| Host | → |
|---|---|
| `religion.lucid.rodeo` | `/religion/` |
| `420.lucid.rodeo` | `/the420code/` |
| `physics.lucid.rodeo` | `/physics/` |
| `numbers.lucid.rodeo` | `/numbers/` |
| `estate.lucid.rodeo` | `/estate/` |

`bluebook.lucid.rodeo` stays its own deploy (`lucid-bluebook`).

## Adding a new world

1. Add a token pack in `brand/sites.css` (`html[data-site="…"]`).
2. Create `/your-world/index.html` with the hub shell + its library cards.
3. Add one card on the ensemble gate (`/`).
4. Optional: host redirect in `_redirects` + one line in this table.
