The kit, rebuilt

2026-08-07. The vitrine that stood here, its 65 generated pages, 54 Python scripts, 41 build gates and 145 MB of screenshots, was deleted in one commit. Not one pixel of the product moved: the 106 painted screens and the 104 grey ones read components/index.css, and that file was not touched. It stands again in five steps, by hand, and the panel beside this one counts the pages, and the last of them ends in a report rather than in a machine.

56 stylesheets 4,809 declarations 0 generators 0 gates

The system, as it stands today

56 stylesheets in components/, 4,809 declarations counted 2026-08-18 from comment-stripped source, reached through components/index.css. Two token levels, primitive and semantic, and a light theme that exists to prove the semantic one. That is the whole system, and it is what paints this page. The figure here read 4,884 until that count, which is what a number typed into prose does, and the contract it summarises is docs/architecture.md, written the same day to replace the one frozen in the archive.

What is being built here

In order, and each step ends in something a person reads rather than in something a machine re-runs.

1. Census

Five anchor screens and their states, walked in a browser at two widths in both themes, computed values rather than written rules: which forms actually exist.

2. Levels

Atom, molecule, organism, declared once in an inventory with a reason each. A level is one plus the highest level of what a component contains, and it is a decision rather than a reading, because a component built out of its own class names reads as containing nothing.

3. Consolidation

One pass where a value is allowed to change: the radius scale, the hairline, the icon stroke, the size ramp. Every change measured before and after, and written down.

4. The pages: a SHELF per level, a PAGE per component

Ten atoms, fourteen molecules, thirteen organisms and six patterns, each with a live specimen in both themes, what it holds, its rule and its anti-rule: that is the shelf, and comparing a level against itself is its job. Taking one component apart is a page, because a shelf gives every component one specimen and one rule, and a single specimen cannot show a family's faces, its sizes or the states its screens never wear. Every component in the system has one, and eleven backlog rows were opened by writing them. **The page count is the one the panel computes from the registry**, because a tally typed into prose beside a tally that is computed is a fossil beside a reading, and the two look the same rank in the source. A page is a page, not the output of a generator.

5. One audit

Done, 2026-08-08. 115 documents, two widths, two themes, 460 renders. Contrast 0 failures in the product over 29,929 text elements per pass, overflow 0, page scroll 0, focus on 56 of 56, names 0, alt 0, duplicated ids 0, 0 broken links of 15,880. It found six defects in itself and one in the product, and the one is that this project's own 44px touch floor is not what the system builds to. A report, not a gate.

The five anchors

Event feed, event detail, active bets, deposit and sign in, with their loading, empty, error and logged-out variants: 41 screens of the 106 the painted tree held on 2026-08-08. Between them they carry the header in both auth states, the bottom nav, the footer, the card, the chip family, the filters, the tabs, the YES and NO pair, the bet panel, the dialog sheet, the fields, the toasts, the skeletons, the empty and error blocks.