:root{
  --bg:#E9F1F5;--bg-panel:#F7FBFC;--bg-panel-2:#DAE7EE;--border:#C9DAE3;
  --accent:#0F8BA8;--accent-dark:#0A6680;--accent-2:#2F7FD6;
  --text:#0F1E28;--text-muted:#4D6270;--success:#1E9E6A;--warn:#C98A12;--error:#D14343;
  --ink:#14232C;--ink-text:#D3E3EB;--white:#FFFFFF;
  --hero-top:#F3F8FA;--hero-bottom:#E1ECF2;--board-a:#CFE0EA;--board-b:#B7CEDD;
  --accent-tint:#DCEFF4;--accent-tint-2:#E8F5F8;--success-tint:#DCF1E8;
  --accent-a04:rgba(15,139,168,.04);--accent-a06:rgba(15,139,168,.06);--accent-a08:rgba(15,139,168,.08);
  --accent-a12:rgba(15,139,168,.12);--accent-a16:rgba(15,139,168,.16);--accent-a24:rgba(15,139,168,.24);
  --sky-a04:rgba(47,127,214,.04);--sky-a24:rgba(47,127,214,.24);
  --hl:rgba(255,255,255,.85);--hl-soft:rgba(255,255,255,.35);--hl-face:rgba(255,255,255,.42);
  --shade:rgba(10,40,55,.22);--flag-ring:rgba(15,30,40,.14);
  --flag-red:#C8313A;--flag-blue:#253C78;--flag-navy:#1E2C66;--flag-white:#FFFFFF;
  --veil:rgba(20,35,44,.4);--clear:transparent;
  --font-display:"Inter","Noto Sans SC","PingFang SC","Hiragino Sans","Noto Sans JP","Apple SD Gothic Neo","Malgun Gothic","Microsoft YaHei",system-ui,sans-serif;
  --font-body:"Inter","Noto Sans SC","PingFang SC","Hiragino Sans","Noto Sans JP","Apple SD Gothic Neo","Malgun Gothic","Microsoft YaHei",system-ui,sans-serif;
  --font-mono:"JetBrains Mono","SFMono-Regular",Menlo,Consolas,"Liberation Mono",monospace;
  --r-xs:4px;--r-sm:6px;--r-md:8px;--r-win:10px;--r-lg:16px;--r-pill:999px;--r-circle:50%;
  --shadow-fact:inset 0 1px 0 var(--white),0 4px 12px var(--accent-a06);
  --shadow-win:inset 0 1px 0 var(--white),0 2px 6px var(--accent-a08),0 18px 40px var(--accent-a12),0 48px 96px var(--accent-a12);
  --shadow-float:inset 0 1px 0 var(--white),0 2px 4px var(--accent-a08),0 16px 36px var(--accent-a16);
  --shadow-board:inset 0 1px 0 var(--hl),0 40px 80px -40px var(--accent-a24);
  --gutter:24px;--wrap-width:1248px;--header-height:72px;--toc-offset:16px;--anchor-offset:100px;
  --size-body:17px;--size-h1:64px;--size-h2:40px;--size-h3:24px;
  --weight-body:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-heading:800;--weight-display:900;
  --leading-body:1.7;--leading-display:1.1;--tracking-display:-.03em;
  --ease: .2s ease;--reveal-time:.35s;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--anchor-offset);scroll-behavior:smooth}
html.nav-open{overflow:hidden}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--size-body);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button,select{color:inherit}
img,video{max-width:100%;height:auto}
svg{flex-shrink:0}
button svg,a svg{flex-shrink:0}
[hidden]{display:none!important}
:where(a,button,summary,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
h1,h2,h3{font-family:var(--font-display);text-wrap:balance}
h1,.h1{font-size:var(--size-h1);font-weight:var(--weight-display);line-height:var(--leading-display);letter-spacing:var(--tracking-display)}
h2{font-size:var(--size-h2);font-weight:var(--weight-heading);line-height:1.2;letter-spacing:-.02em}
h3{font-size:var(--size-h3);font-weight:var(--weight-bold);line-height:1.35}
p{margin-top:0;margin-bottom:24px}
code{font-family:var(--font-mono);overflow-wrap:anywhere}
pre{max-width:100%;overflow-x:auto;padding:24px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-panel-2)}
pre code{overflow-wrap:normal;white-space:pre}
.wrap{width:100%;max-width:var(--wrap-width);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-top:72px;padding-bottom:72px}
.reading-wrap{max-width:880px}
:where(.hero__grid,.grid,.footer-grid,.feature-detail)>*{min-width:0}
.no-break{white-space:nowrap}
.muted{color:var(--text-muted)}
.mono{font-family:var(--font-mono)}
.center{text-align:center}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.platform-icon{width:20px;height:20px;fill:currentColor;overflow:hidden}
.flag-icon{width:24px;height:24px;flex:none;overflow:hidden;border-radius:var(--r-circle)}
.f-red{fill:var(--flag-red)}.f-blue{fill:var(--flag-blue)}.f-navy{fill:var(--flag-navy)}.f-white{fill:var(--flag-white)}
.f-st-white{fill:none;stroke:var(--flag-white)}.f-st-red{fill:none;stroke:var(--flag-red)}
.f-ring{fill:none;stroke:var(--flag-ring);stroke-width:1}
.notice{background:var(--ink);color:var(--ink-text);font-size:14px;line-height:20px}
.notice .wrap{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:4px 12px;min-height:40px;padding-top:10px;padding-bottom:10px;text-align:center}
.notice a{display:inline-flex;align-items:center;min-height:24px;color:var(--white);font-weight:var(--weight-semibold);text-decoration:underline;text-underline-offset:3px}
.notice a:hover{color:var(--accent-tint)}
#site-header{position:relative;z-index:50}
.topbar{position:relative;z-index:53;background:var(--hero-top);border-bottom:1px solid var(--border)}
.topbar__in{display:flex;align-items:center;height:var(--header-height);gap:32px;flex-wrap:nowrap}
.brand{display:flex;align-items:center;gap:10px;flex:none;min-height:40px}
.brand img{display:block;width:36px;height:36px;flex:none}
.brand__en{font-family:var(--font-display);font-weight:var(--weight-heading);font-size:20px;letter-spacing:-.02em;color:var(--text)}
.brand__zh{font-size:14px;font-weight:var(--weight-medium);color:var(--text-muted)}
.tabs-nav{flex:1;display:flex;justify-content:center;align-self:stretch;min-width:0}
.tabs-nav ul{display:flex;align-items:center;list-style:none;margin:0;padding:0;gap:28px;height:100%}
.tabs-nav li{height:100%}
.tabs-nav a{position:relative;display:flex;align-items:center;height:100%;font-size:15px;font-weight:var(--weight-medium);color:var(--text-muted);white-space:nowrap;transition:color var(--ease)}
.tabs-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:var(--r-xs);background:var(--accent);transform:scaleX(0);transition:transform var(--ease)}
.tabs-nav a:hover{color:var(--text)}
.tabs-nav a.is-on{color:var(--text);font-weight:var(--weight-bold)}
.tabs-nav a.is-on::after{transform:scaleX(1)}
.topbar__tools{display:flex;align-items:center;gap:12px;flex-shrink:0;margin-left:auto}
.language{position:relative}
.lang{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;min-width:44px;width:auto;padding:0 10px;border:0;background:var(--clear);border-radius:var(--r-md);font-family:var(--font-body);font-size:14px;color:var(--text-muted);cursor:pointer}
.lang span{white-space:nowrap}
.lang:hover{background:var(--bg-panel-2);color:var(--text)}
.lang-panel{position:absolute;z-index:60;right:0;top:calc(100% + 12px);min-width:176px;padding:8px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-float)}
.lang-panel a{display:flex;align-items:center;min-height:44px;padding:8px 12px;border-radius:var(--r-sm);font-size:14px}
.lang-panel a:hover,.lang-panel a[aria-current]{background:var(--accent-tint);color:var(--accent-dark)}
.btn-login{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 20px;border-radius:var(--r-md);background:var(--ink);color:var(--white);font-size:15px;font-weight:var(--weight-semibold);box-shadow:inset 0 1px 0 var(--hl-soft);white-space:nowrap;flex-shrink:0}
.btn-login:hover{background:var(--accent-dark)}
.menu-toggle{display:none;align-items:center;justify-content:center;flex-direction:column;gap:5px;min-width:44px;min-height:44px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-panel);color:var(--text)}
.menu-line{display:block;width:20px;height:2px;background:currentColor;border-radius:var(--r-xs)}
.menu-toggle[aria-expanded="true"]{background:var(--accent-tint);color:var(--accent-dark)}
.mobile-drawer{display:none}
.nav-veil{display:none}
.hero{position:relative;overflow-x:clip;max-width:100%;background:linear-gradient(180deg,var(--hero-top),var(--hero-bottom));padding-top:56px;padding-bottom:72px}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,var(--accent-a04),var(--sky-a04))}
.hero__grid{position:relative;display:grid;grid-template-columns:minmax(0,46fr) minmax(0,50fr);column-gap:4%;align-items:center}
.copy{position:relative;z-index:2}
.tag{display:inline-flex;align-items:center;min-height:32px;padding:4px 12px;border-radius:var(--r-sm);background:var(--accent-tint);color:var(--accent-dark);font-size:14px;font-weight:var(--weight-semibold);letter-spacing:.01em;max-width:100%;overflow:hidden}
.h1{margin:24px 0 0;color:var(--text)}
.h1 .ln{display:block}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:10px 24px;border:1px solid var(--clear);border-radius:var(--r-md);font-family:var(--font-body);font-size:16px;font-weight:var(--weight-bold);line-height:1.4;transition:transform var(--ease),box-shadow var(--ease);white-space:nowrap;flex-shrink:0;max-width:100%}
.btn--main,.btn-primary{color:var(--white);background:linear-gradient(100deg,var(--accent),var(--accent-2));box-shadow:inset 0 1px 0 var(--hl-soft),0 8px 20px var(--accent-a24)}
.btn--main:hover,.btn-primary:hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 var(--hl-soft),0 12px 28px var(--sky-a24)}
.btn--ghost,.btn-secondary{color:var(--text);background:var(--bg-panel);border:1px solid var(--border);box-shadow:inset 0 1px 0 var(--white)}
.btn--ghost:hover,.btn-secondary:hover{border-color:var(--accent);color:var(--accent-dark)}
.btn:active{transform:translateY(1px)}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;transform:none}
.btn--small{min-height:40px;padding:8px 16px;font-size:14px}
.lead{margin:28px 0 0;max-width:540px;color:var(--text-muted);font-size:17px;line-height:1.7}
.lead strong{color:var(--text);font-weight:var(--weight-semibold)}
.facts{list-style:none;margin:24px 0 0;padding:0;max-width:540px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.fact{display:flex;align-items:center;gap:10px;min-height:40px;padding:8px 14px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-fact);font-size:14px;font-weight:var(--weight-semibold);line-height:1.3;color:var(--text);min-width:0}
.fact svg{flex:none;color:var(--accent)}
.rows{margin-top:24px;display:grid;gap:12px}
.row{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center}
.row__k{font-size:13px;font-weight:var(--weight-medium);color:var(--text-muted);line-height:24px}
.row__v{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 20px}
.row__v li{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:var(--weight-semibold);line-height:24px;color:var(--text)}
.card,.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-md);padding:24px;box-shadow:var(--shadow-fact);min-width:0}
.panel--sunken{background:var(--bg-panel-2)}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.prose{overflow-wrap:break-word;min-width:0}
.prose h2{margin-top:56px;margin-bottom:24px}
.prose h3{margin-top:32px}
.prose a{text-decoration:underline;text-underline-offset:3px;color:var(--accent-dark)}
.prose li{margin-bottom:8px}
.prose blockquote{margin-inline:0}
.decorated{position:relative;overflow-x:clip;max-width:100%}
#server-status{position:relative;display:block;min-width:0;max-width:100%;min-height:120px;overflow:hidden;margin-top:24px;margin-bottom:32px}
#server-status+*{margin-top:32px}
.reveal{transition:opacity var(--reveal-time) ease,transform var(--reveal-time) ease}
.reveal.pending{opacity:0;transform:translateY(16px)}
.reveal.shown{opacity:1;transform:none}
[data-counter]{display:inline-block;min-width:3ch;font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right}
.site-footer{border-top:1px solid var(--border);background:var(--bg-panel-2);padding-top:56px;padding-bottom:24px}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);gap:48px}
.footer-brand p{margin-top:16px;color:var(--text-muted);font-size:15px;max-width:340px}
.footer-heading{margin:0 0 16px;font-size:16px;font-weight:var(--weight-bold)}
.footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;list-style:none;margin:0;padding:0}
.footer-links a,.footer-languages a,.footer-bottom a{display:inline-flex;align-items:center;min-height:32px;font-size:14px}
.footer-links a:hover,.footer-languages a:hover,.footer-bottom a:hover{color:var(--accent-dark);text-decoration:underline}
.footer-languages{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:32px;padding-top:24px;border-top:1px solid var(--border)}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:24px;font-size:13px;color:var(--text-muted)}
.footer-legal{display:flex;gap:24px;flex-wrap:wrap}
@media(max-width:1200px){
  .topbar__in{gap:20px}.tabs-nav ul{gap:18px}
}
@media(max-width:1100px){
  .hero__grid{grid-template-columns:minmax(0,1fr);row-gap:56px}
  .copy{max-width:640px}.device{width:92%;max-width:640px;margin:0 auto}
}
@media(max-width:1000px){
  .tabs-nav{display:none}.topbar__tools{margin-left:auto}.menu-toggle{display:inline-flex}
  .mobile-drawer{position:fixed;z-index:52;left:0;right:0;top:var(--drawer-top,var(--header-height));height:calc(100dvh - var(--drawer-top,var(--header-height)));max-height:calc(100dvh - var(--drawer-top,var(--header-height)));overflow-y:auto;overscroll-behavior:contain;background:var(--bg-panel);padding:16px var(--gutter) 32px;border-top:1px solid var(--border)}
  .mobile-drawer:not([hidden]){display:block}
  .mobile-drawer .footer-links{grid-template-columns:minmax(0,1fr)}
  .mobile-drawer a{display:flex;align-items:center;width:100%;min-height:48px;padding:12px 16px;border-bottom:1px solid var(--border);font-size:16px}
  .mobile-drawer a.is-on{color:var(--accent-dark);background:var(--accent-tint)}
  .drawer-languages{margin-top:24px}
  .nav-veil{position:fixed;z-index:51;inset:var(--drawer-top,var(--header-height)) 0 0;background:var(--veil);border:0}
  .nav-veil:not([hidden]){display:block}
}
@media(max-width:768px){
  :root{--size-h1:38px;--size-h2:28px}
  .grid{grid-template-columns:minmax(0,1fr)}.footer-grid{grid-template-columns:minmax(0,1fr);gap:32px}
  .section{padding-top:48px;padding-bottom:48px}
}
@media(max-width:640px){
  :root{--gutter:16px}
  .no-break{white-space:normal}
  .brand__zh{display:none}.brand{gap:7px}.brand img{width:30px;height:30px}.brand__en{font-size:18px}
  .topbar__in{gap:8px}.topbar__tools{gap:6px;margin-left:auto;flex-wrap:nowrap}
  .lang{padding:0 6px;font-size:12px;gap:3px}.btn-login{padding:0 12px;font-size:14px}
  .hero{padding-top:40px;padding-bottom:56px}.h1{font-size:38px}
  .lead{font-size:16px}.facts{grid-template-columns:minmax(0,1fr)}
  .row{grid-template-columns:minmax(0,1fr);gap:4px}
  .tilt,[data-tilt]{transform:none}
  .decorated{max-width:100%}.card,.panel{padding:20px}
  .footer-links{gap:8px}
}
@media(max-width:359px){
  .brand__en{font-size:16px}.brand img{width:26px;height:26px}.lang{font-size:11px;padding-inline:3px}
  .btn-login{padding-inline:9px}.topbar__tools{gap:3px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
  .reveal,.reveal.pending{opacity:1;transform:none}
}