Candidate A chosen 21 Sep 2026. This page is not about whether the idea is right — it is about whether it
survives the real geometry. Every value is extracted from source: the card DOM from QuoteCard.tsx, its CSS
verbatim from six theme files, the focus transform from focus-mode.css, the φ arithmetic from
WelcomeHomeView.swift + GoldenSplit, the window sizes from BristlenoseApp.swift, and the
timings from WelcomeBaton.swift. The cell renders at true pixel size (1px = 1pt @1x), so what you see is
what fits. Drag Window and watch the budget readout go red.
The φ arithmetic, in full: the spiral is framed width: w, height: w / 1.618 with
.padding(20), so w = window − sidebar − 40. GoldenSplit(.horizontal) hands the major
cell width: (w − 8) × 0.618 and the spiral's full height w × 0.618 — square to within the gutter's
share. At the 700pt minimum window with the sidebar out, that is a 267pt cell, and the furniture (tag, title, the
two-line summary, CTA, the 26pt nav row, the drop card, six 8pt gaps) does not shrink with it. The budget readout above is
measured from the DOM after layout, not calculated — if it says the slot is negative, the illustration genuinely has nowhere
to go at that size.
Scaled to fit this page; the scale factor is stated under each so you can read the real size off it. These are
the sizes that matter: 700 is the enforced minimum (BristlenoseApp.swift:149), 1000 is what every
new window opens at (:267), and 1600 stands for a maximised display. Sidebar out at 220 in all three.
blockquote.quote-card has a left border only
and is rounded on the right only (border-radius: 0 6px 6px 0); the layout is a hanging indent —
.quote-row is a baseline-aligned flex with the timecode in a left gutter and .quote-body carrying
text, speaker and badges. Timecodes render with square brackets, [11:30]. The earlier draft drew a full
box with a meta row underneath, which was an impression of a quote card rather than the product's one.background: transparent and
border-left-color mixed to 40% — there is no full border to dissolve. The recede set is exactly
.badges, .timecode, .context at 0.14, plus headings at 0.4.
.speaker is not in it (axis 1 keeps "whose voice" lit) and neither is .star-btn —
there is no Focus rule for the star anywhere in the system, which the illustration inherits for free by having none either.WelcomeTempo —
speed 0.6 → stretch 1.667, and a tool webview carries pace 1.3, so
×2.167 — plus a 3s rest on the opening frame and 3s on the finished frame. The
320ms dissolve does not stretch: micro-transitions stay at authored speed by stated policy, because slowing a fade
reads as lag rather than calm. So the loop is slow and the transition is not.BookShelfView’s fan reaches 0.29
there. Collapse the sidebar and 700pt becomes a 408pt cell, which is survivable; it is the sidebar-out minimum that
is brutal.WelcomeClauseFit can drop the trailing clause and leave a grammatical 33-char core — the rewrite
discipline the 20 Aug pass adopted across all 45 slots. Switch Copy to compare the three.cap 176 and fill to see the two mechanisms: every shipped illustration
takes a cap and self-scales under it, while fill is the full-bleed proposal that measures its box and
stops when the next card will not fit. Only the second answers "how many quotes" honestly at every size.
Ideas and the rejected candidates: welcome-focus-cell.html. The pool's reference spec:
welcome-studytools-animations.html. Nothing here is built —
WelcomeIllustration has no .focus case.