# sometemple · production manual

This file is the shared style guide for everyone (humans, subagents) building
new rooms in sometemple. Read it before writing a page. Every page you produce
should obey what follows.

---

## Project

`sometemple` is a labyrinth of static HTML pages — an elegant, deliberately
"old-internet" net-art piece. Each page is its own small artwork: a vitrine,
a corridor, an atmosphere, a thought. There is no framework, no build step,
no bundler. Just HTML, one shared `style.css`, one tiny `trail.js`, and a
small handful of per-page CSS overrides.

The labyrinth is read by walking through it. Pages link to other pages.
Visitors get lost on purpose.

## Working directory

`/Users/milton/vibespace/sometemple/`

All files live flat in this directory. New pages are also flat — no
subdirectories. Filenames are lowercase, ascii, underscores allowed.

## House rules (must obey)

1. **Static HTML only.** No external resources (no Google Fonts, no images,
   no remote scripts, no analytics).
2. **One file = one room.** Self-contained: read with no internet.
3. **Always** include `<link rel="stylesheet" href="style.css">`.
4. **Always** include `<script src="trail.js" defer></script>` and an empty
   `<div class="trail"></div>` for the breadcrumb.
5. **Always** include a `.crumb` (top-left) and `.ret` (bottom-right) — see
   template.
6. **Always** link back to `atlas.html` and `index.html` from `.ret`.
7. **Cross-link** to 2–6 thematically related rooms in your prose.
8. **Mobile-OK**: `<meta name="viewport" content="width=device-width,initial-scale=1">`
   and use `clamp()` for hero type.
9. **No emojis**, no Unicode toys for decoration unless deliberately
   typographic (`·`, `—`, `∴`, `✶`, `☾`, `◉`, `▾`, etc. are fine in moderation).
10. **No JavaScript** in a room unless the interaction is the whole point —
    and even then, keep it short, vanilla, no deps.

## Voice

- Second person ("you"). Sometimes impersonal.
- Lowercase preferred in body. Use proper nouns only when needed.
- Cryptic but coherent. Poetic, never whimsical, never cute.
- Short. **Two to four small paragraphs of prose** per page is plenty.
- Concrete imagery beats abstraction. A specific kettle, a specific window.
- Restraint over flourish.

Bad: "Welcome! 🌙 Discover the magical labyrinth of sometemple!"
Good: "a long rain, not particularly heavy. it has been going since before
the building was built."

## Typography & palette (from `style.css`)

CSS variables you can use directly:

```
--ink     #0a0a0a   primary dark bg
--char    #141414
--soot    #1a1a1a
--dust    #2a2a2a
--ash     #5a5a5a
--bone    #e9e4d6
--linen   #f4f1e8
--candle  #c8b07a   (warm accent)
--amber   #e2b75c
--oxide   #8a3a2a   (rust/red accent)
--rust    #6a2a1a
--moon    #a8c0c8   (cool accent)
--pine    #6a8a5a
--sky     #6a8aa8
--slate   #4a5a6a
--plum    #4a3a5a

--serif   "Iowan Old Style", "Cormorant Garamond", Times, serif
--mono    ui-monospace, "SF Mono", Menlo, Consolas, monospace
```

Body text: serif. Italic for hero titles. Mono for labels, breadcrumbs,
small numbers.

Default font-size 16px; line-height 1.65–1.95 for body prose.

## Existing utility classes

- `.crumb` — top-left fixed breadcrumb label (use mono, small caps)
- `.ret` — bottom-right return nav (always links atlas + index)
- `.trail` — visited-rooms breadcrumb (mounted by `trail.js`)
- `.room`, `.room.wide`, `.room.narrow` — page containers
- `h1.title`, `.subtitle`, `.lede`, `.exits`, `.card`, `.glyph`, `.rule`
- `body.grain` — subtle dotted texture overlay
- `body.vignette` — corner darkening
- `body.bone` — light-paper variant; use `--linen` bg, `#1a1a1a` text
- `body.dusk`, `body.dawn`, `body.sea`, `body.forest` — tonal variants

Use them when they fit. Override freely with per-page inline `<style>`.

## Template (canonical)

```html
<!doctype html>
<html lang="zxx"><head>
<meta charset="utf-8">
<title>[ROOM NAME] · sometemple</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="style.css">
<style>
  /* room-specific styles only — no resets, no globals */
  body { background:[…]; color:[…]; overflow:[…]; }
  /* … */
</style>
</head>
<body class="[optional: grain / vignette / bone / dusk / …]">
  <div class="crumb">— [region/name]</div>

  <!-- room content here -->

  <div class="ret"><a href="atlas.html">atlas</a> · <a href="index.html">return</a></div>
  <div class="trail"></div>
  <script src="trail.js" defer></script>
</body></html>
```

Keep each page ≤ ~250 lines.

## Linking conventions

In prose, link inline with the natural word, with class `q` or with the
visual treatment `border-bottom: 1px dotted …; padding: 2px 4px`. Hover
brightens.

**Always exit to** `atlas.html` and `index.html` via `.ret`.

**Cross-link to your wing-hub** if one exists (e.g. `wing_colours.html`).

**Sprinkle 2–6 inline cross-links** to other rooms (existing or new) in the
prose, never as a dump of "see also". Make them feel earned by the sentence.

## Existing rooms (current 125, you may link to any of these)

Thresholds: index, doors, corridor, map, lost
Depths: well, stairs, deeper, deepest, basement, trapped
Surfaces: surface, moon, garden, tower, white, black
Selves: eye, mirror, you, me, us, them, solitude
Minds: memory, forget, dream, wake, silence, noise, breath, ritual
Measures: time, number, word, question, answer, never, always, clock_room, hourglass
Limits: nothing, everything, circle, glitch, 404, exit, secret
Lexicon: naturata, naturans, metaphor, adundas, wreathus, hexture, idolum, lacuna
Apparatus: library, catalogue, atlas, ascii, colophon, errata, marginalia, palimpsest, footnotes, glossolalia
Atmospheres: rain, snow, fog, mist, wind, storm, frost, dusk, dawn, noon, midnight, twilight, four_am, vigil
Objects: coin, key, letter, candle, stone, feather, ribbon, photograph, pen, watch, matchbox, thimble, glove, leaf, window, kitchen
Strangers: stranger, neighbour, visitor, witness, custodian, child, sleeper, walker, traveller
Geographies: sea, river, forest, station, road, harbour, bridge, lighthouse, island, ferry
Sounds: creak, drip, knock, ticking, echo, whisper, rumor, footstep, humming, chime

## Quality bar

- **Distinct.** No two rooms look identical. Each has its own visual idea.
- **Restrained.** No room has more design than it needs.
- **Considered.** Margins, type sizes, hover states, transitions all feel
  intentional.
- **Mysterious.** A page reveals its title and texture; not its whole life.
- **Earned.** Each link in prose feels like the writer wrote that sentence
  because the link belongs there.

## What NOT to do

- Don't introduce a JS framework.
- Don't add a "back" button (we have `.ret` and the trail).
- Don't put navigation menus everywhere — only `.crumb` and `.ret`.
- Don't write "Welcome to sometemple, a magical place where…". The labyrinth
  doesn't introduce itself.
- Don't write 12-paragraph essays. Write 3 short ones, and stop.
- Don't be cute. Don't be ironic. Don't wink at the reader.
- Don't use the word "magical", "mysterious", "journey", "awesome", or
  "amazing" anywhere on a page.

## Exemplars

Read `silence.html` and `coin.html` and `kitchen.html` before writing.
That is the bar. (And `well.html`, `naturans.html`, `memory.html` for prose.)

## When you finish

After writing all files in your batch, briefly verify:
- Every file has `style.css` linked
- Every file has `.ret` linking atlas + index
- Every file has `trail.js` script + `.trail` div
- Every file cross-links 2–6 rooms in prose
- Every file has a unique visual idea
