Josh: the ember band on /wallet had no vertical padding (the heading on the band's top edge, the button on its bottom), then
"run a full site sweep for padding and visuals".
- The band: .band .wrap carried the padding and the three bands use .container; both selectors now, 56 px (40 on phones), and
24 px at the sides on phones.
- tools/ci/padding-check.mjs: renders every served page at 390, 768, 1024, 1440 and 1600 in both themes and flags TIGHT (text or
a control under 24 px from the edge of the filled band, card or section that holds it; rows of radius 12 and under are the
app's compact rows and keep their own padding; small filled things such as buttons, pills, badges, tabs, cells and the bar are
never containers), SCALE (a section's vertical padding not 0 and not a multiple of 4 from 24), TOUCH (controls under 6 px
apart outside segmented groups), OVERRUN (an image or canvas past its frame) and UNDER-BAR (a heading under the sticky bar on
load, an anchor the bar would cover). --self-test builds the fixture from the site's own stylesheet and bar with the exact
/wallet band with its padding lost, a touching pair, an image over its frame and a heading under the bar; each must fail,
the clean twin must pass. A gate line runs it (self-test, then the built site); where no browser exists it says so.
- Findings fixed (first run 2,740, then 1,040, then 48, now 0 at 230 renders): page heroes 64/48 (were 65/45), the
observatory head and the 404 the same, the footer's bottom 24, doc sections and the litepaper's 40 (were 42), .sec 72 at
tablet (was 70), the 404 card 36, /live's motion block 24 (was 25), the scenes lab 48 (was 50); every card at 24 inside
(download cards, home tiles, the live tiles and stats, the evidence labels, the wallet state cards, the journey phases, the
live inspector and toolbar, the download card on phones).
- The eye pass over every page at 1440 and 390 dark: the journey's phases are cards now, so the old timeline rail and marker
(drawn for an unboxed list, sitting on the card's top border) go and the when column keeps clear of the body; tables keep
words whole (break-word, not anywhere: "regenerat es" on the litepaper) and give the label column 14ch (one word per line on
/randomx); the litepaper's body paragraphs share one measure; the ledger's count-table chips stay on one line; orphan words
go through text-wrap: pretty on body text (copy law 18, "measurement." alone on /claims); the dev-fee page lost its doubled
gutter (a lifted section keeps its own .container) and its table clears the text above; /faucet and /metamask keep a gap
between headline and lead, line their two cards up at the top and end 72 px above the footer; a heading after a card grid
gets 40 px.
- The overlap sweep at the same five widths and both themes: 0 overlaps at 290 renders.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A served page, or a miner or wallet screen (behind IGNEUM_OVERLAP_APPS=1), where a visible run of text is covered by another element (a pill over a caption, a label over a value, a card over its neighbour, text under the header at rest), clipped by an overflow-hidden ancestor, or past the viewport; a page that scrolls sideways. Five widths, light and dark, the home hero at rest and at each step. A fixture with one deliberate overlap of each kind must be flagged first (--self-test). Needs a headless Chromium: CI installs Playwright; the Mac ships the pages to build-2 (infra/build-server/overlap-browser.sh).
7 October 2026: the hero's step pill sat on the caption's second line ("Two thirds of the weight sign. The checkpoint locks.") at every desktop width, found by Josh on the live site
| kill by exact command or pid file (owed as a check) | 6 October 2026, 21:09Z: a Mac-side pkill -f <log file name> matched nothing (the log name was a redirect, not part of the command line), the roll-everything script lived on and wiped a box it had been told to hold. Rule: a job is stopped by its pid file (tools/fleet/fleet-bg.sh start|stop <name>) or by a pattern anchored on its exact command line (^python3 -u /root/fleet/in/box-prover.py), never by a word that may or may not appear in it. The check that flags a pkill -f/pgrep -f whose literal is a path or a name that never starts a command line is owed to the CI lane |