@layer reset{*,:before,:after{box-sizing:border-box}body,h1,h2,h3,h4,h5,h6,p,figure{margin:0}img,picture{max-inline-size:100%;display:block}img{block-size:auto}}@layer tokens{:root{--measure:680px;--gutter:1.25rem}:root,:root[data-theme=warm]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface:#f7f4ec;--surface-raised:#eeeee8;--text:#30343b;--heading:#30343b;--muted:#454c54;--link:#274d69;--focus:#274d69;--border:#9fa8a6;--accent-surface:#e5eee9;--accent-text:#205448}:root[data-theme=cool]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface:#f4f7f8;--surface-raised:#e7eef2;--text:#182d3b;--heading:#182d3b;--muted:#344e5c;--link:#174a73;--focus:#174a73;--border:#9cabb5;--accent-surface:#ddede8;--accent-text:#15554b}:root[data-theme=sage]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface:#edf3ed;--surface-raised:#e4ece5;--text:#283b34;--heading:#25382f;--muted:#344a40;--link:#254d68;--focus:#254d68;--border:#92a79a;--accent-surface:#dce8e0;--accent-text:#204e40}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface:#101d29;--surface-raised:#182c3a;--text:#e8f0f4;--heading:#e8f0f4;--muted:#bed0d9;--link:#a4d2f4;--focus:#a4d2f4;--border:#536e80;--accent-surface:#193a36;--accent-text:#a1dbca}:root{--font-prose:"PingFang TC", "Noto Sans TC", "Noto Sans CJK TC", "Microsoft JhengHei", system-ui, sans-serif;--font-code:"Sarasa Mono TC", "Noto Sans Mono CJK TC", ui-monospace, "SFMono-Regular", "Cascadia Mono", Menlo, Consolas, monospace;--text-small:.8rem;--text-meta:.9rem;--text-body:1.25rem;--text-h3:1.35rem;--text-h2:clamp(1.5rem, 1.25rem + 1vw, 1.9rem);--text-h1:clamp(2rem, 1.5rem + 2.2vw, 3.2rem);--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-6:3rem;--space-8:4rem;--radius:.35rem}}@layer base{html{scroll-padding-block-start:var(--space-3)}body{font-family:var(--font-prose);font-size:var(--text-body);color:var(--text);background:var(--surface);overflow-wrap:anywhere;line-height:1.85}main{inline-size:100%;max-inline-size:calc(var(--measure) + 2 * var(--gutter));padding:var(--space-6) var(--gutter) var(--space-8);min-block-size:60vh;margin-inline:auto}h1,h2,h3,h4,h5,h6{color:var(--heading);text-wrap:balance;font-weight:700;line-height:1.4}h1{font-size:var(--text-h1);letter-spacing:-.04em}h2{font-size:var(--text-h2);letter-spacing:-.025em}h3{font-size:var(--text-h3)}h4,h5,h6{font-size:var(--text-body)}a{color:var(--link);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}a:not(.prose a){align-items:center;min-block-size:44px;min-inline-size:44px;display:inline-flex}:focus-visible{outline:3px solid var(--focus);outline-offset:4px;border-radius:2px}.prose a:focus-visible{outline-width:5px}::selection{background:var(--accent-surface);color:var(--accent-text)}p+p{margin-block-start:var(--space-3)}hr{margin-block:var(--space-6);border:0;border-block-start:1px solid var(--border)}code,pre{font-family:var(--font-code);tab-size:2}:not(pre)>code{background:var(--surface-raised);color:var(--text);border-radius:var(--radius);padding:.15em .3em;font-size:.88em;line-height:1}pre{margin-block:var(--space-3);padding:var(--space-3);white-space:pre;border:1px solid var(--border);border-radius:var(--radius);font-size:.85em;line-height:1.75;overflow-x:auto}pre>code{font:inherit;counter-reset:code-line;background:0 0;padding:0}pre .line{counter-increment:code-line;min-inline-size:100%;display:inline-block;position:relative}.code-line-number{text-align:end;inline-size:3.5ch;color:var(--muted);-webkit-user-select:none;user-select:none;margin-inline-end:2ch;display:inline-block}.code-line-number:before{content:counter(code-line)}pre .code-highlight,pre .code-add,pre .code-remove{background:var(--surface);box-shadow:inset 3px 0 var(--link)}.code-marker{color:var(--text);-webkit-user-select:none;user-select:none;font-weight:700;position:absolute;inset-inline-start:4ch}blockquote{margin:var(--space-4) 0;padding:var(--space-2) var(--space-3);border-inline-start:3px solid var(--link);background:var(--surface-raised)}table{border-collapse:collapse;max-inline-size:100%;margin-block:var(--space-3);font-size:.9em;display:block;overflow-x:auto}th,td{border-block-end:1px solid var(--border);text-align:start;padding:.65rem .9rem}th{background:var(--surface-raised)}figcaption{color:var(--muted);font-size:var(--text-meta);margin-block-start:var(--space-1);line-height:1.65}@media (width<=720px){body{font-size:1.125rem}}}@layer components{.site-header,.site-footer{max-inline-size:1120px;padding-inline:var(--gutter);margin-inline:auto}.site-header{justify-content:space-between;align-items:center;gap:var(--space-3);border-block-end:1px solid var(--border);flex-wrap:wrap;min-block-size:96px;padding-block:1rem;display:flex}.wordmark{color:var(--heading);letter-spacing:-.03em;align-items:center;gap:.65rem;font-size:1.05rem;font-weight:750;text-decoration:none;display:inline-flex}.brand-mark{background:var(--accent-surface);block-size:36px;inline-size:36px;color:var(--accent-text);border-radius:var(--radius);font:700 1.55rem var(--font-code);place-items:center;display:grid}.wordmark-note{font-weight:400;font-size:var(--text-small);letter-spacing:.04em}.site-header nav{gap:var(--space-2);font-size:var(--text-meta);flex-wrap:wrap;display:flex}.site-header nav a{padding-block:.65rem}.site-footer{border-block-start:1px solid var(--border);padding-block:var(--space-4);font-size:var(--text-small);color:var(--muted)}.site-footer .footer-note{color:var(--heading);margin-block-end:var(--space-2);font-size:1rem}.site-footer>div{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}.site-footer>div p{margin-inline-end:auto}.eyebrow{color:var(--muted);font:500 var(--text-small)/1.6 var(--font-code);letter-spacing:.12em;margin-block-end:var(--space-2)}.lead{color:var(--muted);margin-block:var(--space-3)}.hero{padding-block:var(--space-3) var(--space-6)}.hero h1{max-inline-size:12em}.hero-actions{gap:var(--space-3);font-size:var(--text-meta);flex-wrap:wrap;margin-block-start:var(--space-4);display:flex}.button-link{background:var(--accent-surface);color:var(--accent-text);border-radius:var(--radius);align-items:center;padding:.65rem 1rem;font-weight:650;display:inline-flex}.section-heading{justify-content:space-between;align-items:baseline;gap:var(--space-2);border-block-end:1px solid var(--border);padding-block-end:var(--space-2);display:flex}.section-heading a{font-size:var(--text-small)}.post-list{margin:0;padding:0;list-style:none}.post-list>li{padding-block:var(--space-4);border-block-end:1px solid var(--border)}.post-list time,.post-meta{font-size:var(--text-meta);color:var(--muted)}.post-list h2{margin-block:var(--space-1);font-size:1.5rem}.post-list h2 a{color:var(--heading);text-decoration:none}.post-list h2 a:hover{text-decoration:underline}.post-list p{color:var(--muted);font-size:1rem}.taxonomy-nav,.post-tags{margin-block:var(--space-3);font-size:var(--text-small);flex-wrap:wrap;gap:.5rem .75rem;display:flex}.taxonomy-nav a,.post-tags a{background:var(--surface-raised);color:var(--link);border-radius:var(--radius);padding:.4rem .75rem}.pagination{gap:var(--space-3);font-size:var(--text-meta);flex-wrap:wrap;margin-block-start:var(--space-4);display:flex}.pagination [rel=next]{margin-inline-start:auto}.post-heading{margin-block-end:var(--space-4)}.post-heading h1{font-size:clamp(1.9rem,1.5rem + 1.6vw,2.65rem)}.post-meta{margin-block:var(--space-2);flex-wrap:wrap;gap:.4rem 1rem;display:flex}.toc{background:var(--surface-raised);padding:var(--space-3);margin-block:var(--space-4);border-radius:var(--radius)}.toc h2{margin-block-end:var(--space-1);font-size:1rem}.toc ol{font-size:var(--text-meta);margin:0;padding-inline-start:1.4rem}.toc a{padding-block:.2rem;display:inline-flex}.prose>*+*{margin-block-start:var(--space-3)}.prose :is(h2,h3,h4,h5,h6){margin-block:var(--space-6) var(--space-2);scroll-margin-block-start:var(--space-3)}.prose li+li{margin-block-start:var(--space-1)}.prose :is(ul,ol){padding-inline-start:1.5em}.post-end{border-block-start:1px solid var(--border);font-size:var(--text-meta);margin-block-start:var(--space-6);padding-block-start:var(--space-3)}.astro-code,.astro-code span{color:var(--shiki-light);background-color:var(--shiki-light-bg)}html[data-theme=dark] .astro-code,html[data-theme=dark] .astro-code span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}@media (width<=520px){.wordmark-note{display:none}.site-header{min-block-size:80px}.site-header nav{gap:var(--space-2)}}.layout-wide,.site-header,.site-footer{max-inline-size:1200px}.site-header{border-block-end-color:var(--border)}.home-intro{grid-template-columns:1.15fr 1fr;align-items:center;gap:4rem;padding-block:2rem 5rem;display:grid}.home-intro .hero{padding:0}.home-intro h1{font-size:clamp(2.25rem,3.4vw,3.75rem);line-height:1.35}.home-intro h1 span{color:var(--accent-text)}.home-intro .lead{max-inline-size:27em}.button-link{border:1px solid var(--accent-text);text-decoration:none}.featured-note{background:var(--surface-raised);border-block-start:4px solid var(--link);border-radius:0 0 var(--radius) var(--radius);padding:2.5rem}.featured-note time{font:var(--text-small)/1.6 var(--font-code);color:var(--muted)}.featured-note h2{margin-block:1rem;font-size:1.8rem}.featured-note h2 a{color:var(--heading);text-decoration:none}.featured-note h2 a:hover{text-decoration:underline}.featured-note>p:not(.eyebrow){color:var(--muted);font-size:1rem}.featured-link{border-block-start:1px solid var(--border);font-size:var(--text-meta);justify-content:space-between;margin-block-start:2rem;padding-block-start:1rem;display:flex!important}.home-latest .eyebrow{color:var(--accent-text);margin-block-end:.5rem}.home-latest .post-list>li{grid-template-columns:9rem minmax(0,1fr) minmax(0,.9fr);align-items:baseline;gap:2rem;padding-block:2rem;display:grid}.home-latest .post-list h2{margin:0;font-size:1.3rem}.home-latest .post-list p{margin:0}.post-tags a,blockquote{background:var(--accent-surface);color:var(--accent-text)}blockquote{border-inline-start-color:var(--accent-text)}.reading-article{max-inline-size:var(--measure);margin-inline:auto}.article-body,.prose,.article-navigation{min-inline-size:0}.toc{border:1px solid var(--border);background:var(--surface-raised);margin-block:0 2rem;padding:0}.toc summary{cursor:pointer;min-block-size:56px;color:var(--link);padding:.85rem 1.25rem;font-size:1rem;font-weight:650}.toc-count{font-size:var(--text-small);color:var(--muted);margin-inline-start:.75rem;font-weight:400}.toc nav{padding:.5rem 1.25rem 1.25rem}.toc a{inline-size:100%}.toc .depth-3{margin-inline-start:.75rem}.comparison-bar{background:var(--accent-surface);border-inline-start:3px solid var(--accent-text);font-size:var(--text-small);margin-block-end:3rem;padding:1rem 1.5rem}.comparison-bar>p{color:var(--accent-text);font-weight:650}.comparison-bar nav{flex-wrap:wrap;gap:.5rem 1.5rem;display:flex}.comparison-bar>a{margin-inline-end:1rem}.comparison-bar [aria-current=page]{font-weight:750;text-decoration-thickness:3px}.sample-picker summary{cursor:pointer;min-block-size:44px;padding-block:.5rem}.sample-picker nav{flex-direction:column;gap:0}@media (width>=1100px){.with-sidebar{max-inline-size:calc(var(--measure) + 304px)}.with-sidebar .post-heading,.with-sidebar .post-end{max-inline-size:var(--measure)}.with-sidebar .article-body{grid-template-columns:var(--measure) 240px;align-items:start;gap:64px;display:grid}.with-sidebar .article-navigation{grid-area:1/2}.with-sidebar .prose{grid-area:1/1}.sidebar-navigation .toc{border:0;border-block-start:3px solid var(--accent-text);background:0 0;border-radius:0}.sidebar-navigation .toc summary{color:var(--accent-text);padding-inline:0}.sidebar-navigation .toc-count{margin-inline-start:1rem;display:block}.sidebar-navigation .toc nav{padding-inline:0}}@media (width<=900px){.home-intro{grid-template-columns:1fr;gap:2.5rem;padding-block:0 3rem}.home-latest .post-list>li{grid-template-columns:7rem minmax(0,1fr);gap:.5rem 1.5rem}.home-latest .post-list p{grid-column:2}}@media (width<=520px){.featured-note{padding:1.5rem}.home-latest .post-list>li{display:block}.home-latest .post-list h2{margin-block:.5rem}.comparison-bar{padding:1rem}}}@layer utilities{.skip-link{padding:var(--space-2);background:var(--surface);z-index:10;position:absolute;inset-block-start:-10rem;inset-inline-start:var(--gutter)}.skip-link:focus{inset-block-start:var(--space-2)}.sr-only{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}}a[data-astro-cid-evkijfd6]{text-decoration:none;display:inline-block}a[data-astro-cid-evkijfd6].active{font-weight:bolder;text-decoration:underline}.theme-picker[data-astro-cid-hcqnpaxe]{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.8rem;display:flex}select[data-astro-cid-hcqnpaxe]{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);max-width:100%;min-height:44px;color:var(--text);padding:.5rem}noscript[data-astro-cid-hcqnpaxe]{flex-basis:100%}
