:root{
  --bg:#E4ECF1;--bg-top:#EEF4F7;--bg-bottom:#DCE6EC;
  --panel:#F6FAFC;--panel-60:rgba(246,250,252,.6);--panel-glass:rgba(246,250,252,.72);
  --groove:#D6E2EA;--border:#C5D3DD;--border-soft:rgba(197,211,221,.75);
  --accent:#F5B80C;--accent-dark:#A97A00;--accent-glow:rgba(245,184,12,.42);--accent-edge:rgba(169,122,0,.32);
  --ink:#111A24;--ink-2:#1E2C3B;--ink-3:#2B4058;--muted:#52637A;--muted-2:#7B8BA0;
  --success:#18936A;--warn:#CF7A12;--error:#D0413B;
  --win:#0F1823;--win-2:#142232;--win-card:#172433;--win-card-2:#1D2D40;--win-raise:#253952;
  --win-line:rgba(255,255,255,.07);--win-hi:rgba(255,255,255,.08);--win-edge:rgba(15,24,35,.55);
  --win-text:#E6EEF5;--win-muted:#8A9BB0;--win-faint:#5F7189;
  --flow-a:#22C3D9;--flow-m:#2A93DC;--flow-b:#2E5BDA;--flow-glow:rgba(34,195,217,.12);
  --band-hi:rgba(255,255,255,.24);--band-text:rgba(255,255,255,.84);
  --halo-a:rgba(58,176,214,.34);--halo-b:rgba(46,112,214,.26);
  --shadow-tint:rgba(30,128,178,.12);--shadow-tint-2:rgba(30,128,178,.18);--shadow-tint-3:rgba(30,128,178,.26);--shadow-ink:rgba(17,26,36,.38);
  --white-a70:rgba(255,255,255,.7);--white-a55:rgba(255,255,255,.55);--btn-hi:rgba(255,255,255,.12);
  --flag-white:#FFFFFF;--flag-us-red:#B22234;--flag-us-blue:#3C3B6E;--flag-jp-red:#BC002D;--flag-hk-red:#DE2910;--flag-sg-red:#EE2536;--flag-ch-red:#DA291C;--flag-nl-red:#AE1C28;--flag-nl-blue:#21468B;--flag-ring:rgba(255,255,255,.18);
  --r-xs:4px;--r-sm:6px;--r-md:8px;--r-lg:10px;--r-xl:14px;--r-pill:999px;--r-round:50%;
  --font-display:"Inter","Noto Sans SC","PingFang SC","PingFang TC","Hiragino Sans","Yu Gothic","Apple SD Gothic Neo","Malgun Gothic","Microsoft YaHei",system-ui,sans-serif;
  --font-body:"Inter","Noto Sans SC","PingFang SC","PingFang TC","Hiragino Sans","Yu Gothic","Apple SD Gothic Neo","Malgun Gothic","Microsoft YaHei",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --gutter:24px;--wrap-width:1288px;--reading-width:840px;
  --text-xs:12px;--text-sm:14px;--text-base:16px;--text-lead:18px;--text-h2:clamp(26px,3vw,36px);--text-h3:22px;
  --weight-body:400;--weight-medium:500;--weight-bold:700;--weight-heavy:800;--weight-display:900;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;
  --head-height:64px;--anchor-offset:80px;--toc-offset:96px;
  --ease-out:cubic-bezier(.2,.7,.2,1);--speed-fast:.2s;--speed-reveal:.65s;
  --shadow-panel:inset 0 1px 0 var(--white-a70),0 18px 48px -22px var(--shadow-tint);
  --shadow-button:inset 0 1px 0 var(--btn-hi),0 12px 26px -12px var(--shadow-ink);
  --focus-ring:var(--flow-b);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--anchor-offset)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-body);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
button:disabled{cursor:not-allowed}
img{display:block;max-width:100%;height:auto}
svg{flex-shrink:0;vertical-align:middle}
ul,ol{margin:0;padding:0;list-style:none}
p{margin:0}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);text-wrap:balance}
h1{font-size:clamp(52px,5vw,68px);font-weight:var(--weight-display);line-height:1.1;letter-spacing:-.02em}
h2{font-size:var(--text-h2);font-weight:var(--weight-heavy);line-height:1.25;letter-spacing:-.02em}
h3{font-size:var(--text-h3);font-weight:var(--weight-heavy);line-height:1.35}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px;border-radius:var(--r-sm)}
[hidden]{display:none!important}
.no-break{white-space:nowrap}
.wrap{width:100%;max-width:var(--wrap-width);margin-inline:auto;padding-inline:var(--gutter)}
.reading-wrap{width:100%;max-width:var(--reading-width);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-top:var(--space-8);padding-bottom:var(--space-8)}
.section-head{margin-bottom:var(--space-6)}
.section-head p{max-width:70ch;margin-top:var(--space-4);color:var(--muted)}
.grid{display:grid;gap:var(--space-5)}
.grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-five{grid-template-columns:repeat(5,minmax(0,1fr))}
.grid>* , .head-in>* , .footer-grid>*{min-width:0}
.stack{display:flex;flex-direction:column;gap:var(--space-4)}
.row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}
.muted{color:var(--muted)}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.icon{width:24px;height:24px;display:inline-block;flex-shrink:0}
.symbol-bank{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.panel,.card{padding:var(--space-5);border-radius:var(--r-xl);background:var(--panel);box-shadow:var(--shadow-panel)}
.panel-inset{padding:var(--space-5);border-radius:var(--r-lg);background:var(--groove)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:48px;max-width:100%;padding:0 28px;border:1px solid transparent;border-radius:var(--r-lg);font-size:var(--text-base);font-weight:var(--weight-bold);white-space:nowrap;flex-shrink:0;transition:background var(--speed-fast),border-color var(--speed-fast),transform var(--speed-fast)}
.btn-primary{background:var(--ink);color:var(--panel);box-shadow:var(--shadow-button)}
.btn-primary:hover,.btn-primary.is-hover{background:var(--ink-2);transform:translateY(-1px)}
.btn-ghost,.btn-secondary{background:var(--panel-60);color:var(--ink);border-color:var(--border)}
.btn-ghost:hover,.btn-secondary:hover,.btn-ghost.is-hover{border-color:var(--muted-2)}
.btn:active,.btn.is-active{transform:translateY(1px)}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.55;transform:none;box-shadow:none}
.btn.is-focus{outline:2px solid var(--focus-ring);outline-offset:3px}
.more{display:inline-flex;align-items:center;gap:var(--space-2);min-height:24px;margin-top:var(--space-6);font-size:20px;font-weight:var(--weight-bold);color:var(--muted);transition:color var(--speed-fast)}
.more:hover{color:var(--ink-2)}
.prose{overflow-wrap:break-word}
.prose p,.prose ul,.prose ol,.prose pre,.prose blockquote,.prose .table-scroll{margin-block:var(--space-5)}
.prose h2{margin-top:var(--space-8);margin-bottom:var(--space-5)}
.prose h3{margin-top:var(--space-6);margin-bottom:var(--space-4)}
.prose ul{list-style:disc;padding-left:var(--space-5)}
.prose ol{list-style:decimal;padding-left:var(--space-5)}
.prose li+li{margin-top:var(--space-2)}
.prose a{color:var(--muted);text-decoration:underline;text-underline-offset:4px}
code{font-family:var(--font-mono);font-size:.9em;overflow-wrap:anywhere}
pre{max-width:100%;overflow-x:auto;padding:var(--space-5);border-radius:var(--r-lg);background:var(--win);color:var(--win-text)}
pre code{white-space:pre;overflow-wrap:normal}
.reveal{transition:opacity var(--speed-reveal) var(--ease-out),transform var(--speed-reveal) var(--ease-out)}
.reveal.pending{opacity:0;transform:translateY(16px)}
.reveal.shown{opacity:1;transform:none}
#server-status{display:block;position:static;min-width:0;max-width:100%;overflow:hidden;margin-top:var(--space-5);margin-bottom:var(--space-5)}
#server-status+*{margin-top:var(--space-5)}
.decor-zone{position:relative;isolation:isolate;overflow-x:clip}
.site-head{position:relative;z-index:50;border-bottom:1px solid var(--border-soft)}
.head-in{position:relative;display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"brand tabs act";align-items:center;column-gap:32px;min-height:var(--head-height)}
.brand{grid-area:brand;display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:18px;font-weight:var(--weight-heavy);letter-spacing:-.01em;color:var(--ink);min-height:44px}
.brand img{width:30px;height:30px;flex-shrink:0;border-radius:var(--r-md)}
.brand-zh{font-weight:var(--weight-medium);color:var(--muted)}
.tabs{grid-area:tabs;height:var(--head-height);min-width:0}
.tabs ul{display:flex;align-items:center;justify-content:center;list-style:none;margin:0;padding:0;gap:2px;height:100%}
.tabs li{height:100%}
.tabs a{position:relative;display:flex;align-items:center;height:100%;padding:0 14px;font-size:14.5px;font-weight:var(--weight-medium);color:var(--muted);white-space:nowrap;transition:color var(--speed-fast)}
.tabs a:hover{color:var(--ink)}
.tabs a[aria-current="page"]{color:var(--ink);font-weight:var(--weight-bold)}
.tabs a[aria-current="page"]::after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;border-radius:var(--r-xs);background:var(--ink)}
.head-act{grid-area:act;display:flex;align-items:center;gap:18px}
.lang-switch{position:relative}
.lang{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;min-width:44px;width:auto;font-size:var(--text-sm);color:var(--muted);white-space:nowrap}
.lang span{white-space:nowrap}
.lang:hover{color:var(--ink)}
.lang-menu{position:absolute;right:0;top:100%;min-width:180px;padding:var(--space-2);background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-panel);z-index:4}
.lang-menu a{display:flex;align-items:center;width:100%;min-height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--r-sm);font-size:var(--text-sm)}
.lang-menu a:hover,.lang-menu a[aria-current="true"]{background:var(--groove)}
.login{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 18px;border-radius:var(--r-md);background:var(--ink);color:var(--panel);font-size:var(--text-sm);font-weight:var(--weight-bold);white-space:nowrap;box-shadow:inset 0 1px 0 var(--btn-hi),0 8px 18px -10px var(--shadow-ink);transition:background var(--speed-fast)}
.login:hover{background:var(--ink-2)}
.menu-toggle{display:none;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid var(--border);border-radius:var(--r-md)}
.menu-toggle svg{width:20px;height:20px}
.mobile-drawer{display:none}
html.nav-open{overflow:hidden}
.site-foot{border-top:1px solid var(--border);background:var(--bg-bottom);padding-top:var(--space-8);padding-bottom:var(--space-6)}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:var(--space-7)}
.footer-brand p{max-width:35ch;margin-top:var(--space-4);color:var(--muted);font-size:var(--text-sm)}
.footer-title{margin-bottom:var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-heavy)}
.footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2) var(--space-4)}
.footer-links a,.footer-languages a,.footer-legal a{display:inline-flex;align-items:center;min-height:28px;font-size:var(--text-sm);color:var(--muted)}
.footer-links a:hover,.footer-languages a:hover,.footer-legal a:hover{color:var(--ink)}
.footer-languages{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-6)}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--muted)}
.footer-legal{display:flex;flex-wrap:wrap;gap:var(--space-4)}
@media(max-width:1120px){
  .head-in{grid-template-columns:auto 1fr;grid-template-areas:"brand act" "tabs tabs";column-gap:16px;min-height:0;padding-top:10px}
  .head-act{justify-content:flex-end}
  .tabs{height:44px;overflow-x:auto;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tabs ul{justify-content:flex-start}
  .tabs a{padding:0 12px;font-size:var(--text-sm)}
  .tabs a[aria-current="page"]::after{left:12px;right:12px}
  .grid-five{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:768px){
  :root{--gutter:16px;--anchor-offset:80px;--space-8:48px;--space-9:64px}
  h1{font-size:36px;line-height:1.12}
  .head-in{display:flex;min-height:64px;padding-top:0;gap:12px}
  .brand{font-size:17px;flex-shrink:0}
  .head-in>.tabs{display:none}
  .head-act{margin-left:auto;gap:8px}
  .login{min-height:40px;padding-inline:14px}
  .menu-toggle{display:inline-flex}
  .mobile-drawer:not([hidden]){display:block;position:absolute;left:0;right:0;top:100%;z-index:3;background:var(--panel);border-bottom:1px solid var(--border);padding:var(--space-3) var(--gutter);max-height:calc(100dvh - var(--head-height));overflow-y:auto;overscroll-behavior:contain;box-shadow:0 24px 40px -24px var(--shadow-tint-3)}
  .mobile-drawer a{display:flex;align-items:center;width:100%;min-height:44px;padding:10px 12px;font-size:var(--text-sm);border-radius:var(--r-sm)}
  .mobile-drawer a:hover,.mobile-drawer a[aria-current="page"]{background:var(--groove)}
  .drawer-languages{border-top:1px solid var(--border);margin-top:var(--space-3);padding-top:var(--space-3)}
  .grid-three,.grid-five{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-grid{grid-template-columns:1fr 1fr;gap:var(--space-6)}
  .footer-brand{grid-column:1/-1}
  .btn{height:46px;padding:0 22px;font-size:15px}
  .decor-zone{max-width:100%}
}
@media(max-width:640px){
  .no-break{white-space:normal}
  .tilt,[data-tilt]{transform:none}
  .grid-three,.grid-five{grid-template-columns:minmax(0,1fr)}
  .footer-grid{grid-template-columns:minmax(0,1fr)}
  .footer-brand{grid-column:auto}
  .head-act{gap:4px}
  .lang{font-size:var(--text-xs)}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reveal,.reveal.pending{opacity:1;transform:none}
}