.site-header{border-bottom:1px solid var(--border);padding:1.1rem 0}.site-title{font-size:1.05rem;font-weight:700;color:var(--text);text-decoration:none;letter-spacing:-.01em}.site-title:hover{color:var(--accent);text-decoration:none}.site-header-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.site-footer{border-top:1px solid var(--border);padding:1.1rem 0;color:var(--text-muted);font-size:.825rem}:root{--bg: #0d1117;--bg-surface: #161b22;--border: #30363d;--text: #e6edf3;--text-muted: #8b949e;--accent: #22d3ee;--accent-hover:#67e8f9;--code-bg: #1e2533;--max-width: 720px;--radius: 6px}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;line-height:1.75;margin:0;padding:0}img,video{max-width:100%;height:auto;display:block}.site-wrapper{max-width:var(--max-width);margin:0 auto;padding:0 1.25rem}main{padding:2.5rem 0;min-height:calc(100vh - 130px)}nav ul{list-style:none;margin:0;padding:0;display:flex;gap:1.5rem}nav li+li{margin-top:0}nav a{color:var(--text-muted);text-decoration:none;font-size:.875rem;transition:color .12s}nav a:hover,nav a.active{color:var(--accent)}h1,h2,h3,h4,h5,h6{color:var(--text);font-weight:700;line-height:1.3;margin:2rem 0 .5rem}h1{font-size:2rem;margin-top:0}h2{font-size:1.5rem}h3{font-size:1.2rem}h4{font-size:1rem}p{margin:0 0 1rem}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}hr{border:none;border-top:1px solid var(--border);margin:2rem 0}ul,ol{padding-left:1.5rem;margin:0 0 1rem}li+li{margin-top:.25rem}blockquote{border-left:3px solid var(--border);margin:1.5rem 0;padding:.25rem 0 .25rem 1.25rem;color:var(--text-muted)}blockquote p:last-child{margin-bottom:0}table{width:100%;border-collapse:collapse;font-size:.9rem;margin:1.25rem 0}th,td{padding:.5rem .75rem;border:1px solid var(--border);text-align:left}th{background:var(--bg-surface);color:var(--text-muted);font-weight:600}code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.875em;background:var(--code-bg);padding:.15em .4em;border-radius:3px}pre{background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;overflow-x:auto;margin:1.25rem 0;line-height:1.6}pre code{background:none;padding:0;font-size:.875rem;color:var(--text)}.post-list{list-style:none;margin:0;padding:0}.post-item{padding:1.25rem 0;border-bottom:1px solid var(--border)}.post-item:first-child{border-top:1px solid var(--border)}.post-item-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}.post-title{margin:0;font-size:1.05rem;font-weight:600}.post-title a{color:var(--text)}.post-title a:hover{color:var(--accent);text-decoration:none}.post-date{color:var(--text-muted);font-size:.825rem;white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0}.post-summary{color:var(--text-muted);font-size:.9rem;margin:.3rem 0 0;line-height:1.6}.article-header{margin-bottom:2rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border)}.article-title{font-size:2rem;margin:0 0 .75rem}.article-meta{display:flex;align-items:center;gap:.75rem;color:var(--text-muted);font-size:.85rem;flex-wrap:wrap}.article-content img{border-radius:var(--radius);border:1px solid var(--border);margin:1rem 0}.tags{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:1.5rem 0 0;padding:0}.tag{font-size:.78rem;padding:.2rem .65rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:99px;color:var(--text-muted);transition:color .12s,border-color .12s}.tag:hover{color:var(--accent);border-color:var(--accent);text-decoration:none}.page-header{margin-bottom:2rem}.page-header h1{margin:0}.page-header p{color:var(--text-muted);margin:.4rem 0 0}.term-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.term-list a{display:inline-block;padding:.3rem .8rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-size:.875rem;transition:color .12s,border-color .12s}.term-list a:hover{color:var(--accent);border-color:var(--accent);text-decoration:none}@media(max-width:520px){h1,.article-title{font-size:1.6rem}.post-item-header{flex-direction:column;gap:.1rem}nav ul{gap:1rem}}
