:root{--bg:#f7f7f4;--surface:#fff;--surface-2:#f0f1ed;--surface-3:#e7e9e2;--border:#d7dad1;--border-strong:#858b7e;--text:#262a23;--text-2:#5d6557;--text-3:#697061;--accent:#8b502d;--accent-hover:#704024;--accent-text:#fff;--accent-soft:#fff3db;--accent-ink:#5a3d25;--focus:#8b502d;--success:#22663f;--success-soft:#eaf5ed;--warning:#79520e;--warning-soft:#fff3d2;--danger:#a3343d;--danger-hover:#862a32;--danger-soft:#fbecef;--danger-text:#fff;--info:#345b7d;--info-soft:#ecf3f9;--internal:#7a3fb0;--chart-1:#2557c7;--chart-grid:#e8e8e8;--shadow:0 2px 8px #0000001f;--overlay:#191d1766;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#181c18;--surface:#222722;--surface-2:#2c322b;--surface-3:#353d33;--border:#485145;--border-strong:#818b7b;--text:#f0f2eb;--text-2:#b8c0b0;--text-3:#acb5a4;--accent:#e9bb8e;--accent-hover:#f0ceaa;--accent-text:#39251a;--accent-soft:#3b3026;--accent-ink:#f5d7b4;--focus:#e9bb8e;--success:#a8dab6;--success-soft:#253b2c;--warning:#eed296;--warning-soft:#3b3321;--danger:#f6b6bd;--danger-hover:#fbcdd2;--danger-soft:#432b30;--danger-text:#3a1a1e;--info:#b4d5ee;--info-soft:#293947;--internal:#b88ae6;--chart-1:#6d9bff;--chart-grid:#353d33;--shadow:0 2px 10px #00000080;--overlay:#0000009e;color-scheme:dark}}:root[data-theme=dark]{--bg:#181c18;--surface:#222722;--surface-2:#2c322b;--surface-3:#353d33;--border:#485145;--border-strong:#818b7b;--text:#f0f2eb;--text-2:#b8c0b0;--text-3:#acb5a4;--accent:#e9bb8e;--accent-hover:#f0ceaa;--accent-text:#39251a;--accent-soft:#3b3026;--accent-ink:#f5d7b4;--focus:#e9bb8e;--success:#a8dab6;--success-soft:#253b2c;--warning:#eed296;--warning-soft:#3b3321;--danger:#f6b6bd;--danger-hover:#fbcdd2;--danger-soft:#432b30;--danger-text:#3a1a1e;--info:#b4d5ee;--info-soft:#293947;--internal:#b88ae6;--chart-1:#6d9bff;--chart-grid:#353d33;--shadow:0 2px 10px #00000080;--overlay:#0000009e;color-scheme:dark}.logo-dark{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .logo-light{display:none}:root:not([data-theme=light]) .logo-dark{display:inline}}:root[data-theme=dark] .logo-light{display:none}:root[data-theme=dark] .logo-dark{display:inline}:root{--font:"Segoe UI", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;--mono:"Cascadia Mono", "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:28px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--radius:2px;--control-h:32px;--control-h-sm:24px;--row-h:34px;--topbar-h:48px;--nav-w:216px;--t-fast:80ms}:root:lang(en){--font:"Segoe UI", -apple-system, BlinkMacSystemFont, "Noto Sans", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0}body{background:var(--surface);color:var(--text);font:400 var(--fs-md)/1.5 var(--font);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.3}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.ic{vertical-align:-3px;flex:none;width:16px;height:16px}.mono{font-family:var(--mono)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{height:var(--control-h);padding:0 var(--sp-3);min-width:72px;font:600 var(--fs-sm)/1 var(--font);white-space:nowrap;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast);justify-content:center;align-items:center;gap:6px;display:inline-flex}.btn:hover{background:var(--surface-3);text-decoration:none}.btn-primary{color:var(--accent-text);background:var(--accent);border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-lg{height:var(--control-h-lg);padding:0 var(--sp-4);font-size:var(--fs-md)}.btn-sm{height:var(--control-h-sm);padding:0 var(--sp-2);min-width:0;font-weight:400}.icon-btn{width:32px;height:32px;color:var(--text-2);border-radius:var(--radius);cursor:pointer;font:600 var(--fs-xs)/1 var(--font);transition:background var(--t-fast);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--surface-3);color:var(--text);text-decoration:none}.icon-btn[disabled]{color:var(--text-3);cursor:not-allowed;opacity:.6;background:0 0}.menu{position:relative}.menu>summary{cursor:pointer;list-style:none}.menu>summary::-webkit-details-marker{display:none}.menu-pop{z-index:30;background:var(--surface);border:1px solid var(--border);min-width:240px;box-shadow:var(--shadow);padding:var(--sp-1) 0;position:absolute;top:calc(100% + 4px);left:0}.menu-pop.right{left:auto;right:0}.menu-pop .mi{align-items:center;gap:var(--sp-2);width:100%;padding:6px var(--sp-3);color:var(--text);font:400 var(--fs-sm)/1.45 var(--font);text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.menu-pop .mi:hover{background:var(--surface-3);text-decoration:none}.menu-pop .mi[aria-pressed=true]{font-weight:600}.menu-pop .mh{padding:6px var(--sp-3) 2px;font-size:var(--fs-xs);color:var(--text-2)}.menu-pop hr{border:0;border-top:1px solid var(--border);margin:var(--sp-1) 0}.badge{height:20px;font-size:var(--fs-xs);border-radius:var(--radius);white-space:nowrap;border:1px solid #0000;align-items:center;gap:4px;padding:0 6px;font-weight:600;line-height:1;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge.plain:before{display:none}.b-neutral{color:var(--text-2);background:var(--surface-3)}.b-info{color:var(--info);background:var(--info-soft)}:root{--fs-3xl:36px;--site-w:1200px;--gutter:32px;--band-y:56px;--control-h-lg:40px;--card-media-ratio:2 / 1;--lang-hint-h:36px}@media (width<=1099px){:root{--gutter:24px;--band-y:40px}}@media (width<=720px){:root{--gutter:16px;--band-y:32px;--lang-hint-h:44px}}.wrap{max-width:calc(var(--site-w) + 2 * var(--gutter));padding:0 var(--gutter);margin:0 auto}.band{padding:var(--band-y) 0;border-top:1px solid var(--border)}.band.alt{background:var(--bg)}.band-head{align-items:flex-end;gap:var(--sp-4);margin-bottom:var(--sp-5);display:flex}.band-head h2{font-size:var(--fs-xl);text-wrap:balance}.skip{z-index:50;position:absolute;top:8px;left:8px;transform:translateY(-200%)}.skip:focus{transform:none}.lang-hint{height:var(--lang-hint-h);background:var(--surface-2);border-bottom:1px solid var(--border);font-size:var(--fs-sm);color:var(--text);display:none}html[data-lang-hint] .lang-hint{display:block}.lang-hint .lh-in{align-items:center;gap:var(--sp-3);height:100%;display:flex}.lang-hint .lh-text{min-width:0}.lang-hint .lh-go{flex:none}.lang-hint .grow{flex:1}.lang-hint .lh-x{width:24px;height:24px;color:var(--text-2);border-radius:var(--radius);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.lang-hint .lh-x:hover{background:var(--surface-3);color:var(--text)}@media (width<=720px){.lang-hint{font-size:var(--fs-xs)}.lang-hint .lh-in{gap:var(--sp-2)}.lang-hint .lh-text{line-height:1.3}}.site-top{z-index:30;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0}.site-top .bar{height:var(--topbar-h);align-items:center;gap:var(--sp-5);display:flex}.brand{align-items:center;gap:var(--sp-2);color:var(--text);font-weight:600;font-size:var(--fs-md);white-space:nowrap;display:flex}.brand:hover{text-decoration:none}.brand .logo{width:22px;height:22px}.site-nav{align-items:stretch;gap:var(--sp-1);height:100%;display:flex}.site-nav a{padding:0 var(--sp-2);color:var(--text);font-size:var(--fs-sm);transition:background var(--t-fast);border-bottom:2px solid #0000;align-items:center;display:flex}.site-nav a:hover{background:var(--surface-3);text-decoration:none}.site-top .spacer{flex:1}.site-top .acts{align-items:center;gap:var(--sp-1);display:flex}.lang-link{font-size:var(--fs-sm);color:var(--text)}.site-top .more{display:none}.more .menu-pop{min-width:220px}@media (width<=860px){.site-nav,.site-top .acts .opt{display:none}.site-top .more{display:block}.site-top .bar{gap:var(--sp-3)}}.logo{flex:none;display:block}.hero{padding:40px 0 36px}#products{padding-top:40px}.kicker{font-size:var(--fs-sm);color:var(--text-2);align-items:center;gap:var(--sp-2);font-weight:600;display:flex}.kicker .logo{width:18px;height:18px}.hero h1{font-size:var(--fs-3xl);letter-spacing:-.01em;margin-top:var(--sp-2);text-wrap:balance;max-width:30em;line-height:1.2}.lede{font-size:var(--fs-lg);color:var(--text-2);margin-top:var(--sp-3);max-width:40em;line-height:1.5}:lang(zh) .lede{line-height:1.65}.pgrid{gap:var(--sp-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.pcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;transition:border-color var(--t-fast);flex-direction:column;display:flex;overflow:hidden}.pcard:hover{border-color:var(--border-strong)}.pmedia{aspect-ratio:var(--card-media-ratio);background:var(--surface-2);display:block;overflow:hidden}.pmedia img{object-fit:cover;object-position:center 62%;width:100%;height:100%;display:block}.pcap{padding:var(--sp-2) var(--sp-4);border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-2)}.pbody{gap:var(--sp-3);flex-direction:column;flex:1;padding:20px;display:flex}.ptitle{align-items:center;gap:var(--sp-1) var(--sp-3);flex-wrap:wrap;display:flex}.ptitle h3{font-size:var(--fs-xl)}.ptitle h3 a{color:var(--text)}.host{font-family:var(--mono);font-size:var(--fs-xs);color:var(--text-2);margin-top:2px;display:block}.ptag{font-size:var(--fs-lg);font-weight:600;line-height:1.4}.pdesc{color:var(--text-2)}.paccess{font-size:var(--fs-sm);color:var(--text-2)}.pfoot{align-items:center;gap:var(--sp-2) var(--sp-4);padding-top:var(--sp-2);font-size:var(--fs-sm);flex-wrap:wrap;margin-top:auto;display:flex}.idrow{gap:var(--sp-5);margin-top:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:minmax(0,4fr) minmax(0,6fr) auto;align-items:center;padding:20px 24px;display:grid}.idrow h3{font-size:var(--fs-lg)}.idrow h3 a{color:var(--text)}.idrow .itag{font-size:var(--fs-md);margin-top:var(--sp-2);font-weight:600}.idrow .idesc{color:var(--text-2)}.rel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.rel>div{gap:var(--sp-2);flex-direction:column;padding:20px 24px;display:flex}.rel>div+div{border-left:1px solid var(--border)}.rel h3{font-size:var(--fs-lg)}.rel p{color:var(--text-2)}.flow{align-items:center;gap:var(--sp-2);margin-top:var(--sp-2);font-size:var(--fs-xs);flex-wrap:wrap;display:flex}.node{height:26px;padding:0 var(--sp-2);border:1px solid var(--border-strong);border-radius:var(--radius);white-space:nowrap;background:var(--surface);align-items:center;font-weight:600;display:inline-flex}.node.hub{border-color:var(--accent);color:var(--accent)}.arr{color:var(--text-2);font-size:var(--fs-md)}.nf{padding:64px 0 72px}.nf h1{font-size:var(--fs-2xl);line-height:1.2}.nf-links{margin:var(--sp-5) 0 0;gap:var(--sp-2);flex-direction:column;padding:0;list-style:none;display:flex}.site-foot{background:var(--surface-2);border-top:1px solid var(--border);padding:40px 0 var(--sp-5);font-size:var(--fs-sm)}.foot-grid{gap:var(--sp-5);grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr));display:grid}.foot-grid h2{font-size:var(--fs-sm);margin-bottom:var(--sp-2)}.foot-grid ul{margin:0;padding:0;list-style:none}.foot-grid li{padding:3px 0}.foot-grid a{color:var(--text-2)}.foot-grid a:hover{color:var(--text)}.foot-brand .brand{display:inline-flex}.foot-grid .foot-brand .brand{color:var(--text)}.foot-brand p{color:var(--text-2);margin-top:var(--sp-2);max-width:30em}.foot-base{align-items:center;gap:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--border);color:var(--text-2);font-size:var(--fs-xs);flex-wrap:wrap;margin-top:32px;display:flex}.foot-base .grow{flex:1}.foot-base nav{gap:var(--sp-4);display:flex}.foot-base a{color:var(--text-2)}.foot-base a[aria-current=true]{color:var(--text);font-weight:600}@media (width<=1099px){.hero{padding:40px 0 32px}.idrow{grid-template-columns:minmax(0,1fr) auto}.idrow .idesc{grid-area:2/1/auto/-1}.foot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.foot-brand{grid-column:1/-1}}@media (width<=720px){.hero{padding:24px 0 28px}.hero h1{font-size:var(--fs-2xl)}.lede{font-size:15px}.pgrid{grid-template-columns:minmax(0,1fr)}.pmedia{aspect-ratio:16/10}.pbody{padding:var(--sp-4)}.pfoot .btn{height:var(--control-h-lg);flex:100%}.idrow{gap:var(--sp-3);padding:var(--sp-4);grid-template-columns:minmax(0,1fr)}.idrow .idesc{grid-row:auto}.idrow .btn{width:100%;height:var(--control-h-lg)}.rel{grid-template-columns:minmax(0,1fr)}.rel>div{padding:var(--sp-4)}.rel>div+div{border-left:0;border-top:1px solid var(--border)}.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nf{padding:40px 0 48px}}
