VYNDR 2.0 conversion, Phase E. Frontend-only; zero backend changes.
- lib/slateAdapter.js: parseAmericanOdds, detectBestLines, mapScheduleToGameCards
(best/worst line detection — the Bloomberg pattern).
- Reskinned the LEGACY GameCard's game-lines grid with best/worst highlighting +
SportBadge, keeping inline grading intact (a wholesale swap to the display-only
vyndr/GameCard would have deleted the slate's grading interaction).
- compare/invite/help/about: RouteStubs -> real design-system pages.
- login reskinned (scanlines, system voice, new Wordmark); pricing + ClaimMeter.
Honest scope: the full GameCard swap needs inline grading ported into the new
component first; profile/settings/blog/game-detail reskins are light/deferred.
18 new tests. Backend 1839 -> 1853, 144 suites, zero regressions. Web build clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>