:root{--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--ease:cubic-bezier(.22, 1, .36, 1);--d-fast:.14s;--d-base:.22s;--d-slow:.6s;--fs-display:clamp(34px, 4.2vw, 54px);--fs-lede:18px;--fs-body:15px;--fs-small:13px;--hairline:.5px;--page:1200px;--gutter:clamp(20px, 5vw, 48px);--nav-h:64px;--canvas:#f2f4f4;--surface:#fff;--well:#f6f7f7;--glass:#f2f4f4c2;--line:#15181a14;--line-strong:#15181a24;--ink:#15181a;--ink-2:#15181a99;--ink-3:#15181a66;--ink-4:#15181a29;--teal:#5e9aa3;--teal-deep:#3f8997;--teal-soft:#5e9aa324;--oak:#c9a77c;--ring:0 0 0 var(--hairline) var(--line-strong);--shadow:var(--ring), 0 24px 48px -28px #141e203d;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--canvas);color:var(--ink);font-family:var(--font);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background:radial-gradient(70vw 70vh at 0% 0%, #5e9aa324, transparent 70%), radial-gradient(50vw 60vh at 100% 6%, #ffffffbf, transparent 70%), radial-gradient(60vw 50vh at 100% 52%, #5e9aa312, transparent 70%), radial-gradient(70vw 60vh at 100% 100%, #dec4a038, transparent 70%), var(--canvas);margin:0;line-height:1.6;overflow-x:hidden}img,svg{max-width:100%;display:block}picture{display:contents}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}::selection{background:var(--teal-soft)}.wrap{width:100%;max-width:calc(var(--page) + var(--gutter) * 2);padding:0 var(--gutter);margin:0 auto}.title{font-size:var(--fs-display);letter-spacing:-.03em;text-wrap:balance;margin:0;font-weight:600;line-height:1.12}:lang(zh) .title{letter-spacing:-.01em;line-height:1.18}.title span{white-space:nowrap}@media (width<=480px){:lang(en) .title span{white-space:normal}}.lede{max-width:32em;color:var(--ink-2);font-size:var(--fs-lede);text-wrap:pretty;margin:20px 0 0;line-height:1.6}.section{padding:clamp(72px,10vw,128px) 0;position:relative}.head{text-align:center}.head .lede{margin-inline:auto}.mono{font-family:var(--font-mono)}.btn{height:46px;font-size:var(--fs-body);cursor:pointer;transition:transform var(--d-fast) var(--ease), box-shadow var(--d-base) var(--ease), background-color var(--d-base) var(--ease);border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:0 22px;font-weight:550;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover{background:#262a2d}.btn-ghost{background:var(--surface);color:var(--ink);box-shadow:var(--ring)}.btn-ghost:hover{background:var(--well)}.btn-sm{height:36px;padding:0 16px}.btn svg{flex:none;width:17px;height:17px}.btn-sm svg{width:15px;height:15px}.js [data-reveal]{opacity:0;transition:opacity .7s var(--ease), transform .7s var(--ease);transition-delay:var(--delay,0s);transform:translateY(12px)}.js [data-reveal].is-in{opacity:1;transform:none}.art{user-select:none;-webkit-user-drag:none;height:auto}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.js [data-reveal]{opacity:1;transform:none}}.nav[data-astro-cid-wpvy4v7s]{z-index:50;height:var(--nav-h);transition:background-color var(--d-base) var(--ease), box-shadow var(--d-base) var(--ease);position:fixed;inset:0 0 auto}.nav[data-astro-cid-wpvy4v7s][data-scrolled]{background:var(--canvas);box-shadow:0 var(--hairline) 0 var(--line-strong)}.bar[data-astro-cid-wpvy4v7s]{justify-content:space-between;align-items:center;height:100%;display:flex}.brand[data-astro-cid-wpvy4v7s]{font-size:var(--fs-body);align-items:center;gap:10px;font-weight:650;display:flex}.brand[data-astro-cid-wpvy4v7s] .icon{width:28px;height:28px;box-shadow:var(--ring);border-radius:7px}.links[data-astro-cid-wpvy4v7s]{align-items:center;gap:4px;display:flex}.link[data-astro-cid-wpvy4v7s]{height:36px;color:var(--ink-2);transition:color var(--d-fast) var(--ease), background-color var(--d-fast) var(--ease);border-radius:999px;align-items:center;gap:7px;padding:0 12px;font-weight:500;display:inline-flex}.link[data-astro-cid-wpvy4v7s]:hover{color:var(--ink);background:#15181a0d}.links[data-astro-cid-wpvy4v7s] .btn[data-astro-cid-wpvy4v7s]{margin-left:6px}@media (width<=560px){.hide-sm[data-astro-cid-wpvy4v7s]{display:none}}.hero[data-astro-cid-ge2uvauf]{min-height:min(100svh,920px);padding:calc(var(--nav-h) + 32px) 0 48px;align-items:center;display:flex;position:relative}.grid[data-astro-cid-ge2uvauf]{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:clamp(16px,3vw,40px);display:grid}.copy[data-astro-cid-ge2uvauf]{z-index:1;position:relative}.actions[data-astro-cid-ge2uvauf]{flex-wrap:wrap;gap:12px;margin-top:36px;display:flex}.stage[data-astro-cid-ge2uvauf]{margin-right:calc(var(--gutter) * -1);position:relative}.stage[data-astro-cid-ge2uvauf] .art{filter:drop-shadow(0 40px 40px #1e32371f);-webkit-mask-composite:source-in;width:100%;mask-image:linear-gradient(90deg,#000 82%,#0000),linear-gradient(#000 84%,#0000);mask-composite:intersect}@media (width<=900px){.hero[data-astro-cid-ge2uvauf]{min-height:0;padding-top:calc(var(--nav-h) + 48px)}.grid[data-astro-cid-ge2uvauf]{grid-template-columns:1fr}.stage[data-astro-cid-ge2uvauf]{max-width:640px;margin:24px auto 0}}.board[data-astro-cid-gemfbn6y]{grid-template-columns:260fr 160fr 260fr 160fr 260fr;align-items:center;max-width:1100px;margin:clamp(40px,6vw,72px) auto 0;display:grid;position:relative}.wires[data-astro-cid-gemfbn6y]{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.wires[data-astro-cid-gemfbn6y] path{fill:none;stroke:#15181a2e;stroke-width:1px;vector-effect:non-scaling-stroke}ul[data-astro-cid-gemfbn6y]{margin:0;padding:0;list-style:none}.card[data-astro-cid-gemfbn6y]{background:var(--surface);box-shadow:var(--shadow);border-radius:18px;position:relative}.sources[data-astro-cid-gemfbn6y]{grid-column:1;padding:8px;display:grid}.sources[data-astro-cid-gemfbn6y] li[data-astro-cid-gemfbn6y]{white-space:nowrap;border-radius:10px;align-items:center;gap:12px;height:64px;padding:0 12px;font-weight:550;display:flex}.glyph[data-astro-cid-gemfbn6y]{background:var(--well);width:32px;height:32px;box-shadow:var(--ring);color:var(--ink);border-radius:9px;place-items:center;display:grid}.library[data-astro-cid-gemfbn6y]{grid-column:3;padding:8px}.lib-head[data-astro-cid-gemfbn6y]{align-items:center;gap:10px;padding:12px 12px 10px;font-weight:650;display:flex}.lib-head[data-astro-cid-gemfbn6y] .icon{width:24px;height:24px;box-shadow:var(--ring);border-radius:6px}.library[data-astro-cid-gemfbn6y] .skill[data-astro-cid-gemfbn6y]{border-radius:10px;height:48px;padding:0 12px}.library[data-astro-cid-gemfbn6y] .skill[data-astro-cid-gemfbn6y]+.skill[data-astro-cid-gemfbn6y]{box-shadow:0 calc(var(--hairline) * -1) 0 var(--line)}.skill[data-astro-cid-gemfbn6y]{font-size:var(--fs-small);white-space:nowrap;align-items:center;gap:10px;display:flex}.skill[data-astro-cid-gemfbn6y] i[data-astro-cid-gemfbn6y]{border-radius:50%;flex:none;width:8px;height:8px}.targets[data-astro-cid-gemfbn6y]{grid-column:5;gap:30px;display:grid}.target[data-astro-cid-gemfbn6y]{padding:14px 16px 12px}.t-name[data-astro-cid-gemfbn6y]{margin-bottom:6px;font-weight:600}.target[data-astro-cid-gemfbn6y] .skill[data-astro-cid-gemfbn6y]{height:28px;color:var(--ink-2)}@media (width<=900px){.board[data-astro-cid-gemfbn6y]{grid-template-columns:1fr;gap:20px;max-width:420px}.wires[data-astro-cid-gemfbn6y]{display:none}.sources[data-astro-cid-gemfbn6y],.library[data-astro-cid-gemfbn6y],.targets[data-astro-cid-gemfbn6y]{grid-column:1}.sources[data-astro-cid-gemfbn6y]{grid-template-columns:1fr 1fr}.sources[data-astro-cid-gemfbn6y] li[data-astro-cid-gemfbn6y]{height:52px}.targets[data-astro-cid-gemfbn6y]{gap:12px}}.shots[data-astro-cid-xftgjkdt]{padding-bottom:clamp(24px,4vw,48px)}.seg[data-astro-cid-xftgjkdt]{background:#15181a0d;border-radius:999px;gap:2px;width:max-content;margin:0 auto;padding:4px;display:flex}.seg[data-astro-cid-xftgjkdt] button[data-astro-cid-xftgjkdt]{height:34px;color:var(--ink-2);cursor:pointer;transition:background-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease);background:0 0;border:0;border-radius:999px;padding:0 18px;font-weight:550}.seg[data-astro-cid-xftgjkdt] button[data-astro-cid-xftgjkdt]:hover{color:var(--ink)}.seg[data-astro-cid-xftgjkdt] button[data-astro-cid-xftgjkdt][aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:var(--ring)}.frame[data-astro-cid-xftgjkdt]{max-width:1160px;margin:20px auto 0;display:grid}.frame[data-astro-cid-xftgjkdt] .shot{opacity:0;width:100%;height:auto;transition:opacity .36s var(--ease);grid-area:1/1}.frame[data-astro-cid-xftgjkdt] .shot.on{opacity:1}.scene[data-astro-cid-xggvhucr]{aspect-ratio:1672/941;max-width:1100px;margin:clamp(40px,6vw,72px) auto 0;position:relative}.scene[data-astro-cid-xggvhucr] .art{filter:drop-shadow(0 30px 36px #1e32371f);width:100%;height:100%;position:absolute;inset:0}.grid[data-astro-cid-oc5ti4rr]{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:clamp(32px,6vw,88px);display:grid}.otter[data-astro-cid-oc5ti4rr]{width:min(380px,80%);margin-top:32px}.otter[data-astro-cid-oc5ti4rr] .art{filter:drop-shadow(0 30px 30px #1e32371f);width:100%}.panel[data-astro-cid-oc5ti4rr]{background:var(--surface);box-shadow:var(--shadow);border-radius:20px;padding:8px}.proj[data-astro-cid-oc5ti4rr]{padding:14px 16px 10px;font-weight:600}ul[data-astro-cid-oc5ti4rr]{margin:0;padding:0;list-style:none}li[data-astro-cid-oc5ti4rr]{height:52px;transition:background-color var(--d-fast) var(--ease);border-radius:12px;grid-template-columns:20px 8.5em 5.5em minmax(0,1fr) 3.6em;align-items:center;gap:14px;padding:0 16px;display:grid}li[data-astro-cid-oc5ti4rr]:hover{background:var(--well)}.name[data-astro-cid-oc5ti4rr]{white-space:nowrap;font-weight:550}.count[data-astro-cid-oc5ti4rr],.tok[data-astro-cid-oc5ti4rr]{color:var(--ink-3);font-size:var(--fs-small);white-space:nowrap;font-variant-numeric:tabular-nums}.tok[data-astro-cid-oc5ti4rr]{text-align:right}.tok[data-astro-cid-oc5ti4rr].heavy{color:#b57a00}.bar[data-astro-cid-oc5ti4rr]{background:#15181a0f;border-radius:2px;height:4px}.bar[data-astro-cid-oc5ti4rr] i[data-astro-cid-oc5ti4rr]{border-radius:inherit;background:var(--teal);height:100%;display:block}li[data-astro-cid-oc5ti4rr]:has(.heavy) .bar[data-astro-cid-oc5ti4rr] i[data-astro-cid-oc5ti4rr]{background:#e0a000}@media (width<=900px){.grid[data-astro-cid-oc5ti4rr]{grid-template-columns:1fr}.otter[data-astro-cid-oc5ti4rr]{display:none}}@media (width<=560px){li[data-astro-cid-oc5ti4rr]{grid-template-columns:20px minmax(0,1fr) auto 3.6em;gap:12px;padding:0 12px}.bar[data-astro-cid-oc5ti4rr]{display:none}}.stage[data-astro-cid-datex7gl]{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:clamp(8px,2vw,24px);max-width:1080px;margin:clamp(40px,6vw,72px) auto 0;display:grid}.otter[data-astro-cid-datex7gl] .art{filter:drop-shadow(0 30px 30px #1e32371f);width:100%}.paper[data-astro-cid-datex7gl]{background:var(--surface);box-shadow:var(--shadow);border-radius:20px;padding:24px}.name[data-astro-cid-datex7gl]{font-weight:600}.chips[data-astro-cid-datex7gl]{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.chip[data-astro-cid-datex7gl]{background:var(--well);height:30px;box-shadow:var(--ring);font-size:var(--fs-small);border-radius:999px;align-items:center;padding:0 12px;display:inline-flex}ul[data-astro-cid-datex7gl]{color:var(--ink-2);margin:22px 0 0;padding:0;line-height:2;list-style:none}@media (width<=900px){.stage[data-astro-cid-datex7gl]{grid-template-columns:1fr}.otter[data-astro-cid-datex7gl]{max-width:520px;margin:0 auto}}.inline[data-astro-cid-24tx6ewc]{white-space:nowrap;color:var(--teal-deep);text-underline-offset:4px;transition:text-decoration-color var(--d-fast) var(--ease);text-decoration:underline #3f899759}.inline[data-astro-cid-24tx6ewc]:hover{text-decoration-color:currentColor}.arc[data-astro-cid-24tx6ewc]{aspect-ratio:1200/620;max-width:1100px;margin:clamp(32px,5vw,56px) auto 0;position:relative}.wires[data-astro-cid-24tx6ewc]{width:100%;height:100%;position:absolute;inset:0}.wire[data-astro-cid-24tx6ewc]{fill:none;stroke:#15181a29;stroke-width:1px;vector-effect:non-scaling-stroke}.case[data-astro-cid-24tx6ewc]{width:40%;position:absolute;bottom:0;left:50%;translate:-50%}.case[data-astro-cid-24tx6ewc] .art{filter:drop-shadow(0 30px 30px #1e323724);width:100%}.tile[data-astro-cid-24tx6ewc]{background:var(--surface);height:48px;box-shadow:var(--shadow);white-space:nowrap;border-radius:14px;align-items:center;gap:10px;padding:0 18px 0 14px;font-weight:550;display:flex;position:absolute;translate:-50% -50%}.tile[data-astro-cid-24tx6ewc] img[data-astro-cid-24tx6ewc]{width:20px;height:20px}.more[data-astro-cid-24tx6ewc]{flex-wrap:wrap;justify-content:center;gap:8px;max-width:860px;margin:40px auto 0;display:flex}.chip[data-astro-cid-24tx6ewc]{height:34px;box-shadow:var(--ring);color:var(--ink-2);font-size:var(--fs-small);border-radius:999px;align-items:center;gap:8px;padding:0 12px 0 10px;font-weight:500;display:inline-flex}.chip[data-astro-cid-24tx6ewc] img[data-astro-cid-24tx6ewc]{width:16px;height:16px}.add[data-astro-cid-24tx6ewc]{color:var(--ink-3);transition:color var(--d-fast) var(--ease), background-color var(--d-fast) var(--ease)}.add[data-astro-cid-24tx6ewc]:hover{color:var(--ink);background:var(--surface)}@media (width<=900px){.arc[data-astro-cid-24tx6ewc]{aspect-ratio:auto;flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.wires[data-astro-cid-24tx6ewc]{display:none}.case[data-astro-cid-24tx6ewc]{order:2;width:min(420px,80%);margin-top:24px;position:static;translate:none}.tile[data-astro-cid-24tx6ewc]{height:44px;position:static;translate:none}.more[data-astro-cid-24tx6ewc]{margin-top:24px}}.open[data-astro-cid-rjh4wzl3]{padding-top:clamp(72px,10vw,120px)}.otter[data-astro-cid-rjh4wzl3]{width:min(440px,76%);margin:0 auto 40px}.otter[data-astro-cid-rjh4wzl3] .art{filter:drop-shadow(0 30px 30px #1e32371f);width:100%}.actions[data-astro-cid-rjh4wzl3]{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:32px;display:flex}.foot[data-astro-cid-jo6i4kqk]{border-top:var(--hairline) solid var(--line-strong);padding:28px 0 40px}.bar[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.brand[data-astro-cid-jo6i4kqk]{align-items:center;gap:8px;font-weight:600;display:flex}.brand[data-astro-cid-jo6i4kqk] .icon{border-radius:6px;width:22px;height:22px}.links[data-astro-cid-jo6i4kqk]{color:var(--ink-3);font-size:var(--fs-small);gap:24px;display:flex}.links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--ink)}
