*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);min-height:100svh;color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:80px 80px;flex-direction:column;display:flex}button{font:inherit}a{color:var(--accent-ink)}a:focus-visible,button:focus-visible{outline:1px solid var(--accent-ink);outline-offset:2px}::selection{background:var(--accent-ink);color:var(--bg)}.skip-link{background:var(--accent-ink);color:var(--bg);font-family:var(--font-mono);letter-spacing:.12em;z-index:10;padding:8px 12px;font-size:11px;text-decoration:none;position:absolute;top:-100px;left:16px}.skip-link:focus-visible{top:16px}.page-header{border-bottom:1px solid var(--line);align-items:center;gap:24px;padding:18px 24px;display:flex}.page-header__brand{font-family:var(--font-display);letter-spacing:.02em;color:var(--text);white-space:nowrap;font-size:20px;font-weight:700;text-decoration:none}.page-header__x{color:var(--accent-ink)}.page-header__wordmark{font-family:var(--font-mono);letter-spacing:.32em;color:var(--text-dim);margin-left:6px;font-size:11px;font-weight:400}.page-nav{gap:18px;margin-left:8px;display:flex}.page-nav a{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-dim);font-size:11px;text-decoration:none;transition:color .15s}.page-nav a:hover,.page-nav a.is-current{color:var(--text)}.page-header__controls{align-items:center;gap:12px;margin-left:auto;display:inline-flex}.page-header__divider{background:var(--line-strong);width:1px;height:16px}.page-header__alt{font-family:var(--font-mono);letter-spacing:.1em;color:var(--text-dim);font-size:10px;text-decoration:none}.page-header__alt.is-missing{opacity:.6}.theme-toggle{border:1px solid var(--line-strong);border-radius:2px;display:inline-flex;overflow:hidden}.theme-toggle__btn{appearance:none;font-family:var(--font-mono);letter-spacing:.1em;color:var(--text-dim);cursor:pointer;background:0 0;border:0;margin:0;padding:7px 12px;font-size:10px;transition:color .15s,background .15s}.theme-toggle__btn+.theme-toggle__btn{border-left:1px solid var(--line-strong)}.theme-toggle__btn:hover{color:var(--text)}.theme-toggle__btn.is-active{background:var(--accent-ink);color:var(--bg)}.theme-toggle__btn[disabled]{cursor:not-allowed;color:var(--text-dim);opacity:.55;text-decoration:line-through;text-decoration-thickness:1px}.page{flex:1;width:min(760px,100%);margin:0 auto;padding:clamp(48px,10vh,96px) 24px 80px}.article__head{margin:0 0 40px}.article__meta{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-dim);text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:14px;margin:0 0 22px;font-size:11px;display:flex}.article__tag{align-items:center;gap:8px;display:inline-flex}.article__tag:before{content:"";background:var(--accent-ink);width:3px;height:12px}.article__title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text);margin:0 0 18px;font-size:clamp(1.7rem,4.4vw,2.7rem);font-weight:700;line-height:1.25}.article__summary{color:var(--text-dim);margin:0;font-size:clamp(.95rem,1.4vw,1.05rem);line-height:1.9}.walkthrough-meta{border:1px solid var(--line-strong);border-radius:2px;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:28px 0 0;padding:16px 18px;display:grid}.walkthrough-meta div{flex-direction:column;gap:6px;display:flex}.walkthrough-meta dt{font-family:var(--font-mono);letter-spacing:.16em;color:var(--text-dim);font-size:10px}.walkthrough-meta dd{font-family:var(--font-mono);color:var(--text);overflow-wrap:anywhere;margin:0;font-size:12px}.article__body{font-size:clamp(.98rem,1.35vw,1.06rem);line-height:1.95}.article__body>*+*{margin-top:1.2em}.article__body h2,.article__body h3,.article__body h4{font-family:var(--font-display);letter-spacing:-.005em;color:var(--text);font-weight:700;line-height:1.3}.article__body h2{margin-top:2.4em;font-size:1.45em}.article__body h3{margin-top:2em;font-size:1.15em}.article__body h4{font-size:1em}.article__body .header-anchor{color:inherit;text-decoration:none}.article__body .header-anchor:hover:after{content:" #";color:var(--accent-ink)}.article__body p{margin:0}.article__body ul,.article__body ol{padding-left:1.4em}.article__body li+li{margin-top:.35em}.article__body blockquote{border-left:2px solid var(--accent-ink);color:var(--text-dim);margin:0;padding:4px 0 4px 18px}.article__body code{font-family:var(--font-mono);background:var(--bg-elev);border:1px solid var(--line);border-radius:2px;padding:.1em .35em;font-size:.88em}.article__body pre{border:1px solid var(--line-strong);background:var(--bg-elev);border-radius:2px;margin:0;padding:16px 18px;line-height:1.6;overflow-x:auto}.article__body pre code{background:0 0;border:0;padding:0}.article__body table{border-collapse:collapse;font-size:.92em;display:block;overflow-x:auto}.article__body th,.article__body td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:8px 12px}.article__body th{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);font-size:.8em}.article__body img{max-width:100%;height:auto}.article__body hr{border:0;border-top:1px solid var(--line-strong)}.article__body .footnotes-sep{margin-top:3em}.article__body .footnotes{color:var(--text-dim);font-size:.9em}.article__body .footnote-ref a,.article__body .footnote-backref{font-family:var(--font-mono);text-decoration:none}.article__sources{border-top:1px solid var(--line-strong);margin-top:56px;padding-top:24px}.article__sources h2{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);margin:0 0 14px;font-size:11px;font-weight:500}.article__sources ol{margin:0;padding-left:1.4em;font-size:.92rem;line-height:1.8}.article__accessed{font-family:var(--font-mono);color:var(--text-dim);font-size:.8em}.index{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.index__row{border-bottom:1px solid var(--line);grid-template-columns:6.5rem 1fr auto;align-items:baseline;gap:6px 18px;padding:22px 4px;display:grid}.index__date,.index__tag{font-family:var(--font-mono);letter-spacing:.12em;color:var(--text-dim);font-size:11px}.index__title{font-family:var(--font-display);color:var(--text);font-size:clamp(1.15rem,2.2vw,1.5rem);font-weight:700;line-height:1.3;text-decoration:none}.index__title:hover{color:var(--accent-ink)}.index__summary{color:var(--text-dim);grid-column:2/-1;margin:0;font-size:.95rem;line-height:1.8}.index__empty{border-top:1px solid var(--line);color:var(--text-dim);margin:0 0 12px;padding-top:26px;font-size:clamp(.98rem,1.4vw,1.08rem);line-height:1.8}.index__count{font-family:var(--font-mono);letter-spacing:.18em;color:var(--text-dim);margin:0;font-size:11px}.page-footer{border-top:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.12em;color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:18px;padding:20px 24px;font-size:10px;display:flex}.page-footer__links{gap:16px;margin-left:auto;display:flex}.page-footer__links a{color:var(--text-dim);text-transform:uppercase;text-decoration:none}.page-footer__links a:hover{color:var(--text)}@media (width<=720px){.page-header{flex-wrap:wrap;gap:12px 18px}.page-header__controls{width:100%;margin-left:0}.walkthrough-meta,.index__row{grid-template-columns:1fr}.index__summary{grid-column:1}}
