Loft

Colophon

Taste, enforced by machinery.

This page and the test suite read the same file. The palette below is imported from the module the contract tests import; if a value on this page ever disagrees with a value in CI, one of us is lying and the build is red.

The token contract

TokenNightDay
--floor#0A141C#FBF6EC
--floor-raised#0F1D28#F3EADA
--chalk#DCE8EE#14303F
--chalk-soft#93A9B6#4A6272
--chalk-faint#71889A#576B7E
--batten#2E4150#C3B896
--magenta#FF5C9E#C4106B
--buff#C9BB8E#8A7A45

One recorded deviation

Day --chalk-faint is #576B7E, not the family's #5C7080. The family value measures 4.31 against the deep tracing ground — below the 4.5 the contrast suite demands — because the portfolio never renders that pair and the loft does. The contract caught it before the first pixel shipped.

The gates

Type, stack, budgets

IBM Plex Mono carries the instrument voice; Public Sans carries prose; Fraunces italic appears once per page, as a study's thesis. All three are self-hosted latin subsets. Next.js App Router, React 19, Tailwind v4 with the family tokens mapped through @theme inline, Motion for the curves. Interaction budgets print in every study's footer; the floor targets a perfect Lighthouse pass and each study holds ninety-five or better.