Commits 2 outstanding change(s) that were sitting uncommitted. No build artifacts and no secrets in the changeset (both checked).
White-label screenshot harness
One command captures every live surface (desktop + mobile, full-page) into ~/Desktop/<brand>.
cd ~/work/lux/universe/screenshots
npm i # playwright (browsers already cached)
BRAND=lux node capture.mjs # -> ~/Desktop/lux/<surface>/<page>-<desktop|mobile>.png
BRAND=acm node capture.mjs # -> ~/Desktop/acm/... (once ACM brand swap lands)
- Surfaces + auth are declared in
manifest.json. Add a surface = one entry. - Each surface: auto-discovers same-origin pages, logs in where a credential is set, shoots 1440×900 + 390×844.
- Down surfaces are skipped, never fatal — re-run as apps come online.