/*! scrollcraft engine. MIT License, (c) 2026 Nate Herk. https://github.com/nateherkai/scroll-craft */
:root{--sc-canvas:#08090b;--sc-surface:#101217;--sc-ink:#f4f2ef;--sc-ink-soft:#9a9ba1;--sc-accent:#d8ff3e;--sc-accent-ink:#08090b;--sc-hairline:color-mix(in oklab, var(--sc-ink) 12%, transparent);--sc-hairline-strong:color-mix(in oklab, var(--sc-ink) 22%, transparent);--sc-font-display:"Instrument Sans", "Geist", system-ui, sans-serif;--sc-font-text:"Geist", system-ui, sans-serif;--sc-font-mono:"Geist Mono", ui-monospace, monospace;--sc-t-xs:clamp(.75rem, .72rem + .15vw, .82rem);--sc-t-sm:clamp(.875rem, .84rem + .18vw, .95rem);--sc-t-base:clamp(1rem, .96rem + .22vw, 1.125rem);--sc-t-lg:clamp(1.2rem, 1.1rem + .5vw, 1.5rem);--sc-t-xl:clamp(1.6rem, 1.35rem + 1.2vw, 2.25rem);--sc-t-2xl:clamp(2.1rem, 1.6rem + 2.4vw, 3.4rem);--sc-t-3xl:clamp(2.8rem, 1.9rem + 4.2vw, 5rem);--sc-t-4xl:clamp(3.4rem, 1.9rem + 6.6vw, 7.5rem);--sc-track-tight:-.035em;--sc-track-snug:-.02em;--sc-track-normal:-.005em;--sc-track-wide:.08em;--sc-leading-none:.94;--sc-leading-tight:1.06;--sc-leading-body:1.62;--sc-measure:62ch;--sc-1:.25rem;--sc-2:.5rem;--sc-3:.75rem;--sc-4:1rem;--sc-5:1.5rem;--sc-6:2rem;--sc-7:3rem;--sc-8:4rem;--sc-9:6rem;--sc-10:8rem;--sc-11:12rem;--sc-section:clamp(4.5rem, 9vw, 11rem);--sc-gutter:clamp(1.25rem, 5vw, 5.5rem);--sc-maxw:82rem;--sc-r-sm:6px;--sc-r-md:12px;--sc-r-lg:20px;--sc-r-pill:999px;--sc-shadow-color:220 40% 2%;--sc-e1:0 1px 2px hsl(var(--sc-shadow-color) / .28), 0 2px 6px -1px hsl(var(--sc-shadow-color) / .2);--sc-e2:0 2px 4px hsl(var(--sc-shadow-color) / .24), 0 8px 18px -4px hsl(var(--sc-shadow-color) / .3);--sc-e3:0 4px 8px hsl(var(--sc-shadow-color) / .22), 0 18px 40px -8px hsl(var(--sc-shadow-color) / .38), 0 48px 90px -24px hsl(var(--sc-shadow-color) / .3);--sc-edge:inset 0 1px 0 color-mix(in oklab, var(--sc-ink) 10%, transparent);--sc-ease-out:cubic-bezier(.23, 1, .32, 1);--sc-ease-in-out:cubic-bezier(.77, 0, .175, 1);--sc-ease-drawer:cubic-bezier(.32, .72, 0, 1);--sc-d-fast:.16s;--sc-d-base:.24s;--sc-d-slow:.42s;--sc-z-stage:1;--sc-z-copy:20;--sc-z-chrome:60}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--sc-canvas);color:var(--sc-ink);font-family:var(--sc-font-text);font-size:var(--sc-t-base);line-height:var(--sc-leading-body);letter-spacing:var(--sc-track-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-synthesis-weight:none;margin:0;overflow-x:clip}img,video,canvas,svg{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}::selection{background:var(--sc-accent);color:var(--sc-accent-ink)}:root{caret-color:var(--sc-accent);accent-color:var(--sc-accent)}:where(a){color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}@supports (scrollbar-color:auto){html{scrollbar-color:color-mix(in oklab, var(--sc-ink) 26%, transparent) transparent;scrollbar-width:thin}}:where(table,.sc-nums,[data-sc-count]){font-variant-numeric:tabular-nums}.sc-display{font-family:var(--sc-font-display);font-weight:500;line-height:var(--sc-leading-none);letter-spacing:var(--sc-track-tight);text-wrap:balance;margin:0}.sc-display--xl{font-size:var(--sc-t-4xl)}.sc-display--lg{font-size:var(--sc-t-3xl)}.sc-display--md{font-size:var(--sc-t-2xl);letter-spacing:var(--sc-track-snug)}.sc-lede{font-size:var(--sc-t-lg);letter-spacing:var(--sc-track-snug);color:var(--sc-ink);text-wrap:pretty;max-width:46ch;margin:0;line-height:1.44}.sc-body{max-width:var(--sc-measure);color:var(--sc-ink-soft);text-wrap:pretty;margin:0}.sc-label{font-family:var(--sc-font-mono);font-size:var(--sc-t-xs);letter-spacing:var(--sc-track-wide);text-transform:uppercase;color:var(--sc-ink-soft)}.sc-wrap{width:100%;max-width:var(--sc-maxw);padding-inline:var(--sc-gutter);margin-inline:auto}.sc-section{padding-block:var(--sc-section)}.sc-stack>*+*{margin-top:var(--sc-4)}.sc-stack>:is(h1,h2,h3){margin-top:var(--sc-7)}.sc-stack>:is(h1,h2,h3):first-child{margin-top:0}.sc-rule{background:var(--sc-hairline);border:0;height:1px;margin:0}.sc-act--pinned{position:relative}.sc-stage{height:100svh;z-index:var(--sc-z-stage);position:sticky;top:0;overflow:clip}.sc-stage :is(video[data-sc-scrub],canvas[data-sc-sequence],.sc-stage__poster){object-fit:cover;width:100%;height:100%;position:absolute;inset:0}video[data-sc-scrub]{opacity:0;transition:opacity .38s var(--sc-ease-out)}.sc-has-clip video[data-sc-scrub]{opacity:1}.sc-stage__poster{z-index:0;transition:opacity .38s var(--sc-ease-out)}.sc-has-clip .sc-stage__poster{opacity:0}.sc-scrim{pointer-events:none;z-index:1;background:linear-gradient(var(--sc-scrim-angle,180deg), color-mix(in oklab, var(--sc-canvas) var(--sc-scrim-a,78%), transparent) 0%, color-mix(in oklab, var(--sc-canvas) 30%, transparent) 42%, transparent 68%);position:absolute;inset:0}.sc-scrim--bottom{--sc-scrim-angle:0deg}.sc-scrim--left{--sc-scrim-angle:90deg}.sc-scrim--right{--sc-scrim-angle:270deg}.sc-scrim--lead{background:linear-gradient(to top right, color-mix(in oklab, var(--sc-canvas) 94%, transparent) 0%, color-mix(in oklab, var(--sc-canvas) 72%, transparent) 30%, color-mix(in oklab, var(--sc-canvas) 30%, transparent) 52%, transparent 72%)}.sc-scrim--trail{background:linear-gradient(to top left, color-mix(in oklab, var(--sc-canvas) 94%, transparent) 0%, color-mix(in oklab, var(--sc-canvas) 72%, transparent) 30%, color-mix(in oklab, var(--sc-canvas) 30%, transparent) 52%, transparent 72%)}.sc-scrim--band{background:linear-gradient(to top, color-mix(in oklab, var(--sc-canvas) 94%, transparent) 0%, color-mix(in oklab, var(--sc-canvas) 74%, transparent) 22%, color-mix(in oklab, var(--sc-canvas) 30%, transparent) 42%, transparent 58%)}.sc-scrim--vignette{background:radial-gradient(120% 90% at 50% 45%, transparent 40%, color-mix(in oklab, var(--sc-canvas) 70%, transparent) 100%)}.sc-copy{z-index:var(--sc-z-copy);inset-inline:var(--sc-gutter);will-change:opacity, transform;max-width:min(46rem,76vw);position:absolute}.sc-copy--lead{left:var(--sc-gutter);bottom:clamp(3rem,12vh,9rem)}.sc-copy--center{inset-inline:auto;text-align:center;top:50%;left:50%;translate:-50% -50%}.sc-copy--trail{inset-inline:auto;right:var(--sc-gutter);text-align:right;bottom:clamp(3rem,12vh,9rem)}[data-sc-cue]{opacity:0;will-change:opacity, transform}.sc-ready [data-sc-cue]{transition:none}.sc-split{vertical-align:top;display:inline-block;overflow:hidden}.sc-split--line{margin-bottom:-.14em;padding-bottom:.14em;display:block}.sc-split__i{will-change:transform, opacity;display:inline-block}.sc-is-split{opacity:1!important}[data-sc-pan]{will-change:transform;display:flex}[data-sc-reveal]{will-change:clip-path}[data-sc-parallax]{will-change:transform}[data-sc-in],[data-sc-stagger]>*{opacity:0;transition:opacity .62s var(--sc-ease-out), transform .62s var(--sc-ease-out);transform:translateY(14px)}[data-sc-in].sc-in,[data-sc-stagger]>.sc-in{opacity:1;transform:none}[data-sc-tilt]{transform-style:preserve-3d;will-change:transform}[data-sc-magnet]{will-change:transform}[data-sc-spotlight]{isolation:isolate}:where([data-sc-spotlight]){position:relative}[data-sc-spotlight]:after{content:"";pointer-events:none;z-index:2;background:radial-gradient(28rem 28rem at calc(var(--sc-mx,.5) * 100%) calc(var(--sc-my,.5) * 100%), color-mix(in oklab, var(--sc-accent) 16%, transparent), transparent 70%);opacity:0;transition:opacity var(--sc-d-slow) var(--sc-ease-out);position:absolute;inset:0}[data-sc-spotlight]:hover:after{opacity:1}[data-sc-mode=worldflight]{position:relative}.sc-world{z-index:var(--sc-z-stage);background:var(--sc-canvas);position:fixed;inset:0;overflow:clip}.sc-world__seg{opacity:0;will-change:opacity;position:absolute;inset:0}.sc-world__seg>:is(video,img,canvas){object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.sc-world__poster{z-index:0;transform-origin:50%;transition:opacity .42s var(--sc-ease-out)}.sc-world__seg>video{z-index:1}.sc-world__seg.sc-has-clip .sc-world__poster{opacity:0}video[data-sc-scrub].sc-has-clip{opacity:1}.sc-world__copy{z-index:var(--sc-z-copy);pointer-events:none;position:fixed;inset:0}.sc-world__scrim{pointer-events:none;z-index:0;position:absolute;inset:0}[data-sc-copy]{opacity:0;pointer-events:none;will-change:opacity, transform}.sc-ready [data-sc-copy]{transition:none}.sc-world__spacer{pointer-events:none}[data-sc-progress]{height:2px;z-index:var(--sc-z-chrome);background:var(--sc-accent);transform-origin:0;will-change:transform;position:fixed;inset:0 0 auto;transform:scaleX(0)}.sc-grain{pointer-events:none;z-index:3;opacity:.045;position:fixed;inset:0}.sc-grain:before{content:"";background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/></filter><rect width='140' height='140' filter='url(%23n)'/></svg>");position:absolute;inset:-50%}@media (prefers-reduced-motion:reduce){[data-sc-in],[data-sc-stagger]>*{transition-duration:.22s;transform:none}[data-sc-parallax],[data-sc-pan],.sc-split__i{transform:none!important}[data-sc-reveal]{clip-path:none!important}[data-sc-act=pan] .sc-stage,[data-sc-act=pan] [data-sc-stage]{overscroll-behavior-x:contain;scroll-snap-type:x proximity;overflow:auto hidden}[data-sc-pan]>*{scroll-snap-align:center}[data-sc-spotlight]:after{display:none}.sc-world__poster,[data-sc-copy]{transform:none!important}}@media (width<=860px){.sc-copy{inset-inline:var(--sc-gutter);max-width:none}.sc-copy--trail{text-align:left}.sc-stage{height:100svh}.sc-scrim--trail{background:linear-gradient(to top, color-mix(in oklab, var(--sc-canvas) 94%, transparent) 0%, color-mix(in oklab, var(--sc-canvas) 74%, transparent) 22%, color-mix(in oklab, var(--sc-canvas) 30%, transparent) 42%, transparent 58%)}}:root{--sc-canvas:#0b110f;--sc-surface:#121a17;--sc-ink:#ebe6da;--sc-ink-soft:#a2aba3;--sc-accent:#f0b041;--sc-accent-ink:#1a1306;--sc-font-display:"Geist", system-ui, sans-serif;--sc-font-text:"Geist", system-ui, sans-serif;--sc-font-mono:"Geist Mono", ui-monospace, monospace;--sc-shadow-color:160 30% 3%;--side:15rem;--bar:0px;--pane:color-mix(in oklab, var(--sc-surface) 92%, var(--sc-ink));--hit:color-mix(in oklab, var(--sc-accent) 16%, transparent)}html:lang(zh){--sc-font-display:"Geist", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--sc-font-text:"Geist", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--sc-font-mono:"Geist Mono", "PingFang SC", "Microsoft YaHei", ui-monospace, monospace;--sc-track-tight:0em;--sc-track-snug:0em}html:lang(zh) body{letter-spacing:.01em}body{background:var(--sc-canvas);color:var(--sc-ink);font-family:var(--sc-font-text);letter-spacing:.005em}[hidden]{display:none!important}.mono{font-family:var(--sc-font-mono)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{left:var(--sc-4);z-index:100;background:var(--sc-accent);color:var(--sc-accent-ink);padding:var(--sc-2) var(--sc-4);border-radius:var(--sc-r-sm);position:absolute;top:-4rem}.skip:focus{top:var(--sc-4)}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}:focus-visible{outline:2px solid var(--sc-accent);outline-offset:3px;border-radius:2px}.side{width:var(--side);gap:var(--sc-7);padding:var(--sc-6) var(--sc-5);border-right:1px solid var(--sc-hairline);background:color-mix(in oklab, var(--sc-canvas) 86%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:var(--sc-z-chrome);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0}.side__mark img{width:auto;height:44px;display:block}.side__nav{gap:var(--sc-1);margin:0;padding:0;list-style:none;display:grid}.side__nav a{padding:var(--sc-2) var(--sc-3);border-radius:var(--sc-r-sm);color:var(--sc-ink-soft);font-size:var(--sc-t-sm);transition:color var(--sc-d-fast) var(--sc-ease-out), background-color var(--sc-d-fast) var(--sc-ease-out);text-decoration:none;display:block}.side__nav a[aria-current=true]{color:var(--sc-ink);background:var(--sc-surface);box-shadow:var(--sc-edge)}@media (hover:hover) and (pointer:fine){.side__nav a:hover{color:var(--sc-ink)}}.side__foot{gap:var(--sc-3);font-size:var(--sc-t-xs);margin-top:auto;display:grid}.side__lang{color:var(--sc-ink-soft)}.status{color:var(--sc-ink-soft);align-items:center;gap:var(--sc-2);margin:0;display:flex}.status .dot{background:var(--sc-ink-soft);border-radius:50%;flex:none;width:7px;height:7px}.status.is-on .dot{background:#6fd39a}.status.is-off .dot{background:#e0775c}.main{margin-left:var(--side)}.side__cta{display:none}@media (width<=860px){:root{--side:0px;--bar:3.25rem}.side{width:auto;height:var(--bar);align-items:center;gap:var(--sc-4);padding:0 var(--sc-4);border-right:0;border-bottom:1px solid var(--sc-hairline);flex-direction:row;inset:0 0 auto}.side__mark img{height:30px}.side nav{scrollbar-width:none;flex:1;min-width:0;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 2rem),#0000)}.side .side__cta{min-height:36px;padding:0 var(--sc-4);flex:none;align-items:center;text-decoration:none;display:inline-flex}.side__nav{white-space:nowrap;gap:0;display:flex}.side__nav a{padding:var(--sc-3);align-items:center;min-height:44px;display:flex}.side__foot{display:none}.main{padding-top:var(--bar)}}.panel{position:relative}.panel__crumb{margin:0 0 var(--sc-4);font-size:var(--sc-t-xs);color:var(--sc-ink-soft)}.panel__title{font-family:var(--sc-font-display);font-weight:600;font-size:var(--sc-t-xl);line-height:var(--sc-leading-tight);letter-spacing:var(--sc-track-snug);margin:0 0 var(--sc-3);text-wrap:balance}.pane{background:var(--sc-surface);border:1px solid var(--sc-hairline);border-radius:var(--sc-r-md);box-shadow:var(--sc-edge), var(--sc-e1);padding:var(--sc-5);min-width:0}.pane__label{margin:0 0 var(--sc-3);font-size:var(--sc-t-xs);color:var(--sc-ink-soft);justify-content:space-between;gap:var(--sc-3);font-weight:500;display:flex}.btn{font:600 var(--sc-t-sm)/1 var(--sc-font-text);white-space:nowrap;background:var(--sc-accent);color:var(--sc-accent-ink);border-radius:var(--sc-r-sm);padding:0 var(--sc-5);cursor:pointer;min-height:44px;transition:transform .12s var(--sc-ease-out), filter var(--sc-d-fast) var(--sc-ease-out);border:0}@media (hover:hover) and (pointer:fine){.btn:hover{filter:brightness(1.08)}}.btn:disabled{opacity:.5;cursor:not-allowed}.btn[aria-busy=true]{cursor:progress}input,textarea{font:inherit;font-size:var(--sc-t-base);color:var(--sc-ink);caret-color:var(--sc-accent);background:var(--sc-canvas);border:1px solid var(--sc-hairline-strong);border-radius:var(--sc-r-sm);padding:var(--sc-3);width:100%;min-height:44px}input::placeholder,textarea::placeholder{color:color-mix(in oklab, var(--sc-ink-soft) 80%, transparent)}input[type=file]{padding:var(--sc-2);font-size:var(--sc-t-sm)}input[type=file]::file-selector-button{font:inherit;margin-right:var(--sc-3);border:1px solid var(--sc-hairline-strong);background:var(--sc-surface);color:var(--sc-ink);border-radius:var(--sc-r-sm);padding:var(--sc-2) var(--sc-3);cursor:pointer}.panel--ask{min-height:calc(100svh - var(--bar));align-items:center;display:flex}.ask{max-width:52rem}.ask__title{font-family:var(--sc-font-display);margin:0 0 var(--sc-4);font-weight:600;font-size:var(--sc-t-2xl);line-height:var(--sc-leading-tight);letter-spacing:var(--sc-track-tight);text-wrap:balance;max-width:22ch}.ask__lede{margin:0 0 var(--sc-7);color:var(--sc-ink-soft);font-size:var(--sc-t-lg);max-width:46ch;line-height:1.45}.console{align-items:center;gap:var(--sc-3);background:var(--sc-surface);border:1px solid var(--sc-hairline-strong);border-radius:var(--sc-r-md);padding:var(--sc-2) var(--sc-2) var(--sc-2) var(--sc-4);box-shadow:var(--sc-edge), var(--sc-e2);display:flex}.console:focus-within{border-color:color-mix(in oklab, var(--sc-accent) 60%, transparent)}.console input{padding:var(--sc-2) 0;background:0 0;border:0}.console input:focus-visible{outline:none}.console__prompt{color:var(--sc-accent)}.chips{gap:var(--sc-2);margin:var(--sc-4) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.chips button{font:inherit;font-size:var(--sc-t-sm);color:var(--sc-ink-soft);border:1px solid var(--sc-hairline-strong);border-radius:var(--sc-r-sm);padding:var(--sc-2) var(--sc-3);cursor:pointer;min-height:40px;transition:color var(--sc-d-fast) var(--sc-ease-out), border-color var(--sc-d-fast) var(--sc-ease-out);background:0 0}@media (hover:hover) and (pointer:fine){.chips button:hover{color:var(--sc-ink);border-color:var(--sc-ink-soft)}}.chips button:active{transform:translateY(1px)}.answer{margin-top:var(--sc-6);max-width:var(--sc-measure)}.answer__empty{color:var(--sc-ink-soft);font-size:var(--sc-t-sm);margin:0}.ask__pilot{margin:var(--sc-5) 0 0;color:var(--sc-ink-soft);font-size:var(--sc-t-sm)}.ask__pilot a{color:var(--sc-ink)}.answer__text{white-space:pre-wrap;line-height:var(--sc-leading-body);margin:0 0 var(--sc-4)}.answer__text.is-streaming:after{content:"";background:var(--sc-accent);vertical-align:-.15em;width:.5em;height:1em;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}.answer__err{color:#f0a08c;margin:0}.sources{gap:var(--sc-2);font-size:var(--sc-t-sm);color:var(--sc-ink-soft);margin:0;padding:0;list-style:none;display:grid}.sources li,.answer__text{overflow-wrap:anywhere;min-width:0}.sources b{color:var(--sc-accent);font-family:var(--sc-font-mono);margin-right:var(--sc-2);font-weight:500}@keyframes blink{50%{opacity:0}}.pipe{gap:var(--sc-4);padding:calc(var(--bar) + var(--sc-6)) var(--sc-gutter) var(--sc-5);flex-direction:column;display:flex}.pipe__head{justify-content:space-between;align-items:end;gap:var(--sc-5);flex-wrap:wrap;display:flex}.pipe__head .panel__title{margin:0}.steps{gap:var(--sc-1);font-size:var(--sc-t-xs);margin:0;padding:0;list-style:none;display:flex}.steps li{padding:var(--sc-2) var(--sc-3);border:1px solid var(--sc-hairline);border-radius:var(--sc-r-sm);color:var(--sc-ink-soft);transition:color .16s var(--sc-ease-out), border-color .16s var(--sc-ease-out)}.steps li.is-on{color:var(--sc-ink);border-color:var(--sc-ink-soft)}.steps li.is-now{color:var(--sc-accent-ink);background:var(--sc-accent);border-color:var(--sc-accent)}.pipe__grid{gap:var(--sc-4);flex:1;grid-template-columns:1.25fr 1fr .95fr;min-height:0;display:grid}.pipe__grid .pane{padding:var(--sc-4);flex-direction:column;display:flex;overflow:hidden}.src{color:var(--sc-ink-soft);scrollbar-width:thin;gap:6px;margin:0;padding:0;font-size:.8rem;line-height:1.42;list-style:none;display:grid;overflow:auto}.src li{padding:var(--sc-1) var(--sc-2) var(--sc-1) var(--sc-7);border-radius:var(--sc-r-sm);transition:background-color .2s var(--sc-ease-out), border-color .2s var(--sc-ease-out), color .2s var(--sc-ease-out);border:1px solid #0000;position:relative}.src li b{color:var(--sc-ink);font-weight:600}.src li:before{content:attr(data-tag);left:var(--sc-2);top:var(--sc-1);font:500 .72rem/1.6 var(--sc-font-mono);color:var(--sc-ink-soft);opacity:0;transition:opacity .2s var(--sc-ease-out);position:absolute}.src li.is-chunked{border-color:var(--sc-hairline)}.src li.is-chunked:before{opacity:1}.src li.is-hit{background:var(--hit);border-color:color-mix(in oklab, var(--sc-accent) 55%, transparent);color:var(--sc-ink)}.src li.is-hit:before{color:var(--sc-accent)}.src__score{display:none}.idx{gap:var(--sc-2);font-family:var(--sc-font-mono);color:var(--sc-ink-soft);margin:0;padding:0;font-size:.72rem;list-style:none;display:grid}.idx li{align-items:center;gap:var(--sc-2);opacity:0;transition:opacity .2s var(--sc-ease-out), transform .2s var(--sc-ease-out);grid-template-columns:2.4rem 1fr 3.2rem;display:grid;transform:translateY(4px)}.idx li.is-in{opacity:1;transform:none}.idx li.is-hit{color:var(--sc-accent)}.idx__score{text-align:right;font-variant-numeric:tabular-nums}.vec{grid-template-columns:repeat(32,1fr);gap:1px;height:14px;display:grid}.vec i{background:var(--sc-accent);opacity:.06;transition:opacity .24s var(--sc-ease-out);border-radius:1px}.vec--query{height:18px;margin:var(--sc-3) 0 var(--sc-5)}.query{min-height:3em;color:var(--sc-ink);margin:0;font-size:.9rem}.caret{background:var(--sc-accent);vertical-align:-.18em;width:.55em;height:1.05em;margin-left:1px;animation:1s step-end infinite blink;display:inline-block}.hits{gap:var(--sc-2);font-size:var(--sc-t-sm);margin:0;padding:0;list-style:none;display:grid}.hits li{gap:var(--sc-3);grid-template-columns:auto 1fr auto;align-items:baseline;display:grid}.hits b{font-family:var(--sc-font-mono);color:var(--sc-accent);font-weight:500}.hits span:last-child{font-family:var(--sc-font-mono);font-variant-numeric:tabular-nums;color:var(--sc-ink-soft)}.hits__empty{color:var(--sc-ink-soft);display:block!important}.pipe__next{padding-top:var(--sc-4);font-size:var(--sc-t-sm);color:var(--sc-ink);opacity:0;transition:opacity .24s var(--sc-ease-out);margin:auto 0 0}.pipe__next.is-on{opacity:1}.pipe__note{font-size:var(--sc-t-xs);color:var(--sc-ink-soft);max-width:110ch;margin:0}@media (width<=1100px){.pipe__grid{grid-template-columns:1.2fr 1fr}.pane--index{display:none!important}.src__score{margin-left:var(--sc-2);font:500 .72rem var(--sc-font-mono);color:var(--sc-accent);display:inline}}@media (width<=860px){.pipe{padding-top:calc(var(--bar) + var(--sc-4));gap:var(--sc-3)}.pipe__grid{grid-template-rows:1fr auto;grid-template-columns:1fr}.src{grid-auto-rows:max-content;gap:2px;font-size:.74rem}.src li{-webkit-line-clamp:2;padding-left:var(--sc-6);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.pane--query .pane__label:nth-of-type(2),.vec--query{display:none}.query{min-height:0;margin-bottom:var(--sc-2);font-size:.8rem}.pipe__next{padding-top:var(--sc-2)}.pipe__note{display:none}}.plat{--at:calc(var(--sc-p,0) * (var(--n) - .6));justify-content:center;gap:var(--sc-6);padding:calc(var(--bar) + var(--sc-6)) 0 var(--sc-6);flex-direction:column;display:flex;overflow:hidden}.plat__bg{pointer-events:none;width:140%;height:120%;transform:translate3d(calc(var(--sc-p,0) * 12%), 0, 0);position:absolute;inset:-10% -20%}.bg-line{fill:none;stroke:var(--sc-ink-soft);stroke-width:1.2px;opacity:.08}.bg-line--flow{stroke:var(--sc-accent);opacity:.22;stroke-dasharray:2 18;animation:6s linear infinite dash;animation-delay:var(--d)}.plat__rail{align-items:stretch;gap:var(--sc-5);padding-left:var(--sc-gutter);position:relative}.plat__rail:after{content:"";flex:0 0 calc(var(--side) + var(--sc-gutter) - var(--sc-5))}.plat__item h3{overflow-wrap:anywhere}.plat__lead{padding-right:var(--sc-7);flex:0 0 min(30rem,84vw);align-self:center}.plat__lead .sc-body{color:var(--sc-ink);font-size:var(--sc-t-lg);line-height:1.5}.plat__item{--near:clamp(0, calc(1 - (var(--i) - var(--at)) * .5), 1);background:var(--sc-surface);border:1px solid var(--sc-hairline);border-radius:var(--sc-r-md);min-height:min(34rem,68svh);box-shadow:var(--sc-edge), var(--sc-e1);opacity:calc(.45 + var(--near) * .55);transform:translate3d(0, calc((1 - var(--near)) * 28px), 0);flex-direction:column;flex:0 0 clamp(18rem,27vw,24rem);display:flex;overflow:hidden}.plat__art{background:var(--sc-canvas);flex:45%;min-height:9rem;position:relative;overflow:hidden}.plat__art svg{width:124%;height:100%;transform:translate3d(calc((var(--i) - var(--at)) * 4%), 0, 0) scale(calc(1 + var(--near) * .06));position:absolute;inset:0 -12%}.plat__copy{padding:var(--sc-5) var(--sc-5) var(--sc-6);gap:var(--sc-3);display:grid}.plat__item h3{font-size:var(--sc-t-lg);letter-spacing:var(--sc-track-snug);text-wrap:balance;margin:0;font-weight:600;line-height:1.2}.plat__item p{color:var(--sc-ink-soft);font-size:var(--sc-t-sm);margin:0;line-height:1.55}.plat__kind{font-size:var(--sc-t-xs);font-weight:600;color:var(--sc-accent)!important}.plat__names{margin:var(--sc-1) 0 0;gap:var(--sc-2);font-size:var(--sc-t-xs);flex-wrap:wrap;padding:0;list-style:none;display:flex}.plat__names li{padding:2px var(--sc-2);border-radius:var(--sc-r-sm);background:var(--pane);color:var(--sc-ink)}.plat__flow{padding:0 var(--sc-gutter);gap:var(--sc-2) var(--sc-3);font-size:var(--sc-t-sm);flex-wrap:wrap;margin:0;list-style:none;display:flex;position:relative}.plat__flow li{--lit:clamp(0, calc(1 - (var(--i) - var(--at)) * 1.5), 1);align-items:center;gap:var(--sc-3);color:var(--sc-ink-soft);opacity:calc(.5 + var(--lit) * .5);display:flex}.plat__flow li:not(:last-child):after{content:"→";color:var(--sc-accent);opacity:var(--lit)}.plat__flow li:before{content:"";background:var(--sc-accent);width:8px;height:8px;transform:scale(var(--lit));transition:transform .16s var(--sc-ease-out);border-radius:50%}.plat__art .art-soft{fill:var(--sc-ink-soft);opacity:.22}.plat__art .art-hot{fill:var(--sc-accent);opacity:.85}.plat__art .art-line{fill:var(--sc-ink-soft);opacity:.3}.plat__art .art-rack{fill:var(--sc-surface);stroke:var(--sc-hairline-strong)}.plat__art .art-edge{fill:none;stroke:var(--sc-ink-soft);stroke-width:1px;opacity:.18}.plat__art .art-flow{fill:none;stroke:var(--sc-accent);stroke-width:1.6px;stroke-dasharray:4 10;animation:1.6s linear infinite dash}.plat__art .art-node{fill:var(--sc-surface);stroke:var(--sc-accent);stroke-width:1.5px;animation:2.4s ease-in-out infinite pulse;animation-delay:var(--d)}.plat__art .art-led{fill:#6fd39a;animation:2.6s step-end infinite blink-led;animation-delay:var(--d)}.plat__art .art-led--b{fill:var(--sc-accent);animation-duration:3.4s}.plat__art .art-scan{fill:var(--hit);animation:scan 4.2s var(--sc-ease-out) infinite}.plat__art .art-belt{animation:5s linear infinite belt}.plat__art .art-step{fill:var(--hit);stroke:var(--sc-accent);opacity:0;animation:3s step-end infinite step;animation-delay:var(--d)}@keyframes dash{to{stroke-dashoffset:-140px}}@keyframes pulse{50%{fill:var(--sc-accent)}}@keyframes blink-led{0%,62%{opacity:1}63%,78%{opacity:.15}}@keyframes scan{0%{transform:translateY(0)}to{transform:translateY(144px)}}@keyframes belt{to{transform:translate(320px)}}@keyframes step{0%,16%{opacity:1}17%,to{opacity:0}}@media (width<=860px){.plat{gap:var(--sc-4);padding-top:calc(var(--bar) + var(--sc-4))}.plat__lead{padding-right:var(--sc-4);flex-basis:82vw}.plat__lead .sc-body{font-size:var(--sc-t-base)}.plat__item{flex-basis:78vw;min-height:min(30rem,66svh)}.plat__flow{font-size:var(--sc-t-xs);transform:translate3d(calc(var(--at) * -16vw), 0, 0);flex-wrap:nowrap}.plat__flow li{flex:none}.plat__flow li:not(:last-child):after{display:none}}.commerce__intro{margin-bottom:var(--sc-6)}.commerce{gap:var(--sc-4);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;display:grid}.order{color:var(--sc-ink-soft);white-space:pre-wrap;word-break:break-word;margin:0;font-size:.78rem;line-height:1.6}.order .k{color:var(--sc-ink)}.log{gap:var(--sc-3);margin:0;padding:0;font-size:.8rem;line-height:1.55;list-style:none;display:grid}.log li{gap:var(--sc-3);grid-template-columns:6.5rem 1fr;display:grid}.log .tag{color:var(--sc-ink-soft)}.log .tag--model{color:var(--sc-accent)}.log .tag--ok{color:#8fdcae}.log .tag--err{color:#f0a08c}@media (width<=860px){.commerce{grid-template-columns:1fr}.log li{grid-template-columns:1fr;gap:0}}.help{gap:var(--sc-9);grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start;display:grid}.services{margin:var(--sc-5) 0 0;gap:var(--sc-5);display:grid}.services dt{margin-bottom:var(--sc-1);font-weight:600}.services dd{color:var(--sc-ink-soft);max-width:52ch;margin:0;line-height:1.55}.faq details{border-top:1px solid var(--sc-hairline)}.faq details:last-child{border-bottom:1px solid var(--sc-hairline)}.faq summary{cursor:pointer;padding:var(--sc-4) 0;justify-content:space-between;gap:var(--sc-4);font-weight:500;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";font-family:var(--sc-font-mono);color:var(--sc-ink-soft)}.faq details[open] summary:after{content:"−"}.faq details p{margin:0 0 var(--sc-4);color:var(--sc-ink-soft);max-width:62ch;line-height:1.6}.close{gap:var(--sc-4);margin-top:var(--sc-10);grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;display:grid}.close .pane{padding:var(--sc-6);scroll-margin-top:calc(var(--bar) + var(--sc-4))}.close .sc-body{margin-bottom:var(--sc-5)}.doc{gap:var(--sc-4);display:grid}.field{gap:var(--sc-2);display:grid}.field__label{font-size:var(--sc-t-xs);color:var(--sc-ink-soft);font-weight:500}.doc .btn{justify-self:start}.doc__log{margin-top:var(--sc-5)}.doc__log:empty{display:none}.doc__log li{grid-template-columns:5rem 1fr}.console--doc{margin-top:var(--sc-5)}.form__status{font-size:var(--sc-t-sm);margin:0}.form__status.success{color:#8fdcae}.form__status.error{color:#f0a08c}.turnstile:empty{display:none}.foot{justify-content:space-between;gap:var(--sc-3);padding-top:var(--sc-9);font-size:var(--sc-t-sm);color:var(--sc-ink-soft);flex-wrap:wrap;display:flex}.foot p{margin:0}@media (width<=1000px){.help,.close{gap:var(--sc-8);grid-template-columns:1fr}.close{gap:var(--sc-4);margin-top:var(--sc-8)}}@media (prefers-reduced-motion:reduce){.caret,.answer__text.is-streaming:after{animation:none}}html:lang(zh) .ask__title{letter-spacing:0;max-width:none;line-height:1.14}@media (width<=860px){html:lang(zh) .ask__title{font-size:2.1rem}}:root{--sc-t-xs:clamp(.8125rem, .79rem + .1vw, .875rem)}.src{font-size:.85rem}.src li:before,.src__score{font-size:.78rem}.idx{font-size:.8125rem}.order,.log{font-size:.84rem}.ask__title{letter-spacing:-.04em;margin-bottom:var(--sc-5);font-size:clamp(2.4rem,1.5rem + 3vw,4.2rem);line-height:1.02}.ask__lede{color:color-mix(in oklab, var(--sc-ink) 78%, var(--sc-canvas))}.side__nav a{position:relative}.side__nav a[aria-current=true]:before{content:"";background:var(--sc-accent);border-radius:2px;width:2px;position:absolute;top:25%;bottom:25%;left:0}@media (hover:hover) and (pointer:fine){.btn:hover{transform:translateY(-1px)}.plat__item{transition:border-color .2s var(--sc-ease-out)}.plat__item:hover{border-color:color-mix(in oklab, var(--sc-accent) 45%, transparent)}.plat__item:hover .art-flow,.plat__item:hover .bg-line--flow{animation-duration:.8s}.faq summary{transition:color .16s var(--sc-ease-out)}.faq summary:hover{color:var(--sc-accent)}}.btn:active{transform:scale(.97)}.console:focus-within{box-shadow:var(--sc-edge), var(--sc-e2), 0 0 0 3px color-mix(in oklab, var(--sc-accent) 18%, transparent)}@media (prefers-reduced-motion:reduce){.btn:hover{transform:none}.plat__item{opacity:1;transform:none}.plat__art svg,.plat__bg{transform:none}.plat__art *,.bg-line{animation:none!important}.plat__flow li{opacity:1}}
