recap/bin: drop hardcoded /Users/jas paths so the pipeline runs on oven
slides.mjs / subtitles.mjs / screenshots.mjs hardcoded the Mac-only
puppeteer module path, system/public/ font paths, and Google Chrome
executable. Resolve puppeteer dynamically across local-dev and
/opt/oven/node_modules; build font/PALS paths from a REPO constant; let
puppeteer use its bundled Chromium on Linux. screenshots.mjs picks up
the same puppeteer resolver so the (currently unused) screenshot-cache
path won't blow up if it's ever wired into a slide.
Recap pipeline now runs end-to-end on the oven.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>