@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Geist-Regular.woff2)format("woff2")}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/Geist-Medium.woff2)format("woff2")}@font-face{font-family:Geist;font-style:normal;font-weight:600 700;font-display:swap;src:url(/fonts/Geist-SemiBold.woff2)format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/GeistMono-Regular.woff2)format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/GeistMono-Medium.woff2)format("woff2")}@font-face{font-family:Geist Pixel Square;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/GeistPixel-Square.woff2)format("woff2")}:root{--sl-font:Geist, Inter, ui-sans-serif, system-ui, sans-serif;--sl-font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sl-content-width:54rem;--sl-sidebar-width:17.5rem;--sl-text-base:1rem;--sl-line-height:1.78;--sl-color-black:#000;--sl-color-white:#ededef;--sl-color-gray-1:#d4d4d8;--sl-color-gray-2:#a1a1aa;--sl-color-gray-3:#71717a;--sl-color-gray-4:#52525b;--sl-color-gray-5:#27272a;--sl-color-gray-6:#18181b;--sl-color-gray-7:#111113;--sl-color-accent-low:#123d23;--sl-color-accent:#22c55e;--sl-color-accent-high:#86efac;--sl-color-text:var(--sl-color-gray-2);--sl-color-text-accent:var(--sl-color-accent-high);--sl-color-text-invert:#062b14;--sl-color-bg:var(--sl-color-black);--sl-color-bg-nav:#0a0a0a;--sl-color-bg-sidebar:#0a0a0a;--sl-color-bg-inline-code:#18181b;--sl-color-bg-accent:var(--sl-color-accent-high);--sl-color-hairline-light:#27272a;--sl-color-hairline:#18181b;--sl-color-hairline-shade:#000;--sl-shadow-sm:none;--sl-shadow-md:none}:root[data-theme=light]{--sl-color-black:#fff;--sl-color-white:#18181b;--sl-color-gray-1:#27272a;--sl-color-gray-2:#52525b;--sl-color-gray-3:#71717a;--sl-color-gray-4:#a1a1aa;--sl-color-gray-5:#d4d4d8;--sl-color-gray-6:#e4e4e7;--sl-color-gray-7:#fafafa;--sl-color-accent-low:#dcfce7;--sl-color-accent:#16a34a;--sl-color-accent-high:#166534;--sl-color-text:var(--sl-color-gray-2);--sl-color-text-accent:var(--sl-color-accent-high);--sl-color-text-invert:#fff;--sl-color-bg:#fff;--sl-color-bg-nav:#fafafa;--sl-color-bg-sidebar:#fafafa;--sl-color-bg-inline-code:#f4f4f5;--sl-color-bg-accent:var(--sl-color-accent);--sl-color-hairline-light:#e4e4e7;--sl-color-hairline:#f4f4f5;--sl-color-hairline-shade:#e4e4e7}html{background:var(--sl-color-bg)}body{font-size:var(--sl-text-base);background:0 0}body:before{content:"";pointer-events:none;z-index:-1;background-image:linear-gradient(#ffffff1c 1px,#0000 1px),linear-gradient(90deg,#ffffff1c 1px,#0000 1px);background-size:2rem 2rem;position:fixed;inset:0;mask-image:linear-gradient(#000,#0000 42rem)}:root[data-theme=light] body:before{background-image:linear-gradient(#0000000d 1px,#0000 1px),linear-gradient(90deg,#0000000d 1px,#0000 1px)}.header{backdrop-filter:blur(14px);background-color:color-mix(in srgb, var(--sl-color-bg-nav) 35%, transparent)!important}.page>header.header{border-bottom:1px solid var(--sl-color-hairline-light)}.sidebar-pane{border-inline-end-color:var(--sl-color-hairline-light)!important}@media (width>=50rem){.sidebar-pane{backdrop-filter:blur(14px);background-color:color-mix(in srgb, var(--sl-color-bg-sidebar) 20%, transparent)!important}}.sl-markdown-content :is(h2,h3):not(:where(.not-content *)){font-family:var(--sl-font);color:var(--sl-color-white);font-weight:600}.sl-markdown-content h2:not(:where(.not-content *)){letter-spacing:-.04em;font-size:1.6rem;line-height:1.2}.sl-markdown-content h3:not(:where(.not-content *)){letter-spacing:-.03em;font-size:1.2rem}.sl-markdown-content :is(h2,h3):not(:where(.not-content *)):before{font-family:var(--sl-font-mono);letter-spacing:-.05em;font-size:.85em;font-weight:400}.sl-markdown-content h2:not(:where(.not-content *)):before{color:var(--sl-color-accent);content:"## "}.sl-markdown-content h3:not(:where(.not-content *)):before{color:var(--sl-color-gray-4);content:"### "}.sl-markdown-content ul:not(:where(.not-content *))>li::marker{color:var(--sl-color-accent);content:"–  ";font-family:var(--sl-font-mono)}.sl-markdown-content .starlight-aside{--aside-accent:var(--sl-color-accent);background:color-mix(in srgb, var(--aside-accent) 7%, transparent);border:0;border-inline-start:2px solid var(--aside-accent);border-radius:0 .4rem .4rem 0;padding:.9rem 1.1rem}.sl-markdown-content .starlight-aside--caution{--aside-accent:#f59e0b}.sl-markdown-content .starlight-aside--danger{--aside-accent:#ef4444}.sl-markdown-content .starlight-aside__title{color:var(--aside-accent);font-family:var(--sl-font-mono);text-transform:lowercase;gap:0;font-size:.75rem;font-weight:500}.sl-markdown-content .starlight-aside__title:before{content:"// ";white-space:pre}.sl-markdown-content .starlight-aside__icon{display:none}.sl-markdown-content table:not(:where(.not-content *)) th{color:var(--sl-color-gray-3);font-family:var(--sl-font-mono);letter-spacing:.05em;text-transform:uppercase;font-size:.75rem;font-weight:500}.sl-markdown-content p,.sl-markdown-content li{color:var(--sl-color-gray-1)}.sl-markdown-content{font-family:var(--sl-font)}.sl-markdown-content a:not(.portal-module-card){text-decoration-color:color-mix(in srgb, var(--sl-color-accent) 48%, transparent);text-underline-offset:.18em}.sl-markdown-content :not(pre)>code{border:1px solid var(--sl-color-hairline-light);font-family:var(--sl-font-mono);border-radius:.3rem;padding:.1rem .35rem;font-size:.85em}html:has(.portal-terminal){--sl-nav-height:0rem}html:has(.portal-terminal) .page>header.header{display:none}.main-pane:has(.portal-terminal) .sl-container{max-width:68rem}.main-pane:has(.portal-terminal) .content-panel:not(:has(.portal-terminal)){display:none}.portal-terminal{--portal-panel:#0a0a0a;font-family:var(--sl-font-mono);margin:1rem 0 2rem}:root[data-theme=light] .portal-terminal{--portal-panel:#fff}.portal-terminal__bar{background:var(--sl-color-gray-7);border:1px solid var(--sl-color-hairline-light);color:var(--sl-color-gray-3);white-space:nowrap;border-bottom:0;border-radius:.75rem .75rem 0 0;align-items:center;gap:1rem;min-height:3.25rem;padding:.5rem .75rem .5rem 1.1rem;font-size:.78rem;display:flex}.portal-terminal__dots{gap:6px;display:flex}.portal-terminal__dots i{background:var(--sl-color-gray-5);border-radius:50%;width:11px;height:11px}.portal-terminal__host{text-overflow:ellipsis;overflow:hidden}.portal-terminal__tools{font-family:var(--sl-font);align-items:center;gap:.75rem;margin-left:auto;display:flex}.portal-terminal__tools button[data-open-modal]{background:var(--portal-panel)}@media (width>=50rem){.portal-terminal__tools button[data-open-modal]{width:15rem}}.portal-terminal__hero,.portal-terminal__ls{background:var(--portal-panel);border:1px solid var(--sl-color-hairline-light);padding:clamp(1.5rem,4vw,3rem) clamp(1.1rem,4vw,3rem)}.portal-terminal__hero{border-bottom-style:dashed}.portal-terminal__ls{border-top:0}.portal-prompt{color:var(--sl-color-gray-3);margin:0 0 1rem;font-size:.9rem}.portal-prompt>span:first-child{color:var(--sl-color-accent)}.portal-prompt--idle{margin:0}.portal-shell{align-items:center;gap:.5ch;display:flex}.portal-shell__input{caret-color:var(--sl-color-accent);color:var(--sl-color-white);font:inherit;background:0 0;border:0;outline:none;flex:1;min-width:0;padding:0}.portal-shell__input::placeholder{color:var(--sl-color-gray-5)}.portal-shell__line{margin:0}.portal-shell__out{color:var(--sl-color-gray-3);white-space:pre-wrap;margin:0 0 .25rem;font-size:.9rem}.portal-shell__out.is-pre{white-space:pre;line-height:1.35;overflow-x:auto}.portal-title{color:var(--sl-color-white);font-family:"Geist Pixel Square", var(--sl-font-mono);letter-spacing:-.02em;margin:0;font-size:clamp(2rem,5.5vw,3.75rem);font-weight:400;line-height:.95}.portal-typer{display:grid}.portal-typer>*{grid-area:1/1}.portal-typer__ghost{visibility:hidden}.portal-cursor{color:var(--sl-color-accent);animation:1.1s step-end infinite portal-blink}@keyframes portal-blink{50%{opacity:0}}.portal-status{background:var(--sl-color-gray-7);border:1px solid var(--sl-color-hairline-light);border-top:0;border-radius:0 0 .75rem .75rem;flex-wrap:wrap;gap:.4rem 1.5rem;margin:0;padding:.6rem 1.1rem;font-size:.72rem;display:flex}.portal-status div{gap:.5rem;display:flex}.portal-status dt{color:var(--sl-color-gray-4)}.portal-status dd{color:var(--sl-color-gray-2);margin:0}.portal-status .portal-status__ok{margin-left:auto}.portal-status__ok dd{color:var(--sl-color-accent)}.portal-total{color:var(--sl-color-gray-4);margin:0 0 .5rem;font-size:.85rem}.portal-ls{margin:0 0 1.5rem;padding:0;list-style:none}.portal-module{border-bottom:1px solid var(--sl-color-hairline-light);color:var(--sl-color-gray-2);border-radius:.5rem;grid-template-columns:6.5rem 6.5rem 1fr auto 7.5rem;align-items:center;gap:1.5rem;margin:0 -.9rem;padding:1.1rem .9rem;font-size:.85rem;text-decoration:none;transition:background-color .15s;display:grid}.portal-ls li:last-child .portal-module{border-bottom:0}.portal-module__perm,.portal-module__count{color:var(--sl-color-gray-4)}.portal-module__name{gap:.2rem;display:grid}.portal-module__dir{color:var(--sl-color-accent);font-size:1rem}.portal-module__name strong{color:var(--sl-color-white);font-family:var(--sl-font);font-size:1.05rem;font-weight:600}.portal-module__name small{color:var(--sl-color-gray-2);font-family:var(--sl-font);font-size:.9rem}.portal-module__units{gap:.35rem;display:flex}.portal-module__units code{border:1px solid var(--sl-color-gray-5);color:var(--sl-color-gray-2);font-family:var(--sl-font-mono);border-radius:4px;padding:.2rem .45rem;font-size:.72rem}.portal-module__go{color:var(--sl-color-gray-4);transition:color .15s,transform .15s}a.portal-module:hover,a.portal-module:focus-visible{background:var(--sl-color-accent-low);outline:none}a.portal-module:hover .portal-module__go,a.portal-module:focus-visible .portal-module__go{color:var(--sl-color-accent);transform:translate(3px)}@media (width<=47.5rem){.portal-module{grid-template-columns:1fr auto;gap:.75rem}.portal-module__perm,.portal-module__count,.portal-module__units,.portal-terminal__host{display:none}}.portal-modules{gap:.75rem;margin-top:2.25rem;display:grid}.portal-module-card{border:1px solid var(--sl-color-hairline-light);color:inherit;background:#111;border-radius:.55rem;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;min-height:9.5rem;padding:1.25rem;text-decoration:none;transition:background-color .16s,border-color .16s,transform .16s;display:grid}:root[data-theme=light] .portal-module-card{background:#fafafa}a.portal-module-card:hover,a.portal-module-card:focus-visible{border-color:color-mix(in srgb, var(--sl-color-accent) 56%, var(--sl-color-hairline-light));background:#181818;transform:translateY(-2px)}.portal-module-card__content{gap:.4rem;display:grid}.portal-module-card__index{color:var(--sl-color-gray-4);font-family:var(--sl-font-mono);font-size:var(--sl-text-xs);align-self:start}.portal-module-card__content strong{color:var(--sl-color-white);font-size:var(--sl-text-lg)}.portal-module-card__content small,.portal-module-card__arrow,.portal-module-card__status{color:var(--sl-color-gray-3)}.portal-module-card__arrow{color:var(--sl-color-accent);font-family:var(--sl-font-mono);font-size:1.5rem}.portal-module-card__status{border:1px solid var(--sl-color-hairline-light);font-family:var(--sl-font-mono);font-size:var(--sl-text-xs);border-radius:999px;padding:.25rem .5rem}.portal-module-card.is-disabled{cursor:not-allowed;opacity:.55}@media (width>=50rem){.portal-modules{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.portal-module-card,.portal-module,.portal-module__go{transition:none}.portal-cursor{animation:none}}
