:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--content-max-width:760px;--content-padding:24px;--font-serif:"Fraunces", Georgia, "Songti SC", serif;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "SF Mono", monospace;--color-paper:#f1f5ee;--color-paper-deep:#e5ece2;--color-paper-line:#d4ded1;--color-ink:#29372f;--color-ink-soft:#5b6d62;--color-ink-faint:#88978c;--color-bud:#5e8b74;--color-bud-deep:#3f6a55;--color-bud-soft:#b3cdbc;--color-bud-pale:#dbe8de;--color-sprout:#d6b35c;--color-sprout-deep:#b08a4f;--color-sprout-pale:#f3ead4;--grid-line:#5e8b7412;--grad-bud-a:#6f9c86;--grad-bud-b:#b9d2c1;--grad-bud-c:#e0c97f;--color-surface:var(--color-paper);--color-on-surface:var(--color-ink);--color-surface-container:var(--color-paper-deep);--color-surface-container-low:#ecf1e9;--color-surface-container-high:#dfe7dc;--color-primary:var(--color-bud);--color-on-primary:#f5f8f4;--color-primary-container:var(--color-bud-pale);--color-on-primary-container:#24402f;--color-error:#b3261e;--color-outline:var(--color-paper-line);--color-shadow:#29372f24;--primary:var(--color-primary);--border-color:var(--color-paper-line);--text-muted:var(--color-ink-soft)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-paper:#141d18;--color-paper-deep:#1a2721;--color-paper-line:#2b3b32;--color-ink:#e2e9e2;--color-ink-soft:#93a49a;--color-ink-faint:#6d7d73;--color-bud:#8fb89f;--color-bud-deep:#6d9c84;--color-bud-soft:#2c4236;--color-bud-pale:#24362d;--color-sprout:#d6b35c;--color-sprout-deep:#c9a04f;--color-sprout-pale:#332a16;--color-surface:var(--color-paper);--color-on-surface:var(--color-ink);--color-surface-container:#1a2721;--color-surface-container-low:#16211b;--color-surface-container-high:#20302a;--color-primary:var(--color-bud);--color-on-primary:#10221a;--color-primary-container:#24362d;--color-on-primary-container:#cfe0d4;--color-error:#f2b8b5;--color-outline:#2b3b32;--color-shadow:#00000080;--primary:var(--color-primary);--border-color:var(--color-paper-line);--text-muted:var(--color-ink-soft);--grid-line:#8fb89f14;--grad-bud-a:#8fb89f;--grad-bud-b:#547765;--grad-bud-c:#c9a04f}}@font-face{font-family:Fraunces;font-style:normal;font-weight:300 700;font-display:swap;src:url(../../../fonts/fraunces-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-weight:300 700;font-display:swap;src:url(../../../fonts/fraunces-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:300 700;font-display:swap;src:url(../../../fonts/inter-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:300 700;font-display:swap;src:url(../../../fonts/inter-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(../../../fonts/jetbrains-mono-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(../../../fonts/jetbrains-mono-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}*,:before,:after{box-sizing:border-box;border:0 solid;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-break:loose;word-break:break-word;scroll-padding-top:72px;font-size:clamp(16px,1.2vw,18px)}body{font-family:var(--font-sans);color:var(--color-on-surface);background-color:var(--color-paper);background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:36px 36px;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);letter-spacing:-.01em;font-weight:600;line-height:1.25}h1{margin-top:2.5em;font-size:2.25rem}h2{margin-top:2em;font-size:1.6rem}h3{margin-top:1.5em;font-size:1.25rem}p{margin:1.2em 0}a{color:inherit;border-bottom:1px solid #0000;text-decoration:none;transition:border-color .2s,color .2s}a:hover{border-bottom-color:var(--color-bud);color:var(--color-bud)}strong{font-weight:600}em{font-style:italic}pre{border:1px solid var(--color-outline);border-radius:8px;margin:2rem 0;padding:1rem;font-size:.95rem;line-height:1.5;overflow-x:auto}.code-block{margin:2rem 0;position:relative}.code-block>pre{margin:0}.code-pre{color:#e6edf3;background:#0d1117;border:1px solid #30363d;border-radius:8px;padding:1rem;font-size:.9rem;line-height:1.55;overflow-x:auto}.code-pre code,.code-pre code.hljs{font-size:inherit;background:0 0;padding:0}.code-copy{font-size:.75rem;font-family:var(--font-sans);color:#c9d1d9;cursor:pointer;opacity:.7;background:#ffffff14;border:1px solid #ffffff29;border-radius:6px;padding:.25rem .6rem;transition:opacity .2s,background .2s,color .2s;position:absolute;top:.5rem;right:.5rem}.code-copy:hover{opacity:1;background:#64748b33}.code-copy.copied{opacity:1;background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}code{font-family:var(--font-mono);font-size:.9em}code:not(pre code){background:var(--color-surface-container);border-radius:4px;padding:.2em .4em;font-size:.9em}blockquote{border-left:3px solid var(--color-outline);background:var(--color-surface-container);padding:.1em 1em}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,textarea{font-family:inherit}.kicker{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.16em;color:var(--color-bud);margin:0 0 14px;font-size:.75rem}.page-title{font-family:var(--font-serif);letter-spacing:-.015em;color:var(--color-ink);margin:0;font-size:clamp(2.2rem,6vw,3.2rem);font-weight:600}.page-sub{color:var(--color-ink-soft);margin:0;font-size:1.05rem;line-height:1.7}.card{background:var(--color-surface-container-low);border:1px solid var(--color-paper-line);border-radius:14px}.pill{background:var(--color-bud-pale);color:var(--color-bud-deep);border-radius:999px}::selection{background-color:var(--color-bud-soft);color:var(--color-on-primary-container)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--color-outline)}::-webkit-scrollbar-thumb{background:var(--color-outline);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-bud)}:focus-visible{outline:2px solid var(--color-bud);outline-offset:2px}@media (width<=768px){body{font-size:15px;line-height:1.6}.post-article{padding:0 1rem}}.lightbox-overlay{z-index:2000;cursor:zoom-out;background:#000000d9;justify-content:center;align-items:center;animation:.2s lightbox-fade;display:flex;position:fixed;inset:0}.lightbox-img{object-fit:contain;border-radius:8px;max-width:92vw;max-height:92vh}@keyframes lightbox-fade{0%{opacity:0}to{opacity:1}}
