@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-opsz-normal.Cre6nC2_.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:Instrument Sans;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/instrument-sans-latin-wght-normal.BbzFLZTg.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:Geist Mono;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.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{--bg:#fff;--surface:#f2f3f0;--line:#dadde2;--text:#0e1116;--text-muted:#5b6270;--signal:#c8f542;--on-signal:#0e1116;--failing:#b42318;--failing-bg:#fdecec;--degraded:#8a5300;--degraded-bg:#fdf1dc;--resolved:#1d5fc2;--resolved-bg:#e8f0fd;--success:#1e6b3a;--success-bg:#e6f4ea;--control-border:#7c828e;--primary-hover:#2a2f38;--hit:44px;--focus-width:3px;--focus-offset:3px;--text-soft:#3a404b;--ink:#0e1116;--ink-text:#ecedea;--ink-muted:#9aa0aa;--ink-line:#2a2e35;--font-display:"Bricolage Grotesque", sans-serif;--font-body:"Instrument Sans", sans-serif;--font-mono:"Geist Mono", ui-monospace, monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--radius-chip:4px;--radius-input:8px;--radius-card:10px;--radius-output:14px;--radius-pill:999px;--max:1280px;--max-app:1000px;--gutter:24px;--measure:62ch;--text-body:17px;--text-body-product:16px;--text-small:15px;--text-micro:13px;--h1-marketing:clamp(48px, 4vw + 32px, 92px);--h1-product:clamp(30px, 2vw + 22px, 48px);--h2-lead:clamp(36px, 3vw + 24px, 60px);--h2-section:clamp(30px, 1.6vw + 24px, 44px);--h3-card:24px;--section-pad:96px;--btn-height:var(--hit);--btn-border:1.5px;--shadow-output:0 24px 60px #0e111647;--motion-fast:.12s}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#15171b;--surface:#1e2126;--line:#2a2e35;--text:#ecedea;--text-muted:#9aa0aa;--signal:#b5de3c;--on-signal:#0e1116;--failing:#ff9b8f;--failing-bg:#3a1f1e;--degraded:#f5b953;--degraded-bg:#3a2c14;--resolved:#8db8ff;--resolved-bg:#1b2a44;--success:#7fd99a;--success-bg:#1a3326;--control-border:#6b7280;--primary-hover:#fff;--text-soft:#c3c7ce}}:root[data-theme=dark]{color-scheme:dark;--bg:#15171b;--surface:#1e2126;--line:#2a2e35;--text:#ecedea;--text-muted:#9aa0aa;--signal:#b5de3c;--on-signal:#0e1116;--failing:#ff9b8f;--failing-bg:#3a1f1e;--degraded:#f5b953;--degraded-bg:#3a2c14;--resolved:#8db8ff;--resolved-bg:#1b2a44;--success:#7fd99a;--success-bg:#1a3326;--control-border:#6b7280;--primary-hover:#fff;--text-soft:#c3c7ce}:root[data-theme=light]{color-scheme:light}:root{color-scheme:light dark;--gutter:24px}@media (width<=640px){:root{--gutter:16px}}:root[data-theme=light]{color-scheme:light;--bg:#fff;--surface:#f2f3f0;--line:#dadde2;--text:#0e1116;--text-muted:#5b6270;--signal:#c8f542;--control-border:#7c828e;--primary-hover:#2a2f38;--text-soft:#3a404b}:root[data-theme=dark]{color-scheme:dark;--bg:#15171b;--surface:#1e2126;--line:#2a2e35;--text:#ecedea;--text-muted:#9aa0aa;--signal:#b5de3c;--control-border:#6b7280;--primary-hover:#fff;--text-soft:#c3c7ce}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:16px}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--text-body);margin:0;line-height:1.55;overflow-x:hidden}h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit;text-underline-offset:3px}code{font-family:var(--font-mono)}img,svg{max-width:100%}button{font:inherit;color:inherit}:focus-visible{outline:var(--focus-width) solid var(--text);outline-offset:var(--focus-offset);border-radius:4px}.on-ink :focus-visible{outline-color:currentColor}.skip-link{z-index:100;background:var(--ink);color:#fff;border-radius:999px;padding:10px 16px;font-weight:600;position:absolute;top:-80px;left:16px}.skip-link:focus{outline-color:var(--signal);top:12px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.wrap{max-width:var(--max);padding-inline:var(--gutter);margin:0 auto}.eyebrow{font-family:var(--font-mono);font-size:var(--text-micro);color:var(--text-muted);letter-spacing:.04em}.display{font-family:var(--font-display);letter-spacing:-.035em;font-weight:800;line-height:1.02}@media (width<=960px){:root{--section-pad:64px}}@media (width<=480px){:root{--section-pad:48px}}.btn{min-height:var(--btn-height);border-radius:var(--radius-pill);border:var(--btn-border) solid transparent;cursor:pointer;justify-content:center;align-items:center;padding:11px 22px;font-size:15px;font-weight:600;line-height:1.3;text-decoration:none;display:inline-flex}.btn-solid{background:var(--text);color:var(--bg);border-color:var(--text)}.btn-solid:hover,.btn-solid:focus-visible{background:var(--primary-hover);border-color:var(--primary-hover);color:var(--bg)}.btn-line{border-color:var(--control-border);color:var(--text);background:0 0}.btn-line:hover,.btn-line:focus-visible{border-color:var(--text);background:var(--text);color:var(--bg)}.btn-paper{color:var(--ink);background:#fff;border-color:#fff}.btn-paper:hover,.btn-paper:focus-visible{background:var(--ink-text);border-color:var(--ink-text);color:var(--ink)}.site-header{border-bottom:1px solid var(--line)}.site-header .inner{flex-wrap:wrap;align-items:center;gap:12px 32px;padding-block:22px;display:flex}.brand{color:var(--text);font-family:var(--font-display);letter-spacing:-.05em;align-items:center;gap:8px;font-size:26px;font-weight:800;text-decoration:none;display:flex}.search-open{min-height:var(--hit);border:1px solid var(--control-border);border-radius:var(--radius-input);background:var(--surface);width:260px;color:var(--text-muted);cursor:pointer;text-align:left;align-items:center;gap:10px;padding:0 14px;font-size:15px;display:flex}.search-open:hover{border-color:var(--text);color:var(--text)}.search-open kbd{font:500 12px var(--font-mono);border:1px solid var(--line);border-radius:var(--radius-chip);margin-left:auto;padding:1px 6px}.search-open .lbl{flex:1}.icon-btn{width:var(--hit);height:var(--hit);border:1px solid var(--control-border);border-radius:var(--radius-input);background:var(--surface);color:var(--text);cursor:pointer;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover{border-color:var(--text)}.icon-btn.search-icon,.theme-toggle svg{display:none}.theme-toggle[data-mode=system] .i-system,.theme-toggle[data-mode=light] .i-light,.theme-toggle[data-mode=dark] .i-dark,.theme-toggle:not([data-mode]) .i-system{display:block}.site-header nav{flex-wrap:wrap;gap:8px 26px;margin-left:auto;font-size:15px;display:flex}.site-header nav a{color:var(--text-muted);min-height:var(--hit);align-items:center;text-decoration:none;display:inline-flex}.site-header nav a:hover{color:var(--text);text-decoration:underline}.site-header nav a[aria-current=page],.site-header nav a.signin{color:var(--text);font-weight:600}@media (width<=640px){.site-header .inner{gap:12px 16px;padding-block:16px}.brand{margin-right:auto}.search-open{display:none}.icon-btn.search-icon{display:inline-flex}.site-header nav{flex-basis:100%;order:3;gap:0 22px;margin-left:0}}.site-footer{margin-top:var(--section-pad);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;gap:16px 24px;padding-block:36px;font-size:14px;display:flex}.site-footer nav{flex-wrap:wrap;gap:8px 20px;display:flex}.site-footer a{color:var(--text-muted)}.site-footer a:hover{color:var(--text)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{min-height:var(--hit);border:1px solid var(--control-border);border-radius:var(--radius-chip);color:var(--text-soft);align-items:center;padding:0 14px;font-size:14px;text-decoration:none;display:inline-flex}.chip:hover{border-color:var(--text);color:var(--text)}.chip[aria-current]{background:var(--text);color:var(--bg);border-color:var(--text)}.chip i{font:normal 500 12px var(--font-mono);opacity:.8;margin-left:8px}.tags{flex-wrap:wrap;gap:8px;display:flex}.tag{font:500 12px var(--font-mono);color:var(--text-soft);background:var(--surface);border-radius:var(--radius-chip);padding:2px 8px;text-decoration:none}a.tag:hover{color:var(--text);text-decoration:underline}.meta{font:500 13px var(--font-mono);color:var(--text-muted);flex-wrap:wrap;gap:6px 14px;display:flex}@media (width<=640px){.chips.scroll{margin-inline:calc(var(--gutter) * -1);padding:0 var(--gutter) 4px;flex-wrap:nowrap;overflow-x:auto}.chips.scroll .chip{flex:none}}.output{background:var(--ink);color:var(--ink-text);border-radius:var(--radius-output);font:14px/1.65 var(--font-mono);white-space:pre;margin:0;padding:22px 24px;overflow-x:auto}.output .cause{color:#fff;font-weight:600}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .output,:root:not([data-theme=light]) .cta{border:1px solid var(--ink-line)}}:root[data-theme=dark] .output,:root[data-theme=dark] .cta{border:1px solid var(--ink-line)}.intro{grid-template-columns:7fr 5fr;align-items:end;gap:48px;padding:56px 0 40px;display:grid}.intro h1{font-size:clamp(44px,5vw,72px)}.intro p{color:var(--text-soft);max-width:44ch;font-size:19px}.feature{border:1px solid var(--line);border-radius:var(--radius-card);grid-template-columns:7fr 5fr;align-items:start;gap:48px;padding:32px;display:grid;position:relative}.feature:hover{border-color:var(--text-muted)}.feature h2{font-size:var(--h2-section);margin-top:12px}.feature h2 a{text-decoration:none}.feature h2 a:after{content:"";border-radius:var(--radius-card);position:absolute;inset:0}.feature .dek{color:var(--text-soft);max-width:52ch;margin-top:16px;font-size:19px;line-height:1.5}.feature .meta{margin-top:20px}.feature .output{padding:18px;font-size:12.5px}.search input[type=search]::-webkit-search-cancel-button{display:none}.filter{margin-top:40px}.list-layout{grid-template-columns:8fr 3fr;align-items:start;gap:64px;margin-top:32px;display:grid}.post-item{border-top:1px solid var(--line);grid-template-columns:132px 1fr;gap:24px;padding:28px 0;display:grid}.post-item .date{font:500 13px var(--font-mono);color:var(--text-muted);padding-top:8px}.post-item h3{font-size:var(--h3-card);line-height:1.15}.post-item h3 a{text-decoration:none}.post-item h3 a:hover{text-decoration:underline}.post-item p{color:var(--text-soft);max-width:60ch;margin:8px 0 12px;font-size:16px}.post-item .meta{margin-top:12px}.empty-note{border-top:1px solid var(--line);color:var(--text-soft);padding:28px 0}.rail{border-top:1px solid var(--line);gap:32px;padding-top:28px;display:grid}.rail h2{font:500 13px var(--font-mono);letter-spacing:.04em;color:var(--text-muted);margin-bottom:8px}.rail a.row{min-height:var(--hit);border-bottom:1px solid var(--line);color:var(--text-soft);justify-content:space-between;align-items:center;gap:12px;text-decoration:none;display:flex}.rail a.row:hover{color:var(--text);text-decoration:underline}.rail a.row span{font:500 12px var(--font-mono);color:var(--text-muted)}.post-head{padding-top:56px}.post-grid{grid-template-columns:2fr 8fr 2fr;gap:0 48px;display:grid}.post-grid>.col{grid-column:2;min-width:0}.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--text);text-decoration:underline}.post-head h1{font-size:var(--h1-product);margin-top:12px}.dek{color:var(--text-soft);margin-top:18px;font-size:19px;line-height:1.5}.byline{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:24px;padding-top:18px;font-size:15px;display:flex}.byline a{font-weight:600}.avatar{border-radius:var(--radius-input);background:var(--ink);width:40px;height:40px;color:var(--ink-text);font:800 18px var(--font-display);flex:none;justify-content:center;align-items:center;display:inline-flex}.avatar.lg{border-radius:var(--radius-card);width:88px;height:88px;font-size:40px}.post-body{margin-top:40px}.article{font-size:var(--text-body);max-width:var(--measure);line-height:1.65}.article>*+*{margin-top:22px}.article h2{letter-spacing:-.035em;font-size:clamp(26px,1.2vw + 22px,32px);line-height:1.1;font-family:var(--font-display);margin-top:48px;scroll-margin-top:24px;font-weight:800}.article h3{font:800 24px/1.15 var(--font-display);letter-spacing:-.03em;margin-top:32px;scroll-margin-top:24px}.article a{text-decoration:underline 1.5px}.article a:hover{text-decoration-thickness:2.5px}.article ul,.article ol{list-style:revert;padding-left:22px}.article li+li{margin-top:6px}.article :not(pre)>code{background:var(--surface);border-radius:var(--radius-chip);overflow-wrap:anywhere;padding:2px 6px;font-size:.88em}.article table{border-collapse:collapse;width:100%;font-size:15px;display:block;overflow-x:auto}.article th,.article td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:10px 12px}.article th{font:500 13px var(--font-mono);color:var(--text-muted)}.article pre:not(.output){font:14px/1.7 var(--font-mono);background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-card);margin:0;padding:16px 18px;overflow-x:auto}.code-block{position:relative}.code-block pre{padding-right:84px}.article pre code{font:inherit}.copy-btn{cursor:pointer;border:var(--btn-border) solid var(--control-border);border-radius:var(--radius-pill);background:var(--surface);min-height:32px;color:var(--text);font:500 12px var(--font-mono);padding:0 12px;position:absolute;top:8px;right:8px}.copy-btn:hover,.copy-btn:focus-visible{background:var(--text);color:var(--bg);border-color:var(--text)}.tok-keyword,.tok-function{font-weight:600}.tok-comment{color:var(--text-soft);font-style:italic}.callout{background:var(--surface);border-left:3px solid var(--text);border-radius:var(--radius-card);padding:16px 20px;font-size:16px;line-height:1.6}.callout .eyebrow{margin-bottom:6px;display:block}.callout p+p{margin-top:10px}.toc{grid-area:1/3;align-self:start;font-size:14px;position:sticky;top:24px}.toc .eyebrow{margin-bottom:8px}.toc a{border-left:2px solid var(--line);color:var(--text-muted);padding:5px 0 5px 12px;text-decoration:none;display:block}.toc a:hover{color:var(--text)}.toc a[aria-current]{border-left-color:var(--text);color:var(--text);font-weight:600}.toc-m{border:1px solid var(--line);border-radius:var(--radius-card);margin-top:20px;font-size:15px;display:none}.toc-m summary{min-height:var(--hit);cursor:pointer;align-items:center;padding:0 16px;font-weight:600;display:flex}.toc-m a{border-top:1px solid var(--line);min-height:var(--hit);align-items:center;padding:10px 16px;text-decoration:none;display:flex}.cta{background:var(--ink);color:var(--ink-text);border-radius:var(--radius-output);grid-template-columns:7fr 5fr;align-items:start;gap:32px;margin-top:48px;padding:32px;display:grid}.cta>div{min-width:0}.cta h2{font:800 32px/1.05 var(--font-display);letter-spacing:-.04em;color:#fff;margin:8px 0 0}.cta p{color:var(--ink-muted);margin-top:12px;font-size:16px;line-height:1.55}.cta .eyebrow{color:var(--ink-muted)}.cta .cmd{background:var(--ink);border:1px solid var(--ink-line);border-radius:var(--radius-card);font:14px var(--font-mono);color:var(--ink-text);justify-content:space-between;align-items:center;gap:12px;padding:10px 10px 10px 16px;display:flex}.cta .cmd code{white-space:nowrap;overflow-x:auto}.cta .cmd button{background:var(--ink-line);color:var(--ink-text);border-radius:var(--radius-pill);min-height:36px;font:500 13px var(--font-mono);cursor:pointer;border:0;flex:none;padding:0 14px}.cta .cmd button:hover{background:var(--ink-text);color:var(--ink)}.cta .actions{flex-wrap:wrap;align-items:center;gap:4px 20px;margin-top:16px;font-size:15px;display:flex}.cta .actions a:not(.btn){color:var(--ink-text);min-height:var(--hit);align-items:center;text-decoration:underline;display:inline-flex}.cta .actions a:not(.btn):hover{text-decoration-thickness:2px}.pager-cards{grid-template-columns:1fr 1fr;gap:14px;margin-top:32px;display:grid}.pager-cards a{border:1px solid var(--line);border-radius:var(--radius-card);padding:16px 18px;text-decoration:none;display:block}.pager-cards a:hover{border-color:var(--text-muted)}.pager-cards small{font:500 12px var(--font-mono);color:var(--text-muted);margin-bottom:4px;display:block}.pager-cards a.next{text-align:right;grid-column:2}.pager-cards strong{font:700 17px/1.3 var(--font-display)}.page-head{grid-template-columns:7fr 5fr;align-items:end;gap:48px;padding:56px 0 8px;display:grid}.page-head h1{font-size:var(--h1-product);margin-top:10px}.page-head h1.mono{font-family:var(--font-mono);letter-spacing:-.04em;font-weight:500}.page-head .lede{color:var(--text-soft);max-width:48ch;font-size:19px}.page-head .lede+.meta{margin-top:14px}.author-head{grid-template-columns:2fr 8fr 2fr;gap:48px;padding:56px 0 8px;display:grid}.author-head .box{grid-column:2;align-items:flex-start;gap:28px;display:flex}.author-head h1{font-size:var(--h1-product)}.author-head p{color:var(--text-soft);margin-top:8px;font-size:19px}.author-head .links{gap:20px;margin-top:14px;font-size:15px;display:flex}.related{margin-top:48px}.related h2{font:500 13px var(--font-mono);letter-spacing:.04em;color:var(--text-muted);margin-bottom:12px}.not-found{grid-template-columns:7fr 5fr;align-items:start;gap:64px;padding:96px 0 0;display:grid}.not-found h1{font-size:var(--h1-product)}.not-found p{color:var(--text-soft);margin-top:16px;font-size:19px}.not-found .actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}dialog.search{border:1px solid var(--line);border-radius:var(--radius-output);background:var(--bg);width:680px;max-width:calc(100% - 32px);color:var(--text);box-shadow:var(--shadow-output);margin:96px auto 0;padding:0;overflow:hidden}dialog.search::backdrop{background:#0e11168c}.search form{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:64px;padding:0 20px;display:flex}.search input[type=search]{min-width:0;font:inherit;color:var(--text);min-height:var(--hit);background:0 0;border:0;flex:1;font-size:18px}.search input[type=search]:focus-visible{outline:none}.search form:focus-within{box-shadow:inset 0 -2px 0 var(--text)}.search input::placeholder{color:var(--text-muted)}.search .close{font:500 12px var(--font-mono);border:1px solid var(--control-border);border-radius:var(--radius-chip);cursor:pointer;background:0 0;min-height:32px;padding:4px 10px}.search .body{max-height:min(60vh,520px);padding:8px;overflow-y:auto}.search .group{font:500 12px var(--font-mono);letter-spacing:.04em;color:var(--text-muted);padding:12px 12px 6px}.search [role=option]{border-radius:var(--radius-input);border:1.5px solid #0000;padding:12px;text-decoration:none;display:block}.search [role=option][aria-selected=true],.search [role=option]:hover{background:var(--surface);border-color:var(--text)}.search [role=option] strong{font:800 18px/1.2 var(--font-display);letter-spacing:-.02em;display:block}.search [role=option] span{color:var(--text-soft);margin-top:4px;font-size:14px;line-height:1.5;display:block}.search mark{color:var(--text);text-underline-offset:3px;background:0 0;font-weight:700;text-decoration:underline 2px}.search .none{padding:32px 20px 36px}.search .none h2{font:800 24px/1.1 var(--font-display);letter-spacing:-.03em}.search .none p{color:var(--text-soft);margin-top:10px}.search .hints{border-top:1px solid var(--line);font:12px var(--font-mono);color:var(--text-muted);gap:18px;padding:10px 20px;display:flex}.search [hidden]{display:none}@media (width<=640px){dialog.search{width:100%;max-width:100%;height:100%;max-height:100%;box-shadow:none;border:0;border-radius:0;margin:0}.search .body{max-height:calc(100vh - 70px)}.search .hints{display:none}}@media (prefers-reduced-motion:no-preference){.feature,.pager-cards a,.chip,.btn,.search-open,.icon-btn{transition:border-color var(--motion-fast), background-color var(--motion-fast), color var(--motion-fast)}}@media (width<=960px){.intro,.feature,.page-head,.not-found,.cta{grid-template-columns:minmax(0,1fr);gap:20px}.list-layout{grid-template-columns:1fr;gap:32px}.post-grid,.author-head{grid-template-columns:1fr;gap:0}.post-grid>.col,.author-head .box{grid-column:1}.toc{display:none}.toc-m{display:block}.not-found{padding-top:48px}}@media (width<=700px){.post-item{grid-template-columns:1fr;gap:6px;padding:22px 0}.post-item .date{padding-top:0}.intro{padding:32px 0 24px}.feature{padding:20px}.post-head,.page-head,.author-head{padding-top:32px}.pager-cards{grid-template-columns:1fr}.pager-cards a.next{grid-column:1}.cta{padding:24px 20px}.cta h2{font-size:28px}.cta .cmd code{white-space:pre-wrap;word-break:break-all}.author-head .box{flex-direction:column;gap:16px}}@media (width<=480px){.output{padding:18px;font-size:13px}}
