:root{--bg:#f7f4ef;--bg-elevated:#fffdf9;--text:#1c1917;--muted:#57534e;--faint:#a8a29e;--border:#e7e0d6;--accent:#9a3412;--accent-hover:#7c2d12;--code-bg:#efeae2;--shadow:0 1px 2px #1c19170a;--radius:10px;--font-sans:"PingFang SC", "Hiragino Sans GB", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", "WenQuanYi Micro Hei", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Sarasa Mono SC", "IBM Plex Mono", "Noto Sans Mono CJK SC", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--measure:42rem;color-scheme:light}[data-theme=dark]{--bg:#161412;--bg-elevated:#1c1917;--text:#f5f0e8;--muted:#a8a29e;--faint:#78716c;--border:#2c2824;--accent:#fb923c;--accent-hover:#fdba74;--code-bg:#241f1b;--shadow:none;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-sans);letter-spacing:.02em;word-break:break-word;overflow-wrap:anywhere;margin:0;font-size:17px;line-height:1.85}img,svg,video{max-width:100%;height:auto}a{color:var(--accent);text-underline-offset:.22em;text-decoration-thickness:1px}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.skip-link{z-index:20;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;padding:.4rem .7rem;position:absolute;top:-3rem;left:1rem}.skip-link:focus{top:.75rem}.wrap{width:min(var(--measure), calc(100% - 2.5rem));margin-inline:auto}.site-header{border-bottom:1px solid var(--border)}.site-header .inner,.site-footer .inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem 0;display:flex}.brand{color:var(--text);min-width:0;text-decoration:none}.brand:hover{color:var(--text)}.brand-title{letter-spacing:.04em;font-size:1.15rem;font-weight:650;line-height:1.3;display:block}.brand-tagline{color:var(--muted);letter-spacing:.04em;margin-top:.1rem;font-size:.82rem;line-height:1.5;display:block}.nav{flex-wrap:wrap;align-items:center;gap:.15rem 1rem;display:flex}.nav a{color:var(--muted);font-size:.95rem;text-decoration:none}.nav a:hover,.nav a[aria-current=page]{color:var(--text)}.nav a[aria-current=page]{text-underline-offset:.28em;text-decoration:underline}.theme-toggle{appearance:none;border:1px solid var(--border);background:var(--bg-elevated);color:var(--muted);cursor:pointer;border-radius:999px;place-items:center;width:2.15rem;height:2.15rem;padding:0;display:grid}.theme-toggle:hover{color:var(--text)}.theme-toggle .icon-sun,[data-theme=dark] .theme-toggle .icon-moon{display:none}[data-theme=dark] .theme-toggle .icon-sun{display:block}main{min-height:calc(100vh - 10rem);padding:2.4rem 0 4rem}.page-title{letter-spacing:.03em;margin:0 0 .35rem;font-size:clamp(1.7rem,3vw,2.1rem);font-weight:700;line-height:1.35}.lede{color:var(--muted);margin:0 0 2.2rem;font-size:1rem}.post-list{margin:0;padding:0;list-style:none}.post-list li{border-top:1px solid var(--border);padding:1.15rem 0}.post-list li:last-child{border-bottom:1px solid var(--border)}.post-card{color:inherit;text-decoration:none;display:block}.post-card:hover .post-card-title{color:var(--accent)}.post-card-title{letter-spacing:.02em;margin:0 0 .25rem;font-size:1.15rem;font-weight:650;line-height:1.5}.post-card-desc{color:var(--muted);margin:0;font-size:.95rem}.post-meta{color:var(--faint);letter-spacing:.04em;flex-wrap:wrap;gap:.35rem .85rem;margin:0 0 .45rem;font-size:.82rem;display:flex}.post-category{color:var(--muted);text-decoration:none}.post-category:hover{color:var(--accent)}.category-index{margin:0;padding:0;list-style:none}.category-index li{border-top:1px solid var(--border)}.category-index li:last-child{border-bottom:1px solid var(--border)}.category-index a{color:inherit;justify-content:space-between;align-items:baseline;gap:1rem;padding:1rem 0;text-decoration:none;display:flex}.category-index a:hover .category-index-name{color:var(--accent)}.category-index-name{letter-spacing:.02em;font-size:1.1rem;font-weight:650}.category-index-count{color:var(--faint);font-size:.9rem}.archive-list .post-category{margin-left:.65rem;font-size:.82rem}.tag-list{flex-wrap:wrap;gap:.4rem .5rem;margin:0;padding:0;list-style:none;display:flex}.tag{border:1px solid var(--border);color:var(--muted);background:var(--bg-elevated);border-radius:999px;padding:.1rem .55rem;font-size:.82rem;text-decoration:none;display:inline-block}.tag:hover,.tag[aria-current=page]{color:var(--text);border-color:currentColor}.prose h2,.prose h3,.prose h4{letter-spacing:.03em;margin:2.1rem 0 .7rem;line-height:1.4}.prose h2{font-size:1.35rem}.prose h3{font-size:1.15rem}.prose p,.prose ul,.prose ol{margin:0 0 1.15rem}.prose li+li{margin-top:.3rem}.prose blockquote{border-left:3px solid var(--border);color:var(--muted);margin:0 0 1.15rem;padding:.15rem 0 .15rem 1rem}.prose code{font-family:var(--font-mono);background:var(--code-bg);letter-spacing:0;border-radius:4px;padding:.12em .35em;font-size:.9em}.prose pre{background:var(--code-bg);border-radius:var(--radius);border:1px solid var(--border);letter-spacing:0;margin:0 0 1.25rem;padding:1rem 1.1rem;font-size:.88rem;line-height:1.65;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose pre .astro-code,.prose pre .astro-code span{background:0 0!important}.prose hr{border:0;border-top:1px solid var(--border);margin:2rem 0}.post-header{border-bottom:1px solid var(--border);margin-bottom:1.8rem;padding-bottom:1.2rem}.archive-year{color:var(--muted);margin:2rem 0 .6rem;font-size:1.05rem;font-weight:650}.archive-list{margin:0;padding:0;list-style:none}.archive-list li{border-top:1px solid var(--border);grid-template-columns:7.5rem 1fr;gap:.75rem;padding:.55rem 0;display:grid}.archive-list time{color:var(--faint);font-size:.9rem}.site-footer{border-top:1px solid var(--border);color:var(--faint);font-size:.85rem}.site-footer a{color:var(--muted);text-decoration:none}.site-footer a:hover{color:var(--text)}.empty{color:var(--muted)}@media (width<=640px){body{font-size:16px}.wrap{width:min(var(--measure), calc(100% - 1.6rem))}main{padding-top:1.6rem}.archive-list li{grid-template-columns:1fr;gap:.15rem}}
