@font-face{font-family:Mona Sans;src:url(fonts/mona-sans-latin-wght-normal.woff2) format("woff2");font-weight:200 900;font-display:swap}@font-face{font-family:Martian Mono;src:url(fonts/martian-mono-latin-wdth-normal.woff2) format("woff2");font-weight:100 800;font-stretch:75% 112.5%;font-display:swap}:root{--bg: #090a0c;--bg-1: #0e1013;--bg-2: #15181c;--line: rgb(255 255 255 / .1);--line-2: rgb(255 255 255 / .22);--text: #e1e3dc;--text-2: #a6adb5;--text-3: #7b838c;--hot: #ffb224;--open: #ff4d3d;--radius: 8px;--ease: cubic-bezier(.22, 1, .36, 1);--sans: "Mona Sans", ui-sans-serif, system-ui, sans-serif;--mono: "Martian Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{overflow-x:clip;background:var(--bg);-webkit-text-size-adjust:100%}body{margin:0;overflow-x:clip;background:var(--bg);color:var(--text);font:400 1rem/1.5 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,p,ul,ol,dl,dd,figure,pre{margin:0;padding:0}ul,ol{list-style:none}button{font:inherit;color:inherit}::selection{background:var(--hot);color:var(--bg)}:focus-visible{outline:2px solid var(--text);outline-offset:3px;border-radius:2px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.mono,code,pre{font-family:var(--mono);font-stretch:87.5%}code .rem{color:var(--text-3)}code .ok{color:var(--text)}code .warn{color:var(--hot)}code .bad{color:var(--open)}:root{--vw: 100vw;--film-w: min(var(--vw), calc(100svh * 16 / 9 * 1.4));--frame-w: min(var(--film-w), 160rem);--edge: max(1.1rem, calc((var(--vw) - var(--frame-w)) / 2 + var(--frame-w) * .02917));--line-size: clamp(2.3rem, calc(var(--frame-w) * .0467), 5.6rem)}.skip{position:fixed;z-index:20;top:.6rem;left:var(--edge);padding:.6rem .9rem;border-radius:var(--radius);background:var(--text);color:var(--bg);font-size:.9rem;text-decoration:none;transform:translateY(-300%)}.skip:focus{transform:none}.top{position:fixed;z-index:10;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:1.1rem var(--edge);border-bottom:1px solid var(--line);background:#090a0cd1;backdrop-filter:blur(14px) saturate(1.5);pointer-events:none}.top.clear{border-bottom-color:transparent;background-color:transparent;backdrop-filter:none}.top a{pointer-events:auto;text-decoration:none}.brand{display:inline-flex;align-items:center;color:var(--text)}.brand svg{height:1.05rem;fill:currentColor}.top nav{display:flex;align-items:center;gap:clamp(1rem,2.2vw,2rem);font-size:.92rem;line-height:1}.top nav a{color:var(--text-2);transition:color .15s}.top nav a:hover,.top nav a[aria-current]{color:var(--text)}:root:not(.signed-in) [data-session=in],:root.signed-in [data-session=out]{display:none!important}.top nav .start{padding:.55rem .85rem;border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text);transition:background .15s,color .15s,border-color .15s}.top nav .start:hover{border-color:var(--text);background:var(--text);color:var(--bg)}.bar{display:flex;gap:3px}.bar button{position:relative;flex:var(--share, 1) 1 0;height:1.75rem;padding:0;border:0;background:none;cursor:pointer}.bar button:before,.bar button i{content:"";position:absolute;inset:50% 0 auto;height:2px;margin-top:-1px;border-radius:1px;transition:height .15s,margin .15s}.bar button:before{background:#ffffff38}.bar button i{background:var(--text);transform:scaleX(var(--p, 0));transform-origin:left}.bar button:hover:before,.bar button:hover i{height:4px;margin-top:-2px}.foot{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:1rem 2rem;padding:2.2rem var(--edge) 2rem;border-top:1px solid var(--line);color:var(--text-3);font:400 .76rem/1.5 var(--mono);font-stretch:87.5%}.foot nav{display:flex;flex-wrap:wrap;gap:.5rem 1.6rem}.foot a{color:var(--text-2);text-decoration:none;white-space:nowrap}.foot a:hover{color:var(--text)}.foot nav button{padding:0;border:0;background:none;color:var(--text-2);font:inherit;cursor:pointer}.foot nav button:hover{color:var(--text)}.consent{position:fixed;z-index:15;bottom:1rem;left:var(--edge);display:grid;gap:.9rem;width:min(25rem,calc(var(--vw) - 2 * var(--edge)));padding:1rem 1.1rem;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--bg-1);box-shadow:0 18px 44px -14px #000000bf;color:var(--text-2);font-size:.86rem}.consent[hidden]{display:none}.consent strong{color:var(--text);font-weight:600}.consent a{color:var(--text)}.consent .choices{display:flex;gap:.6rem}.consent button{flex:1;padding:.55rem .85rem;border:1px solid var(--line-2);border-radius:var(--radius);background:none;color:var(--text);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.consent button:hover{border-color:var(--text);background:var(--text);color:var(--bg)}@media(prefers-reduced-motion:no-preference){.top{transition:border-color .2s,background-color .2s,backdrop-filter .2s}}@media(max-width:760px),(max-aspect-ratio:1 / 1),(max-height:540px){.top{position:absolute}}@media(max-width:760px),(max-aspect-ratio:1 / 1){.top nav a:not(.start){display:none}}@media(max-height:540px)and (min-aspect-ratio:1 / 1),(min-width:761px)and (max-width:960px)and (min-aspect-ratio:1 / 1){.top{padding-block:.45rem}.brand svg{height:.9rem}.top nav{font-size:.8rem}.top nav .start{padding:.4rem .7rem}}html:has(.plain){scroll-padding-top:5.4rem}.plain{--edge: max(clamp(1.1rem, calc(var(--vw) * .03), 2.5rem), calc((var(--vw) - 88rem) / 2));--bar-h: 3.75rem;display:flex;flex-direction:column;min-height:100svh}.plain .top{position:sticky;inset:0 auto auto;flex:none;height:var(--bar-h);padding-block:0;pointer-events:auto}.plain .foot{flex:none}.legal{display:grid;flex:1;grid-template-columns:13.5rem minmax(0,47rem);column-gap:clamp(2rem,calc(var(--vw) * .04),4.5rem);padding:0 var(--edge)}.legal main{padding:3.4rem 0 5.5rem}.rail{position:sticky;top:var(--bar-h);align-self:start;padding:3.5rem 0 3rem}.rail p{margin-bottom:.9rem;color:var(--text-3);font:400 .7rem/1.2 var(--mono);font-stretch:87.5%}.rail ol{border-left:1px solid var(--line)}.rail a{display:block;padding:.3rem 0 .3rem .95rem;color:var(--text-3);font-size:.82rem;line-height:1.35;text-decoration:none;transition:color .15s}.rail a:hover{color:var(--text)}.open{margin-bottom:2.6rem;padding-bottom:2.2rem;border-bottom:1px solid var(--line)}.open h1,.gone h1{font-family:var(--sans);font-weight:560;text-wrap:balance}.open h1{font-size:clamp(2.3rem,calc(var(--vw) * .045),3.5rem);line-height:.98;letter-spacing:-.045em}.lede{max-width:38rem;margin-top:1.2rem;color:var(--text-2);font-size:1.14rem;line-height:1.5;text-wrap:pretty}.dated,.status,.glance h2{color:var(--text-3);font:400 .72rem/1.2 var(--mono);font-stretch:87.5%}.dated{margin-top:1.6rem}.glance{margin-bottom:3.2rem;padding:1.5rem 1.6rem 1.6rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-1)}.glance ul{display:grid;gap:.6rem;margin-top:1.1rem}.glance li{position:relative;padding-left:1.22rem;color:var(--text);font-size:.96rem;line-height:1.4}.glance li:before{content:"";position:absolute;top:.5em;left:0;width:.36rem;height:.36rem;background:var(--hot);transform:skew(-12deg)}.glance p{margin-top:1.3rem;font-size:.9rem}.glance a,.gone nav a{color:var(--text);text-decoration:underline;text-decoration-color:var(--line-2);text-decoration-thickness:1px;text-underline-offset:.22em;transition:text-decoration-color .15s}.glance a:hover,.gone nav a:hover{text-decoration-color:var(--text)}.gone{position:relative;display:grid;flex:1;align-content:center;justify-items:start;padding:4rem var(--edge) 5rem}.piece{position:absolute;top:50%;right:var(--edge);width:min(34%,27rem);fill:#ffffff12;overflow:visible;transform:translateY(-50%)}.piece .out{fill:none;stroke:var(--hot);stroke-width:1.5px;stroke-dasharray:5 7;vector-effect:non-scaling-stroke}.gone h1{max-width:11ch;margin-top:1.4rem;font-size:clamp(2.9rem,calc(var(--vw) * .078),6rem);line-height:.94;letter-spacing:-.05em}.gone .lede{max-width:26rem;margin-top:1.7rem}.notice h1{max-width:16ch;margin-top:0;font-size:clamp(2.3rem,calc(var(--vw) * .05),3.9rem);line-height:.98;letter-spacing:-.045em}.notice .lede{max-width:32rem}.gone nav{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 1.7rem;margin-top:2.4rem;font-size:.96rem;line-height:1}.gone nav .start{padding:.72rem 1.05rem;border:1px solid var(--text);border-radius:var(--radius);background:var(--text);color:var(--bg);text-decoration:none;transition:background .15s,color .15s}.gone nav .start:hover{background:none;color:var(--text)}@media(max-width:899px){.legal{grid-template-columns:minmax(0,1fr)}.rail{display:none}.piece{position:static;width:6.5rem;margin-bottom:2.6rem;transform:none}}.shake{--edge: max(clamp(1.25rem, calc(var(--vw) * .045), 3.5rem), calc((var(--vw) - 86rem) / 2));--pass: rgb(225 227 220 / .16);--empty: rgb(225 227 220 / .22);--measure: 36rem;--gap: clamp(2rem, calc(var(--vw) * .05), 5.5rem);--section: clamp(4rem, calc(var(--vw) * .075), 7rem);--tick: 55ms;--cell: 2.6rem;--cell-h: 1.45rem}.shake main{flex:1;padding-inline:var(--edge)}.shake :not(pre)>code{color:var(--text);font-size:.86em;white-space:nowrap}html:not(.js) .shake .copy{display:none}.hero{padding-block:clamp(3rem,8svh,6rem) var(--section)}.hero h1{font:560 clamp(3.6rem,calc(var(--vw) * .11),8.75rem) / .9 var(--sans);letter-spacing:-.055em;text-wrap:balance}.intro{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:last baseline;gap:2rem var(--gap);margin-top:clamp(1.5rem,3.5svh,2.25rem)}.intro>p{max-width:35rem;color:var(--text-2);font-size:1.125rem;line-height:1.55;text-wrap:pretty}.act{display:grid;gap:1rem;min-width:0}.matrix{margin-top:clamp(2.75rem,7svh,4.5rem)}.matrix :is(table,thead,tbody){display:block}.matrix tr{display:grid;grid-template-columns:10.5rem minmax(0,1fr) 16.5rem 5.5rem calc(50% - var(--gap) / 2 - 22rem);align-items:center;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.matrix thead tr,.matrix tbody tr:first-child{border-bottom-color:var(--line-2)}.matrix tbody tr{min-height:3.4rem;padding-block:.6rem}.matrix th,.matrix td{padding:0;font-weight:400;text-align:left}.matrix thead th{padding-bottom:.8rem;color:var(--text-3);font-size:.8125rem}.matrix tbody th code{color:var(--text);font-size:.875rem}.matrix .change{padding-right:2rem;color:var(--text-2);font-size:.9375rem;line-height:1.4}.cells{display:grid;grid-template-columns:repeat(5,var(--cell));gap:.45rem;padding-inline:.2rem}.run{height:var(--cell-h);background:var(--pass);transform:skew(-12deg)}.run.fail{background:var(--open)}.matrix .count{color:var(--text-3);font-size:.9375rem}.unit{display:none}.verdict b{color:var(--text-2);font-size:.9375rem;font-weight:500}.blamed .count,.blamed .verdict b{color:var(--text)}.p{margin-left:.55rem;color:var(--text-3);font:400 .8125rem/1 var(--mono);font-stretch:87.5%;white-space:nowrap}.p i{font-style:italic}.matrix figcaption{max-width:50rem;margin-top:1.1rem;color:var(--text-3);font-size:.8125rem;line-height:1.5}.pair,.part,.close{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--gap);border-top:1px solid var(--line)}.pair,.part{row-gap:1.5rem;padding-block:var(--section)}.pair>section{display:grid;grid-row:span 3;grid-template-rows:subgrid;min-width:0}.pair>section>figure{margin-top:.5rem}.part{align-items:start}.close{row-gap:1.75rem}.pair h2,.part h2{max-width:11em;font:560 clamp(2rem,calc(var(--vw) * .031),2.9rem) / 1.02 var(--sans);letter-spacing:-.04em;text-wrap:balance}.text{display:grid;grid-template-columns:minmax(0,1fr);gap:1.75rem;align-content:start;max-width:47rem;min-width:0}.pair>section>p,.text>p:not(.next){max-width:var(--measure);color:var(--text-2);font-size:1.0625rem;line-height:1.65;text-wrap:pretty}.sheet{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-1)}.sheet figcaption{display:flex;align-items:center;min-height:2.6rem;padding:.35rem 1.1rem;border-bottom:1px solid var(--line);color:var(--text-3);font:400 .8125rem/1.3 var(--mono);font-stretch:87.5%}.sheet pre{padding:1.15rem 1.1rem 1.25rem;overflow-x:auto;color:var(--text-2);font-size:.8125rem;line-height:1.7;white-space:pre-wrap}pre .w{display:inline-block;max-width:100%;overflow-wrap:anywhere;text-indent:0}pre .flag{padding-left:2ch;text-indent:-2ch}.ln{display:block;padding-left:calc(var(--lead, 0) * var(--space, 1ch) + var(--hang, 0ch));text-indent:calc(var(--hang, 0ch) * -1)}.sheet.line{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:0 .75rem;padding:.45rem .45rem .45rem 0}.sheet.line pre{--inset: 1.1rem;flex:1;min-width:min(100%,calc(var(--fit) + var(--inset)));padding:.4rem 0 .4rem var(--inset);color:var(--text)}.sheet.line .ln{--hang: 2ch}.sheet.line pre i{color:var(--text-3);font-style:normal;user-select:none}.copy{--pad: .65rem;flex:none;min-width:calc(6ch + 2 * var(--pad) + 2px);padding:.42rem var(--pad);border:1px solid var(--line-2);border-radius:var(--radius);background:none;color:var(--text-2);font:400 .8125rem/1 var(--mono);font-stretch:87.5%;cursor:pointer;transition:color .15s,border-color .15s}.copy:hover,.copy[data-done]{border-color:var(--text-2);color:var(--text)}.issue{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-1)}.issue header{padding:1.1rem 1.25rem 1.15rem;border-bottom:1px solid var(--line)}.issue .title{color:var(--text);font-size:1.0625rem;font-weight:500;line-height:1.35}.issue .number{margin-right:.3rem;color:var(--text-3);font-weight:400}.labels{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.8rem;padding-left:.2rem}.labels li{position:relative;isolation:isolate;padding:.2rem .6rem;color:var(--text-2);font:400 .8125rem/1.3 var(--mono);font-stretch:87.5%}.labels li:before{position:absolute;z-index:-1;inset:0;border:1px solid var(--line-2);content:"";transform:skew(-12deg)}.issue .body{display:grid;grid-template-columns:minmax(0,1fr);gap:1.1rem;padding:1.15rem 1.25rem 1.3rem}.issue dt{margin-bottom:.35rem;color:var(--text);font-size:.9375rem;font-weight:500}.issue dd{margin:0;color:var(--text-2);font-size:.9375rem;line-height:1.55}.issue pre{padding:.8rem .95rem .8rem calc(.95rem + 2ch);border-radius:var(--radius);background:var(--bg-2);color:var(--text);font-size:.8125rem;line-height:1.6;text-indent:-2ch;white-space:pre-wrap;overflow-wrap:anywhere}.close{align-items:end;padding-block:clamp(5rem,calc(var(--vw) * .1),9rem) clamp(4rem,calc(var(--vw) * .07),6rem)}.close h2{font:560 clamp(2.8rem,calc(var(--vw) * .062),5.75rem) / .92 var(--sans);letter-spacing:-.05em;text-wrap:balance}.close .text{gap:1.4rem}.next{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;color:var(--text-3);font-size:.9375rem;text-wrap:pretty}.next .start{padding:.78rem 1.15rem;border:1px solid var(--text);border-radius:var(--radius);background:var(--text);color:var(--bg);font-weight:500;line-height:1;text-decoration:none;transition:background .15s,color .15s}.next .start:hover{background:none;color:var(--text)}@media(prefers-reduced-motion:no-preference)and (min-width:901px){.js .run{animation:jitter .26s var(--ease) calc(var(--at) * var(--tick) + .45s) backwards,land 1ms linear calc(var(--at) * var(--tick) + .7s) backwards}.js .matrix :is(.count,.verdict){animation:reveal .6s var(--ease) calc(30 * var(--tick) + .9s) backwards}}@media(forced-colors:active){.run{forced-color-adjust:none;background:Canvas;box-shadow:inset 0 0 0 1px CanvasText}.run.fail{background:CanvasText}}@keyframes jitter{0%,to{transform:skew(-12deg)}25%{transform:skew(-12deg) translate(-3px)}50%{transform:skew(-12deg) translate(3px)}75%{transform:skew(-12deg) translate(-1.5px)}}@keyframes land{0%{background:transparent;box-shadow:inset 0 0 0 1px var(--empty)}}@keyframes reveal{0%{opacity:0}}@media(max-width:1200px){.matrix thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.matrix tbody{border-top:1px solid var(--line-2)}.matrix tbody tr{grid-template-areas:"name runs count verdict" "change runs count verdict";grid-template-columns:minmax(0,1fr) auto 7.5rem 11rem;column-gap:1.5rem;padding-block:.9rem}.unit{display:inline}.matrix tbody th{grid-area:name}.matrix .change{grid-area:change;padding:.2rem 0 0;text-wrap:pretty}.matrix .runs{grid-area:runs}.matrix .count{grid-area:count}.matrix .verdict{grid-area:verdict}}@media(max-width:900px){.intro,.pair,.part,.close{grid-template-columns:minmax(0,1fr)}.pair{row-gap:0}.pair>section{grid-row:auto;grid-template-rows:none;gap:1.5rem}.pair>section+section{margin-top:var(--section);padding-top:var(--section);border-top:1px solid var(--line)}.matrix tbody tr{grid-template-areas:"name verdict" "change change" "runs count";grid-template-columns:minmax(0,1fr) auto;row-gap:.15rem;padding-block:1rem}.matrix .change{padding:0 0 .65rem}.matrix :is(.verdict,.count){text-align:right}.matrix tbody th,.matrix .verdict{align-self:baseline}}@media(max-width:640px){.shake{--cell: minmax(0, 2.1rem);--cell-h: 1.2rem}.matrix tbody tr{column-gap:1rem}.p{display:block;margin:.3rem 0 0}}@media(max-width:384px){.pair pre{--space: .5ch;font-size:.71875rem}.sheet pre{padding-inline:.9rem}.pair .sheet figcaption{padding-inline:.9rem;font-size:.71875rem}.sheet.line{gap:.5rem}.sheet.line pre{--inset: .9rem}.copy{--pad: .5rem}.issue :is(header,.body){padding-inline:1rem}.issue pre{padding-inline:calc(.5rem + 2ch) .5rem}}
