@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;1,6..72,400;1,6..72,500&family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;1,400&display=swap";:root{--paper:#f4f7f4;--paper-2:#e9efea;--paper-raised:#fff;--ink:#14201b;--ink-2:#4c5a54;--ink-3:#7e8b84;--ink-4:#a9b4ae;--rule:#dde6e0;--rule-strong:#c9d5cd;--accent:#0e7c66;--accent-hover:#0a5f4e;--accent-soft:#d8eae3;--accent-line:#bbd9cd;--accent-fill:var(--accent-soft);--rust:var(--accent);--rust-strong:var(--accent-hover);--rust-soft:var(--accent-soft);--rust-line:var(--accent-line);--wiki:#3e63a6;--wiki-soft:#dee6f3;--wiki-line:#c2d1e9;--pine:#0f6e58;--success:#2f7d52;--success-soft:#d8ebe0;--warning:#b7791f;--warning-soft:#f1e6c9;--danger:#c0392b;--danger-soft:#f1dad5;--info:var(--wiki);--info-soft:var(--wiki-soft);--selection-bg:var(--accent-soft);--bg-page:var(--paper);--bg-sunken:var(--paper-2);--surface-card:var(--paper-raised);--surface-code:#0f201b;--text-body:var(--ink);--text-soft:var(--ink-2);--text-muted:var(--ink-3);--text-faint:var(--ink-4);--text-invert:#f4f7f4;--text-link:var(--accent);--text-link-hover:var(--accent-hover);--border:var(--rule);--border-strong:var(--rule-strong);--focus-ring:var(--accent)}[data-theme=dark]{--paper:#0a120f;--paper-2:#16211c;--paper-raised:#111a16;--ink:#ecf2ee;--ink-2:#a3b0aa;--ink-3:#6f7c76;--ink-4:#57635d;--rule:#1f2a25;--rule-strong:#2c3a33;--accent:#34c79e;--accent-hover:#50d9b3;--accent-soft:#123027;--accent-line:#1f4638;--wiki:#86a9e2;--wiki-soft:#1a2740;--wiki-line:#30456b;--pine:#3fbf9e;--success:#4fb07c;--success-soft:#133020;--warning:#d6a34a;--warning-soft:#33280f;--danger:#e4796b;--danger-soft:#331a16;--surface-code:#060b09}:root{--font-serif:"Newsreader", Georgia, "Times New Roman", serif;--font-sans:"Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "SFMono-Regular", ui-monospace, Menlo, monospace;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-base:.9375rem;--fs-md:1rem;--fs-lg:1.125rem;--fs-xl:1.375rem;--fs-2xl:1.75rem;--fs-3xl:2.25rem;--fs-4xl:3rem;--fs-5xl:4rem;--lh-tight:1.15;--lh-snug:1.3;--lh-normal:1.5;--lh-relaxed:1.7;--ls-tight:-.02em;--ls-normal:0;--ls-wide:.02em;--ls-label:.08em;--text-display:var(--fw-semibold) var(--fs-5xl)/var(--lh-tight) var(--font-sans);--text-h1:var(--fw-semibold) var(--fs-4xl)/var(--lh-tight) var(--font-sans);--text-h2:var(--fw-semibold) var(--fs-3xl)/var(--lh-snug) var(--font-sans);--text-h3:var(--fw-semibold) var(--fs-2xl)/var(--lh-snug) var(--font-sans);--text-prose:var(--fw-regular) var(--fs-lg)/var(--lh-relaxed) var(--font-serif);--text-ui:var(--fw-regular) var(--fs-base)/var(--lh-normal) var(--font-sans);--text-code:var(--fw-regular) var(--fs-sm)/var(--lh-normal) var(--font-mono);--text-label:var(--fw-medium) var(--fs-xs)/1 var(--font-mono);--sp-0:0;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--sp-8:4rem;--sp-9:6rem;--measure:68ch;--content-max:1200px;--sidebar-w:260px;--toc-w:220px;--radius-sm:3px;--radius-md:5px;--radius-lg:8px;--radius-xl:12px;--radius-pill:999px;--border-w:1px;--border-w-strong:1.5px;--shadow-xs:0 1px 2px #2620160f;--shadow-sm:0 1px 2px #2620160d, 0 2px 6px #2620160f;--shadow-md:0 2px 4px #2620160f, 0 6px 16px #26201614;--shadow-lg:0 8px 24px #2620161a, 0 2px 6px #2620160f;--shadow-focus:0 0 0 3px #c0492a47;--ease:cubic-bezier(.2, 0, 0, 1);--dur-fast:.12s;--dur:.18s;--dur-slow:.26s}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg-page);color:var(--text-body);font:var(--text-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}::selection{background:var(--selection-bg)}a{color:var(--text-link);text-underline-offset:2px;transition:color var(--dur-fast) var(--ease);text-decoration:none}a:hover{color:var(--text-link-hover);text-decoration:underline}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);color:var(--text-body);font-weight:var(--fw-semibold);letter-spacing:var(--ls-tight);line-height:var(--lh-snug);margin:0 0 var(--sp-4)}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.92em}hr{border:0;border-top:var(--border-w) solid var(--border);margin:var(--sp-6) 0}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.rootstack-prose{font:var(--text-prose);color:var(--text-body);max-width:var(--measure)}.rootstack-prose h2{font:var(--text-h3);margin:var(--sp-7) 0 var(--sp-3)}.rootstack-prose h3{font:var(--text-h3);font-size:var(--fs-xl);margin:var(--sp-6) 0 var(--sp-2)}.rootstack-prose a{text-decoration:underline;text-decoration-color:var(--rust-line)}.rootstack-prose blockquote{margin:var(--sp-5) 0;padding:var(--sp-1) 0 var(--sp-1) var(--sp-5);border-left:3px solid var(--rust);color:var(--text-soft);font-style:italic}.rootstack-prose code{background:var(--bg-sunken);border:var(--border-w) solid var(--border);border-radius:var(--radius-sm);padding:.1em .35em;font-size:.85em}.rootstack-prose ul,.rootstack-prose ol{padding-left:var(--sp-5);margin:0 0 var(--sp-5)}.rootstack-prose li{margin-bottom:var(--sp-2)}.rootstack-label{font:var(--text-label);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-muted)}.bk-badge{font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:var(--fw-medium);letter-spacing:var(--ls-wide);border-radius:var(--radius-pill);border:var(--border-w) solid transparent;white-space:nowrap;align-items:center;gap:5px;padding:3px 8px;line-height:1;display:inline-flex}.bk-badge__dot{background:currentColor;border-radius:50%;width:6px;height:6px}.bk-badge--neutral{background:var(--paper-2);color:var(--ink-2);border-color:var(--rule)}.bk-badge--accent{background:var(--rust-soft);color:var(--rust-strong);border-color:var(--rust-line)}.bk-badge--info{background:var(--wiki-soft);color:#1f5570;border-color:var(--wiki-line)}.bk-badge--success{background:var(--success-soft);color:#226340;border-color:#bfdbc7}.bk-badge--warning{background:var(--warning-soft);color:#8a5a12;border-color:#e6d19a}.bk-badge--danger{background:var(--danger-soft);color:#98291e;border-color:#e6b7ae}.bk-badge--solid.bk-badge--accent{background:var(--rust);color:#fff;border-color:#0000}.bk-badge--solid.bk-badge--success{background:var(--success);color:#fff;border-color:#0000}.bk-badge--solid.bk-badge--danger{background:var(--danger);color:#fff;border-color:#0000}.bk-badge--solid.bk-badge--info{background:var(--wiki);color:#fff;border-color:#0000}.bk-callout{--_accent:var(--wiki);--_soft:var(--wiki-soft);--_line:var(--wiki-line);gap:var(--sp-3);padding:var(--sp-4) var(--sp-4) var(--sp-4) var(--sp-4);border:var(--border-w) solid var(--_line);border-left:3px solid var(--_accent);border-radius:var(--radius-md);background:var(--_soft);font-family:var(--font-sans);margin:var(--sp-5) 0;display:flex}.bk-callout__icon{color:var(--_accent);flex:none;margin-top:1px}.bk-callout__body{min-width:0}.bk-callout__title{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--ink);letter-spacing:var(--ls-wide);margin:0 0 var(--sp-1)}.bk-callout__content{font-size:var(--fs-base);color:var(--ink-2);line-height:var(--lh-normal)}.bk-callout__content p{margin:0 0 var(--sp-2)}.bk-callout__content p:last-child{margin:0}.bk-callout__content a{color:var(--_accent);text-underline-offset:2px;text-decoration:underline}.bk-callout--note{--_accent:var(--wiki);--_soft:var(--wiki-soft);--_line:var(--wiki-line)}.bk-callout--tip{--_accent:var(--success);--_soft:var(--success-soft);--_line:#bfdbc7}.bk-callout--warning{--_accent:var(--warning);--_soft:var(--warning-soft);--_line:#e6d19a}.bk-callout--danger{--_accent:var(--danger);--_soft:var(--danger-soft);--_line:#e6b7ae}.bk-code{border-radius:var(--radius-lg);border:var(--border-w) solid #35302733;background:var(--surface-code);font-family:var(--font-mono);margin:var(--sp-5) 0;box-shadow:var(--shadow-sm);overflow:hidden}.bk-code__head{padding:var(--sp-2) var(--sp-3) var(--sp-2) var(--sp-4);background:#201c16;border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;display:flex}.bk-code__name{align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:#c9c1b2;letter-spacing:var(--ls-wide);display:flex}.bk-code__lang{text-transform:uppercase;letter-spacing:var(--ls-label);color:#8b8474;border-radius:var(--radius-sm);border:1px solid #ffffff1a;padding:2px 6px;font-size:10px}.bk-code__copy{color:#9a927f;cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-xs);border-radius:var(--radius-sm);transition:color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);background:0 0;border:none;align-items:center;gap:6px;padding:4px 6px;display:inline-flex}.bk-code__copy:hover{color:#f0ece3;background:#ffffff10}.bk-code__copy--done{color:#7fb891}.bk-code__scroll{overflow-x:auto}.bk-code pre{padding:var(--sp-4);font-size:var(--fs-sm);color:#e4ded0;tab-size:2;margin:0;line-height:1.6}.bk-code pre code{font-family:var(--font-mono);color:inherit;background:0 0;border:none;padding:0}.bk-tag{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-2);background:var(--paper-2);border:var(--border-w) solid var(--rule);border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);align-items:center;gap:4px;padding:2px 7px;line-height:1.5;text-decoration:none;display:inline-flex}a.bk-tag:hover,button.bk-tag:hover{background:var(--rust-soft);color:var(--rust-strong);border-color:var(--rust-line);text-decoration:none}.bk-tag__hash{color:var(--ink-4)}a.bk-tag:hover .bk-tag__hash,button.bk-tag:hover .bk-tag__hash{color:var(--rust)}.bk-tag--solid{background:var(--rust-soft);color:var(--rust-strong);border-color:var(--rust-line)}.bk-tag--solid .bk-tag__hash{color:var(--rust)}button.bk-tag{cursor:pointer;font:inherit;font-family:var(--font-mono);font-size:var(--fs-xs)}.bk-tag__x{opacity:.6;margin-left:1px;display:inline-flex}.bk-tag__x:hover{opacity:1}.bk-wikilink{color:var(--wiki);font-weight:var(--fw-medium);border-bottom:1.5px dotted var(--wiki-line);transition:color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);cursor:pointer;border-radius:2px;padding-bottom:.5px;text-decoration:none}.bk-wikilink:hover{color:#1f5570;background:var(--wiki-soft);border-bottom-color:var(--wiki);text-decoration:none}.bk-wikilink__bracket{color:var(--wiki-line);font-family:var(--font-mono)}.bk-wikilink:hover .bk-wikilink__bracket{color:var(--wiki)}.bk-wikilink__ext{vertical-align:-1px;opacity:.7;margin-left:2px}.bk-wikilink--new{color:var(--rust);border-bottom-color:var(--rust-line)}.bk-wikilink--new:hover{color:var(--rust-strong);background:var(--rust-soft);border-bottom-color:var(--rust)}.bk-wikilink--new .bk-wikilink__bracket{color:var(--rust-line)}.bk-avatar{background:var(--rust-soft);color:var(--rust-strong);font-family:var(--font-mono);font-weight:var(--fw-medium);border:var(--border-w) solid var(--rule);user-select:none;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.bk-avatar img{object-fit:cover;width:100%;height:100%;display:block}.bk-avatar--xs{width:22px;height:22px;font-size:9px}.bk-avatar--sm{width:28px;height:28px;font-size:11px}.bk-avatar--md{width:36px;height:36px;font-size:13px}.bk-avatar--lg{width:48px;height:48px;font-size:16px}.bk-avatar--c1{background:var(--rust-soft);color:var(--rust-strong)}.bk-avatar--c2{background:var(--wiki-soft);color:#1f5570}.bk-avatar--c3{background:var(--success-soft);color:#226340}.bk-avatar--c4{background:var(--warning-soft);color:#8a5a12}.bk-avatar-row{display:inline-flex}.bk-avatar-row .bk-avatar{box-shadow:0 0 0 2px var(--surface-card);margin-left:-8px}.bk-avatar-row .bk-avatar:first-child{margin-left:0}.bk-card{background:var(--surface-card);border:var(--border-w) solid var(--rule);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);color:inherit;transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);text-decoration:none;display:block}.bk-card--pad{padding:var(--sp-5)}.bk-card--hover{cursor:pointer}.bk-card--hover:hover{border-color:var(--rule-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.bk-card--hover:hover .bk-card__title{color:var(--rust)}.bk-card--flat{box-shadow:none}.bk-card--sunken{background:var(--paper-2);box-shadow:none}.bk-card__title{font-family:var(--font-sans);font-size:var(--fs-xl);font-weight:var(--fw-semibold);color:var(--ink);letter-spacing:var(--ls-tight);margin:0 0 var(--sp-2);line-height:var(--lh-snug);transition:color var(--dur-fast) var(--ease)}.bk-card__excerpt{font-family:var(--font-serif);font-size:var(--fs-md);color:var(--ink-2);line-height:var(--lh-normal);margin:0}.bk-card__meta{align-items:center;gap:var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-3);flex-wrap:wrap;display:flex}.bk-card__accent{border-top:3px solid var(--rust);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.bk-dialog__overlay{backdrop-filter:blur(2px);padding:var(--sp-5);z-index:1000;animation:bk-dialog-fade var(--dur) var(--ease);background:#211e1a6b;place-items:center;display:grid;position:fixed;inset:0}.bk-dialog{background:var(--surface-card);border:var(--border-w) solid var(--rule);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:480px;max-height:90vh;font-family:var(--font-sans);animation:bk-dialog-pop var(--dur-slow) var(--ease);overflow:auto}.bk-dialog__head{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-5) var(--sp-5) var(--sp-3);display:flex}.bk-dialog__title{font-size:var(--fs-xl);font-weight:var(--fw-semibold);color:var(--ink);letter-spacing:var(--ls-tight);margin:0}.bk-dialog__desc{font-size:var(--fs-base);color:var(--ink-3);margin:4px 0 0}.bk-dialog__close{cursor:pointer;color:var(--ink-3);border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);background:0 0;border:none;flex:none;padding:4px;display:inline-flex}.bk-dialog__close:hover{background:var(--paper-2);color:var(--ink)}.bk-dialog__body{padding:0 var(--sp-5) var(--sp-4);font-size:var(--fs-base);color:var(--ink-2);line-height:var(--lh-normal)}.bk-dialog__foot{justify-content:flex-end;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5) var(--sp-5);display:flex}@keyframes bk-dialog-fade{0%{opacity:0}}@keyframes bk-dialog-pop{0%{opacity:0;transform:translateY(8px)scale(.98)}}@media (prefers-reduced-motion:reduce){.bk-dialog,.bk-dialog__overlay{animation:none}}.bk-toast{align-items:flex-start;gap:var(--sp-3);background:var(--surface-code);color:#ede8dd;border-radius:var(--radius-lg);padding:var(--sp-3) var(--sp-4);box-shadow:var(--shadow-lg);font-family:var(--font-sans);font-size:var(--fs-base);min-width:260px;max-width:400px;animation:bk-toast-in var(--dur-slow) var(--ease);border:1px solid #ffffff14;display:flex}.bk-toast__icon{flex:none;margin-top:1px}.bk-toast--success .bk-toast__icon{color:#7fce9c}.bk-toast--danger .bk-toast__icon{color:#f0998c}.bk-toast--info .bk-toast__icon{color:#86c1e0}.bk-toast--neutral .bk-toast__icon{color:#c9c1b2}.bk-toast__body{flex:1;min-width:0}.bk-toast__title{font-weight:var(--fw-semibold)}.bk-toast__msg{color:#b9b2a4;font-size:var(--fs-sm);margin-top:2px}.bk-toast__close{color:#8a8474;cursor:pointer;border-radius:var(--radius-sm);transition:color var(--dur-fast) var(--ease);background:0 0;border:none;flex:none;padding:2px;display:inline-flex}.bk-toast__close:hover{color:#ede8dd}.bk-toast__stack{bottom:var(--sp-5);right:var(--sp-5);z-index:1100;gap:var(--sp-3);flex-direction:column;display:flex;position:fixed}@keyframes bk-toast-in{0%{opacity:0;transform:translateY(10px)}}@media (prefers-reduced-motion:reduce){.bk-toast{animation:none}}.bk-tooltip{display:inline-flex;position:relative}.bk-tooltip__bubble{z-index:1200;background:var(--surface-code);color:#ede8dd;font-family:var(--font-sans);font-size:var(--fs-xs);border-radius:var(--radius-md);box-shadow:var(--shadow-md);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);padding:6px 9px;line-height:1.4;position:absolute;transform:translateY(2px)}.bk-tooltip:hover .bk-tooltip__bubble,.bk-tooltip:focus-within .bk-tooltip__bubble{opacity:1;transform:translateY(0)}.bk-tooltip__bubble:after{content:"";background:var(--surface-code);width:7px;height:7px;position:absolute;transform:rotate(45deg)}.bk-tooltip--top .bk-tooltip__bubble{bottom:calc(100% + 7px);left:50%;transform:translate(-50%,2px)}.bk-tooltip--top:hover .bk-tooltip__bubble{transform:translate(-50%)}.bk-tooltip--top .bk-tooltip__bubble:after{margin-left:-3px;bottom:-3px;left:50%}.bk-tooltip--bottom .bk-tooltip__bubble{top:calc(100% + 7px);left:50%;transform:translate(-50%,-2px)}.bk-tooltip--bottom:hover .bk-tooltip__bubble{transform:translate(-50%)}.bk-tooltip--bottom .bk-tooltip__bubble:after{margin-left:-3px;top:-3px;left:50%}.bk-btn{--_bg:var(--rust);--_fg:#fff;--_bd:transparent;justify-content:center;align-items:center;gap:var(--sp-2);font-family:var(--font-sans);font-weight:var(--fw-medium);border:var(--border-w) solid var(--_bd);border-radius:var(--radius-md);background:var(--_bg);color:var(--_fg);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);line-height:1;text-decoration:none;display:inline-flex}.bk-btn:hover{text-decoration:none}.bk-btn:active{transform:translateY(.5px)scale(.995)}.bk-btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.bk-btn[disabled],.bk-btn[aria-disabled=true]{cursor:not-allowed;opacity:.5;transform:none}.bk-btn--sm{font-size:var(--fs-xs);padding:0 var(--sp-3);height:30px}.bk-btn--md{font-size:var(--fs-base);padding:0 var(--sp-4);height:38px}.bk-btn--lg{font-size:var(--fs-md);padding:0 var(--sp-5);height:46px}.bk-btn--full{width:100%}.bk-btn--primary{--_bg:var(--rust);--_fg:#fff}.bk-btn--primary:hover:not([disabled]){--_bg:var(--rust-strong)}.bk-btn--secondary{--_bg:var(--surface-card);--_fg:var(--ink);--_bd:var(--rule-strong);box-shadow:var(--shadow-xs)}.bk-btn--secondary:hover:not([disabled]){--_bg:var(--paper-2);--_bd:var(--ink-3)}.bk-btn--ghost{--_bg:transparent;--_fg:var(--ink-2)}.bk-btn--ghost:hover:not([disabled]){--_bg:var(--paper-2);--_fg:var(--ink)}.bk-btn--danger{--_bg:var(--danger);--_fg:#fff}.bk-btn--danger:hover:not([disabled]){--_bg:#a32b20}.bk-btn__spin{border:2px solid;border-right-color:#0000;border-radius:50%;width:1em;height:1em;animation:.6s linear infinite bk-btn-spin}@keyframes bk-btn-spin{to{transform:rotate(360deg)}}.bk-btn__ico{display:inline-flex}.bk-btn__ico svg{width:1.05em;height:1.05em;display:block}.bk-check{align-items:flex-start;gap:var(--sp-3);cursor:pointer;font-family:var(--font-sans);display:inline-flex}.bk-check--disabled{cursor:not-allowed;opacity:.5}.bk-check__box{border:var(--border-w-strong) solid var(--rule-strong);border-radius:var(--radius-sm);background:var(--surface-card);width:18px;height:18px;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);flex:none;place-items:center;margin-top:1px;display:grid}.bk-check__box svg{color:#fff;opacity:0;width:12px;height:12px;transition:opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);transform:scale(.6)}.bk-check input{opacity:0;width:0;height:0;position:absolute}.bk-check input:checked+.bk-check__box{background:var(--rust);border-color:var(--rust)}.bk-check input:checked+.bk-check__box svg{opacity:1;transform:scale(1)}.bk-check input:indeterminate+.bk-check__box{background:var(--rust);border-color:var(--rust)}.bk-check input:focus-visible+.bk-check__box{box-shadow:var(--shadow-focus)}.bk-check:hover input:not(:checked):not(:disabled)+.bk-check__box{border-color:var(--ink-3)}.bk-check__text{flex-direction:column;gap:2px;display:flex}.bk-check__label{font-size:var(--fs-base);color:var(--ink);line-height:1.35}.bk-check__desc{font-size:var(--fs-xs);color:var(--ink-3)}.bk-iconbtn{border:var(--border-w) solid transparent;border-radius:var(--radius-md);color:var(--ink-2);cursor:pointer;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);background:0 0;justify-content:center;align-items:center;display:inline-flex}.bk-iconbtn:hover:not([disabled]){background:var(--paper-2);color:var(--ink)}.bk-iconbtn:active:not([disabled]){transform:scale(.94)}.bk-iconbtn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.bk-iconbtn[disabled]{opacity:.45;cursor:not-allowed}.bk-iconbtn--sm{width:30px;height:30px}.bk-iconbtn--md{width:38px;height:38px}.bk-iconbtn--lg{width:46px;height:46px}.bk-iconbtn--solid{background:var(--rust);color:#fff}.bk-iconbtn--solid:hover:not([disabled]){background:var(--rust-strong);color:#fff}.bk-iconbtn--outline{border-color:var(--rule-strong);background:var(--surface-card)}.bk-iconbtn--outline:hover:not([disabled]){border-color:var(--ink-3);background:var(--paper-2)}.bk-field{gap:var(--sp-2);font-family:var(--font-sans);flex-direction:column;display:flex}.bk-field__label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--ink);align-items:center;gap:var(--sp-2);display:flex}.bk-field__req{color:var(--rust)}.bk-field__hint{font-size:var(--fs-xs);color:var(--ink-3)}.bk-field__err{font-size:var(--fs-xs);color:var(--danger)}.bk-input__wrap{align-items:center;display:flex;position:relative}.bk-input{width:100%;font-family:var(--font-sans);font-size:var(--fs-base);color:var(--ink);background:var(--surface-card);border:var(--border-w) solid var(--rule-strong);border-radius:var(--radius-md);padding:0 var(--sp-3);height:38px;transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}.bk-input::placeholder{color:var(--ink-4)}.bk-input:hover:not(:disabled):not(:focus){border-color:var(--ink-3)}.bk-input:focus{border-color:var(--rust);box-shadow:var(--shadow-focus);outline:none}.bk-input:disabled{background:var(--paper-2);color:var(--ink-4);cursor:not-allowed}.bk-input--err{border-color:var(--danger)}.bk-input--err:focus{box-shadow:0 0 0 3px var(--danger-soft)}.bk-input--has-lead{padding-left:34px}.bk-input--has-trail{padding-right:34px}.bk-input--mono{font-family:var(--font-mono);font-size:var(--fs-sm)}.bk-input__lead,.bk-input__trail{color:var(--ink-3);pointer-events:none;display:flex;position:absolute}.bk-input__lead{left:var(--sp-3)}.bk-input__trail{right:var(--sp-3)}.bk-radio{align-items:flex-start;gap:var(--sp-3);cursor:pointer;font-family:var(--font-sans);display:inline-flex}.bk-radio--disabled{cursor:not-allowed;opacity:.5}.bk-radio__dot{border:var(--border-w-strong) solid var(--rule-strong);background:var(--surface-card);width:18px;height:18px;transition:border-color var(--dur-fast) var(--ease);border-radius:50%;flex:none;place-items:center;margin-top:1px;display:grid}.bk-radio__dot:after{content:"";width:8px;height:8px;transition:transform var(--dur-fast) var(--ease);background:#fff;border-radius:50%;transform:scale(0)}.bk-radio input{opacity:0;width:0;height:0;position:absolute}.bk-radio input:checked+.bk-radio__dot{background:var(--rust);border-color:var(--rust)}.bk-radio input:checked+.bk-radio__dot:after{transform:scale(1)}.bk-radio input:focus-visible+.bk-radio__dot{box-shadow:var(--shadow-focus)}.bk-radio:hover input:not(:checked):not(:disabled)+.bk-radio__dot{border-color:var(--ink-3)}.bk-radio__text{flex-direction:column;gap:2px;display:flex}.bk-radio__label{font-size:var(--fs-base);color:var(--ink);line-height:1.35}.bk-radio__desc{font-size:var(--fs-xs);color:var(--ink-3)}.bk-select__wrap{align-items:center;display:flex;position:relative}.bk-select{appearance:none;width:100%;font-family:var(--font-sans);font-size:var(--fs-base);color:var(--ink);background:var(--surface-card);border:var(--border-w) solid var(--rule-strong);border-radius:var(--radius-md);padding:0 34px 0 var(--sp-3);cursor:pointer;height:38px;transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}.bk-select:hover:not(:disabled):not(:focus){border-color:var(--ink-3)}.bk-select:focus{border-color:var(--rust);box-shadow:var(--shadow-focus);outline:none}.bk-select:disabled{background:var(--paper-2);color:var(--ink-4);cursor:not-allowed}.bk-select--err{border-color:var(--danger)}.bk-select__chev{right:var(--sp-3);color:var(--ink-3);pointer-events:none;display:flex;position:absolute}.bk-switch{align-items:center;gap:var(--sp-3);cursor:pointer;font-family:var(--font-sans);display:inline-flex}.bk-switch--disabled{cursor:not-allowed;opacity:.5}.bk-switch__track{border-radius:var(--radius-pill);background:var(--rule-strong);width:38px;height:22px;transition:background var(--dur) var(--ease);flex:none;position:relative}.bk-switch__track:after{content:"";width:18px;height:18px;box-shadow:var(--shadow-xs);transition:transform var(--dur) var(--ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.bk-switch input{opacity:0;width:0;height:0;position:absolute}.bk-switch input:checked+.bk-switch__track{background:var(--rust)}.bk-switch input:checked+.bk-switch__track:after{transform:translate(16px)}.bk-switch input:focus-visible+.bk-switch__track{box-shadow:var(--shadow-focus)}.bk-switch__label{font-size:var(--fs-base);color:var(--ink)}.bk-textarea{width:100%;font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);color:var(--ink);background:var(--surface-card);border:var(--border-w) solid var(--rule-strong);border-radius:var(--radius-md);padding:var(--sp-3);resize:vertical;min-height:88px;transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}.bk-textarea::placeholder{color:var(--ink-4)}.bk-textarea:hover:not(:disabled):not(:focus){border-color:var(--ink-3)}.bk-textarea:focus{border-color:var(--rust);box-shadow:var(--shadow-focus);outline:none}.bk-textarea:disabled{background:var(--paper-2);color:var(--ink-4);cursor:not-allowed}.bk-textarea--err{border-color:var(--danger)}.bk-textarea--err:focus{box-shadow:0 0 0 3px var(--danger-soft)}.bk-textarea--mono{font-family:var(--font-mono);font-size:var(--fs-sm)}.bk-textarea__foot{justify-content:flex-end;display:flex}.bk-textarea__count{font-size:var(--fs-xs);color:var(--ink-3);font-family:var(--font-mono)}.bk-crumbs{align-items:center;gap:var(--sp-1);font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--ink-3);flex-wrap:wrap;display:flex}.bk-crumbs__item{color:var(--ink-3);transition:color var(--dur-fast) var(--ease);align-items:center;gap:5px;text-decoration:none;display:inline-flex}.bk-crumbs__item:hover{color:var(--rust);text-decoration:none}.bk-crumbs__sep{color:var(--ink-4);display:inline-flex}.bk-crumbs__current{color:var(--ink);font-weight:var(--fw-medium)}.bk-toc{font-family:var(--font-sans)}.bk-toc__head{font-family:var(--font-mono);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--ink-3);margin:0 0 var(--sp-3);padding-bottom:var(--sp-2);border-bottom:var(--border-w) solid var(--rule)}.bk-toc__list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.bk-toc__item a{color:var(--ink-3);font-size:var(--fs-sm);padding:5px 0 5px var(--sp-3);border-left:2px solid var(--rule);transition:color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);line-height:1.4;text-decoration:none;display:block}.bk-toc__item a:hover{color:var(--ink);border-left-color:var(--ink-3);text-decoration:none}.bk-toc__item--l3 a{padding-left:var(--sp-5);font-size:var(--fs-xs)}.bk-toc__item--active a{color:var(--rust);border-left-color:var(--rust);font-weight:var(--fw-medium)}.bk-tabs{font-family:var(--font-sans)}.bk-tabs__list{gap:var(--sp-1);border-bottom:var(--border-w) solid var(--rule);display:flex}.bk-tabs__tab{appearance:none;cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--ink-3);padding:var(--sp-3) var(--sp-3);transition:color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;display:inline-flex;position:relative}.bk-tabs__tab:hover:not(:disabled){color:var(--ink)}.bk-tabs__tab[aria-selected=true]{color:var(--rust);border-bottom-color:var(--rust)}.bk-tabs__tab:disabled{color:var(--ink-4);cursor:not-allowed}.bk-tabs__tab:focus-visible{box-shadow:var(--shadow-focus);border-radius:var(--radius-sm);outline:none}.bk-tabs__count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-4);background:var(--paper-2);border-radius:var(--radius-pill);padding:1px 6px}.bk-tabs__tab[aria-selected=true] .bk-tabs__count{color:var(--rust);background:var(--rust-soft)}.bk-tabs__panel{padding-top:var(--sp-4)}html,body{height:100%;margin:0}body{background:var(--bg-page)}.bk-shell{grid-template-columns:var(--sidebar-w) 1fr;background:var(--bg-page);min-height:100%;display:grid}.bk-aside{border-right:1px solid var(--rule);background:var(--paper);flex-direction:column;height:100vh;min-height:100vh;display:flex;position:sticky;top:0}.bk-brandrow{justify-content:space-between;align-items:center;padding:16px 18px 14px;display:flex}.bk-mark{font-family:var(--font-sans);color:var(--ink);letter-spacing:-.03em;align-items:center;gap:5px;font-size:20px;font-weight:700;text-decoration:none;display:flex}.bk-navscroll{flex:1;padding:6px 12px 18px;overflow-y:auto}.bk-navlabel{font:var(--text-label);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--ink-3);margin:0;padding:14px 8px 6px}.bk-navitem{border-radius:var(--radius-md);color:var(--ink-2);font-size:var(--fs-base);transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);background:0 0;align-items:center;gap:10px;padding:7px 8px;text-decoration:none;display:flex}.bk-navitem:hover{background:var(--paper-2)}.bk-navitem.active{color:var(--rust);background:var(--rust-soft);font-weight:500}.bk-main{flex-direction:column;min-width:0;display:flex}.bk-topbar{border-bottom:1px solid var(--rule);background:color-mix(in srgb, var(--paper) 82%, transparent);backdrop-filter:blur(6px);z-index:10;align-items:center;gap:14px;padding:12px 24px;display:flex;position:sticky;top:0}.bk-search{flex:1;max-width:460px}.bk-content{flex:1}.bk-reader{grid-template-columns:1fr minmax(0, 720px) var(--toc-w) 1fr;padding:0 0 100px;display:grid}.bk-reader__main{grid-column:2}.bk-reader__aside{grid-column:3;align-self:start;padding:28px 24px 0;position:sticky;top:70px}.bk-wikilink{color:var(--wiki);border-bottom:1px solid color-mix(in srgb, var(--wiki) 35%, transparent);transition:border-color var(--dur-fast) var(--ease);text-decoration:none}.bk-wikilink:hover{border-bottom-color:var(--wiki)}.rootstack-prose{font-family:var(--font-serif);color:var(--ink-2);font-size:17px;line-height:1.7}.rootstack-prose h2{font-family:var(--font-sans);color:var(--ink);letter-spacing:-.02em;margin:34px 0 10px;font-size:24px}.rootstack-prose h3{font-family:var(--font-sans);color:var(--ink);margin:26px 0 8px;font-size:19px}.rootstack-prose p{margin:0 0 18px}.rootstack-prose blockquote{border-left:3px solid var(--accent);color:var(--ink-2);background:var(--accent-soft);border-radius:0 var(--radius-md) var(--radius-md) 0;margin:20px 0;padding:6px 18px}.rootstack-prose{--astro-code-background:var(--surface-code);--astro-code-foreground:#d7e2dc;--astro-code-token-keyword:#5fd0b0;--astro-code-token-string:#c9b98a;--astro-code-token-string-expression:#c9b98a;--astro-code-token-constant:#e08b7b;--astro-code-token-function:#86a9e2;--astro-code-token-parameter:#c4d0c9;--astro-code-token-punctuation:#9fb0a8;--astro-code-token-comment:#6c7b74;--astro-code-token-link:var(--wiki)}.rootstack-prose pre{font-family:var(--font-mono);border-radius:var(--radius-lg);border:var(--border-w) solid color-mix(in srgb, var(--ink) 20%, transparent);box-shadow:var(--shadow-sm);margin:18px 0;padding:16px 18px;font-size:13.5px;line-height:1.6;overflow-x:auto}.rootstack-prose code{font-family:var(--font-mono);font-size:.9em}.rootstack-prose pre code{color:inherit;background:0 0;border:none;border-radius:0;padding:0}.rootstack-prose :not(pre)>code{background:var(--paper-2);color:var(--rust);border-radius:4px;padding:1px 5px}@media (width<=1024px){.bk-reader{grid-template-columns:minmax(0,720px);justify-content:center;padding:0 32px 80px}.bk-reader__main,.bk-reader__aside{grid-column:1}.bk-reader__aside{padding:8px 0 0;position:static;top:auto}}@media (width<=768px){.bk-shell{grid-template-columns:1fr}.bk-aside{border-right:none;border-bottom:1px solid var(--rule);height:auto;min-height:0;position:static}.bk-brandrow{padding:12px 16px}.bk-navscroll{padding:0 8px 10px;overflow:visible}.bk-nav-primary{flex-direction:row;gap:4px;display:flex;overflow-x:auto}.bk-nav-primary .bk-navitem{white-space:nowrap}.bk-nav-secondary{display:none}.bk-topbar{padding:10px 16px}.bk-reader{padding:0 20px 72px}}
