diff --git a/specs/design-reference/HANDOFF.md b/specs/design-reference/HANDOFF.md
index 48bdc87..3714437 100644
--- a/specs/design-reference/HANDOFF.md
+++ b/specs/design-reference/HANDOFF.md
@@ -1,10 +1,23 @@
# VYNDR VISUAL SYSTEM — CODE HANDOFF
+## SESSION 2 (Jul 17) — Offseason & Intelligence expansion
+Two new design files, same package format. System law unchanged (tokens, grade colors, glow-A-only, THE VERB IS "READ").
+
+- `Vyndr Offseason.dc.html` — Surface 1. Hub home (NFL desktop + 390, NBA Summer-League variant with OUTLOOK ONLY / NOT GRADED honesty block), season-long board (open→NOW→VYNDR triplet — open `#707080`, now `#F0F0F0` 700, model `#00D4A0` 800; ladder grouping: player header row + nested market lines at `padding-left:52px`), season read reveal (news-annotated movement, NEWS-DRIVEN FACTORS, WHAT WOULD CHANGE THIS READ kill conditions), news/outlook feed + row anatomy + quiet-wire empty state. Sport state lives IN the sport tab (`NFL · CAMP −5D`), never a separate offseason tab. Kickoff countdown is computed live from the real date (`Sep 10 2026`) — ambient, top-right, never the hero. New mobile tab bar: SLATE · EXPLORE · READ-FAB (50px green circle, void-colored V, `translateY(-14px)`, 6px void ring) · LEDGER · MORE.
+- `Vyndr Intelligence.dc.html` — Surfaces 2–5 + M2.
+ - S2 line shopping: MOVEMENT STRIP primitive defined once (row 86×20 silent / reveal full-width annotated / laws: steps not curves, green only when move favors the read, FLAT = hairline + `FLAT · [N]D`). Book comparison: 7 BookChips (24px tile, brand-color mono wordmark, `image-slot` overlay for licensed logos — DK `#53D337`, FD `#1493FF`, MGM `#C4A45E`, CZR `#AD9660`, B365 `#FFE100`, ESPN BET `#D50A0A`, Fanatics `#2E6BFF`), best number crowned (green inset bar + BEST NUMBER chip + row tint `rgba(0,212,160,.04)`), disagreement mark (dots on an axis around the VYNDR reference line; SPLIT chip amber when spread wide). Push-to-book: primary green deep-link + secondary book buttons, geo-gated (buttons never render disabled — they don't render), affiliate microcopy verbatim. Geo-empty honest state included.
+ - S3 article media: hero template + 4 hero graphic archetypes (A line path · B distribution · C mark-at-scale · D matchup card — all generated data visuals, never stock), inline figures (stat callout triptych, comparison bars, pull quote — one max, caption law: every figure names its data), article card (thumb = hero graphic re-cropped), article OG 1200×630.
+ - S4 CLV: per-read chip `BEAT CLOSE +2.0` / `MISSED CLOSE −1.0` — color follows CLV sign, never the result; aggregate joins record line (`BEAT CLOSE 61%` + `AVG CLV`); no-data state names the tracking start date + N≥100 threshold, never a fake 0%. Calibration curve: headline claim ("When we say 70%, it hits 68.2%"), dots vs dashed perfect line, dot size = sample, buckets under N 30 render hollow/unlabeled.
+ - S5 The Report: hybrid email — dark billboard header + dark record band survive every client; light paper body (`#F7F6F2` / ink `#1A1A22` / green shifts to `#00A57D` on paper). 600px single column, system-font fallbacks, no images required to read. Signup module + /report archive (every issue shows its own day record).
+ - M2 crops in-file at 50%: square 1080×1080, story 1080×1920 (recomposed — hero letter scales, dot strip replaces table; dashed safe zones are design-time only, strip on export), X 1200×675, NEW record billboard 1080×1350 (30D record + tier hit-rate bars, C-tier honestly under .500). Exact-size PNG masters in `exports/` (square 1080×1080, story 1080×1920, X 1200×675, record 1080×1350, article OG 1200×630). Every S2–S5 surface also ships at 390 (Act 06 in the Intelligence file): market sheet (44px book rows, compact disagreement axis, sticky deep-link CTA), article view, ledger with per-read CLV chips + compact calibration card, /report signup + archive.
+- Sample data is anchored to Jul 2026 reality; every number is a spec for what the live feed renders. Truth laws: no "tonight" off-slate, visible timestamps, honest empty states throughout.
+
+
Two design components, both open directly in a browser. All styling is inline (no stylesheets to port); every value below is already in the markup.
## Files
- `Vyndr Landing.dc.html` — desktop marketing landing: hero + live board proof, TIER RECORD calibration band, feature triptych, FREE / THE DESK pricing (no trial), wire footer.
-- `assets/glyphs/` — all 74 archetype marks as individual SVGs (`currentColor`, 24-grid) + `MANIFEST.md` (name → hex → file). Generated from `glyphDefs()`; wire these into `archetypes.js`.
+- `assets/glyphs/` — all 83 archetype marks (74 display + 9 classifier-legacy) as individual SVGs (`currentColor`, 24-grid) + `MANIFEST.md` (name → hex → file). Generated from `glyphDefs()`; wire these into `archetypes.js`.
- `exports/` — rasterized share cards: `settle-1080x1350.png` (exact) and `grade-reveal-og.png` (1080×566, same 1.9:1 ratio as 1200×630 OG).
- `image-slot.js` + `.image-slots.state.json` — drag-and-drop real-asset targets (player headshot, streaks rows, combat fighters) layered over monogram fallbacks; empty chrome hidden via `image-slot::part(empty){opacity:0}`. Design-time tooling, not product code.
- `Vyndr System.dc.html` — desktop terminal: components, 74 glyphs, edge board, /u profile, share cards, streaks, combat, pitcher, correlation builder, pricing, empty state, ⌘K, THE WIRE.
@@ -13,8 +26,6 @@ Two design components, both open directly in a browser. All styling is inline (n
Desktop /u profile also carries the TIER RECORD calibration strip (matches mobile screen 10 and the landing band).
-> **BOOK ROSTER NOTE (2026-07, security follow-up item 7):** ESPN BET is defunct — PENN rebranded it to **theScore Bet** (Dec 1 2025); ESPN is now exclusive with DraftKings. The product BookChip set (`web/src/lib/books.js`) was updated (ESPN BET removed, theScore Bet added). The **design mockups' BookChip row still shows ESPN BET** — it needs the same one-swap to theScore Bet (mono `TS`) whenever the design files are refreshed.
-
## Tokens (exact)
- Surfaces: `#06060B` void · `#0E0E14` card · `#14141E` elevated · row hairline `#101018` · deep panel `#0A0A10`
- Signal green `#00D4A0` — ONE meaning: edge / active / A-tier / primary CTA. Never decorative.
@@ -41,5 +52,5 @@ Desktop /u profile also carries the TIER RECORD calibration strip (matches mobil
Alive = punctuated stillness (react to truth, then rest). Dense but RANKED — one bold mono hero figure among muted context; dim ranks progressively (1 / .86 / .64 / .48). One animated hero per zone. Real entities always (team-colored monograms until licensed assets drop in — headshot slots marked). No trial: free tier is the trial. Premium is produced, never claimed.
## Rev 3 (Jul 16)
-- Matchup lines carry inline team chips (10-12px before each abbr) — swap for licensed TeamLogo imgs at the same size (resolver built).
-- 9 classifier-legacy marks added (BRUSH/WHIFF/CONNECTOR/DISTRIBUTOR/FASTBREAK/FLEX/HYBRID/SWITCH/SWITCHBOARD) — 83 total. Fallback renders, never user-facing names.
+- Matchup lines everywhere now carry inline team-gradient chips (10-12px, before each abbr) — recognition without weight; chips sit inside rows so the ranked opacity ramp dims them too. Pattern: `ABR`. Swap for licensed logo imgs at the same size when assets land.
+- 9 classifier-legacy marks added to `glyphDefs()` + `assets/glyphs/`: BRUSH #E0B84A, WHIFF #E86A6A, CONNECTOR #9AB0C4, DISTRIBUTOR #7AB8D8, FASTBREAK #4AA0E8, FLEX #A08AC8, HYBRID #C88AB0, SWITCH #C0B08A, SWITCHBOARD #90A0E8. Same 24-grid duotone language; colors deduped off signal-green/amber/red.
diff --git a/specs/design-reference/Vyndr Intelligence.dc.html b/specs/design-reference/Vyndr Intelligence.dc.html
new file mode 100644
index 0000000..28a65d7
--- /dev/null
+++ b/specs/design-reference/Vyndr Intelligence.dc.html
@@ -0,0 +1,1270 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ THE WIRE
+
+ --:--:--
+ Intelligence desk open — 7 books held per prop, CLV tracked from lock.
+ LOG ▸
+
The price triplet leads — book · fair · model, the de-vigged number nobody else shows consumers. Then line shopping, article media, CLV & calibration, and The Report — extensions sharing primitives. The movement strip is defined once here and reused everywhere a line has a past.
Book · fair · model, per prop — the price-honesty layer beside the stat projection. Fair is the amber hero, honest on every row: value, edge-but-priced-out, or no edge. Renders on the read card, board and hero; the close lives in the ledger.
The de-vigged fair number. The whole product. Never hidden — not even when the model leg is poisoned.
+
MODEL
VYNDR's own price. Green only for takeable edge — never a juiced one. Suppressible on quarantined rows.
+
+
SAME TOKENS AS THE PARLAY · LABEL 7.5PX / .14EM / #707080 · VALUE MONO 800 · FAIR AMBER #FFB347 VS BOOK #F0F0F0 · GREEN #00D4A0 = TAKEABLE EDGE ONLY · BLUE = EDGE PRICED OUT
+
+
+
+
+ FIVE HONESTY STATES · DESKTOP
+ THREE VERDICTS — VALUE · EDGE-NOT-TAKEABLE · NO EDGE — PLUS QUARANTINE & REFUSAL
+
+
+
+
+
+
+
Nabers o 1,115.5 Rec Yds
NYG · WK 1
+ 1 · VALUE
+
+
+
BOOK
+125
OFFERED
+
◆ FAIR
+110
DE-VIGGED
+
MODEL
+98
OUR PRICE
+
+
+
VALUE · +2.9% VS FAIR
+
Model prices it shorter than the honest number — the book is paying longer than the leg is worth. Real edge.
Graded against an unverified matchup — so we suppressed our price. Book & fair stand; we never hide the honest fair number because a different leg is poisoned.
No fair price we'd defend yet — the inputs are too thin. When they clear, the triplet returns. We'd rather show nothing than a number we can't stand behind.
+
NO FABRICATED PRICE · NO EMPTY GAUGE · TRUTH LAW
+
+
+
NOTHING TO TRACK YETLEDGER OPENS ON FIRST HONEST LOCK
+
+
+
+
+
+ IN CONTEXT · WHERE IT RENDERS
+ READ-CARD HERO · BOARD ROW · FREE-TIER GATE
+
The market moved 70 on the clearance and stopped — our sim says the discount was worth twice that. Read the projection first (does it clear), then the price (is it fair). Two questions, one card.
Model beats the honest number and the price is takeable — the edge is real at what you can actually get.
+
+
+
+
+
+
HIERARCHY · STAT PROJECTION READS FIRST (WILL IT CLEAR) → PRICE TRIPLET QUALIFIES IT (IS IT FAIR). TWO QUESTIONS, TWO STACKED BLOCKS — NEITHER CROWDS THE OTHER. FAIR STAYS THE AMBER HERO OF THE PRICE LAYER.
+
+
+
+
+
TONIGHT'S BOARD · NBARANKED BY EDGE · FAIR IS THE NUMBER
+
+ A+
+
Jokić o 27.5 Pts
PROJ 28.9 ▸ CLEARS · BOOK +125 · MDL +98
+
◆ FAIR
+110
+ +2.9%
+
+
+ A
+
Edwards o 5.5 Ast
PROJ 6.4 ▸ CLEARS · BOOK +112 · MDL +96
+
◆ FAIR
+103
+ +1.6%
+
+
+ B
+
Gobert o 11.5 Reb
PROJ 12.1 ▸ CLEARS · BOOK +108 · MDL withheld
+
◆ FAIR
+99
+ QUAR
+
+
+ C
+
Murray o 22.5 Pts
PROJ 22.9 ▸ THIN · BOOK +118 · MDL +124
+
◆ FAIR
+109
+ NO EDGE
+
+
PROJECTION LEADS THE ROW (WILL IT CLEAR) · FAIR IS THE PRICE · EDGE CHIP IS THE VERDICT
+
+
+
+
+
FREE-TIER GATE · MODEL LEG LOCKED
+
+
Nabers o 1,115.5
FREE
+
+
BOOK
+125
+
◆ FAIR
+110
+
MODEL
+ █ █
+
+
MODEL PRICE ON ANALYSTUNLOCK ▸
+
+
The honest de-vigged number stays free — that's the hook. Only VYNDR's own price gates. The fair leg is never the paywall.
+
+
+
+
+
+
+
+
+
MOBILE · 390 · THREE LEGS HOLD, FAIR STAYS HERO
+
+
+
+
Nabers o 1,115.5 Rec
VALUE
+
+
BOOK
+125
+
◆ FAIR
+110
+
MODEL
+98
+
+
+2.9% VS FAIRreal edge
+
+
+
+
Bijan o 84.5 Rush
QUARANTINE
+
+
BOOK
+130
+
◆ FAIR
+116
+
MODEL
—
+
+
MODEL WITHHELDbook & fair stand
+
+
+
44PX MIN TAP ON THE LEDGER LINK · NO HORIZONTAL SCROLL AT 390 · FAIR NEVER DROPS BELOW BOOK/MODEL IN SIZE
+
+
+
+
+
TIER PLACEMENTRECOMMENDED · CONFIRM
+
The de-vigged fair number is the free-tier hook per prior product intent — worth surfacing on Free. Flagged for confirmation before ship.
+
+
+ FREE
+
Book · fair — model leg locked.
The hook: the honest de-vigged number, free. Model shows as a locked teaser that upsells the read.
+
+
+ ANALYST
+
Full triplet + VALUE marker.
All three legs, the verdict fires both ways — value and no-edge. Quarantine renders as the primary two-leg state.
+
+
+ DESK
+
Triplet + ledger cross-ref + calibration.
The price story wired to its resolved close and the confidence-bucket record behind the model leg.
+
+
+
+
+
+
+ THE TRIPLET NEVER PRINTS A NUMBER IT CAN'T STAND BEHIND
+ NO FABRICATED MODEL PRICE · NO HIDDEN "NO EDGE" · FAIR IS HONEST ON EVERY ROW
+
+
+
+
+
+ 02
+
LINE SHOPPING · MARKET BREADTH
Seven books per prop. Best number crowned, model as the reference the books array around, disagreement as its own signal.
+
+
+
+
+
+ MOVEMENT STRIP · PRIMITIVE
+ DEFINED ONCE · REUSED IN BOARD ROWS · REVEALS · HUB · ARTICLES
+
+
+
+
ROW · 86×20 · SILENT
+
▲ +70.0
+
Steps, not curves — a line is discrete. No axes, no labels. Delta chip carries the number. Grey when the mover isn't the read's direction.
+
+
+
REVEAL · FULL-WIDTH · ANNOTATED
+
+
OPENEVENT DOTS = NEWSNOW · LIVE DOT
+
Event dots mark the news that moved it. Terminal dot pulses only while the market is open.
+
+
+
LAWS
+
Green stroke only when the move favors our read — otherwise grey. Fill opacity .06–.07, never higher. FLAT renders as a single hairline + "FLAT · [N]D" — a non-move is data. Timestamps real or absent. Never decorative.
+
+
+
+
+
+
+
+ BOOK COMPARISON
+ LIVES IN THE REVEAL · EXPANDS FROM BOARD ROWS · WORDMARK CHIPS = DESIGNED FALLBACK, LOGOS DROP IN
+
+
+
+
+
+ THE MARKET · NABERS O REC YDS · SEASON
+ SPLIT · 10.0 SPREAD
+
+ LINES AS OF --:--:-- ET · REFRESHED ON CHANGE, NOT ON A TIMER
+ WIDE SPREAD = THE MARKET ISN'T SURE · THAT'S SIGNAL
+
+
+
+
+
+
+
+ PUSH TO BOOK
+ NJ · 7 LEGAL BOOKS
+
+
+
+ TAKE o1,115.5 AT FANDUEL · −112 ▸
+
+ MGM −105 ▸
+ DK −110 ▸
+
+
DEEP-LINKS OPEN THE BOOK'S SLIP PRE-FILLED. STATE-LEGAL BOOKS ONLY — GEO-GATED AT RENDER. VYNDR MAY EARN A REFERRAL FEE. THE NUMBER SHOWN IS THE NUMBER YOU GET.
+
+
+
+
+
NO LEGAL BOOKS IN YOUR STATE
+
We still show you the market — we just can't take you there. The read is yours either way.
+
GEO-EMPTY STATE · BUTTONS NEVER RENDER DISABLED — THEY DON'T RENDER
+
+
+
+
390 PATTERN · EXPANDS FROM BOARD ROW
+
+
+
Nabers o Rec Yds
+ 7 BOOKS ▾
+
+
FD 1,115.5 −112BEST ▸
+
MGM 1,120.5 −105▸
+
DK 1,120.5 −110▸
+
+
Row rail: 44px min tap targets, best row tinted. Full sheet on tap-through.
+
+
+
+
+
+
+
+ 03
+
ARTICLE MEDIA SYSTEM
Our own generated visuals — data graphics in the system language, never stock photography.
+
+
+
+
+ HERO TEMPLATE + 4 HERO GRAPHIC ARCHETYPES
+
+
+
+ LINE MOVEMENT
+ NFL
+ JUL 17, 2026 · 6 MIN READ · THE DESK
+
+
The market repriced Nabers' clearance in an hour. It kept the injury discount anyway.
+
+
+
+
+ OPEN 1,050.5 · MAR 4
+ FA · DRAFT · CLEARED JUL 16
+ NOW 1,120.5 · VYNDR 1,188
+
+
+
HERO ARCHETYPE A · LINE PATH — FOR MOVEMENT PIECES. GENERATED FROM LIVE DATA AT PUBLISH; RE-RENDERS ON REPRICE.
+
+
+
+
+
+
+
A · 71%
+
B · 62%
+
C · 55%
+
D · 41%
+
+
HERO B · DISTRIBUTION — RECORD & CALIBRATION PIECES. REAL SETTLED RATES ONLY.
+
+
+
+
+
MAESTRO
ARCHETYPE MARK AT HERO SCALE
+
+
HERO C · MARK AT SCALE — ARCHETYPE & PLAYER-IDENTITY PIECES. 83 MARKS, NEVER NEW ONES.
The clearance hit the wire at 11:42 AM. Within the hour, NYG receiving markets moved as a block — but only 70 of the roughly 140 yards our sim says the discount was worth.
+
+
+
MARKET MOVED
+70.0
+
MODEL SAYS
+137.5
+
LEFT ON TABLE
67.5
+
+
+
+
TGT SHARE '24
28%
+
MARKET IMPLIES
23%
+
VYNDR SIM
27%
+
FIG 2 · TARGET SHARE, SETTLED VS IMPLIED VS SIM · DATA AS OF JUL 17
+
+
+
+
The market prices the memory of the injury. The model prices the leg.
+
PULL QUOTE — ONE PER ARTICLE, MAXIMUM
+
+
Caption style sits under every figure: mono 8px, tracking .12em, #4a4a58, always carrying the data-source line. If a figure can't name its data, it doesn't ship.
+
+
+
+
+
+
ARTICLE CARD · /BLOG + HUB FEEDS
+
+
+
+
+
+
LINE MOVEMENTJUL 17 · 6 MIN
+
The market repriced Nabers' clearance in an hour. It kept the injury discount anyway.
+
READ ▸
+
+
+
THUMB = THE HERO GRAPHIC, RE-CROPPED. NEVER A SEPARATE ASSET.
+
+
+
+
ARTICLE OG · 1200×630 · SHOWN AT 50%
+
+
+ VYNDR
+ VYNDR.APP/BLOG · JUL 17
+
+
+
LINE MOVEMENT · NFL
The market kept the injury discount anyway.
+
1,050.51,120.5 · V 1,188
+
+
THE READ IS FREE · THE RECORD IS PUBLIC
+
+
+
+
+
+
+
+
+ 04
+
CLV & CALIBRATION
Honesty made visible. Nobody else shows this — it's the ledger differentiator, rendered.
+
+
+
+
+
+
+
+ LEDGER · SETTLED · PER-READ CLV
+ LOCKED NUMBER VS CLOSE
+
CLV tracking began Jul 1, 2026. Beat-close % publishes at N ≥ 100 settled reads — 305 and counting.
+
NEVER A FAKE 0% · NEVER AN EMPTY GAUGE
+
+
+
+
+
+
+
+ CALIBRATION · /u/VYNDR
+ PUBLIC
+
+
When we say 70%, it hits 68.2%.
+
+
+ DOT SIZE = SAMPLE · STATED CONFIDENCE →
+ N 1,214 SETTLED · SINCE JUL 2026
+
+
Dots on the dashed line mean our stated confidence matches reality. Above it, we're underselling; below it, overselling. Buckets under 30 samples render hollow and unlabeled — we don't grade what we can't see.
+
+
+
+
+
+ 05
+
THE VYNDR REPORT
Hybrid: dark billboard header that survives every client, light paper body Gmail can't wreck. 600px, stacked, no webfont dependence.
The market prices the memory of the injury. The model prices the leg.
+
LINE MOVEMENT · 6 MIN · READ ▸
+
+
+ VYNDR · THE READ IS FREE · THE RECORD IS PUBLIC
+ UNSUBSCRIBE · ONE TAP, NO GUILT
+
+
+
+
EMAIL LAWS · SINGLE COLUMN · SYSTEM FONT FALLBACKS (COURIER FOR MONO, ARIAL FOR UI) · GREEN SHIFTS TO #00A57D ON PAPER FOR CONTRAST · HEADER + RECORD BAND STAY DARK (RENDER AS-IS IN EVERY CLIENT) · NO IMAGES REQUIRED TO READ
+
+
+
+
+
+
SIGNUP MODULE · LANDING / HUB / ARTICLE FOOTER
+
THE VYNDR REPORT
+
One email per slate day. Top read, what changed, the record. Nothing else.
+
+ you@…
+ SUBSCRIBE
+
+
12,408 READERS · NO SPAM, NO "LOCKS," NO CAPS-LOCK PICKS
+
+
+
+
+ /REPORT · ARCHIVE
+ 128 ISSUES
+
+
+
Nº 128 JUL 17
The clearance the market half-priced
TOP READ · NABERS A+ · DAY RECORD 9–4
▸
+
Nº 127 JUL 16
Nine slates, one under lean
TOP READ · SKENES A · DAY RECORD 7–5
▸
+
Nº 126 JUL 15
Tag deadline day, read cold
TOP READ · WEMBY MVP A · DAY RECORD 8–6
▸
+
EVERY ISSUE SHOWS ITS OWN DAY RECORD — THE ARCHIVE IS A LEDGER TOO
+
+
+
+
+
+
+ M2
+
BILLBOARD CROPS
Square, story (recomposed, safe zones), X card — plus the new record billboard type. All shown at 50%; export at 2×.
+
+
+
+
+
+
SQUARE · 1080×1080 · FEED
+
+
+ VYNDR
+ SETTLED · JUL 17
+
+
+
A+
+
Jokić Over 27.5 Points
+
DEN @ MIN · HIT · 34
+
+
+ GRADED 10:47 PM · CLV +2.0
+ VYNDR.APP
+
+
+
+
+
+
STORY · 1080×1920 · RECOMPOSED, NOT CROPPED
+
+
PLATFORM UI SAFE ZONE · 108PX
+
+ VYNDR
+
A+
+
Jokić Over 27.5 Points
+
DEN @ MIN · HIT · 34
+
+
+
+
LAST 7 · GRADED 10:47 PM
+
+
SAFE ZONE · 132PX · CTA LIVES ABOVE
+
+
HERO LETTER SCALES UP · DOT STRIP REPLACES TABLE · DASHED ZONES ARE DESIGN-TIME ONLY, STRIPPED ON EXPORT
+
+
+
+
X CARD · 1200×675
+
+
+ VYNDR
+ TOP GRADE TONIGHT
+
+
+
A+
+
+
Jokić Over 27.5 Points
+
DEN @ MIN · OPENED 25.5 · EDGE +8.4%
+
+
+
+
+ THE READ IS FREE · THE RECORD IS PUBLIC
+ VYNDR.APP
+
TIER BARS = HIT RATE BY GRADE · C-TIER SHOWN HONESTLY UNDER .500 — THE RECORD IS THE BRAND
+
+
+
+
+
+ 06
+
SURFACES 2–5 · MOBILE 390
Every screen ships in mobile AND desktop. No horizontal overflow at 390px, ever. Tap targets ≥ 44px.
+
+
+
+
+
+
+
S2 · THE MARKET · SHEET FROM REVEAL
+
+
+
+ ◂ READ
+ THE MARKET
+ ⋯
+
+
+
+ MN
+
Nabers o Rec Yds · season
VYNDR 1,188 · A+ · 7 BOOKS
+ SPLIT · 10.0
+
+
+
+
+
+
V 1,188
+
+
+
+
+
+
+
+
1,115.5
+
1,125.5
+
+
+
+
+ FDFANDUELBEST
+ o1,115.5 −112
+
+
+ 365BET365
+ o1,118.5 −115
+
+
+ DKDRAFTKINGS
+ o1,120.5 −110
+
+
+ MGMBETMGM
+ o1,120.5 −105
+
+
+ ESPNESPN BET
+ o1,120.5 −110
+
+
+ FANFANATICS
+ o1,122.5 −108
+
+
+ CZRCAESARS
+ o1,125.5 −110
+
+
+
+
CONSENSUS SINCE OPEN▲ +70.0
+
+
OPEN 1,050.5 · MAR 4JUL 16 · CLEARED
+
+
+ ALERT ME IF A BOOK POSTS ≤ 1,110.5
+ SET ▸
+
+
NJ · STATE-LEGAL BOOKS ONLY. VYNDR MAY EARN A REFERRAL FEE. THE NUMBER SHOWN IS THE NUMBER YOU GET. LINES AS OF 11:58 AM ET.
+
+
+ TAKE o1,115.5 AT FANDUEL · −112 ▸
+
+
+
+
+
+
+
+
S3 · ARTICLE · 390
+
+
+
+ ◂ BLOG
+ VYNDR
+ ↗
+
+
+
+ LINE MOVEMENT
+ NFL
+ JUL 17 · 6 MIN
+
+
The market repriced Nabers' clearance in an hour. It kept the injury discount anyway.
+
+
+
+ OPEN 1,050.5
+ NOW 1,120.5 · V 1,188
+
+
+
The clearance hit the wire at 11:42 AM. Within the hour, NYG receiving markets moved as a block.
+
+
MOVED
+70.0
+
MODEL
+137.5
+
LEFT
67.5
+
+
+
The market prices the memory of the injury. The model prices the leg.
+
+
Pre-injury target share was 28% and nothing in the offseason challenged it — no WR drafted in the first four rounds, no veteran signed. The sim keeps 27%; the market's number implies 23%.
312 props graded tonight across 47 games — ranked by edge, verified against closing lines, settled in public. Misses included.
+
+
+
+
+
+ CLV-VERIFIED
+ RECORD PUBLIC
+ MISSES INCLUDED
+
+
+
+
+
+ EDGE BOARD
+ LIVE
+
+
+ 01
+
Jokić o27.5 PTS
NBA · DEN @ MIN
+ A+
+ +8.4%
+
+
+ 02
+
Skenes o6.5 K
MLB · PIT @ CHC
+ A
+ +6.1%
+
+
+ 03
+
Edwards o5.5 AST
LIVE · Q3 4:12
+ A
+ +5.2%
+
+
+ 04
+
Judge o1.5 TB
MLB · NYY @ BOS
+ B
+ +3.4%
+
+
+ 05
+
LaVine o22.5 PTS
NBA · CHI @ MIL
+ D
+ -1.2%
+
+
+ + 42 GRADED READS · PRO
+ RANKED BY EDGE
+
+
+
+
+
+
+
+
+
THE PROOF
+
The grades calibrate. That's the product.
+
A+ reads hit 80%. D reads lose — so we tell you to fade them. Every grade settles against the closing line in public, misses included.
+
+
+
+ TIER RECORD
+ SEASON · ALL SPORTS
+
+
+ TIERHIT RATERECORDROI
+
+
+ A+
+
+ 24–6+31%
+
+
+ A
+
+ 41–19+18%
+
+
+ B
+
+ 58–42+6%
+
+
+ C
+
+ 30–28+1%
+
+
+ D
+
+ 12–20FADE ✓
+
+
+
+
+
+
+
+
+
+
RANKED, NOT NOISY
+
One board. Every sport. Sorted by edge.
+
The A-tier read floats to the top at full color; everything else dims. You see the one thing that matters in a glance.
+
+
+
ALIVE DURING THE SLATE
+
Grades that react while the game runs.
+
A number pulses the instant a line moves. Live grades firm and ease with pace and usage — on the board, and on your lock screen.
+
+
+
MATH THAT SAYS NO
+
Correlation warnings that trim your stake.
+
Same-game legs move together — books pay as if they don't. VYNDR prices the true parlay and sizes the stake to the real risk.
+
+
+
+
+
+
+
+
ONE DECISION
+
The free tier is the trial.
+
+
+
+
FREE$0
+
+ ✓ Live scores + the wire
+ ✓ Tonight's top 3 grades
+ — Board ranks 4–47 stay sealed
+
+
+
+
+
+
+ THE DESK
+ ALL SPORTS
+
+
$44.99/mo
+
+ ✓ The full edge board — every graded read, nightly
+ ✓ Live grade-shift + steam alerts on lock screen
+ ✓ CLV-verified public record + share cards
+ ✓ Correlation math on every slip
+
+
+
cancel anytime · no trial — the free tier is the trial
MIN plays the 4th-fastest pace vs. centers and concedes +3.1 boards to CONDUCTOR-type bigs. Line lagged the matchup by 2.0.
+
+
+
+
+
+
+
+
+
+
+
03 · BUILD
+
+
+
+ PARLAY SLIP
+ 2 LEGS
+
+
+
+
+
Jokić o27.5 PTS
NBA · DEN @ MIN
+ A+
+ +105
+
+
+
+
Edwards o5.5 AST
NBA · DEN @ MIN
+ A
+ +130
+
+
+
SAME-GAME CORRELATION
+ DEN @ MIN — legs move together. Real edge shrinks; stake trimmed to size the true risk.
+
+
+
COMBINED
+371
+
GRADE
A-
+
STAKE
0.4u
+
+
+
ADD FROM TONIGHT'S A/B READS
+
+
+
Skenes o6.5 K
+ -120
+
+
+
+
Judge o1.5 TB
+ +140
+
+
+
+
+
+
+
+
+
+
+
+
+
04 · LOCK SCREEN · LIVE ACTIVITY
+
+
+
+
+
+
+ Edwards A
+
+
+
+
+
+
Wednesday, July 16
+
9:41
+
+
+
+
+
+
+ VYNDR
+
+
LIVE · Q3 4:12
+
+
+
+ A
+ LIVE TIER
+
+
+
Edwards o5.5 AST
+
4 AST · pacing ▲ · usage +6%
+
+
+
+
+
+
+
+
+
4 OF 6NEEDS 2 · 16 MIN LEFT
+
+
+
+
+
+
+
STEAM ALERT
Skenes K line 6.5 → 7.5 — grade re-check at first pitch.
+ now
+
+
+
THE TERMINAL WATCHES WHILE YOU DON'T
+
+
+
+
+
+
+
05 · /u RECORD
+
+
+
+
+
EH
+
+
@edgehunter
+
+ CLV-VERIFIED
+ 412 graded
+
+
+
+
+
HIT RATE
64.2%
+
UNITS
+38.6u
+
ROI
+11.4%
+
AVG CLV
+3.1%
+
+
+ GRADE HISTORY · L18
+ HITMISS
+
+
+
ARCHETYPE FINGERPRINT
+
+
TORCH32%
+
BOMBER24%
+
ALPHA18%
+
+
+
+
+
+
+
+
+
+
+
+
06 · LANDING
+
+
+
+
+
+ VYNDR
+
+
Every line, graded before you bet it.
+
The sports intelligence terminal. 312 props graded tonight, every grade settled in public.
+
+
+
+
+ LIVE · TOP OF THE BOARD
+ --:--:--
+
+
+
Jokić o27.5 PTS
NBA · DEN @ MIN
+ A+
+ +8.4%
+
+
+
Skenes o6.5 K
MLB · PIT @ CHC
+ A
+ +6.1%
+
+
+
+
+ CLV-VERIFIED
+ RECORD PUBLIC
+ MISSES INCLUDED
+
+
+
+
+
+
+
+
+
+
+
+
+
07 · PRICING
+
+
+
+
ONE DECISION
+
+ FREE
+ PRO
+
+
+
+
+
+ THE DESK
+ ALL SPORTS
+
+
+ $44.99
+ /mo
+
+
+ ✓ The full edge board — every graded read, nightly
+ ✓ Live grade-shift + steam alerts on lock screen
+ ✓ CLV-verified public record + share cards
+ ✓ Correlation math on every slip
+
+
+
cancel anytime · no trial — the free tier is the trial
+
+
+
+
+ FREE
+ $0
+
+
+ ✓ Live scores + the wire
+ ✓ Tonight's top 3 grades
+ — Board ranks 4–47 stay sealed
+
+
+
+
412 GRADED · RECORD PUBLIC · MISSES INCLUDED
+
+
+
+
+
+
+
08 · STREAKS
+
+
+
+ STREAKS
+ RANKED · LENGTH ▼
+
+
+
+
+
+
LA
+
+
Luka Dončić
+
o29.5 PTS · built vs bottom-10 defenses
+
+
+
+ 11
+ STRAIGHT
+ 100% · L11
+
+
+
+
+
TOR
+
Vladimir Guerrero Jr.
o1.5 TB · correlated w/ team total
+
7
STRAIGHT
+
+
+
NYY
+
Aaron Judge
o1.5 TB · vs LHP only
+
5
STRAIGHT
+
+
+
EDM
+
Connor McDavid
o1.5 PTS · home only
+
4
STRAIGHT
+
+
+
+
+
BOARD
+
STREAKS
+
BUILD
+
LEDGER
+
/u
+
+
+
+
+
+
+
+
09 · LEDGER · PENDING
+
+
+
+ LEDGER
+
+ PENDING
+ SETTLED
+
+
+
+
+
+
Edwards o5.5 AST
LIVE · 4 OF 6 · Q3 4:12
+ A
+ 1.0u
+
+
+
+
Jokić o27.5 PTS
TIP 10:05 PM · DK -114
+ A+
+ 1.5u
+
+
+
+
Parlay · Jokić + Edwards
CORRELATED · STAKE TRIMMED
+ A-
+ 0.4u
+
+
+
+
Skenes o6.5 K
FIRST PITCH 7:10 PM
+ A
+ 1.0u
+
+
+
AT RISK
3.9u
+
TO WIN
5.6u
+
AVG GRADE
A
+
+
+
+
BOARD
+
STREAKS
+
BUILD
+
LEDGER
+
/u
+
+
+
+
+
+
+
+
10 · LEDGER · SETTLED + TIER RECORD
+
+
+
+ LEDGER
+
+ PENDING
+ SETTLED
+
+
+
+
+
Jokić o27.5 PTS
settled 30 · CLV +2.4%
+ A
+ HIT
+
+
+
Edwards o5.5 REB
settled 4 · CLV −0.8%
+ C
+ MISS
+
+
+
Skenes o6.5 K
settled 8 · CLV +4.0%
+ A+
+ HIT
+
+
+
+
+ TIER RECORD
+ SEASON · ALL SPORTS
+
+
+ TIERHIT RATERECORDROI
+
+
+ A+
+
+ 24–6+31%
+
+
+ A
+
+ 41–19+18%
+
+
+ B
+
+ 58–42+6%
+
+
+ C
+
+ 30–28+1%
+
+
+ D
+
+ 12–20FADE ✓
+
+
THE GRADES CALIBRATE — A+ HITS 80%, D LOSES. THAT'S THE PRODUCT.
+
+
+
+
+
BOARD
+
STREAKS
+
BUILD
+
LEDGER
+
/u
+
+
+
+
+
+
+
+
11 · EMPTY STATE
+
+
+
+ EDGE BOARD
+ A-TIER FILTER ON
+
+
+
TRANSMISSION QUIET
+
No reads cleared the A-tier threshold yet.
+
312 props graded — none hit the edge floor. That's the system protecting you, not a bug. Grades refresh as lines move.
+
+
+
+
THE ENGINE IS STILL WATCHING
+
+
+
+
+
+
+
12 · SCAN
+
+
+
+
+
+ jok
+
+
+
+
TOP MATCH
+
+ NJ
+
Nikola Jokić
C · DEN · CONDUCTOR
+ A+
+
+
READS TONIGHT
+
+
Jokić o27.5 PTS
DK -114 · steam ▲
+ +8.4%
+
+
+
Jokić o12.5 REB
FD -108 · flat
+ +1.2%
+
+
RECENT
+
+ skenes
+ den @ min
+ ufc 312
+
+
+
+
+
+
+
+
+
13 · PLAYER
+
+
+
+
+
NJ
+
+
Nikola JokićCONFIRMED
+
C · #15 · Denver Nuggets · vs MIN tonight
+
+
+
+ CONDUCTOR 62%
+ TORCH 38%
+
+
+
+
+ PTS / GAME · L15
+ ▲ +2.3
+
+
+ 28.6
+
#4 of 82 C
MIN allows 26.1
+
+
+
+ L10
+
+
+
+
TONIGHT'S READS
+
+
o27.5 PTS
DK -114 · opened 25.5 · steam ▲
+ A+
+ +8.4%
+
+
+
o12.5 REB
FD -108 · flat
+ B
+ +1.2%
+
+
+
o9.5 AST
MGM -115 · drifting ▼
+ C
+ +0.3%
+
+
+
+
+
+
+
+
+
14 · TEAM HUB
+
+
+
+
+
DEN
+
+
Denver Nuggets
+
53–24 · 2ND WEST · @ MIN TONIGHT
+
+
+2.1
NET RTG L10
+
+
+
PACE
98.4 #12
+
OFF RTG
121.2 #2
+
DEF RTG
114.8 #18
+
+
ROTATION · RANKED BY TONIGHT'S EDGE
+
+ 01
+
Jokić
C · 28.6 PPG · o27.5
+ A+
+
+
+ 02
+
Murray
PG · 21.3 PPG · o20.5
+ B
+
+
+ 03
+
Gordon
PF · 14.8 PPG · o13.5
+ C
+
+
+ 04
+
Porter Jr. GTD
SF · 16.4 PPG · awaiting status
+ —
+
+
+
TEAM READ
+
MIN concedes +3.1 boards to CONDUCTOR bigs and plays top-5 pace — DEN's edge concentrates in Jokić props, not the spread.
+
+
+
+
+
+
+
+
+
15 · EXPLORE
+
+
+
+ EXPLORE
+ FUTURES · NEWS
+
+
+
+
+
FUTURES · MVP · MISPRICED
+
+ NJ
+
Jokić MVP
DK +320 · model fair +190
+
+9.3%
EDGE
+
+
+
MORE FUTURES
+
+
Thunder to win West
FD +240 · fair +215
+ B
+
+
+
Skenes NL Cy Young
MGM +150 · fair +160
+ C
+
+
THE WIRE · TONIGHT
+
+ 8:42
+
INJURY
Porter Jr. GTD (ankle) — Jokić usage read firms if he sits.
+
+
+ 7:15
+
STEAM
Sharp money on Skenes K over — line 6.5 → 7.5 at three books.
+
+
+
+
+
+
+
+
+
16 · COMBAT MATCHUP
+
+
+
+ UFC 312 · LW · 5 RND
+ CLV-VERIFIED
+
+
+
+
+
+
IM
+
Islam M.
26–1 · ORTHODOX · 70"
+ GRAPPLER 80%
+
+
+
+ ✓ COMBAT SAMBO
+ ✓ DAGESTAN WRESTLING
+
+
+
+
+
+ GRAPPLER EDGE
+
+
+
+
+
AV
+
Alex V.
26–3 · ORTHODOX · 71.5"
+ PRESSURE 72%
+
+
+
+ ✓ ELITE TDD 94%
+ ? WRESTLING BASE
+
+
+
+ RECENT-FORM OVERRIDE
+
Volk stuffed 11 of 12 TDs last 3 fights → pushes DECISION over submission.
+
+
+
ML · ISLAM -230
A-
+
DECISION · +120
A
+
SUB · +280
B+
+
O2.5 RND · -140
A-
+
+
+
+
+
+
+
+
+
17 · PITCHER IDENTITY
+
+
+
+
+
PIT
+
+
Paul SkenesCONFIRMED
+
RHP · #30 · PIT · vs CHC 7:10
+
+
+
+ ALPHA
+ PUNCHOUT
+ TUNNELER
+
+
+
+
+ PITCHVELOUSEWHIFF
+
+
4-Seam99.132%26%
+
Splinker94.224%38%
+
Slider87.022%41%
+
+
+
APPROACH · TUNNELER
+
Splinker + slider tunnel off the 99mph 4-seam — whiffs cluster the 3rd time through.
+
+
ONE IDENTITY → MANY PROPS
+
+
o6.5 K
line moved 6.5 → 7.5 · steam ▲
+ A
+ +6.1%
+
+
+
o16.5 OUTS
workload steady L5
+ A-
+ +4.2%
+
+
+
+
+
+
+
+
+
18 · ARCHETYPES
+
+
+
+ ARCHETYPES
+ 83 MARKS · 8 SPORTS
+
+
+ NBA
+ MLB
+ NFL
+ MMA
+ +4
+
+
+
+
TORCH
+
CONDUCTOR
+
ARCHITECT
+
BOLT
+
IGNITER
+
FORTRESS
+
+
+
+
THE BLEND · EVERY PLAYER IS A FINGERPRINT
+
+ NJ
+
+
CONDUCTOR62%
+
+
TORCH38%
+
+
+
+
+
+
+
+
+
+
+
+
19 · CORRELATION DETAIL
+
+
+
+ ◂ SLIP
+ CORRELATION READ
+
+
+
+
JOKIĆ o27.5 × EDWARDS o5.5
+
r=.62
+
STRONGLY CORRELATED
+
+
+
WHY THEY MOVE TOGETHER
+
Same game, same pace engine. A fast DEN @ MIN inflates both point and assist volume — when one hits, the other usually has. Books price the parlay as if independent; it isn't.
+
+
+
BOOK PAYS AS IF
+371
+
TRUE FAIR VALUE
+295
+
+
+
+ VYNDR STAKE GUIDANCE
+ 0.4u
+
+
Sized to the true fair value, not the payout. Keep the legs — trim the stake.
+ THE WIRE
+
+ --:--:--
+ Offseason desk open — 214 NFL season lines repriced on news.
+ LOG ▸
+
+
+
+
+
+
+
SESSION 2 · SURFACE 1 · THE OFFSEASON HUB
+
Every sport is always in season.▌
+
A sport is in one of two states: LIVE SLATE or OFFSEASON HUB. The hub lives inside the sport — tapping NFL gets NFL, whatever NFL is today. Season-long is a different read: no "tonight," longer horizons, lines that move on news. The story is the movement — open, current, model.
We don't grade Summer League props. Ten-day samples against fringe rosters aren't signal — they're noise wearing a jersey. We read minutes, roles, and rotation intent instead.
+ DET Lions WINS O/U
+ 10.5
+ 11.5
+ 11.9
+ +1.9%
+ C
+ ▲ +1.0
+
+
+ KC Chiefs WINS O/U · MODEL LEANS UNDER
+ 11.5
+ 11.5
+ 10.8
+ +3.1%
+ B
+ FLAT · 62D
+
+
+
+ + 207 SEASON LINES · REPRICED ON NEWS · LAST REPRICE JUL 17 · 11:42 AM ET
+ EDGE = MODEL VS CURRENT · ODDS MARKETS GRADED ON FAIR PRICE
+
+
+
+
+
+
+
+
+
S1-C · SEASON BOARD · 390
+
+
+
+
+ ◂
+ NFL · SEASON BOARD
+
+ 214 LINES
+
+
+ ALL
+ PASS
+ RUSH/REC
+ WINS
+ AWARDS
+
+
+
+
+ MN
+ Nabers
+ WR · NYG
+ BURNER
+
+
+
+
Rec Yds
+
1,050.5 → 1,120.5 · V 1,188
+
+ ▲ +70
+ A+
+
+
+
+
Receptions
+
88.5 → 92.5 · V 97.0
+
+ ▲ +4
+ B
+
+
+ JA
+ Allen
+ QB · BUF
+ MAESTRO
+
+
+
+
Pass + Rush TD
+
36.5 → 37.5 · V 40.2
+
+ ▲ +1
+ A
+
+
+
+
MVP FAIR PRICE
+
+650 → +600 · V +490
+
+ ▲
+ B
+
+
+ TEAM WIN TOTALS
+
+
+
+
DET Wins
+
10.5 → 11.5 · V 11.9
+
+ ▲ +1
+ C
+
+
+
+ WIRE
+ Last reprice 11:42 AM — Nabers rec yds.
+
+
+
+
+
+
+
+
S1-D · SEASON READ REVEAL · 390
+
+
+
+ ◂ BOARD
+ SEASON READ
+ ⋯
+
+
+
+ MN
+
+
Malik Nabers
+
WR · NYG · BURNER
+
+ A+
+
+
Over 1,120.5 Receiving Yards · 2026 season
+
+
+
OPEN · MAR 4
1,050.5
+
NOW
1,120.5
+
VYNDR
1,188
+
+
+
+
+
+ MAR 12 · FA
+ APR 25 · DRAFT
+ JUL 16 · CLEARED
+
+
+
+
+
+
+ VYNDR INTELLIGENCE
+
+
Pre-injury target share 28% with no added competition. Market repriced the clearance +70 but still carries the injury discount — on current form the number is 68 yards light.
+
+
+
+
WHAT WOULD CHANGE THIS READ
+
▼Soft-tissue setback in campRE-GRADE ≤ B
+
▼QB room change before Week 1RE-RUN MODEL
+
▲Slot usage in preseason installsMODEL ↑
+
+
+
+
MODEL RUN JUL 17 · 6:00 AM ET · SETTLES WK 18 · CLV TRACKED FROM LOCK
+
+ LOCK THE READ
+ SHOP ▸
+
+
+
+
+
+
+
+
+
+
+ 03
+
SEASON READ REVEAL
The grade reveal at a season horizon — no "tonight." News-driven factors, movement annotated with events, and what would change the read.
+
+
+
+
+
+
+
+ SEASON READ · 2026 · NFL
+ CLV TRACKED FROM LOCK
+
+
+
+
A+
+
TIER
+
+
+
+ MN
+
+
Malik Nabers
+
WR · NYG · BURNER
+
+
+
Over 1,120.5 Receiving Yards · season
+
+
+
+ OPEN 1,050.5 · MAR 4
+ MAR 12 FA · APR 25 DRAFT
+ JUL 16 CLEARED · NOW 1,120.5
+
+
+
+
+
+
OPEN
1,050.5
+
NOW
1,120.5
+
VYNDR
1,188
+
+
+
+
+ VYNDR INTELLIGENCE
+
+
On current form: pre-injury target share 28%, no added target competition, QB continuity intact. The market repriced the clearance +70 yards but still carries last season's injury discount. Our season sim puts the number 68 yards light — the news, not the noise, moved this line.
+
+
MODEL RUN JUL 17 · 6:00 AM ET · SETTLES WK 18 · JAN 3 2027 · NO "TONIGHT" ON A SEASON READ
+
+
+
+
+
+
+
NEWS-DRIVEN FACTORS
+
+
JUL 16Cleared for camp — no restrictionsMODEL ▲
+
APR 25No WR drafted in first four roundsMODEL ▲
+
MAR 12O-line additions in free agencyNEUTRAL
+
+
+
WHAT WOULD CHANGE THIS READ
+
+
▼Soft-tissue setback in campRE-GRADE ≤ B
+
▼QB room change before Week 1RE-RUN MODEL
+
▲Heavy slot usage in preseason installsMODEL ↑
+
EVERY SEASON READ NAMES ITS KILL CONDITIONS — HONESTY IS THE PRODUCT
+
+
+
+
+
+
+
+ 04
+
NEWS / OUTLOOK FEED
Event → affected entities → line impact → article. One anatomy, reused in the hub, the reveal, and /blog.
+
+
+
+
+
+ THE FEED · NFL
+ EVENTS THAT MOVED OUTLOOKS ONLY
+
+
+
TODAY · JUL 17
+
+
11:42 AMCLEAREDSOURCE · TEAM REPORT
+
Nabers cleared for camp with no restrictions — the injury discount is now the market's mistake
+
+ NYG
+ M. NABERS
+ REC YDS 1,050.5 → 1,120.5 · V 1,188
+ FULL ARTICLE ▸
+
+
+
+
10:15 AMCAMP REPORTSOURCE · BEAT POOL
+
Worthy running clear WR1 reps in KC installs
+
+ KC
+ REC YDS 990.5 → 1,024.5 · V 1,061
+ FULL ARTICLE ▸
+
+
+
+
9:30 AMCONTRACTSOURCE · LEAGUE FILING
+
Higgins restructure keeps the WR2 in stripes — Burrow's ceiling holds
+
+ CIN
+ PASS TD 27.5 → 28.5 · V 29.8
+ FULL ARTICLE ▸
+
+
+
WED · JUL 16
+
+
4:40 PMINJURY
+
Kincaid tweaks hamstring in conditioning — monitoring, not moving
+
+ BUF
+ REC YDS 625.5 · HELD · WATCHING
+
+
+
+
+
QUIET WIRE
+
No outlook-moving news since 11:42 AM. We don't manufacture movement.
+
EMPTY STATE · RENDERS WHEN A DAY HAS NO EVENTS
+
+
+
+
+
+
ROW ANATOMY
+
+
1
TIME + EVENT TAG + SOURCE
Tag color = meaning: neutral grey, CONTRACT amber, INJURY red. Never green — green is edge only.
+
2
HEADLINE
Editorial voice — states what happened and why the desk cares. Weight 700 only when the event repriced a line.
+
3
AFFECTED CHIPS
Existing TeamChip + player chips. Tap target ≥ 44px on mobile.
+
4
LINE IMPACT
old → new · VYNDR model. FLAT + HELD are honest values — a non-move is information.
+
5
FULL ARTICLE ▸
Present only when an article exists. No dead links, no "coming soon."
+
+
+
REUSED IN · HUB "WHAT CHANGED TODAY" · REVEAL FACTORS · /BLOG FEED · THE REPORT EMAIL
+
+
+
+
+
+
+ HUB HOME · SEASON BOARD · SEASON REVEAL · THE FEED · NFL + NBA · DESKTOP + 390
+ VYNDR · SESSION 2 · SURFACE 1
+
+ THE WIRE
+
+ --:--:--
+ Intelligence desk open — 7 books held per prop, CLV tracked from lock.
+ LOG ▸
+
+
+
+
+
+
VYNDR · ACT 01 · THE PRICE TRIPLET
+
The honest layer, rendered.▌
+
The price triplet leads — book · fair · model, the de-vigged number nobody else shows consumers. Then line shopping, article media, CLV & calibration, and The Report — extensions sharing primitives. The movement strip is defined once here and reused everywhere a line has a past.
+
BOOK · FAIR · MODEL · FIVE HONESTY STATES · STAT PROJECTION + PRICE LAYER
+
+
+
+
+ 01
+
THE PRICE TRIPLET · HERO
Book · fair · model, per prop — the price-honesty layer beside the stat projection. Fair is the amber hero, honest on every row: value, edge-but-priced-out, or no edge. Renders on the read card, board and hero; the close lives in the ledger.
The de-vigged fair number. The whole product. Never hidden — not even when the model leg is poisoned.
+
MODEL
VYNDR's own price. Green only for takeable edge — never a juiced one. Suppressible on quarantined rows.
+
+
SAME TOKENS AS THE PARLAY · LABEL 7.5PX / .14EM / #707080 · VALUE MONO 800 · FAIR AMBER #FFB347 VS BOOK #F0F0F0 · GREEN #00D4A0 = TAKEABLE EDGE ONLY · BLUE = EDGE PRICED OUT
+
+
+
+
+ FIVE HONESTY STATES · DESKTOP
+ THREE VERDICTS — VALUE · EDGE-NOT-TAKEABLE · NO EDGE — PLUS QUARANTINE & REFUSAL
+
+
+
+
+
+
+
Nabers o 1,115.5 Rec Yds
NYG · WK 1
+ 1 · VALUE
+
+
+
BOOK
+125
OFFERED
+
◆ FAIR
+110
DE-VIGGED
+
MODEL
+98
OUR PRICE
+
+
+
VALUE · +2.9% VS FAIR
+
Model prices it shorter than the honest number — the book is paying longer than the leg is worth. Real edge.
Graded against an unverified matchup — so we suppressed our price. Book & fair stand; we never hide the honest fair number because a different leg is poisoned.
No fair price we'd defend yet — the inputs are too thin. When they clear, the triplet returns. We'd rather show nothing than a number we can't stand behind.
+
NO FABRICATED PRICE · NO EMPTY GAUGE · TRUTH LAW
+
+
+
NOTHING TO TRACK YETLEDGER OPENS ON FIRST HONEST LOCK
+
+
+
+
+
+ IN CONTEXT · WHERE IT RENDERS
+ READ-CARD HERO · BOARD ROW · FREE-TIER GATE
+
The market moved 70 on the clearance and stopped — our sim says the discount was worth twice that. Read the projection first (does it clear), then the price (is it fair). Two questions, one card.
Model beats the honest number and the price is takeable — the edge is real at what you can actually get.
+
+
+
+
+
+
HIERARCHY · STAT PROJECTION READS FIRST (WILL IT CLEAR) → PRICE TRIPLET QUALIFIES IT (IS IT FAIR). TWO QUESTIONS, TWO STACKED BLOCKS — NEITHER CROWDS THE OTHER. FAIR STAYS THE AMBER HERO OF THE PRICE LAYER.
+
+
+
+
+
TONIGHT'S BOARD · NBARANKED BY EDGE · FAIR IS THE NUMBER
+
+ A+
+
Jokić o 27.5 Pts
PROJ 28.9 ▸ CLEARS · BOOK +125 · MDL +98
+
◆ FAIR
+110
+ +2.9%
+
+
+ A
+
Edwards o 5.5 Ast
PROJ 6.4 ▸ CLEARS · BOOK +112 · MDL +96
+
◆ FAIR
+103
+ +1.6%
+
+
+ B
+
Gobert o 11.5 Reb
PROJ 12.1 ▸ CLEARS · BOOK +108 · MDL withheld
+
◆ FAIR
+99
+ QUAR
+
+
+ C
+
Murray o 22.5 Pts
PROJ 22.9 ▸ THIN · BOOK +118 · MDL +124
+
◆ FAIR
+109
+ NO EDGE
+
+
PROJECTION LEADS THE ROW (WILL IT CLEAR) · FAIR IS THE PRICE · EDGE CHIP IS THE VERDICT
+
+
+
+
+
FREE-TIER GATE · MODEL LEG LOCKED
+
+
Nabers o 1,115.5
FREE
+
+
BOOK
+125
+
◆ FAIR
+110
+
MODEL
+ █ █
+
+
MODEL PRICE ON ANALYSTUNLOCK ▸
+
+
The honest de-vigged number stays free — that's the hook. Only VYNDR's own price gates. The fair leg is never the paywall.
+
+
+
+
+
+
+
+
+
MOBILE · 390 · THREE LEGS HOLD, FAIR STAYS HERO
+
+
+
+
Nabers o 1,115.5 Rec
VALUE
+
+
BOOK
+125
+
◆ FAIR
+110
+
MODEL
+98
+
+
+2.9% VS FAIRreal edge
+
+
+
+
Bijan o 84.5 Rush
QUARANTINE
+
+
BOOK
+130
+
◆ FAIR
+116
+
MODEL
—
+
+
MODEL WITHHELDbook & fair stand
+
+
+
44PX MIN TAP ON THE LEDGER LINK · NO HORIZONTAL SCROLL AT 390 · FAIR NEVER DROPS BELOW BOOK/MODEL IN SIZE
+
+
+
+
+
TIER PLACEMENTRECOMMENDED · CONFIRM
+
The de-vigged fair number is the free-tier hook per prior product intent — worth surfacing on Free. Flagged for confirmation before ship.
+
+
+ FREE
+
Book · fair — model leg locked.
The hook: the honest de-vigged number, free. Model shows as a locked teaser that upsells the read.
+
+
+ ANALYST
+
Full triplet + VALUE marker.
All three legs, the verdict fires both ways — value and no-edge. Quarantine renders as the primary two-leg state.
+
+
+ DESK
+
Triplet + ledger cross-ref + calibration.
The price story wired to its resolved close and the confidence-bucket record behind the model leg.
+
+
+
+
+
+
+ THE TRIPLET NEVER PRINTS A NUMBER IT CAN'T STAND BEHIND
+ NO FABRICATED MODEL PRICE · NO HIDDEN "NO EDGE" · FAIR IS HONEST ON EVERY ROW
+
+ THE WIRE
+
+ --:--:--
+ Session open — 312 props graded across 47 games.
+ LOG ▸
+
+
+
+
+
+
+
+
+
+ ESC
+
+
+
JUMP TO
+
+
+ Tonight's Slate · Edge Board
+ ↵
+
+
+
+ Ledger · settled history
+ ↵
+
+
+
+ Streaks
+ ↵
+
+
PLAYERS
+
+ NJ
+ Nikola Jokić · C · DEN
+ A+
+
+
+ PIT
+ Paul Skenes · RHP · PIT
+ A
+
+
+ MIN
+ Anthony Edwards · SG · MIN
+ A
+
+
ACTIONS
+
+
+ Generate share card
+ ↵
+
+
+
+ Export /u public record
+ ↵
+
+
NO MATCHES · TRANSMISSION QUIET
+
+
+ ↑ ↓ NAVIGATE · ↵ OPEN · ESC CLOSE
+ VYNDR TERMINAL
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VYNDR
+
+
+ SPORTS INTELLIGENCE TERMINAL
+
+
+
+
+
+
+ 14
+ EDGES
+
+
+ +2.8%
+ AVG CLV
+
+
+
+
+ SYNC
+ --:--:--
+
+
+
$44.99/mo
+
+
+
+
+
+
+
+
01 · THE TERMINAL · VISUAL SYSTEM v2
+
The instrument, not the sportsbook.
+
Dense but ranked. Mostly still, then it reacts — a number pulses the instant a line moves, a card breathes when its game goes live. One hero per screen.
+ DECLASSIFIED · TOP GRADE TONIGHT
+ CLV-VERIFIED
+
+
+
+
+
A+
+
TIER
+
+
+
+ NJ
+
+
Nikola Jokić
+
C · DEN · CONFIRMED
+
+
+
Over 27.5 Points
+
+ DK -114
+ ▲
+ opened 25.5
+
+
+
+
+
+ OPEN 25.5 · 9:02 AM
+ STEAM 4:40 PM ▲
+ NOW 27.5
+
+
+
+
+
+
+
+
+
EDGE
+
+8.4%
+
+
+
L10 HIT
+
8/10
+
+
+
PROJ
+
30.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HIT
+ MISS
+
+
+
+
+
+
+
+ VYNDR INTELLIGENCE
+
+
MIN plays the 4th-fastest pace vs. centers and concedes +3.1 rebounds to CONDUCTOR-type bigs. Line lagged the pace matchup by 2.0 — the steam confirms it.
+
+
+
+
+
+
+
+
+ 02
+
THE SYSTEM
Five components + 74 marks. Every other page is assembled from these.
+
+
+
+
+ COMPONENT SYSTEM
+ THE PARTS EVERY SURFACE INHERITS
+
+
+
+
+
+
+
+
02 · STAT BLOCK
+
+
+ PTS / GAME · L15
+ ▲ +2.3
+
+
+ 28.6
+
+
#4 of 82 C
+
vs MIN allows 26.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ L10
+
+
+
+
+
+
+
03 · PLAYER IDENTITY
+
+
+
NJ
+
+
+
+
+ Nikola Jokić
+ CONFIRMED
+
+
C · #15 · Denver Nuggets
+
+
+
+ CONDUCTOR
+
+
+
+ TORCH
+
+
+
+
+
+
+
+
+
04 · LINE DISPLAY
+
+
+ Jokić o27.5 PTS
+ STEAM ▲
+
+
+
+ DraftKings
+
+ -114
+ BEST
+
+
+
+ FanDuel
+
+ -120
+ ▲
+
+
+
+ BetMGM
+
+ -118
+ —
+
+
+
+
+ CLV vs CLOSE
+ +2.4%
+
+
+
+
+
+
+
05 · GRADE REVEAL · tiers
+
+
+
+
A
+
EDGE
+
+
+
B
+
LEAN
+
+
+
C
+
PASS
+
+
+
D
+
FADE
+
+
+
F
+
AVOID
+
+
+
+
+ GLOW RESERVED FOR A-TIER ONLY
+ EDGE COLORED BY SIGN
+
+
+
+
+
+
+
+
+
+ ARCHETYPE GLYPHS
+ FULL SYSTEM · 83 UNIQUE MARKS · 8 SPORTS + CLASSIFIER LEGACY
+
+
+
+
One grid, one weight, one construction logic — filled base plus weighted stroke, so each mark reads as an emblem before the word. Colors deduped off signal-green so #00D4A0 stays uniquely "edge."
+
↺ marks names reused across sports — the vocabulary is a language: a WALL is the immovable last line in every sport.
+
+
+
+
+
+
+
+
THE BLEND · MULTI-ARCHETYPE FINGERPRINT
+
Players aren't one archetype — they carry a weighted blend. The mark system combines: primary dominant + supporting muted. This is the moat nobody copies.
+
+
+
+ TB
+
+
Brandon Lowe
+
2B · Tampa Bay Rays
+
+
+
+
+
+
+
+
BOMBER
+
+
+
+ PRIMARY · BOMBER
+ 54%
+
+
+
+ SUPPORTING · DRIVER
+ 46%
+
+
+
+
+
+
+
+
DRIVER
+
+
+
+
+
+
+
+
+
+ 03
+
THE SURFACES
What gets posted. The timeline is customer #1 — these stop a scroll.
+
+
+
+
+ STREAKS
+ A BLOOMBERG ALERT, NOT A LOG LINE
+
+
+
+
+
+
+
+
LA
+
+
+
+
+ Luka Dončić
+
+
+ TORCH
+
+
+
o29.5 PTS · built vs bottom-10 defenses
+
+
+
+ 11
+ STRAIGHT
+
+ HIT RATE 100% · L11
+
+
+
+
+
+
TOR
+
+
+
+
+ Vladimir Guerrero Jr.
+
+
+ BOMBER
+
+
+
o1.5 TB · correlated w/ team total
+
+
+
+ 7
+ STRAIGHT
+
+ CAUTION · CORRELATION FLAG
+
+
+
+
+
+
+
+
+
+ PUBLIC RECORD
+ vyndr.io/u/edgehunter · THE VERIFIED WEAPON
+
+
+
+
+
+
+
EH
+
+
+ @edgehunter
+ CLV-VERIFIED
+
+
+
+
+ TORCH-HEAVY BETTOR
+
+ 412 graded · since Mar '24
+
+
+
+
+
+
+
+
+
HIT RATE
+
64.2%
+
+
+
UNITS
+
+38.6u
+
+
+
ROI
+
+11.4%
+
+
+
AVG CLV
+
+3.1%
+
+
+
+
+
+
+ GRADE HISTORY · LAST 24
+
+ HIT
+ MISS
+
+
+
+
+
+
+
+
+
ARCHETYPE FINGERPRINT
+
+
+
+ TORCH
+ 32%
+
+
+
+
+
+ BOMBER
+ 24%
+
+
+
+
+
+ ALPHA
+ 18%
+
+
+
+
+
+ CONDUCTOR
+ 14%
+
+
+
+
+
+
+
+
RECENT SETTLED
+
+
+
Jokić o27.5 PTS
DEN · settled 30 · CLV +2.4%
+
AHIT
+
+
+
Judge o1.5 TB
NYY · settled 2 · CLV +1.1%
+
BHIT
+
+
+
Edwards o5.5 REB
MIN · settled 4 · CLV −0.8%
+
CMISS
+
+
+
Skenes o6.5 K
PIT · settled 8 · CLV +4.0%
+
A+HIT
+
+
+
+
+
+
+
+
+ TIER RECORD · CALIBRATION
+ SEASON · ALL SPORTS
+
+ ✓COMBAT SAMBO
+ ✓DAGESTAN WRESTLING
+ ✓BJJ BROWN
+
+
+
+
+
+
VERDICT
+
VS
+
GRAPPLER EDGE
+
+
+
+
+
+
+
AV
+
+
+
Alex V.
26–3 · ORTHODOX · 71.5" REACH
+
+
PRESSURE72%
+
TECHNICIAN44%
+
+ ✓KICKBOXING
+ ✓ELITE TDD 94%
+ ?WRESTLING BASE
+
+
+
+
+
+
+
Takedown defense is the whole fight. Islam's chain-wrestling beats a pure striker — but Volk's 94% TDD is the one variable that flips it.
+
+ RECENT-FORM OVERRIDE
+ Volk stuffed 11 of 12 TDs last 3 fights → pushes this toward DECISION, not submission.
+
+
+
+
MONEYLINE
A-Islam -230
+
DECISION
A+120
+
SUBMISSION
B++280
+
KO / TKO
C+650
+
O 2.5 RND
A--140
+
+
+
+
+
+
+
+ SYSTEM SURFACES
+ LIVE GRADE-SHIFT · THE $44.99 TIER · EMPTY STATE
+
+
+
+
+
+
+
+
+
LIVE GRADE
+ Q3 4:12 · DEN @ MIN
+
+
+
+
+
A+
+
LIVE TIER
+
+
+
Edwards o5.5 AST
+
GRADE FIRMED ▲ 04:12
+
+ PACE ▲
+ USAGE ▲
+ MATCHUP ✓
+
+
+
+
+
+
GRADE · BY GAME CLOCK+6.8%
+
+
+
+
+
+
+
+
+
+
+
TIPNOW
+
+
+
+
+
+
+
+
+
+ VYNDR PRO
+ FREEPRO
+
+
+ $44.99
+ /mo
+
+
The whole engine — grades, CLV, the board. Free gives you live scores + tonight's top 3 grades — Pro unlocks the whole board.
+
+ ✓ Every graded read, every league, every night
+ ✓ CLV-verified public record + share cards
+ ✓ Live grade-shift + steam alerts
+ ✓ Archetype fingerprints + combat style engine
+
+
+
cancel anytime · no trial — the free tier is the trial
+
+
+
+
+
+
+
+
+
TRANSMISSION QUIET
+
No reads cleared the A-tier threshold yet.
+
The engine graded 312 props tonight — none hit the edge floor. That's the system protecting you, not a bug. Grades refresh as lines move.
+
+
+
+
+
+
+
+
+
+
+
+ PITCHER IDENTITY
+ THE ARSENAL READ · ONE IDENTITY → MANY PROPS
+
+
+
+
+
+
+
+
+
PIT
+
+
Paul SkenesCONFIRMED
+
RHP · #30 · Pittsburgh · vs CHC
+
+
+
IDENTITY BLEND
+
+ ALPHA
+ PUNCHOUT
+
+
+
APPROACH · TUNNELER
+
Splinker + slider tunnel off the 99mph 4-seam — hitters commit early and miss. Whiffs cluster the 3rd time through.
+
+
+
+
+
+
+ PITCH
+ VELO
+ USE
+ WHIFF
+
+
4-Seam99.132%26%
+
Splinker94.224%38%
+
Slider87.022%41%
+
Curve82.514%33%
+
+
+
+
+
STRIKEOUTS O6.5
A+6.1%
+
OUTS O16.5
A-+4.2%
+
EARNED RUNS U2.5
B++2.4%
+
1ST-INNING K
B+1.6%
+
+
+
+
+
+
+
+ CORRELATION BUILDER
+ PARLAY MATH · THE STAKE-DOWN SIGNAL · TAP TO BUILD
+
+
+
+
+
+
+
TONIGHT'S A/B READSTAP TO ADD
+
+
+
+
Jokić o27.5 PTS
NBA · DEN @ MIN
+ A+
+ +105
+
+
+
+
Edwards o5.5 AST
NBA · DEN @ MIN
+ A
+ +130
+
+
+
+
Skenes o6.5 K
MLB · PIT @ CHC
+ A
+ -120
+
+
+
+
Judge o1.5 TB
MLB · NYY @ BOS
+ B
+ +140
+
+
+
+
+
+
+
+ PARLAY SLIP
+ 2 LEGS
+
+
+
+
SAME-GAME CORRELATION
+
+
+
+
COMBINED
+320
+
GRADE
B
+
VYNDR STAKE
0.4u
+
+
+
+
+
+
+
+ COMPONENTS · 74 GLYPHS · EDGE BOARD · /u · SHARE · COMBAT · LIVE GRADE · PRO · STATES
+ VYNDR VISUAL SYSTEM · v2
+
+
+
+
+
+
+
+
+
diff --git a/specs/design-reference/assets/glyphs/MANIFEST.md b/specs/design-reference/assets/glyphs/MANIFEST.md
index 4c790ae..936e5ce 100644
--- a/specs/design-reference/assets/glyphs/MANIFEST.md
+++ b/specs/design-reference/assets/glyphs/MANIFEST.md
@@ -86,4 +86,8 @@
| SWITCHBOARD | `#90A0E8` | `assets/glyphs/switchboard.svg` |
| RETURNER | `#6C9CB0` | `assets/glyphs/returner.svg` |
-Marks use `currentColor`. 74 display names + 9 classifier-legacy aliases (never user-facing).
+Marks use `currentColor`. 74 display names + 9 classifier-legacy aliases (BRUSH, WHIFF, CONNECTOR, DISTRIBUTOR, FASTBREAK, FLEX, HYBRID, SWITCH, SWITCHBOARD) — legacy names are classifier-side only, never displayed; map them to renamed display archetypes (BRUSH→SLASH etc.) or render their own mark where the backend emits the legacy key.
+
+
+## SESSION 2 NOTE (Jul 17 2026)
+No new marks. Surfaces 2-5 reuse the 83 existing marks only (hero-scale usage in article media: render the SVG at up to 72px, duotone unchanged). New Session 2 assets are chart/viz templates and book wordmark chips, defined in `Vyndr Intelligence.dc.html` — not glyph assets.
diff --git a/specs/design-reference/assets/glyphs/aggressor.svg b/specs/design-reference/assets/glyphs/aggressor.svg
index 103c694..703215a 100644
--- a/specs/design-reference/assets/glyphs/aggressor.svg
+++ b/specs/design-reference/assets/glyphs/aggressor.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/alpha.svg b/specs/design-reference/assets/glyphs/alpha.svg
index 20854cc..c325330 100644
--- a/specs/design-reference/assets/glyphs/alpha.svg
+++ b/specs/design-reference/assets/glyphs/alpha.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/anchor.svg b/specs/design-reference/assets/glyphs/anchor.svg
index ae30bed..c0e8109 100644
--- a/specs/design-reference/assets/glyphs/anchor.svg
+++ b/specs/design-reference/assets/glyphs/anchor.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/architect.svg b/specs/design-reference/assets/glyphs/architect.svg
index 59f6bcc..767a6ad 100644
--- a/specs/design-reference/assets/glyphs/architect.svg
+++ b/specs/design-reference/assets/glyphs/architect.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/artillery.svg b/specs/design-reference/assets/glyphs/artillery.svg
index ad378fb..cbc1f81 100644
--- a/specs/design-reference/assets/glyphs/artillery.svg
+++ b/specs/design-reference/assets/glyphs/artillery.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/bell-cow.svg b/specs/design-reference/assets/glyphs/bell-cow.svg
index c791698..15c1f49 100644
--- a/specs/design-reference/assets/glyphs/bell-cow.svg
+++ b/specs/design-reference/assets/glyphs/bell-cow.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/blade.svg b/specs/design-reference/assets/glyphs/blade.svg
index 0bb437e..eaa953a 100644
--- a/specs/design-reference/assets/glyphs/blade.svg
+++ b/specs/design-reference/assets/glyphs/blade.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/bolt.svg b/specs/design-reference/assets/glyphs/bolt.svg
index 73eb1df..9d1b113 100644
--- a/specs/design-reference/assets/glyphs/bolt.svg
+++ b/specs/design-reference/assets/glyphs/bolt.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/bomber.svg b/specs/design-reference/assets/glyphs/bomber.svg
index 234d2d3..b665f83 100644
--- a/specs/design-reference/assets/glyphs/bomber.svg
+++ b/specs/design-reference/assets/glyphs/bomber.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/bridge.svg b/specs/design-reference/assets/glyphs/bridge.svg
index 823da2b..c6d3d9c 100644
--- a/specs/design-reference/assets/glyphs/bridge.svg
+++ b/specs/design-reference/assets/glyphs/bridge.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/bruiser.svg b/specs/design-reference/assets/glyphs/bruiser.svg
index d5e2e42..d5663e8 100644
--- a/specs/design-reference/assets/glyphs/bruiser.svg
+++ b/specs/design-reference/assets/glyphs/bruiser.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/brush.svg b/specs/design-reference/assets/glyphs/brush.svg
index 683b5a6..82c8b6c 100644
--- a/specs/design-reference/assets/glyphs/brush.svg
+++ b/specs/design-reference/assets/glyphs/brush.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/burner.svg b/specs/design-reference/assets/glyphs/burner.svg
index d2d959e..2c57b78 100644
--- a/specs/design-reference/assets/glyphs/burner.svg
+++ b/specs/design-reference/assets/glyphs/burner.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/cannon.svg b/specs/design-reference/assets/glyphs/cannon.svg
index 53c2cf2..671485b 100644
--- a/specs/design-reference/assets/glyphs/cannon.svg
+++ b/specs/design-reference/assets/glyphs/cannon.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/catalyst.svg b/specs/design-reference/assets/glyphs/catalyst.svg
index 926e27c..756452f 100644
--- a/specs/design-reference/assets/glyphs/catalyst.svg
+++ b/specs/design-reference/assets/glyphs/catalyst.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/centerfield.svg b/specs/design-reference/assets/glyphs/centerfield.svg
index 7f06278..0f15da3 100644
--- a/specs/design-reference/assets/glyphs/centerfield.svg
+++ b/specs/design-reference/assets/glyphs/centerfield.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/chainmover.svg b/specs/design-reference/assets/glyphs/chainmover.svg
index 979f44b..29c1720 100644
--- a/specs/design-reference/assets/glyphs/chainmover.svg
+++ b/specs/design-reference/assets/glyphs/chainmover.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/conductor.svg b/specs/design-reference/assets/glyphs/conductor.svg
index 4e63540..6d8da3d 100644
--- a/specs/design-reference/assets/glyphs/conductor.svg
+++ b/specs/design-reference/assets/glyphs/conductor.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/connector.svg b/specs/design-reference/assets/glyphs/connector.svg
index 92b927b..b176226 100644
--- a/specs/design-reference/assets/glyphs/connector.svg
+++ b/specs/design-reference/assets/glyphs/connector.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/counter.svg b/specs/design-reference/assets/glyphs/counter.svg
index de1d2a9..86e3bd0 100644
--- a/specs/design-reference/assets/glyphs/counter.svg
+++ b/specs/design-reference/assets/glyphs/counter.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/distributor.svg b/specs/design-reference/assets/glyphs/distributor.svg
index bef6c00..59f46e1 100644
--- a/specs/design-reference/assets/glyphs/distributor.svg
+++ b/specs/design-reference/assets/glyphs/distributor.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/driver.svg b/specs/design-reference/assets/glyphs/driver.svg
index a58ec6f..294d961 100644
--- a/specs/design-reference/assets/glyphs/driver.svg
+++ b/specs/design-reference/assets/glyphs/driver.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/enforcer.svg b/specs/design-reference/assets/glyphs/enforcer.svg
index c9a9abe..6407d56 100644
--- a/specs/design-reference/assets/glyphs/enforcer.svg
+++ b/specs/design-reference/assets/glyphs/enforcer.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/engine.svg b/specs/design-reference/assets/glyphs/engine.svg
index c407c11..4f6eb3b 100644
--- a/specs/design-reference/assets/glyphs/engine.svg
+++ b/specs/design-reference/assets/glyphs/engine.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/fastbreak.svg b/specs/design-reference/assets/glyphs/fastbreak.svg
index f4b1fb1..def6df6 100644
--- a/specs/design-reference/assets/glyphs/fastbreak.svg
+++ b/specs/design-reference/assets/glyphs/fastbreak.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/finisher.svg b/specs/design-reference/assets/glyphs/finisher.svg
index 07d8e90..f082efe 100644
--- a/specs/design-reference/assets/glyphs/finisher.svg
+++ b/specs/design-reference/assets/glyphs/finisher.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/flex.svg b/specs/design-reference/assets/glyphs/flex.svg
index bae259f..ae983b5 100644
--- a/specs/design-reference/assets/glyphs/flex.svg
+++ b/specs/design-reference/assets/glyphs/flex.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/fortress.svg b/specs/design-reference/assets/glyphs/fortress.svg
index b05edef..9282ddc 100644
--- a/specs/design-reference/assets/glyphs/fortress.svg
+++ b/specs/design-reference/assets/glyphs/fortress.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/ghost.svg b/specs/design-reference/assets/glyphs/ghost.svg
index 3bcdaf4..820e067 100644
--- a/specs/design-reference/assets/glyphs/ghost.svg
+++ b/specs/design-reference/assets/glyphs/ghost.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/glue.svg b/specs/design-reference/assets/glyphs/glue.svg
index cf20c9a..1bfa9be 100644
--- a/specs/design-reference/assets/glyphs/glue.svg
+++ b/specs/design-reference/assets/glyphs/glue.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/grappler.svg b/specs/design-reference/assets/glyphs/grappler.svg
index fbbef08..5dc2e19 100644
--- a/specs/design-reference/assets/glyphs/grappler.svg
+++ b/specs/design-reference/assets/glyphs/grappler.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/grinder.svg b/specs/design-reference/assets/glyphs/grinder.svg
index 8568c22..7f1045d 100644
--- a/specs/design-reference/assets/glyphs/grinder.svg
+++ b/specs/design-reference/assets/glyphs/grinder.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/hammer.svg b/specs/design-reference/assets/glyphs/hammer.svg
index da3ac36..bcc32f5 100644
--- a/specs/design-reference/assets/glyphs/hammer.svg
+++ b/specs/design-reference/assets/glyphs/hammer.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/howitzer.svg b/specs/design-reference/assets/glyphs/howitzer.svg
index 7d6f2f7..abcff65 100644
--- a/specs/design-reference/assets/glyphs/howitzer.svg
+++ b/specs/design-reference/assets/glyphs/howitzer.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/hub.svg b/specs/design-reference/assets/glyphs/hub.svg
index f44c212..8c5da26 100644
--- a/specs/design-reference/assets/glyphs/hub.svg
+++ b/specs/design-reference/assets/glyphs/hub.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/hunter.svg b/specs/design-reference/assets/glyphs/hunter.svg
index c38f6ef..745a0a8 100644
--- a/specs/design-reference/assets/glyphs/hunter.svg
+++ b/specs/design-reference/assets/glyphs/hunter.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/hybrid.svg b/specs/design-reference/assets/glyphs/hybrid.svg
index 7e76c33..50b0f60 100644
--- a/specs/design-reference/assets/glyphs/hybrid.svg
+++ b/specs/design-reference/assets/glyphs/hybrid.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/igniter.svg b/specs/design-reference/assets/glyphs/igniter.svg
index 1eb7fc6..3c6da0f 100644
--- a/specs/design-reference/assets/glyphs/igniter.svg
+++ b/specs/design-reference/assets/glyphs/igniter.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/iron.svg b/specs/design-reference/assets/glyphs/iron.svg
index 889b328..2c87898 100644
--- a/specs/design-reference/assets/glyphs/iron.svg
+++ b/specs/design-reference/assets/glyphs/iron.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/island.svg b/specs/design-reference/assets/glyphs/island.svg
index 92b6f0e..b601b90 100644
--- a/specs/design-reference/assets/glyphs/island.svg
+++ b/specs/design-reference/assets/glyphs/island.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/leg.svg b/specs/design-reference/assets/glyphs/leg.svg
index 66fafda..f8bdea3 100644
--- a/specs/design-reference/assets/glyphs/leg.svg
+++ b/specs/design-reference/assets/glyphs/leg.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/lightning.svg b/specs/design-reference/assets/glyphs/lightning.svg
index dd061a5..45c78bf 100644
--- a/specs/design-reference/assets/glyphs/lightning.svg
+++ b/specs/design-reference/assets/glyphs/lightning.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/link.svg b/specs/design-reference/assets/glyphs/link.svg
index dba6361..c9a5113 100644
--- a/specs/design-reference/assets/glyphs/link.svg
+++ b/specs/design-reference/assets/glyphs/link.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/lockdown.svg b/specs/design-reference/assets/glyphs/lockdown.svg
index a81f3ca..6d2a6e9 100644
--- a/specs/design-reference/assets/glyphs/lockdown.svg
+++ b/specs/design-reference/assets/glyphs/lockdown.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/maestro.svg b/specs/design-reference/assets/glyphs/maestro.svg
index 3a82b68..16f4bec 100644
--- a/specs/design-reference/assets/glyphs/maestro.svg
+++ b/specs/design-reference/assets/glyphs/maestro.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/mirror.svg b/specs/design-reference/assets/glyphs/mirror.svg
index 6e11de5..501c356 100644
--- a/specs/design-reference/assets/glyphs/mirror.svg
+++ b/specs/design-reference/assets/glyphs/mirror.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/motor.svg b/specs/design-reference/assets/glyphs/motor.svg
index 81306de..26ba5fa 100644
--- a/specs/design-reference/assets/glyphs/motor.svg
+++ b/specs/design-reference/assets/glyphs/motor.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/pest.svg b/specs/design-reference/assets/glyphs/pest.svg
index 0f7cbc2..00ffb84 100644
--- a/specs/design-reference/assets/glyphs/pest.svg
+++ b/specs/design-reference/assets/glyphs/pest.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/phantom.svg b/specs/design-reference/assets/glyphs/phantom.svg
index 9f6673f..453ae24 100644
--- a/specs/design-reference/assets/glyphs/phantom.svg
+++ b/specs/design-reference/assets/glyphs/phantom.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/piston.svg b/specs/design-reference/assets/glyphs/piston.svg
index 609cb94..38c0e39 100644
--- a/specs/design-reference/assets/glyphs/piston.svg
+++ b/specs/design-reference/assets/glyphs/piston.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/plug.svg b/specs/design-reference/assets/glyphs/plug.svg
index ef0c535..bab20a0 100644
--- a/specs/design-reference/assets/glyphs/plug.svg
+++ b/specs/design-reference/assets/glyphs/plug.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/pressure.svg b/specs/design-reference/assets/glyphs/pressure.svg
index 7d031b2..23a8789 100644
--- a/specs/design-reference/assets/glyphs/pressure.svg
+++ b/specs/design-reference/assets/glyphs/pressure.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/prism.svg b/specs/design-reference/assets/glyphs/prism.svg
index 9161099..4b08e64 100644
--- a/specs/design-reference/assets/glyphs/prism.svg
+++ b/specs/design-reference/assets/glyphs/prism.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/punchout.svg b/specs/design-reference/assets/glyphs/punchout.svg
index d8e185e..ffcb221 100644
--- a/specs/design-reference/assets/glyphs/punchout.svg
+++ b/specs/design-reference/assets/glyphs/punchout.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/range.svg b/specs/design-reference/assets/glyphs/range.svg
index 0e46b32..686e628 100644
--- a/specs/design-reference/assets/glyphs/range.svg
+++ b/specs/design-reference/assets/glyphs/range.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/rearguard.svg b/specs/design-reference/assets/glyphs/rearguard.svg
index e2c3c1f..6547396 100644
--- a/specs/design-reference/assets/glyphs/rearguard.svg
+++ b/specs/design-reference/assets/glyphs/rearguard.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/returner.svg b/specs/design-reference/assets/glyphs/returner.svg
index e26b79a..28228b1 100644
--- a/specs/design-reference/assets/glyphs/returner.svg
+++ b/specs/design-reference/assets/glyphs/returner.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/seam.svg b/specs/design-reference/assets/glyphs/seam.svg
index df2096d..39a9692 100644
--- a/specs/design-reference/assets/glyphs/seam.svg
+++ b/specs/design-reference/assets/glyphs/seam.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/sentinel.svg b/specs/design-reference/assets/glyphs/sentinel.svg
index 929918d..1897f85 100644
--- a/specs/design-reference/assets/glyphs/sentinel.svg
+++ b/specs/design-reference/assets/glyphs/sentinel.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/setup.svg b/specs/design-reference/assets/glyphs/setup.svg
index 0cf2449..47e9606 100644
--- a/specs/design-reference/assets/glyphs/setup.svg
+++ b/specs/design-reference/assets/glyphs/setup.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/shield.svg b/specs/design-reference/assets/glyphs/shield.svg
index 0b4dded..13ce1ec 100644
--- a/specs/design-reference/assets/glyphs/shield.svg
+++ b/specs/design-reference/assets/glyphs/shield.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/sinker.svg b/specs/design-reference/assets/glyphs/sinker.svg
index f8be2c2..d4cebf1 100644
--- a/specs/design-reference/assets/glyphs/sinker.svg
+++ b/specs/design-reference/assets/glyphs/sinker.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/slash.svg b/specs/design-reference/assets/glyphs/slash.svg
index 406fa3d..c9319a2 100644
--- a/specs/design-reference/assets/glyphs/slash.svg
+++ b/specs/design-reference/assets/glyphs/slash.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/slugger.svg b/specs/design-reference/assets/glyphs/slugger.svg
index 6ff31b4..15c5fea 100644
--- a/specs/design-reference/assets/glyphs/slugger.svg
+++ b/specs/design-reference/assets/glyphs/slugger.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/sniper.svg b/specs/design-reference/assets/glyphs/sniper.svg
index 1997069..2f45253 100644
--- a/specs/design-reference/assets/glyphs/sniper.svg
+++ b/specs/design-reference/assets/glyphs/sniper.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/southpaw.svg b/specs/design-reference/assets/glyphs/southpaw.svg
index e5a73d0..1d9e32f 100644
--- a/specs/design-reference/assets/glyphs/southpaw.svg
+++ b/specs/design-reference/assets/glyphs/southpaw.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/spark.svg b/specs/design-reference/assets/glyphs/spark.svg
index da0a8bc..becfc59 100644
--- a/specs/design-reference/assets/glyphs/spark.svg
+++ b/specs/design-reference/assets/glyphs/spark.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/striker.svg b/specs/design-reference/assets/glyphs/striker.svg
index 543e436..dac37d5 100644
--- a/specs/design-reference/assets/glyphs/striker.svg
+++ b/specs/design-reference/assets/glyphs/striker.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/surge.svg b/specs/design-reference/assets/glyphs/surge.svg
index 2fd5744..4e7ef51 100644
--- a/specs/design-reference/assets/glyphs/surge.svg
+++ b/specs/design-reference/assets/glyphs/surge.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/surgeon.svg b/specs/design-reference/assets/glyphs/surgeon.svg
index 0f09063..a533cee 100644
--- a/specs/design-reference/assets/glyphs/surgeon.svg
+++ b/specs/design-reference/assets/glyphs/surgeon.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/swiss.svg b/specs/design-reference/assets/glyphs/swiss.svg
index 38ee1fc..91c860a 100644
--- a/specs/design-reference/assets/glyphs/swiss.svg
+++ b/specs/design-reference/assets/glyphs/swiss.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/switch.svg b/specs/design-reference/assets/glyphs/switch.svg
index 52ff040..6a19a75 100644
--- a/specs/design-reference/assets/glyphs/switch.svg
+++ b/specs/design-reference/assets/glyphs/switch.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/switchboard.svg b/specs/design-reference/assets/glyphs/switchboard.svg
index 14e1159..b098b08 100644
--- a/specs/design-reference/assets/glyphs/switchboard.svg
+++ b/specs/design-reference/assets/glyphs/switchboard.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/technician.svg b/specs/design-reference/assets/glyphs/technician.svg
index ca8e6c3..9725b71 100644
--- a/specs/design-reference/assets/glyphs/technician.svg
+++ b/specs/design-reference/assets/glyphs/technician.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/topspin.svg b/specs/design-reference/assets/glyphs/topspin.svg
index 52b7747..84a45c8 100644
--- a/specs/design-reference/assets/glyphs/topspin.svg
+++ b/specs/design-reference/assets/glyphs/topspin.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/torch.svg b/specs/design-reference/assets/glyphs/torch.svg
index c5e7f41..8037f7b 100644
--- a/specs/design-reference/assets/glyphs/torch.svg
+++ b/specs/design-reference/assets/glyphs/torch.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/tower.svg b/specs/design-reference/assets/glyphs/tower.svg
index 53e0352..8ed6083 100644
--- a/specs/design-reference/assets/glyphs/tower.svg
+++ b/specs/design-reference/assets/glyphs/tower.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/unicorn.svg b/specs/design-reference/assets/glyphs/unicorn.svg
index 285ade2..3bd72be 100644
--- a/specs/design-reference/assets/glyphs/unicorn.svg
+++ b/specs/design-reference/assets/glyphs/unicorn.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/vault.svg b/specs/design-reference/assets/glyphs/vault.svg
index df160db..646beea 100644
--- a/specs/design-reference/assets/glyphs/vault.svg
+++ b/specs/design-reference/assets/glyphs/vault.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/wall.svg b/specs/design-reference/assets/glyphs/wall.svg
index 37b27e8..d3dcbf3 100644
--- a/specs/design-reference/assets/glyphs/wall.svg
+++ b/specs/design-reference/assets/glyphs/wall.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/wedge.svg b/specs/design-reference/assets/glyphs/wedge.svg
index 80eb933..174a640 100644
--- a/specs/design-reference/assets/glyphs/wedge.svg
+++ b/specs/design-reference/assets/glyphs/wedge.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/whiff.svg b/specs/design-reference/assets/glyphs/whiff.svg
index ed61c1b..576497f 100644
--- a/specs/design-reference/assets/glyphs/whiff.svg
+++ b/specs/design-reference/assets/glyphs/whiff.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/assets/glyphs/workhorse.svg b/specs/design-reference/assets/glyphs/workhorse.svg
index 753f9fb..853b19d 100644
--- a/specs/design-reference/assets/glyphs/workhorse.svg
+++ b/specs/design-reference/assets/glyphs/workhorse.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/specs/design-reference/exports/article-og-1200x630.png b/specs/design-reference/exports/article-og-1200x630.png
new file mode 100644
index 0000000..f2265ae
Binary files /dev/null and b/specs/design-reference/exports/article-og-1200x630.png differ
diff --git a/specs/design-reference/exports/grade-reveal-og.png b/specs/design-reference/exports/grade-reveal-og.png
new file mode 100644
index 0000000..2b26e79
Binary files /dev/null and b/specs/design-reference/exports/grade-reveal-og.png differ
diff --git a/specs/design-reference/exports/record-30d-1080x1350.png b/specs/design-reference/exports/record-30d-1080x1350.png
new file mode 100644
index 0000000..0fd10da
Binary files /dev/null and b/specs/design-reference/exports/record-30d-1080x1350.png differ
diff --git a/specs/design-reference/exports/reveal-xcard-1200x675.png b/specs/design-reference/exports/reveal-xcard-1200x675.png
new file mode 100644
index 0000000..7418b39
Binary files /dev/null and b/specs/design-reference/exports/reveal-xcard-1200x675.png differ
diff --git a/specs/design-reference/exports/settle-1080x1350.png b/specs/design-reference/exports/settle-1080x1350.png
new file mode 100644
index 0000000..0d5036e
Binary files /dev/null and b/specs/design-reference/exports/settle-1080x1350.png differ
diff --git a/specs/design-reference/exports/settle-square-1080.png b/specs/design-reference/exports/settle-square-1080.png
new file mode 100644
index 0000000..8a4bef1
Binary files /dev/null and b/specs/design-reference/exports/settle-square-1080.png differ
diff --git a/specs/design-reference/exports/settle-story-1080x1920.png b/specs/design-reference/exports/settle-story-1080x1920.png
new file mode 100644
index 0000000..91a36de
Binary files /dev/null and b/specs/design-reference/exports/settle-story-1080x1920.png differ
diff --git a/specs/design-reference/image-slot.js b/specs/design-reference/image-slot.js
new file mode 100644
index 0000000..f27a9ba
--- /dev/null
+++ b/specs/design-reference/image-slot.js
@@ -0,0 +1,1197 @@
+// @ds-adherence-ignore -- omelette starter scaffold (raw elements/hex/px by design)
+// Copied omelette starter. Re-running copy_starter_component with this kind overwrites this file with the latest version (page content is unaffected).
+/* BEGIN USAGE */
+/**
+ * — user-fillable image placeholder.
+ *
+ * Drop this into a deck, mockup, or page wherever a design needs an image.
+ * You control the slot's shape; it sizes to its container by default. When the search_stock_photos tool
+ * is available, prefill the slot by default — write the photo's URL into
+ * src (with credit/credit-href); the user can still fill or replace it
+ * by dragging an image file onto it (or clicking to browse). The dropped
+ * image persists across reloads via a .image-slots.state.json sidecar —
+ * same read-via-fetch / write-via-window.omelette pattern as
+ * design_canvas.jsx, so the filled slot shows on share links, downloaded
+ * zips, and PPTX export. Outside the omelette runtime the slot is read-only.
+ *
+ * The sidecar is a SIBLING of the HTML file that uses this component: the
+ * read is a document-relative fetch, and the host resolves the bridge's
+ * sidecar writes into the previewed file's directory to match (same
+ * contract as design_canvas.jsx). Pages in the same directory share one
+ * sidecar; keep slot ids distinct across them.
+ *
+ * Attributes:
+ * id Persistence key. REQUIRED for the drop to survive reload —
+ * every slot on the page needs a distinct id.
+ * shape 'rect' | 'rounded' | 'circle' | 'pill' (default 'rounded')
+ * 'circle' applies 50% border-radius; on a non-square slot
+ * that's an ellipse — set equal width and height for a true
+ * circle.
+ * radius Corner radius in px for 'rounded'. (default 12)
+ * mask Any CSS clip-path value. Overrides `shape` — use this for
+ * hexagons, blobs, arbitrary polygons.
+ * fit Initial framing baseline: cover | contain. (default 'cover')
+ * cover starts the image filling the frame (overflow cropped);
+ * contain starts it fully visible (letterboxed). Either way the
+ * user can always pan/scale from there — double-click, or the
+ * Edit control, enters reframe mode (drag to move, scroll or
+ * corner-handles to scale; Escape / click-out commits). The
+ * crop persists alongside the image in the sidecar.
+ * placeholder Empty-state caption. (default 'Drop an image')
+ * src Optional initial/fallback image URL. Prefill it with a real
+ * photo via search_stock_photos when that tool is available
+ * (set credit/credit-href from the result). A user drop
+ * overrides it; clearing the drop reveals src again.
+ * credit Attribution text shown as a small overlay at the
+ * bottom-left of the filled slot. REQUIRED whenever src
+ * points at any Unsplash host (images.unsplash.com,
+ * plus.unsplash.com, …): an Unsplash src with no credit
+ * renders an error tile INSTEAD of the photo (Unsplash
+ * terms forbid showing their photos unattributed). Use the
+ * exact form 'Photo by {photographer name} on Unsplash' —
+ * the overlay then links the name to credit-href and
+ * 'Unsplash' to the Unsplash homepage, and links back to
+ * unsplash.com automatically get the required utm referral
+ * params appended at render time. The credit belongs to
+ * the src image, so it only shows while src is what's
+ * displayed — a user-dropped image hides it.
+ * credit-href Link for the photographer's name in the credit overlay
+ * (their Unsplash profile URL from the stock-photo search
+ * results). http(s) URLs only — anything else renders the
+ * name as plain text.
+ *
+ * Sizing: the slot fills its container by default (width/height 100%).
+ * Put it in a sized wrapper — absolutely positioned, a grid cell, a fixed
+ * frame — and it takes exactly that box. When the parent's height is
+ * indefinite (ordinary flow), it falls back to full width at a 3:2 aspect
+ * ratio instead of collapsing. In a shrink-to-fit parent (a float,
+ * width:max-content, an unsized absolute wrapper), percentages have
+ * nothing to resolve against — size the slot or its wrapper explicitly
+ * there. For a fixed-size slot, set
+ * width/height on the element itself (inline style), which overrides the
+ * default. When
+ * layering content above a slot (full-bleed layouts), make the overlay
+ * click-through — pointer-events: none on scrims/text plates, re-enabled
+ * on interactive children — so the slot's hover controls stay reachable.
+ * Keep the slot's bottom-left corner visually clear as well: the credit
+ * overlay renders there, and a dark fade or text plate covering it hides
+ * the attribution Unsplash's terms require — end the fade above that
+ * corner, or keep it nearly transparent where the credit sits.
+ *
+ * Usage:
+ *