:root{--bg: #fffefb;--fg: #1a1a18;--muted: #6b6b66;--faint: #767268;--border: #e6e4dd;--accent: #b4532a;--accent-soft: #f5ede7;--code-bg: #f6f4ef;--maxw: 44rem;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}[data-theme="dark"]{--bg: #14140f;--fg: #e8e6df;--muted: #9a978d;--faint: #97948a;--border: #2b2a24;--accent: #e08a5f;--accent-soft: #26211c;--code-bg: #1d1c17}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);font-size:18px;line-height:1.7;-webkit-font-smoothing:antialiased;transition:background 0.2s ease, color 0.2s ease}img{max-width:100%;height:auto}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.5rem}.site-header{padding:2.5rem 0 1rem}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.brand{font-weight:600;font-size:1.05rem;color:var(--fg);letter-spacing:-0.01em}.brand:hover{color:var(--accent);text-decoration:none}.nav{display:flex;align-items:center;gap:1.25rem}.nav a{color:var(--muted);font-size:0.92rem}.nav a:hover,.nav a.active{color:var(--fg);text-decoration:none}.nav a.active{font-weight:500}.theme-toggle{background:none;border:none;cursor:pointer;color:var(--muted);padding:0.25rem;display:flex;align-items:center;border-radius:4px}.theme-toggle:hover{color:var(--fg)}.icon-moon{display:none}[data-theme="dark"] .icon-sun{display:none}[data-theme="dark"] .icon-moon{display:block}.intro{padding:2rem 0 1rem}.intro h1{font-size:2rem;line-height:1.2;letter-spacing:-0.025em;margin:0 0 0.75rem;font-weight:650}.intro p{color:var(--muted);font-size:1.05rem;margin:0 0 1rem;max-width:34rem}.intro .social-inline{display:flex;gap:1rem;font-size:0.92rem;flex-wrap:wrap}.section-title{font-size:0.78rem;text-transform:uppercase;letter-spacing:0.09em;color:var(--faint);font-weight:600;margin:3rem 0 1.5rem;padding-bottom:0.5rem;border-bottom:1px solid var(--border)}.post-item{margin-bottom:2.25rem}.post-item-title{display:block;font-size:1.2rem;font-weight:600;color:var(--fg);letter-spacing:-0.015em;line-height:1.35}.post-item-title:hover{color:var(--accent);text-decoration:none}.post-meta{font-size:0.83rem;color:var(--faint);margin-top:0.35rem;display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}.post-meta .dot{opacity:0.5}.post-excerpt{color:var(--muted);font-size:0.97rem;margin:0.5rem 0 0;line-height:1.6}.tag-list{display:inline-flex;flex-wrap:wrap;gap:0.4rem}.tag{display:inline-block;font-size:0.75rem;font-family:var(--mono);padding:0.1rem 0.5rem;border-radius:999px;background:var(--accent-soft);color:var(--accent);border:1px solid transparent;line-height:1.6}.tag:hover{text-decoration:none;border-color:var(--accent)}.post-header-tags{margin-top:0.75rem;display:flex}.tag-cloud{display:flex;flex-wrap:wrap;gap:0.5rem;margin-bottom:3rem}.tag-cloud .tag{font-size:0.85rem;padding:0.25rem 0.7rem}.tag-cloud .tag .count{opacity:0.6;margin-left:0.3rem}.tag-section{margin-bottom:3rem;scroll-margin-top:2rem}.tag-section h2{font-size:1.1rem;font-family:var(--mono);color:var(--fg);margin:0 0 1rem;padding-bottom:0.4rem;border-bottom:1px solid var(--border)}.tag-section h2::before{content:"#";color:var(--accent);margin-right:0.15rem}.tag-section ul{list-style:none;padding:0;margin:0}.tag-section li{display:flex;gap:1rem;align-items:baseline;padding:0.35rem 0}.tag-section li time{color:var(--faint);font-size:0.8rem;font-variant-numeric:tabular-nums;min-width:6.5rem}.tag-section li a{color:var(--fg)}.tag-section li a:hover{color:var(--accent)}.post-header{margin:2rem 0 2.5rem}.post-title{font-size:2.1rem;line-height:1.18;letter-spacing:-0.03em;margin:0 0 0.6rem;font-weight:680}.page-title{font-size:1.9rem;letter-spacing:-0.025em;margin:2rem 0 1.5rem;font-weight:650}.post-content{font-size:1.04rem}.post-content>*:first-child{margin-top:0}.post-content h2{font-size:1.4rem;margin:2.5rem 0 0.8rem;letter-spacing:-0.02em;font-weight:640;line-height:1.3}.post-content h3{font-size:1.15rem;margin:2rem 0 0.6rem;font-weight:620}.post-content p{margin:0 0 1.3rem}.post-content ul,.post-content ol{margin:0 0 1.3rem;padding-left:1.4rem}.post-content li{margin-bottom:0.4rem}.post-content blockquote{margin:1.5rem 0;padding:0.2rem 0 0.2rem 1.2rem;border-left:3px solid var(--border);color:var(--muted);font-style:italic}.post-content hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.post-content img{border-radius:6px;margin:1.5rem 0}.post-content table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:0.93rem}.post-content th,.post-content td{text-align:left;padding:0.5rem 0.75rem;border-bottom:1px solid var(--border)}.post-content th{font-weight:600}code{font-family:var(--mono);font-size:0.87em;background:var(--code-bg);padding:0.12em 0.35em;border-radius:3px}pre{background:var(--code-bg);padding:1rem 1.1rem;border-radius:6px;overflow-x:auto;font-size:0.85rem;line-height:1.55;border:1px solid var(--border);margin:1.5rem 0}pre code{background:none;padding:0;font-size:inherit}.post-footer{margin-top:3rem;padding-top:1.25rem;border-top:1px solid var(--border);display:flex;gap:1.25rem;font-size:0.85rem}.post-nav{margin-top:2rem;display:flex;justify-content:space-between;gap:1.5rem;font-size:0.9rem}.post-nav a{max-width:48%}.post-nav .next{text-align:right;margin-left:auto}.site-footer{margin-top:5rem;padding:2rem 0 3rem;border-top:1px solid var(--border)}.footer-inner{display:flex;flex-direction:column;gap:1rem}.social{display:flex;flex-wrap:wrap;gap:1.25rem}.social a{display:inline-flex;align-items:center;gap:0.4rem;color:var(--muted);font-size:0.85rem}.social a:hover{color:var(--accent);text-decoration:none}.copyright{color:var(--faint);font-size:0.8rem;margin:0}.archive-year{font-family:var(--mono);font-size:0.8rem;color:var(--faint);margin:2.5rem 0 1rem;letter-spacing:0.05em}.empty{color:var(--faint);font-style:italic}@media (max-width: 600px){body{font-size:17px}.post-title{font-size:1.7rem}.intro h1{font-size:1.6rem}.site-header{padding-top:1.5rem}.nav{gap:0.9rem}.post-nav{flex-direction:column}.post-nav a{max-width:100%}.post-nav .next{text-align:left}}
