Colors
Two families. Brand colors (gold, silver, bronze) carry the variant hierarchy — flat, solid fills, three steps each. Ink is the workhorse ramp — 13 stops of warm brown, from white cards and eggshell pages down to deep text. Severity tints sit on top. Flip the theme and watch the roles re-map.
Brand colors
Light (300) → main (500) → dark (700) — solid fills, straight from the brand. The brand gold is too bright to read as text, so there's a darkened --gold-aa-* set that passes WCAG.
Ink
The everyday ramp — text, borders, and page surfaces. Warm brown over eggshell, 13 stops. (The token family keeps its proposed-system name, "ink"; the values are all official.)
Semantic roles
These are the aliases product code actually uses. They re-map under [data-theme="dark"] — flip the toggle and compare.
Severity
Four levels. Each gets a soft tint (100) for fills and 300 / 500 / 700 for the signal itself. Color never works alone here — every severity ships with its own icon.