Per-file content-hash versioning on every /static reference, immutable cache
headers on versioned URLs, no-cache on HTML, auto-bumped service worker cache
name with stale-while-revalidate for assets, and a controllerchange listener
that silently reloads the page when a new SW takes control.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Wrap the trophy + title + meta group in the bracket link itself so the
whole Stanley Cup Playoffs element doubles as the entry point. Cleaner
banner, one fewer control to style.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Browsers already gate Notification.requestPermission behind a native
prompt, so a dedicated button was redundant UI clutter. Prompting on
load (only when permission state is "default") keeps the flow and
clears space in the banner for future notification types.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Switch the banner to a 3-column grid (1fr auto 1fr) so the main group
sits truly centered regardless of the right-side action cluster width.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Turn a regular-season-looking Tuesday into a full playoff experience:
- Playoff banner with round + day + series + elimination counts, gold/silver
Cup theme toggled by body.playoff-mode
- Series context on each playoff card: round chip, series score, stake badges
(GAME 7, CLINCHER, PIVOTAL), and one-line blurb
- Game 7s pin to a new Spotlight section above Live
- Playoff OT renders with SUDDEN DEATH badge and pulsing gold border
- Client-side OT notifications via bell button in the banner
- New /series/<id> drill-down with headline, next-game, and game-by-game history
- New /bracket page: 7-column desktop grid, accordion on mobile
- Day N banner count auto-anchors on first playoff scoreboard hit
- SQLite cache for bracket + per-series schedules, stale-on-failure up to 24h
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Games in intermission now appear in their own section between Live and
Scheduled. The section is hidden when no games are in intermission,
matching the behavior of the other section headings.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds full PWA compliance: web app manifest, service worker with
cache-first static / network-first scoreboard strategy, and a
generated hockey puck icon (512, 192, 180, 32px) on the app's
dark navy background. Includes all required meta tags for iOS
standalone mode and a /favicon.ico route.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>