:root{--paper:#fafafa;--ink:#181818;--graphite:#62625f;--rule:#cfcfcb;--well:#e9e9e6;--mist:#d4d4d1;--inv-bg:#181818;--inv-fg:#fafafa;--display:"Martian Mono", "IBM Plex Mono", ui-monospace, Menlo, monospace;--grot:"Geist", "Helvetica Neue", Arial, sans-serif;--body:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--brand:"Geist Mono", "IBM Plex Mono", ui-monospace, monospace;--ease-gate:cubic-bezier(.16, 1, .3, 1);--step--1:.78rem;--step-0:.9rem;--step-1:1.1rem;--step-2:1.5rem;--gutter:clamp(16px, 4cqi, 40px);--head-h:56px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#181818;--ink:#ececea;--graphite:#9a9a96;--rule:#2a2a28;--well:#151514;--mist:#3a3a38;--inv-bg:#ececea;--inv-fg:#181818;color-scheme:dark}}:root[data-theme=dark]{--paper:#181818;--ink:#ececea;--graphite:#9a9a96;--rule:#2a2a28;--well:#151514;--mist:#3a3a38;--inv-bg:#ececea;--inv-fg:#181818;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--head-h) + 16px)}body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:var(--step-0);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6;overflow-x:hidden}.site{flex-direction:column;min-height:100dvh;display:flex;container:blog/inline-size}.site>main{flex:1}img,svg{max-width:100%;height:auto}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}a:hover{background:var(--inv-bg);color:var(--inv-fg);text-decoration:none}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:2px}h1,h2,h3{font-family:var(--display);text-wrap:balance;margin:0;font-weight:700}p{margin:0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip{z-index:10;background:var(--inv-bg);color:var(--inv-fg);font-size:var(--step--1);padding:6px 10px;position:absolute;top:-40px;left:8px}.skip:focus{top:8px}.muted{color:var(--graphite)}.b-wrap{width:100%;max-width:1100px;padding-inline:max(var(--gutter), env(safe-area-inset-left,0px)) max(var(--gutter), env(safe-area-inset-right,0px));margin-inline:auto}.b-head{z-index:3;background:var(--paper);border-bottom:1px solid var(--ink);view-transition-name:site-head;position:sticky;top:0}.b-head .b-wrap{min-height:var(--head-h);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 24px;padding-block:12px;display:flex}.lk{font-family:var(--brand);letter-spacing:-.06em;white-space:nowrap;align-items:center;gap:.44em;font-size:1.25rem;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.lk:hover{color:inherit;background:0 0}.bm{background:var(--ink);letter-spacing:0;place-items:center;width:.96em;height:1.08em;display:inline-grid}.bm i{letter-spacing:-.133em;color:var(--paper);font-size:.6em;font-style:normal;font-weight:500}.bp{font-weight:400}.lk .sect{font-family:var(--body);letter-spacing:0;color:var(--graphite);margin-left:-.1em;font-size:.7em;font-weight:400}.b-nav{font-size:var(--step--1);flex-wrap:wrap;align-items:center;gap:4px;display:flex}.b-nav a{text-transform:lowercase;padding:3px 8px;text-decoration:none}.b-nav a:hover{color:inherit;background:0 0;text-decoration:underline}.b-nav a[aria-current=page]{background:var(--inv-bg);color:var(--inv-fg)}.b-nav .sep{background:var(--rule);align-self:stretch;width:1px;margin-inline:6px}@container blog (width<=520px){.b-nav{width:100%;margin-inline:-8px}.b-nav .sep{display:none}}.b-label,.b-meta{font-family:var(--body);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.08em;color:var(--graphite)}.b-meta{font-variant-numeric:tabular-nums}.b-slot{background:var(--inv-bg);color:var(--inv-fg);font-family:var(--body);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.08em;margin-right:10px;padding:1px 7px;display:inline-block}.cover{--lh:1.15;height:calc(var(--rows) * var(--lh) * 1em + 16px);border-block:1px solid var(--ink);flex-direction:column;justify-content:flex-end;padding-block:8px;font-size:11px;display:flex;overflow:hidden}.cover pre{font:11px / var(--lh) var(--body);white-space:pre;user-select:none;color:var(--ink);margin:0}.cover-cap{flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding-top:6px;display:flex}.b-index{grid-template-columns:minmax(0,1fr);gap:40px;padding-block:36px 56px;display:grid}.b-intro{gap:12px;display:grid}.b-display{font-family:var(--display);letter-spacing:-.02em;max-width:16ch;font-size:clamp(2.1rem,7cqi,4.6rem);font-weight:800;font-stretch:75%;line-height:.95}.b-intro p{font-family:var(--grot);color:var(--graphite);max-width:60ch;font-size:1.05rem}.b-feat>a,.b-card>a{color:inherit;grid-template-columns:minmax(0,1fr);gap:12px;text-decoration:none;display:grid}.b-feat>a:hover,.b-card>a:hover{color:inherit;background:0 0}.b-feat-text{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:12px 32px;display:grid}@container blog (width<=700px){.b-feat-text{grid-template-columns:1fr}}.b-feat-text>div{gap:10px;display:grid}.b-feat h2{font-family:var(--display);letter-spacing:-.02em;font-size:clamp(1.6rem,4cqi,2.4rem);font-weight:750;font-stretch:87.5%;line-height:1.05}.hl{-webkit-box-decoration-break:clone;box-decoration-break:clone}a:hover .hl,a:focus-visible .hl{background:var(--inv-bg);color:var(--inv-fg)}.b-dek{font-family:var(--grot);color:var(--graphite);font-size:1.05rem;line-height:1.55}.b-by{font-family:var(--body);font-size:var(--step--1)}.b-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:40px 28px;margin:0;padding:0;list-style:none;display:grid}.b-card h3{font-family:var(--display);letter-spacing:-.01em;font-size:1.2rem;font-weight:700;line-height:1.2}.b-card .b-dek{font-size:.98rem}.b-empty{border:1px solid var(--ink);font-family:var(--grot);padding:18px}.b-post{grid-template-columns:minmax(0,1fr);gap:28px;padding-block:22px 56px;display:grid}.b-post>article{grid-template-columns:minmax(0,1fr);gap:28px;min-width:0;display:grid}.b-crumbs ol{font-family:var(--body);font-size:var(--step--1);color:var(--graphite);flex-wrap:wrap;gap:4px 8px;margin:0;padding:0;list-style:none;display:flex}.b-crumbs li{overflow-wrap:anywhere;min-width:0}.b-crumbs li+li:before{content:"/";margin-right:8px}.b-crumbs a{color:var(--ink)}.b-post figure{min-width:0;margin:0}.b-post-head{gap:16px;display:grid}.b-post-head h1{font-family:var(--display);letter-spacing:-.02em;overflow-wrap:break-word;max-width:18ch;font-size:clamp(2.2rem,6.6cqi,4.6rem);font-weight:800;font-stretch:75%;line-height:.96}.b-post-head .b-dek{max-width:56ch;font-size:clamp(1.1rem,2.2cqi,1.3rem)}.b-facts{border-top:1px solid var(--ink);font-size:var(--step--1);grid-template-columns:repeat(4,minmax(0,auto));justify-content:start;gap:10px 36px;margin:0;padding-top:12px;display:grid}@container blog (width<=620px){.b-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}.b-facts dt{color:var(--graphite);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.b-facts dd{font-variant-numeric:tabular-nums;align-items:center;gap:8px;margin:0;display:flex}.av{background:var(--inv-bg);width:2.2em;height:2.2em;color:var(--inv-fg);font-family:var(--brand);letter-spacing:-.04em;flex:none;place-items:center;font-size:.9em;font-weight:600;display:inline-grid}.b-tags{font-size:var(--step--1);flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.b-tags li{border:1px solid var(--ink);padding:1px 8px}.b-answer{border:1px solid var(--ink);max-width:72ch;display:grid}.b-answer header{border-bottom:1px solid var(--ink);font-size:var(--step--1);justify-content:space-between;gap:10px;display:flex}.b-answer header span:first-child{background:var(--inv-bg);color:var(--inv-fg);text-transform:uppercase;letter-spacing:.08em;padding:4px 10px}.b-answer header span:last-child{color:var(--graphite);padding:4px 10px}.b-answer p{font-family:var(--grot);padding:14px 16px;font-size:clamp(1rem,2cqi,1.1rem);line-height:1.6}.b-body{grid-template-columns:minmax(0,1fr);gap:40px;display:grid}@container blog (width>=900px){.b-body{grid-template-columns:minmax(0,68ch) minmax(0,220px);justify-content:space-between}}.b-toc{font-size:var(--step--1);border-top:1px solid var(--ink);align-self:start;gap:8px;padding-top:10px;display:grid}@container blog (width>=900px){.b-toc{top:calc(var(--head-h) + 20px);grid-area:1/2;position:sticky}}.b-toc ol{gap:6px;margin:0;padding:0;list-style:none;display:grid}.b-toc a{text-decoration:none}.b-prose{font-family:var(--grot);overflow-wrap:break-word;min-width:0;font-size:clamp(1rem,.94rem + .4cqi,1.125rem);line-height:1.7}.b-prose>*{margin-block:0}.b-prose>*+*{margin-top:1.1em}.b-prose h2{font-family:var(--display);letter-spacing:-.01em;margin-top:2.2em;font-size:1.3rem;font-weight:650;line-height:1.3}.b-prose h3{font-family:var(--display);margin-top:1.8em;font-size:1.05rem;font-weight:650;line-height:1.35}.b-prose code{font-family:var(--body);background:var(--well);overflow-wrap:anywhere;padding:1px 5px;font-size:.86em}.b-prose pre{background:var(--well);font-family:var(--body);border-left:3px solid var(--ink);-webkit-overflow-scrolling:touch;margin-inline:0;padding:14px 16px;font-size:.82rem;line-height:1.6;overflow-x:auto}.b-prose pre code{font-size:inherit;overflow-wrap:normal;background:0 0;padding:0}.b-prose ul{padding-left:1.2em}.b-prose ul li+li{margin-top:.4em}.b-prose ol{counter-reset:s;border-top:1px solid var(--ink);padding-left:0;list-style:none}.b-prose ol>li{counter-increment:s;border-bottom:1px solid var(--rule);padding:10px 0 10px 4ch;position:relative}.b-prose ol>li:before{content:counter(s, decimal-leading-zero);font-family:var(--body);font-size:var(--step--1);color:var(--graphite);padding-top:.35em;position:absolute;top:10px;left:0}.b-prose ol>li>p+p,.b-prose ol>li>pre{margin-top:.6em}.b-prose strong{font-weight:600}.b-prose blockquote{border-left:3px solid var(--ink);margin-inline:0;padding-left:14px}.b-prose table{border-collapse:collapse;font-family:var(--body);font-size:var(--step--1);display:block;overflow-x:auto}.b-prose th,.b-prose td{text-align:left;vertical-align:top;border-bottom:1px solid var(--rule);padding:8px 14px 8px 0}.b-prose th{text-transform:uppercase;letter-spacing:.06em;border-bottom-color:var(--ink);font-weight:600}.callout{border:1px solid var(--ink);gap:6px;margin-inline:0;padding:14px 16px;display:grid}.callout>span{font-family:var(--body);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.08em}.callout>div{font-family:var(--display);font-size:1.05rem;font-weight:650;line-height:1.4}.callout>div>*+*{margin-top:.6em}.callout code{font-weight:400}.b-links{border-top:1px solid var(--ink);gap:8px;max-width:72ch;padding-top:10px;display:grid}.b-links ul{flex-wrap:wrap;gap:6px 20px;margin:0;padding:0;list-style:none;display:flex}.b-faq{border-top:1px solid var(--ink);max-width:72ch;display:grid}.b-faq h2{font-family:var(--body);font-weight:400;font-size:var(--step--1);text-transform:uppercase;letter-spacing:.08em;color:var(--graphite);padding-block:10px}.b-faq details{border-top:1px solid var(--rule)}.b-faq summary{cursor:pointer;font-family:var(--display);grid-template-columns:1fr auto;gap:12px;padding:12px 0;font-size:1rem;font-weight:650;list-style:none;display:grid}.b-faq summary::-webkit-details-marker{display:none}.b-faq summary:after{content:"+";font-family:var(--body)}.b-faq details[open] summary:after{content:"−"}.b-faq details>div{font-family:var(--grot);padding-bottom:14px;font-size:1.05rem;line-height:1.65}.b-faq code{font-family:var(--body);background:var(--well);padding:1px 5px;font-size:.86em}.b-author{border-top:1px solid var(--ink);grid-template-columns:auto 1fr;align-items:start;gap:6px 16px;max-width:72ch;padding-top:16px;display:grid}.b-author .av{grid-row:span 2;width:3.2em;height:3.2em;font-size:1.1rem}.b-author b{font-family:var(--display);font-weight:700}.b-author p{font-family:var(--grot);color:var(--graphite)}.b-related{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}.b-related .b-list{gap:28px}.b-person{grid-template-columns:auto 1fr;align-items:center;gap:8px 20px;display:grid}.b-person .av{grid-row:span 2;width:3.4em;height:3.4em;font-size:1.3rem}.b-person ul{font-size:var(--step--1);flex-wrap:wrap;gap:4px 16px;margin:0;padding:0;list-style:none;display:flex}.b-foot{border-top:1px solid var(--ink)}.b-foot .b-wrap{padding-block:16px max(22px, env(safe-area-inset-bottom,0px));font-size:var(--step--1);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 24px;display:flex}.b-foot nav{flex-wrap:wrap;gap:4px 16px;display:flex}.b-foot a{text-decoration:none}@view-transition{navigation:auto}::view-transition-old(root){animation:none}::view-transition-new(root){animation:gate-wipe .52s var(--ease-gate) both}@keyframes gate-wipe{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}::view-transition-group(site-head){animation:none}::view-transition-group(*.cover){animation-duration:.52s;animation-timing-function:var(--ease-gate);overflow:hidden}::view-transition-old(*.cover){opacity:0;animation:none}::view-transition-new(*.cover){height:auto;animation:none;inset-block:auto 0}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
