GPU process can exit due to idle timeout if user waits before opening Reader. reWarmIfNeeded() checks elapsed time since last warm — if >60s, re-attaches WKWebView to window and loads minimal HTML to restart the GPU process. Called on ReaderTabView.onAppear. No timers, no keep-alive loops. Just a timestamp check on tab appear. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>