@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-ext-wght-normal-DdQaqQDo.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-wght-normal-Bc-8i84L.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--surface-100:#1d1d21;--surface-200:#19191c;--surface-300:#141416;--content:#ededf0;--primary:#4258e8;--primary-content:#fff;--danger:#ff453a;--success:#85dbd8;--muted:color-mix(in oklab, var(--content) 80%, transparent);--faint:color-mix(in oklab, var(--content) 60%, transparent);--line:color-mix(in oklab, var(--content) 10%, transparent);--tint:color-mix(in oklab, var(--content) 5%, transparent);--tint-strong:color-mix(in oklab, var(--content) 10%, transparent);--link:color-mix(in oklab, var(--primary) 55%, var(--content));--link-hover:color-mix(in oklab, var(--primary) 25%, var(--content));--soft-hi:color-mix(in oklab, var(--content) 6%, transparent);--soft-hi-strong:color-mix(in oklab, var(--content) 18%, transparent);--soft-lo:oklch(from var(--surface-300) calc(l * .45) c h);--soft-edge:color-mix(in oklab, var(--content) 7%, transparent);--soft-drop:0 1px 2px color-mix(in oklab, var(--soft-lo) 70%, transparent), 0 10px 24px -14px var(--soft-lo);--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--sans:"Outfit Variable", ui-sans-serif, system-ui, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--ease:cubic-bezier(.4, 0, .2, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--surface-200);color:var(--content);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;margin:0}a{color:var(--link)}a[href]:hover{color:var(--link-hover)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}input,select,button{font:inherit;color:inherit;border:1px solid var(--line);border-radius:var(--radius-lg);height:32px;transition:border-color .15s var(--ease), filter .15s var(--ease), background-color .15s var(--ease);padding:0 12px;font-size:14px}input,select{background:var(--surface-200);min-width:0;padding:0 8px}input::placeholder{color:var(--faint)}:is(input,select):hover:not(:focus,:disabled){border-color:color-mix(in oklab, var(--content) 28%, transparent)}:is(input,select):focus-visible{outline-offset:-2px}button{cursor:pointer;border-color:var(--soft-edge);box-shadow:inset 0 1px 0 var(--soft-hi), var(--soft-drop);background:0 0;font-weight:500}button:hover:not(:disabled){filter:brightness(1.25)}button:active:not(:disabled){filter:brightness(.82)}button:disabled{opacity:.6;cursor:not-allowed}button.primary{background-color:var(--primary);background-image:linear-gradient(180deg, color-mix(in oklab, var(--content) 13%, transparent), transparent 55%);border-color:var(--primary);color:var(--primary-content);box-shadow:inset 0 1px 0 var(--soft-hi-strong), inset 0 -1px 0 color-mix(in oklab, var(--soft-lo) 40%, transparent), 0 1px 2px color-mix(in oklab, var(--soft-lo) 35%, transparent)}button.link{height:auto;box-shadow:none;color:var(--link);background:0 0;border:0;padding:0;font-weight:400;text-decoration:underline}button.link:hover:not(:disabled){filter:none;color:var(--link-hover)}.bar{z-index:30;border-bottom:1px solid var(--line);background:var(--surface-100);align-items:center;gap:16px;height:56px;padding:0 20px;display:flex;position:sticky;top:0;overflow-x:clip}.load{flex:1;align-items:center;gap:8px;display:flex}.brand{color:var(--content);white-space:nowrap;margin-right:12px;font-size:15px;font-weight:600;text-decoration:none}.brand:hover{color:var(--content)!important}.load input{flex:1}.account{color:var(--muted);white-space:nowrap;font-size:13px}.toolbar{border-bottom:1px solid var(--line);flex-direction:column;gap:4px;max-width:1560px;margin:0 auto;padding:16px 20px 12px;display:flex}.mr-title{color:var(--content);text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:600;text-decoration:none;overflow:hidden}a.mr-title[href]:hover{color:var(--content);text-decoration:underline}.controls{flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin-top:8px;display:flex}.file-controls,.copy-controls{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.file-controls select{max-width:420px}.file-name{font-family:var(--mono);color:var(--muted);font-size:13px}.meta{color:var(--muted);margin:0;font-size:13px}.bar:after{content:"";background:var(--primary);opacity:0;pointer-events:none;width:30%;height:2px;position:absolute;bottom:0;left:0}.is-loading .bar:after{opacity:1;animation:loading-slide 1.1s var(--ease) infinite}@keyframes loading-slide{0%{transform:translate(-100%)}to{transform:translate(340%)}}@media (prefers-reduced-motion:reduce){.is-loading .bar:after{width:100%;animation:none}}.markdown{transition:opacity .15s var(--ease)}.is-loading .markdown[aria-busy=true]{opacity:.5}main{max-width:1560px;margin:0 auto;padding:24px 20px 80px}.layout{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;display:grid}.sidebar{grid-column:1;width:250px;margin-right:40px;display:none}.content{grid-column:2;width:100%;min-width:0;max-width:900px;margin:0 auto}.comments-rail{grid-column:3;width:280px;margin-left:32px;display:none}.layout.has-sidebar:not(.toc-collapsed) .sidebar{display:block}.layout.has-sidebar:not(.toc-collapsed) .content{margin:0}.layout.has-sidebar.toc-collapsed .content{max-width:none}.layout.has-comments .comments-rail{display:block}.comments-hidden .layout.has-comments .comments-rail{display:none}.toc-toggle,.comments-toggle{flex:none;align-items:center;gap:6px;display:inline-flex}.comments-toggle[aria-pressed=true]{background:var(--tint-strong)}.comments-toggle .count{font-variant-numeric:tabular-nums;color:var(--muted)}.toc-toggle svg{flex:none}.toc-toggle[aria-expanded=true]{background:var(--tint-strong)}.sidebar{align-self:start;max-height:calc(100vh - 88px);padding:0 4px 24px 0;font-size:14px;line-height:1.35;position:sticky;top:72px;overflow-y:auto}.sidebar summary{color:var(--muted);cursor:pointer;padding:4px 0 8px;font-size:12px;font-weight:500}.sidebar ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.sidebar ul ul{margin-top:2px;padding-left:12px}.sidebar a{border-radius:var(--radius-lg);color:var(--muted);padding:6px 12px;text-decoration:none;display:block}.sidebar a:hover{color:var(--content);background:var(--tint)}.sidebar a.active{color:var(--content);background:var(--tint-strong)}.notice{max-width:680px}.notice h1{margin:24px 0 8px;font-size:24px;font-weight:600}.notice h2{margin:0 0 8px;font-size:18px;font-weight:600}.muted{color:var(--muted)}#auth{border:1px solid var(--soft-edge);border-radius:var(--radius-xl);background:var(--surface-100);box-shadow:inset 0 1px 0 var(--soft-hi), var(--soft-drop);padding:20px}.notice details{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.notice summary{cursor:pointer;font-weight:500}.stack>*{margin:10px 0}.row{gap:8px;display:flex}.row input{flex:1}.status{color:var(--muted)}.copy-status{color:var(--muted);margin:4px 0 0;font-size:13px}.copy-status.ok{color:var(--success)}.copy-status.error{color:var(--danger)}.status.ok{color:var(--success)}.status.error{color:var(--danger)}.browse{width:min(720px,100vw - 32px);max-height:min(720px,100vh - 64px);color:var(--content);background:var(--surface-100);border:1px solid var(--soft-edge);border-radius:var(--radius-xl);box-shadow:inset 0 1px 0 var(--soft-hi), 0 24px 48px -12px var(--soft-lo);flex-direction:column;margin:8vh auto auto;padding:0;display:none}.browse[open]{display:flex}.browse::backdrop{background:#0000008c}.browse-head{border-bottom:1px solid var(--line);align-items:baseline;gap:10px;padding:16px 20px 12px;display:flex}.browse-head h2{margin:0;font-size:16px;font-weight:600}.browse-head .muted{font-size:13px}.browse-head button{height:28px;margin-left:auto;font-size:13px}.browse-step{flex-direction:column;flex:1;gap:10px;min-height:0;padding:14px 20px 0;display:flex}.browse-search{grid-template-columns:minmax(140px,1fr) 2fr;gap:8px;display:grid}.browse-search label{color:var(--muted);margin-bottom:4px;font-size:12px;font-weight:500;display:block}.browse-search input{width:100%}.browse-crumb{align-items:center;gap:10px;min-width:0;display:flex}.browse-crumb button{flex:none;height:28px;font-size:13px}.browse-crumb strong{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.pick-list{min-height:120px;max-height:52vh;margin:0 -8px;padding:0 0 8px;list-style:none;overflow-y:auto}.pick{text-align:left;width:100%;height:auto;box-shadow:none;border-radius:var(--radius-lg);border:0;flex-direction:column;align-items:flex-start;padding:8px 12px;font-weight:400;display:flex}.pick:hover:not(:disabled),.pick:focus-visible{filter:none;background:var(--tint-strong)}.pick:focus-visible{outline-offset:-2px}.pick-title{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:500;overflow:hidden}.pick-sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;overflow:hidden}.browse>.status{margin:0;padding:0 20px 12px;font-size:13px}.browse>.status:empty{display:none}.browse-token{border-top:1px solid var(--line);padding:12px 20px 16px;font-size:13px}.browse-token p{margin:0 0 8px}.history{border:1px solid var(--soft-edge);border-radius:var(--radius-xl);background:var(--surface-100);box-shadow:inset 0 1px 0 var(--soft-hi), var(--soft-drop);margin-top:32px}.history-head{justify-content:space-between;align-items:center;padding:14px 20px 10px;display:flex}.history-head h2{margin:0;font-size:15px}.history ul{margin:0;padding:0 8px 8px;list-style:none}.history li{border-top:1px solid var(--line);align-items:center;gap:8px;display:flex}.history li>a{border-radius:var(--radius-lg);min-width:0;color:var(--content);flex-direction:column;flex:1;padding:10px 12px;text-decoration:none;display:flex}.history li>a:hover{color:var(--content);background:var(--tint)}.h-title{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.h-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.h-remove{height:28px;color:var(--muted);box-shadow:none;border-color:#0000;padding:0 10px;font-size:12px}.markdown{overflow-wrap:break-word;font-size:16px;line-height:1.7}.markdown>:first-child,.markdown>[data-md-line]:first-child+*{margin-top:0}.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6{margin:1.6em 0 .6em;scroll-margin-top:72px;font-weight:600;line-height:1.25}.markdown h1{border-bottom:1px solid var(--line);padding-bottom:.3em;font-size:2em}.markdown h2{border-bottom:1px solid var(--line);padding-bottom:.3em;font-size:1.5em}.markdown h3{font-size:1.25em}.markdown h4{font-size:1em}.markdown h5{font-size:.9em}.markdown h6{color:var(--muted);font-size:.85em}.markdown p,.markdown ul,.markdown ol,.markdown blockquote,.markdown pre,.markdown table,.markdown details{margin:0 0 1em}.markdown ul,.markdown ol{padding-left:2em}.markdown li+li{margin-top:.25em}.markdown li>input[type=checkbox]{vertical-align:middle;height:auto;margin:0 .4em 0 -1.4em}.markdown li:has(>input[type=checkbox]){list-style:none}.markdown blockquote{color:var(--muted);border-left:3px solid var(--line);margin-left:0;padding:0 1em}.markdown code{font:.875em var(--mono);background:var(--tint-strong);border-radius:var(--radius-md);padding:.15em .35em}.markdown pre{background:var(--surface-300);border:1px solid var(--line);border-radius:var(--radius-lg);padding:14px 16px;line-height:1.5;overflow-x:auto}.markdown pre code{background:0 0;padding:0;font-size:.85em}.markdown table{border-collapse:collapse;width:max-content;max-width:100%;display:block;overflow-x:auto}.markdown th,.markdown td{border:1px solid var(--line);padding:6px 12px}.markdown th{background:var(--surface-100);font-weight:600}.markdown img{max-width:100%}.markdown img.broken{outline:1px dashed var(--danger)}.markdown hr{border:0;border-top:1px solid var(--line);margin:2em 0}.comment-thread{--ct-accent:#fe9567;border:1px solid color-mix(in oklab, var(--ct-accent) 55%, transparent);border-radius:var(--radius-xl);background:color-mix(in oklab, var(--ct-accent) 14%, var(--surface-200));box-shadow:inset 0 1px 0 var(--soft-hi), var(--soft-drop);margin:-.25em 0 1.2em;padding:12px 14px;scroll-margin-top:80px;font-size:14px;line-height:1.55}.comment-thread:focus{outline:2px solid var(--ct-accent);outline-offset:2px}.comments-hidden .comment-thread,.comments-hidden .ct-group{display:none}.ct-head .ct-line{color:var(--ct-accent)}.ct-quote{background:color-mix(in oklab, var(--ct-accent) 10%, var(--surface-300))!important}.comments-rail{max-height:calc(100vh - 88px);padding:0 0 24px 4px;font-size:13px;line-height:1.4;position:sticky;top:72px;overflow-y:auto}.rail-title{color:var(--muted);margin:4px 0 8px;font-size:12px;font-weight:500}.rail-title .count{color:var(--faint)}.comments-rail ol{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.comments-rail a{border-radius:var(--radius-lg);color:var(--content);flex-direction:column;gap:2px;padding:6px 10px;text-decoration:none;display:flex}.comments-rail a:hover{color:var(--content);background:var(--tint)}.comments-rail a.active{background:oklab(77.1209% .10129 .0974373/.14)}.rail-meta{color:#fe9567;font-size:12px}.rail-text{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ct-head{color:var(--muted);justify-content:space-between;align-items:baseline;gap:12px;font-size:12px;display:flex}.ct-line{font-weight:500}.ct-quote{color:var(--muted);white-space:pre-wrap;max-height:3.2em;margin:6px 0 8px;padding:4px 8px;display:block;overflow:hidden;font-size:12px!important}.ct-note+.ct-note{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.ct-meta{color:var(--muted);font-size:13px}.ct-meta strong{color:var(--content);font-weight:500}.ct-body{overflow-wrap:anywhere;margin-top:2px}.ct-body>:first-child{margin-top:0}.ct-body>:last-child{margin-bottom:0}.ct-body p,.ct-body ul,.ct-body ol,.ct-body pre{margin:0 0 .6em}.ct-body img{max-width:100%}.ct-group{border-top:1px solid var(--line);margin-top:2.5em;padding-top:1em}.ct-group-title{color:var(--muted);font-size:13px;font-weight:500}.markdown a.section-ref{text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.markdown{--code-keyword:#93a0ff;--code-key:#68a3fe;--code-string:#85dbd8;--code-number:#f39c34;--code-type:#fe9567;--code-function:#f0668a;--code-comment:#8b8b93;--code-punct:color-mix(in oklab, var(--content) 60%, transparent);--code-meta:#c4c4cc}.hljs-keyword,.hljs-selector-tag,.hljs-doctag,.hljs-operator,.hljs-bullet{color:var(--code-keyword)}.hljs-attr,.hljs-attribute,.hljs-property,.hljs-name,.hljs-selector-class,.hljs-selector-id{color:var(--code-key)}.hljs-string,.hljs-regexp,.hljs-char.escape_,.hljs-template-tag,.hljs-symbol{color:var(--code-string)}.hljs-number,.hljs-literal{color:var(--code-number)}.hljs-type,.hljs-built_in,.hljs-title.class_,.hljs-title.class_.inherited__{color:var(--code-type)}.hljs-title,.hljs-title.function_,.hljs-section{color:var(--code-function)}.hljs-punctuation{color:var(--code-punct)}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-subst,.hljs-template-variable,.hljs-variable,.hljs-variable.language_{color:var(--code-meta)}.hljs-meta .hljs-string{color:var(--code-string)}.hljs-comment,.hljs-quote{color:var(--code-comment);font-style:italic}.hljs-addition{color:var(--success);background:color-mix(in oklab, var(--success) 12%, transparent)}.hljs-deletion{color:var(--danger);background:color-mix(in oklab, var(--danger) 12%, transparent)}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:600}.diagram{margin:0 0 1.2em}.diagram-canvas{border-radius:var(--radius-xl);width:fit-content;max-width:100%;box-shadow:var(--soft-drop);color:#4a4a52;background:#fff;padding:16px;font-size:13px;overflow-x:auto}.diagram-canvas svg{max-width:100%;height:auto;display:block}.diagram-canvas.diagram-error{background:var(--surface-100);border:1px solid var(--line);color:var(--danger);font-size:14px}.diagram-actions{margin:6px 0 0;font-size:13px}.diagram details{margin-top:4px;font-size:13px}.diagram summary{cursor:pointer;color:var(--muted)}.diagram details pre{margin-top:8px}@media (width<=1199px){.layout.has-comments .comments-rail{display:none}}@media (width<=900px){.layout{display:block}.toc-toggle{display:none!important}.layout.has-sidebar .sidebar{width:auto;margin-right:0;display:block}.layout.has-sidebar.toc-collapsed .content{max-width:900px}.sidebar{border:1px solid var(--soft-edge);border-radius:var(--radius-xl);background:var(--surface-100);max-height:none;margin-bottom:20px;padding:10px 12px;position:static}.sidebar summary{padding:0}.sidebar details[open] summary{padding-bottom:8px}}@media (width<=720px){.bar{flex-direction:column;align-items:stretch;gap:8px;height:auto;padding:10px 14px;position:relative}.load{flex-wrap:wrap}.browse{max-height:calc(100vh - 32px);margin-top:16px}.browse-search{grid-template-columns:1fr}.brand{width:100%}.h-remove{padding:0 6px}.toolbar{padding:12px 14px}.file-controls,.copy-controls{width:100%}.file-controls select{flex:100%;max-width:none}.controls button{flex:1}main{padding:16px 14px 60px}.sidebar{top:0}}
