@font-face{font-family:Familjen Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/familjen-grotesk-vietnamese-wght-normal.DKRsWTd7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Familjen Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/familjen-grotesk-latin-ext-wght-normal.Cvgdx4cy.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Familjen Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/familjen-grotesk-latin-wght-normal.CfZa4wxB.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-cyrillic-ext-wght-normal.CGKlZYBf.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-cyrillic-wght-normal.DLqwHbi6.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-greek-ext-wght-normal.e3e57Shi.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-greek-wght-normal.CO1l-giJ.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-vietnamese-wght-normal.LcSrhZ7T.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-latin-ext-wght-normal.BnEbWgdZ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/literata-latin-wght-normal.DLxlUchJ.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#eef1f3;--sheet:#f8fafb;--ink:#15213a;--ink-2:#24365a;--muted:#5b6878;--rule:#cdd5dc;--broke:#c0392b;--measure-c:#c98a1d;--link:#1f4f8f;--code-bg:#e1e7ec;--band:#15213a;--band-ink:#eef1f3;--band-muted:#a9b6c8;--band-line:#2f4268;--sans:"Familjen Grotesk Variable", "Segoe UI", system-ui, sans-serif;--serif:"Literata Variable", Georgia, "Times New Roman", serif;--measure:66ch;--rail:11rem;--gap:clamp(1.5rem, 4vw, 3rem);--max:calc(var(--rail) + var(--gap) + var(--measure));color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#10182a;--sheet:#172238;--ink:#e4e9f0;--ink-2:#c9d4e4;--muted:#97a3b2;--rule:#2a3a55;--broke:#ff8a73;--measure-c:#f0b453;--link:#8db8f0;--code-bg:#1f2c45;--band:#0a1120;--band-ink:#e4e9f0;--band-muted:#8f9db2;--band-line:#26375a;color-scheme:dark}}*{box-sizing:border-box}html{background:var(--paper)}body{background:var(--paper);color:var(--ink);font-family:var(--serif);text-rendering:optimizelegibility;margin:0;font-size:1.125rem;line-height:1.65}a{color:var(--link);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--measure-c);outline-offset:3px;border-radius:2px}.wrap{max-width:var(--max);margin:0 auto;padding-inline:clamp(1rem,4vw,2rem)}.masthead{font-family:var(--sans);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;padding-block:1.25rem;display:flex}.masthead .name{letter-spacing:-.01em;color:var(--ink);font-size:1.3rem;font-weight:700;text-decoration:none}.masthead .name:before{content:"";background:var(--broke);vertical-align:.02em;width:.62em;height:.62em;box-shadow:.85em 0 0 var(--ink);border-radius:50%;margin-right:1.3em;display:inline-block}.masthead nav{flex-wrap:wrap;gap:1.25rem;font-size:1rem;display:flex}.masthead nav a{color:var(--muted);text-decoration:none}.masthead nav a:hover,.masthead nav a[aria-current=page]{color:var(--ink);text-decoration:underline}.band{background:var(--band);color:var(--band-ink);margin-inline:calc(50% - 50vw);padding-inline:calc(50vw - 50%)}.band a{color:var(--band-ink)}.hero{padding-block:clamp(2.5rem,7vw,5rem) clamp(2rem,5vw,3.5rem)}.hero h1{font-family:var(--sans);letter-spacing:-.03em;max-width:15ch;margin:0;font-size:clamp(2.3rem,6.4vw,4.6rem);font-weight:650;line-height:1}.hero .intro{max-width:58ch;color:var(--band-muted);margin-top:1.75rem;font-size:1.15rem}.hero .intro p{margin:0 0 .8rem}.hero .intro p:first-child{color:var(--band-ink)}.hero .tally{font-family:var(--sans);color:var(--band-muted);margin:1.5rem 0 0;font-size:1rem}.hero .tally b{color:var(--band-ink);font-size:1.35rem;font-weight:650}.tiles{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1rem;margin:0;padding:0 0 clamp(2rem,5vw,3rem);list-style:none;display:grid}.tiles a{border:1px solid var(--band-line);background:color-mix(in srgb, var(--band) 80%, white 6%);border-radius:6px;flex-direction:column;height:100%;text-decoration:none;transition:border-color .16s;display:flex;overflow:hidden}.tiles a:hover{border-color:var(--band-muted)}.tiles .thumb{aspect-ratio:16/9;background:var(--band-line);place-items:center;display:grid;overflow:hidden}.tiles .thumb img{object-fit:cover;object-position:top left;width:100%;height:100%;display:block}.tiles .thumb .mono{font-family:var(--sans);color:var(--band-muted);letter-spacing:-.04em;font-size:2.2rem;font-weight:700}.tiles .txt{font-family:var(--sans);padding:.8rem .95rem 1rem}.tiles .txt strong{color:var(--band-ink);font-size:1.08rem;display:block}.tiles .txt span{color:var(--band-muted);margin-top:.2rem;font-size:.92rem;line-height:1.4;display:block}.section-h{font-family:var(--sans);color:var(--muted);margin:2.75rem 0 .5rem;font-size:1rem;font-weight:600}.graph{margin:0;padding:0;list-style:none;position:relative}.graph:before{content:"";top:.6rem;bottom:.6rem;left:calc(var(--rail) + var(--gap) / 2);background:var(--rule);width:2px;position:absolute}.graph>li{padding-block:1.6rem;position:relative}.graph>li:before{content:"";top:2.05rem;left:calc(var(--rail) + var(--gap) / 2 - 7px);background:var(--paper);border:3px solid var(--ink-2);box-sizing:border-box;border-radius:50%;width:16px;height:16px;position:absolute}.graph>li.mechanics:before{background:var(--ink-2)}.graph>li.failure:before{border-color:var(--broke);background:var(--broke)}.graph>li.numbers:before{border-color:var(--measure-c);background:var(--measure-c)}.graph .rail{text-align:right}.graph h2{font-family:var(--sans);letter-spacing:-.01em;margin:0 0 .45rem;font-size:clamp(1.35rem,2.6vw,1.75rem);line-height:1.18}.graph h2 a{color:var(--ink);text-decoration:none}.graph h2 a:hover{text-decoration:underline}.graph .summary{margin:0}.graph .apps{font-family:var(--sans);margin:.5rem 0 0;font-size:.92rem}.graph .apps a{color:var(--muted)}.entry{grid-template-columns:var(--rail) minmax(0, var(--measure));gap:var(--gap);display:grid}.rail{font-family:var(--sans);color:var(--muted);padding-top:.35rem;font-size:.92rem;line-height:1.4}.rail p{margin:0 0 .35rem}.rail .kind{color:var(--ink);font-weight:650}.rail .kind.failure,.kind.failure{color:var(--broke)}.rail .kind.numbers,.kind.numbers{color:var(--measure-c)}.rail .trace{border-left:2px solid var(--rule);text-align:left;margin-top:.75rem;padding-left:.6rem}@media (width<=760px){.entry{grid-template-columns:minmax(0,1fr);gap:.4rem}.rail{flex-wrap:wrap;gap:.25rem 1rem;padding-top:0;display:flex}.rail p{margin:0}.rail .trace{margin-top:0}.graph:before{left:.45rem}.graph>li{padding-left:2rem}.graph>li:before{top:1.75rem;left:0}.graph .rail{text-align:left}}.posts{margin:0;padding:0;list-style:none}.posts>li{border-bottom:1px solid var(--rule);padding-block:1.75rem}.posts h2{font-family:var(--sans);margin:0 0 .5rem;font-size:clamp(1.35rem,2.6vw,1.7rem);line-height:1.2}.posts h2 a{color:var(--ink);text-decoration:none}.posts h2 a:hover{text-decoration:underline}.posts .summary{margin:0}.empty{color:var(--muted);max-width:var(--measure);padding-block:3rem}.post-head{padding-block:clamp(2rem,6vw,4rem) 2rem}.post-head h1{font-family:var(--sans);letter-spacing:-.025em;margin:0 0 1rem;font-size:clamp(2rem,5vw,3.3rem);font-weight:650;line-height:1.05}.post-head .lede{color:var(--muted);margin:0;font-size:1.28rem}.post-head.failure h1{text-decoration:underline;text-decoration-color:var(--broke);text-underline-offset:.12em;text-decoration-thickness:.09em}.prose{padding-bottom:2rem}.prose h2{font-family:var(--sans);margin:2.5rem 0 .75rem;font-size:1.45rem;line-height:1.25}.prose h3{font-family:var(--sans);margin:2rem 0 .5rem;font-size:1.15rem}.prose p,.prose ul,.prose ol{margin:0 0 1.1rem}.prose li{margin-bottom:.35rem}.prose blockquote{border-left:3px solid var(--measure-c);color:var(--muted);margin:1.5rem 0;padding-left:1rem}.prose code{background:var(--code-bg);border-radius:3px;padding:.1em .3em;font-size:.88em}.prose pre{border-left:3px solid var(--ink-2);border-radius:4px;padding:1rem 1.1rem;font-size:.88rem;line-height:1.5;overflow-x:auto;background:var(--code-bg)!important}.prose pre code{background:0 0;padding:0}.prose pre code span{color:inherit}.prose hr{border:0;border-top:1px solid var(--rule);margin:2rem 0}.prose table{border-collapse:collapse;font-size:.95rem;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--rule);text-align:left;padding:.4rem .8rem .4rem 0}.shot{margin:0 0 2rem}.shot img{border:1px solid var(--rule);border-radius:6px;width:100%;height:auto;display:block}.shot figcaption{font-family:var(--sans);color:var(--muted);margin-top:.6rem;font-size:.92rem}.facts{margin:0 0 1.25rem}.facts dt{color:var(--ink);margin-top:.6rem;font-weight:650}.facts dd{margin:.1rem 0 0}.expect h2,.related h2{font-family:var(--sans);margin:2.25rem 0 1rem;font-size:1.45rem}.expect ol{counter-reset:x;margin:0;padding:0;list-style:none}.expect li{border-top:1px solid var(--rule);padding:1rem 0 1.1rem}.expect p{grid-template-columns:6.5rem minmax(0,1fr);align-items:baseline;margin:0;display:grid}.expect span{font-family:var(--sans);font-size:.85rem;font-weight:650}.expect .was,.expect .was span{color:var(--muted)}.expect .got{margin-top:.35rem}.expect .got span{color:var(--broke)}.expect .more{font-family:var(--sans);margin-top:.4rem;padding-left:6.5rem;font-size:.95rem;display:block}.related ul{margin:0;padding:0;list-style:none}.related li{font-family:var(--sans);padding:.5rem 0}.related .kind{min-width:7.5rem;color:var(--ink-2);font-size:.88rem;font-weight:650;display:inline-block}@media (width<=760px){.expect p,.expect span{display:block}.expect .more{padding-left:0}}.colophon{background:var(--sheet);border-left:3px solid var(--ink);font-family:var(--sans);margin:1.5rem 0 3rem;padding:1.25rem 1.4rem;font-size:.98rem;line-height:1.5}.colophon p{margin:0 0 .5rem}.colophon p:last-child{margin-bottom:0}.colophon .advice{color:var(--broke);font-weight:600}.corrections{font-family:var(--sans);font-size:.98rem}.page{max-width:var(--measure);padding-block:clamp(2rem,6vw,4rem)}.page h1{font-family:var(--sans);letter-spacing:-.025em;margin:0 0 1.5rem;font-size:clamp(2rem,5vw,3rem);line-height:1.05}.page h2{font-family:var(--sans);margin:2.25rem 0 .6rem;font-size:1.35rem}.foot{border-top:1px solid var(--rule);font-family:var(--sans);color:var(--muted);margin-top:3rem;padding-block:2rem 3rem;font-size:.95rem}.foot p{max-width:64ch;margin:0 0 .4rem}.foot a{color:var(--muted)}@media (prefers-reduced-motion:no-preference){.graph>li:before{animation:.42s cubic-bezier(.2,.8,.2,1) both node}.graph>li:nth-child(2):before{animation-delay:80ms}.graph>li:nth-child(3):before{animation-delay:.16s}.graph>li:nth-child(4):before{animation-delay:.24s}.graph>li:nth-child(n+5):before{animation-delay:.3s}@keyframes node{0%{transform:scale(0)}}}
