Rev 3 glyphs: wire the 9 classifier-legacy marks (74→83), all backend archetypes now render real marks

Design Rev 3 drew the 9 legacy classifier marks (BRUSH #E0B84A, WHIFF #E86A6A,
CONNECTOR #9AB0C4, DISTRIBUTOR #7AB8D8, FASTBREAK #4AA0E8, FLEX #A08AC8,
HYBRID #C88AB0, SWITCH #C0B08A, SWITCHBOARD #90A0E8). Wired each to its own
Design mark + color (front lib/archetypes.js + backend archetypeService.js,
color-synced). These were the 9 NO-MARK backend keys — now none are on a
generic placeholder. They're classifier-side fallback renders (never
user-facing archetype names, per MANIFEST).

Re-imported Rev 3 package over specs/design-reference/ (83 glyph SVGs + MANIFEST
regenerated from the authoritative glyphDefs(); HANDOFF Rev 3 note).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kev
2026-07-16 21:23:59 -04:00
parent ebaab007d4
commit 771d8b0ba4
14 changed files with 80 additions and 37 deletions
+4
View File
@@ -37,3 +37,7 @@ Desktop /u profile also carries the TIER RECORD calibration strip (matches mobil
## Laws
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.
@@ -75,6 +75,15 @@
| AGGRESSOR | `#FF6B4A` | `assets/glyphs/aggressor.svg` |
| SURGEON | `#7AA6D8` | `assets/glyphs/surgeon.svg` |
| TOPSPIN | `#B36CFF` | `assets/glyphs/topspin.svg` |
| BRUSH | `#E0B84A` | `assets/glyphs/brush.svg` |
| WHIFF | `#E86A6A` | `assets/glyphs/whiff.svg` |
| CONNECTOR | `#9AB0C4` | `assets/glyphs/connector.svg` |
| DISTRIBUTOR | `#7AB8D8` | `assets/glyphs/distributor.svg` |
| FASTBREAK | `#4AA0E8` | `assets/glyphs/fastbreak.svg` |
| FLEX | `#A08AC8` | `assets/glyphs/flex.svg` |
| HYBRID | `#C88AB0` | `assets/glyphs/hybrid.svg` |
| SWITCH | `#C0B08A` | `assets/glyphs/switch.svg` |
| SWITCHBOARD | `#90A0E8` | `assets/glyphs/switchboard.svg` |
| RETURNER | `#6C9CB0` | `assets/glyphs/returner.svg` |
Marks use `currentColor` — recolor by setting CSS `color` on the svg or a wrapper.
Marks use `currentColor`. 74 display names + 9 classifier-legacy aliases (never user-facing).
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none"><path fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" d="M5 19 15 9"/><path fill="currentColor" fill-opacity=".2" d="M15 9l4-4 1.6 1.6-4 4z"/><path fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" d="M15 9l4-4M5 19l-1 1M7 20l-2 1"/></svg>

After

Width:  |  Height:  |  Size: 389 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none"><circle cx="6" cy="7" r="2.4" fill="currentColor"/><circle cx="18" cy="17" r="2.4" fill="currentColor"/><path fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" d="M8 8.5C13 11 11 13 16 15.5"/></svg>

After

Width:  |  Height:  |  Size: 320 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none"><circle cx="12" cy="12" r="2.6" fill="currentColor"/><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M12 9V4M10 6l2-2 2 2M9.5 13.8 5 16.5M7.5 14.2l-2.5 2.3.8 3.2M14.5 13.8 19 16.5M16.5 14.2l2.5 2.3-.8 3.2"/></svg>

After

Width:  |  Height:  |  Size: 368 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none"><path fill="currentColor" fill-opacity=".18" d="M10 5l8 7-8 7z"/><path fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round" d="M10 5l8 7-8 7z"/><path stroke="currentColor" stroke-width="2.2" stroke-linecap="round" d="M5 8h3M4 12h4M5 16h3"/></svg>

After

Width:  |  Height:  |  Size: 364 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none"><path fill="none" stroke="currentColor" stroke-width="2.3" stroke-linecap="round" d="M8 4C4 8 4 16 8 20M16 4c4 4 4 12 0 16"/><circle cx="12" cy="12" r="2" fill="currentColor"/></svg>

After

Width:  |  Height:  |  Size: 278 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none"><circle cx="10" cy="12" r="6" fill="none" stroke="currentColor" stroke-width="2"/><path fill="currentColor" fill-opacity=".18" d="M15 6l6 12H9z"/><path fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round" d="M15 6l6 12H9z"/></svg>

After

Width:  |  Height:  |  Size: 348 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none"><path fill="none" stroke="currentColor" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" d="M5 8h11M13 4l4 4-4 4M19 16H8M11 12l-4 4 4 4"/></svg>

After

Width:  |  Height:  |  Size: 257 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none"><circle cx="6" cy="6" r="1.8" fill="currentColor"/><circle cx="18" cy="6" r="1.8" fill="none" stroke="currentColor" stroke-width="1.8"/><circle cx="6" cy="18" r="1.8" fill="none" stroke="currentColor" stroke-width="1.8"/><circle cx="18" cy="18" r="1.8" fill="currentColor"/><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M7.5 7.5c4 4 5 4 9 9"/></svg>

After

Width:  |  Height:  |  Size: 482 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none"><path fill="none" stroke="currentColor" stroke-width="2.3" stroke-linecap="round" d="M4 16c5 3 11 3 16-2"/><path fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-dasharray="2.5 3" d="M4 11c5 3 10 3 15-1.5"/><circle cx="18" cy="6" r="2.2" fill="currentColor"/></svg>

After

Width:  |  Height:  |  Size: 395 B

+28 -18
View File
@@ -225,13 +225,13 @@
<div data-row="jokic" style="--o:1;opacity:1;display:grid;grid-template-columns:20px 1fr auto 58px;align-items:center;gap:12px;padding:9px 16px;border-top:1px solid #101018;box-shadow:inset 2px 0 0 rgba(0,212,160,.55);animation:vy-rowin .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:.14s">
<span class="mono" style="font-size:11px;color:#00D4A0;font-weight:700">01</span>
<div style="min-width:0"><div style="display:flex;align-items:center;gap:8px"><span style="width:7px;height:7px;border-radius:2px;background:#4C8BF5;flex:none"></span><span style="font-size:13px;font-weight:700">Jokić <span style="color:#B8BCC8;font-weight:500">o27.5 PTS</span></span></div><div class="mono" style="font-size:8.5px;letter-spacing:.1em;color:#707080;margin-top:3px;padding-left:15px">NBA · DEN @ MIN</div></div>
<div style="min-width:0"><div style="display:flex;align-items:center;gap:8px"><span style="width:7px;height:7px;border-radius:2px;background:#4C8BF5;flex:none"></span><span style="font-size:13px;font-weight:700">Jokić <span style="color:#B8BCC8;font-weight:500">o27.5 PTS</span></span></div><div class="mono" style="font-size:8.5px;letter-spacing:.1em;color:#707080;margin-top:3px;padding-left:15px">NBA · <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#0E4DA4,#4C8BF5);vertical-align:-1.5px;margin-right:3px"></span>DEN @ <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#0C2340,#236192);vertical-align:-1.5px;margin-right:3px"></span>MIN</div></div>
<span class="mono" style="justify-self:end;display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:5px;background:rgba(0,212,160,.14);color:#00D4A0;font-weight:800;font-size:10.5px;border:1px solid rgba(0,212,160,.3)">A+</span>
<span class="mono" data-react data-fmt="edge" style="justify-self:end;text-align:right;font-size:12.5px;font-weight:700;color:#00D4A0;padding:1px 4px;border-radius:5px">+8.4%</span>
</div>
<div data-row="skenes" style="--o:1;opacity:1;display:grid;grid-template-columns:20px 1fr auto 58px;align-items:center;gap:12px;padding:9px 16px;border-top:1px solid #101018;animation:vy-rowin .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:.2s">
<span class="mono" style="font-size:11px;color:#707080;font-weight:600">02</span>
<div style="min-width:0"><div style="display:flex;align-items:center;gap:8px"><span style="width:7px;height:7px;border-radius:2px;background:#C9A227;flex:none"></span><span style="font-size:13px;font-weight:700">Skenes <span style="color:#B8BCC8;font-weight:500">o6.5 K</span></span></div><div class="mono" style="font-size:8.5px;letter-spacing:.1em;color:#707080;margin-top:3px;padding-left:15px">MLB · PIT @ CHC</div></div>
<div style="min-width:0"><div style="display:flex;align-items:center;gap:8px"><span style="width:7px;height:7px;border-radius:2px;background:#C9A227;flex:none"></span><span style="font-size:13px;font-weight:700">Skenes <span style="color:#B8BCC8;font-weight:500">o6.5 K</span></span></div><div class="mono" style="font-size:8.5px;letter-spacing:.1em;color:#707080;margin-top:3px;padding-left:15px">MLB · <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#2b2b2b,#c9a227);vertical-align:-1.5px;margin-right:3px"></span>PIT @ <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#0E3386,#CC3433);vertical-align:-1.5px;margin-right:3px"></span>CHC</div></div>
<span class="mono" style="justify-self:end;display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:5px;background:rgba(0,212,160,.1);color:#00D4A0;font-weight:800;font-size:10.5px;border:1px solid rgba(0,212,160,.24)">A</span>
<span class="mono" data-react data-fmt="edge" style="justify-self:end;text-align:right;font-size:12.5px;font-weight:700;color:#00D4A0;padding:1px 4px;border-radius:5px">+6.1%</span>
</div>
@@ -243,7 +243,7 @@
</div>
<div data-row="judge" style="--o:.86;opacity:.86;display:grid;grid-template-columns:20px 1fr auto 58px;align-items:center;gap:12px;padding:9px 16px;border-top:1px solid #101018;animation:vy-rowin .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:.32s">
<span class="mono" style="font-size:11px;color:#707080;font-weight:600">04</span>
<div style="min-width:0"><div style="display:flex;align-items:center;gap:8px"><span style="width:7px;height:7px;border-radius:2px;background:#1b3a6b;flex:none"></span><span style="font-size:13px;font-weight:600">Judge <span style="color:#B8BCC8;font-weight:500">o1.5 TB</span></span></div><div class="mono" style="font-size:8.5px;letter-spacing:.1em;color:#707080;margin-top:3px;padding-left:15px">MLB · NYY @ BOS</div></div>
<div style="min-width:0"><div style="display:flex;align-items:center;gap:8px"><span style="width:7px;height:7px;border-radius:2px;background:#1b3a6b;flex:none"></span><span style="font-size:13px;font-weight:600">Judge <span style="color:#B8BCC8;font-weight:500">o1.5 TB</span></span></div><div class="mono" style="font-size:8.5px;letter-spacing:.1em;color:#707080;margin-top:3px;padding-left:15px">MLB · <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#1b3a6b,#0C2340);vertical-align:-1.5px;margin-right:3px"></span>NYY @ <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#BD3039,#6b1c22);vertical-align:-1.5px;margin-right:3px"></span>BOS</div></div>
<span class="mono" style="justify-self:end;display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:5px;background:#14141E;color:#F0F0F0;font-weight:800;font-size:10.5px;border:1px solid #1E1E2A">B</span>
<span class="mono" data-react data-fmt="edge" style="justify-self:end;text-align:right;font-size:12.5px;font-weight:700;color:#00D4A0;padding:1px 4px;border-radius:5px">+3.4%</span>
</div>
@@ -261,7 +261,7 @@
</div>
<div data-row="betts" style="--o:.64;opacity:.64;display:grid;grid-template-columns:20px 1fr auto 58px;align-items:center;gap:12px;padding:9px 16px;border-top:1px solid #101018;animation:vy-rowin .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:.5s">
<span class="mono" style="font-size:11px;color:#707080;font-weight:600">07</span>
<div style="min-width:0"><div style="display:flex;align-items:center;gap:8px"><span style="width:7px;height:7px;border-radius:2px;background:#2f7fd0;flex:none"></span><span style="font-size:13px;font-weight:600">Betts <span style="color:#B8BCC8;font-weight:500">o1.5 TB</span></span></div><div class="mono" style="font-size:8.5px;letter-spacing:.1em;color:#707080;margin-top:3px;padding-left:15px">MLB · LAD @ SD</div></div>
<div style="min-width:0"><div style="display:flex;align-items:center;gap:8px"><span style="width:7px;height:7px;border-radius:2px;background:#2f7fd0;flex:none"></span><span style="font-size:13px;font-weight:600">Betts <span style="color:#B8BCC8;font-weight:500">o1.5 TB</span></span></div><div class="mono" style="font-size:8.5px;letter-spacing:.1em;color:#707080;margin-top:3px;padding-left:15px">MLB · <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#005A9C,#2f7fd0);vertical-align:-1.5px;margin-right:3px"></span>LAD @ <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#2F241D,#8a6d4a);vertical-align:-1.5px;margin-right:3px"></span>SD</div></div>
<span class="mono" style="justify-self:end;display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:5px;background:#14141E;color:#B8BCC8;font-weight:800;font-size:10.5px;border:1px solid #1E1E2A">C</span>
<span class="mono" data-react data-fmt="edge" style="justify-self:end;text-align:right;font-size:12.5px;font-weight:700;color:#00D4A0;padding:1px 4px;border-radius:5px">+2.1%</span>
</div>
@@ -279,7 +279,7 @@
</div>
<div data-row="lavine" style="--o:.48;opacity:.48;display:grid;grid-template-columns:20px 1fr auto 58px;align-items:center;gap:12px;padding:9px 16px;border-top:1px solid #101018;animation:vy-rowin .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:.68s">
<span class="mono" style="font-size:11px;color:#707080;font-weight:600">10</span>
<div style="min-width:0"><div style="display:flex;align-items:center;gap:8px"><span style="width:7px;height:7px;border-radius:2px;background:#CE1141;flex:none"></span><span style="font-size:13px;font-weight:600">LaVine <span style="color:#B8BCC8;font-weight:500">o22.5 PTS</span></span></div><div class="mono" style="font-size:8.5px;letter-spacing:.1em;color:#707080;margin-top:3px;padding-left:15px">NBA · CHI @ MIL</div></div>
<div style="min-width:0"><div style="display:flex;align-items:center;gap:8px"><span style="width:7px;height:7px;border-radius:2px;background:#CE1141;flex:none"></span><span style="font-size:13px;font-weight:600">LaVine <span style="color:#B8BCC8;font-weight:500">o22.5 PTS</span></span></div><div class="mono" style="font-size:8.5px;letter-spacing:.1em;color:#707080;margin-top:3px;padding-left:15px">NBA · <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#CE1141,#6d0a22);vertical-align:-1.5px;margin-right:3px"></span>CHI @ <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#00471B,#0a7a3a);vertical-align:-1.5px;margin-right:3px"></span>MIL</div></div>
<span class="mono" style="justify-self:end;display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:5px;background:rgba(255,71,87,.1);color:#FF4757;font-weight:800;font-size:10.5px;border:1px solid rgba(255,71,87,.28)">D</span>
<span class="mono" data-react data-fmt="edge" style="justify-self:end;text-align:right;font-size:12.5px;font-weight:700;color:#FF4757;padding:1px 4px;border-radius:5px">-1.2%</span>
</div>
@@ -409,7 +409,7 @@
<span class="mono" style="font-size:46px;font-weight:800;line-height:.9;color:#F0F0F0">28.6</span>
<div style="padding-bottom:6px">
<div class="mono" style="font-size:11px;color:#00D4A0;font-weight:700">#4 <span style="color:#707080;font-weight:400">of 82 C</span></div>
<div class="mono" style="font-size:10px;color:#707080">vs MIN allows 26.1</div>
<div class="mono" style="font-size:10px;color:#707080">vs <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#0C2340,#236192);vertical-align:-1.5px;margin-right:3px"></span>MIN allows 26.1</div>
</div>
</div>
<div style="display:flex;align-items:center;gap:4px;margin-top:14px">
@@ -535,7 +535,7 @@
<div id="glyphs" data-screen-label="Archetype glyphs" style="margin-top:64px">
<div style="display:flex;align-items:center;gap:12px;margin-bottom:6px">
<span class="mono" style="font-size:12px;letter-spacing:.28em;color:#F0F0F0;font-weight:700">ARCHETYPE GLYPHS</span>
<span class="mono" style="font-size:10.5px;letter-spacing:.18em;color:#707080">FULL SYSTEM · 74 UNIQUE MARKS · 8 SPORTS</span>
<span class="mono" style="font-size:10.5px;letter-spacing:.18em;color:#707080">FULL SYSTEM · 83 UNIQUE MARKS · 8 SPORTS + CLASSIFIER LEGACY</span>
</div>
<div style="height:1px;background:#14141E;margin:14px 0 20px"></div>
@@ -759,19 +759,19 @@
<div class="mono" style="font-size:10px;letter-spacing:.2em;color:#B8BCC8;margin-bottom:16px">RECENT SETTLED</div>
<div style="display:flex;flex-direction:column;gap:2px">
<div style="display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid #12121A">
<div style="min-width:0"><div style="font-size:12.5px;font-weight:600">Jokić o27.5 PTS</div><div class="mono" style="font-size:9.5px;color:#707080">DEN · settled 30 · CLV +2.4%</div></div>
<div style="min-width:0"><div style="font-size:12.5px;font-weight:600">Jokić o27.5 PTS</div><div class="mono" style="font-size:9.5px;color:#707080"><span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#0E4DA4,#4C8BF5);vertical-align:-1.5px;margin-right:3px"></span>DEN · settled 30 · CLV +2.4%</div></div>
<div style="display:flex;align-items:center;gap:10px"><span class="mono" style="display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:5px;background:rgba(0,212,160,.14);color:#00D4A0;font-weight:800;font-size:10px">A</span><span class="mono" style="font-size:10px;color:#00D4A0;letter-spacing:.1em;font-weight:700">HIT</span></div>
</div>
<div style="display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid #12121A">
<div style="min-width:0"><div style="font-size:12.5px;font-weight:600">Judge o1.5 TB</div><div class="mono" style="font-size:9.5px;color:#707080">NYY · settled 2 · CLV +1.1%</div></div>
<div style="min-width:0"><div style="font-size:12.5px;font-weight:600">Judge o1.5 TB</div><div class="mono" style="font-size:9.5px;color:#707080"><span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#1b3a6b,#0C2340);vertical-align:-1.5px;margin-right:3px"></span>NYY · settled 2 · CLV +1.1%</div></div>
<div style="display:flex;align-items:center;gap:10px"><span class="mono" style="display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:5px;background:#14141E;color:#B8BCC8;font-weight:800;font-size:10px">B</span><span class="mono" style="font-size:10px;color:#00D4A0;letter-spacing:.1em;font-weight:700">HIT</span></div>
</div>
<div style="display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid #12121A">
<div style="min-width:0"><div style="font-size:12.5px;font-weight:600">Edwards o5.5 REB</div><div class="mono" style="font-size:9.5px;color:#707080">MIN · settled 4 · CLV 0.8%</div></div>
<div style="min-width:0"><div style="font-size:12.5px;font-weight:600">Edwards o5.5 REB</div><div class="mono" style="font-size:9.5px;color:#707080"><span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#0C2340,#236192);vertical-align:-1.5px;margin-right:3px"></span>MIN · settled 4 · CLV 0.8%</div></div>
<div style="display:flex;align-items:center;gap:10px"><span class="mono" style="display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:5px;background:#14141E;color:#707080;font-weight:800;font-size:10px">C</span><span class="mono" style="font-size:10px;color:#FF4757;letter-spacing:.1em;font-weight:700">MISS</span></div>
</div>
<div style="display:flex;align-items:center;justify-content:space-between;padding:9px 0">
<div style="min-width:0"><div style="font-size:12.5px;font-weight:600">Skenes o6.5 K</div><div class="mono" style="font-size:9.5px;color:#707080">PIT · settled 8 · CLV +4.0%</div></div>
<div style="min-width:0"><div style="font-size:12.5px;font-weight:600">Skenes o6.5 K</div><div class="mono" style="font-size:9.5px;color:#707080"><span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#2b2b2b,#c9a227);vertical-align:-1.5px;margin-right:3px"></span>PIT · settled 8 · CLV +4.0%</div></div>
<div style="display:flex;align-items:center;gap:10px"><span class="mono" style="display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:5px;background:rgba(0,212,160,.14);color:#00D4A0;font-weight:800;font-size:10px">A+</span><span class="mono" style="font-size:10px;color:#00D4A0;letter-spacing:.1em;font-weight:700">HIT</span></div>
</div>
</div>
@@ -981,7 +981,7 @@
<div style="position:relative;border-radius:16px;background:#0E0E14;border:1px solid #1E1E2A;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.03)">
<div style="display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid #14141E">
<div style="display:flex;align-items:center;gap:9px"><span style="width:7px;height:7px;border-radius:50%;background:#00D4A0;animation:vy-livedot 1.5s ease-in-out infinite"></span><span class="mono" style="font-size:10px;letter-spacing:.2em;color:#00D4A0;font-weight:700">LIVE GRADE</span></div>
<span class="mono" style="font-size:10px;letter-spacing:.14em;color:#707080">Q3 4:12 · DEN @ MIN</span>
<span class="mono" style="font-size:10px;letter-spacing:.14em;color:#707080">Q3 4:12 · <span style="display:inline-block;width:12px;height:12px;border-radius:3px;background:linear-gradient(135deg,#0E4DA4,#4C8BF5);vertical-align:-1.5px;margin-right:3px"></span>DEN @ <span style="display:inline-block;width:12px;height:12px;border-radius:3px;background:linear-gradient(135deg,#0C2340,#236192);vertical-align:-1.5px;margin-right:3px"></span>MIN</span>
</div>
<div style="padding:20px 18px">
<div style="display:flex;align-items:center;gap:18px">
@@ -1073,7 +1073,7 @@
<div style="width:58px;height:58px;flex:none;border-radius:13px;background:linear-gradient(135deg,#2b2b2b,#c9a227);display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-weight:800;font-size:15px;color:#fff">PIT</div>
<div>
<div style="display:flex;align-items:center;gap:8px"><span style="font-weight:700;font-size:17px">Paul Skenes</span><span class="mono" style="display:inline-flex;align-items:center;height:17px;padding:0 6px;border-radius:4px;background:rgba(0,212,160,.12);border:1px solid rgba(0,212,160,.3);color:#00D4A0;font-size:9px;font-weight:700;letter-spacing:.06em">CONFIRMED</span></div>
<div class="mono" style="font-size:10.5px;color:#707080;margin-top:3px;letter-spacing:.05em">RHP · #30 · Pittsburgh · vs CHC</div>
<div class="mono" style="font-size:10.5px;color:#707080;margin-top:3px;letter-spacing:.05em">RHP · #30 · Pittsburgh · vs <span style="display:inline-block;width:11px;height:11px;border-radius:3px;background:linear-gradient(135deg,#0E3386,#CC3433);vertical-align:-1.5px;margin-right:3px"></span>CHC</div>
</div>
</div>
<div class="mono" style="font-size:9px;letter-spacing:.2em;color:#707080;margin-bottom:10px">IDENTITY BLEND</div>
@@ -1126,25 +1126,25 @@
<div ref="{{ parlayLegsRef }}">
<div data-leg="jokic" data-dec="2.05" data-game="DENMIN" data-grade="A+" data-label="Jokić o27.5 PTS" data-sub="NBA · DEN @ MIN" data-odds="+105" style="display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid #101018;cursor:pointer">
<span data-check style="width:18px;height:18px;flex:none;border-radius:5px;border:1.5px solid #2A2A38;display:flex;align-items:center;justify-content:center"></span>
<div style="flex:1;min-width:0"><div style="font-size:13px;font-weight:600">Jokić <span style="color:#B8BCC8;font-weight:500">o27.5 PTS</span></div><div class="mono" style="font-size:8.5px;letter-spacing:.1em;color:#707080;margin-top:2px">NBA · DEN @ MIN</div></div>
<div style="flex:1;min-width:0"><div style="font-size:13px;font-weight:600">Jokić <span style="color:#B8BCC8;font-weight:500">o27.5 PTS</span></div><div class="mono" style="font-size:8.5px;letter-spacing:.1em;color:#707080;margin-top:2px">NBA · <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#0E4DA4,#4C8BF5);vertical-align:-1.5px;margin-right:3px"></span>DEN @ <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#0C2340,#236192);vertical-align:-1.5px;margin-right:3px"></span>MIN</div></div>
<span class="mono" style="display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:5px;background:rgba(0,212,160,.14);color:#00D4A0;font-weight:800;font-size:10px;border:1px solid rgba(0,212,160,.3)">A+</span>
<span class="mono" style="font-size:11.5px;color:#F0F0F0;width:42px;text-align:right">+105</span>
</div>
<div data-leg="edwards" data-dec="2.30" data-game="DENMIN" data-grade="A" data-label="Edwards o5.5 AST" data-sub="NBA · DEN @ MIN" data-odds="+130" style="display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid #101018;cursor:pointer">
<span data-check style="width:18px;height:18px;flex:none;border-radius:5px;border:1.5px solid #2A2A38;display:flex;align-items:center;justify-content:center"></span>
<div style="flex:1;min-width:0"><div style="font-size:13px;font-weight:600">Edwards <span style="color:#B8BCC8;font-weight:500">o5.5 AST</span></div><div class="mono" style="font-size:8.5px;letter-spacing:.1em;color:#707080;margin-top:2px">NBA · DEN @ MIN</div></div>
<div style="flex:1;min-width:0"><div style="font-size:13px;font-weight:600">Edwards <span style="color:#B8BCC8;font-weight:500">o5.5 AST</span></div><div class="mono" style="font-size:8.5px;letter-spacing:.1em;color:#707080;margin-top:2px">NBA · <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#0E4DA4,#4C8BF5);vertical-align:-1.5px;margin-right:3px"></span>DEN @ <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#0C2340,#236192);vertical-align:-1.5px;margin-right:3px"></span>MIN</div></div>
<span class="mono" style="display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:5px;background:rgba(0,212,160,.1);color:#00D4A0;font-weight:800;font-size:10px;border:1px solid rgba(0,212,160,.24)">A</span>
<span class="mono" style="font-size:11.5px;color:#F0F0F0;width:42px;text-align:right">+130</span>
</div>
<div data-leg="skenes" data-dec="1.83" data-game="PITCHC" data-grade="A" data-label="Skenes o6.5 K" data-sub="MLB · PIT @ CHC" data-odds="-120" style="display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid #101018;cursor:pointer">
<span data-check style="width:18px;height:18px;flex:none;border-radius:5px;border:1.5px solid #2A2A38;display:flex;align-items:center;justify-content:center"></span>
<div style="flex:1;min-width:0"><div style="font-size:13px;font-weight:600">Skenes <span style="color:#B8BCC8;font-weight:500">o6.5 K</span></div><div class="mono" style="font-size:8.5px;letter-spacing:.1em;color:#707080;margin-top:2px">MLB · PIT @ CHC</div></div>
<div style="flex:1;min-width:0"><div style="font-size:13px;font-weight:600">Skenes <span style="color:#B8BCC8;font-weight:500">o6.5 K</span></div><div class="mono" style="font-size:8.5px;letter-spacing:.1em;color:#707080;margin-top:2px">MLB · <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#2b2b2b,#c9a227);vertical-align:-1.5px;margin-right:3px"></span>PIT @ <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#0E3386,#CC3433);vertical-align:-1.5px;margin-right:3px"></span>CHC</div></div>
<span class="mono" style="display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:5px;background:rgba(0,212,160,.1);color:#00D4A0;font-weight:800;font-size:10px;border:1px solid rgba(0,212,160,.24)">A</span>
<span class="mono" style="font-size:11.5px;color:#F0F0F0;width:42px;text-align:right">-120</span>
</div>
<div data-leg="judge" data-dec="2.40" data-game="NYYBOS" data-grade="B" data-label="Judge o1.5 TB" data-sub="MLB · NYY @ BOS" data-odds="+140" style="display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid #101018;cursor:pointer">
<span data-check style="width:18px;height:18px;flex:none;border-radius:5px;border:1.5px solid #2A2A38;display:flex;align-items:center;justify-content:center"></span>
<div style="flex:1;min-width:0"><div style="font-size:13px;font-weight:600">Judge <span style="color:#B8BCC8;font-weight:500">o1.5 TB</span></div><div class="mono" style="font-size:8.5px;letter-spacing:.1em;color:#707080;margin-top:2px">MLB · NYY @ BOS</div></div>
<div style="flex:1;min-width:0"><div style="font-size:13px;font-weight:600">Judge <span style="color:#B8BCC8;font-weight:500">o1.5 TB</span></div><div class="mono" style="font-size:8.5px;letter-spacing:.1em;color:#707080;margin-top:2px">MLB · <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#1b3a6b,#0C2340);vertical-align:-1.5px;margin-right:3px"></span>NYY @ <span style="display:inline-block;width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#BD3039,#6b1c22);vertical-align:-1.5px;margin-right:3px"></span>BOS</div></div>
<span class="mono" style="display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:5px;background:#14141E;color:#F0F0F0;font-weight:800;font-size:10px;border:1px solid #1E1E2A">B</span>
<span class="mono" style="font-size:11.5px;color:#F0F0F0;width:42px;text-align:right">+140</span>
</div>
@@ -1282,6 +1282,15 @@ class Component extends DCLogic {
AGGRESSOR:{c:'#FF6B4A',g:'<path fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" d="M4 20 15 9M15 9h-5M15 9v5"/><path stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M17 16l3 3"/><circle cx="19" cy="6" r="1.8" fill="currentColor"/>'},
SURGEON:{c:'#7AA6D8',g:'<path fill="none" stroke="currentColor" stroke-width="2" d="M4 5h16v14H4z"/><path stroke="currentColor" stroke-width="1.6" d="M4 12h16M12 5v14"/><circle cx="16.5" cy="8.5" r="2" fill="currentColor"/>'},
TOPSPIN:{c:'#B36CFF',g:'<path fill="none" stroke="currentColor" stroke-width="2.3" stroke-linecap="round" d="M18.5 8a7 7 0 1 0 1.2 6"/><path fill="currentColor" d="M20 5l-.3 4.6L16 7.4z"/><path stroke="currentColor" stroke-width="1.6" stroke-linecap="round" d="M9 12.5c1.5-1.5 4.5-1.5 6 0"/>'},
BRUSH:{c:'#E0B84A',g:'<path fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" d="M5 19 15 9"/><path fill="currentColor" fill-opacity=".2" d="M15 9l4-4 1.6 1.6-4 4z"/><path fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" d="M15 9l4-4M5 19l-1 1M7 20l-2 1"/>'},
WHIFF:{c:'#E86A6A',g:'<path fill="none" stroke="currentColor" stroke-width="2.3" stroke-linecap="round" d="M4 16c5 3 11 3 16-2"/><path fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-dasharray="2.5 3" d="M4 11c5 3 10 3 15-1.5"/><circle cx="18" cy="6" r="2.2" fill="currentColor"/>'},
CONNECTOR:{c:'#9AB0C4',g:'<circle cx="6" cy="7" r="2.4" fill="currentColor"/><circle cx="18" cy="17" r="2.4" fill="currentColor"/><path fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" d="M8 8.5C13 11 11 13 16 15.5"/>'},
DISTRIBUTOR:{c:'#7AB8D8',g:'<circle cx="12" cy="12" r="2.6" fill="currentColor"/><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M12 9V4M10 6l2-2 2 2M9.5 13.8 5 16.5M7.5 14.2l-2.5 2.3.8 3.2M14.5 13.8 19 16.5M16.5 14.2l2.5 2.3-.8 3.2"/>'},
FASTBREAK:{c:'#4AA0E8',g:'<path fill="currentColor" fill-opacity=".18" d="M10 5l8 7-8 7z"/><path fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round" d="M10 5l8 7-8 7z"/><path stroke="currentColor" stroke-width="2.2" stroke-linecap="round" d="M5 8h3M4 12h4M5 16h3"/>'},
FLEX:{c:'#A08AC8',g:'<path fill="none" stroke="currentColor" stroke-width="2.3" stroke-linecap="round" d="M8 4C4 8 4 16 8 20M16 4c4 4 4 12 0 16"/><circle cx="12" cy="12" r="2" fill="currentColor"/>'},
HYBRID:{c:'#C88AB0',g:'<circle cx="10" cy="12" r="6" fill="none" stroke="currentColor" stroke-width="2"/><path fill="currentColor" fill-opacity=".18" d="M15 6l6 12H9z"/><path fill="none" stroke="currentColor" stroke-width="2" stroke-linejoin="round" d="M15 6l6 12H9z"/>'},
SWITCH:{c:'#C0B08A',g:'<path fill="none" stroke="currentColor" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" d="M5 8h11M13 4l4 4-4 4M19 16H8M11 12l-4 4 4 4"/>'},
SWITCHBOARD:{c:'#90A0E8',g:'<circle cx="6" cy="6" r="1.8" fill="currentColor"/><circle cx="18" cy="6" r="1.8" fill="none" stroke="currentColor" stroke-width="1.8"/><circle cx="6" cy="18" r="1.8" fill="none" stroke="currentColor" stroke-width="1.8"/><circle cx="18" cy="18" r="1.8" fill="currentColor"/><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M7.5 7.5c4 4 5 4 9 9"/>'},
RETURNER:{c:'#6C9CB0',g:'<path fill="none" stroke="currentColor" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round" d="M20 6 8 18M8 18h6M8 18v-6"/><path stroke="currentColor" stroke-width="2.3" stroke-linecap="round" d="M4 4l3.5 3.5"/>'}
};
}
@@ -1295,7 +1304,8 @@ class Component extends DCLogic {
{sport:'HOCKEY', names:['SNIPER','SETUP','WALL','REARGUARD','PEST','WORKHORSE','ENFORCER','SPARK','VAULT','HOWITZER']},
{sport:'SOCCER', names:['FINISHER','MAESTRO','TOWER','MOTOR','BLADE','WALL']},
{sport:'BOXING / MMA', names:['PRESSURE','COUNTER','TECHNICIAN','SLUGGER','PHANTOM','SOUTHPAW','GRAPPLER','STRIKER','IRON','FINISHER']},
{sport:'TENNIS', names:['CANNON','GRINDER','AGGRESSOR','SURGEON','TOPSPIN','RETURNER']}
{sport:'TENNIS', names:['CANNON','GRINDER','AGGRESSOR','SURGEON','TOPSPIN','RETURNER']},
{sport:'CLASSIFIER LEGACY · BASKETBALL / BASEBALL', names:['BRUSH','WHIFF','CONNECTOR','DISTRIBUTOR','FASTBREAK','FLEX','HYBRID','SWITCH','SWITCHBOARD']}
];
}