:root{--ground:#0F1214;--panel:#151A1D;--panel-2:#111618;--rule:#242B2F;--rule-soft:#1B2124;--text:#E4E7E6;--text-dim:#9AA3A7;--text-mute:#6E777C;--c0:#E9A63F;--c1:#45BFA8;--c2:#8F82E6;--c0-soft:rgba(233,166,63,.13);--c1-soft:rgba(69,191,168,.13);--c2-soft:rgba(143,130,230,.13);--shadow:0 1px 0 rgba(255,255,255,.03), 0 18px 40px -24px rgba(0,0,0,.9);--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--wrap:1120px}@media(prefers-color-scheme:light){:root{--ground:#EDEEEC;--panel:#F9FAF8;--panel-2:#F3F4F1;--rule:#D3D8D4;--rule-soft:#E1E5E1;--text:#12181A;--text-dim:#48535A;--text-mute:#697479;--c0:#9C6A08;--c1:#0F7566;--c2:#544AC0;--c0-soft:rgba(156,106,8,.10);--c1-soft:rgba(15,117,102,.10);--c2-soft:rgba(84,74,192,.10);--shadow:0 1px 0 rgba(255,255,255,.6), 0 16px 34px -26px rgba(20,30,34,.55)}}:root[data-theme=light]{--ground:#EDEEEC;--panel:#F9FAF8;--panel-2:#F3F4F1;--rule:#D3D8D4;--rule-soft:#E1E5E1;--text:#12181A;--text-dim:#48535A;--text-mute:#697479;--c0:#9C6A08;--c1:#0F7566;--c2:#544AC0;--c0-soft:rgba(156,106,8,.10);--c1-soft:rgba(15,117,102,.10);--c2-soft:rgba(84,74,192,.10);--shadow:0 1px 0 rgba(255,255,255,.6), 0 16px 34px -26px rgba(20,30,34,.55)}:root[data-theme=dark]{--ground:#0F1214;--panel:#151A1D;--panel-2:#111618;--rule:#242B2F;--rule-soft:#1B2124;--text:#E4E7E6;--text-dim:#9AA3A7;--text-mute:#6E777C;--c0:#E9A63F;--c1:#45BFA8;--c2:#8F82E6;--c0-soft:rgba(233,166,63,.13);--c1-soft:rgba(69,191,168,.13);--c2-soft:rgba(143,130,230,.13);--shadow:0 1px 0 rgba(255,255,255,.03), 0 18px 40px -24px rgba(0,0,0,.9)}body{background:var(--ground);color:var(--text);font:15px/1.62 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit}h1,h2,h3{text-wrap:balance;margin:0}p{margin:0}code,kbd{font-family:var(--mono)}.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:24px}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-mute)}.nav{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--ground) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}.nav-in{display:flex;align-items:center;gap:14px;height:56px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;margin-right:auto}.brand .wordmark{display:block;flex:none;width:115px;height:20px;background:var(--text);-webkit-mask:url(../img/wordmark.png)no-repeat left center/contain;mask:url(../img/wordmark.png)no-repeat left center/contain}.brand b{font-family:var(--mono);font-weight:600;font-size:14px;letter-spacing:.01em}.brand span{color:var(--text-mute);font-family:var(--mono);font-size:14px}.nav a.link{font-family:var(--mono);font-size:12.5px;color:var(--text-dim);text-decoration:none;padding:6px 2px;border-bottom:1px solid transparent}.nav a.link:hover{color:var(--text);border-bottom-color:var(--c0)}.nav a.link:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--c1);outline-offset:3px;border-radius:2px}.nav .sep{width:1px;height:18px;background:var(--rule)}.tog{font-family:var(--mono);font-size:12px;color:var(--text-dim);background:0 0;border:1px solid var(--rule);border-radius:3px;padding:4px 8px;cursor:pointer}.tog:hover{color:var(--text);border-color:var(--text-mute)}@media(max-width:720px){.nav .hide-sm{display:none}}.hero{border-bottom:1px solid var(--rule);position:relative;overflow:hidden}.hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(80ch 30ch at 12% -10%,var(--c0-soft),transparent 70%),radial-gradient(70ch 26ch at 88% 0%,var(--c1-soft),transparent 70%)}.hero-in{position:relative;padding:64px 0 40px}.hero h1{font-size:clamp(38px,7.4vw,68px);line-height:.98;letter-spacing:-.028em;font-weight:640;margin:16px 0 0}.hero h1 em{font-style:normal;color:var(--text-mute)}.lede{margin-top:22px;max-width:62ch;font-size:17.5px;line-height:1.55;color:var(--text-dim)}.lede strong{color:var(--text);font-weight:600}.hero-meta{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:24px;font-family:var(--mono);font-size:12px;color:var(--text-mute)}.hero-meta b{color:var(--text-dim);font-weight:500}.dotc0,.dotc1,.dotc2{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:7px;vertical-align:1px}.dotc0{background:var(--c0)}.dotc1{background:var(--c1)}.dotc2{background:var(--c2)}.shot{margin-top:40px;border:1px solid var(--rule);border-radius:6px;background:var(--panel);box-shadow:var(--shadow);overflow:hidden}.shot-bar{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--rule);background:var(--panel-2);font-family:var(--mono);font-size:11.5px;color:var(--text-mute)}.live{display:inline-flex;align-items:center;gap:7px;color:var(--c1)}.live i{width:7px;height:7px;border-radius:50%;background:var(--c1);animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}@media(prefers-reduced-motion:reduce){.live i{animation:none}}.shot img{display:block;width:100%;height:auto}.shot-cap{padding:11px 14px;border-top:1px solid var(--rule-soft);font-size:13px;color:var(--text-mute);background:var(--panel-2)}.shot-cap b{color:var(--text-dim);font-weight:500}.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--panel-2)}.stat{padding:22px 24px;border-left:1px solid var(--rule-soft)}.stat:first-child{border-left:0}.stat .n{font-family:var(--mono);font-size:26px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text)}.stat .n small{font-size:14px;color:var(--text-mute);margin-left:3px}.stat .k{margin-top:7px;font-size:12.5px;line-height:1.45;color:var(--text-mute)}.stat:nth-child(1) .n{color:var(--c0)}.stat:nth-child(2) .n{color:var(--c1)}.stat:nth-child(3) .n{color:var(--c2)}@media(max-width:880px){.stats{grid-template-columns:repeat(2,1fr)}.stat:nth-child(3){border-left:0}.stat:nth-child(n+3){border-top:1px solid var(--rule-soft)}}@media(max-width:460px){.stats{grid-template-columns:1fr}.stat{border-left:0}.stat+.stat{border-top:1px solid var(--rule-soft)}}.clause{border-bottom:1px solid var(--rule);padding:56px 0}.clause-in{display:grid;grid-template-columns:76px minmax(0,1fr);gap:0 28px}.cnum{font-family:var(--mono);font-size:12.5px;color:var(--text-mute);letter-spacing:.06em;padding-top:6px}.clause h2{font-size:clamp(22px,3vw,29px);letter-spacing:-.018em;font-weight:620}.clause .sub{margin-top:10px;color:var(--text-dim);max-width:66ch;font-size:15.5px}.body{margin-top:26px;display:flex;flex-direction:column;gap:18px;max-width:70ch}.body p{color:var(--text-dim)}.body strong{color:var(--text);font-weight:600}.body code{font-size:.9em;background:var(--panel);border:1px solid var(--rule-soft);border-radius:3px;padding:1px 5px;color:var(--text)}@media(max-width:760px){.clause-in{grid-template-columns:1fr;gap:0}.cnum{padding:0 0 10px}}.tblwrap{margin-top:26px;overflow-x:auto;border:1px solid var(--rule);border-radius:5px;background:var(--panel)}table{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:12.5px}caption{text-align:left;padding:11px 14px;border-bottom:1px solid var(--rule);background:var(--panel-2);color:var(--text-dim);font-size:12px;letter-spacing:.02em}th,td{padding:9px 14px;text-align:left;border-top:1px solid var(--rule-soft);white-space:nowrap}thead th{border-top:0;color:var(--text-mute);font-weight:500;font-size:11px;letter-spacing:.1em;text-transform:uppercase}tbody td:first-child{color:var(--text)}td.num{text-align:right;font-variant-numeric:tabular-nums}td.note{white-space:normal;color:var(--text-mute);font-family:var(--sans);font-size:12.5px;min-width:20ch}tr.best td{background:var(--c1-soft)}tr.best td:first-child{box-shadow:inset 2px 0 0 var(--c1)}.warnv{color:var(--c0)}.okv{color:var(--c1)}pre{margin:0;overflow-x:auto;padding:16px 18px;border:1px solid var(--rule);border-radius:5px;background:var(--panel);font-family:var(--mono);font-size:12.5px;line-height:1.65;color:var(--text-dim)}pre b{color:var(--text);font-weight:500}pre i{font-style:normal;color:var(--text-mute)}pre .k0{color:var(--c0)}pre .k1{color:var(--c1)}.split{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:26px;align-items:start}@media(max-width:860px){.split{grid-template-columns:1fr}}.repos{display:flex;flex-direction:column;gap:18px;margin-top:28px}.repo{border:1px solid var(--rule);border-radius:6px;background:var(--panel);overflow:hidden;box-shadow:var(--shadow)}.repo-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 18px;border-bottom:1px solid var(--rule-soft)}.repo-head h3{font-family:var(--mono);font-size:16px;font-weight:600;letter-spacing:-.01em}.repo.emb .repo-head h3{color:var(--c0)}.repo.net .repo-head h3{color:var(--c1)}.tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:99px;border:1px solid var(--rule);color:var(--text-mute)}.tag.open{color:var(--c1);border-color:color-mix(in srgb,var(--c1) 45%,transparent);background:var(--c1-soft)}.tag.soon{color:var(--c0);border-color:color-mix(in srgb,var(--c0) 45%,transparent);background:var(--c0-soft)}.repo-head .gh{margin-left:auto;font-family:var(--mono);font-size:12.5px;text-decoration:none;color:var(--text-dim);border-bottom:1px solid var(--rule)}.repo-head .gh:hover{color:var(--text);border-bottom-color:var(--c1)}.repo-body{padding:18px;display:grid;grid-template-columns:minmax(0,1fr)minmax(0,1fr);gap:20px}.repo-body p{color:var(--text-dim);font-size:14.5px}.repo-body ul{margin:14px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:7px}.repo-body li{font-family:var(--mono);font-size:12.5px;color:var(--text-dim);padding-left:16px;position:relative}.repo-body li::before{content:"·";position:absolute;left:4px;color:var(--text-mute)}.repo-body .side{border:1px solid var(--rule-soft);border-radius:4px;overflow:hidden;background:var(--panel-2)}.repo-body .side img{display:block;width:100%;height:auto}.repo-body .side figcaption{padding:9px 12px;font-size:12px;color:var(--text-mute);border-top:1px solid var(--rule-soft)}@media(max-width:860px){.repo-body{grid-template-columns:1fr}}.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;margin-top:26px}@media(max-width:760px){.cols{grid-template-columns:1fr}}.lgroup h4{margin:0 0 12px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-mute);font-weight:500}.lgroup ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}.lgroup li{font-size:14px;color:var(--text-dim);padding-left:22px;position:relative;line-height:1.5}.lgroup li b{color:var(--text);font-weight:600}.lgroup li::before{position:absolute;left:0;top:.05em;font-family:var(--mono);font-size:11.5px}.lgroup.done li::before{content:"✓";color:var(--c1)}.lgroup.next li::before{content:"→";color:var(--c0)}.lgroup.hw li::before{content:"▮";color:var(--c2);font-size:9px;top:.35em}footer{padding:40px 0 64px;color:var(--text-mute);font-size:13px}.foot-in{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:baseline}footer .disclaimer{max-width:60ch;line-height:1.55}footer a{color:var(--text-dim);text-decoration:none;border-bottom:1px solid var(--rule)}footer a:hover{color:var(--text)}.foot-mono{font-family:var(--mono);font-size:12px;margin-left:auto}.busbg{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;display:block}main,footer{position:relative;z-index:1}.nav a.link[aria-current=page]{color:var(--text);border-bottom-color:var(--c1)}.ghbtn{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-family:var(--mono);font-size:12px;color:var(--text-dim);text-decoration:none;border:1px solid var(--rule);border-radius:3px;padding:4px 8px;background:var(--panel-2)}.ghmark{width:15px;height:15px;flex:none;display:block}.ghbtn.emb .ghmark{color:var(--c0)}.ghbtn.net .ghmark{color:var(--c1)}.ghbtn.lg{gap:10px;font-size:13.5px;color:var(--text);padding:9px 15px;border-radius:9px}.ghbtn.lg .ghmark{width:19px;height:19px}.ghbtn.emb:hover{border-color:color-mix(in srgb,var(--c0) 55%,transparent)}.ghbtn.net:hover{border-color:color-mix(in srgb,var(--c1) 55%,transparent)}.ghbtn:hover{color:var(--text);border-color:var(--text-mute)}@media(max-width:980px){.nav .hide-md{display:none}}@media(max-width:560px){.nav .hide-xs{display:none}.nav-in{gap:10px}.brand .wordmark{width:96px;height:17px}}.pagehead{border-bottom:1px solid var(--rule);position:relative;overflow:hidden}.pagehead::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(70ch 26ch at 10% -20%,var(--c2-soft),transparent 70%)}.pagehead.emb::before{background:radial-gradient(70ch 26ch at 10% -20%,var(--c0-soft),transparent 70%)}.pagehead.net::before{background:radial-gradient(70ch 26ch at 10% -20%,var(--c1-soft),transparent 70%)}.pagehead-in{position:relative;padding:52px 0 40px}.pagehead h1{font-size:clamp(32px,5.4vw,52px);line-height:1;letter-spacing:-.025em;font-weight:640;margin:14px 0 0}.pagehead.emb h1{color:var(--c0)}.pagehead.net h1{color:var(--c1)}.pagehead .lede code{font-size:.9em}.pagehead-links{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap}.shot-cap code{font-size:.92em}.features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px}@media(max-width:1020px){.features{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.features{grid-template-columns:1fr}}.feat{display:flex;flex-direction:column;gap:10px;padding:18px;text-decoration:none;border:1px solid var(--rule);border-radius:6px;background:var(--panel);transition:border-color .15s,transform .15s}.feat:hover{border-color:var(--text-mute);transform:translateY(-1px)}@media(prefers-reduced-motion:reduce){.feat{transition:none}.feat:hover{transform:none}}.feat-k{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--text-mute)}.feat-k i{width:7px;height:7px;border-radius:2px}.feat.emb .feat-k i{background:var(--c0)}.feat.net .feat-k i{background:var(--c1)}.feat.meas .feat-k i{background:var(--c2)}.feat h3{font-size:16.5px;font-weight:620;letter-spacing:-.01em;color:var(--text)}.feat p{font-size:13.5px;line-height:1.5;color:var(--text-dim)}.feat code{font-size:.92em;color:var(--text)}.products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}@media(max-width:860px){.products{grid-template-columns:1fr}}.product-body{padding:18px;display:flex;flex-direction:column;gap:18px}.product-body p{color:var(--text-dim);font-size:14.5px;line-height:1.55}.product-links{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.more{font-family:var(--mono);font-size:12.5px;color:var(--text);text-decoration:none;border-bottom:1px solid var(--rule)}.more:hover{border-bottom-color:var(--c1)}.clause>.wrap>.eyebrow a{color:inherit}.posts{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column}.post{display:grid;grid-template-columns:120px minmax(0,1fr);gap:6px 24px;padding:18px 0;border-top:1px solid var(--rule-soft)}.post:first-child{border-top:0}.post time{font-family:var(--mono);font-size:12px;color:var(--text-mute);padding-top:3px;font-variant-numeric:tabular-nums}.post-title{font-size:18px;font-weight:600;color:var(--text);text-decoration:none;letter-spacing:-.01em}.post-title:hover{color:var(--c1)}.post p{margin-top:6px;color:var(--text-dim);font-size:14.5px;max-width:70ch}@media(max-width:560px){.post{grid-template-columns:1fr}}.empty{color:var(--text-dim)}.empty a{color:var(--c1)}.prose{max-width:68ch;padding:44px 0 64px;font-size:16.5px;line-height:1.7;color:var(--text-dim)}.prose>*+*{margin-top:1.05em}.prose h2{margin-top:2em;font-size:23px;color:var(--text);letter-spacing:-.015em}.prose h3{margin-top:1.6em;font-size:18px;color:var(--text)}.prose strong{color:var(--text)}.prose a{color:var(--c1)}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.35em}.prose code{font-size:.88em;background:var(--panel);border:1px solid var(--rule-soft);border-radius:3px;padding:1px 5px;color:var(--text)}.prose pre{margin-top:1.4em;margin-bottom:1.4em}.prose pre code{background:0 0;border:0;padding:0;font-size:inherit;color:inherit}.prose blockquote{margin:1.4em 0;padding:.1em 0 .1em 1.1em;border-left:2px solid var(--c0);color:var(--text)}.prose img{display:block;border:1px solid var(--rule);border-radius:5px;height:auto}.prose .tblwrap{margin-top:1.4em}.prose table{font-size:12.5px}.prose .back{margin-top:2.6em;font-family:var(--mono);font-size:13px}