:root{--bg:#0a0a0a;--bg-2:#111;--ink:#f2f2f0;--ink-soft:#f2f2f0b8;--muted:#8a8a8a;--line:#f2f2f01a;--line-2:#f2f2f033;--hover:#f2f2f00d;--note:#8fb3ff;--tip:#8fd6a8;--warning:#e8c27a;--danger:#f08a8a;--display:"Clash Display", "Switzer", system-ui, sans-serif;--sans:"Switzer", system-ui, -apple-system, sans-serif;--mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;--pad:clamp(16px, 4vw, 48px);--nav-h:64px;--ease:cubic-bezier(.16, 1, .3, 1);--ease-io:cubic-bezier(.76, 0, .24, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.loader{z-index:450;pointer-events:none;position:fixed;inset:0}.loader__half{background:var(--bg-2);height:50.5%;transition:transform 1.3s var(--ease-io);position:absolute;left:0;right:0}.loader__half--top{top:0}.loader__half--bot{bottom:0}.loader__center{transition:opacity .6s var(--ease), transform 1s var(--ease);flex-direction:column;justify-content:center;align-items:center;gap:26px;display:flex;position:absolute;inset:0}.loader__k{width:auto;height:110px;animation:kIn 1.1s var(--ease) both}.loader__line{background:var(--line);width:180px;height:1px}.loader__line i{background:var(--ink);width:0;height:100%;display:block}.loader__txt{letter-spacing:.28em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:500}.loader.is-done .loader__center{opacity:0;transform:scale(.96)}.loader.is-done .loader__half--top{transition-delay:.25s;transform:translateY(-100%)}.loader.is-done .loader__half--bot{transition-delay:.25s;transform:translateY(100%)}@keyframes kIn{0%{clip-path:inset(100% 0 0);transform:translateY(16px)}to{clip-path:inset(0);transform:none}}.line{padding:0 .05em .08em;display:block;overflow:hidden}.line>span{transform-origin:0 100%;transition:transform 1.6s var(--ease);display:block;transform:translateY(110%)rotate(2deg)}.line:nth-child(2)>span{transition-delay:.12s}.is-ready .line>span{transform:none}.fade{opacity:0;transition:opacity 1.4s var(--ease), transform 1.4s var(--ease);transition-delay:calc(.5s + var(--d,0) * .1s);transform:translateY(18px)}.is-ready .fade{opacity:1;transform:none}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.65}a{color:var(--ink)}button{font:inherit;color:inherit;cursor:pointer}::selection{background:var(--ink);color:var(--bg)}:focus-visible{outline:1px solid var(--ink);outline-offset:3px}.kicker{letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-size:11px;font-weight:500}kbd{border:1px solid var(--line-2);min-width:20px;height:20px;font-family:var(--sans);color:var(--muted);place-items:center;padding:0 5px;font-size:10px;display:inline-grid}.kbds{gap:4px;display:flex}.icon-btn{border:1px solid var(--line-2);width:36px;height:36px;color:var(--ink);background:0 0;place-items:center;display:inline-grid}.navbar{z-index:40;height:var(--nav-h);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0a0ad9;position:sticky;top:0}.navbar-inner{height:100%;padding:0 var(--pad);grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;display:grid}.navbar-left{align-items:center;gap:10px;display:flex}.menu-btn{display:none}.logo{color:var(--ink);font-family:var(--display);text-transform:uppercase;align-items:center;gap:4px;font-size:19px;font-weight:600;text-decoration:none;display:inline-flex}.logo img{width:auto;height:22px;margin-right:4px}.search-trigger{border:1px solid var(--line-2);width:220px;height:36px;color:var(--muted);text-align:left;background:0 0;align-items:center;gap:10px;padding:0 8px 0 12px;font-size:13px;display:flex}.search-trigger:hover{border-color:var(--ink)}.search-trigger-label{flex:1}.navbar-actions{justify-content:flex-end;gap:24px;display:flex}.nav-link{color:var(--ink-soft);font-size:13px;text-decoration:none}.nav-link:hover{color:var(--ink)}.shell{grid-template-columns:240px minmax(0,1fr);display:grid}.shell-main{min-width:0}@media (width>=1025px){.shell--full{display:block}.shell--full .sidebar{display:none}}.sidebar{top:var(--nav-h);height:calc(100vh - var(--nav-h));border-right:1px solid var(--line);position:sticky;overflow-y:auto}.sidebar-panel{background:var(--bg);min-height:100%;padding:32px 24px;position:relative}.sidebar-close,.sidebar-backdrop{display:none}.side-group+.side-group{margin-top:4px}.side-script{color:var(--ink-soft);font-family:var(--display);padding:6px 0;font-size:15px;font-weight:500;text-decoration:none;display:block}.side-script:hover,.side-script.current{color:var(--ink)}.side-pages{border-left:1px solid var(--line);margin:4px 0 16px}.side-link{color:var(--muted);border-left:1px solid #0000;margin-left:-1px;padding:5px 0 5px 14px;font-size:14px;text-decoration:none;display:block}.side-link:hover{color:var(--ink)}.side-link.active{color:var(--ink);border-left-color:var(--ink)}.page{padding:0 var(--pad);grid-template-columns:minmax(0,720px) 200px;justify-content:center;gap:64px;display:grid}.page-content{min-width:0;padding:48px 0}.page-header{margin-bottom:32px}.breadcrumb{color:var(--muted);flex-wrap:wrap;gap:8px;font-size:13px;display:flex}.breadcrumb a{color:inherit;text-decoration:none}.breadcrumb a:hover{color:var(--ink)}.breadcrumb-sep{opacity:.5}.page-title{font-family:var(--display);letter-spacing:-.03em;margin:12px 0 8px;font-size:40px;font-weight:500;line-height:1.1}.page-description{color:var(--muted);margin:0;font-size:17px}.script-meta{color:var(--muted);margin:-8px 0 32px;font-size:14px}.script-meta a{color:var(--ink);text-underline-offset:3px}.pager{border-top:1px solid var(--line);justify-content:space-between;gap:16px;margin-top:56px;padding-top:24px;display:flex}.pager-link{flex-direction:column;gap:2px;text-decoration:none;display:flex}.pager-link.next{text-align:right}.pager-label{color:var(--muted);font-size:13px}.pager-title{font-family:var(--display);color:var(--ink);font-size:18px;font-weight:500}.pager-link:hover .pager-title{text-underline-offset:4px;text-decoration:underline}.page-footer{color:var(--muted);margin-top:48px;font-size:12px}.page-toc{padding-top:56px}.toc{top:calc(var(--nav-h) + 48px);position:sticky}.toc-title{color:var(--ink);margin-bottom:10px;font-size:13px}.toc-link{color:var(--muted);padding:4px 0;font-size:13px;text-decoration:none;display:block}.toc-link:hover,.toc-link.active{color:var(--ink)}.prose-loading{min-height:60vh}.prose{color:var(--ink-soft)}.prose>:first-child{margin-top:0}.prose p{margin:0 0 18px}.prose strong{color:var(--ink);font-weight:600}.prose a{color:var(--ink);text-underline-offset:3px;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2)}.prose a:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.prose h2,.prose h3,.prose h4{scroll-margin-top:calc(var(--nav-h) + 24px);color:var(--ink);font-family:var(--display);font-weight:500}.prose h2{letter-spacing:-.02em;margin:48px 0 16px;font-size:26px}.prose h3{margin:32px 0 10px;font-size:19px}.prose ul,.prose ol{margin:0 0 18px;padding-left:22px}.prose li{margin:5px 0}.prose li::marker{color:var(--muted)}.prose hr{border:0;border-top:1px solid var(--line);margin:40px 0}.prose blockquote{border-left:1px solid var(--line-2);color:var(--muted);margin:0 0 18px;padding:2px 16px}.prose :not(pre)>code{background:var(--bg-2);border:1px solid var(--line);font-family:var(--mono);color:var(--ink);padding:1px 5px;font-size:.85em}.prose input[type=checkbox]{accent-color:var(--ink);margin:0 8px 0 0}.prose .contains-task-list{padding-left:0;list-style:none}.table-wrap{margin:0 0 24px;overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:14.5px}.prose th,.prose td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:10px 16px 10px 0}.prose th{color:var(--ink);white-space:nowrap;font-weight:500}.codeblock{border:1px solid var(--line);background:var(--bg-2);margin:0 0 24px}.codeblock-title{border-bottom:1px solid var(--line);font-family:var(--mono);color:var(--muted);padding:8px 14px;font-size:12px}.codeblock-frame{position:relative}.codeblock pre{font-family:var(--mono);color:var(--ink);margin:0;padding:16px 18px;font-size:13.5px;line-height:1.7;overflow-x:auto}.codeblock pre code{font-family:inherit}.codeblock-copy{border:1px solid var(--line-2);background:var(--bg-2);width:28px;height:28px;color:var(--muted);opacity:0;place-items:center;transition:opacity .2s;display:grid;position:absolute;top:8px;right:8px}.codeblock-copy:hover{color:var(--ink)}.codeblock-frame:hover .codeblock-copy,.codeblock-copy:focus-visible{opacity:1}@media (hover:none){.codeblock-copy{opacity:1}}.hljs-comment{color:#6b6b6b;font-style:italic}.hljs-keyword,.hljs-built_in,.hljs-type{color:#fff;font-weight:500}.hljs-string{color:#b8c4a8}.hljs-number,.hljs-literal{color:#d6b98c}.hljs-title,.hljs-title.function_{color:#c8c8ff}.hljs-attr,.hljs-variable,.hljs-property,.hljs-meta{color:#a9a9a6}.callout{--c:var(--note);border-left:2px solid var(--c);background:var(--bg-2);gap:12px;margin:0 0 24px;padding:14px 16px;display:flex}.callout-tip{--c:var(--tip)}.callout-warning{--c:var(--warning)}.callout-danger{--c:var(--danger)}.callout-icon{color:var(--c);flex-shrink:0;margin-top:3px}.callout-body{flex:1;min-width:0;font-size:15px}.callout-body>:last-child{margin-bottom:0}.steps{counter-reset:step;margin:0 0 24px}.step{counter-increment:step;padding:0 0 20px 44px;position:relative}.step:before{content:counter(step);border:1px solid var(--line-2);width:26px;height:26px;color:var(--ink);place-items:center;font-size:13px;font-weight:500;display:grid;position:absolute;top:2px;left:0}.prose .step>h3,.prose .step>h2{margin:0 0 10px;font-size:18px;line-height:30px}.step>:last-child{margin-bottom:0}.accordion{border-top:1px solid var(--line)}.accordion:not(:has(+.accordion)){border-bottom:1px solid var(--line);margin-bottom:28px}.accordion summary{cursor:pointer;color:var(--ink);justify-content:space-between;gap:16px;padding:16px 0;list-style:none;display:flex}.accordion summary::-webkit-details-marker{display:none}.accordion summary:after{content:"+";color:var(--muted)}.accordion[open] summary:after{content:"–"}.accordion-body{color:var(--muted);padding:0 0 8px;font-size:15px}.home{max-width:720px;padding:80px var(--pad) 48px;margin:0 auto}.home-title{font-family:var(--display);letter-spacing:-.035em;margin:0 0 12px;font-size:clamp(40px,7vw,56px);font-weight:500;line-height:1}.home-sub{color:var(--muted);margin:0 0 32px;font-size:17px}.home-search{border:1px solid var(--line-2);width:100%;height:48px;color:var(--muted);text-align:left;background:0 0;align-items:center;gap:12px;padding:0 12px 0 16px;font-size:15px;display:flex}.home-search>span:first-of-type{flex:1}.home-search:hover{border-color:var(--ink)}.home-list-title{margin-top:56px}.home-list{border-top:1px solid var(--line)}.home-row{border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:18px 0;text-decoration:none;display:flex}.home-row-main{flex:1;min-width:0}.home-row strong{font-family:var(--display);color:var(--ink);font-size:19px;font-weight:500;display:block}.home-row small{color:var(--muted);font-size:14px;display:block}.home-row-meta{font-family:var(--mono);color:var(--muted);font-size:12px}.home-row-arrow{color:var(--muted);transition:transform .2s}.home-row:hover .home-row-arrow{color:var(--ink);transform:translate(4px)}.modal-backdrop{z-index:100;background:#000000b3;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;display:flex;position:fixed;inset:0}.search-modal{border:1px solid var(--line-2);background:var(--bg-2);flex-direction:column;width:100%;max-width:600px;max-height:70vh;display:flex;overflow:hidden}.search-input-wrap{border-bottom:1px solid var(--line);color:var(--muted);align-items:center;gap:12px;padding:0 16px;display:flex}.search-input-wrap input{min-width:0;height:54px;color:var(--ink);font:inherit;background:0 0;border:0;outline:none;flex:1}.search-input-wrap kbd{cursor:pointer}.search-results{padding:4px 0;overflow-y:auto}.search-empty{text-align:center;color:var(--muted);margin:0;padding:28px 16px;font-size:14px}.search-result{text-align:left;background:0 0;border:0;flex-direction:column;gap:2px;width:100%;padding:10px 16px;display:flex}.search-result[data-active=true]{background:var(--hover)}.search-result-path{color:var(--muted);font-size:12px}.search-result-title{color:var(--ink);font-weight:500}.search-result-snippet{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.search-result mark{color:var(--ink);background:0 0;text-decoration:underline}.search-footer{border-top:1px solid var(--line);color:var(--muted);gap:16px;padding:10px 16px;font-size:11px;display:flex}.search-footer kbd{margin-right:4px}@media (width<=1200px){.page{grid-template-columns:minmax(0,720px)}.page-toc{display:none}}@media (width<=1024px){.menu-btn{display:inline-grid}.shell{display:block}.sidebar{z-index:60;width:min(300px,85vw);height:100%;transition:transform .3s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar.open{transform:none}.sidebar-panel{padding-top:64px}.sidebar-close{display:inline-grid;position:absolute;top:14px;right:14px}.sidebar-backdrop{z-index:55;background:#0009;display:block;position:fixed;inset:0}}@media (width<=700px){.navbar-inner{grid-template-columns:auto 1fr auto}.search-trigger{justify-content:center;width:36px;padding:0}.search-trigger-label,.search-trigger .kbds,.home-search .kbds{display:none}.logo{justify-self:center}.navbar-actions .nav-link:first-child{display:none}.home{padding-top:48px}.page-content{padding-top:32px}.page-title{font-size:32px}.home-row-meta{display:none}}
