:root{--font-system:'SF Mono', Monaco, 'Cascadia Code', monospace;--font-mono:'SF Mono', Monaco, 'Cascadia Code', monospace;--max-width:900px;--bg-primary:#0d1117;--bg-secondary:#161b22;--text-primary:#f0f6fc;--text-secondary:#7d8590;--border:#21262d;--accent:#58a6ff;--accent-hover:#79c0ff}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-system);line-height:1.6;color:var(--text-primary);background-color:var(--bg-primary);transition:var(--transition)}.container{max-width:var(--max-width);margin:0 auto;padding:0 1rem;min-height:100vh;display:flex;flex-direction:column}.header{padding:2rem 0 1rem;margin-bottom:3rem}.header-content{display:flex;justify-content:space-between;align-items:baseline}.logo a{font-size:1.2rem;font-weight:400;text-decoration:none;color:var(--text-primary);font-family:var(--font-mono)}.nav{display:flex;align-items:center}.menu{display:flex;list-style:none;gap:2rem;font-family:var(--font-mono);font-size:.9rem}.menu-item>a{text-decoration:none;color:var(--text-secondary);font-weight:400}.menu-item>a:hover,.menu-item.active>a{color:var(--text-primary)}.main{flex:1;margin-bottom:2rem}.footer{padding:2rem 0 1rem;color:var(--text-secondary);font-size:.8rem;font-family:var(--font-mono)}h1,h2,h3,h4,h5,h6{margin-bottom:1.5rem;line-height:1.4;color:var(--text-primary);font-weight:400}h1{font-size:1.8rem}h2{font-size:1.4rem}h3{font-size:1.2rem}p{margin-bottom:1rem}a{color:var(--accent);transition:var(--transition)}a:hover{color:var(--accent-hover)}code{font-family:var(--font-mono);background:var(--bg-secondary);padding:.1rem .3rem;font-size:.85em;color:var(--accent)}.code-block{position:relative;margin:1.5rem 0}pre{background:var(--bg-secondary);padding:1rem;overflow-x:auto;margin:0;border-left:3px solid var(--accent)}pre code{background:0 0;padding:0;color:var(--text-primary)}.copy-btn{position:absolute;top:.5rem;right:.5rem;background:var(--bg-primary);border:1px solid var(--border);color:var(--text-secondary);padding:.25rem .5rem;font-size:.75rem;font-family:var(--font-mono);cursor:pointer;opacity:.7}.copy-btn:hover{opacity:1;color:var(--accent)}.code-block:hover .copy-btn{opacity:1}@import "components.css";@media(max-width:768px){.header-content{flex-direction:column;gap:1rem}.nav{width:100%;justify-content:space-between}.menu{gap:1rem}.submenu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;background:0 0;padding:0;margin-top:.5rem}}.post{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--border)}.post a{color:var(--accent);text-decoration:none;white-space:nowrap}.dots{flex-grow:1;height:1px;background-size:10px 1px;background-repeat:repeat-x;margin:0 1rem;border-bottom:2px dotted var(--text-secondary);align-self:center}.date{color:var(--text-secondary);white-space:nowrap}.post-single{max-width:900px;margin:0 auto}.post-header{margin-bottom:3rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.post-title{font-size:2rem;margin-bottom:1rem;line-height:1.2}.post-meta{display:flex;align-items:center;gap:1rem;font-size:.9rem;color:var(--text-secondary);font-family:var(--font-mono)}.post-tags{display:flex;gap:.5rem}.tag{color:var(--accent);font-size:.85rem}.post-content{line-height:1.7;margin-bottom:3rem}.post-content h1,.post-content h2,.post-content h3{margin-top:2rem;margin-bottom:1rem}.post-content h1{font-size:1.6rem}.post-content h2{font-size:1.3rem}.post-content h3{font-size:1.1rem}.post-footer{padding-top:2rem;border-top:1px solid var(--border)}.post-nav{display:flex;justify-content:space-between;gap:1rem}.post-nav a{color:var(--text-secondary);text-decoration:none;font-size:.9rem;max-width:45%}.post-nav a:hover{color:var(--accent)}.post-nav-prev{text-align:left}.post-nav-next{text-align:right}.post-content ul,.post-content ol{margin:1rem 0;padding-left:2rem}.post-content li{margin-bottom:.5rem;line-height:1.6}.post-content ul li{list-style-type:disc}.post-content ol li{list-style-type:decimal}.mermaid{text-align:center;margin:2rem 0;background:var(--bg-secondary);padding:1rem;border-radius:4px;border:1px solid var(--border)}.mermaid+p em{display:block;text-align:center;color:var(--text-secondary);font-size:.9rem;margin-top:.5rem}