How this is built
=================
train-screen.html   The page itself (uses Google Fonts when opened on its own).

1. fonts/build_fonts.py train-screen.html
   Cuts static weights (Noto Sans 300-700, Noto Sans JP 300/400/500/700,
   Noto Sans Mono 500) from the Google Fonts variable TTFs, subsets them to
   the characters in the page and writes fonts.css (base64 WOFF).
2. Replace the three Google Fonts <link> lines in the page with a <style>
   block holding fonts.css. That's train-screen-offline.html.
3. Copy that file to screensaver/train-screen.html, then in screensaver/:
     llvm-windres --target=pe-x86-64 -i app.rc -o rsrc_windows_amd64.syso -O coff
     GOOS=windows GOARCH=amd64 go build -trimpath -ldflags "-H windowsgui -s -w" -o TrainScreen.scr .
   Add -tags testhooks for a test build (/autoexit:N, /debug:DIR, /q:..., /ptest).
   go.mod uses local replace paths for go-webview2, go-winloader and x/sys;
   point them at your own copies or remove the replace lines to fetch them.
