Core set is surface-independent. Roles flip per surface — the same copper that underlines a link on cream becomes a resting button on the field.
In active use in the brief deliverables. Grey is muted text on cream (lavender washes out). Hair is the hairline on cream. The lavenders fill tables and code wells. Status tints are data semantics in brief tables only — the muted terracotta is sanctioned there and nowhere else; it never appears as a UI accent. Warm acts, cool gates: interactive states stay copper/amber/dusk. White is paper, not a surface — print ground and translucent panel fills only; on screen, light means cream.
Fraunces carries the thesis register; JetBrains Mono runs the chrome. On brief surfaces, body copy is Fraunces 400 at 16.5px/1.64 (the judicial read); in tools and labs, body is Mono.
Copper rests, amber lights. Cool state is dusk — the gate/✗ side. The palette has no red on purpose; the status tints above are the single, table-scoped exception.
Mirror of the canonical wtd-tokens.css (v2.1) — the standalone file is the source of truth; if they disagree, the file wins.
copy:root{
/* ---- core (locked, surface-independent) ---- */
--wtd-field:#1a0b29; /* indigo ink — dark surface / ink on light */
--wtd-field-glow:#2a1240; /* raised dark / radial accent */
--wtd-indigo:#4B0082; /* brand spot — headings & links on light */
--wtd-amber:#e4b24c; /* LIT & FUNCTIONAL ONLY — hover/active/found */
--wtd-copper:#B87333; /* resting accent — solid elements only */
--wtd-cream:#fbf1df; /* light surface / headings on dark */
--wtd-cream-soft:#ece2cf; /* body on dark / panels on light */
--wtd-dusk:#a89cb0; /* cool secondary — gate/✗, never red */
--wtd-muted:#9a8fb0; /* lavender-grey muted text — DARK ONLY */
--wtd-line:#322640; /* borders on dark */
/* ---- light-surface extensions ---- */
--wtd-ink:#1a0b29; /* body text on light */
--wtd-grey:#6b6157; /* muted text — LIGHT ONLY */
--wtd-hair:#e3d7c0; /* hairline on cream */
--wtd-lav:#D7C8E8; /* table header fill */
--wtd-lav-soft:#ECE6F4; /* panel / code well */
--wtd-good-bg:#C3D199; --wtd-good-tx:#3F5E1C; /* brief tables only */
--wtd-mid-bg:#F0D17C; --wtd-mid-tx:#6E4310; /* brief tables only */
--wtd-bad-bg:#E5AB9B; --wtd-bad-tx:#8A2C1A; /* brief tables only */
/* ---- paper ---- */
--wtd-white:#ffffff; /* print ground; translucent panels on cream */
/* ---- type ---- */
--wtd-serif:'Fraunces',Georgia,serif; /* 500 run · 400/italic display · 900 logotype */
--wtd-mono:'JetBrains Mono',ui-monospace,monospace;
}
/* light = default surface */
[data-theme="light"]{ --wtd-bg:var(--wtd-cream); --wtd-bg-2:var(--wtd-cream-soft);
--wtd-tx:var(--wtd-ink); --wtd-mut:var(--wtd-grey); --wtd-head:var(--wtd-indigo);
--wtd-hairline:var(--wtd-hair); --wtd-link-ul:var(--wtd-copper); }
[data-theme="dark"]{ --wtd-bg:var(--wtd-field); --wtd-bg-2:var(--wtd-field-glow);
--wtd-tx:var(--wtd-cream-soft); --wtd-mut:var(--wtd-muted); --wtd-head:var(--wtd-cream);
--wtd-hairline:var(--wtd-line); --wtd-link-ul:var(--wtd-amber); }