# Caverio: two design directions for the situation room

*W-design-options, Opus 5.5, 2026-09-27 01:10 to 03:30 Beirut. Brief: `briefs/W-design-options.md`. Renders: `option-a/`, `option-b/`, screenshots in `shots/`. Palette check: `scripts/palette_cvd.py`, output `palette-cvd.txt` (grade A, our computation). Fixture: SPRING on Robinhood Chain, replayed at 17:27Z on 2026-09-14 (minute 60 of our tape), numbers from T5 §1.8 unless marked "illustrative".*

**Look first:** `shots/a-situation-desktop.jpg`, `shots/b-situation-desktop.jpg`, then the two phone shots, then the two Now lists.

Both directions obey the decision in Vesper's read §5: near Linear, Bloomberg's provenance habit without the amber, dark default, one sans for words and one mono for numbers and clocks, colour for evidence quality and direction of change only, motion only when an event lands. They differ in character: **A, Instrument**, makes the number the headline and reads like a precise reading on a desk. **B, Survey**, makes the sentence the headline and reads like a surveyor's field sheet on a phone. I think both are real, so both are delivered; my recommendation is B, with one piece taken from A (section 4).

---

## 1. The thinking (one page)

**What Caverio is, as something to look at.** A live model of one token's situation: what arrived, in what order, from which source, how old each observation is, and what has not arrived yet. It describes and never instructs. Most of the time it has little to say: T5 §2.1 found 83% of situations never get a second independent signal within an hour, so most rows will read *Developing*. The design has to make "not much yet, and here is exactly what" feel like information, not like an empty screen. That single fact drove more decisions than anything else.

**Who reads it.** A discretionary on-chain trader in the first hour of a token. Two reading modes, one person: (1) on a phone, between two other things, a glance of two to five seconds that must return the state word, the one number that justifies it, and whether anything changed since they last looked (T7 §3.1; Gouveia 2016: over 70% of tracker use is glances of about 5 s, grade B); (2) at a desk, a longer session where they open the evidence sections and check where a number came from. Traders are faster than non-traders only on small visual sets and have no working-memory advantage (Bossi 2023, grade A via T7), so the phone read must stay at about six elements.

**The four tensions I had to resolve.**

1. **Calm versus alive.** The reviewer asks for "live, not restless" (§47). A mostly-*Developing* room that never moves looks dead; one that pulses looks like a casino. Resolution in both options: aliveness comes from clocks, not animation. Every number carries its age, the clock strip's "now" edge advances once a minute in a step, and the only animation is a single transition when an event lands. A still screen with fresh ages reads as live.
2. **Glance versus provenance.** Bloomberg's habit is a caption beside every number; T7 §3.3 caps the phone card at six elements. Resolution: provenance is a second typographic voice, not a second element. The caption is set smaller and lighter, directly under or beside its number, so the eye skips it at a glance and finds it on the second look. It never gets its own box, chip, or row.
3. **Brand warmth versus semantic discipline.** The brand brief asks for "dark mineral tones, restrained green, warm cartographic accents". The research asks for colour to carry evidence and direction only, and T7 §3.4 measured the old green versus rose pair at dE 10.5 under deuteranopia. Resolution: category moves to position (a lane is money, attention, holders, safety, you, always in the same order), so hue is free to carry only "how sure, which way, safety, you". The two options solve the warmth question differently: A drops warmth for a cool blue and orange axis that survives every CVD type; B keeps warm mineral grounds and gives the cartographic ochre exactly one meaning, "you", which ties the logo's observation dot to the reader's own marker.
4. **Numbers as headline versus sentence as headline.** This is the open 09-12 pair 2 (heroes or support) and T7 §2.2's hero-number test. Resolution: I did not resolve it on paper, because it is the question a wave 0 five-second test answers cheaply. A is the numbers answer, B is the sentence answer. That is what makes the two options differ in structure and not only in skin, which is the trap the 09-12 research diagnosed in the 07/08/09 mocks (palette costumes on a frozen structure).

**One rule both options share, stated as a sentence:** *position says what kind, glyph says which way, colour says how sure, and one colour means you.*

**What I kept and dropped from the experimentation era (09-12 research, d1 to d8, the 09-17 synthesis).** Kept: a mono for everything the machine says (all three 09-12 mocks got that right); motion only on events and a "now" edge that advances (09-12 move 2); the strip as the signature component, now the full clock strip with lanes (move 3, T7 §4 rank 3); hairlines and space instead of nested boxes and pills (move 4); a colour rule you can say in one sentence (move 5); the honesty strings, promoted from 11 px grey footnotes to a designed caption voice; d2's arrival order and its "NOT YET" line, which becomes Waiting for; d5's glyph grammar (filled, hollow, hatched), which becomes the "why this state" drawer. Dropped: the ladder vocabulary (Forming, Confirming, window closed) because the ladder is retired; the category hues of `caverio.css` (green participation, ochre attention, blue market), because category is now position and green versus rose failed CVD; d3's map position and d6's two cumulative curves (engaging but misread, Haroz 2016 via T7); d4's serif lead, because Vesper refused the magazine page; d7's people-first card, because people are evidence and sit below the fold; the d8 setup sheet above the fold, because it made the phone card about 970 px tall (T7 §3.3). Thomas has seen all of those; neither option repeats one.

---

## 2. Option A: Instrument

**Character, one sentence.** A calibrated instrument on a desk: cool, exact, numbers first, every reading printed with its source and age, dense like a ledger and quiet like Linear.

**Wordmark.** `CAVERIO` in IBM Plex Mono Medium (500), uppercase, tracking +0.32em, 13 px in the app bar and 28 px on the sign-in page, preceded by a 7 px ink square (a "reading" tick) and followed by a hairline that runs to the edge of the bar, so the name sits like a label on an instrument panel. No ochre, no arc mark: in A the brand is in the setting of numbers, not in a logo. Risk accepted: this departs from the 09-16 mark (arc and ochre dot) and would need Thomas's nod.

**Type pair.** IBM Plex Sans for words, IBM Plex Mono for numbers, clocks, addresses. One superfamily, so the caption voice and the number voice share metrics and sit on one baseline (Google Fonts, SIL OFL; grade A for availability, fetched by link in the renders).

| Role | Desktop | Phone | Setting |
|---|---|---|---|
| State word | 22 px Plex Sans 600, uppercase, +0.06em | 20 px | the only full-strength accent on the view |
| Hero number | 44 px Plex Mono 500, tabular | 36 px | chosen by state (T7 §3.2); reference beside it in 13 px |
| Evidence sentence | 16 px Plex Sans 400 | 15 px | one sentence, numbers in mono inline |
| Body | 14 px Plex Sans 400 / 1.45 | 15 px | |
| Captions (provenance) | 11.5 px Plex Mono 400, ink 54 to 72% | 11.5 px | "tape, 12 s" under the number |
| Clocks | 12 px Plex Mono 500 | 12 px | HH:MMZ, relative ages as "4m" |

**Palette** (ground `#0B0E10`, surface `#12161A`, ink `#E4E8EB`, hairline ink at 10%).

| Family | Value | Used for | Rule |
|---|---|---|---|
| Evidence present, increase | `#72C3E6` ice blue | lit lights, ▲ glyphs, bars above zero | glyph or position always carries the sign; colour reinforces |
| Weakening, decrease, contradiction | `#C8742E` burnt orange | ▼ glyphs, bars below zero, crossed marks | never on a surface, only on marks and short words |
| Neutral information | ink 72% | body, supporting numbers | |
| Unknown | ink 54% plus 45° hatch | hatched lanes, "?" rows | a pattern, never a hue |
| Stale | ink 54% plus dotted underline on the number | aged numbers | number steps down one lightness step at 3x cadence |
| Safety | `#D6336C` crimson | the Safety changed state, safety lane marks | filled block with ground-colour text, or the state word at 22 px; never small coloured text (3.94:1 on surface) |
| User marker | `#E9E3A4` pale chalk | last look, entry, watch | a vertical rule in the You lane and the "since you looked" clock |

**CVD result** (full output in `palette-cvd.txt`): evidence versus weakening is dE 46.8 normal, 46.1 protan, 46.7 deutan, 58.4 tritan, against 10.5 deutan for the old green versus rose. Worst pair in any vision type: weakening versus safety under tritanopia, dE 10.5, which is why safety always carries the square glyph and the word. All text roles pass 4.5:1 on the surface except safety (3.94:1), which is restricted to large text and filled blocks.

```
Option A  palette-cvd.txt (excerpt)
  evidence+  vs weakening   46.8   46.1   46.7   58.4
  evidence+  vs safety      60.1   33.8   34.5   68.5
  evidence+  vs user        39.0   37.3   40.7   34.8
  evidence+  vs neutral     17.5   14.0   15.4   21.6
  weakening  vs safety      34.4   33.5   16.2   10.5
  weakening  vs user        33.9   28.3   23.2   30.7
  weakening  vs neutral     29.9   30.0   28.3   31.1
  safety     vs user        57.7   47.9   28.6   39.7
  safety     vs neutral     33.3   28.3   19.6   28.7
  user       vs neutral     25.1   24.8   25.2   18.7
  worst pair, any vision type: dE 10.5
```

**Spacing and density.** 4 px base, steps 4 / 8 / 12 / 16 / 24 / 32. Desktop situation room: state, hero, sentence, number row and waiting for on the left (8 of 12), since you looked in a rail on the right (4 of 12), then the clock strip across the full width, then why this state and safety, then evidence in two columns. Phone order: state, hero, sentence, numbers, clock, since you looked, waiting for, why, evidence. On the phone the strip collapses to four lanes (price, money, attention with the lag bracket, you) that fit 358 px without scrolling (reviewer §65); the full six-lane strip is desktop only. Rows 32 px on desktop, 44 px minimum on phone (touch target, Apple HIG via T7). Hairlines between sections, no cards inside cards, radius 2 px on the few surfaces that exist. Now list: a ledger, one row per situation, 6 rows fit a 1280 x 800 screen, 3 fit a 390 x 844 phone above the fold.

**The clock strip in A** (a ledger of lanes; rendered in `option-a/situation.html`):

```
            16:27Z      16:37       16:47       16:57       17:07       17:17   17:27 NOW
PRICE       ·──────────╲____________╱‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾╱·   tape
MONEY       █▆▂▂▁▁▁▁ wallets entered ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁◉ first Fomo-profiled trader 17:08   tape
HOLDERS     ─── top-20 share 0.57 ─── 0.60 ─── 0.57 ───────────────────── 0.59 ─   tape, attributed float
            ▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨ balance reads not run this hour ▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨
ATTENTION   no mention seen · Telegram preview 5 min · X not read
            ├──────────── money has led attention 60m, and counting ─────────────┤- - -
SAFETY      ▨ no safety reads in this fixture ▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨▨
YOU                                                ┃ last look 16:57 (illustrative)
```

Lane labels in 11 px mono caps at the left, source caption at the right end of each lane, ticks every 10 minutes, the "now" edge a solid ink line, the gap a 45° hatch with its duration written on it.

**Motion.** Three motions, nothing loops. (1) An event lands: its glyph appears at full opacity with a 1 px ring in its family colour that fades over 600 ms, once. (2) The state word changes: old word fades out 120 ms, new word fades in 200 ms, a 2 px underline in the family colour draws left to right once over 400 ms. (3) The "now" edge steps once a minute; it does not glide. `prefers-reduced-motion` turns all three into instant changes.

**Three taglines.**
1. *Every number, with where it came from.*
2. *The first hour of a token, on one clock.*
3. *It does not judge. It shows the reading.*

**What A looks like wrong.** A crypto terminal in a nicer font: every number the same weight, mono everywhere, captions promoted to the size of the data, six columns of rows, and ice blue read as "good" because it looks like a positive-market tint. Also: generic 2024 dark SaaS, the exact idiom the 09-12 research called generated (periwinkle and navy). Guards: three type sizes per view, one full-strength accent per view (the state), captions never larger than 11.5 px, the Now list never gains a seventh column, and blue appears only on marks that are evidence, never on a surface.

---

## 3. Option B: Survey

**Character, one sentence.** A surveyor's field sheet: warm mineral dark, sentence first, each observation plotted as a point with a leader line to its source, the reader's own position marked in the cartographic ochre, calm enough to read in five seconds on a phone.

**Wordmark.** `caverio` in Instrument Sans SemiBold (600), lowercase, tracking -0.01em, 18 px in the app bar and 40 px on the sign-in page, with the tittle of the i replaced by a solid ochre dot (`#D9A94E`) slightly larger than the stroke. The dot is the logo's observation point from the 09-16 mark, and in the app the same ochre is the user marker, so the wordmark literally contains "you are here". No arc mark needed in the bar; the arc can stay as the favicon.

**Type pair.** Instrument Sans for words (continuity with the 09-16 brand work), JetBrains Mono for numbers, clocks, addresses (open zero, distinct 1 and l, strong tabular figures). Both on Google Fonts, SIL OFL (grade A for availability).

| Role | Desktop | Phone | Setting |
|---|---|---|---|
| State word | 34 px Instrument Sans 600, sentence case | 30 px | "Money first"; the headline |
| Evidence sentence | 20 px Instrument Sans 400 / 1.35 | 17 px | numbers inside it in mono, 0.92 em |
| Hero number | 24 px JetBrains Mono 500 | 22 px | supports the sentence; reference beside it |
| Body | 16 px Instrument Sans 400 / 1.5 | 16 px | |
| Captions (provenance) | 12 px JetBrains Mono 400, ink 54 to 64% | 12 px | on desktop in a right margin column beside the line they annotate (field-book margin); under it on phone |
| Clocks | 12.5 px JetBrains Mono 500 | 12.5 px | HH:MMZ |

**Palette** (ground `#100F0D`, surface `#181714`, ink `#ECE7DC`, hairline ink at 11%).

| Family | Value | Used for | Rule |
|---|---|---|---|
| Evidence present, increase | `#8CC9C1` mineral teal | lit lights, ▲, bars above zero | the brand's "restrained green", moved toward blue so it survives CVD |
| Weakening, decrease, contradiction | `#C4703F` terracotta | ▼, bars below zero, crossed marks | darker than teal by 21 L* so the pair survives CVD by lightness |
| Neutral information | ink 64% | body, supporting numbers | |
| Unknown | ink 54% plus hatch | | pattern, never a hue |
| Stale | ink 54% plus dotted underline | | |
| Safety | `#E8E2F8` pale block, ground-colour text | Safety changed | identity by lightness: the only inverted element in the product |
| User marker | `#D9A94E` cartographic ochre | last look, entry, watch; the wordmark dot | ochre means you and nothing else |

**CVD result:** evidence versus weakening dE 43.1 normal, 29.7 protan, 30.3 deutan, 53.7 tritan. Worst pair, any vision type: evidence versus safety under deuteranopia, dE 11.1 (both are pale; safety is always a filled block with the word, never a mark, so they never meet as small marks). Weakening versus user (ochre) is 12.7 under deuteranopia: acceptable because the user marker is a vertical rule in its own lane and weakening is a ▼ glyph, but it is the pair to watch.

```
Option B  palette-cvd.txt (excerpt)
  evidence+  vs weakening   43.1   29.7   30.3   53.7
  evidence+  vs safety      28.2   12.6   11.1   24.7
  evidence+  vs user        33.2   24.6   29.2   44.5
  evidence+  vs neutral     21.4   11.4   12.0   27.6
  weakening  vs safety      39.5   43.1   39.9   36.4
  weakening  vs user        21.3   16.7   12.7   15.1
  weakening  vs neutral     23.7   20.4   19.3   24.0
  safety     vs user        37.1   38.0   36.2   25.5
  safety     vs neutral     23.8   23.2   22.7   19.3
  user       vs neutral     22.0   21.5   22.0   19.9
  worst pair, any vision type: dE 11.1
```

**Spacing and density.** 4 px base, steps 8 / 12 / 20 / 32 / 48; more air than A. Desktop situation room is one reading column of about 700 px with a 240 px margin column on the right for provenance (the field-book layout); the clock strip spans both. Phone: the strip collapses to the same four lanes as A, drawn as a survey line. Phone: one column, margin captions fold under their lines. Now list: cards separated by hairlines, each card a state word, a sentence, a compact clock and a waiting-for line; 2 cards above the fold on a phone (T7 §3.3), 6 on a 1280 desktop in two columns.

**The clock strip in B** (a survey line; rendered in `option-b/situation.html`):

```
  price   ○────○╲___○╱‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾○   4 reads, tape
  money   ●  first watched-wallet entry 16:27            ◉ first Fomo-profiled trader 17:08
  attn.   no mention seen (Telegram preview, 5 min; X not read)
          |◄──────────── 60 min and counting ─────────────|- - ->   money ahead of attention
  holders ····· top-20 share 0.57 → 0.59, flat ····  ▨ balance reads not run
  you                         ◆ last look 16:57 (illustrative)
          ▀▀▀▀▀▀     ▀▀▀▀▀▀     ▀▀▀▀▀▀     ▀▀▀▀▀▀      map scale bar, 10 min per segment
          16:27Z    16:37     16:47     16:57     17:07     17:17  17:27 now
```

Points are surveyed observations (hollow when read from a sampled table, solid when an event), the lag is drawn as a dimension line with end stops (the engineering and cartographic way to print a measured distance), and the time axis is an alternating scale bar, the one cartographic object the brand brief allows in because it carries data (the brief says the origin "informs the logic, not the aesthetic").

**Motion.** (1) An event lands: its leader line draws from the point to its label over 400 ms, once. (2) Since you looked: new lines slide 6 px up and fade in over 300 ms, staggered 60 ms, once per visit. (3) State word change: a surface-tone wash behind the word fades out over 900 ms. The now edge steps once a minute. Reduced motion: instant.

**Three taglines.**
1. *Markets reveal themselves in pieces.* (the brand brief's own line, kept)
2. *What arrived, in what order, from where.*
3. *It does not judge. It shows the map.*

**What B looks like wrong.** The magazine page Vesper refused: a big serif-feeling headline, lots of air, numbers buried in prose so a phone glance returns a mood and not a count, warm tones that read as lifestyle rather than instrument, and ochre spreading as decoration until it no longer means "you". Also: slower to scan six situations than A's ledger. Guards: no serif anywhere; the hero number stays on the first screen at 22 px; the evidence sentence is capped at 160 characters and must contain at least one number; ochre is lint-checked (only the user lane, since-you-looked clock and the wordmark dot); the Now card is capped at six elements.

---

## 4. Recommendation and the wave 0 test

**Recommendation: B, Survey, with A's hero number setting on the Now list.** Three reasons. First, the product's synthesis is a state word and a sentence (reviewer §6, Vesper §2), and most rows will be *Developing*; a sentence-first design makes "one watched wallet, nothing else yet, waiting for a public mention" read as a finding, where a numbers-first design makes the same row look empty. Second, B is the only one of the two that keeps the brand brief's warmth without breaking the colour rule, and it gives the ochre a job (you) instead of a mood; A's ice blue on graphite is closer to the generic dark SaaS idiom the 09-12 research diagnosed. Third, the field-book margin puts provenance beside every number without adding elements to the reading column, which is the Bloomberg habit done quietly. What I would take from A: on the Now list at desk width, A's ledger density is better for scanning six rows, so B's Now list should be allowed to collapse into A-style rows above 1280 px. Grade C, my opinion.

**What I would test with wave 0 to choose** (five to eight beta traders, the T7 §2.2 five-second protocol: show for 2 s, hide, ask one question; record accuracy and time):

| Test | Stimulus | Question after 2 s | Settles |
|---|---|---|---|
| 1. Glance | A and B situation room, phone, SPRING | "Did money come before or after the first attention?" | whether B's sentence reads as fast as A's hero number |
| 2. Change | A and B situation room with three since-you-looked lines | "What changed since you last looked?" | which since-you-looked setting is read |
| 3. Scan | A and B Now lists, six rows, phone | "Which one changed most recently?" and "Which one is about safety?" | density: ledger versus card |
| 4. Provenance | a number on each, 10 s exposure | "Where did this number come from, and how old is it?" | whether margin captions (B) beat under-captions (A) |
| 5. Colour | both in grayscale and deutan simulation | "Which rows are weakening?" | that glyph and position carry direction without hue |
| 6. Preference, last | both side by side | "Which would you keep open during the first hour of a token?" | only a tiebreak; accuracy wins over preference |

Decision rule: B unless A beats it by more than one correct answer out of eight on tests 1 or 3.

---

## 5. What the renders carry, and what is illustrative

Every page: state word, evidence sentence, clock strip with the lag bracket and a hatched gap, since you looked (five lines with clocks), waiting for, the "why this state" drawer, evidence sections with a provenance caption beside each number, a safety line, a data notes drawer, no colour that encodes a trade direction.

**How the SPRING facts are read.** The Fomo-profiled trader's entry at 17:08Z is a money event (a participant entering, on the money lane as ◉), not attention. Attention means a mention: none is visible by 17:27Z, so the lag bracket is open ("money has led attention 60m, and counting") and closes at the first mention we can see. This matches `wireframes-v2/situation-spring.html`, which appeared at the end of my run; my first render had treated the Fomo entry as the first attention event and I corrected it.

**Real (T5 §1.8, SPRING, tape start 16:27Z):** price 0.00142 / 0.00106 / 0.00168 / 0.00266 at minutes 5 / 15 / 30 / 60; wallets entered so far 638 / 759 / 861 / 939; wallets holding by tape 637 / 755 / 858 / 930; top-20 share 0.57 / 0.60 / 0.57 / 0.59; top-1 share 0.15 / 0.16 / 0.15 / 0.14; first watched-wallet entry at tape start; first Fomo-covered entry at 17:08Z (41 min); 876 wallets bought before it; 260 of those 876 are recurring launch wallets.
**Derived by me from the above** (labelled "derived" on the page): 63 wallets entered after the first Fomo-profiled trader by 17:27Z (939 less 876, assuming both counts are distinct tape wallets from tape start); 30% recurring (260 of 876); price +58% since 16:57Z and +87% since minute 5.
**Illustrative** (labelled on the page): market cap and liquidity (supply and pool reserves not in the fixture), the reader's last look at 16:57Z, the 6-minute price gap, the safety line, the Telegram preview cadence caption on this date, and four of the six Now rows (only SPRING and AGRIPPA are real; AGRIPPA uses T5 §1.8 at minute 60).
**Not shown on purpose:** anything known only later (the X post 10 h later, the 09-24 balance read that found 750 of 861 early wallets exited, the 110-wallet hour-after count). A room frozen at 17:27Z shows only what was knowable at 17:27Z (reviewer §72 to §74).

## 6. What I did not do

No user test. No light theme. No Explore search, My Board or hold view. No logo work beyond the wordmark treatment. Fonts load from Google Fonts by link, so the renders need a network connection to look as intended (system fallbacks are named). I did not match `wireframes-v2/` slot by slot: it did not exist when I rendered, so the pages follow the hierarchy in Vesper's read §2 item 4. It appeared at the end of my run; I aligned the one semantic difference (the Fomo trader is money, not attention, section 5) but not its layout details (it adds a lights row in the drawer, event ids, and a wider data health strip).

## 7. Verification (run 2026-09-27)

- **Renders.** `python3 scripts/render_a.py` and `python3 scripts/render_b.py` write the four pages from one fixture file (`scripts/fixture.py`, T5 §1.8 numbers) and one clock module (`scripts/clocks.py`), so both options draw identical facts. Pages are self-contained: inline CSS and SVG, Google Fonts by link, no build step, no JavaScript except one line that is harmless if absent.
- **Screenshots and overflow.** `NODE_PATH=/home/botbox/node_modules node scripts/shots.cjs` (Playwright, the T8 pattern) at 1280 x 800 and 390 x 844, full page, JPEG quality 72. Every page reports scrollWidth equal to the viewport (no horizontal overflow; the phone clock is a compact four-lane strip that fits, so even the clock does not scroll) and every shot is under 500 KB. Web fonts confirmed loaded. Output (also in `../logs/W-design-options-shots.txt`):

```
a now.html desktop scrollWidth 1280 ok outside-clock overflow: none kb 89 q 72 fonts IBM Plex Mono/IBM Plex Sans
a now.html phone scrollWidth 390 ok outside-clock overflow: none kb 75 q 72 fonts IBM Plex Mono/IBM Plex Sans
a situation.html desktop scrollWidth 1280 ok outside-clock overflow: none kb 212 q 72 fonts IBM Plex Mono/IBM Plex Sans
a situation.html phone scrollWidth 390 ok outside-clock overflow: none kb 166 q 72 fonts IBM Plex Mono/IBM Plex Sans
b now.html desktop scrollWidth 1280 ok outside-clock overflow: none kb 96 q 72 fonts Instrument Sans/JetBrains Mono
b now.html phone scrollWidth 390 ok outside-clock overflow: none kb 84 q 72 fonts Instrument Sans/JetBrains Mono
b situation.html desktop scrollWidth 1280 ok outside-clock overflow: none kb 232 q 72 fonts Instrument Sans/JetBrains Mono
b situation.html phone scrollWidth 390 ok outside-clock overflow: none kb 182 q 72 fonts Instrument Sans/JetBrains Mono
```

- **Em dashes.** A count of U+2014 over every file in this directory: 0.
- **Banned words.** Case-insensitive search for every term on the brand brief's banned list (including the two trade verbs and their agent nouns) over every `.md`, `.html`, `.py`, `.txt` file here: 0 hits outside this sentence's own description. The pages use the reviewer's event grammar (entered, reduced, exited) instead of the trade verbs.
- **Colour never encodes a trade direction.** Direction is carried by position (bars above the lane baseline, attention above and money below on the Now strips) and glyph (▲ ▼ ● ■); hue only reinforces. Tested by eye in the shots only, not in a CVD simulator render (test 5 in section 4 would do that with traders).
- **CVD check,** full output of `python3 scripts/palette_cvd.py` (Machado 2009 at full severity, CIEDE2000; maths imported from `scripts/t7_palette_cvd.py`):

```
=================== Option A  Instrument ===================
ground #0B0E10  surface #12161A  ink #E4E8EB

== WCAG contrast (text 4.5:1, marks and large text 3:1)
  ink                      on ground 15.71   on surface 14.75   L*  91.8
  neutral (ink 72%)        on ground  8.59   on surface  8.06   L*  70.6
  unknown (ink 54%)        on ground  5.38   on surface  5.05   L*  56.2
  stale (ink 54%)          on ground  5.38   on surface  5.05   L*  56.2
  evidence+ #72C3E6        on ground  9.83   on surface  9.23   L*  75.0
  weakening #C8742E        on ground  5.53   on surface  5.19   L*  57.0
  safety #D6336C           on ground  4.19   on surface  3.94   L*  49.2
  user #E9E3A4             on ground 14.74   on surface 13.84   L*  89.4

== CIEDE2000 between semantic hues: normal / protan / deutan / tritan
   (dE < 10 on a small mark is hard to tell at a glance; < 5 near-identical)
  evidence+  vs weakening   46.8   46.1   46.7   58.4
  evidence+  vs safety      60.1   33.8   34.5   68.5
  evidence+  vs user        39.0   37.3   40.7   34.8
  evidence+  vs neutral     17.5   14.0   15.4   21.6
  weakening  vs safety      34.4   33.5   16.2   10.5
  weakening  vs user        33.9   28.3   23.2   30.7
  weakening  vs neutral     29.9   30.0   28.3   31.1
  safety     vs user        57.7   47.9   28.6   39.7
  safety     vs neutral     33.3   28.3   19.6   28.7
  user       vs neutral     25.1   24.8   25.2   18.7

  worst pair, any vision type: dE 10.5

=================== Option B  Survey ===================
ground #100F0D  surface #181714  ink #ECE7DC

== WCAG contrast (text 4.5:1, marks and large text 3:1)
  ink                      on ground 15.54   on surface 14.54   L*  91.8
  neutral (ink 64%)        on ground  7.01   on surface  6.56   L*  64.5
  unknown (ink 54%)        on ground  5.37   on surface  5.02   L*  56.5
  stale (ink 54%)          on ground  5.37   on surface  5.02   L*  56.5
  evidence+ #8CC9C1        on ground 10.25   on surface  9.59   L*  76.8
  weakening #C4703F        on ground  5.23   on surface  4.90   L*  55.8
  safety #E8E2F8           on ground 15.20   on surface 14.23   L*  90.9
  user #D9A94E             on ground  8.88   on surface  8.31   L*  72.0

== CIEDE2000 between semantic hues: normal / protan / deutan / tritan
   (dE < 10 on a small mark is hard to tell at a glance; < 5 near-identical)
  evidence+  vs weakening   43.1   29.7   30.3   53.7
  evidence+  vs safety      28.2   12.6   11.1   24.7
  evidence+  vs user        33.2   24.6   29.2   44.5
  evidence+  vs neutral     21.4   11.4   12.0   27.6
  weakening  vs safety      39.5   43.1   39.9   36.4
  weakening  vs user        21.3   16.7   12.7   15.1
  weakening  vs neutral     23.7   20.4   19.3   24.0
  safety     vs user        37.1   38.0   36.2   25.5
  safety     vs neutral     23.8   23.2   22.7   19.3
  user       vs neutral     22.0   21.5   22.0   19.9

  worst pair, any vision type: dE 11.1
```

Status: DONE
