🔊 Sound note. System speech works right now from file://. ElevenLabs will not — opening a file directly gives the page a null origin, so the ElevenLabs API blocks it (CORS) and the Voice Lab silently falls back to system voices. To use premium voices, serve this folder instead: python3 -m http.server 8099 then open http://localhost:8099/K27_THEME_AND_SOUND.html.

🧩 K27 · Theme + Sound

One file. 33 themes, 8 categories, full Voice Lab. Nothing external to load.

Sessions Booked

1,240
vs last month · +12.4%

Active Athletes

86
roster churn · −3.1%

Camp Signups

417
capacity · 82% full

Total Revenue

$74,310
trailing 30 days

📊 Sample table

ProgramStatusEnrolledRevenue
Hitting LabLIVE124$18,600
Pitching VeloLIVE98$22,050
Summer CampOPEN417$29,190
Small GroupWAITLIST36$4,470

🔘 Buttons

📋 State

Current theme
Themes registered
Theme saved underlocalStorage["k27-theme"]
Voice defaults saved underlocalStorage["k27-sound-config"]
Your theme pick and Voice Lab defaults persist in this browser — close the tab, reopen the file, they come back.

🎨 Live theme variables

K27 Component Library · theme + voice · self-contained build