- Persist parsed book tokens in IndexedDB with background silent verification
- Eliminate loading mask completely with instant 0ms state restoration
- Upgrade progress bar to fixed 32px touch/click target with 8px track and pointer scrub
- Remove duplicate progress slider and author footer from settings drawer
- Dynamically display book title without author prefix
Co-Authored-By: Claude Code <noreply@anthropic.com>
- Clean up legacy multi-format/CJK modules (orp, epub, samples, modals)
- Replace with lightweight pure English tokenizer and chunking engine
- Add SettingsDrawer, auto-hiding HUD, and PWA icons
- Update manifest and touch icons
Co-Authored-By: Claude Code <noreply@anthropic.com>
- Add .btn-play-primary media query in index.css to enforce 2.25rem (36px) on height <= 520px
- Prevent wider screen landscape viewports from overriding height constraints
Co-Authored-By: Claude Code <noreply@anthropic.com>
- Optimize short/landscape screen (< 520px height) viewports with compact padding, shrinkable containers and zero-overflow layout
- Synchronize dual-HUD immersive fading for both Header and Controls with 3s stillness and global wake-up interactions
- Enhance PasteModal with user-friendly error alerts and auto-focusing textarea on clipboard denial
Co-Authored-By: Claude Code <noreply@anthropic.com>
- Fix unicode surrogate pairs and emoji slicing via Array.from in ORP calculator
- Add slot smoothing constraint to pivot element to prevent horizontal jitter
- Implement adaptive timestamp compensation and visibilitychange auto-pause
- Slim storage layer by updating only STORE_META on progress changes with memory fallback
- Align EPUB chapter indices to token array indices instead of raw character offsets
- Support standalone emoji tokens via Extended_Pictographic regex
- Code-split JSZip via dynamic import to optimize initial bundle size
Co-Authored-By: Claude Code <noreply@anthropic.com>