:root{--bg:#fafaf8;--text:#1a1a1a;--muted:#666;--accent:#2563eb;--border:#dededd;--tag-bg:#f0f0ed;--code-bg:#f4f4f1;--font-body:"Merriweather",Georgia,"Times New Roman",serif;--font-mono:"Source Code Pro","Fira Code",Consolas,monospace;--max-width:680px;--content-width:720px}[data-theme=dark]{--bg:#181818;--text:#e4e4e0;--muted:#888;--accent:#60a5fa;--border:#2e2e2e;--tag-bg:#242424;--code-bg:#242424}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:20px}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;padding:0 1.25rem;line-height:1.85;transition:background .2s,color .2s}.site-wrapper{max-width:var(--max-width);margin:0 auto;padding:3rem 0 6rem}.site-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;margin-bottom:2.5rem;padding-bottom:2rem;display:flex}.site-header-left{flex-direction:column;gap:.5rem;display:flex}.site-title{color:var(--text);letter-spacing:-.02em;font-size:1.5rem;font-weight:700;line-height:1.3;text-decoration:none}.site-title:hover{color:var(--accent)}.site-nav{gap:1.25rem;display:flex}.site-nav-link{font-family:var(--font-mono);color:var(--muted);font-size:.85rem;text-decoration:none;transition:color .15s}.site-nav-link:hover{color:var(--accent)}.theme-toggle{border:1px solid var(--border);color:var(--muted);cursor:pointer;font-size:.8rem;font-family:var(--font-mono);white-space:nowrap;background:0 0;border-radius:3px;flex-shrink:0;margin-top:.2rem;margin-left:1rem;padding:.3rem .75rem;transition:color .15s,border-color .15s}.theme-toggle:hover{color:var(--text);border-color:var(--text)}.bio{color:var(--muted);margin-bottom:2.5rem;font-size:1rem;line-height:1.8}.bio a{color:var(--accent);text-decoration:none}.bio a:hover{text-decoration:underline}.bio strong{color:var(--text)}.categories{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.45rem;margin-bottom:2.75rem;padding-bottom:2rem;display:flex}.cat-link{font-family:var(--font-mono);color:var(--muted);background:var(--tag-bg);border:1px solid #0000;border-radius:3px;padding:.25rem .75rem;font-size:.82rem;text-decoration:none;transition:color .15s,background .15s}.cat-link:hover,.cat-link.active{color:var(--accent);border-color:var(--accent);background:0 0}.posts-list{list-style:none}.post-item{border-bottom:1px solid var(--border);opacity:1;grid-template-columns:108px 1fr;align-items:baseline;gap:0 1.25rem;padding:.6rem 0;transition:opacity .15s;display:grid}.post-item:last-child{border-bottom:none}.post-item.hidden{display:none}.post-date{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;padding-top:.1em;font-size:.8rem;line-height:1.5}.post-title-link{color:var(--text);letter-spacing:-.01em;font-size:1.08rem;font-weight:700;line-height:1.5;text-decoration:none}.post-title-link:hover{color:var(--accent)}.post-excerpt{color:var(--muted);grid-column:2;margin-top:.25rem;font-size:.88rem;font-style:italic;font-weight:400;line-height:1.65}.site-footer{border-top:1px solid var(--border);font-family:var(--font-mono);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:4rem;padding-top:2rem;font-size:.75rem;display:flex}.footer-links{gap:1.25rem;display:flex}.footer-links a{color:var(--muted);text-decoration:none}.footer-links a:hover{color:var(--accent)}.article-wrapper{max-width:var(--content-width);margin:0 auto;padding:3rem 0 6rem}.article-back{font-family:var(--font-mono);color:var(--muted);margin-bottom:2.5rem;font-size:.78rem;text-decoration:none;transition:color .15s;display:inline-block}.article-back:hover{color:var(--accent)}.article-back:before{content:"← "}.article-meta{font-family:var(--font-mono);color:var(--muted);flex-wrap:wrap;gap:1rem;margin-bottom:.5rem;font-size:.78rem;display:flex}.article-title{letter-spacing:-.025em;margin-bottom:2rem;font-size:2.2rem;font-weight:700;line-height:1.25}.article-body{font-size:1.05rem;line-height:1.9}.article-body h2{letter-spacing:-.015em;margin:2.5rem 0 .75rem;font-size:1.4rem;font-weight:700}.article-body h3{margin:2rem 0 .5rem;font-size:1.15rem;font-weight:700}.article-body p{margin-bottom:1.4rem}.article-body a{color:var(--accent)}.article-body ul,.article-body ol{margin:0 0 1.4rem 1.6rem}.article-body li{margin-bottom:.35rem}.article-body code{font-family:var(--font-mono);background:var(--code-bg);border-radius:3px;padding:.15em .4em;font-size:.85em}.article-body pre{background:var(--code-bg);border:1px solid var(--border);border-radius:4px;margin-bottom:1.4rem;padding:1.2rem 1.4rem;font-size:.85rem;line-height:1.6;overflow-x:auto}.article-body pre code{background:0 0;padding:0}.article-body blockquote{border-left:3px solid var(--border);color:var(--muted);margin:1.4rem 0;padding-left:1.2rem;font-style:italic}.article-body hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.writing-header{margin-bottom:2rem}.writing-title{letter-spacing:-.025em;margin-bottom:.6rem;font-size:2rem;font-weight:700;line-height:1.2}.writing-subtitle{color:var(--muted);max-width:560px;font-size:1rem;line-height:1.75}.writing-section-label{font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.85rem;font-size:.72rem;font-weight:600}.writing-list{list-style:none}.writing-item{border-bottom:1px solid var(--border);padding:1.1rem 0}.writing-item:last-child{border-bottom:none}.writing-item--featured{border:1px solid var(--border);background:color-mix(in srgb,var(--tag-bg)60%,transparent);border-radius:5px;margin-bottom:.6rem;padding:1.25rem 1rem}.writing-item--featured:last-child{border-bottom:1px solid var(--border)}.writing-item-meta{align-items:center;gap:.75rem;margin-bottom:.3rem;display:flex}.writing-pub{font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600;text-decoration:none}.writing-pub:hover{text-decoration:underline}.writing-year{font-family:var(--font-mono);color:var(--muted);font-size:.7rem}.writing-item-title{color:var(--text);letter-spacing:-.01em;margin-bottom:.4rem;font-size:1.08rem;font-weight:700;line-height:1.45;text-decoration:none;transition:color .15s;display:block}.writing-item-title:hover{color:var(--accent)}.writing-ext-icon{opacity:0;color:var(--muted);margin-left:.3em;font-size:.78em;font-style:normal;font-weight:400;transition:opacity .15s;display:inline-block}.writing-item-title:hover .writing-ext-icon{opacity:1}.writing-item-desc{color:var(--muted);margin-bottom:.65rem;font-size:.9rem;font-style:italic;line-height:1.7}.writing-item-tags{flex-wrap:wrap;gap:.35rem;display:flex}.writing-tag{font-family:var(--font-mono);background:var(--tag-bg-c);color:var(--tag-text-c);border:1px solid var(--tag-border-c);white-space:nowrap;border-radius:3px;padding:.15rem .55rem;font-size:.68rem;font-weight:600}[data-theme=dark] .writing-tag[style*="--tag-bg-c:#eff6ff"]{--tag-bg-c:#1e3a5f;--tag-text-c:#93c5fd;--tag-border-c:#1d4ed8}[data-theme=dark] .writing-tag[style*="--tag-bg-c:#f0fdf4"]{--tag-bg-c:#14532d;--tag-text-c:#86efac;--tag-border-c:#166534}[data-theme=dark] .writing-tag[style*="--tag-bg-c:#fdf4ff"]{--tag-bg-c:#3b1a4f;--tag-text-c:#d8b4fe;--tag-border-c:#7e22ce}[data-theme=dark] .writing-tag[style*="--tag-bg-c:#fff7ed"]{--tag-bg-c:#431407;--tag-text-c:#fdba74;--tag-border-c:#c2410c}[data-theme=dark] .writing-tag[style*="--tag-bg-c:#fefce8"]{--tag-bg-c:#422006;--tag-text-c:#fcd34d;--tag-border-c:#b45309}.writing-cta{border:1px solid var(--border);background:var(--tag-bg);color:var(--muted);border-radius:5px;margin-top:3.5rem;padding:1.25rem 1.4rem;font-size:.88rem;line-height:1.7}.writing-cta a{color:var(--accent);font-weight:700;text-decoration:none}.writing-cta a:hover{text-decoration:underline}@media (max-width:540px){html{font-size:17px}.post-item{grid-template-columns:1fr;gap:.1rem 0}.post-date{margin-bottom:.15rem;display:block}.post-excerpt{grid-column:1}.article-title{font-size:1.55rem}.writing-item--featured{padding:1rem .75rem}}
