@font-face{font-family:Geist;src:url(/fonts/Geist-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/Geist-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/Geist-SemiBold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMono-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}:root{--font-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", "PingFang SC", "Hiragino Sans", "Yu Gothic UI", "Malgun Gothic", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--font-mono: "Geist Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--r-chip: 6px;--r-control: 10px;--r-panel: 14px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--space-9: 6rem;--shell: 1200px;--shell-narrow: 760px;--ease: cubic-bezier(.16, 1, .3, 1);--dur: .28s;--z-nav: 40;--z-overlay: 60;color-scheme:dark light}:root,:root[data-theme=dark]{--bg: #0b0c0f;--bg-raised: #101217;--bg-sunken: #08090b;--bg-hover: #161920;--line: #1e212a;--line-strong: #2c313c;--text: #e8eaef;--text-dim: #a0a7b4;--text-mute: #79808e;--accent: #4d6bfe;--accent-text: #8ba0ff;--accent-solid: #3b57ee;--accent-ink: #ffffff;--accent-wash: rgb(77 107 254 / .12);--accent-edge: rgb(77 107 254 / .32);--shadow-panel: 0 1px 2px rgb(4 5 8 / .6), 0 12px 32px rgb(4 5 8 / .4);--grid-line: rgb(232 234 239 / .045)}:root[data-theme=light]{--bg: #fbfbfc;--bg-raised: #ffffff;--bg-sunken: #f2f3f6;--bg-hover: #f0f1f5;--line: #e3e5eb;--line-strong: #cdd1da;--text: #14161a;--text-dim: #545b68;--text-mute: #6c7482;--accent: #3a57e8;--accent-text: #2b45c9;--accent-solid: #2b45c9;--accent-ink: #ffffff;--accent-wash: rgb(58 87 232 / .08);--accent-edge: rgb(58 87 232 / .24);--shadow-panel: 0 1px 2px rgb(20 22 26 / .05), 0 10px 28px rgb(20 22 26 / .06);--grid-line: rgb(20 22 26 / .05)}@media (prefers-color-scheme: light){:root:not([data-theme]){--bg: #fbfbfc;--bg-raised: #ffffff;--bg-sunken: #f2f3f6;--bg-hover: #f0f1f5;--line: #e3e5eb;--line-strong: #cdd1da;--text: #14161a;--text-dim: #545b68;--text-mute: #6c7482;--accent: #3a57e8;--accent-text: #2b45c9;--accent-solid: #2b45c9;--accent-ink: #ffffff;--accent-wash: rgb(58 87 232 / .08);--accent-edge: rgb(58 87 232 / .24);--shadow-panel: 0 1px 2px rgb(20 22 26 / .05), 0 10px 28px rgb(20 22 26 / .06);--grid-line: rgb(20 22 26 / .05)}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5.5rem}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body{min-height:100dvh;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"cv11","ss01"}img,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent-text);text-decoration:none;text-underline-offset:.2em}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px;border-radius:3px}::selection{background:var(--accent-wash);color:var(--text)}h1,h2,h3,h4{font-weight:600;letter-spacing:-.022em;line-height:1.15;text-wrap:balance}.t-display{font-size:clamp(2.35rem,1.4rem + 3.4vw,3.9rem);line-height:1.06;letter-spacing:-.032em}.t-h1{font-size:clamp(2rem,1.35rem + 2.4vw,3rem);letter-spacing:-.028em}.t-h2{font-size:clamp(1.55rem,1.15rem + 1.5vw,2.2rem);letter-spacing:-.024em}.t-h3{font-size:clamp(1.15rem,1.02rem + .5vw,1.35rem);letter-spacing:-.016em}.t-lead{font-size:clamp(1.05rem,.98rem + .32vw,1.2rem);line-height:1.6;color:var(--text-dim);max-width:60ch;text-wrap:pretty}.t-body{color:var(--text-dim);max-width:65ch;text-wrap:pretty}.t-small{font-size:.875rem;line-height:1.6}.t-micro{font-size:.785rem;line-height:1.5}.t-mono{font-family:var(--font-mono);font-feature-settings:"zero" 1}.t-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.t-stat{font-family:var(--font-sans);font-variant-numeric:tabular-nums;letter-spacing:-.03em}.eyebrow{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-mute)}.shell{width:100%;max-width:var(--shell);margin-inline:auto;padding-inline:var(--space-5)}@media (max-width: 640px){.shell{padding-inline:var(--space-4)}}.shell-narrow{width:100%;max-width:var(--shell-narrow);margin-inline:auto;padding-inline:var(--space-5)}@media (max-width: 640px){.shell-narrow{padding-inline:var(--space-4)}}.section{padding-block:clamp(2.75rem,1.75rem + 3.5vw,4.5rem)}main.is-prose .section-tight{padding-block:clamp(1.35rem,1rem + 1.3vw,2rem)}main.is-prose .section-tight:first-of-type{padding-top:clamp(1.75rem,1.25rem + 1.5vw,2.5rem)}.page-head{padding-top:clamp(2.5rem,1.5rem + 3.5vw,4.25rem);padding-bottom:clamp(1.5rem,1rem + 2vw,2.5rem);border-bottom:1px solid var(--line)}.page-head .t-lead{margin-top:var(--space-4)}.callout{padding:var(--space-4) var(--space-5);border-left:2px solid var(--accent);border-radius:0 var(--r-panel) var(--r-panel) 0;background:var(--accent-wash);color:var(--text)}.rows{list-style:none;padding:0}.rows>li{padding-block:var(--space-4)}.rows>li+li{border-top:1px solid var(--line)}.section-tight{padding-block:clamp(2rem,1.35rem + 2.5vw,3.25rem)}.rule{border:0;border-top:1px solid var(--line)}.stack>*+*{margin-top:var(--space-4)}.panel{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r-panel)}.panel-quiet{background:color-mix(in srgb,var(--bg-raised) 62%,transparent);border:1px solid var(--line);border-radius:var(--r-panel)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.62rem 1.15rem;border-radius:var(--r-control);border:1px solid transparent;font-size:.94rem;font-weight:500;white-space:nowrap;cursor:pointer;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),transform .12s var(--ease),color var(--dur) var(--ease)}.btn:hover{text-decoration:none}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent-solid);color:var(--accent-ink)}.btn-primary:hover{background:color-mix(in srgb,var(--accent-solid) 86%,#ffffff)}.btn-secondary{background:var(--bg-raised);border-color:var(--line-strong);color:var(--text)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-mute)}.btn-ghost{background:transparent;color:var(--text-dim);padding-inline:.7rem}.btn-ghost:hover{background:var(--bg-hover);color:var(--text)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field label{font-size:.875rem;font-weight:500;color:var(--text)}.field .hint{font-size:.8rem;color:var(--text-mute)}.field .error{font-size:.8rem;color:#ff8b8b}:root[data-theme=light] .field .error{color:#c0342b}.input,.select,.textarea{width:100%;padding:.6rem .8rem;background:var(--bg-sunken);border:1px solid var(--line-strong);border-radius:var(--r-control);color:var(--text);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.input::placeholder,.textarea::placeholder{color:var(--text-mute)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent-text);background:var(--bg-raised);box-shadow:0 0 0 3px var(--accent-wash)}.textarea{min-height:7rem;resize:vertical;font-family:var(--font-mono);font-size:.875rem}.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.16rem .5rem;border-radius:var(--r-chip);border:1px solid var(--line-strong);background:var(--bg-sunken);color:var(--text-dim);font-family:var(--font-mono);font-size:.715rem;letter-spacing:.01em;white-space:nowrap}.chip-accent{border-color:var(--accent-edge);background:var(--accent-wash);color:var(--accent-text)}.code{background:var(--bg-sunken);border:1px solid var(--line);border-radius:var(--r-panel);font-family:var(--font-mono);font-size:.855rem;line-height:1.75;overflow-x:auto}code{font-family:var(--font-mono);font-size:.9em}:not(pre)>code{padding:.1em .36em;border-radius:var(--r-chip);background:var(--bg-sunken);border:1px solid var(--line);color:var(--text)}.tok-comment{color:var(--text-mute);font-style:italic}.tok-key{color:var(--accent-text)}.tok-str{color:#8fd4a8}.tok-fn{color:#d7c58a}.tok-punct{color:var(--text-mute)}:root[data-theme=light] .tok-str{color:#1f7a48}:root[data-theme=light] .tok-fn{color:#8a6d1f}.pc{position:relative;display:flex;flex-direction:column;gap:.7rem;padding:var(--space-4);background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r-panel);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),transform .2s var(--ease)}.pc:hover{border-color:var(--line-strong);background:var(--bg-hover);transform:translateY(-2px)}.pc:focus-within{border-color:var(--accent-edge)}.pc-hit{position:absolute;inset:0;border-radius:inherit;z-index:1}.pc-head,.pc-desc,.pc-foot{position:relative;z-index:2;pointer-events:none}.pc-head{display:flex;align-items:center;gap:.65rem}.pc-avatar{width:34px;height:34px;border-radius:var(--r-chip);border:1px solid var(--line);background:var(--bg-sunken);flex:none;object-fit:cover}.pc-avatar-fallback{display:grid;place-items:center;font-size:.85rem;color:var(--text-mute)}.pc-id{min-width:0;flex:1}.pc-name{font-size:.98rem;font-weight:500;letter-spacing:-.014em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pc-owner{color:var(--text-mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pc-status{flex:none;padding:.1rem .42rem;border-radius:var(--r-chip);border:1px solid var(--line-strong);color:var(--text-mute);font-size:.7rem}.pc-status.is-official,.pc-status.is-verified{border-color:var(--accent-edge);background:var(--accent-wash);color:var(--accent-text)}.pc-desc{color:var(--text-dim);display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:1;overflow-wrap:anywhere}.pc-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:auto;padding-top:.2rem}.pc-tags{display:flex;gap:.3rem;min-width:0;overflow:hidden}.pc-metrics{display:flex;align-items:center;gap:.65rem;flex:none;color:var(--text-mute)}.pc-metric{display:inline-flex;align-items:center;gap:.22rem}.pc-npm{font-size:.68rem;letter-spacing:.03em}.pc-rail{scroll-snap-align:start;width:19rem;flex:none}[data-reveal]{opacity:1}html.js [data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:var(--reveal-delay, 0ms)}html.js [data-reveal].is-in{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){html.js [data-reveal]{opacity:1;transform:none;transition:none}.btn:active{transform:none}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--space-4);top:-4rem;z-index:var(--z-overlay);padding:.6rem 1rem;background:var(--accent-solid);color:var(--accent-ink);border-radius:var(--r-control);transition:top .2s var(--ease)}.skip-link:focus{top:var(--space-4)}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}.nav[data-astro-cid-dmqpwcec]{position:sticky;top:0;z-index:var(--z-nav);background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--line)}@media (prefers-reduced-transparency: reduce){.nav[data-astro-cid-dmqpwcec]{background:var(--bg);backdrop-filter:none;-webkit-backdrop-filter:none}}.nav-inner[data-astro-cid-dmqpwcec]{display:flex;align-items:center;gap:var(--space-5);height:60px}.brand[data-astro-cid-dmqpwcec]{display:inline-flex;align-items:center;gap:.5rem;color:var(--text);font-weight:600;font-size:.98rem;letter-spacing:-.02em;flex:none}.brand[data-astro-cid-dmqpwcec]:hover{text-decoration:none}.brand-dim[data-astro-cid-dmqpwcec]{color:var(--text-mute);font-weight:400}.nav-links[data-astro-cid-dmqpwcec]{display:flex;align-items:center;gap:.15rem;flex:1;min-width:0}.nav-link[data-astro-cid-dmqpwcec]{padding:.35rem .6rem;border-radius:var(--r-chip);color:var(--text-dim);font-size:.885rem;white-space:nowrap;transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.nav-link[data-astro-cid-dmqpwcec]:hover{color:var(--text);background:var(--bg-hover);text-decoration:none}.nav-link[data-astro-cid-dmqpwcec].is-current{color:var(--text);font-weight:500}.nav-actions[data-astro-cid-dmqpwcec]{display:flex;align-items:center;gap:.3rem;flex:none}.icon-btn[data-astro-cid-dmqpwcec]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:var(--r-control);background:transparent;color:var(--text-dim);cursor:pointer;transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.icon-btn[data-astro-cid-dmqpwcec]:hover{color:var(--text);background:var(--bg-hover);text-decoration:none}.nav-cta[data-astro-cid-dmqpwcec]{padding:.42rem .85rem;font-size:.865rem;margin-left:.3rem}.lang[data-astro-cid-dmqpwcec]{position:relative}.lang[data-astro-cid-dmqpwcec] summary[data-astro-cid-dmqpwcec]{display:inline-flex;align-items:center;gap:.3rem;height:32px;padding:0 .5rem;border-radius:var(--r-control);color:var(--text-dim);font-size:.8rem;cursor:pointer;list-style:none;transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.lang[data-astro-cid-dmqpwcec] summary[data-astro-cid-dmqpwcec]::-webkit-details-marker{display:none}.lang[data-astro-cid-dmqpwcec] summary[data-astro-cid-dmqpwcec]:hover,.lang[data-astro-cid-dmqpwcec][open] summary[data-astro-cid-dmqpwcec]{color:var(--text);background:var(--bg-hover)}.lang-current[data-astro-cid-dmqpwcec]{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.04em}.lang-menu[data-astro-cid-dmqpwcec]{position:absolute;top:calc(100% + .4rem);right:0;min-width:10.5rem;padding:.3rem;background:var(--bg-raised);border:1px solid var(--line-strong);border-radius:var(--r-panel);box-shadow:var(--shadow-panel)}.lang-item[data-astro-cid-dmqpwcec]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:.4rem .6rem;border-radius:var(--r-chip);color:var(--text-dim);font-size:.875rem}.lang-item[data-astro-cid-dmqpwcec]:hover{background:var(--bg-hover);color:var(--text);text-decoration:none}.lang-item[data-astro-cid-dmqpwcec].is-current{color:var(--accent-text)}.theme-light[data-astro-cid-dmqpwcec]{display:none}html[data-theme=light] .theme-light[data-astro-cid-dmqpwcec]{display:block}html[data-theme=light] .theme-dark[data-astro-cid-dmqpwcec]{display:none}@media (prefers-color-scheme: light){html:not([data-theme]) .theme-light[data-astro-cid-dmqpwcec]{display:block}html:not([data-theme]) .theme-dark[data-astro-cid-dmqpwcec]{display:none}}.nav-burger[data-astro-cid-dmqpwcec],.burger-close[data-astro-cid-dmqpwcec]{display:none}.nav-drawer[data-astro-cid-dmqpwcec]{border-top:1px solid var(--line);background:var(--bg);padding-block:var(--space-3)}.nav-drawer[data-astro-cid-dmqpwcec][hidden]{display:none}.drawer-link[data-astro-cid-dmqpwcec]{display:block;padding:.7rem 0;color:var(--text-dim);border-bottom:1px solid var(--line);font-size:.95rem}.drawer-link[data-astro-cid-dmqpwcec]:last-child{border-bottom:0}.drawer-cta[data-astro-cid-dmqpwcec]{color:var(--accent-text);font-weight:500}@media (max-width: 1080px){.nav-links[data-astro-cid-dmqpwcec]{display:none}.nav-burger[data-astro-cid-dmqpwcec]{display:inline-flex}.nav-inner[data-astro-cid-dmqpwcec]{justify-content:space-between}}@media (max-width: 560px){.nav-cta[data-astro-cid-dmqpwcec]{display:none}}.foot[data-astro-cid-sz7xmlte]{border-top:1px solid var(--line);background:var(--bg-sunken);padding-top:var(--space-7)}.foot-inner[data-astro-cid-sz7xmlte]{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:var(--space-6);padding-bottom:var(--space-7)}.foot-mark[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;letter-spacing:-.02em;color:var(--text)}.dim[data-astro-cid-sz7xmlte]{color:var(--text-mute);font-weight:400}.foot-about[data-astro-cid-sz7xmlte]{margin-top:var(--space-3);color:var(--text-mute);max-width:34ch}.foot-col[data-astro-cid-sz7xmlte]{display:flex;flex-direction:column;gap:.55rem}.foot-heading[data-astro-cid-sz7xmlte]{font-size:.78rem;font-weight:500;color:var(--text);margin-bottom:.15rem}.foot-link[data-astro-cid-sz7xmlte]{color:var(--text-mute);font-size:.875rem;width:fit-content}.foot-link[data-astro-cid-sz7xmlte]:hover{color:var(--text)}.foot-base[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-3);padding-block:var(--space-4);border-top:1px solid var(--line);color:var(--text-mute)}@media (max-width: 860px){.foot-inner[data-astro-cid-sz7xmlte]{grid-template-columns:repeat(2,1fr)}.foot-brand[data-astro-cid-sz7xmlte]{grid-column:1 / -1}}@media (max-width: 520px){.foot-inner[data-astro-cid-sz7xmlte]{grid-template-columns:1fr;gap:var(--space-5)}}
