*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-text: #333;--color-text-muted: #666;--color-bg: #fff;--color-link: #0066cc;--color-link-hover: #004499;--color-border: #e0e0e0;--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--max-width: 720px}html{font-family:var(--font-sans);font-size:16px;line-height:1.7;color:var(--color-text);background-color:var(--color-bg)}body{display:flex;flex-direction:column;min-height:100vh}a{color:var(--color-link);text-decoration:none}a:hover{color:var(--color-link-hover);text-decoration:underline}.site-header{border-bottom:1px solid var(--color-border);padding:1rem}.header-inner{max-width:var(--max-width);margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.site-title{display:flex;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:700;color:var(--color-text)}.site-title:hover{color:var(--color-link);text-decoration:none}.site-logo{height:32px;width:auto}.site-nav{display:flex;align-items:center;gap:1rem}.site-nav a{font-size:.9rem}.lang-switch{padding:.25rem .5rem;border:1px solid var(--color-border);border-radius:4px;font-size:.8rem}.site-main{flex:1;max-width:var(--max-width);width:100%;margin:0 auto;padding:2rem 1rem}.site-footer{border-top:1px solid var(--color-border);padding:1rem;text-align:center;font-size:.85rem;color:var(--color-text-muted)}.post-list{list-style:none}.post-item{padding:1.5rem 0;border-bottom:1px solid var(--color-border)}.post-item:last-child{border-bottom:none}.post-item h2{margin-bottom:.5rem;font-size:1.25rem}.post-meta{font-size:.85rem;color:var(--color-text-muted);margin-bottom:.5rem}.post-excerpt{color:var(--color-text-muted)}.article-header{margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}.article-header h1{font-size:1.75rem;margin-bottom:.5rem;line-height:1.3}.article-meta{font-size:.85rem;color:var(--color-text-muted)}.article-tags{margin-top:.5rem}.article-tags span{display:inline-block;background:#f0f0f0;padding:.2rem .5rem;border-radius:3px;font-size:.8rem;margin-right:.5rem}.article-content{line-height:1.8}.article-content h2{margin-top:2rem;margin-bottom:1rem;font-size:1.4rem}.article-content h3{margin-top:1.5rem;margin-bottom:.75rem;font-size:1.2rem}.article-content p{margin-bottom:1rem}.article-content ul,.article-content ol{margin-bottom:1rem;padding-left:1.5rem}.article-content li{margin-bottom:.5rem}.article-content pre{background:#f5f5f5;padding:1rem;border-radius:4px;overflow-x:scroll;margin-bottom:1rem;font-family:var(--font-mono);font-size:.9rem}.article-content pre::-webkit-scrollbar{height:8px}.article-content pre::-webkit-scrollbar-track{background:#e0e0e0;border-radius:4px}.article-content pre::-webkit-scrollbar-thumb{background:#999;border-radius:4px}.article-content pre::-webkit-scrollbar-thumb:hover{background:#777}.article-content code{font-family:var(--font-mono);font-size:.9em;background:#f5f5f5;padding:.15rem .3rem;border-radius:3px}.article-content pre code{background:none;padding:0}.article-content blockquote{border-left:3px solid var(--color-border);padding-left:1rem;margin-left:0;margin-bottom:1rem;color:var(--color-text-muted);font-style:italic}.article-content img{max-width:100%;height:auto}.article-content a{word-break:break-all}.article-content table{width:100%;border-collapse:collapse;margin-bottom:1rem;font-size:.95rem}.article-content th,.article-content td{border:1px solid var(--color-border);padding:.75rem 1rem;text-align:left}.article-content th{background:#f5f5f5;font-weight:600}.article-content tr:nth-child(2n){background:#fafafa}.article-footer{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--color-border)}.lang-alternate{background:#f9f9f9;padding:.75rem 1rem;border-radius:4px;font-size:.9rem}.not-found{text-align:center;padding:3rem 1rem}.not-found h1{font-size:3rem;margin-bottom:1rem}.not-found p{margin-bottom:1.5rem;color:var(--color-text-muted)}.page-title{margin-bottom:2rem;font-size:1.5rem}.cover-image{width:100%;height:auto;border-radius:8px;margin-bottom:1.5rem}
