tokens agents
The system, rendering itself DTCG, three tiers

Every value on this page is a token. So is every value on every other page.

The numbers below are the same custom properties the site renders with. Change a token at the root and this page, and the whole site, change with it. No raw hex, no pixel literals, no accent color.

Palette

Primitive · warm paper to cool ink
gray.000 #FFFFFF
Paper
gray.050 #F6F5F2
gray.100 #ECEAE5
gray.200 #D8D5CE
gray.400 #A8A5A0
gray.600 #6B6966
gray.800 #2A2A2C
Ink
gray.950 #0B0B0D
Semantic, intent assigned
color.surface → gray.050 #F6F5F2
color.foreground → gray.950 #0B0B0D
color.muted → gray.600 #6B6966
color.line → gray.200 #D8D5CE
color.line-strong → gray.400 #A8A5A0
Component, context added
button.background → color.foreground button.foreground → color.foreground-inverse

Emphasis is inversion: the only weighted block on the page flips ink and paper. No accent.

Type scale

Two voices · N27, JetBrains Mono
size.700 4.75rem 76px Tokens
size.600 3.25rem 52px One chain
size.500 2.25rem 36px Four layers, one argument
size.400 1.625rem 26px The system never changes the value.
size.300 1.25rem 20px It wraps meaning around it, one layer at a time. Body copy lives here.
size.200 1rem 16px Base body size. The reading default for longer passages.
size.100 0.875rem 14px Mono labels and metadata, the machine voice
font.sans, the human voice The argument, in prose.
font.mono, the machine voice 01 gray.950 => button.background

Spacing

A consistent step, on the grid
space.100 0.25rem 4px
space.200 0.5rem 8px
space.300 0.75rem 12px
space.400 1rem 16px
space.500 1.5rem 24px
space.600 2rem 32px
space.700 3rem 48px
space.800 4rem 64px
space.900 6rem 96px
space.1000 8rem 128px

radius: --radius 2px 2px · sharp by default, one token, applied consistently.

One value, three tiers

The same idea the signature animates, held still
Primitive gray.950 The raw value, named.
Semantic color.foreground Same value, intent added.
Component Button button.background Same value, in context, rendered.