:root{--bg:#f7f9fc;--fg:#14181f;--muted:#434c59;--rule:#ccd3dd;--wash:#eff2f7;--link:#0a3cc2;--ph-bg:#ffefb8;--ph-fg:#523a00;--hl-k:#7a1f8f;--hl-s:#0a5832;--hl-n:#0a3cc2;--hl-m:#7d3300;--to-dark:inline;--to-light:none;--text:Charter,"Bitstream Charter","Iowan Old Style","Sitka Text",Cambria,Georgia,"Noto Serif",serif;--mono:ui-monospace,"SF Mono",Menlo,Consolas,"Roboto Mono","Noto Sans Mono",monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#11151b;--fg:#e9edf2;--muted:#adb6c3;--rule:#343c48;--wash:#1b212a;--link:#93b4ff;--ph-bg:#3b2f0a;--ph-fg:#ffdc80;--hl-k:#e0a8f0;--hl-s:#8fdcae;--hl-n:#93b4ff;--hl-m:#f5b77a;--to-dark:none;--to-light:inline;color-scheme:dark}}:root[data-theme=dark]{--bg:#11151b;--fg:#e9edf2;--muted:#adb6c3;--rule:#343c48;--wash:#1b212a;--link:#93b4ff;--ph-bg:#3b2f0a;--ph-fg:#ffdc80;--hl-k:#e0a8f0;--hl-s:#8fdcae;--hl-n:#93b4ff;--hl-m:#f5b77a;--to-dark:none;--to-light:inline;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font:1.125rem/1.6 var(--text);overflow-wrap:break-word}a{color:var(--link);text-underline-offset:.16em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--link);outline-offset:2px}abbr{text-decoration:none}h1,h2,h3{text-wrap:balance}p,li{text-wrap:pretty}p{margin:0}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip{position:absolute;top:.5rem;left:1.25rem;z-index:1;padding:.5rem 1rem;background:var(--bg);transform:translateY(-300%)}.skip:focus{transform:none}.skip,.name,.top nav a,.rows h2 a,.rows h3 a,.links dd a,.more a,.theme{display:inline-flex;align-items:center;min-width:2.75rem;min-height:2.75rem}.links dd a{max-width:100%}.top,.lead,.sec,.foot,.post{width:min(100%,50rem);margin-inline:auto;padding-inline:1.25rem;display:grid;gap:1rem}.top{align-items:center;grid-template-columns:minmax(0,1fr)auto;padding-block:.5rem;gap:0 1rem}.name{font-weight:700}.top nav{grid-column:1/-1;grid-row:2;display:flex;flex-wrap:wrap;gap:0 1.25rem;font-size:1rem}.top nav [aria-current]{font-weight:700}.theme{display:none;justify-content:center;padding:0 .625rem;border:1px solid;border-radius:0;background:0 0;color:var(--link);font:1rem/1.25 var(--text);cursor:pointer}.to-dark{display:var(--to-dark)}.to-light{display:var(--to-light)}.js .theme{display:inline-flex}.theme:hover{text-decoration:underline}.lead{padding-block:1.5rem 3rem;gap:1.5rem;grid-template-columns:minmax(0,1fr)}.lead h1{margin:0;font-size:clamp(2.125rem,1.5rem + 3.2vw,3.5rem);line-height:1.1;font-weight:400;letter-spacing:-.012em}.lead p{max-width:36rem}.sec{padding-block:0 3rem;grid-template-columns:minmax(0,1fr)}.sec>h2{margin:0;font:600 1rem/1.5 var(--text);color:var(--muted)}.rows{list-style:none;margin:0;padding:0}.rows li{border-top:1px solid var(--rule);padding-block:.75rem 1rem;display:grid;gap:.25rem}.rows h2,.rows h3{margin:0;font-size:1.375rem;line-height:1.3;font-weight:600}.meta,.label{margin:0;font:.875rem/1.5 var(--mono);color:var(--muted)}.note{font-size:1rem;color:var(--muted)}.links{display:grid;gap:.5rem;margin:0}.links div{border-top:1px solid var(--rule);padding-top:.5rem}.links dt{font-size:1rem;color:var(--muted)}.links dd{margin:0}.foot{padding-block:1.5rem 3rem;font-size:1rem;color:var(--muted);grid-template-columns:minmax(0,1fr)}.post{padding-block:1.5rem 3rem;gap:1.5rem;grid-template-columns:minmax(0,1fr)}.post h1{margin:0;font-size:clamp(2rem,1.5rem + 2.6vw,3rem);line-height:1.12;font-weight:400;letter-spacing:-.012em}.body{min-width:0;max-width:36rem;display:grid;grid-template-columns:minmax(0,1fr);gap:2.7rem}.body h2{margin:0 0 -1.7rem;font-size:1.375rem;line-height:1.3;font-weight:600}.body ul{margin:0;padding-left:1.25rem}.body li+li{margin-top:.5rem}.body blockquote{margin:0;padding-left:1rem;border-left:3px solid var(--link);font-style:italic}.more{display:grid;justify-items:start;gap:.25rem}code{font:.875em var(--mono);overflow-wrap:anywhere}pre{margin:0;padding:.75rem 1rem;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--wash);border:1px solid var(--rule);font-size:1rem;line-height:1.5}.ph{display:inline-block;padding:0 .4em;border:1px dashed;background:var(--ph-bg);color:var(--ph-fg);font:500 .75rem/1.5 var(--mono);letter-spacing:0;vertical-align:.15em;white-space:nowrap}figure{margin:0;display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem}img{display:block;max-width:100%;height:auto;border:1px solid var(--rule)}figcaption{font-size:1rem;color:var(--muted)}.highlight{min-width:0}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt,.chroma .ow{color:var(--hl-k);font-weight:600}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:var(--hl-s)}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{color:var(--muted);font-style:italic}.chroma .nf,.chroma .fm,.chroma .nc,.chroma .nd,.chroma .ne,.chroma .nn,.chroma .nt{color:var(--hl-n)}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo,.chroma .nb,.chroma .bp,.chroma .na{color:var(--hl-m)}@media(prefers-reduced-motion:reduce){*,::before,::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}}@media(min-width:56rem){.top,.lead,.sec,.foot,.post{grid-template-columns:10rem minmax(0,36rem);column-gap:2rem}.top{padding-block:1rem;grid-template-columns:10rem minmax(0,1fr)auto}.top nav{grid-column:2;grid-row:1}.lead{padding-block:3rem 4rem}.lead h1,.post h1{grid-column:1/-1}.lead p,.foot p,.body,.list .rows{grid-column:2}.sec{padding-bottom:4rem}.sec>h2{padding-top:.9rem}.post .label{padding-top:.25rem}}