## Summary Closes #7. Raise public marketing page Lighthouse scores (Performance / Accessibility / Best Practices / SEO) on `/`, `/about/`, and `/contact/`. ### Baseline (preview, mobile) | Page | Perf | A11y | BP | SEO | |------|------|------|----|-----| | `/` | 70 | 80 | 82 | 100 | | `/about/` | 71 | 81 | 82 | 100 | | `/contact/` | 74 | 90 | 82 | 100 | ### Changes - **Accessibility:** contrast overrides, nav `aria-label`s, footer/contact heading order (no skipped levels). - **Best practices:** replace theme `unload` listeners with `pagehide` (also helps bfcache); `WHITENOISE_MAX_AGE` for hashed static. - **Performance:** WebP heroes/headshot/breadcrumbs + preload; Google Fonts `display=swap` + fewer weights; async icon `fonts.css`; bundled/minified vendor CSS; lazy second swiper slide; remove above-fold WOW delay on home hero. - **SEO:** already 100; kept structured data / meta. ### Local verify (dev server — no gzip, so Perf is not representative) A11y / Best Practices / SEO all **100** on the three pages after fixes. Perf will look better on beta/preview (WhiteNoise compression + CDN/proxy) than on `runserver`. Remaining Perf headroom is mostly the theme’s large `core.min.js` / unused CSS and infra HTTP/2. ## Test plan - [ ] Deploy/preview branch and re-run Lighthouse on `/`, `/about/`, `/contact/` - [ ] Spot-check home hero, about headshot, contact form + mobile nav toggles - [ ] Confirm icons still appear after async `fonts.css` load - [ ] Confirm swiper slide 2 background appears when navigating slides Reviewed-on: #8