*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}:root{--font-serif:'Merriweather', Georgia, serif;--font-sans:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;--font-mono:'JetBrains Mono', 'Fira Code', monospace;--color-bg:#ffffff;--color-text:#1a1a1a;--color-text-secondary:#555;--color-text-muted:#888;--color-link:#2563eb;--color-link-hover:#1d4ed8;--color-border:#e5e7eb;--color-border-light:#f3f4f6;--color-code-bg:#f8f9fa;--color-tag-bg:#f1f5f9;--color-tag-text:#475569;--color-accent:#2563eb;--max-width:750px;--spacing:1.5rem}html{font-size:17px;scroll-behavior:smooth}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.site-wrapper{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1;max-width:var(--max-width);width:100%;margin:0 auto;padding:2rem var(--spacing)}.site-header{border-bottom:1px solid var(--color-border);background:var(--color-bg);position:sticky;top:0;z-index:100}.header-inner{max-width:var(--max-width);margin:0 auto;padding:1rem var(--spacing);display:flex;align-items:center;justify-content:space-between}.site-logo{font-family:var(--font-serif);font-size:1.4rem;font-weight:900;color:var(--color-text);text-decoration:none;letter-spacing:-.02em}.site-logo:hover{color:var(--color-accent)}.site-nav{display:flex;gap:1.5rem}.nav-link{font-size:.9rem;font-weight:500;color:var(--color-text-secondary);text-decoration:none;transition:color .2s}.nav-link:hover,.nav-link.active{color:var(--color-text)}.menu-toggle{display:none;background:0 0;border:none;cursor:pointer;padding:.5rem;flex-direction:column;gap:4px}.menu-toggle span{display:block;width:20px;height:2px;background:var(--color-text);transition:transform .2s}.posts-list{display:flex;flex-direction:column;gap:2.5rem}.post-summary{padding-bottom:2.5rem;border-bottom:1px solid var(--color-border-light)}.post-summary:last-child{border-bottom:none}.post-summary .post-title{font-family:var(--font-serif);font-size:1.5rem;font-weight:700;line-height:1.3;margin-bottom:.5rem}.post-summary .post-title a{color:var(--color-text);text-decoration:none}.post-summary .post-title a:hover{color:var(--color-accent)}.post-meta{font-size:.85rem;color:var(--color-text-muted);margin-bottom:.75rem;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.meta-sep{color:var(--color-border)}.post-excerpt{color:var(--color-text-secondary);line-height:1.6;margin-bottom:.75rem}.post-tags,.post-tags-footer{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.post-tags-footer{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.tags-label{font-size:.85rem;color:var(--color-text-muted);font-weight:500}.tag{display:inline-block;padding:.2rem .65rem;background:var(--color-tag-bg);color:var(--color-tag-text);border-radius:4px;font-size:.8rem;font-weight:500;text-decoration:none;transition:background .2s,color .2s}.tag:hover{background:var(--color-accent);color:#fff}.single-post .post-header{margin-bottom:2rem}.single-post .post-title{font-family:var(--font-serif);font-size:2.2rem;font-weight:900;line-height:1.2;margin-bottom:.75rem;letter-spacing:-.02em}.toc{margin-bottom:2rem;padding:1.25rem;background:var(--color-border-light);border-radius:8px;border-left:3px solid var(--color-accent)}.toc summary{font-weight:600;font-size:.95rem;cursor:pointer;color:var(--color-text)}.toc nav#TableOfContents ul{list-style:none;padding-left:0;margin-top:.75rem}.toc nav#TableOfContents ul ul{padding-left:1.25rem}.toc nav#TableOfContents li{margin-bottom:.35rem}.toc nav#TableOfContents a{font-size:.88rem;color:var(--color-text-secondary);text-decoration:none}.toc nav#TableOfContents a:hover{color:var(--color-accent)}.post-content{font-family:var(--font-serif);font-size:1rem;line-height:1.8}.post-content h2{font-family:var(--font-sans);font-size:1.5rem;font-weight:700;margin:2.5rem 0 1rem;color:var(--color-text)}.post-content h3{font-family:var(--font-sans);font-size:1.25rem;font-weight:600;margin:2rem 0 .75rem;color:var(--color-text)}.post-content h4{font-family:var(--font-sans);font-size:1.1rem;font-weight:600;margin:1.5rem 0 .5rem}.post-content p{margin-bottom:1.25rem}.post-content a{color:var(--color-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.post-content a:hover{color:var(--color-link-hover)}.post-content img{max-width:100%;height:auto;border-radius:6px;margin:1.5rem 0}.post-content blockquote{border-left:3px solid var(--color-accent);padding:.75rem 1.25rem;margin:1.5rem 0;background:var(--color-border-light);border-radius:0 6px 6px 0;color:var(--color-text-secondary);font-style:italic}.post-content blockquote p:last-child{margin-bottom:0}.post-content ul,.post-content ol{margin:1rem 0 1.25rem 1.5rem}.post-content li{margin-bottom:.4rem}.post-content hr{border:none;border-top:1px solid var(--color-border);margin:2rem 0}.post-content code{font-family:var(--font-mono);font-size:.85em;background:var(--color-code-bg);padding:.15rem .4rem;border-radius:4px;color:#e11d48}.post-content pre{background:#1e293b;color:#e2e8f0;padding:1.25rem;border-radius:8px;overflow-x:auto;margin:1.5rem 0;line-height:1.5;font-size:.88rem}.post-content pre code{background:0 0;padding:0;color:inherit;font-size:inherit;border-radius:0}.highlight{margin:1.5rem 0}.highlight pre{margin:0}.share-buttons{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--color-border);display:flex;align-items:center;flex-wrap:wrap;gap:.75rem}.share-label{font-size:.85rem;color:var(--color-text-muted);font-weight:500}.share-btn{display:inline-block;padding:.35rem .85rem;background:var(--color-tag-bg);color:var(--color-tag-text);border-radius:4px;font-size:.82rem;font-weight:500;text-decoration:none;transition:background .2s,color .2s}.share-btn:hover{background:var(--color-accent);color:#fff}.post-nav{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border);display:flex;justify-content:space-between;gap:1rem}.post-nav-prev,.post-nav-next{display:flex;flex-direction:column;text-decoration:none;max-width:48%}.post-nav-next{text-align:right;margin-left:auto}.post-nav-label{font-size:.8rem;color:var(--color-text-muted);margin-bottom:.25rem}.post-nav-title{font-size:.95rem;font-weight:600;color:var(--color-accent)}.post-nav-prev:hover .post-nav-title,.post-nav-next:hover .post-nav-title{color:var(--color-link-hover)}.taxonomy-list{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.taxonomy-item{padding:.4rem 1rem;background:var(--color-tag-bg);color:var(--color-tag-text);border-radius:6px;text-decoration:none;font-size:.9rem;font-weight:500;transition:background .2s,color .2s}.taxonomy-item:hover{background:var(--color-accent);color:#fff}.taxonomy-count{color:var(--color-text-muted);font-weight:400;font-size:.82rem}.taxonomy-item:hover .taxonomy-count{color:rgba(255,255,255,.8)}.section-title{font-family:var(--font-serif);font-size:2rem;font-weight:900;margin-bottom:2rem;letter-spacing:-.02em}.home-intro{margin-bottom:2.5rem;font-size:1.1rem;color:var(--color-text-secondary);line-height:1.7}.site-footer{border-top:1px solid var(--color-border);margin-top:3rem}.footer-inner{max-width:var(--max-width);margin:0 auto;padding:1.5rem var(--spacing);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer-left p{font-size:.82rem;color:var(--color-text-muted)}.footer-right{display:flex;gap:1.25rem}.footer-right a{font-size:.82rem;color:var(--color-text-muted);text-decoration:none}.footer-right a:hover{color:var(--color-accent)}.pagination{margin-top:2.5rem;display:flex;justify-content:center;gap:.5rem}.pagination li{list-style:none}.pagination a,.pagination .active a{display:inline-block;padding:.4rem .85rem;border-radius:4px;font-size:.88rem;text-decoration:none;color:var(--color-text-secondary)}.pagination a:hover{background:var(--color-tag-bg)}.pagination .active a{background:var(--color-accent);color:#fff}@media(max-width:640px){html{font-size:16px}.single-post .post-title{font-size:1.75rem}.post-summary .post-title{font-size:1.25rem}.menu-toggle{display:flex}.site-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--color-bg);border-bottom:1px solid var(--color-border);flex-direction:column;padding:1rem var(--spacing)}.site-nav.open{display:flex}.header-inner{position:relative}.post-nav{flex-direction:column}.post-nav-prev,.post-nav-next{max-width:100%}.post-nav-next{text-align:left}}