@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&family=Instrument+Serif:ital@0;1&family=Geist:wght@400;500;600&display=swap";:root{--bg:#111113;--bg-raised:#18181b;--bg-subtle:#1f1f23;--border:#2a2a2f;--border-light:#3a3a42;--text-muted:#52525e;--text-dim:#71717a;--text:#a1a1aa;--text-bright:#d4d4d8;--text-heading:#fafafa;--accent:#e4e4e7;--font-sans:"Geist", system-ui, sans-serif;--font-serif:"Instrument Serif", Georgia, serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--radius-sm:3px;--radius:6px;--radius-lg:10px;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.25rem;--sp-6:1.5rem;--sp-8:2rem;--sp-10:2.5rem;--sp-12:3rem;--max-w:720px;--nav-h:56px;--transition:.18s ease}*,:before,:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;overflow-y:scroll}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);margin:0;font-size:15px;line-height:1.65}#app-shell{flex-direction:column;min-height:100vh;display:flex}.main-nav{z-index:100;height:var(--nav-h);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#111113d9;align-items:center;display:flex;position:sticky;top:0}.nav-inner{max-width:var(--max-w);width:100%;padding:0 var(--sp-6);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.nav-brand{font-family:var(--font-mono);color:var(--text-bright);letter-spacing:.03em;transition:color var(--transition);font-size:13px;font-weight:600;text-decoration:none}.nav-brand:hover{color:var(--text-heading)}.nav-icon{width:1.25rem;height:1.25rem;color:var(--text-dim);cursor:pointer;transition:color var(--transition);display:none}.nav-icon:hover{color:var(--text-bright)}.nav-list{align-items:center;gap:var(--sp-4);flex-direction:row;margin:0;padding:0;list-style:none;display:flex}@media (width>=641px){.nav-list{flex-direction:row!important;display:flex!important}.nav-icon{display:none!important}}.nav-link{color:var(--text-dim);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);transition:color var(--transition), background var(--transition);letter-spacing:.01em;font-size:13.5px;font-weight:500;text-decoration:none}.nav-link:hover{color:var(--text-bright);background:var(--bg-subtle)}.nav-link.router-link-active{color:var(--text-heading);background:var(--bg-subtle)}.main-content{max-width:var(--max-w);width:100%;margin:var(--sp-12) auto;padding:0 var(--sp-6);flex-grow:1}.page-footer{border-top:1px solid var(--border);padding:var(--sp-8) var(--sp-6);text-align:center}.footer-text{color:var(--text-muted);font-size:12px;font-family:var(--font-mono);letter-spacing:.03em;margin:0}.page-title{font-family:var(--font-serif);color:var(--text-heading);margin:0 0 var(--sp-8);letter-spacing:-.02em;font-size:clamp(1.75rem,4vw,2.5rem);font-style:italic;font-weight:400;line-height:1.2}.sub-header{font-family:var(--font-sans);color:var(--text-bright);margin:var(--sp-8) 0 var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border);letter-spacing:.01em;font-size:1rem;font-weight:600}.sub-sub-header{font-family:var(--font-sans);color:var(--text-bright);margin:var(--sp-6) 0 var(--sp-2);text-transform:uppercase;letter-spacing:.08em;font-size:.875rem;font-weight:600}.sub-sub-sub-header{color:var(--text);margin:var(--sp-4) 0 var(--sp-2);padding-left:var(--sp-3);border-left:2px solid var(--border-light);font-size:.875rem;font-weight:600}.content-paragraph{margin:0 0 var(--sp-5);color:var(--text);line-height:1.75}.date-text{font-family:var(--font-mono);color:var(--text-muted);margin:0 0 var(--sp-6);letter-spacing:.06em;font-size:12px}.inline-link{color:var(--text-bright);text-underline-offset:3px;-webkit-text-decoration-color:var(--border-light);text-decoration-color:var(--border-light);transition:text-decoration-color var(--transition)}.inline-link:hover{-webkit-text-decoration-color:var(--text-bright);text-decoration-color:var(--text-bright)}.article-header{margin-bottom:var(--sp-8)}.back-link{align-items:center;gap:var(--sp-1);font-size:12px;font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-muted);margin-bottom:var(--sp-5);transition:color var(--transition);text-decoration:none;display:inline-flex}.back-link:hover{color:var(--text-bright)}.back-link svg{flex-shrink:0}.code-block{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-5) var(--sp-6);margin:var(--sp-6) 0;font-family:var(--font-mono);color:var(--text-bright);tab-size:2;font-size:13px;line-height:1.7;overflow-x:auto}.inline-code{font-family:var(--font-mono);color:var(--text-bright);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);white-space:nowrap;padding:.1em .4em;font-size:12.5px}.post-list{gap:var(--sp-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.post-link{justify-content:space-between;align-items:baseline;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-bright);transition:border-color var(--transition), background var(--transition);font-size:14px;font-weight:500;text-decoration:none;display:flex}.post-link:hover{border-color:var(--border-light);background:var(--bg-subtle)}.post-link-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.post-meta{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.04em;flex-shrink:0;font-size:11px}.article-body h2{font-family:var(--font-sans);color:var(--text-bright);margin:var(--sp-8) 0 var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border);letter-spacing:.01em;font-size:1rem;font-weight:600}.article-body h3{font-family:var(--font-sans);color:var(--text-bright);margin:var(--sp-6) 0 var(--sp-2);text-transform:uppercase;letter-spacing:.08em;font-size:.875rem;font-weight:600}.article-body h4{color:var(--text);margin:var(--sp-4) 0 var(--sp-2);padding-left:var(--sp-3);border-left:2px solid var(--border-light);font-size:.875rem;font-weight:600}.article-body p{margin:0 0 var(--sp-5);color:var(--text);line-height:1.75}.article-body pre{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-5) var(--sp-6);margin:var(--sp-6) 0;font-family:var(--font-mono);color:var(--text-bright);tab-size:2;font-size:13px;line-height:1.7;overflow-x:auto}.article-body code{font-family:var(--font-mono);color:var(--text-bright);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);white-space:nowrap;padding:.1em .4em;font-size:12.5px}.article-body pre code{font-size:inherit;white-space:pre;background:0 0;border:none;padding:0}.article-body a{color:var(--text-bright);text-underline-offset:3px;-webkit-text-decoration-color:var(--border-light);text-decoration-color:var(--border-light);transition:text-decoration-color var(--transition)}.article-body a:hover{-webkit-text-decoration-color:var(--text-bright);text-decoration-color:var(--text-bright)}.article-body strong{color:var(--text-bright);font-weight:600}.article-body ul,.article-body ol{margin:0 0 var(--sp-5);padding-left:var(--sp-6);color:var(--text)}.article-body li{margin-bottom:var(--sp-2);line-height:1.75}.article-body li::marker{color:var(--text-muted)}.article-img{border-radius:var(--radius);border:1px solid var(--border);max-width:100%;margin:var(--sp-6) 0;display:block}.article-img-wrap{margin:var(--sp-6) 0}.not-found{padding:var(--sp-12) 0;color:var(--text-muted)}.not-found .page-title{color:var(--text-dim)}.home-intro{margin-bottom:var(--sp-10)}.home-intro .page-title{margin-bottom:var(--sp-4)}@media (width<=640px){.main-content{margin:var(--sp-8) auto}.nav-icon{display:block!important}.nav-list{align-items:flex-start;gap:var(--sp-3);width:100%;padding:var(--sp-2) 0 var(--sp-3);border-top:1px solid var(--border);margin-top:var(--sp-3);flex-direction:column!important;display:none!important}.nav-list.nav-open{display:flex!important}.main-nav{height:auto;padding:var(--sp-3) 0 0;align-items:flex-start}.nav-inner{padding:0 var(--sp-4) var(--sp-3);flex-wrap:wrap;align-items:center;row-gap:0}.nav-brand{flex:1}.nav-link{width:100%}.code-block{padding:var(--sp-4);width:calc(100vw - var(--sp-8));max-width:calc(100vw - var(--sp-8));font-size:12px;position:relative;left:50%;transform:translate(-50%)}.post-link{gap:var(--sp-1);flex-direction:column}}
