:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--text:#333;--muted:#666;--border:#e8e8e8;--link:#67975c;--code-bg:#f4f4f4;--code-text:#1f1f1f;--code-border:#e0e0e0;--forest-mist:#f0f5ee;--forest-light:#b9cfb1;--forest-pine:#67975c;--forest-primary:#447a3e;--font-body:ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;--font-mono:ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;--measure:800px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);font-size:16px;line-height:1.65;color:var(--text);max-width:var(--measure);margin:0 auto;padding:var(--space-5)}.site-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding-bottom:var(--space-5);margin-bottom:var(--space-6)}.site-title{font-size:1.75rem;line-height:1.2;font-weight:700}.site-title a{color:var(--text);text-decoration:none}.site-title a:hover{color:var(--link);text-decoration:underline;text-underline-offset:3px}.social-links{display:flex;gap:var(--space-4);align-items:center;flex-shrink:0}.social-links a{display:inline-block;color:var(--text);opacity:.7;transition:opacity .2s,color .2s}.social-links a:hover{color:var(--link);opacity:1}.social-links svg{width:24px;height:24px;display:block}.site-main{margin-bottom:var(--space-7)}.prose h1,.prose h2,.prose h3,.prose h4{line-height:1.3;font-weight:700;margin-top:var(--space-6);margin-bottom:var(--space-3)}.prose h1:first-child,.prose h2:first-child,.prose h3:first-child{margin-top:0}.prose h1{font-size:1.75rem}.prose h2{font-size:1.4rem}.prose h3{font-size:1.15rem}.prose h4{font-size:1rem}.prose p{margin-bottom:var(--space-4)}.prose a{color:var(--link);text-underline-offset:3px}.prose a:hover{color:var(--forest-primary);text-decoration-thickness:2px}.prose ul,.prose ol{padding-left:var(--space-5);margin-bottom:var(--space-4)}.prose li{margin-bottom:var(--space-2)}.prose li>ul,.prose li>ol{margin-top:var(--space-2);margin-bottom:0}.prose blockquote{border-left:3px solid var(--border);padding-left:var(--space-4);margin:var(--space-5)0;color:var(--muted)}.prose hr{border:none;border-top:1px solid var(--border);margin:var(--space-6)0}.prose img{max-width:100%;height:auto;display:block;border-radius:4px;margin:var(--space-5)0}.prose table{width:100%;border-collapse:collapse;margin-bottom:var(--space-5);font-size:.95rem}.prose th,.prose td{border:1px solid var(--border);padding:var(--space-2)var(--space-3);text-align:left}code,pre{font-family:var(--font-mono);font-size:.9em}.prose code{background-color:var(--code-bg);color:var(--code-text);border:1px solid var(--code-border);padding:2px 6px;border-radius:4px;white-space:nowrap}.prose code.cmd,.prose code.green{background-color:var(--forest-primary);color:var(--forest-mist);border:1px solid var(--forest-primary);padding:3px 8px}.prose pre{background-color:var(--code-bg);color:var(--code-text);border:1px solid var(--code-border);padding:var(--space-4);border-radius:6px;overflow-x:auto;line-height:1.55;margin-bottom:var(--space-5)}.prose pre code{background:0 0;border:none;padding:0;white-space:pre}.intro{margin-bottom:var(--space-7)}.section-title{font-size:1.4rem;line-height:1.3;margin-bottom:var(--space-4)}.page-title{font-size:1.75rem;line-height:1.2;margin-bottom:var(--space-3)}.post-header{margin-top:0;margin-bottom:var(--space-6)}.post-header h1{font-size:1.5rem;line-height:1.25;margin-bottom:var(--space-2)}.post-meta{color:var(--muted);font-size:.95rem}.post-list{list-style:none;padding-left:0;margin-bottom:0}.post-list li{margin-bottom:var(--space-3)}.post-list li:last-child{margin-bottom:0}.post-list-title{font-size:1.15rem;line-height:1.4;font-weight:600;margin-bottom:0}.post-list-title a{color:var(--text);text-decoration:none}.post-list-title a:hover{color:var(--link);text-decoration:underline;text-underline-offset:3px}.post-list-date{color:var(--muted);font-size:.85em;font-weight:400;margin-left:var(--space-2);white-space:nowrap}.info-box{background:var(--code-bg);border:1px solid var(--code-border);padding:var(--space-3);border-radius:4px;white-space:pre-wrap;font-family:var(--font-mono);font-size:.9rem;margin-top:var(--space-4)}@media(max-width:600px){body{padding:var(--space-4)}.site-title{font-size:1.4rem}.site-header{margin-bottom:var(--space-5)}}