@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2-variations");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}:root{color-scheme:light;--bg:#fafafa;--surface:#fff;--surface-2:#f4f4f5;--surface-3:#ededef;--ink:#0f1115;--ink-2:#363942;--ink-3:#5b5e69;--ink-4:#666974;--line:#0f111514;--line-strong:#0f111526;--accent:#4447f0;--accent-ink:#3437d6;--accent-soft:#4447f014;--accent-glow:#6366f129;--ok:#15803d;--ok-soft:#15803d17;--warn:#b45309;--danger:#dc2626;--c-social:#4f7cff;--c-creator:#9a6bff;--c-ads:#f0782e;--c-shop:#12a07c;--c-trend:#e5508c;--paper:var(--bg);--paper-2:var(--surface-2);--paper-3:var(--surface-3);--rule:var(--line);--rule-strong:var(--line-strong);--signal:var(--accent);--signal-ink:var(--accent-ink);--signal-wash:var(--accent-soft);--beta:var(--warn);--focus:var(--accent);--term-bg:#f6f6f7;--term-bg-2:#eeeef0;--term-fg:#1d2028;--term-dim:#61646f;--term-ok:#15803d;--term-str:#a14d0a;--term-key:#4447f0;--term-rule:#0f11151a;--code-bg:#121419;--code-bar:#191c23;--code-fg:#e3e6ee;--code-dim:#8d93a6;--code-key:#a8b4ff;--code-str:#97d8a8;--code-num:#f1c07e;--code-punct:#7e86a0;--code-line:#ffffff14;--font-sans:"Geist Variable", "Geist", -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", ui-sans-serif, system-ui, sans-serif;--font-mono:"Geist Mono Variable", "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, "PingFang SC", monospace;--text-2xs:.75rem;--text-xs:.8125rem;--text-sm:.90625rem;--text-base:1rem;--text-lg:clamp(1.0625rem, 1.03rem + .15vw, 1.125rem);--text-xl:clamp(1.125rem, 1.05rem + .35vw, 1.3125rem);--text-2xl:clamp(1.375rem, 1.2rem + .8vw, 1.875rem);--text-3xl:clamp(1.75rem, 1.3rem + 2vw, 2.5rem);--text-h1:clamp(2rem, 1.5rem + 2.2vw, 2.75rem);--text-hero:clamp(2.25rem, 1.4rem + 3.8vw, 4rem);--text-figure:clamp(1.625rem, 1.4rem + 1vw, 2rem);--leading-tight:1.16;--leading-snug:1.3;--leading-body:1.65;--tracking-tight:0;--tracking-label:0;--s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:3rem;--s-8:4.5rem;--space-section:clamp(4rem, 2.6rem + 5vw, 7rem);--gutter:clamp(1rem, .5rem + 2.4vw, 2rem);--wide:75rem;--measure:68ch;--radius-xs:6px;--radius-sm:8px;--radius-btn:10px;--radius-ctl:9px;--radius:12px;--radius-card:14px;--radius-lg:16px;--radius-panel:18px;--radius-stage:22px;--radius-pane:16px;--radius-chip:8px;--radius-pill:999px;--shadow-sm:0 1px 2px #1010180d;--shadow-md:0 1px 2px #1010180a, 0 8px 24px -12px #10101824;--shadow-lg:0 1px 2px #1010180a, 0 24px 56px -24px #10101833;--shadow-stage:0 40px 80px -40px #10101847;--shadow-pane:none;--duration-fast:.15s;--duration-normal:.26s;--ease-out-expo:cubic-bezier(.16, 1, .3, 1)}:root[data-theme=dark]{color-scheme:dark;--bg:#0e0f14;--surface:#15161d;--surface-2:#1a1c24;--surface-3:#22242e;--ink:#f1f2f6;--ink-2:#c3c6d1;--ink-3:#9a9eac;--line:#262833;--line-strong:#333644;--accent:#8b8dff;--accent-ink:#a5a7ff;--accent-soft:#1d1f3d;--accent-glow:#6366f138;--ok:#4ade80;--warn:#fbbf24;--term-bg:#12131a;--term-bg-2:#181a22;--term-fg:#e6e8ef;--term-dim:#9a9eac;--term-ok:#4ade80;--term-str:#fbbf24;--term-key:#a5a7ff;--term-rule:#262833;--shadow-md:0 1px 2px #0000004d, 0 8px 20px -8px #00000080;--shadow-lg:0 2px 4px #0000004d, 0 24px 48px -16px #0009}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:5rem}body{background:var(--bg);min-height:100vh;color:var(--ink);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-body);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:lang(zh) body,body:lang(zh){line-height:1.7}img,svg,video{max-width:100%;height:auto;display:block}input,button,textarea,select{font:inherit;color:inherit}h1,h2,h3,h4{font-weight:600;line-height:var(--leading-snug);letter-spacing:0;text-wrap:balance;overflow-wrap:break-word}h3{letter-spacing:-.01em}strong,b{font-weight:600}:lang(zh) :is(h1,h2,h3,h4,.stat__value,.bill__job,.job__title){word-break:keep-all;line-break:strict;overflow-wrap:anywhere}p,li,dd,td{overflow-wrap:break-word;text-wrap:pretty}a{color:var(--accent-ink);transition:color var(--duration-fast) ease;text-decoration:none}a:hover{color:var(--ink)}main p a:not([class]),main li>p a:not([class]),main td a:not([class]){text-decoration:underline;text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);text-underline-offset:.2em}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}::selection{background:var(--accent-soft);color:var(--ink)}code,kbd,pre,samp{font-family:var(--font-mono);font-size:.88em}:not(pre)>code{background:var(--surface-2);border:1px solid var(--line);color:var(--ink);overflow-wrap:anywhere;border-radius:6px;padding:.1em .38em;font-size:.85em}pre{max-width:100%;padding:var(--s-4) var(--s-5);background:var(--code-bg);color:var(--code-fg);border:1px solid var(--code-bg);border-radius:var(--radius-pane);font-size:var(--text-xs);tab-size:2;color-scheme:dark;line-height:1.7;position:relative;overflow-x:auto}pre code{font-size:inherit;color:inherit;background:0 0;border:0;padding:0}pre::selection,pre ::selection{color:#fff;background:#a8b4ff4d}.tk-k{color:var(--code-key)}.tk-s{color:var(--code-str)}.tk-n{color:var(--code-num)}.tk-p{color:var(--code-punct)}.tk-c{color:var(--code-dim)}.tk-f{color:var(--code-num)}.copy-btn{z-index:1;height:1.625rem;color:var(--code-fg);font:500 var(--text-2xs)/1 var(--font-sans);white-space:nowrap;cursor:pointer;opacity:.85;transition:background-color var(--duration-fast) ease, opacity var(--duration-fast) ease;background:#ffffff14;border:1px solid #ffffff1a;border-radius:7px;align-items:center;gap:.3rem;padding:0 .55rem;display:inline-flex;position:absolute;top:.5rem;right:.5rem}.copy-btn:hover,.copy-btn:focus-visible{opacity:1;background:#ffffff29}.copy-btn[data-done]{color:var(--code-str)}.copy-btn--inline{flex:none;position:static}.code-wrap{max-width:100%;position:relative}.code-wrap>pre{margin:0}.prose .code-wrap{margin-block:var(--s-5)}.has-copy>pre,pre.has-copy{padding-right:4.75rem}.wrap{width:min(100% - 2 * var(--gutter), var(--wide));margin-inline:auto}.measure{max-width:var(--measure)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip-link{left:var(--gutter);z-index:50;padding:var(--s-2) var(--s-4);background:var(--ink);color:var(--bg);border-radius:var(--radius-btn);position:absolute;top:-10rem}.skip-link:focus{top:var(--s-2)}.label{font-size:var(--text-xs);color:var(--ink-3);font-weight:500}.mono{font-family:var(--font-mono)}.num{font-variant-numeric:tabular-nums}.chip{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-pill);font-size:var(--text-2xs);white-space:nowrap;color:var(--ink-2);align-items:center;gap:.3rem;padding:.1rem .55rem;line-height:1.6;display:inline-flex}.chip--beta,.chip--preview{color:var(--warn);background:#fff7ed;border-color:#fde3c4}.chip--stable{color:var(--ok);background:#f0fdf4;border-color:#c9eed6}[data-theme=dark] .chip--beta,[data-theme=dark] .chip--preview{background:#2a1d0b;border-color:#4a3412}[data-theme=dark] .chip--stable{background:#0d2416;border-color:#164a2a}.section{padding-top:var(--space-section)}.section-head{justify-items:center;gap:var(--s-3);text-align:center;margin-bottom:var(--s-7);display:grid}.section-head--start{text-align:left;justify-items:start}.kicker,.section-head .kicker{color:var(--accent-ink);font-size:.875rem;font-weight:500}.section-head h2{font-size:var(--text-3xl);max-width:24ch;line-height:1.3}.section-head p{color:var(--ink-3);max-width:58ch;font-size:1.0625rem;line-height:1.75}.page-head{padding-block:var(--s-6) var(--s-7)}.page-head h1{font-size:var(--text-h1);line-height:var(--leading-tight);max-width:24ch}.page-head .label{margin-bottom:var(--s-2)}.page-head .lede{margin-top:var(--s-4);font-size:var(--text-lg);color:var(--ink-3);max-width:60ch}.card-surface{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.input{background:var(--surface);width:100%;height:2.5rem;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius-btn);font-size:var(--text-sm);transition:border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;padding:0 .85rem}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.dot{background:var(--ink-4);border-radius:50%;flex:none;width:.5rem;height:.5rem;display:inline-block}.dot[data-kind=up]{background:#16a34a;box-shadow:0 0 0 3px #16a34a26}.dot[data-kind=degraded]{background:#f59e0b;box-shadow:0 0 0 3px #f59e0b2e}.checks{gap:var(--s-3);padding:0;list-style:none;display:grid}.checks li{color:var(--ink-3);padding-left:1.75rem;position:relative}.checks li:before{content:"";background:var(--accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4.5 8.3 2.3 2.3 4.7-5' fill='none' stroke='%234447f0' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / .85rem no-repeat;border-radius:6px;width:1.125rem;height:1.125rem;position:absolute;top:.2em;left:0}.checks strong{color:var(--ink);margin-right:.35em;font-weight:600}.table-scroll{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);max-width:100%;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.data-table th{text-align:left;font-size:var(--text-xs);color:var(--ink-3);border-bottom:1px solid var(--line);background:var(--surface-2);padding:.625rem 1.25rem;font-weight:500}.data-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:.75rem 1.25rem}.data-table tr:last-child td{border-bottom:0}.data-table td.num,.data-table th.num{text-align:right;white-space:nowrap}.data-table code{white-space:nowrap}@media (width<=40rem){.data-table.stack thead{display:none}.data-table.stack tr{gap:var(--s-1);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line);display:grid}.data-table.stack tr:last-child{border-bottom:0}.data-table.stack td{border:0;padding:0;display:block}.data-table.stack td.num{text-align:left}.data-table.stack td[data-label]:not([data-label=""]):before{content:attr(data-label) " · ";font-size:var(--text-2xs);color:var(--ink-3)}.data-table.stack code{white-space:normal}}.prose{max-width:var(--measure)}.prose>*+*{margin-top:var(--s-4)}.prose h2{margin-top:var(--s-7);font-size:1.5rem}.prose h3{margin-top:var(--s-6);font-size:1.125rem}.prose ul,.prose ol{padding-left:1.25rem}.prose li+li{margin-top:var(--s-2)}.prose li::marker{color:var(--ink-3)}.prose a{text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--accent) 35%, transparent);text-underline-offset:.2em}.prose blockquote{padding:var(--s-3) var(--s-4);border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--ink-2)}.prose pre{margin-block:var(--s-5)}.prose table{border-collapse:collapse;width:100%;font-size:var(--text-sm);display:block;overflow-x:auto}.prose th{text-align:left;font-size:var(--text-xs);color:var(--ink-3);border-bottom:1px solid var(--line-strong);padding:var(--s-2) var(--s-3) var(--s-2) 0;font-weight:500}.prose td{border-bottom:1px solid var(--line);padding:var(--s-2) var(--s-3) var(--s-2) 0;vertical-align:top}.prose strong{font-weight:600}.btn{justify-content:center;align-items:center;gap:var(--s-2);background:var(--surface);min-height:2.5rem;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius-btn);font-size:var(--text-sm);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .18s ease, box-shadow .18s ease, background-color var(--duration-fast) ease, border-color var(--duration-fast) ease;padding:.5rem 1.1rem;font-weight:500;line-height:1.2;display:inline-flex}.btn:hover{color:var(--ink);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn:active{box-shadow:var(--shadow-sm);transform:translateY(0)}.btn--primary,.btn--signal{background:var(--ink);color:#fff;border-color:var(--ink)}.btn--primary:hover,.btn--signal:hover{color:#fff}.btn--accent{background:var(--accent);color:#fff;border-color:var(--accent)}.btn--accent:hover{color:#fff;background:var(--accent-ink)}.btn--lg{border-radius:var(--radius);min-height:3rem;padding-inline:1.4rem;font-size:1rem}.btn--sm{border-radius:var(--radius-ctl);min-height:2.125rem;padding:.3rem .8rem}[data-theme=dark] .btn--primary:hover,[data-theme=dark] .btn--signal:hover{background:#fff}.btn .arrow{transition:transform var(--duration-normal) var(--ease-out-expo)}.btn:hover .arrow{transform:translate(2px)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.cmdk{width:min(40rem, calc(100vw - 2 * var(--gutter)));max-height:min(34rem,100vh - 6rem);color:var(--ink);background:0 0;border:0;margin:12vh auto auto;padding:0;overflow:visible}.cmdk::backdrop{-webkit-backdrop-filter:blur(4px);background:#0f111547}.cmdk[open]{animation:cmdk-in .16s var(--ease-out-expo)}@keyframes cmdk-in{0%{opacity:0;transform:translateY(-6px)scale(.99)}}.cmdk__box{max-height:inherit;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);box-shadow:var(--shadow-lg), 0 40px 80px -30px #10101859;grid-template-rows:auto minmax(0,1fr) auto;display:grid;overflow:hidden}.cmdk__bar{align-items:center;gap:var(--s-3);padding:0 var(--s-4);border-bottom:1px solid var(--line);color:var(--ink-3);display:flex}.cmdk__bar input{min-width:0;height:3.25rem;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:1rem}.cmdk__bar input::-webkit-search-cancel-button{display:none}.cmdk kbd{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--ink-3);border:1px solid var(--line);background:var(--surface-2);border-radius:5px;padding:.05rem .35rem}.cmdk__list{padding:var(--s-2);overscroll-behavior:contain;overflow-y:auto}.cmdk__group{padding:var(--s-3) var(--s-3) var(--s-1);font-size:var(--text-xs);color:var(--ink-4)}.cmdk__item{align-items:baseline;gap:var(--s-3);padding:.55rem var(--s-3);border-radius:var(--radius-sm);color:var(--ink);display:flex}.cmdk__item[aria-selected=true]{background:var(--accent-soft);color:var(--ink)}.cmdk__title{text-overflow:ellipsis;white-space:nowrap;max-width:60%;font-size:var(--text-sm);flex:none;overflow:hidden}.cmdk__sub{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--ink-3);margin-left:auto;overflow:hidden}.cmdk__empty{padding:var(--s-5) var(--s-3);color:var(--ink-3);font-size:var(--text-sm)}.cmdk__foot{gap:var(--s-2) var(--s-4);padding:.6rem var(--s-4);border-top:1px solid var(--line);background:var(--surface-2);font-size:var(--text-xs);color:var(--ink-3);flex-wrap:wrap;display:flex}.cmdk__note{margin-left:auto}
