Every pair below is the same component, the same content and the same markup rendered twice. The only difference between the left column and the right is a list of CSS custom-property values — printed in full further down, because its shortness is the argument. Nothing is forked, nothing is re-authored, and no screen knows which course it is running as.
Anyone can recolour a header. The reason this is a platform rather than an agency project is the third pair: the golf course itself re-skins. The hole art is drawn from 40 --map-* tokens rather than shipped as fixed artwork, so the turf, the sand, the water and the tree canopy all move with the brand. A vendor whose course graphics are flat images cannot follow a tenant anywhere.
Saguaro Wash Golf Club is fictional. It exists to be as far from Palm Beach National as a golf course plausibly gets — high desert instead of south Florida, so the greens, the sand and the water all had to change rather than just the buttons. Any resemblance to a real club is unintended, and no real second course is named anywhere in this document.
Brand aliases, two night surfaces, and the map palette. That is the file a second course fills in — no component, no screen and no layout is touched. Every hex below is read out of the live cascade rather than typed, so this table cannot drift from tokens/colors.css the way its first draft did.
| Token | Palm Beach National | Saguaro Wash | Reaches |
|---|---|---|---|
--brand-primary | — | — | Nav rails, headers, the member card |
--brand-secondary | — | — | Links, icons, --map-you |
--brand-accent | — | — | Every CTA, --map-target |
--brand-tint | — | — | Day tinted surfaces, chips |
--brand-muted-interactive | — | — | Disabled and low-emphasis interactive |
--night-surface | — | — | Every night card — see the finding below |
--night-raised | — | — | Night raised surfaces — same finding |
--map-fairway | — | — | The turf, and 39 more --map-* values with it |
--map-sand | — | — | Bunkers, in both hole space and the green |
--map-water-mid | — | — | The lakes down the right of 7 |
Brand expression stops where legibility starts. These stay platform-owned in both columns, which is the promise the second course's owner needs to see kept:
--ok —
--warn —
--danger —
--marker-100 —
--marker-150 —
--map-label-solid —
--map-oob —
A tenant cannot re-tint a failure state to its own red, cannot move the US yardage-marker convention, and cannot weaken the opaque capsule that holds carry labels at 18.9:1 over turf, sand and water. The in-round 7:1 floor is a platform guarantee, not a brand preference.
colors.css says it isBuilding this artifact tested the theming end to end for the first time, and it found a real gap. tokens/colors.css declares the night register as literals under a platform-owned heading:
--night-surface:#0A1428 and --night-raised:#0A2350 are Palm Beach National navy. They are not aliased to --brand-primary, so on the seven-token swap the comment promises, a desert tenant's night screens stay PBN navy — and night is 13 of the 57 built screens, including G-22, the hero.
This artifact repoints them, which is why the right-hand hole view reads as one course rather than two. But that means the tenant contract is nine values plus the map, not seven, and the header comment in colors.css — "Swapping a course means re-pointing these seven, nothing else" — is wrong for any tenant whose brand is not navy.
Two ways to close it, and this is a decision rather than a fix: alias the night surfaces to the brand (a course with a pale brand then needs its own dark value anyway, since the 7:1 in-round floor is non-negotiable), or keep them literal and move them out of the night-register block into a named tenant section so the next reader is not misled. Not changed here — it edits the token file every screen depends on, and that is not a change to make inside an argument artifact.
The Saguaro Wash booking screen still says “Joe Lee · 18 holes”, and the console still names PBN's staff and its Bar & Grill. That is correct — those are tenant content, held as data, not colour tokens, and a real second course would supply its own on day one. It is worth stating out loud anyway: this artifact proves the theming reaches everything, not that the copy does. A live second-course build needs a content inventory too, and that work is real even though none of it is design work.
ui_kits/, mounted on this page and scaled down — not screenshots, and not re-drawn. Handlers are inert: this is an argument, not a prototype. Screen IDs and tier labels from 02-SCREEN-INVENTORY.md. Every figure visible inside the screens is the sample content already built into those kits; nothing was invented for this page.