@charset "UTF-8";
:root{color-scheme:dark;--bg:#10151c;--surface:#151d26;--surface-2:#1a2530;--code:#0c1117;--fg:#dbe6ee;--muted:#94a6b5;--faint:#647c8e;--line:#2b3a48;--teal:#79d9cf;--amber:#e8b779;--header:72px;--sidebar:244px;--mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;--sans:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.75 var(--sans);-webkit-font-smoothing:antialiased}a{color:var(--teal);text-decoration:none;text-underline-offset:4px}a:hover{text-decoration:underline}button,input,select{font:inherit}button{cursor:pointer}button,a,input,select{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,pre:focus-visible{outline:2px solid var(--teal)}button{color:var(--fg)}[hidden]{display:none!important}::selection{background:#315e60;color:#fff}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:12px;top:-100px;z-index:30;padding:9px 16px;background:var(--teal);color:var(--bg);font-weight:700}.skip-link:focus{top:12px}
.site-header{height:var(--header);position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:28px;padding:0 30px;background:rgba(16,21,28,.98);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:0;white-space:nowrap;font:700 21px/1 var(--mono);letter-spacing:-.8px;color:var(--fg);min-width:calc(var(--sidebar) - 20px)}.brand:hover{text-decoration:none}.brand>span:not(.brand-symbol){color:var(--teal)}.brand .brand-symbol{font-size:31px;color:var(--teal);margin-right:10px}.brand small{font-size:10px;font-weight:500;letter-spacing:1.8px;color:var(--muted);padding-left:13px;margin-left:13px;border-left:1px solid var(--line)}.header-version{display:flex;gap:7px;align-items:center;font:12px var(--mono);white-space:nowrap;color:var(--fg);margin-left:auto}.header-version>span:last-child{color:var(--amber)}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--teal);flex-shrink:0}.header-source{font-size:13px;color:var(--muted);white-space:nowrap}.header-source span{padding-left:5px}.menu-toggle{display:none;border:1px solid var(--line);border-radius:5px;background:var(--surface);padding:5px 10px;font-size:12px}
.doc-search{position:relative;width:min(420px,38vw);display:flex;align-items:center}.doc-search input{width:100%;padding:9px 38px 9px 35px;border:1px solid var(--line);background:var(--surface);border-radius:5px;font-size:13px;color:var(--fg)}input::placeholder{color:var(--faint)}.search-glyph{position:absolute;left:12px;top:6px;font:23px var(--mono);color:var(--muted)}.doc-search>kbd{position:absolute;right:12px;top:8px;color:var(--faint);border:1px solid var(--line);border-radius:3px;padding:0 6px;font:12px/22px var(--mono)}.search-results{position:absolute;top:calc(100% + 8px);left:0;width:min(580px,80vw);background:var(--surface);border:1px solid var(--line);border-radius:6px;box-shadow:0 18px 60px #0008;max-height:65vh;overflow:auto}.search-results>p{font:11px var(--mono);color:var(--muted);padding:13px 16px;margin:0;border-bottom:1px solid var(--line)}.search-results ul{list-style:none;padding:5px;margin:0}.search-results li+li{border-top:1px solid #263441}.search-results a{display:block;border-radius:3px;padding:11px 12px;color:var(--fg)}.search-results a:hover{background:var(--surface-2);text-decoration:none}.search-results strong{display:block;font-size:13px;color:var(--teal)}.search-results small{display:block;margin-top:4px;font:10px var(--mono);color:var(--amber);text-transform:uppercase;letter-spacing:.7px}.search-results a>span{display:block;font-size:12px;line-height:1.5;color:var(--muted);margin-top:5px}
.docs-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,850px) minmax(160px,210px);gap:0 44px;max-width:1500px;margin:auto;padding:0 30px}.sidebar{position:sticky;top:var(--header);height:calc(100dvh - var(--header));overflow:auto;padding:30px 22px 30px 0;border-right:1px solid var(--line)}.sidebar nav{display:flex;flex-direction:column;gap:3px}.nav-group{font:10px/1.3 var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--faint);margin:26px 0 10px 12px}.nav-group:first-child{margin-top:3px}.sidebar nav>a{padding:8px 12px;color:var(--muted);font-size:13px;border-left:2px solid transparent;border-radius:0 4px 4px 0;line-height:1.5}.sidebar nav>a:hover{background:var(--surface);text-decoration:none;color:var(--fg)}.sidebar nav>a[aria-current=page]{border-color:var(--teal);background:#79d9cf0c;color:var(--teal);font-weight:600}.sidebar-foot{font:11px/1.8 var(--mono);color:var(--fg);margin:32px 0 0 12px;border-top:1px solid var(--line);padding-top:20px}.sidebar-foot .status-dot{margin-right:7px}.sidebar-foot small{font:10px var(--mono);color:var(--faint);padding-left:13px}
main{min-width:0;padding:34px 0 0}.breadcrumbs{display:flex;gap:11px;font:11px var(--mono);color:var(--faint);margin-bottom:36px}.breadcrumbs a{color:var(--muted)}.page-heading{border-bottom:1px solid var(--line);padding-bottom:26px;margin-bottom:28px}.eyebrow{font:10px var(--mono);letter-spacing:1.8px;color:var(--teal);margin:0 0 12px}h1{font-size:36px;font-weight:650;letter-spacing:-1.3px;line-height:1.2;margin:0 0 14px}.page-heading>p:last-child{color:var(--muted);font-size:16px;line-height:1.65;margin:0;max-width:650px}.prose p{margin:14px 0;overflow-wrap:break-word}.prose h2{font-size:23px;font-weight:600;line-height:1.35;letter-spacing:-.5px;margin:48px 0 17px;padding-top:2px;scroll-margin-top:98px}.prose>h2:first-child{margin-top:0}.prose h3{font-size:18px;font-weight:600;line-height:1.4;letter-spacing:-.2px;margin:26px 0 10px;scroll-margin-top:98px}.prose strong{font-weight:650;color:#edf5f8}.prose ul,.prose ol{padding-left:22px;margin:15px 0}.prose li{padding-left:3px;margin:7px 0}.prose li::marker{color:var(--faint)}.prose code{font:12px/1.6 var(--mono);padding:2px 5px;background:var(--surface-2);border:1px solid #31404c80;border-radius:3px;color:#b7e2dd;overflow-wrap:anywhere}.prose kbd{display:inline;font:11px/1.5 var(--mono);background:var(--surface-2);border:1px solid #3a4b59;border-bottom-width:2px;border-radius:3px;color:var(--fg);padding:2px 5px;white-space:normal}.prose pre{position:relative;background:var(--code);border:1px solid var(--line);border-radius:5px;overflow:auto;padding:24px 20px;margin:22px 0;line-height:1.8;max-width:100%;tab-size:2}.prose pre code{background:none;border:0;border-radius:0;font-size:12px;line-height:1.85;color:#cbd8e2;padding:0;white-space:pre;overflow-wrap:normal}.copy-code{position:absolute;right:8px;top:8px;background:var(--surface);border:1px solid var(--line);font:10px var(--mono);color:var(--muted);padding:4px 7px;border-radius:3px;opacity:.6}.prose pre:hover .copy-code,.copy-code:focus-visible{opacity:1}.copy-code:hover{color:var(--teal)}.table-wrap{width:100%;overflow-x:auto;margin:20px 0;border:1px solid var(--line);border-radius:5px}table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.65;text-align:left}th{background:var(--surface);color:var(--muted);font:10px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.8px;padding:12px 15px;border-bottom:1px solid var(--line)}td{padding:13px 15px;vertical-align:top;border-bottom:1px solid var(--line);min-width:120px}td:first-child{color:#d7e5ed}tr:last-child td{border-bottom:0}td code{font-size:11px!important}.badge{display:inline-block;white-space:nowrap;font:10px/1.5 var(--mono);padding:3px 7px;background:#e8b7790c;border:1px solid #e8b77940;border-radius:3px;color:var(--amber)}.badge.supported{color:var(--teal);background:#79d9cf0b;border-color:#79d9cf40}.badge.muted{color:var(--muted);background:var(--surface);border-color:var(--line)}.callout{background:#79d9cf06;border:1px solid #79d9cf35;border-left:3px solid var(--teal);padding:17px 20px;border-radius:0 5px 5px 0;margin-bottom:30px;font-size:14px}.callout-label{font:10px var(--mono);color:var(--teal);letter-spacing:1.4px}.callout p{margin:8px 0 0}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:22px}.button{display:inline-flex;justify-content:center;align-items:center;gap:16px;border:1px solid #425464;border-radius:4px;background:var(--surface);padding:10px 14px;font-size:12px;color:var(--fg);font-weight:600;line-height:1.5}.button:hover{background:var(--surface-2);text-decoration:none}.button.primary{background:var(--teal);border-color:var(--teal);color:var(--bg)}.button.primary:hover{background:#9ce6df}
.page-toc{position:sticky;top:calc(var(--header) + 35px);align-self:start;max-height:calc(100dvh - var(--header) - 70px);overflow:auto;padding-top:36px}.page-toc>p{font:10px var(--mono);letter-spacing:1.2px;color:var(--faint);margin:0 0 16px}.page-toc nav{display:flex;flex-direction:column;border-left:1px solid var(--line)}.page-toc nav a{font-size:11px;line-height:1.55;padding:6px 0 6px 14px;color:var(--muted);border-left:1px solid transparent;margin-left:-1px}.page-toc nav a.toc-h3{padding-left:23px}.page-toc nav a:hover{color:var(--fg);text-decoration:none}.page-toc nav a.current{border-left-color:var(--teal);color:var(--teal)}.toc-release{display:block;font:11px var(--mono);padding:18px 0;margin-top:22px;border-top:1px solid var(--line)}.toc-release span{float:right}.page-pager{display:flex;gap:15px;justify-content:space-between;margin:54px 0 0;padding-top:26px;border-top:1px solid var(--line)}.page-pager a{display:block;max-width:48%;color:var(--fg);font-size:13px}.page-pager small{display:block;font:10px var(--mono);text-transform:uppercase;letter-spacing:1px;color:var(--faint);margin-bottom:7px}.page-pager .pager-next{text-align:right;margin-left:auto}.page-pager a>span>span{color:var(--teal);padding-left:7px}.page-footer{display:flex;justify-content:space-between;gap:20px;font:10px/1.6 var(--mono);color:var(--faint);padding:32px 0;margin-top:20px}
.overview-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:25px;align-items:start;margin:32px 0}.overview-grid h2{margin:0 0 12px}.overview-grid p{font-size:14px}.loop-panel{margin:0;border:1px solid var(--line);border-radius:5px;background:radial-gradient(ellipse at 50% 60%,#1b2c3500,#10151c),var(--code);overflow:hidden;align-self:stretch;min-height:290px;display:flex;flex-direction:column}.figure-top{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:13px 14px;font:9px var(--mono);color:var(--faint);letter-spacing:1px}.figure-top button{background:none;border:0;padding:0;color:var(--muted);font:9px var(--mono);letter-spacing:0}.figure-top button:hover{color:var(--teal)}#control-loop{display:block;width:100%;height:230px;flex:1}.loop-panel figcaption{font:9px/1.6 var(--mono);text-align:center;padding:10px 12px;color:var(--faint);border-top:1px solid var(--line)}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.guide-grid>a{border:1px solid var(--line);background:var(--surface);border-radius:5px;padding:20px;color:var(--fg)}.guide-grid>a:hover{border-color:#79d9cf70;background:#182630;text-decoration:none}.guide-grid span{display:block;font:9px var(--mono);letter-spacing:1.1px;color:var(--faint);margin-bottom:9px}.guide-grid strong{font-size:15px}.guide-grid p{font-size:12px;color:var(--muted);margin:6px 0 0}
.download-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0}.download-card{border:1px solid var(--line);border-radius:5px;padding:24px;background:var(--surface);display:flex;flex-direction:column;min-width:0}.file-kind{font:9px var(--mono);letter-spacing:1px;color:var(--teal)}.download-card h3{margin:15px 0 8px}.download-card>p{font-size:13px;color:var(--muted);margin:0 0 15px}.download-card dl{margin:3px 0 24px;font-size:12px}.download-card dl>div{display:grid;grid-template-columns:74px minmax(0,1fr);gap:8px;border-top:1px solid var(--line);padding:9px 0}.download-card dt{color:var(--faint)}.download-card dd{margin:0}.download-card dd code{font-size:10px;word-break:break-all}.download-card .button{margin-top:auto}.checksum-label{font:10px var(--mono);color:var(--faint);letter-spacing:1px;margin-bottom:8px!important}.prose code.checksum{display:block;font-size:11px;background:var(--code);border-color:var(--line);padding:12px 15px;overflow-wrap:anywhere}
.key-toolbar{display:flex;flex-direction:column;gap:15px;margin:20px 0 10px}.key-filters{display:flex;gap:7px;flex-wrap:wrap}.key-filters button{border:1px solid var(--line);background:var(--surface);color:var(--muted);font:11px var(--mono);padding:7px 11px;border-radius:4px}.key-filters button[aria-pressed=true]{color:var(--teal);border-color:#79d9cf60;background:#79d9cf0b}#key-search,#module-filter{width:100%;border:1px solid var(--line);border-radius:4px;background:var(--code);color:var(--fg);font-size:12px;padding:9px 12px}.result-count{font:10px var(--mono);color:var(--faint)}.key-table th:first-child{width:25%}.key-table th:last-child{width:23%}.key-table td{font-size:12px}.key-table td:first-child{min-width:165px}.key-table td:last-child{color:var(--muted);font-size:11px}.key-table code{white-space:normal}
.source-browser{border:1px solid var(--line);border-radius:5px;overflow:hidden;margin:22px 0;background:var(--code)}.source-list{padding:15px;border-bottom:1px solid var(--line)}.source-list>label{display:block;font:10px var(--mono);color:var(--faint);margin-bottom:8px}#module-list{display:flex;gap:6px;overflow:auto;max-height:150px;flex-wrap:wrap;margin-top:12px}#module-list button{font:10px/1.5 var(--mono);padding:6px 8px;border:1px solid var(--line);border-radius:3px;background:var(--surface);color:var(--muted);text-align:left;overflow-wrap:anywhere}#module-list button[aria-pressed=true]{color:var(--teal);background:#79d9cf0d;border-color:#79d9cf70}.source-heading{display:flex;justify-content:space-between;gap:15px;align-items:start;padding:16px;border-bottom:1px solid var(--line);background:var(--surface)}.source-heading strong{font:11px var(--mono);color:var(--teal);overflow-wrap:anywhere}.source-heading p{font-size:11px;line-height:1.65;color:var(--muted);margin:7px 0 0}.source-heading button{white-space:nowrap;font:10px var(--mono);padding:6px 9px;border:1px solid var(--line);border-radius:3px;background:var(--code);color:var(--muted)}.source-pane pre{margin:0;border:0;border-radius:0;max-height:600px;padding:22px}.source-pane code{font-size:11px!important}.tok-comment{color:#71899b}.tok-string{color:#a3c8b1}.tok-keyword{color:var(--amber)}.tok-number{color:#b7a4d7}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);z-index:50;opacity:0;pointer-events:none;font:12px var(--mono);background:var(--surface-2);border:1px solid #79d9cf80;color:var(--teal);border-radius:5px;padding:10px 18px;box-shadow:0 10px 40px #0005;transition:opacity .15s,transform .15s}.toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1500px){.docs-shell{grid-template-columns:var(--sidebar) minmax(0,850px) 210px;gap:0 50px}.site-header{padding-left:max(30px,calc((100vw - 1440px)/2))}}
@media(max-width:1279px){.docs-shell{grid-template-columns:220px minmax(0,1fr);gap:0 35px;max-width:1120px}.page-toc{display:none}:root{--sidebar:220px}.site-header{gap:20px}.doc-search{width:min(420px,40vw)}.brand{min-width:210px}.header-source{display:none}}
@media(max-width:900px){.docs-shell{grid-template-columns:190px minmax(0,1fr);gap:0 25px;padding:0 22px}:root{--sidebar:190px}.brand{min-width:190px}.site-header{padding:0 22px;gap:14px}.brand small{display:none}.sidebar{padding-right:14px}.overview-grid{grid-template-columns:1fr}.loop-panel{min-height:220px}#control-loop{height:200px}.download-grid{grid-template-columns:1fr}.page-footer{font-size:9px}.header-version{font-size:10px}.doc-search{flex:1;width:auto}.guide-grid{gap:10px}.guide-grid>a{padding:15px}}
@media(max-width:680px){:root{--header:116px}.site-header{height:116px;flex-wrap:wrap;align-content:center;gap:14px;padding:13px 18px}.brand{min-width:0;flex:1;font-size:20px}.brand .brand-symbol{font-size:27px}.header-version{margin-left:auto;font-size:11px}.menu-toggle{display:flex;align-items:center;gap:10px}.doc-search{order:5;width:100%;flex-basis:100%}.doc-search input{padding-top:8px;padding-bottom:8px}.search-results{width:100%;max-height:60vh}.docs-shell{display:block;padding:0 20px}.sidebar{position:static;height:auto;padding:22px 0;border-right:0;border-bottom:1px solid var(--line);display:block}.sidebar nav{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px}.sidebar .nav-group{grid-column:1/-1;margin:20px 0 6px 12px}.sidebar .nav-group:first-child{margin-top:0}.sidebar-foot{display:none}.js .sidebar{display:none}.js body.nav-open .sidebar{display:block}main{padding-top:25px}.breadcrumbs{margin-bottom:24px;font-size:10px}h1{font-size:30px;letter-spacing:-.8px}.page-heading{padding-bottom:22px;margin-bottom:24px}.page-heading>p:last-child{font-size:14px}.prose{font-size:14px}.prose h2{font-size:21px;margin-top:38px;scroll-margin-top:140px}.prose h3{scroll-margin-top:140px}.prose pre{padding:25px 14px 20px}.prose pre code{font-size:11px}th,td{padding:11px 12px}.guide-grid{grid-template-columns:1fr}.overview-grid{gap:20px}.loop-panel{min-height:230px}.callout{padding:16px;font-size:13px}.page-footer{flex-direction:column;gap:5px;padding:24px 0}.page-pager{margin-top:40px}.page-pager a{font-size:12px}.source-heading{padding:14px}.source-heading button{font-size:9px}.download-card{padding:20px}.actions .button{flex:1;font-size:11px;white-space:nowrap}html{scroll-padding-top:140px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
