:root{--paper: #f3f4f7;--panel: #ffffff;--sunk: #f8f8fb;--ink: #1b1c24;--muted: #5f6271;--rule: #dcdee6;--track: #e7e8ef;--wasm: #5b3fd6;--ts: #2a69ad;--ok: #17734a;--bad: #b3261e;--bad-bg: #fbeeed;--focus: #5b3fd6;--code-comment: #737786;--code-string: #22733f;--code-number: #9a5200;--code-keyword: #6a37c4;--code-type: #0c6b7a;--viz-ours: #6250d6;--viz-theirs: #8a8c99;--sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root{--paper: #131419;--panel: #1a1c23;--sunk: #16171d;--ink: #e5e6ec;--muted: #9a9dab;--rule: #2d303a;--track: #2a2c36;--wasm: #a08cff;--ts: #6ea8ea;--ok: #4cc38a;--bad: #ff8a80;--bad-bg: #2c1c1e;--focus: #a08cff;--code-comment: #7f8494;--code-string: #95d38a;--code-number: #f0b46a;--code-keyword: #b9a6ff;--code-type: #6fcfd9;--viz-ours: #9085e9;--viz-theirs: #696c79;color-scheme:dark}}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;min-height:100dvh;background:var(--paper);color:var(--ink);font:14px/1.45 var(--sans);-webkit-text-size-adjust:100%}a{color:inherit;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent);text-underline-offset:2px}a:hover{text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}input,select,button,textarea{font:inherit;color:inherit}input[type=checkbox],input[type=radio]{accent-color:var(--wasm)}h1,h2,p{margin:0}.masthead{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding:14px 16px 10px}.brand{display:inline-flex;align-items:center;gap:8px;align-self:center;text-decoration:none}.mark{width:22px;height:22px}.mark-wasm{fill:var(--wasm)}.mark-ts{fill:var(--ts)}.wordmark{font-size:20px;font-weight:700;letter-spacing:-.025em}.tagline{color:var(--muted)}.source{margin-left:auto;color:var(--muted)}.credits{padding:12px 16px 16px;font-size:12px;color:var(--muted)}.credits p{max-width:80ch}.credits p+p{margin-top:4px}.credits code{font:11.5px var(--mono);white-space:nowrap}[hidden]{display:none!important}@media(max-width:520px){.masthead{padding-top:12px}.source{margin-left:0;width:100%}}.doc{width:min(100%,880px);margin:0 auto;padding:4px 16px 40px}.doc section{margin-top:44px}.doc section.intro{margin-top:12px}.doc h1{font-size:30px;line-height:1.15;letter-spacing:-.02em}.doc h2{margin-bottom:8px;font-size:20px;line-height:1.25;letter-spacing:-.01em}.doc section>p{max-width:72ch}.doc section>p+p{margin-top:10px}.doc code{font:12.5px var(--mono);overflow-wrap:anywhere}.doc a{color:var(--wasm)}.doc pre.commands{margin:10px 0;padding:10px 14px;border:1px solid var(--rule);border-radius:8px;background:var(--sunk);overflow-x:auto}.doc pre.commands code{overflow-wrap:normal}.lead{margin-top:8px;max-width:60ch;font-size:17px;line-height:1.45}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,185px),1fr));gap:12px;margin:20px 0 0}.tile{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:6px;padding:14px;border:1px solid var(--rule);border-radius:10px;background:var(--panel)}.tile dd{margin:0;font-size:34px;font-weight:650;line-height:1.05;letter-spacing:-.02em}.tile dt{color:var(--muted);font-size:13px}.tile code{font-size:12px;white-space:nowrap}.measured-on{margin-top:14px;color:var(--muted);font-size:13px}.chart{margin:16px 0 0;padding:16px;border:1px solid var(--rule);border-radius:10px;background:var(--panel)}.chart figcaption{margin-bottom:12px;font-weight:600}.legend{margin-bottom:12px;color:var(--muted);font-size:12.5px}.key{display:inline-block;width:12px;height:12px;margin-right:6px;border-radius:3px;vertical-align:-1px}.legend .key:not(:first-child){margin-left:14px}.key.ours{background:var(--viz-ours)}.key.theirs{background:var(--viz-theirs)}.key.part{background:var(--muted)}.key.part.startup{opacity:.35}.bars-group{margin:16px 0 6px;color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.chart>.bars-group:first-of-type{margin-top:0}.bars{display:grid;gap:8px;margin:0;padding:0;list-style:none}.bar-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name value" "bar bar";gap:2px 12px;align-items:baseline}.bar-name{grid-area:name;min-width:0;overflow-wrap:anywhere}.bar-value{grid-area:value;color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.bar-value b{color:var(--ink);font-weight:600}.bars-svg{grid-area:bar;display:block;width:100%;overflow:visible}.bar-row.noted{grid-template-areas:"name value" "bar bar" "note note"}.bar-note{grid-area:note;color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums}@media(min-width:760px){.bar-row{grid-template-columns:15.5rem minmax(0,1fr) 9.5rem;grid-template-areas:"name bar value";align-items:center}.bar-row.noted{grid-template-areas:"name bar value" ". note note"}}.bar-mark.ours rect,rect.bar-mark.ours{fill:var(--viz-ours)}.bar-mark.theirs rect,rect.bar-mark.theirs{fill:var(--viz-theirs)}.bar-mark rect.startup{opacity:.35}rect.more{fill:var(--viz-theirs);opacity:.3}.tip{fill:var(--ink);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.slower .tip{fill:var(--bad)}.table-view{margin-top:14px;font-size:13px}.table-view summary{color:var(--muted);cursor:pointer}.table-view[open] summary{margin-bottom:8px}.table-view table,table.plain{display:block;max-width:100%;overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums}caption{padding-bottom:6px;color:var(--muted);font-size:12px;text-align:left}th,td{padding:5px 0;border-bottom:1px solid var(--rule);font-weight:400;text-align:left;vertical-align:top}thead th{color:var(--muted);font-size:12px}tbody th{min-width:10em;padding-right:12px}.num{padding-left:14px;text-align:right;white-space:nowrap}.fineprint{margin-top:10px;color:var(--muted);font-size:12.5px}.fineprint.warn{color:var(--bad)}.facts{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 18px;margin:12px 0 14px}.facts div{display:contents}.facts dt{color:var(--muted)}.facts dd{margin:0;overflow-wrap:anywhere}@media(max-width:520px){.facts{grid-template-columns:minmax(0,1fr);gap:0}.facts dd{margin-bottom:8px}.tile dd{font-size:30px}}
