'use client'; // Session 16 — the floating demo card on the right side of the hero // is now driven by /api/hero-prop. Live prop + grade renders with a // glitch/blur overlay on the reasoning. Falls back to the static // Jokic layout when no live odds are available. import LiveHeroProp from './LiveHeroProp'; export default function Hero() { return (
EVERY SPORT · EVERY PROP

The books have every advantage.
We built this to give it back.

Grade your props across every sport with intelligence the books don't want you to have. Forty-plus factors. Kill conditions. Alt-line ladders. The honest ledger.

Get Started — Free See the Ledger

5 free reads every month. No credit card. Cancel anytime.

VYNDR is an analytics tool, not a sportsbook. Gamble responsibly. 1-800-522-4700.

); } const SPORTS_DISPLAY = [ { label: 'NBA', active: true, color: '#E94B3C' }, { label: 'MLB', active: true, color: '#1E90FF' }, { label: 'WNBA', active: true, color: '#F7944A' }, { label: 'NFL', active: false, color: '#013369' }, { label: 'NHL', active: false, color: '#A0A0B0' }, { label: 'TENNIS', active: false, color: '#C5B358' }, { label: 'MMA', active: false, color: '#D4AF37' }, { label: 'BOXING', active: false, color: '#8B0000' }, { label: 'GOLF', active: false, color: '#2E7D32' }, ]; function SportBadgeStrip() { return (
{SPORTS_DISPLAY.map((s) => { const base: React.CSSProperties = { fontFamily: 'var(--ibm-mono)', fontSize: 11, fontWeight: 700, letterSpacing: '0.08em', padding: '5px 11px', borderRadius: 999, textTransform: 'uppercase', whiteSpace: 'nowrap', }; return s.active ? ( {s.label} ) : ( {s.label} ); })}
); } // Session 16 — FloatingDemoCard / Stat / row removed. The hero card // is now a live, graded prop fetched on mount; see LiveHeroProp.tsx. // The static Jokic layout lives ONCE inside that component as the // cold-start fallback when /api/hero-prop returns isStatic:true. // // GradePill (re-exported by GradeCard) is still imported at the top // of this file because the section header uses it elsewhere; if a // future cleanup confirms no other usage, that import can drop too.