Clean release with all fixes from 0.7.x–0.8.x:
- Template save/render fully working (whitelist instead of sanitize_file_name)
- Version constant synced with header (cache-busting works)
- Custom font grouping (variants share one font-family)
- Font format detection (.ttf, .woff, .woff2)
- Video cover mode on portrait screens
- Expanded text toolbar (em dash, en dash, degree, bullet)
- No-cache headers on player page
- x-effect on hidden inputs for reliable save
- Debug notice removed