- New API route /api/presenter/tts proxies to compliance-tts-service - usePresenterMode now uses Audio element with Piper-generated MP3 - Client-side audio caching (text hash → blob URL) avoids re-synthesis - Graceful fallback to word-count timer if TTS service unavailable - Add TTS_SERVICE_URL env var to pitch-deck Docker config Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>