- Pin playwright npm to 1.59.1 to match Docker image tag
- Update base image to mcr.microsoft.com/playwright:v1.59.1-jammy
- Run Lighthouse desktop and mobile sequentially (parallel caused port conflict)
- Switch to devtools throttling (simulate caused LanternError on localhost)
- Skip browser download during npm ci (image has browsers pre-installed)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>