-
← header
- [Tabs.List: Preview | Code] ← left-aligned pills
- [spacer]
- [reset ghost icon button — only when resettable]
-
-
- Preview panel: flex items-center justify-center min-h-[120px] bg-background px-8 py-12
- Code panel: overflow-auto text-[12.5px] p-4 (Shiki dual-theme, transparent bg)
-
-
-```
-
-- Tabs restyle: **transparent track** (`gap-0.5 -mx-1 px-1 -my-1 py-1` for ring room), items `h-8 px-3 text-[13px] bg-transparent`, labels ghost-span weight-shift + `text-muted-foreground → text-foreground`; `Tabs.Indicator` = `bg-active rounded-lg` sliding via existing transform transition at `--dur` (this replaces the current bordered `bg-surface-2/60` track + white `bg-card shadow` pill).
-- **The stage chrome dies**: no `cb-block-bar` label row, no `· preview` mono suffix, no 18px dotted backdrop, no per-preview light/dark toggle (site theme lives in the right panel; `.cb-stage-light` scope is deleted). Reset survives as the ghost icon button in the header (FF's playback slot).
-- Preview well is plain `bg-background`. Demos keep `.not-prose`. `next/dynamic({ssr:false})` + skeleton mounting stays (hydration fix). `keepMounted` stays.
-- Wide-demo policy: the well is 760px-column width; demos are responsive and preview-width wrappers already cap intrinsic widths. If a specific demo overflows, it scrolls horizontally inside the well (`overflow-x-auto`) — do NOT widen the column per-page.
-- **Fullscreen** (added 2026-07-03): every preview header carries a `Maximize2` ghost button opening a viewport-spanning Base UI Dialog (`inset-3 sm:inset-6`, `rounded-xl border-border/60 bg-background shadow-surface-8`, scale+fade on the slow tier with centered origin, ESC/backdrop dismiss, focus trap + restore). The modal mounts a SECOND, fresh `