.tag-filter{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 var(--space-4)}.tag-chip{font-family:var(--font-mono);font-size:var(--size-micro);color:var(--fg-dim);background:transparent;border:1px solid var(--line);border-radius:var(--radius);padding:4px 10px;cursor:pointer;transition:border-color .15s ease,color .15s ease,background-color .15s ease}.tag-chip:hover,.tag-chip:focus-visible{border-color:var(--amber-dim);color:var(--amber)}.tag-chip.is-active{color:var(--amber);border-color:var(--amber-dim);background:#ffb0000f}.log-list-empty{color:var(--fg-dim);font-size:var(--size-small);padding:var(--space-4) 0}.writeup-entry{display:block;padding:var(--space-3) var(--space-4)}.writeup-entry:hover,.writeup-entry:focus-visible{background:#ffb00009}.writeup-entry-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2) var(--space-3)}.writeup-summary{color:var(--fg-dim);font-size:var(--size-small);max-width:68ch;margin:6px 0 0}.writeup-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--space-2)}.writeup-tags span{font-size:var(--size-micro);color:var(--fg-dimmer);border:1px solid var(--line);border-radius:var(--radius);padding:2px 7px}.article-head{padding-bottom:var(--space-3)}.article-meta{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:var(--size-micro);color:var(--fg-dimmer);margin:var(--space-2) 0 0}.article-meta .amber-txt{color:var(--amber-dim)}.article-body{max-width:70ch}.article-body h2{font-size:1.25rem;margin:var(--space-5) 0 var(--space-3)}.article-body h2:first-child{margin-top:0}.article-body h3{font-size:1.05rem;margin:var(--space-4) 0 var(--space-2);color:var(--fg-bright)}.article-body p{color:var(--fg);font-size:var(--size-body);margin:0 0 var(--space-3)}.article-body a{color:var(--amber);text-decoration:underline;text-underline-offset:2px}.article-body ul,.article-body ol{color:var(--fg);margin:0 0 var(--space-3);padding-left:1.4em}.article-body li+li{margin-top:4px}.article-body blockquote{margin:0 0 var(--space-3);padding:var(--space-2) var(--space-3);border-left:2px solid var(--amber-dim);color:var(--fg-dim);background:#ffb0000a}.article-body blockquote p:last-child{margin-bottom:0}.article-body :not(pre)>code{font-family:var(--font-mono);font-size:.9em;color:var(--amber);background:var(--bg-2);border:1px solid var(--line);border-radius:3px;padding:1px 5px}.article-body .code-window{margin:0 0 var(--space-4);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-1);overflow:hidden}.article-body .code-window-title{display:flex;align-items:center;gap:var(--space-2);padding:8px 14px;background:var(--bg-2);border-bottom:1px solid var(--line);font-size:var(--size-micro);color:var(--fg-dimmer)}.article-body .code-window pre.shiki{margin:0;padding:var(--space-3) var(--space-4);overflow-x:auto;font-size:.85rem;line-height:1.55;background:transparent!important}.article-body .code-window pre.shiki code{font-family:var(--font-mono);background:none;border:none;padding:0}.article-footer{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--line)}.article-footer a{color:var(--amber);text-decoration:underline;text-underline-offset:2px}.article-body h2,.article-body h3{position:relative;scroll-margin-top:5.5rem}.heading-anchor{position:absolute;left:-1.1em;color:var(--amber-dim);text-decoration:none;opacity:0;transition:opacity .15s ease}.article-body h2:hover .heading-anchor,.article-body h3:hover .heading-anchor,.heading-anchor:focus-visible{opacity:1}@media(max-width:900px){.heading-anchor{position:static;display:inline-block;margin-right:.35em}}.article-body .code-window-title{justify-content:space-between}.copy-btn{font-family:var(--font-mono);font-size:var(--size-micro);color:var(--fg-dimmer);background:transparent;border:1px solid var(--line);border-radius:var(--radius);padding:2px 8px;cursor:pointer;transition:border-color .15s ease,color .15s ease}.copy-btn:hover,.copy-btn:focus-visible{color:var(--amber);border-color:var(--amber-dim)}.copy-btn.is-copied{color:var(--green);border-color:#6fdc8c66}.article-layout{display:flex;align-items:flex-start;gap:var(--space-5)}.article-layout .article-body{flex:1 1 auto;min-width:0}.article-toc{order:2;flex:0 0 220px;position:sticky;top:5.5rem}.toc-toggle{display:none}.toc-heading{font-size:var(--size-micro);color:var(--fg-dimmer);margin:0 0 var(--space-2);text-transform:lowercase}.toc-list{list-style:none;padding:0;margin:0;border-left:1px solid var(--line)}.toc-item a{display:block;padding:4px 0 4px 12px;margin-left:-1px;border-left:1px solid transparent;color:var(--fg-dim);font-size:var(--size-micro);text-decoration:none;transition:color .15s ease,border-color .15s ease}.toc-item a:hover,.toc-item a:focus-visible{color:var(--fg-bright)}.toc-item a.is-active{color:var(--amber);border-left-color:var(--amber)}.toc-level-3 a{padding-left:24px}@media(max-width:900px){.article-layout{display:block}.article-toc{position:static;flex:none;margin-bottom:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-1)}.toc-toggle{display:flex;align-items:center;width:100%;font-family:var(--font-mono);font-size:var(--size-small);color:var(--fg);background:transparent;border:none;padding:var(--space-3);cursor:pointer;text-align:left}.toc-toggle .sym{color:var(--amber);margin-right:6px}.toc-body{display:none;padding:0 var(--space-3) var(--space-3)}.toc-body.is-open{display:block}.toc-list{border-left:1px solid var(--line)}}.article-adjacent{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-bottom:var(--space-5)}.adjacent-link{display:flex;flex-direction:column;gap:4px;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-1);text-decoration:none;transition:border-color .15s ease,background-color .15s ease}.adjacent-next{text-align:right;align-items:flex-end}.adjacent-link:hover,.adjacent-link:focus-visible{border-color:var(--amber-dim);background:#ffb00009}.adjacent-empty{border:none;background:none}.adjacent-dir{color:var(--amber-dim);font-size:var(--size-micro)}.adjacent-title{color:var(--fg-bright);font-size:var(--size-small)}@media(max-width:640px){.article-adjacent{grid-template-columns:1fr}.adjacent-next{text-align:left;align-items:flex-start}}.related-writeups{margin-bottom:var(--space-5)}.related-writeups .eyebrow{margin-bottom:var(--space-3)}
