:root{
  --bg:#E6EEF4;--bg-top:#F1F6F9;--bg-bottom:#DCE7EF;
  --panel:#F6F9FC;--panel-2:#D9E5EE;--border:#C6D4DF;
  --accent:#2A1F1B;--accent-dark:#140F0D;--text:#1A1716;--muted:#566472;
  --success:#1F8A5B;--warn:#B7791F;--error:#C2412D;
  --cobalt-900:#132C47;--cobalt:#1B3A5C;--cobalt-700:#264C70;--cobalt-500:#41709A;
  --ice:#9FC3DA;--ice-200:#CFE3EE;--ice-50:#EAF7FD;--white:#FFFFFF;
  --on-dark:rgba(255,255,255,.84);--on-dark-soft:rgba(255,255,255,.58);
  --hl:rgba(255,255,255,.96);--hl-soft:rgba(255,255,255,.6);
  --hl-on-ink:rgba(255,255,255,.16);--hl-card:rgba(255,255,255,.16);
  --glass:rgba(255,255,255,.6);--edge:rgba(198,212,223,.78);
  --line-strong:rgba(86,100,114,.42);--line-glass:rgba(255,255,255,.62);
  --chip-type:rgba(217,229,238,.9);
  --shadow-c:rgba(27,58,92,.10);--shadow-c-strong:rgba(27,58,92,.14);
  --shadow-c-faint:rgba(27,58,92,.06);--shadow-deep:rgba(19,44,71,.34);
  --ink-shadow:rgba(20,15,13,.30);--veil:rgba(19,44,71,.34);
  --flag-white:#FFFFFF;--flag-sg:#EF3340;--flag-us-red:#B22234;
  --flag-us-blue:#3C3B6E;--flag-hk:#DE2910;--flag-jp:#BC002D;
  --flag-fr-blue:#0055A4;--flag-fr-red:#EF4135;--flag-edge:rgba(26,23,22,.14);
  --font-display:"Inter","Noto Sans SC","PingFang SC","Hiragino Sans","Apple SD Gothic Neo","Microsoft YaHei",system-ui,sans-serif;
  --font-body:"Inter","Noto Sans SC","PingFang SC","Hiragino Sans","Malgun Gothic","Microsoft YaHei",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --r-pill:999px;--r-round:50%;--r-card:12px;--r-tile:10px;--r-bar:28px;
  --r-badge:8px;--r-sm:6px;--r-flag:4px;--r-entry-mobile:22px;
  --wrap:1280px;--reading:840px;--gutter:24px;--header-height:68px;
  --anchor-offset:84px;--toc-offset:88px;--chapter-offset:160px;
  --shadow-panel:0 34px 64px -28px var(--shadow-c-strong),0 14px 30px -16px var(--shadow-c),0 1px 2px var(--shadow-c-faint);
  --shadow-float:0 18px 34px -14px var(--shadow-c-strong),0 6px 12px -6px var(--shadow-c);
  --ease-out:cubic-bezier(.2,.7,.3,1);--duration-fast:.2s;--duration-reveal:.55s;
  --weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;
  --weight-display:800;--weight-mega:900;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--anchor-offset);scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit;text-underline-offset:.2em}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-sm)}
img{display:block;max-width:100%;height:auto}
svg{flex-shrink:0}
[hidden]{display:none!important}
h1,h2,h3{font-family:var(--font-display);font-weight:var(--weight-display);text-wrap:balance;overflow-wrap:break-word}
h1{font-size:clamp(52px,4.45vw,64px);line-height:1.1;letter-spacing:-.02em;margin:0 0 16px}
h2{font-size:32px;line-height:1.25;letter-spacing:-.015em;margin:0 0 20px}
h3{font-size:22px;line-height:1.35;margin:0 0 12px}
p{margin:0 0 16px}
strong{font-weight:var(--weight-semibold)}
.no-break{white-space:nowrap}
.wrap{width:100%;max-width:calc(var(--wrap) + var(--gutter)*2);margin-inline:auto;padding-inline:var(--gutter)}
.reading-wrap{width:100%;max-width:calc(var(--reading) + var(--gutter)*2);margin-inline:auto;padding-inline:var(--gutter)}
.sec{padding-top:72px;padding-bottom:72px}
.sec-heading{max-width:780px;margin-bottom:32px}
.muted,.meta{color:var(--muted)}
.meta{font-size:13px}
.mono,code,pre{font-family:var(--font-mono)}
code{overflow-wrap:anywhere;font-size:.9em;background:var(--panel-2);border-radius:var(--r-flag);padding:.12em .3em}
pre{max-width:100%;overflow-x:auto;padding:20px;background:var(--panel-2);border-radius:var(--r-tile);line-height:1.7}
pre code{white-space:pre;overflow-wrap:normal;padding:0;background:var(--panel-2)}
.prose{overflow-wrap:anywhere}
.prose h2{margin-top:48px}
.prose h3{margin-top:32px}
.prose li+li{margin-top:8px}
.prose p{line-height:1.85}
.panel,.card{min-width:0;padding:28px;border-radius:var(--r-card);background:var(--panel);box-shadow:inset 0 0 0 1px var(--hl),var(--shadow-panel)}
.grid{display:grid;gap:24px}
.grid>*{min-width:0}
.grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid--five{grid-template-columns:repeat(5,minmax(0,1fr))}
.button-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.btn,.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:12px 24px;border:1px solid var(--accent);border-radius:var(--r-pill);font-size:16px;font-weight:var(--weight-semibold);text-decoration:none;white-space:nowrap;flex-shrink:0}
.btn-primary{height:52px;padding:0 24px;background:linear-gradient(180deg,var(--accent),var(--accent-dark));color:var(--white);box-shadow:inset 0 1px 0 var(--hl-on-ink),0 12px 24px -12px var(--ink-shadow);transition:transform var(--duration-fast)}
.btn-primary:hover{transform:translateY(-1px)}
.btn-primary svg{width:13px;height:13px;display:block}
.btn-secondary,.btn{background:var(--panel);color:var(--text);border-color:var(--line-strong)}
.btn-secondary:hover,.btn:hover{background:var(--panel-2)}
:where(.btn,.btn-primary,.btn-secondary):active{transform:translateY(1px)}
:where(.btn,.btn-primary,.btn-secondary):disabled,:where(.btn,.btn-primary,.btn-secondary)[aria-disabled="true"]{opacity:.5;cursor:not-allowed;transform:none}
.icon-line,.arrow-line{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.arrow-line{stroke-width:1.5}
.sr-only,.sprite-note{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.topbar{position:relative;z-index:30}
.topbar__in{width:min(var(--wrap),100% - 48px);margin:0 auto;min-height:var(--header-height);display:flex;align-items:center;gap:44px}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);flex:none}
.brand__mark{width:32px;height:32px;display:block}
.brand__en{font-family:var(--font-display);font-weight:var(--weight-display);font-size:18px;letter-spacing:-.01em}
.brand__zh{font-size:14px;font-weight:var(--weight-medium);color:var(--muted)}
.navline{display:flex;align-items:center;list-style:none;margin:0;padding:0;font-size:14.5px}
.navline li{display:flex;align-items:center}
.navline li+li::before{content:"·";margin:0 13px;color:var(--line-strong)}
.navline a{display:inline-flex;align-items:center;min-height:32px;text-decoration:none;color:var(--muted)}
.navline a:hover{color:var(--text)}
.navline a[aria-current="page"]{color:var(--text);font-weight:var(--weight-semibold)}
.topbar__act{margin-left:auto;display:flex;align-items:center;gap:8px;flex:none}
.lang{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:44px;width:auto;height:38px;padding:0 12px;font-size:14px;color:var(--muted);text-decoration:none;background:transparent;border:0}
.lang span{white-space:nowrap}
.pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 18px;border:0;border-radius:var(--r-pill);font-size:14px;font-weight:var(--weight-semibold);text-decoration:none;white-space:nowrap}
.pill--login{background:var(--panel-2);color:var(--text)}
.pill--login:hover{background:var(--border)}
.pill--cta{background:var(--accent);color:var(--white);box-shadow:inset 0 1px 0 var(--hl-on-ink)}
.pill--cta:hover{background:var(--accent-dark)}
.pill svg{width:12px;height:12px;display:block}
.language-picker{position:relative}
.language-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;padding:8px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-tile);box-shadow:var(--shadow-float);z-index:35}
.language-menu a{display:flex;align-items:center;min-height:44px;padding:8px 12px;text-decoration:none;border-radius:var(--r-sm)}
.language-menu a:hover,.language-menu a[aria-current="true"]{background:var(--panel-2)}
.menu-toggle{display:none;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:10px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--panel)}
.menu-toggle svg{width:20px;height:20px}
.mobile-nav{display:none}
.nav-veil{position:fixed;inset:var(--header-height) 0 0;background:var(--veil);z-index:20;border:0;width:100%}
html.nav-open{overflow:hidden}
.site-footer{background:var(--panel-2);border-top:1px solid var(--border);padding-top:48px;padding-bottom:24px}
.footer-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:48px}
.footer-grid>*{min-width:0}
.footer-brand p{max-width:350px;margin-top:16px;color:var(--muted);font-size:14px}
.footer-heading{font-size:14px;font-weight:var(--weight-semibold);margin:0 0 12px}
.footer-links{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px}
.footer-links a,.footer-languages a,.footer-bottom a{display:inline-flex;align-items:center;min-height:28px;font-size:13px;text-decoration:none}
.footer-links a:hover,.footer-bottom a:hover{ text-decoration:underline}
.footer-languages{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:32px}
.footer-languages a[aria-current="true"]{font-weight:var(--weight-bold)}
.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border);font-size:13px;color:var(--muted)}
.footer-legal{display:flex;flex-wrap:wrap;gap:16px}
.reveal{transition:opacity var(--duration-reveal) var(--ease-out),transform var(--duration-reveal) var(--ease-out)}
.reveal.pending{opacity:0;transform:translateY(16px)}
.reveal.shown{opacity:1;transform:none}
#server-status{position:relative;display:block;min-height:240px;min-width:0;max-width:100%;overflow:hidden;margin-top:24px;margin-bottom:32px}
#server-status>*{min-width:0;max-width:100%}
#server-status+.sec,#server-status+section{margin-top:32px}
.decorated-section{position:relative;overflow-x:clip;max-width:100%}
.stat-number{display:inline-block;min-width:3ch;font-variant-numeric:tabular-nums}
@media(max-width:1180px){
  .topbar__in{gap:28px}
  .navline li+li::before{margin:0 9px}
}
@media(max-width:1040px){
  .desktop-nav{display:none}
  .topbar__act{margin-left:auto}
  .menu-toggle{display:inline-flex}
  .mobile-nav:not([hidden]){position:absolute;left:0;right:0;top:100%;display:block;padding:16px var(--gutter);background:var(--panel);border-block:1px solid var(--border);z-index:32;max-height:calc(100dvh - var(--header-height));overflow-y:auto;overscroll-behavior:contain;box-shadow:var(--shadow-float)}
  .mobile-nav ul{list-style:none;padding:0;margin:0}
  .mobile-nav a{display:flex;align-items:center;width:100%;min-height:44px;padding:11px 12px;text-decoration:none;border-radius:var(--r-sm)}
  .mobile-nav a:hover,.mobile-nav a[aria-current="page"]{background:var(--panel-2)}
  .mobile-languages{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}
  .mobile-languages p{font-size:13px;color:var(--muted);margin:8px 12px}
}
@media(max-width:768px){
  h1{font-size:36px;line-height:1.2}
  h2{font-size:28px}
  .grid--three,.grid--five{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
  .footer-brand{grid-column:1/-1}
  .sec{padding-top:48px;padding-bottom:48px}
}
@media(max-width:640px){
  :root{--gutter:16px}
  .no-break{white-space:normal}
  .topbar__in{width:calc(100% - var(--gutter)*2);gap:12px}
  .topbar__act{margin-left:auto;gap:6px}
  .brand__zh,.language-picker,.topbar__act>.pill--cta{display:none}
  .pill{padding:0 14px}
  .grid--three,.grid--five,.footer-grid{grid-template-columns:1fr}
  .footer-brand{grid-column:auto}
  .panel,.card{padding:20px}
  .tilt,[data-tilt]{transform:none}
  .decorated-section{max-width:100%;overflow-x:clip}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal,.reveal.pending{opacity:1;transform:none}
}