.topic-page{--topic-read-max: min(42rem, 100%);width:100%;max-width:min(90rem,100%);margin-inline:auto;min-width:0;overflow-x:clip}.topic-layout{min-width:0}.topic-layout>*{min-width:0}.topic{width:100%;max-width:var(--topic-read-max);box-sizing:border-box}.topic__breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-2);width:100%;max-width:var(--topic-read-max);margin-inline:auto;margin-block-end:var(--space-4);font-size:.8125rem;line-height:1.4;color:var(--color-muted)}.topic__current{flex:1 1 8rem;min-width:0;white-space:normal;overflow-wrap:anywhere}.topic__title{font-size:clamp(1.375rem,4.5vw,1.75rem);line-height:1.25;overflow-wrap:break-word}.topic__jump{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);margin:0 0 var(--space-4);padding:0;font-size:var(--font-size-sm);line-height:1.4}.topic__jump a{display:inline-flex;align-items:center;min-height:44px;padding-inline:.15rem}#narrative,#lab,#code{min-width:0;max-width:100%}#lab,#code{overflow-x:auto;-webkit-overflow-scrolling:touch}#code .code-panel,#code .code-workbench{max-width:100%}@media(min-width:40rem){.topic-page{--topic-read-max: min(72ch, 100%)}.topic__breadcrumbs{font-size:.85rem}.topic__current{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topic__jump a{min-height:auto}}.topic-layout[data-astro-cid-bub7cl3e]{display:grid;gap:var(--space-6)}@media(min-width:960px){.topic-layout[data-astro-cid-bub7cl3e]{grid-template-columns:12rem minmax(0,1fr);align-items:start}}.topic__toc[data-astro-cid-bub7cl3e]{display:none;position:sticky;top:var(--space-4);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--font-size-sm)}@media(min-width:960px){.topic__toc[data-astro-cid-bub7cl3e]{display:block}}.topic__toc-title[data-astro-cid-bub7cl3e]{margin:0 0 var(--space-2);font-weight:600;color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.topic__toc[data-astro-cid-bub7cl3e] ul[data-astro-cid-bub7cl3e]{margin:0;padding:0;list-style:none}.topic__toc[data-astro-cid-bub7cl3e] li[data-astro-cid-bub7cl3e]+li[data-astro-cid-bub7cl3e]{margin-top:var(--space-2)}.topic__toc[data-astro-cid-bub7cl3e] a[data-astro-cid-bub7cl3e]{color:var(--color-accent);text-decoration:none}.topic__toc[data-astro-cid-bub7cl3e] a[data-astro-cid-bub7cl3e]:hover{color:var(--color-accent-hover)}.topic[data-astro-cid-bub7cl3e]{color:var(--color-text);margin-inline:auto;position:relative}#lab[data-astro-cid-bub7cl3e]{overflow-x:clip}.topic__title[data-astro-cid-bub7cl3e]{margin:0 0 var(--space-4)}.topic[data-astro-cid-bub7cl3e] nav[data-astro-cid-bub7cl3e] a[data-astro-cid-bub7cl3e]{color:var(--color-accent)}.topic[data-astro-cid-bub7cl3e] nav[data-astro-cid-bub7cl3e] a[data-astro-cid-bub7cl3e]:hover{color:var(--color-accent-hover)}.topic[data-astro-cid-bub7cl3e] nav[data-astro-cid-bub7cl3e] a[data-astro-cid-bub7cl3e]:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:2px}.topic[data-astro-cid-bub7cl3e] section[data-astro-cid-bub7cl3e]{margin-block:var(--space-6)}.topic[data-astro-cid-bub7cl3e] section[data-astro-cid-bub7cl3e]:focus{outline:none}.topic__footer[data-astro-cid-bub7cl3e]{margin-block-start:var(--space-6);color:var(--color-muted)}.topic__footer[data-astro-cid-bub7cl3e] a[data-astro-cid-bub7cl3e]{color:var(--color-accent)}.topic__footer[data-astro-cid-bub7cl3e] a[data-astro-cid-bub7cl3e]:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:2px}.topic__breadcrumbs[data-astro-cid-bub7cl3e] a[data-astro-cid-bub7cl3e]{color:var(--color-accent);text-decoration:none;transition:color .2s ease}.topic__breadcrumbs[data-astro-cid-bub7cl3e] a[data-astro-cid-bub7cl3e]:hover{color:var(--color-accent-hover);text-decoration:underline}.topic__separator[data-astro-cid-bub7cl3e]{color:var(--color-muted);opacity:.6;font-size:.75rem}.topic__current[data-astro-cid-bub7cl3e]{font-weight:500;color:var(--color-muted)}.callout[data-astro-cid-pyumqe5w]{margin:var(--space-6) 0;padding:var(--space-4);padding-left:calc(var(--space-4) + .25rem);border-left:4px solid var(--callout-accent);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text)}.callout__label[data-astro-cid-pyumqe5w]{margin:0 0 var(--space-2);font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--callout-accent)}.callout__title[data-astro-cid-pyumqe5w]{margin:0 0 var(--space-2);font-size:1rem}.callout__body[data-astro-cid-pyumqe5w] p:first-child{margin-top:0}.callout__body[data-astro-cid-pyumqe5w] p:last-child{margin-bottom:0}.code-panel{margin-block:var(--space-4);width:100%;max-width:100%;min-width:0}.code-panel__tabs{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.code-panel__tab{min-height:44px;padding:.5rem 1rem;border:1px solid color-mix(in srgb,var(--color-muted) 35%,transparent);border-radius:var(--radius-md);background:transparent;color:var(--color-text);cursor:pointer;font:inherit;transition:border-color .15s ease,background .15s ease}.code-panel__tab:hover{border-color:var(--color-accent)}.code-panel__tab[aria-selected=true]{background:color-mix(in srgb,var(--color-accent) 18%,transparent);border-color:var(--color-accent);color:var(--color-accent-hover);font-weight:600}.code-panel__tab:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.code-panel__panel[hidden]{display:none}.code-panel__placeholder{margin:0;color:var(--color-muted)}.code-panel__github{padding:var(--space-3);border:1px solid color-mix(in srgb,var(--color-muted) 35%,transparent);border-radius:var(--radius-md);background:var(--color-surface)}.code-panel__github p{margin:0 0 var(--space-3);color:var(--color-muted);line-height:1.5}.code-panel__github ul{margin:0;padding-left:1.25rem}.code-panel__github a{color:var(--color-accent)}.code-panel__github a:hover{color:var(--color-accent-hover)}.code-workbench{--workbench-border: color-mix(in srgb, var(--color-muted) 35%, transparent);--workbench-terminal-bg: color-mix(in srgb, var(--color-surface) 88%, black);display:flex;flex-direction:column;gap:var(--space-4)}.code-workbench--lab{background:var(--color-surface);border:1px solid var(--workbench-border);border-radius:var(--radius-md);padding:var(--space-4);max-width:100%}.code-workbench__header{display:flex;flex-direction:column;gap:var(--space-3)}.code-workbench__header-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.code-workbench__header-row p{margin:0;color:var(--color-muted);font-size:.95rem;line-height:1.5}.code-workbench__github-link{color:var(--color-accent);font-size:.9rem;text-decoration:none;overflow-wrap:anywhere}.code-workbench__github-link:hover{color:var(--color-accent-hover);text-decoration:underline}.code-workbench__notice{margin:0;padding:var(--space-3) var(--space-4);padding-left:calc(var(--space-4) + .25rem);border-left:4px solid var(--color-accent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-accent) 8%,var(--color-surface));color:var(--color-text);font-size:.9rem;line-height:1.5}.code-workbench__notice--warning{border-left-color:var(--color-warning);background:color-mix(in srgb,var(--color-warning) 10%,var(--color-surface))}.code-workbench__stack{display:flex;flex-direction:column;gap:var(--space-4)}.code-workbench__pane{display:flex;flex-direction:column;min-width:0}.code-workbench__pane-label{margin:0 0 var(--space-2);font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted)}.code-workbench__pane--source .code-workbench__pane-body{min-height:16rem}.code-workbench__pane--output .code-workbench__pane-body{min-height:10rem}.code-workbench__pane-body{flex:1;display:flex;flex-direction:column;min-height:0}.code-workbench__editor{flex:1;display:flex;flex-direction:column;min-height:16rem;min-width:0}.code-workbench__editor .cm-editor{flex:1;height:100%!important;min-height:16rem;max-height:min(28rem,55vh);background-color:var(--color-surface)!important;border:1px solid var(--workbench-border);border-radius:var(--radius-md);overflow:hidden}.code-workbench__editor .cm-scroller{background-color:var(--color-surface)}.code-workbench__editor .cm-content{background-color:transparent}.code-workbench__editor .cm-gutters{background-color:color-mix(in srgb,var(--color-surface) 82%,black);border-right:1px solid var(--workbench-border)}.code-workbench__terminal{flex:1;margin:0;padding:var(--space-4);border:1px solid var(--workbench-border);border-radius:var(--radius-md);background:var(--workbench-terminal-bg);color:var(--color-text);font-family:var(--font-mono);font-size:.85rem;line-height:1.5;white-space:pre-wrap;word-break:break-word;min-height:10rem;max-height:min(18rem,35vh);overflow:auto}.code-workbench__terminal--error{color:var(--color-error);border-color:color-mix(in srgb,var(--color-error) 40%,transparent)}.code-workbench__terminal--placeholder{color:var(--color-muted)}.code-workbench__runbar-wrap{margin:0;padding:0;border:none}.code-workbench__runbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}.code-workbench__btn{padding:.5rem 1rem;border:none;border-radius:var(--radius-md);font:inherit;font-weight:600;cursor:pointer}.code-workbench__btn--primary{background:var(--color-accent);color:var(--color-bg)}.code-workbench__btn--primary:hover:not(:disabled){background:var(--color-accent-hover)}.code-workbench__btn--secondary{background:transparent;color:var(--color-text);border:1px solid var(--workbench-border)}.code-workbench__btn--secondary:hover:not(:disabled){border-color:var(--color-muted)}.code-workbench__btn:disabled{opacity:.6;cursor:not-allowed}.code-workbench__status{margin:0;color:var(--color-muted);font-size:.9rem}.code-workbench__status--error{color:var(--color-error)}@media(max-width:39.99rem){.code-workbench--lab{padding:var(--space-3)}.code-workbench__header-row{flex-direction:column;align-items:flex-start}.code-workbench__pane--source .code-workbench__pane-body,.code-workbench__editor,.code-workbench__editor .cm-editor{min-height:12rem;max-height:min(22rem,50vh)}.code-workbench__terminal{min-height:8rem;max-height:min(14rem,30vh)}.code-workbench__runbar{flex-direction:column;align-items:stretch}.code-workbench__btn{width:100%;min-height:44px}}
