Style guide

Direction C — Night Kiln. Night identity for every visitor (GATE-VISUAL amendment 2026-07-28); the daylight scheme stays first-class but is manual-toggle only. Every value below is a token from style.css §1; nothing on this page (or in any template) uses a raw color.

Color scheme

Default clears the stored preference — night, the site default for every visitor (prefers-color-scheme is not consulted; GATE-VISUAL amendment 2026-07-28). Light/Dark persist to localStorage (msite:theme) and are re-applied before first paint by the pre-paint snippet — the top-bar theme toggle (W-7, shipped) is this same plumbing.

Ochre ramp (Tier 1, OKLCH hue 46)

  • ochre-50
  • ochre-100
  • ochre-200
  • ochre-300
  • ochre-400
  • ochre-500
  • ochre-600
  • ochre-700
  • ochre-800
  • ochre-900

Tinted neutrals (Tier 1)

  • ink-900
  • ink-700
  • ink-500
  • ground-50
  • ground-100
  • ground-200
  • night-900
  • night-800

Semantic tokens (Tier 2) — live in the current scheme

--color-text on --color-bg (≥7:1) --color-text-muted (≥4.5:1) --color-link (≥4.5:1)
--color-on-surface on --color-surface — the committed ember field link on surface
--color-on-surface-strong on --color-surface-strong
--color-page-text on --color-page — the lit page (≥7:1 both schemes) --color-page-link

Section accents (IA-2) — one maker, two rooms

Professional room — banked ember

Surfaces sit on ochre-700 with paper text: disciplined, low flame.

Community room — open flame

Surfaces sit on ochre-500 with night-ink text: warmer, brighter.

Type scale — base 1.125rem × 1.414

  1. --step--1 Real things, shown
  2. --step-0 Real things, shown
  3. --step-1 Real things, shown
  4. --step-2 Real things, shown
  5. --step-3 Real things, shown
  6. --step-4 Real things, shown
  7. --step-5 Real things, shown

Body — Archivo regular, with true italics, weights to 900, and tabular figures for tables: 0123456789.

Spacing, radius, motion, measure

  • --space-1
  • --space-2
  • --space-3
  • --space-4
  • --space-5
  • --space-6
  • --space-7
  • --space-8
  • --space-9

--radius-1: 2px · --radius-2: 6px · --dur-1: 150ms · --dur-2: 250ms · --ease-out: cubic-bezier(0.2, 0, 0, 1) · --measure-prose: 70ch · --prose-size: 1.1875rem / --prose-leading: 1.75

Button + hover + focus ring demo Ghost button (S8) (Tab to them: 3px ring, ≥3:1, offset 2px. Hover eases out at --dur-1.)

The lit page — long-form reading + every core block (03 §F)

Chapter sample (seed content)

The harbour was empty when Mara reached it, which was wrong in three different ways she could name and one she couldn’t.

The boats were gone — all of them, even the Ledabren, which hadn’t left its mooring in six years. The gulls were silent. And the tide was out further than the charts said it could go.

The unnameable wrongness, she decided later, was the smell — iron and cut grass, nothing like the sea.

First Light, footnote 1
  • Eleven berths, eleven absences.
  • A bell, ringing from the water.
  • No harbour here has ever had a bell buoy.
do_action( 'msite_chapter_updated', $post->ID, (int) $post->post_parent, $context );

Inline code and a page-link at ≥4.5:1.

Berth log (tabular figures)
BerthVesselLast seen
1LedabrenSix years ago, moored
2Quick SaltYesterday, dawn
3Herron’s EyeYesterday, dusk
Theme screenshot placeholder demonstrating image + caption styling
Screenshots get a 1px border token (W-7: no filter hacks in dark).