Fixed
- Accessibility: Skip-to-content link added — keyboard users can bypass navigation and jump directly to main content
- Accessibility: Removed
role="presentation"from modal overlay — restores screen reader access and resolves conflict with existingaria-label - Accessibility: Search overlay now traps keyboard focus — tabbing can no longer escape the overlay into the hidden page
- Interaction: Modal swipe-to-close —
draggingflag stays active on upswing so the panel snaps back correctly instead of getting stuck - Rendering: SVG gradient IDs in the logo are now unique per render — prevents DOM ID collisions on multiple mounts
- Touch targets:
.btn--icon-smminimum size raised from 36×36 px to 44×44 px (--target-base) — meets iOS minimum touch target guideline - Design tokens: Added
--target-base: 44px; documented--target-sm: 32pxas visual-only (not a touch target)