Color
Core palette
tokens — used across the whole siteDark surface ladder
cards · panels · insetsSignal palette
DATA / FEEL only — never chromeHero — resting gradient + live shader
non-token; the home hero moodSpoke haze (solution pages — current)
static dithered gradientText-opacity ladder
all = #F6F7F9 over transparentTypography
--font-sansheadings + body · weights 300–800 --font-monolabels · data · code · kbd Scale
body 18 · UI ×1.25 · display φ(1.618)--text-xs12px · lh — · ls —--text-sm14px · lh — · ls —--text-base18px · lh 1.55 · ls —--text-sub20px · lh 1.55 · ls —--text-lg22.5px · lh 1.5 · ls —--text-xl28px · lh 1.15 · ls —--text-d1~29px · lh 1.15 · ls —--text-d2~47px · lh 1.06 · ls -0.015em--text-d3~76px · lh 1.02 · ls -0.02em--text-hero≤115px · lh 0.98 · ls -0.025emWeights
SwitzerCorner radii
Strokes & borders
Border-based depth. Standard hairline is 1px; centre dividers go 0.5px. Opacity carries the weight, not thickness.
Components
Buttons
one CTA system · 32px pill · no square, no steelprimary = real .cta-btn--primary (#ecebe6 fill) · ghost = .cta-btn--ghost · header chrome pill = .site-header__cta (13px). Hero + closing CTA always pair these. RETIRED: the steel .cta / .btn / sharp-2px square buttons — gone.
Cards — everything derives from the DRIP card
.card-glimpse is the canonical surfaceDRIP card
The hero card chrome, as a shared shell — every premium feature card wears this surface. Translucent near-black, a top-lit glimmer hairline, film grain, a deep pool shadow, softer #d9d8d3 text, radius 16.
Surface card
The plain variant when the DRIP chrome is too much: 1px @ 9% hairline, --surface-2 fill, --radius-lg, flat — depth from the border, no shadow.
DRIP recipe (.card-glimpse): bg color-mix(#0a0a0c 90%) · radius 16 · glimmer border linear-gradient(150deg, #f7f7f7 17%→7%→8%) as a ::before mask-exclude ring · film-noise ::after @ 6% · pool shadow 0 44px 100px -54px rgba(0,0,0,.92) + inset top hairline · text #d9d8d3 (the softer DRIP white, cards only). Card labels: --text-sm, #d9d8d3 @ 56–84%.
Chips & dividers
data tints live inside product mockups onlySection header
headline stands alone — NO eyebrow / kicker above itKnow their buying power.
Lead with the title. The muted paragraph reads --text-muted at --text-sub, one --gap-head-sub below — no label, no number, no uppercase mono kicker.