:root{--bg:#fcfcfa;--bg-soft:#f3f2ee;--fg:#1d1d1f;--fg-muted:#5f6368;--border:#e3e1db;--accent:#c2410c;--accent-soft:#fff1e8;--code-bg:#f6f8fa;--max:46rem;--radius:10px;--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", sans-serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#141414;--bg-soft:#1d1d1d;--fg:#e8e6e3;--fg-muted:#a3a09b;--border:#2e2d2b;--accent:#fb923c;--accent-soft:#2a1a10;--code-bg:#0d1117;color-scheme:dark}}:root[data-theme=dark]{--bg:#141414;--bg-soft:#1d1d1d;--fg:#e8e6e3;--fg-muted:#a3a09b;--border:#2e2d2b;--accent:#fb923c;--accent-soft:#2a1a10;--code-bg:#0d1117;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:1rem}body{background:var(--bg);color:var(--fg);font:17px/1.8 var(--font-sans);text-rendering:optimizelegibility;margin:0}a{color:var(--accent);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}img{max-width:100%;height:auto}.container{max-width:var(--max);margin:0 auto;padding:0 16px}.skip-link{position:absolute;left:-999px}.skip-link:focus{background:var(--bg);z-index:10;padding:.5rem 1rem;top:1rem;left:1rem}.meta{color:var(--fg-muted);margin:.25rem 0;font-size:.875rem}.dot-sep>span+span:before{content:"·";margin:0 .4em}.badge{background:var(--accent-soft);color:var(--accent);border-radius:4px;margin-left:.5rem;padding:0 .4rem;font-size:.75rem}.site-header{border-bottom:1px solid var(--border)}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;min-height:3.5rem;display:flex}.brand{color:var(--fg);letter-spacing:-.01em;font-weight:700;text-decoration:none}.site-header ul{align-items:center;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.site-header nav a{color:var(--fg-muted);font-size:.95rem;text-decoration:none}.site-header nav a[aria-current=page],.site-header nav a:hover{color:var(--fg)}#theme-toggle{border:1px solid var(--border);color:var(--fg);cursor:pointer;background:0 0;border-radius:999px;place-items:center;width:2rem;height:2rem;display:grid}.site-footer{border-top:1px solid var(--border);color:var(--fg-muted);margin-top:4rem;font-size:.875rem}.footer-inner{flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;padding-block:1.5rem;display:flex}.footer-inner p{margin:0}.footer-links{flex-wrap:wrap;gap:1rem;display:flex}.footer-links a{color:var(--fg-muted)}.hero{padding:3rem 0 1.5rem}.hero h1{letter-spacing:-.02em;margin:0 0 .75rem;font-size:clamp(1.75rem,5vw,2.5rem);line-height:1.25}.hero p{color:var(--fg-muted);margin:0}.section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--fg-muted);margin:2.5rem 0 .5rem;font-size:.85rem}.post-card{border-bottom:1px solid var(--border);padding:1.25rem 0}.post-card-title{margin:0;font-size:1.25rem;line-height:1.4}.post-card-title a{color:var(--fg);text-decoration:none}.post-card-title a:hover{color:var(--accent)}.post-card-desc{margin:.25rem 0 .5rem}.tags{flex-wrap:wrap;gap:.25rem .75rem;margin:0;padding:0;font-size:.875rem;list-style:none;display:flex}.tags a{color:var(--fg-muted);text-decoration:none}.tags a:hover{color:var(--accent)}.year{color:var(--fg-muted);margin:2rem 0 0;font-size:1rem}.tag-cloud{flex-wrap:wrap;gap:.5rem;padding:0;list-style:none;display:flex}.tag-cloud a{border:1px solid var(--border);color:var(--fg);border-radius:999px;padding:.2rem .75rem;font-size:.9rem;text-decoration:none;display:inline-block}.tag-cloud a:hover{border-color:var(--accent);color:var(--accent)}.tag-cloud small{color:var(--fg-muted)}.breadcrumb{color:var(--fg-muted);margin-top:2rem;font-size:.85rem}.breadcrumb a{color:var(--fg-muted)}.post-header h1{letter-spacing:-.02em;margin:.5rem 0;font-size:clamp(1.75rem,5vw,2.4rem);line-height:1.3}.post-cover{border-radius:var(--radius);margin:1.5rem 0 0}.tldr{background:var(--accent-soft);border-left:4px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;margin:1.5rem 0;padding:1rem 1.25rem}.tldr strong{letter-spacing:.08em;color:var(--accent);font-size:.8rem;display:block}.tldr p{margin:.25rem 0 0}.toc{background:var(--bg-soft);border-radius:var(--radius);margin:1.5rem 0;padding:.75rem 1.25rem;font-size:.95rem}.toc summary{cursor:pointer;font-weight:600}.toc ol{margin:.5rem 0 0;padding-left:1.25rem}.toc .depth-3{margin-left:1rem;list-style:circle}.toc a{color:var(--fg);text-decoration:none}.toc a:hover{color:var(--accent)}.prose{overflow-wrap:break-word}.prose h2{margin:2.5rem 0 .75rem;font-size:1.5rem;line-height:1.35}.prose h3{margin:2rem 0 .5rem;font-size:1.2rem}.prose blockquote{border-left:3px solid var(--border);color:var(--fg-muted);margin:1.5rem 0;padding:.25rem 1rem}.prose table{border-collapse:collapse;width:100%;font-size:.95rem;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border);text-align:left;padding:.4rem .75rem}.prose th{background:var(--bg-soft)}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--bg-soft);border-radius:4px;padding:.1em .35em;font-size:.875em}.prose pre{font-family:var(--font-mono);border-radius:var(--radius);border:1px solid var(--border);padding:1rem 1.25rem;font-size:.875rem;line-height:1.6;overflow-x:auto}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}.faq{margin-top:3rem}.faq details{border-bottom:1px solid var(--border);padding:.75rem 0}.faq summary{cursor:pointer;font-weight:600}.faq details p{margin:.5rem 0 0}.author-box{border:1px solid var(--border);border-radius:var(--radius);gap:1rem;margin-top:3rem;padding:1.25rem;display:flex}.author-box p{color:var(--fg-muted);margin:.25rem 0 0;font-size:.95rem}.post-nav{grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem;display:grid}.post-nav a{border:1px solid var(--border);border-radius:var(--radius);color:var(--fg);padding:1rem;text-decoration:none;display:block}.post-nav a:hover{border-color:var(--accent)}.post-nav small{color:var(--fg-muted);display:block}.post-nav .next{text-align:right;grid-column:2}@media (width<=560px){.post-nav{grid-template-columns:1fr}.post-nav .next{grid-column:1}}.heatmap{margin:1.5rem 0 0}.heatmap-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:0 1rem;display:flex}.heatmap-head .section-title{margin-bottom:0}.heatmap svg{margin-top:.5rem;display:block}.hm-label{fill:var(--fg-muted);font-size:9px;font-family:var(--font-sans)}.hm-l0{fill:var(--bg-soft);background:var(--bg-soft);stroke:var(--border);stroke-width:.5px}.hm-l1{fill:color-mix(in srgb, var(--accent) 40%, var(--bg));background:color-mix(in srgb, var(--accent) 40%, var(--bg))}.hm-l2{fill:color-mix(in srgb, var(--accent) 70%, var(--bg));background:color-mix(in srgb, var(--accent) 70%, var(--bg))}.hm-l3{fill:var(--accent);background:var(--accent)}.heatmap a rect:hover{stroke:var(--fg);stroke-width:1px}.hm-legend{justify-content:flex-end;align-items:center;gap:3px;font-size:.75rem;display:flex}.hm-legend span{border-radius:2px;width:10px;height:10px;display:inline-block}.hm-legend span.hm-l0{border:.5px solid var(--border)}.timeline{margin-top:.5rem}.tl-year-label{letter-spacing:-.01em;margin:1.75rem 0 .25rem;font-size:1.5rem}.tl-year-label small{color:var(--fg-muted);margin-left:.4rem;font-size:.85rem;font-weight:400}.tl-month-label{text-transform:uppercase;letter-spacing:.08em;color:var(--fg-muted);margin:1rem 0 .25rem;font-size:.8rem;font-weight:600}.tl-items{border-left:2px solid var(--border);margin:0;padding:0 0 0 1.1rem;list-style:none}.tl-item{grid-template-columns:4.25rem 1fr;gap:0 .75rem;padding:.6rem 0;display:grid;position:relative}.tl-item:before{content:"";background:var(--accent);width:10px;height:10px;box-shadow:0 0 0 3px var(--bg);border-radius:50%;position:absolute;top:1.05rem;left:calc(-1.1rem - 6px)}.tl-date{color:var(--fg-muted);white-space:nowrap;font-variant-numeric:tabular-nums;padding-top:.2rem;font-size:.875rem}.tl-title{margin:0;font-size:1.1rem;line-height:1.45}.tl-title a{color:var(--fg);text-decoration:none}.tl-title a:hover{color:var(--accent)}.tl-desc{margin:.2rem 0 .1rem;font-size:.95rem}.tl-meta{flex-wrap:wrap;gap:0 .75rem;display:flex}.tl-meta a{color:var(--fg-muted);text-decoration:none}.tl-meta a:hover,.tl-item:target .tl-title a{color:var(--accent)}@media (width<=560px){.tl-item{grid-template-columns:1fr}}
