Landing hero → bundle visual system; claims filtered to earned only

Migrate the Landing hero (Landing-only component; LiveHeroProp/triplet
untouched) to the design bundle's visual language: mono "SPORTS
INTELLIGENCE TERMINAL" eyebrow, tightened 56px/800 headline "Every line,
graded before you bet it.", dual mono CTAs (OPEN THE TERMINAL / SEE THE
PUBLIC RECORD), proof chips.

Claims audited against the held list — the bundle's marketing copy carries
claims we have not earned; those did NOT ship:
- "CLV-VERIFIED" chip + "verified against closing lines" — HELD (C4 broken)
- "312 props / 47 games" count — fabricated demo → ABSENT (no count)
Shipped copy is earned only: pre-graded, edge-ranked, settled in public,
misses included; PUBLIC LEDGER / MISSES INCLUDED / 5 FREE READS chips.

HELD + FLAGGED for a design pass (fabrication-backed, no honest designed
state — check-don't-freelance): the edge-board demo (A+/A don't emit), the
"grades calibrate · A+ hit 80%" claim (calibration unmeasured), and the
tier-record band (real data is B/C-only, no ROI). Not built with fake data.

Tokens via var(--g-a/--void/--border/…) with bundle-hex fallbacks
(documented-intentional pattern). Build exit 0; parity QA green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VCNgGSt5qvcLxaeQqa7Zpj
This commit is contained in:
Kev
2026-07-22 19:28:02 -04:00
parent d879a10dd3
commit 3440738d9e
2 changed files with 86 additions and 38 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+85 -37
View File
@@ -21,62 +21,110 @@ export default function Hero() {
className="hero-grid"
>
<div className="animate-fade-up" style={{ maxWidth: 800 }}>
<span
{/* Bundle-migrated eyebrow. Mono, wide-tracked, signal green. */}
<div
className="mono"
style={{
display: 'inline-block',
padding: '4px 12px',
fontSize: 11,
fontSize: 10.5,
fontWeight: 700,
letterSpacing: '0.10em',
borderRadius: 999,
background: 'var(--accent-glow)',
color: 'var(--grade-a)',
marginBottom: 24,
textTransform: 'uppercase',
}}
>
EVERY SPORT · EVERY PROP
</span>
<h1
className="text-balance"
style={{
fontSize: 'clamp(36px, 6vw, 64px)',
fontWeight: 700,
letterSpacing: '-0.03em',
lineHeight: 1.05,
letterSpacing: '0.3em',
color: 'var(--g-a, #00D4A0)',
marginBottom: 20,
}}
>
The books have every advantage.<br />
<span style={{ color: 'var(--grade-a)' }}>We built this to give it back.</span>
SPORTS INTELLIGENCE TERMINAL
</div>
<h1
className="text-balance"
style={{
fontSize: 'clamp(36px, 6vw, 56px)',
fontWeight: 800,
letterSpacing: '-0.025em',
lineHeight: 1.02,
marginBottom: 18,
}}
>
Every line, graded before you bet it.
</h1>
{/* CLAIMS-FILTERED subcopy: dropped the fabricated "312 props / 47
games" count (absent, not faked) and "verified against closing
lines" (CLV is held). What remains is earned: pre-graded, edge-
ranked, settled in public, misses included. */}
<p
className="text-pretty"
style={{
fontSize: 18,
fontSize: 16,
color: 'var(--text-secondary)',
lineHeight: 1.6,
marginBottom: 32,
maxWidth: 600,
lineHeight: 1.55,
marginBottom: 30,
maxWidth: 460,
}}
>
Grade your props across every sport with intelligence the books don&apos;t want you to have.
Forty-plus factors. Kill conditions. Alt-line ladders. The honest ledger.
Every prop graded and ranked by edge before the game starts then settled in public.
Misses included.
</p>
<SportBadgeStrip />
<div style={{ display: 'flex', gap: 12, flexWrap: 'wrap', marginTop: 24 }}>
<a href="/signup" className="btn-primary" style={{ padding: '14px 28px', fontSize: 15 }}>
Get Started Free
{/* Bundle dual mono CTAs. */}
<div style={{ display: 'flex', alignItems: 'center', gap: 12, flexWrap: 'wrap', marginTop: 24 }}>
<a
href="/dashboard"
className="mono"
style={{
display: 'inline-flex',
alignItems: 'center',
height: 48,
padding: '0 26px',
borderRadius: 11,
background: 'var(--g-a, #00D4A0)',
color: 'var(--void, #06060B)',
fontWeight: 800,
fontSize: 12,
letterSpacing: '0.1em',
textDecoration: 'none',
}}
>
OPEN THE TERMINAL
</a>
<a href="/ledger" className="btn-ghost" style={{ padding: '14px 28px', fontSize: 15 }}>
See the Ledger
<a
href="/ledger"
className="mono"
style={{
display: 'inline-flex',
alignItems: 'center',
height: 48,
padding: '0 22px',
borderRadius: 11,
background: 'transparent',
border: '1px solid var(--border)',
color: 'var(--text-secondary)',
fontWeight: 700,
fontSize: 11,
letterSpacing: '0.1em',
textDecoration: 'none',
}}
>
SEE THE PUBLIC RECORD
</a>
</div>
<p style={{ fontSize: 13, color: 'var(--text-tertiary)', marginTop: 16 }}>
5 free reads every month. No credit card. Cancel anytime.
</p>
{/* Proof chips — CLV-VERIFIED intentionally NOT migrated (held). Only
earned trust signals: the ledger is public and shows misses. */}
<div style={{ display: 'flex', alignItems: 'center', gap: 20, marginTop: 26, flexWrap: 'wrap' }}>
<span
className="mono"
style={{ display: 'inline-flex', alignItems: 'center', gap: 6, fontSize: 9.5, letterSpacing: '0.12em', color: 'var(--g-a, #00D4A0)' }}
>
<span style={{ width: 5, height: 5, borderRadius: '50%', background: 'var(--g-a, #00D4A0)' }} />
PUBLIC LEDGER
</span>
<span className="mono" style={{ fontSize: 9.5, letterSpacing: '0.12em', color: 'var(--text-tertiary)' }}>
MISSES INCLUDED
</span>
<span className="mono" style={{ fontSize: 9.5, letterSpacing: '0.12em', color: 'var(--text-tertiary)' }}>
5 FREE READS / MO
</span>
</div>
</div>
<LiveHeroProp />