@font-face{font-family:GeistSans;src:url(../media/Geist_Variable-s.p.142kz3f7gseln.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local(Arial);ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.0%;size-adjust:106.28%}.geistsans_d5a4f12f-module__Ussaia__className{font-family:GeistSans,GeistSans Fallback}.geistsans_d5a4f12f-module__Ussaia__variable{--font-geist-sans:"GeistSans", "GeistSans Fallback"}
@font-face{font-family:GeistMono;src:url(../media/GeistMono_Variable.p.074yowjdp83r3.woff2)format("woff2");font-display:swap;font-weight:100 900}.geistmono_157ca88a-module__Nq5NJG__className{font-family:GeistMono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}.geistmono_157ca88a-module__Nq5NJG__variable{--font-geist-mono:"GeistMono", ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New, monospace}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fff;--surface:#f7f7f6;--fg:#0b0b0b;--ink:#555;--dim:#6b6b6b;--faint:#a8a8a8;--line:#0000001f;--line-soft:#0001;--acc:#4746d4;--acc-soft:#4746d417;--head:#ffffffd1;--ease:cubic-bezier(.16, 1, .3, 1);--sans:var(--font-geist-sans), -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mono:var(--font-geist-mono), ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--gutter:clamp(1rem, 4vw, 3rem);--pad:clamp(4.5rem, 10vw, 8.5rem);--headh:4rem}@media (prefers-color-scheme:dark){:root{--bg:#090909;--surface:#111;--fg:#f2f2f0;--ink:#a6a6a6;--dim:#8c8c8c;--faint:#575757;--line:#ffffff21;--line-soft:#ffffff12;--acc:#9d9cff;--acc-soft:#9d9cff1a;--head:#090909c7}}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;scroll-behavior:smooth;scroll-padding-top:calc(var(--headh) + 1.5rem);-webkit-text-size-adjust:100%;overflow-x:clip}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}body{background:var(--bg);min-height:100dvh;color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;flex-direction:column;font-size:.9375rem;line-height:1.6;display:flex;overflow-x:clip}main{flex:1}a{color:inherit;text-decoration:none}::selection{background:var(--fg);color:var(--bg)}:focus-visible{outline:1px solid var(--fg);outline-offset:3px}code,kbd,pre{font-family:var(--mono);font-feature-settings:"liga" 0}h1,h2,h3{text-wrap:balance}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.tnum{font-variant-numeric:tabular-nums}.wrap{width:100%;max-width:76rem;padding-inline:var(--gutter);border-inline:1px solid var(--line-soft);margin-inline:auto;position:relative}.rule{border-top:1px solid var(--line-soft)}.rule:before,.rule:after{content:"";background:var(--bg);border:1px solid var(--faint);width:5px;height:5px;position:absolute;top:-3px}.rule:before{left:-3px}.rule:after{right:-3px}@media (max-width:48rem){.wrap{border-inline:0}.rule:before,.rule:after{display:none}}.label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);gap:1rem;font-size:.6875rem;display:flex}.label-name{color:var(--fg)}.lead{color:var(--ink);font-size:clamp(1rem,1.3vw,1.125rem);line-height:1.6}.small{color:var(--ink);font-size:.875rem;line-height:1.65}.item{letter-spacing:-.015em;font-size:1.0625rem;font-weight:560;line-height:1.3}.mini{font-family:var(--mono);color:var(--dim);font-size:.6875rem}.mini-link{font-family:var(--mono);color:var(--dim);white-space:nowrap;align-items:center;gap:.375rem;font-size:.6875rem;transition:color .2s;display:inline-flex}.mini-link:hover{color:var(--fg)}.mini-link svg{width:11px;height:11px}.head{z-index:20;border-bottom:1px solid var(--line-soft);background:var(--head);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);position:sticky;top:0}.head-in{height:var(--headh);justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.skip{left:var(--gutter);z-index:30;background:var(--fg);color:var(--bg);font-family:var(--mono);padding:.5rem .75rem;font-size:.75rem;position:absolute;top:-3rem}.skip:focus{top:.75rem}.brand{letter-spacing:.02em;align-items:center;gap:.625rem;font-size:.9375rem;font-weight:600;display:inline-flex}.nav{align-items:center;gap:1.75rem;display:flex}.nav a{font-family:var(--mono);color:var(--ink);border-bottom:1px solid #0000;padding-block:.25rem;font-size:.75rem;transition:color .2s}.nav a:hover,.nav a[aria-current]{color:var(--fg)}.nav a[aria-current]{border-bottom-color:var(--fg)}@media (max-width:30rem){.nav{gap:1.125rem}}.acts{flex-wrap:wrap;gap:.75rem;display:flex}.btn{height:2.75rem;font-family:var(--mono);white-space:nowrap;border:1px solid;justify-content:center;align-items:center;gap:.625rem;padding-inline:1.25rem;font-size:.75rem;transition:background-color .2s,color .2s,border-color .2s;display:inline-flex}.btn-primary{border-color:var(--fg);background:var(--fg);color:var(--bg)}.btn-primary:hover{color:var(--fg);background:0 0}.btn-ghost{border-color:var(--line);color:var(--fg)}.btn-ghost:hover{border-color:var(--fg)}.hero-in{align-items:end;gap:3rem;padding-top:clamp(3.5rem,7vw,6rem);display:grid}@media (min-width:64rem){.hero-in{grid-template-columns:minmax(0,8fr) minmax(0,4fr)}}.facts{border-top:1px solid var(--line);font-family:var(--mono);font-size:.75rem}.facts div{border-bottom:1px solid var(--line);grid-template-columns:5rem minmax(0,1fr);gap:.75rem;padding-block:.625rem;display:grid}.facts dt{color:var(--dim)}.facts dd{color:var(--fg)}@media (max-width:48rem){.facts{display:none}}.hero-h{letter-spacing:-.05em;max-width:13ch;margin-top:1.75rem;margin-left:-.04em;font-size:clamp(2.75rem,6.6vw,5.5rem);font-weight:580;line-height:.95}.hero-deck{text-wrap:pretty;max-width:36rem;margin-top:clamp(1.5rem,3vw,2.25rem)}.hero .acts{margin-top:2.25rem}.demo-wrap{padding-top:clamp(3rem,5vw,4rem);padding-bottom:var(--pad)}.caption{max-width:40rem;font-family:var(--mono);color:var(--dim);margin-top:1rem;font-size:.6875rem;line-height:1.7}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}@media (prefers-reduced-motion:no-preference){.rise{animation:rise 1s var(--ease) both;animation-delay:calc(var(--i,0) * 90ms + 80ms)}}.demo{border:1px solid var(--line);background:var(--surface);font-family:var(--mono);font-size:.75rem;line-height:1.7}.d-bar{border-bottom:1px solid var(--line-soft);height:2.5rem;color:var(--dim);white-space:nowrap;align-items:center;gap:.875rem;padding-inline:.875rem;font-size:.6875rem;display:flex}.d-lights{background:radial-gradient(circle, var(--faint) 2.4px, transparent 2.9px) 0 0 / 9px 6px repeat-x;flex:none;width:26px;height:6px}.d-title{color:var(--fg)}.d-count{font-variant-numeric:tabular-nums;margin-left:auto}.d-grid{grid-template-columns:20rem minmax(0,1fr);display:grid}.d-tree{border-right:1px solid var(--line-soft);padding:1.25rem 1rem;list-style:none}.d-row{height:1.875rem;transition:opacity .6s var(--ease);grid-template-columns:1.25rem 3.75rem minmax(0,1fr) auto;align-items:center;gap:.5rem;display:grid}.d-row[data-state=idle]{opacity:0}.d-row:first-child .d-branch{display:none}.d-row:first-child .d-handle{grid-column:1/span 2}.d-branch{align-self:stretch;position:relative}.d-branch:before,.d-branch:after{content:"";background:var(--line);position:absolute;left:.25rem}.d-branch:before{width:1px;top:0;bottom:0}.d-row:last-child .d-branch:before{bottom:50%}.d-branch:after{width:.625rem;height:1px;top:50%}.d-handle{color:var(--fg)}.d-harness{text-overflow:ellipsis;color:var(--dim);overflow:hidden}.d-state{min-width:4.5rem;color:var(--dim);justify-content:flex-end;align-items:center;gap:.4375rem;display:inline-flex}.d-state i{border:1px solid;width:6px;height:6px}.d-row[data-state=working] .d-state i{background:var(--acc);border-color:var(--acc)}.d-row[data-state=waiting] .d-state i{border-color:var(--acc)}.d-row[data-state=done] .d-state i{background:var(--faint);border-color:var(--faint)}.d-flash{color:var(--acc)}.d-log{height:31rem;transition:opacity .6s var(--ease);position:relative;overflow:hidden}.d-log.scrolled{-webkit-mask-image:linear-gradient(#0000,#000 3.5rem);mask-image:linear-gradient(#0000,#000 3.5rem)}.d-log.fading{opacity:0}.d-log-in{padding:1.25rem 1.5rem 1.375rem}.d-entry+.d-entry{margin-top:.875rem}@media (prefers-reduced-motion:no-preference){.d-entry{animation:d-in .5s var(--ease) both}}@keyframes d-in{0%{opacity:0;transform:translateY(4px)}}.d-entry p{white-space:pre-wrap;overflow-wrap:anywhere}.d-cmd{color:var(--fg);gap:.75rem;display:flex}.d-prompt{color:var(--faint);-webkit-user-select:none;user-select:none}.d-caret{vertical-align:-.2em;background:var(--fg);width:.5em;height:1.1em;margin-left:1px;display:inline-block}.d-note{color:var(--dim)}.d-note:before{content:"· ";color:var(--faint)}.d-msg,.d-inset{border-left:1px solid var(--line);padding-left:.875rem}.d-inset{border:1px solid var(--line-soft);border-left:1px solid var(--acc);background:var(--bg);margin-left:1.5rem;padding:.625rem .875rem}.d-inset-label{letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-bottom:.375rem;font-size:.625rem}.d-tag{color:var(--dim)}.d-steer{color:var(--acc)}.d-body{color:var(--fg)}.d-faint{color:var(--faint)}.d-expect,.d-faint-inline{color:var(--dim)}@media (max-width:52rem){.d-grid{grid-template-columns:minmax(0,1fr)}.d-tree{border-right:0;border-bottom:1px solid var(--line-soft);padding:.875rem .875rem .75rem}.d-log{height:27rem}.d-log-in{padding:1rem .875rem}.d-inset{margin-left:0}}@media (max-width:30rem){.demo{font-size:.6875rem}.d-bar .d-faint-inline{display:none}}.section{padding-block:var(--pad)}.shead{align-items:end;gap:1.75rem 3rem;display:grid}.shead-main .label{margin-bottom:1.75rem}.shead h2{letter-spacing:-.045em;font-size:clamp(2.25rem,5.2vw,4.25rem);font-weight:560;line-height:.96}.shead-side{flex-direction:column;gap:1rem;display:flex}@media (min-width:64rem){.shead{grid-template-columns:7fr 5fr}.shead-side{padding-bottom:.375rem}}.cells{border:1px solid var(--line-soft);background:var(--line-soft);gap:1px;margin-top:clamp(3rem,6vw,4.5rem);list-style:none;display:grid}.cell{background:var(--bg);flex-direction:column;gap:.75rem;padding:1.75rem;display:flex}.cell .item{margin-top:1.5rem}.cell-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.25rem;margin-top:auto;padding-top:1.25rem;display:flex}.sample{min-width:0;color:var(--dim);white-space:pre;text-overflow:ellipsis;font-size:.6875rem;overflow:hidden}@media (min-width:40rem){.rules{grid-template-columns:repeat(2,minmax(0,1fr))}.rules .cell:last-child{grid-column:1/-1}}@media (min-width:64rem){.rules{grid-template-columns:repeat(6,minmax(0,1fr))}.rules .cell{grid-column:span 2}.rules .cell:nth-child(-n+2){grid-column:span 3}.rules .cell:last-child{grid-column:span 2}}@media (max-width:40rem){.cell{padding:1.5rem}.cell .item{margin-top:.75rem}}@media (min-width:64rem){.authors{grid-template-columns:7fr 5fr}}.caps{border-collapse:collapse;background:var(--bg);width:100%;font-size:.875rem}.caps th,.caps td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line-soft);padding:.875rem 1.75rem}.caps tr:last-child th,.caps tr:last-child td{border-bottom:0}.caps thead th{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);padding-block:1.125rem .75rem;font-size:.6875rem;font-weight:400}.caps tbody th{color:var(--fg);font-weight:500}.caps td{font-family:var(--mono);color:var(--ink);font-size:.75rem;line-height:1.85}@media (max-width:40rem){.caps th,.caps td{padding-inline:1.25rem .75rem}}.musts .label{margin-bottom:.75rem}.musts ol{counter-reset:must;list-style:none}.musts li{counter-increment:must;border-bottom:1px solid var(--line-soft);letter-spacing:-.015em;gap:1rem;padding-block:.6875rem;font-size:1.0625rem;font-weight:500;display:flex}.musts li:before{content:counter(must, decimal-leading-zero);font-family:var(--mono);letter-spacing:0;color:var(--dim);padding-top:.25rem;font-size:.6875rem;font-weight:400}.musts .cell-foot{justify-content:flex-start}.term{border:1px solid var(--line);background:var(--surface);margin-top:clamp(3rem,6vw,4.5rem)}.term-bar{border-bottom:1px solid var(--line-soft);height:2.5rem;font-family:var(--mono);color:var(--dim);align-items:center;gap:.875rem;padding-left:.875rem;font-size:.6875rem;display:flex}.copy{border:0;border-left:1px solid var(--line-soft);font:inherit;color:var(--dim);cursor:pointer;background:0 0;align-self:stretch;margin-left:auto;padding-inline:1rem;transition:color .2s}.copy:hover{color:var(--fg)}.copy:focus-visible{outline-offset:-3px}.term-body{color:var(--fg);scrollbar-width:thin;padding:1.5rem 1.5rem 1.625rem;font-size:.8125rem;line-height:1.9;overflow-x:auto}.q-cmd .d-prompt{color:var(--faint)}.q-comment{color:var(--dim)}@media (max-width:40rem){.term-body{padding:1.125rem;font-size:.75rem}}.after{flex-wrap:wrap;gap:.75rem 1.75rem;margin-top:1.5rem;display:flex}.foot-in{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:2rem 3rem;padding-block:3.5rem;display:flex}.foot-brand p{font-family:var(--mono);color:var(--dim);margin-top:.875rem;font-size:.6875rem}.foot-nav{flex-wrap:wrap;gap:.75rem 1.75rem;display:flex}.foot-nav a{font-family:var(--mono);color:var(--ink);font-size:.75rem;transition:color .2s}.foot-nav a:hover{color:var(--fg)}.spec-wrap{grid-template-columns:15rem minmax(0,1fr);gap:4rem;display:grid}.spec-side{border-right:1px solid var(--line-soft)}.toc{top:var(--headh);max-height:calc(100dvh - var(--headh));scrollbar-width:thin;padding:3.5rem 1.5rem 3rem 0;position:sticky;overflow-y:auto}.toc .label{margin-bottom:1.25rem}.toc ol{list-style:none}.toc a{border-left:1px solid var(--line-soft);color:var(--dim);margin-left:-1px;padding:.3125rem 0 .3125rem .75rem;font-size:.8125rem;line-height:1.4;transition:color .2s,border-color .2s;display:block}.toc a:hover{color:var(--fg)}.toc a[aria-current]{color:var(--fg);border-left-color:var(--fg)}.toc-mobile{display:none}@media (max-width:64rem){.spec-wrap{grid-template-columns:minmax(0,1fr);gap:0}.spec-side{display:none}.toc-mobile{border:1px solid var(--line);margin-top:2rem;display:block}.toc-mobile summary{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);cursor:pointer;padding:.75rem 1rem;font-size:.6875rem}.toc-mobile ol{border-top:1px solid var(--line-soft);padding:.25rem 1rem 1rem;list-style:none}.toc-mobile a{color:var(--ink);padding-block:.3125rem;font-size:.875rem;display:block}}.prose{min-width:0;max-width:46rem;padding-block:3.5rem var(--pad);color:var(--ink);font-size:.9375rem;line-height:1.7}.prose h1{letter-spacing:-.045em;color:var(--fg);margin-top:1.5rem;font-size:clamp(2.25rem,5vw,3.75rem);font-weight:580;line-height:.98}.prose h2,.prose h3,.prose h4{color:var(--fg);scroll-margin-top:calc(var(--headh) + 1.5rem);position:relative}.prose h2{border-top:1px solid var(--line-soft);letter-spacing:-.03em;margin-top:4.5rem;padding-top:2rem;font-size:1.75rem;font-weight:560;line-height:1.15}.prose h3{letter-spacing:-.015em;margin-top:2.75rem;font-size:1.125rem;font-weight:560;line-height:1.3}.prose h4{margin-top:2rem;font-size:.9375rem;font-weight:600}.prose .anchor{font-family:var(--mono);color:var(--faint);opacity:0;padding-right:.5em;font-weight:400;transition:opacity .2s;position:absolute;left:-1.25em}.prose h2 .anchor{top:2rem}.prose :is(h2,h3,h4):hover .anchor{opacity:1}@media (max-width:64rem){.prose .anchor{display:none}}.prose p,.prose ul,.prose ol,.prose pre,.prose .table{margin-top:1.125rem}.prose h2+p,.prose h3+p,.prose h3+ul,.prose h3+.table,.prose h2+.table{margin-top:1rem}.prose strong{color:var(--fg);font-weight:600}.prose ul,.prose ol{padding-left:1.25rem}.prose li+li{margin-top:.375rem}.prose li::marker{color:var(--faint)}.prose a{color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint);text-underline-offset:3px}.prose a.anchor{text-decoration:none}.prose :not(pre)>code{border:1px solid var(--line-soft);background:var(--surface);color:var(--fg);overflow-wrap:anywhere;padding:.0625rem .3125rem;font-size:.8125em}.prose pre{border:1px solid var(--line-soft);background:var(--surface);color:var(--fg);scrollbar-width:thin;padding:1.125rem 1.25rem;font-size:.75rem;line-height:1.7;overflow-x:auto}.prose pre code{white-space:pre}.prose .table{border:1px solid var(--line-soft);scrollbar-width:thin;overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:.8125rem;line-height:1.55}.prose th,.prose td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line-soft);padding:.625rem .875rem}.prose th+th,.prose td+td{border-left:1px solid var(--line-soft)}.prose tr:last-child td{border-bottom:0}.prose th{background:var(--surface);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--dim);white-space:nowrap;font-size:.6875rem;font-weight:400}.prose td:first-child{color:var(--fg)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.prose td code{background:0 0;border:0;padding:0}.show-tabs{gap:1.5rem;margin-bottom:.875rem;display:flex}.show-tabs button{font-family:var(--mono);color:var(--dim);cursor:pointer;background:0 0;border:0;border-bottom:1px solid #0000;padding:.25rem 0;font-size:.75rem;transition:color .2s,border-color .2s}.show-tabs button:hover,.show-tabs button[aria-selected=true]{color:var(--fg)}.show-tabs button[aria-selected=true]{border-bottom-color:var(--fg)}.swarm-canvas{width:100%;height:31rem;font-family:var(--mono);display:block}@media (max-width:52rem){.swarm-canvas{height:36rem}}
