addedNew Formal subtitle preset using Playfair Display with white text, a subtle dark outline/shadow treatment, and stronger preset button contrast for light styles
addedSeparate active-word recolor emphasis control with a configurable highlight color, supported in both preview and export rendering
changedDefault subtitle styling now starts with the Formal look, 3 max words per line, display-on-spoken disabled, active-word recolor enabled, and a -10px vertical offset
changedActive-word emphasis is now split into independent resize and recolor controls so each effect can be toggled separately
addedExport quality selector — choose between Medium (smaller file, closer to source bitrate) and High Quality before downloading
changedExport pipeline now uses OffscreenCanvas, alpha-free contexts, and StreamTarget for reduced memory usage and faster frame rendering
changedDefault export quality lowered from High to Medium so output file sizes match the original video more closely
changedFace position analysis before 9:16 export now runs at 2fps instead of 5fps (2.5x faster) and shows a live progress percentage
changedMobile MP4 export now uses more conservative compatibility settings during the playback-freeze investigation, including explicit AVC settings on mobile, lighter mobile export caps, and on-screen export diagnostics for codec, MIME type, bitrate, and source-track details
changedHEVC-source export startup now streams audio samples alongside video rendering and resolves the output MIME type asynchronously so the ongoing 0% stall investigation is no longer front-loaded on whole-file audio preparation
fixedCanvas context state (transforms, composite ops) no longer resets every frame during compositing export — blur, foreground, and mask canvases are sized once and cleared instead of recreated
fixedSubtitle chunk lookup during export uses binary search instead of linear scan, eliminating per-frame overhead on long videos with many subtitles
fixedSubtitle preview text on mobile now scales relative to the video container width instead of the viewport, with a readability boost on small screens so text stays legible even on compact previews
fixedExport subtitle positioning now matches the preview baseline, so vertical offset and default bottom placement render at the expected height in downloaded videos
fixedExport frame extraction now clears the canvas every frame, falls back to the source video when a decoded sample is unavailable, and detects HEVC phone-camera sources so they can use sequential decoded-frame reads instead of sparse timestamp lookups during export