:root{--bg:#fdfdfc;--card:#f7f7f5;--paper:#f3f5f7;--fg:#1c1c1a;--dim:#66665e;--line:#dcdcd6;--field:#8a8a82;--accent:#2563eb;--ok:#15803d;--warn:#c2410c;--cat-1:#9a6a00;--cat-2:#5d7317;--cat-3:#a8324f;--cat-4:#3f5b85;--cat-5:#b7755d;--l-conn:oklch(56% .085 195);--l-msg:oklch(56% .1 355);--l-disp:oklch(60% .1 70);--l-store:oklch(56% .085 145);--l-biz:oklch(56% .025 260);--d-ground:#f6f7f9;--d-band:#eceef2;--d-chip:#fff;--d-line:#a3a9b4;--d-edge:#e1e4e9;--highlight:color-mix(in srgb, var(--accent) 14%, transparent);--on-solid:#fff;--mono:"JetBrains Mono Variable", ui-monospace, SFMono-Regular, Menlo, monospace;--brand:"Bricolage Grotesque Variable", system-ui, sans-serif;--sans:system-ui, -apple-system, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--l-conn:oklch(76% .08 195);--l-msg:oklch(75% .09 355);--l-disp:oklch(79% .09 75);--l-store:oklch(76% .08 145);--l-biz:oklch(74% .02 260);--d-ground:#141519;--d-band:#1c1e24;--d-chip:#262932;--d-line:#646a77;--d-edge:#2c2f37;--bg:#16161a;--card:#1e1e23;--paper:#1a1b20;--fg:#e6e6e3;--dim:#9a9aa3;--line:#33333b;--field:#6c6c77;--accent:#7aa2f7;--ok:#7bc97b;--warn:#f0845c;--cat-1:#d4b65e;--cat-2:#a3bd5a;--cat-3:#f08da0;--cat-4:#8da9d6;--cat-5:#c49478;--on-solid:#16161a;color-scheme:dark}}:root[data-theme=dark]{--l-conn:oklch(76% .08 195);--l-msg:oklch(75% .09 355);--l-disp:oklch(79% .09 75);--l-store:oklch(76% .08 145);--l-biz:oklch(74% .02 260);--d-ground:#141519;--d-band:#1c1e24;--d-chip:#262932;--d-line:#646a77;--d-edge:#2c2f37;--bg:#16161a;--card:#1e1e23;--paper:#1a1b20;--fg:#e6e6e3;--dim:#9a9aa3;--line:#33333b;--field:#6c6c77;--accent:#7aa2f7;--ok:#7bc97b;--warn:#f0845c;--cat-1:#d4b65e;--cat-2:#a3bd5a;--cat-3:#f08da0;--cat-4:#8da9d6;--cat-5:#c49478;--on-solid:#16161a;color-scheme:dark}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font:1rem/1.75 var(--sans);overflow-wrap:break-word;margin:0}:lang(zh) body,body:lang(zh){line-height:1.85}.prose:lang(zh){font-size:1.0625rem;line-height:1.8}.prose:lang(zh)>p,.prose:lang(zh)>ul,.prose:lang(zh)>ol{max-width:36em}a{color:var(--accent)}code{font-family:var(--mono);background:var(--card);border-radius:3px;padding:.1em .3em;font-size:.86em}pre{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:.9rem;overflow-x:auto}pre code{background:0 0;padding:0}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:.4rem .6rem}.table-wrap{overflow-x:auto}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wrap{max-width:1080px;margin:0 auto;padding:0 1.25rem}@media (width<=560px){.wrap{padding:0 1rem}}.prose>p,.prose>ul,.prose>ol,.prose>h2,.prose>h3,.prose>blockquote,details .body>p{max-width:70ch}.prose h2{text-wrap:balance;margin-top:2.6rem;scroll-margin-top:3.6rem;font-size:1.35rem;line-height:1.35}.prose h3{margin-top:1.8rem;font-size:1.1rem}.prose li+li{margin-top:.25rem}.prose blockquote{border-left:3px solid var(--line);color:var(--dim);margin:1.2rem 0;padding:.2rem 1rem}@media (width>=1200px){.prose h2{scroll-margin-top:1.2rem}}@media (width<=560px){[data-swipe]:before{content:attr(data-swipe) " →";width:max-content;color:var(--dim);padding:.4rem .7rem 0;font-size:.78rem;display:block;position:sticky;left:0}}.btn{font:inherit;cursor:pointer;border:1px solid var(--field);background:var(--bg);min-height:40px;color:var(--fg);border-radius:6px;padding:.35rem .9rem;font-size:.88rem}.btn:hover{border-color:var(--fg)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-solid)}.btn[aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:var(--highlight)}.btn:disabled{opacity:.45;cursor:default}details.deeper{border:1px solid var(--line);background:var(--card);border-radius:6px;margin:1.2rem 0}details.deeper>summary{cursor:pointer;padding:.6rem 1rem}details.deeper .body{padding:0 1rem .6rem}.note{border:1px solid var(--line);background:var(--card);border-radius:8px;margin:1.4rem 0;padding:.8rem 1rem}.prose>.note{max-width:40rem}.note>:first-child{margin-top:0}.note>:last-child{margin-bottom:0}
