Visual/interaction polish on top of the RC-Visual-02 baseline — no redesign, no logic/route changes. Fixed color-only state signaling app-wide (added `aria-pressed`/`aria-current`/`aria-live` + icon/checkmark pairing to selected swatches, active filters/tabs/sort, toggle buttons), normalized remaining hardcoded hex to design tokens, added hover/focus-visible/active/disabled states across interactive controls, capped legal/CMS prose at 70ch, converted FAQ to native `<details>` disclosures. Four commits (Home/Catalog/Search, Product/Compare/Wishlist, Cart/Checkout, Static Pages). Detail: `docs/STORE_FRONT_UX_REVIEW.md`.
Closed 2 of the 5 gaps RC-Premium-01 deliberately deferred: category/search skeleton markup migrated to shared `app-skeleton`, dead cart `.email-form` markup/CSS removed. The other 3 (payment modal, cart confirm() dialog, untokenized colors) need an architecture/design-system decision, correctly left alone again. Detail: `docs/STORE_REVIEW.md`.
**Sprint 30 — Final Release**: verify pass re-run 2026-07-23 (tsc --noEmit, `npm run build`, `arch:check:boundaries`, `arch:check:cycles`) — all green, only pre-existing bundle-budget warning. Working tree otherwise clean. Only remaining item: `git push` of 10 local `B2B` commits to `origin/B2B` — awaiting explicit user go-ahead (declined once already this sprint, per safety rules re-ask each time). Full checklist: `docs/SPRINT-PLAN.md`.
- Payment modal / bank-payment iframe on Cart still custom (own focus-trap, multi-step state) — candidate for `app-dialog` migration.
- Cart's native `confirm()` on clear-cart — no existing confirm-dialog pattern to follow yet.
-`stars.component` rating glyph color and a few legacy hex literals in `pages/category`/`pages/search` have no exact token match — needs a deliberate token-extension decision.
- Homepage hero-to-categories dead-space gap — traces to mock bootstrap config, not a code defect; needs real-tenant-data reproduction.
- ~178 missing `adminXxx.*` i18n keys across admin backoffice.
- Theme Mode (dark/system) selector has no runtime CSS effect — real feature project, not a wiring fix.
-`dynamic-renderer/` pipeline exists but is unwired — needs a finish-or-delete decision.
## Not audited / out of scope
Settings (no route exists), Diagnostics (dev-only, excluded from production).