.app { display: flex; flex-direction: column; height: 100%; } .header { display: flex; align-items: center; gap: var(--space-4); height: var(--header-height); padding: 0 var(--space-5); border-bottom: var(--border-width) solid var(--border); background: var(--layer-01); flex: 0 0 auto; } .title { margin: 0; /* it's an

now โ€” drop the UA heading margin */ font-weight: 600; font-size: 16px; letter-spacing: 0.01em; } /* * Skip link โ€” visually hidden until focused, then pinned top-left above * everything. Reveal uses :focus (not only :focus-visible) so a keyboard Tab * shows it; the transition is neutralized under prefers-reduced-motion by base.css. */ .skipLink { position: absolute; top: -100%; left: var(--space-4); z-index: 1200; padding: var(--space-3) var(--space-4); background: var(--accent); color: var(--accent-contrast); border-radius: var(--radius); transition: top var(--dur-fast) var(--ease); } .skipLink:focus { top: var(--space-3); } /* The focus target itself shouldn't paint a ring (the skip link already shows). */ .panes:focus { outline: none; } .version { font-family: var(--font-mono); font-size: 11px; color: var(--text-secondary); border: var(--border-width) solid var(--border-strong); border-radius: var(--radius); padding: var(--space-1) var(--space-3); } .spacer { flex: 1; } .panes { display: flex; flex: 1 1 auto; min-height: 0; } /* * Side panes (library, preview) carry an explicit width (set inline from the * PanesStore) and don't grow or shrink โ€” the drag handles change that width. * The editor between them flexes to fill the remainder, so a drag leaves the * opposite side pane untouched (spec ยง01A). Panes are separated by the * ResizeHandle, so no inter-pane borders here. */ .pane { flex: 0 0 auto; min-width: 0; overflow: auto; background: var(--bg); } /* Editor pane: Monaco manages its own scroll/layout, so no padding. */ .paneEditor { flex: 1 1 0; min-width: 0; overflow: hidden; background: var(--bg); }