@import "https://fonts.googleapis.com/css2?family=Permanent+Marker&display=swap";@import "https://fonts.googleapis.com/css2?family=Inter+Tight:wght@300;400;500;600&display=swap";.bar-logo{width:var(--bar-logo-size,38px);height:var(--bar-logo-size,38px);border:1px solid var(--bar-logo-border,#d4ff3a5c);border-radius:var(--bar-logo-radius,2px);background:var(--bar-logo-bg,var(--article-accent,var(--lime,#d4ff3a)));box-shadow:var(--bar-logo-shadow,0 0 14px #d4ff3a29);color:var(--bar-logo-color,#0a0b0a);font-family:var(--font-marker,"Permanent Marker", "Arial Black", Impact, Haettenschweiler, system-ui, sans-serif);font-weight:900;font-size:var(--bar-logo-font-size,15px);letter-spacing:0;flex:none;place-items:center;line-height:1;text-decoration:none;display:grid}.bar-logo:hover{text-decoration:none}.site-mark{flex:none;align-items:center;gap:10px;display:inline-flex}.site-mark__name,.site-mark__role{white-space:nowrap;background:0 0;border:0;padding:0}button.site-mark__name,button.site-mark__role{cursor:pointer}.site-mark__name{color:var(--ink-1);font-family:var(--font-marker);letter-spacing:0;font-size:22px;font-weight:900;line-height:1}.site-mark__name span{color:var(--lime)}.site-mark__role{color:var(--ink-3);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:14px;font-weight:600;line-height:1}.site-mark__name:hover,.site-mark__role:hover{text-decoration:none}.site-mark__role em{color:var(--ink-3);font-style:normal}.article-shell{--article-bg:#0a0b0d;--article-panel:#0f110f;--article-panel-2:#13161300;--article-ink:#e8eae6;--article-ink-dim:#9aa096;--article-ink-faint:#5c6159;--article-line:#23271f;--article-line-bright:#33392c;--article-accent:#d4ff3a;--article-accent-dim:#d4ff3a24;--article-accent-glow:#d4ff3a80;--article-code-inline:#5de4c7;--article-code-inline-bg:#5de4c724;--article-mono:"JetBrains Mono", ui-monospace, monospace;--article-serif:"Fraunces", Georgia, serif;--article-body:"Inter Tight", system-ui, sans-serif;background:var(--article-bg);min-height:100vh;color:var(--article-ink);font-family:var(--article-body);font-weight:400;line-height:1.6;position:relative;overflow-x:hidden}.article-shell *,.article-shell :before,.article-shell :after{box-sizing:border-box}.article-wrap{z-index:1;counter-reset:article-section;max-width:1180px;margin:0 auto;padding:0 28px;position:relative}.article-system-bar{z-index:50;border-bottom:1px solid var(--article-line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0b0ad1;align-items:center;gap:18px;min-height:58px;padding:10px 28px;display:flex;position:sticky;top:0}.article-shell-hero{padding:16px 0 64px;position:relative;container-type:inline-size}.article-shell-hero:has(>.article-eyebrow:last-child){padding-bottom:0}.article-eyebrow{color:var(--article-accent);font-family:var(--article-mono);letter-spacing:.02em;flex-wrap:wrap;align-items:center;gap:6px 0;margin-bottom:16px;font-size:12px;display:flex}.article-eyebrow-item{align-items:center;min-width:0;display:inline-flex}.article-eyebrow-marker{flex:none;margin-right:12px}.article-eyebrow-marker--dash{background:var(--article-accent);width:26px;height:1px}.article-eyebrow-marker--dot{color:var(--article-accent);line-height:.8}.article-eyebrow-tag{white-space:nowrap;min-width:0;line-height:1.25}.article-eyebrow-separator{padding:0 9px;display:none}.article-eyebrow:before{background:var(--article-accent);content:"";width:26px;height:1px;display:none}.article-eyebrow-item:not(:first-child) .article-eyebrow-marker{display:none}.article-eyebrow-item:not(:last-child) .article-eyebrow-separator{display:inline-block}@container (width>=28rem){.article-eyebrow{align-items:center;gap:0;display:flex}.article-eyebrow-item{align-items:center;min-width:0;display:inline-flex}.article-eyebrow-marker{flex:none;margin-right:12px}.article-eyebrow-item:not(:first-child) .article-eyebrow-marker{display:none}.article-eyebrow-item:not(:last-child) .article-eyebrow-separator{display:inline-block}}.article-shell h1,.article-shell h2{color:var(--article-ink);font-family:var(--article-serif);letter-spacing:-.018em;margin:0;font-weight:400}.article-shell h1{margin-bottom:30px;font-size:clamp(40px,7.2vw,86px);line-height:1.02}.article-shell h1 em,.article-shell h2 em,.article-thesis blockquote em{color:var(--article-accent);font-style:italic;font-weight:500}.article-lede{max-width:680px;color:var(--article-ink-dim);font-size:clamp(17px,2vw,21px);font-weight:300;line-height:1.55}.article-github-badge{border:1px solid var(--article-line-bright);background:var(--article-panel);max-width:100%;color:var(--article-ink);font-family:var(--article-mono);border-radius:4px;align-items:center;gap:9px;margin:34px 0 0;padding:9px 10px;font-size:12px;line-height:1;text-decoration:none;display:inline-flex}.article-github-badge:hover{border-color:var(--article-accent)}.article-github-badge>span:first-of-type{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.article-github-badge__star{color:var(--article-accent);flex:none;align-items:center;gap:4px;display:inline-flex}.article-shell strong,.article-shell b{color:inherit;font-weight:600}.article-meta{border:1px solid var(--article-line);border-radius:3px;flex-wrap:wrap;margin-top:48px;display:flex;overflow:hidden}.article-meta-item{border-right:1px solid var(--article-line);flex:1;min-width:150px;padding:16px 20px}.article-meta-item:last-child{border-right:0}.article-meta-item dt{color:var(--article-ink-faint);font-family:var(--article-mono);letter-spacing:.16em;text-transform:uppercase;margin-bottom:7px;font-size:10px}.article-meta-item dd{color:var(--article-ink);font-family:var(--article-mono);margin:0;font-size:13.5px;font-weight:500}.article-accent{color:var(--article-accent)}.article-section{border-top:1px solid var(--article-line);counter-increment:article-section;padding:62px 0}.article-section>header{margin-bottom:8px}.article-section>header>span{color:var(--article-accent);font-family:var(--article-mono);letter-spacing:.18em;text-transform:uppercase;margin-bottom:8px;font-size:11px;display:block}.article-section>header>span:before{content:counter(article-section, decimal-leading-zero) " · "}.article-shell h2{font-size:clamp(26px,3.6vw,40px);line-height:1.08}.article-section-intro{max-width:620px;color:var(--article-ink-dim);margin-top:18px;font-size:16px;font-weight:300}.article-thesis{border-top:1px solid var(--article-line);text-align:center;padding:80px 0 90px}.article-thesis-eyebrow{color:var(--article-accent);font-family:var(--article-mono);letter-spacing:.2em;text-transform:uppercase;margin-bottom:24px;font-size:11px}.article-thesis blockquote{max-width:840px;color:var(--article-ink);font-family:var(--article-serif);letter-spacing:-.015em;margin:0 auto;font-size:clamp(26px,4.4vw,46px);font-weight:400;line-height:1.16}.article-thesis-foot{color:var(--article-ink-faint);font-family:var(--article-mono);letter-spacing:.04em;margin-top:34px;font-size:12px}article,article>h1{max-width:980px}article>h1+p{max-width:680px;color:var(--article-ink-dim);font-size:clamp(17px,2vw,21px);font-weight:300;line-height:1.55}article>:first-child{margin-top:0}article>:last-child{margin-bottom:0}article h2{color:var(--article-ink);font-family:var(--article-serif);letter-spacing:-.01em;margin:0 0 18px;font-size:clamp(26px,3.6vw,40px);font-weight:400;line-height:1.08}article h2:has(+p){margin-bottom:10px}article>section{border-top:1px solid var(--article-line);counter-increment:article-section;min-width:0;padding:62px 0;display:grid}article>section>*{min-width:0}article>section:first-of-type{margin-top:44px}article>section>h2+blockquote{color:var(--article-accent);font-family:var(--article-mono);letter-spacing:.18em;text-transform:uppercase;border-left:0;grid-row:1;margin:0 0 8px;padding-left:0;font-size:11px}article>section>h2+blockquote:before{content:counter(article-section, decimal-leading-zero) " · "}article>section:has(>h2+blockquote)>h2{grid-row:2}article h3{font-family:var(--article-mono);text-transform:uppercase;margin:26px 0 8px;font-size:21px;line-height:1.35}article p,article li,article blockquote{color:var(--article-ink-dim);font-size:18px;font-weight:300;line-height:1.64}article p,article ul,article ol,article blockquote,article pre,article .code-block{width:100%;max-width:760px}article p{margin:0 0 18px}article ul{margin:0 0 20px;padding-left:24px;list-style:outside}article ol{margin:0 0 20px;padding-left:24px;list-style:decimal}article li{margin:6px 0}article li::marker{color:var(--article-accent)}article blockquote{border-left:2px solid var(--article-accent);color:var(--article-ink);margin:28px 0;padding-left:20px}article blockquote p{color:inherit;font-size:18px}article code,.article-section>header code{background:var(--article-code-inline-bg);color:var(--article-code-inline);font-family:var(--article-mono);border-radius:3px;padding:0;font-size:.86em}article pre{border:1px solid var(--article-line);background:var(--article-panel);border-radius:4px;min-width:0;max-width:100%;margin:26px 0;padding:16px 20px;line-height:1.45;overflow-x:auto}article .code-block{min-width:0;margin:26px 0}article .code-block pre{margin:0;background:var(--article-panel)!important}article pre code{color:var(--article-ink);background:0 0;border:0;padding:0;font-size:12px}article .anchor{color:inherit;text-decoration:none}.article-github-embed{border:1px solid var(--article-line-bright);background:var(--article-panel);border-radius:5px;grid-template-columns:auto minmax(0,1fr);gap:18px;max-width:760px;margin:48px 0 0;padding:22px;display:grid}.article-github-embed__mark{border:1px solid var(--article-line-bright);width:42px;height:42px;color:var(--article-accent);border-radius:4px;place-items:center;display:grid}.article-github-embed__body{min-width:0}.article-github-embed__eyebrow{color:var(--article-accent);font-family:var(--article-mono);text-transform:uppercase;margin:0 0 8px;font-size:11px;line-height:1}.article-github-embed h2{overflow-wrap:anywhere;margin:0;font-size:clamp(22px,3vw,30px);line-height:1.15}.article-github-embed p:not(.article-github-embed__eyebrow){max-width:560px;color:var(--article-ink-dim);margin:12px 0 0;font-size:15px;line-height:1.55}.article-github-embed__actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.article-github-embed__actions a{border:1px solid var(--article-line-bright);color:var(--article-ink);font-family:var(--article-mono);border-radius:4px;align-items:center;padding:9px 11px;font-size:12px;line-height:1;text-decoration:none;display:inline-flex}.article-github-embed__actions a:hover{border-color:var(--article-accent);color:var(--article-accent)}@media (width<=640px){.article-system-bar{gap:12px;padding:11px 16px}.article-wrap{padding:0 18px}.article-meta-item{border-right:0;border-bottom:1px solid var(--article-line);min-width:100%}.article-meta-item:last-child{border-bottom:0}article p,article li,article blockquote{font-size:16.5px}.article-github-badge{width:100%}.article-github-embed{grid-template-columns:1fr;padding:18px}}@media (prefers-reduced-motion:reduce){.article-shell *,.article-shell :before,.article-shell :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
