WnBreadcrumb._onSlot inserted separator <span>s into its own light DOM on
slotchange but cleaned up in the shadow DOM, so they were never removed — each
insertion re-fired slotchange, looping the main thread and wedging the showcase
page. Made _onSlot idempotent: exclude own separators when reading items, and
mutate only when separators are not already correct.
- Un-fixme the showcase visual test; add a warm-up full-page capture so
deviceScaleFactor-2 sub-pixel snapping settles before the assertion. All 5
visual tests pass.
- Remove the dead Google-Fonts @import from colors_and_type.css (token stacks are
system-ui; webfont unused + a CI-flake source; no visual change).
- Unblocks WHYNOT-WP-0003 T08 (showcase = per-version visual catalog); both T11
and T08 marked done.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>