Adds e2e job to ci.yml gated on lint-css + typecheck; uses microsoft/playwright-github-action@v1 for browser caching; --workers=4; timeout-minutes=15. E2E now required for merge.