Set in IBM Plex Sans and IBM Plex Mono. Mono carries the structural furniture — labels, identifiers, status, metadata; sans is for prose and headings. One light reading ground, with dark panels where the page is chrome or is showing machine output. Identity is a 4px rule on the left edge, never a tinted fill. No dark mode, no toggle, and no JavaScript ships.
The palette
Nine channels, one per project, chosen for this site. They are not read from anywhere and they do not encode anything about the projects they mark. The figures are contrast against the page ground, taken on 9 August 2026. The generator re-derives every value and re-checks every constraint, and will not emit a stylesheet if one fails.
channel 1#006771weft — 5.52:1 on the page ground.
channel 2#008AA8elspeth — 3.38:1.
channel 3#0074A3skill-packs — 4.36:1.
channel 4#035CA3errorworks — 5.73:1.
channel 5#5477CEsemantic-defects — 3.58:1.
channel 6#5F5EB9hamlet — 4.64:1.
channel 7#63459Fkeisei — 6.09:1.
channel 8#9661B8murk — 3.74:1.
channel 9#934A96simic — 4.80:1.
What the palette had to satisfy
Four rules, all of them checkable. They exist because the palette they replaced broke three of them and nobody noticed until it was measured.
Warm is statusGreen, amber and red belong to --state-ok, --state-warn and --state-fail. Nothing else on the site is those hues, so a coloured edge can never be misread as “this passed” or “this failed”. The previous palette failed this: the colour worn by errorworks measured ΔE 0.0196 from the failure red — the same colour, for practical purposes.
Cool is identityThe nine channels occupy the arc 206°–326°. Nine hues inside 120° cannot be separated by hue alone — the closest pair measured ΔE 0.027 — so lightness runs a three-step cycle underneath, and any two channels sharing a lightness are 45° apart.
All measuredEach channel clears 3:1 as the 4px rule and 4.5:1 as text, on every light surface it lands on; each has a third value that clears 4.5:1 on the dark panels. So does every token rendered on those panels — nav links, focus rings, buttons, borders, the four status chips.
Arbitrary indexChannel N is assigned to the Nth project in list order. It is not chosen for what the project is about. Choosing a hue for meaning is what put a failure-red edge on errorworks in the first place.
murk/README.mdSpatial backends, propagator pipeline, replay determinism, the unsafe-code boundary.
keisei · elspeth · skillpacks · errorworks READMEsProject copy and CLI commands, transcribed rather than paraphrased from memory.
standing limits
The contrast figures above were measured on 9 August 2026 against the values this stylesheet shipped that day; they are a reading, not a live check. Every status label on this site is a snapshot taken when the page was built — the repository is the authority for anything that moves.