# V87 GODA7-REACH — A/B pair declaration (kept outside the job-bound BRIEF.md)

## Hypothesis 1 — controlled pair, declared 2026-09-08
- Concept ID `GODA7-REACH` (family label; new plate, new copy, new layout). Persuasion job: cold acquisition, men 45+,
  pain-led entry. Destination https://rawchemistry.com/pages/raw-cologne-pt ($75 / 78%).
- **Declared variable (exactly one): `density` — mass of the offer block.**
  - A = solution-led lockup `RAW. / Pheromone cologne.` (serif, red accent) + one small offer line
    `3 bottles + free roll-on · 78% off today`.
  - B = offer-led lockup `78% Off — $75 today` (serif, red accent) + solution reduced to two small lines
    `RAW pheromone cologne. / Two sprays. She reaches first.`
- Frozen across arms: plate pixels, headline `She used to reach for you first.`, agitation
  `Smelling nice never made her reach first. Pheromones do.`, proof `★★★★★ 4.8 · 12,400+ verified reviews`,
  CTA `TRY RAW · 60-DAY GUARANTEE →` (text, pill, size), type families, ink/accent colours, product configuration.
- Accidental confound recorded: B's bottom stack is one line shorter than A's and sits ~0.006·H higher so the CTA
  stays inside the 0.80·H Meta lane. No other geometry differs.
- Copy deviation from BRIEF.md (job-bound, not edited): the solution line shipped as `Pheromone cologne.` rather than
  `Pheromone-infused cologne.` so the left-aligned column clears the foreground bottle at the required glyph size;
  proof dropped `· 60-day guarantee` (the guarantee lives in the CTA). Both are approved category phrasings.

## Layout note
9:16 a1 plate places the bottle large in the lower right (x 0.70–0.85·W, y 0.62–0.80·H), so the bottom stack is
left-aligned beside it (`bottomAlignLeft` added to `V85GodaRemake.tsx`) instead of centred across it. Top stack is
centred on the empty wall above the man's head (hair top 0.32·H).

## Plates
- 9:16: attempt a1 accepted (identity, roll-on, integration, scene) → uniform Lanczos ×1.148 to 1080×1920
  (`plates/GODA7-REACH-9x16-plate.resize.json`).
- 4:5: a1 rejected (composition, `qa/GODA7-REACH-4x5-a1-REJECT-composition.md`); a2 rejected (product identity,
  `qa/GODA7-REACH-4x5-a2-REJECT-product-identity.md`); **a3 accepted** (label hierarchy, cap, roll-on, framing verified
  at original pixels) → uniform Lanczos ×0.963 to 1080×1350 (`plates/GODA7-REACH-4x5-plate.resize.json`).

## Layout by ratio (same words in both arms and ratios; only line breaks and stack placement differ)
- 9:16: headline + agitation centred on the wall; offer (two lines in A), proof, sub, CTA left-aligned beside the bottle.
- 4:5: headline + agitation + proof centred on the wall (face occupies 0.34–0.62·H); one-line offer, sub, CTA
  left-aligned under the jaw and above the hands. The CTA's lower-right corner rests on the man's lamp-lit forearm,
  which the audit's red-pixel product heuristic flags; declared in `audits/declared-overlap.json` after checking by eye
  that the pill never touches either product.

## Rendered-pixel audit (audit_v85.py) — final layout
All four masters PASS (A/B × 9:16/4:5): contrast p60 ≥ 10.8 on every role, phone glyph floors met (headline 17–21 px,
offer 12.6–18 px, proof ≥ 7.2 px, sub ≥ 7.0 px, CTA 16–17 px), all ink inside the Meta lanes, no product overlap
beyond the declared forearm false positive. Producer-level pass only: no `.pair-pass.json`, no blind-judge receipt.

## Final candidate hashes (PENDING_OPERATOR_KEEP)
- plate 9:16: `hyperframes/public/raw-chemistry/v87/GODA7-REACH-9x16-plate.png` sha256_16 617269af8b7a2dbb
- plate 4:5: `hyperframes/public/raw-chemistry/v87/GODA7-REACH-4x5-plate.png` sha256_16 9c2ec6d9ad001376
- A 9x16: `brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/candidates/goda7-reach-a-9x16.png` sha256_16 7471114083d5231d
- A 9x16 phone: `brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/phone/goda7-reach-a-9x16-phone.png` sha256_16 6ddc5a11e6db7f06
- A 4x5: `brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/candidates/goda7-reach-a-4x5.png` sha256_16 e683619cabf3845c
- A 4x5 phone: `brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/phone/goda7-reach-a-4x5-phone.png` sha256_16 681e6239e20452bf
- B 9x16: `brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/candidates/goda7-reach-b-9x16.png` sha256_16 1365a6508b85f322
- B 9x16 phone: `brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/phone/goda7-reach-b-9x16-phone.png` sha256_16 0c7d1ade2fdf6502
- B 4x5: `brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/candidates/goda7-reach-b-4x5.png` sha256_16 4ef91ea60711126a
- B 4x5 phone: `brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/phone/goda7-reach-b-4x5-phone.png` sha256_16 5fb10a48b3d6ec0e


## ROUND 1 REJECTED — operator, 2026-09-08 ("those are not our bottles")
Round-1 masters (hashes above) withdrawn to `qa/rejected-candidates-wrong-bottle/`. See `qa/REJECT-round1-wrong-bottle-proportions.md`
and `qa/bottle-compare-round1-vs-reference.png`. Round-1 plates archived as `plates/REJECTED-a1-*` / `plates/REJECTED-a3-*`.

## Round 2 — plates 9:16 a2 / 4:5 a4 (proportion lock in the brief), 2026-09-08
- Identity gate before typesetting: `qa/bottle-compare-round2-vs-reference.png` (matched scale vs `01-real-front-identity.jpg`,
  with the live GODA6 plate as the accepted benchmark). Both round-2 bottles: squat body, wide low faceted cap wider than the
  neck, thick collared neck, vermilion, correct label hierarchy. Roll-on: red cap, red-to-clear frosted body, black Raw script.
- Provenance note: the two generations ran concurrently and the plate script copied the same file for both; corrected by hand
  (`source-original/logs/PROVENANCE-NOTE-a2-a4-parallel-run.md`). Never run two generate_codex_plate.sh invocations at once.
- Layout re-fit to the new photographs (same words, same arms, same declared variable `density`):
  9:16 — headline / agitation / proof centred on the wall (hair top 0.35·H); offer (two lines in A), sub, CTA left-aligned on
  the dark shirt above his forearm; bottle lower right untouched. 4:5 — headline / agitation / proof on the wall (hair top
  0.30·H); offer, sub, CTA on the dark duvet in the bottom band below his arm, left of the bottle.
- Audit: all four masters PASS `audit_v85.py` (contrast, phone floors, Meta lanes, product clearance; one declared 15-px
  false positive on the wife's lamp-lit shoulder for B 9:16, `audits/declared-overlap.json`). Text-on-text collision check: none.
- Still not launch-ready by the lock: no `.pair-pass.json`, no blind-judge receipt, no operator Keep. PENDING_OPERATOR_KEEP.

### Round-2 candidate hashes
- plate 9:16 (a2): `/home/ubuntu/Documents/AdMaker/hyperframes/public/raw-chemistry/v87/GODA7-REACH-9x16-plate.png` sha256_16 f8456a7d26ec6a51
- plate 4:5 (a4): `/home/ubuntu/Documents/AdMaker/hyperframes/public/raw-chemistry/v87/GODA7-REACH-4x5-plate.png` sha256_16 f45d31f792b1faae
- A 9x16: `/home/ubuntu/Documents/AdMaker/brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/candidates/goda7-reach-a-9x16.png` sha256_16 fcf35960f1ec2fc7
- A 9x16 phone: `/home/ubuntu/Documents/AdMaker/brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/phone/goda7-reach-a-9x16-phone.png` sha256_16 764b004dd7b82d54
- A 4x5: `/home/ubuntu/Documents/AdMaker/brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/candidates/goda7-reach-a-4x5.png` sha256_16 adde4338c7e30232
- A 4x5 phone: `/home/ubuntu/Documents/AdMaker/brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/phone/goda7-reach-a-4x5-phone.png` sha256_16 c434e098734477c5
- B 9x16: `/home/ubuntu/Documents/AdMaker/brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/candidates/goda7-reach-b-9x16.png` sha256_16 46f5191b99558049
- B 9x16 phone: `/home/ubuntu/Documents/AdMaker/brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/phone/goda7-reach-b-9x16-phone.png` sha256_16 a067e099c2fc8f6c
- B 4x5: `/home/ubuntu/Documents/AdMaker/brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/candidates/goda7-reach-b-4x5.png` sha256_16 70bf37b48eadea21
- B 4x5 phone: `/home/ubuntu/Documents/AdMaker/brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/phone/goda7-reach-b-4x5-phone.png` sha256_16 3882e7fa7181f496


## ROUND 2 REJECTED — operator ("none of these match"); ROOT CAUSE FOUND
The Codex chat model had the five reference photos but called the built-in image tool with a prompt only, so the
generator never saw the product (rollouts 2026-09-08 vs the Sep 2–3 sessions that passed `referenced_image_paths`).
An API detour was wrong (operator: use Codex ImageGen in the CLI, always) and out of credits anyway.
Round-2 masters withdrawn to `qa/rejected-candidates-round2/`. See `qa/REJECT-round2-and-root-cause.md`.

## Round 3 — Codex built-in image_gen with `referenced_image_paths` (the correct route), 2026-09-08
- Prompt now REQUIRES the image_gen call to carry the five RAW reference paths; each session rollout was checked
  (9:16 a4/a5, 4:5 a6/a7: all five paths present). Plates run one at a time.
- Identity gate before typesetting: `qa/bottle-compare-round3-*.png` — collar ring, thick neck, wide low faceted cap,
  squat body, vermilion, exact label lines. Match.
- Selected plates: 9:16 a5 (smaller figure, wall clear to 0.44·H; a4 kept as SUPERSEDED) and 4:5 a7 (wall clear to
  0.31·H; a6 kept as SUPERSEDED). Provenance in `plates/*.resize.json`.
- Layout: 9:16 — the whole message stack (headline, agitation, proof, solution/offer, sub) centred on the wall, CTA
  left under the chin (`ctaAlignLeft`). 4:5 — headline/agitation/proof on the wall, solution/offer + sub on the shirt
  under the chin, CTA on the duvet below the hands, left of the nightstand.
- Audit: all four masters PASS `audit_v85.py`; one declared 12-px skin false positive (B 4:5 sub); no text-on-text
  collisions. Still not launch-ready by the lock: no `.pair-pass.json`, no blind-judge receipt, no operator Keep.

### Round-3 candidate hashes (PENDING_OPERATOR_KEEP)
- plate 9:16 (a5): `/home/ubuntu/Documents/AdMaker/hyperframes/public/raw-chemistry/v87/GODA7-REACH-9x16-plate.png` sha256_16 77acac0b0d13ed25
- plate 4:5 (a7): `/home/ubuntu/Documents/AdMaker/hyperframes/public/raw-chemistry/v87/GODA7-REACH-4x5-plate.png` sha256_16 c64bf9f7bbd7f2d0
- A 9x16: `/home/ubuntu/Documents/AdMaker/brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/candidates/goda7-reach-a-9x16.png` sha256_16 5516380ef89aadba
- A 9x16 phone: `/home/ubuntu/Documents/AdMaker/brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/phone/goda7-reach-a-9x16-phone.png` sha256_16 88dfa532898066ce
- A 4x5: `/home/ubuntu/Documents/AdMaker/brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/candidates/goda7-reach-a-4x5.png` sha256_16 6594a049c60e6a01
- A 4x5 phone: `/home/ubuntu/Documents/AdMaker/brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/phone/goda7-reach-a-4x5-phone.png` sha256_16 139f583678b07e13
- B 9x16: `/home/ubuntu/Documents/AdMaker/brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/candidates/goda7-reach-b-9x16.png` sha256_16 06d8fb376ed96497
- B 9x16 phone: `/home/ubuntu/Documents/AdMaker/brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/phone/goda7-reach-b-9x16-phone.png` sha256_16 ba17fa82feb66302
- B 4x5: `/home/ubuntu/Documents/AdMaker/brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/candidates/goda7-reach-b-4x5.png` sha256_16 4e3d4d26d7a2501c
- B 4x5 phone: `/home/ubuntu/Documents/AdMaker/brands/raw-chemistry/output/statics-v87-pain-first-2026-09-08/phone/goda7-reach-b-4x5-phone.png` sha256_16 09ba93b65d3983f0


## V88 — two new concepts after the operator's creative verdict on V87 ("looks like you duplicated our other ads"), 2026-09-08
Producer's own calls (operator declined to supply a line): standing pain = going home alone / not getting laid, hard register,
aimed at the failed alternative (his cologne). Nothing shared with V84/V85/GODA6: new scenes, new persuasion entries, new type
systems (Anton poster block + IBM Plex Mono evidence line + Archivo Black red pill; dark message-thread UI).

### GODA8-LINEUP — photograph (Codex built-in image_gen, referenced_image_paths verified for every attempt)
Three identical men in a police-style lineup; she points at the one holding RAW. Plates: 9:16 a2 / 4:5 a2 (a1 of each had her
pointing at the middle man; superseded). Bottle held at hip, small but recognisable (red, faceted cap, Raw script).
- Pair variable `typography` (which line leads): A headline "SAME SUIT. SAME HAIRCUT. SAME $90 COLOGNE." + red outcome line
  "ONE OF THEM IS GETTING LAID TONIGHT."; B headline "ONE OF THEM IS GETTING LAID TONIGHT." (red accent) + sameness line as support.
- Support "Same cologne as everyone. / Pheromones make her pick you." · proof "12,400+ MEN · 4.8★ · 78% OFF TODAY" · CTA "GET PICKED →".

### GODA9-THREAD — no photograph
Dark message thread: three sent texts (11:52 PM "you around tonight?", 12:41 AM "at the bar till close if you want", 2:14 AM "ok. night" — Delivered),
no replies. Panel: "THREE TEXTS. ZERO REPLIES. NICE COLOGNE THOUGH." · "Smelling good gets you “Delivered.” / Pheromones get her to
text first." · real product photograph (default-six/01 cropped) in a white card · CTA "MAKE HER TEXT FIRST →" · proof line.
- Pair variable `density`: A adds the offer line "3 bottles + free roll-on · 78% off today"; B has no offer at all.

### Gates
All eight masters PASS `audit_v85.py` (contrast, phone glyph floors, Meta lanes, product clearance); no text-on-text collisions.
Still producer-level: no `.pair-pass.json`, no blind-judge receipt, no operator Keep. PENDING_OPERATOR_KEEP.

### Hashes
- goda8-lineup-a 9x16: `candidates/goda8-lineup-a-9x16.png` sha256_16 dabd8bea8bbb9c0f · phone `phone/goda8-lineup-a-9x16-phone.png`
- goda8-lineup-a 4x5: `candidates/goda8-lineup-a-4x5.png` sha256_16 89cc207a79e598b6 · phone `phone/goda8-lineup-a-4x5-phone.png`
- goda8-lineup-b 9x16: `candidates/goda8-lineup-b-9x16.png` sha256_16 1a52c8a64a09c3d1 · phone `phone/goda8-lineup-b-9x16-phone.png`
- goda8-lineup-b 4x5: `candidates/goda8-lineup-b-4x5.png` sha256_16 cc1d8b06d98782e5 · phone `phone/goda8-lineup-b-4x5-phone.png`
- goda9-thread-a 9x16: `candidates/goda9-thread-a-9x16.png` sha256_16 a606ae711af52e37 · phone `phone/goda9-thread-a-9x16-phone.png`
- goda9-thread-a 4x5: `candidates/goda9-thread-a-4x5.png` sha256_16 686e0b08adf78bdd · phone `phone/goda9-thread-a-4x5-phone.png`
- goda9-thread-b 9x16: `candidates/goda9-thread-b-9x16.png` sha256_16 46c5ce44b5ba3cbe · phone `phone/goda9-thread-b-9x16-phone.png`
- goda9-thread-b 4x5: `candidates/goda9-thread-b-4x5.png` sha256_16 41e188139813720e · phone `phone/goda9-thread-b-4x5-phone.png`

## V89 — three concepts, one per ICP, three copy variants each (operator request, 2026-09-08)
Operator: "generate me three ad concepts and render them to look good. Make them completely unique per ICP. For each of those
concepts do three different variations of copy." Avatars from `research/funnel-extremes-strategy-2026-09-08/STRATEGY.md`.
One plate per concept and ratio; V1–V3 change only the copy stack, so a team preference is a preference between words.

| Concept | Avatar | Scene | Type system | Plates (Codex image_gen, referenced_image_paths ×5 verified per rollout) |
|---|---|---|---|---|
| GODA10-COUCH | A long-married 55–72 | same couch, opposite ends; RAW + roll-on on the coffee table | editorial: Inter Tight 600 sentence case, thin rule, ghost pill | 9:16 a1 941×1672 → ×1.1477; 4:5 a1 1122×1402 → ×0.9626 |
| GODA11-BAR | B divorced re-entry 45–60 | alone at a hotel bar, younger crowd behind | document: Archivo Black caps, Plex Mono line, white pill | 9:16 a1 941×1672 → ×1.1477; 4:5 a1 1092×1440 → ×0.989 then 74 px trimmed from the bottom |
| GODA12-UBER | C going-home-alone 24–42 | 1:47 a.m. rideshare, bottle in hand, phone face-down | marker: Permanent Marker headline, red marker rule, red pill | 9:16 a1 941×1672 → ×1.1477; 4:5 a1 1092×1440 → ×0.989 then 74 px trimmed from the bottom (no roll-on in this plate) |

Copy per variant is recorded in `index.html#v89` and in `hyperframes/src/brands/raw-chemistry/V85GodaRemake.tsx` (keys GODA10-COUCH-V1..3,
GODA11-BAR-V1..3, GODA12-UBER-V1..3). Layout: the persuasion column flows as one flex stack (agitation → support → CTA → proof) beside the
products with a horizontal gradient panel, so no line count can collide with the next role; every column sits inside the Meta safe lanes.

### Gates
All 18 masters PASS `audit_v85.py --ratios 9x16,4x5` (phone glyph floors, contrast, Meta lanes, product clearance); role-mask collision
check = 0. Bottle identity: matched-scale sheets `qa/compare-GODA10-COUCH-9x16-a1.png`, `qa/compare-GODA11-BAR-9x16-a1.png`,
`qa/compare-GODA12-UBER-a1.png` (all match: squat body, faceted cap, collared neck, full label hierarchy). Not a controlled A/B pair set
(three copy variants per plate, no single declared variable) — producer candidates for operator selection. No `.pair-pass.json`, no blind
judge, no Keep. PENDING_OPERATOR_KEEP.

### Hashes (sha256_16)
- goda10-couch-v1 9x16: `candidates/goda10-couch-v1-9x16.png` eb04c3954328c38e · phone `phone/goda10-couch-v1-9x16-phone.png` f21d1ff19c6cfbf3
- goda10-couch-v1 4x5: `candidates/goda10-couch-v1-4x5.png` 8d3384d2573c09b8 · phone `phone/goda10-couch-v1-4x5-phone.png` a873a138c6690d57
- goda10-couch-v2 9x16: `candidates/goda10-couch-v2-9x16.png` e005ce8b8f889443 · phone `phone/goda10-couch-v2-9x16-phone.png` ecfee413bf3bb5ae
- goda10-couch-v2 4x5: `candidates/goda10-couch-v2-4x5.png` f64d4612cde2125c · phone `phone/goda10-couch-v2-4x5-phone.png` f7b48c4f5b768852
- goda10-couch-v3 9x16: `candidates/goda10-couch-v3-9x16.png` f6e3e7b7dcc1ab32 · phone `phone/goda10-couch-v3-9x16-phone.png` 7d4b89c97a53cb97
- goda10-couch-v3 4x5: `candidates/goda10-couch-v3-4x5.png` 5905f9272c2c8a6b · phone `phone/goda10-couch-v3-4x5-phone.png` f774ce63d29561d9
- goda11-bar-v1 9x16: `candidates/goda11-bar-v1-9x16.png` 12e132d4995af131 · phone `phone/goda11-bar-v1-9x16-phone.png` 6b47146508023236
- goda11-bar-v1 4x5: `candidates/goda11-bar-v1-4x5.png` 7e4039a0960eb56d · phone `phone/goda11-bar-v1-4x5-phone.png` de807bb72a804767
- goda11-bar-v2 9x16: `candidates/goda11-bar-v2-9x16.png` 1d63ab952f377353 · phone `phone/goda11-bar-v2-9x16-phone.png` 3fc55a6ce1b95571
- goda11-bar-v2 4x5: `candidates/goda11-bar-v2-4x5.png` fd7d5815e4fe28f0 · phone `phone/goda11-bar-v2-4x5-phone.png` 8cda9dc0f7a957d8
- goda11-bar-v3 9x16: `candidates/goda11-bar-v3-9x16.png` 215594260997c2fc · phone `phone/goda11-bar-v3-9x16-phone.png` aa9501c581d4ec9b
- goda11-bar-v3 4x5: `candidates/goda11-bar-v3-4x5.png` 689fddfaf314a3f5 · phone `phone/goda11-bar-v3-4x5-phone.png` e58930f9abb10e98
- goda12-uber-v1 9x16: `candidates/goda12-uber-v1-9x16.png` 19146236f3eb98f9 · phone `phone/goda12-uber-v1-9x16-phone.png` 360a0f0ce3b47a2e
- goda12-uber-v1 4x5: `candidates/goda12-uber-v1-4x5.png` 053635941d517be1 · phone `phone/goda12-uber-v1-4x5-phone.png` 730c4fca62b25b74
- goda12-uber-v2 9x16: `candidates/goda12-uber-v2-9x16.png` b54343f5d7b99461 · phone `phone/goda12-uber-v2-9x16-phone.png` 7498d9e6ee2121d9
- goda12-uber-v2 4x5: `candidates/goda12-uber-v2-4x5.png` 3aff92f1be9f41e6 · phone `phone/goda12-uber-v2-4x5-phone.png` faf7681d37ea0329
- goda12-uber-v3 9x16: `candidates/goda12-uber-v3-9x16.png` a5b8ebab7f7abadd · phone `phone/goda12-uber-v3-9x16-phone.png` ee6dc6c5fd56fce6
- goda12-uber-v3 4x5: `candidates/goda12-uber-v3-4x5.png` b2f71bd6209f5d18 · phone `phone/goda12-uber-v3-4x5-phone.png` 292d4e236bb513e7
- plate `plates/GODA10-COUCH-9x16-plate-1080x1920.png` f01b60343e57e9f1
- plate `plates/GODA10-COUCH-4x5-plate-1080x1350.png` 8af1b0886a160ec9
- plate `plates/GODA11-BAR-9x16-plate-1080x1920.png` 7f66bdaf952c341c
- plate `plates/GODA11-BAR-4x5-plate-1080x1350.png` 74ce8d3b10dd44f6
- plate `plates/GODA12-UBER-9x16-plate-1080x1920.png` 739b92383243edeb
- plate `plates/GODA12-UBER-4x5-plate-1080x1350.png` 9ac596c3d72a4fb3

## V89 rev 2 — each concept redesigned as its own ad (operator rejection of rev 1, 2026-09-08)
Operator: "the CTA looks the same, the headline looks the same, and the text looks the same. There's no originality… I don't
really like at all the text or the visuals of it." Rev 1 had one skeleton re-skinned three times. Rev 2 keeps the three approved
photographs and gives each concept its own design idea, typeface, copy device and CTA shape (systems `dimension`, `caption`,
`tripcard` in `V85GodaRemake.tsx`):
- COUCH `dimension`: Cormorant Garamond; headline split left/right across the gap; floor-plan dimension line with a measurement label
  (3 ft. 31 yrs. / 2 ft. 0 in. / Arm's length); serif support; thin-ruled square CTA; radial vignette instead of a panel.
- BAR `caption`: D-DIN Condensed Bold caps with one amber word; amber kicker tag (place · time); closed-caption subtitle boxes for the
  amber pain line, the support lines and the proof; amber block CTA.
- UBER `tripcard`: Permanent Marker scrawl (rotated −2°) over a white rideshare card that is a trip summary (V1), a receipt (V2:
  Designer cologne $180 / Drinks $60 / Her number $0 / Total: Home by 2) or a compliment scoreboard (V3: guys 2, her 0,
  "Nice cologne, bro."); red marker-in-a-box CTA; rating chip.

### Gates
All 18 masters PASS `audit_v85.py --ratios 9x16,4x5`. Declared red-pixel false positives (bar candle glow / lamps, uber taillight
bokeh) in `audits/declared-overlap.json` after eye check; numeric guard: 0 role pixels inside the product rectangles; role-mask
collisions 0. Still producer-level: no `.pair-pass.json`, no blind judge, no Keep. PENDING_OPERATOR_KEEP. Rev 1 hashes above are
superseded by the following.

### Hashes rev 2 (sha256_16)
- goda10-couch-v1 9x16: `candidates/goda10-couch-v1-9x16.png` 3fe572fc480a5f5a · phone `phone/goda10-couch-v1-9x16-phone.png` 2fee6bb50b818aaa
- goda10-couch-v1 4x5: `candidates/goda10-couch-v1-4x5.png` 983ade5e30da944e · phone `phone/goda10-couch-v1-4x5-phone.png` 689919bc63b1993a
- goda10-couch-v2 9x16: `candidates/goda10-couch-v2-9x16.png` 4ef7e0df11672507 · phone `phone/goda10-couch-v2-9x16-phone.png` 72918f57072741a3
- goda10-couch-v2 4x5: `candidates/goda10-couch-v2-4x5.png` f081c61e833a7524 · phone `phone/goda10-couch-v2-4x5-phone.png` b0f23c46781141f6
- goda10-couch-v3 9x16: `candidates/goda10-couch-v3-9x16.png` eac297c5a33bf36c · phone `phone/goda10-couch-v3-9x16-phone.png` 5e64748c9128436d
- goda10-couch-v3 4x5: `candidates/goda10-couch-v3-4x5.png` 0b76b7f164220a8a · phone `phone/goda10-couch-v3-4x5-phone.png` f0a7fbf5bc4618da
- goda11-bar-v1 9x16: `candidates/goda11-bar-v1-9x16.png` e6ab2b124a903959 · phone `phone/goda11-bar-v1-9x16-phone.png` a117f3025b27a6ed
- goda11-bar-v1 4x5: `candidates/goda11-bar-v1-4x5.png` ab5c833070bac650 · phone `phone/goda11-bar-v1-4x5-phone.png` 92037c24d7d5f64d
- goda11-bar-v2 9x16: `candidates/goda11-bar-v2-9x16.png` e4e6ad66539c291e · phone `phone/goda11-bar-v2-9x16-phone.png` 263f71b9d2b7e2de
- goda11-bar-v2 4x5: `candidates/goda11-bar-v2-4x5.png` 610752b510f51d3b · phone `phone/goda11-bar-v2-4x5-phone.png` 25f778730394386c
- goda11-bar-v3 9x16: `candidates/goda11-bar-v3-9x16.png` 6267d7f500deff98 · phone `phone/goda11-bar-v3-9x16-phone.png` 619879051e875eea
- goda11-bar-v3 4x5: `candidates/goda11-bar-v3-4x5.png` 58cdad87dc17b419 · phone `phone/goda11-bar-v3-4x5-phone.png` 0140a0b6edd15d0c
- goda12-uber-v1 9x16: `candidates/goda12-uber-v1-9x16.png` 846a183e36fba2e0 · phone `phone/goda12-uber-v1-9x16-phone.png` e8ad0cdc9b75b9e0
- goda12-uber-v1 4x5: `candidates/goda12-uber-v1-4x5.png` ef37a54e88195084 · phone `phone/goda12-uber-v1-4x5-phone.png` 5c79ccd505c2152e
- goda12-uber-v2 9x16: `candidates/goda12-uber-v2-9x16.png` 55e664fd2010336d · phone `phone/goda12-uber-v2-9x16-phone.png` 621104c7c8a72c48
- goda12-uber-v2 4x5: `candidates/goda12-uber-v2-4x5.png` 977154b7095118c3 · phone `phone/goda12-uber-v2-4x5-phone.png` 3f464bd57a7c5f2d
- goda12-uber-v3 9x16: `candidates/goda12-uber-v3-9x16.png` 14cd00992d36bb7b · phone `phone/goda12-uber-v3-9x16-phone.png` ccfdc7e1d76d45f7
- goda12-uber-v3 4x5: `candidates/goda12-uber-v3-4x5.png` 67963a3ebccf9d11 · phone `phone/goda12-uber-v3-4x5-phone.png` f906b4c310ee5403
