:root{
  color-scheme:light;
  --bg:#F8F0E4;--bg-top:#FBF6EE;--bg-bottom:#F2E5D2;
  --panel:#FFFCF6;--panel-2:#F2E5D2;--border:#E4D5C0;--border-soft:#EDE2D2;
  --accent:#23485E;--accent-dark:#163244;--apricot:#F6DFC7;
  --apricot-50:#FBEFE2;--apricot-300:#EECBA6;--apricot-500:#D9A57A;--apricot-line:#EAC59F;
  --sand:#EAD8BF;--slate-150:#CAD6DB;--slate-300:#93A9B5;--slate-500:#557587;
  --text:#2A211A;--text-muted:#6E6052;--success:#2F7D57;--warn:#C07A1E;--error:#B23A2E;
  --flag-red:#C63B30;--flag-blue:#284A80;--flag-white:#FFFDF8;--flag-edge:rgba(42,33,26,.14);
  --hl:rgba(255,255,255,.88);--hl-soft:rgba(255,255,255,.42);--glass-top:rgba(255,255,255,.16);
  --shadow-tint:rgba(35,72,94,.10);--shadow-tint-2:rgba(35,72,94,.14);
  --shadow-near:rgba(42,33,26,.06);--shadow-cta:rgba(22,50,68,.34);
  --switch-inset:rgba(22,50,68,.35);--veil:rgba(42,33,26,.28);--transparent:transparent;
  --r-card:14px;--r-ui:12px;--r-tag:12px;--r-sm:8px;--r-xs:6px;--r-art:9px;--r-pill:999px;--r-round:50%;
  --font-display:"Iowan Old Style","Palatino Linotype",Georgia,"Songti SC","STSong","Noto Serif CJK SC","Source Han Serif SC",serif;
  --font-body:"Inter","Noto Sans SC","PingFang SC","Hiragino Sans","Microsoft YaHei",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --body-size:16px;--small-size:14px;--h1-size:64px;--h2-size:40px;--h3-size:26px;
  --weight-body:400;--weight-medium:500;--weight-bold:600;
  --gutter:24px;--wrap-width:1248px;--reading-width:800px;--head-height:72px;--anchor-space:88px;--toc-space:152px;
  --space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-5:40px;--space-6:48px;--section-space:80px;
  --ease:cubic-bezier(.2,.7,.2,1);--fast:.2s;--reveal-time:.35s;
  --paper-shadow:inset 0 1px 0 var(--hl),0 24px 48px -28px var(--shadow-tint-2);
  --card-shadow:inset 0 1px 0 var(--hl),0 36px 64px -24px var(--shadow-tint-2),0 14px 28px -14px var(--shadow-tint),0 1px 2px var(--shadow-near);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--anchor-space);scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--body-size);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body,main,article,section,header,footer,nav,div{min-width:0}
img{max-width:100%;height:auto}
svg{flex-shrink:0;vertical-align:middle}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button,a,summary{-webkit-tap-highlight-color:var(--shadow-tint)}
a{color:inherit;text-underline-offset:.2em}
a:hover{color:var(--accent)}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-sm)}
[hidden]{display:none!important}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--weight-body);line-height:1.2;text-wrap:balance;overflow-wrap:break-word}
h1{font-size:clamp(52px,4.45vw,72px);letter-spacing:-.02em;margin:0 0 var(--space-4)}
h2{font-size:var(--h2-size);margin:0 0 var(--space-3)}
h3{font-size:var(--h3-size);margin:0 0 var(--space-2)}
p{margin:0 0 var(--space-3)}
ul,ol{padding-left:1.5em}
li+li{margin-top:.25em}
code,kbd,pre{font-family:var(--font-mono)}
code{overflow-wrap:anywhere;font-size:.9em}
pre{max-width:100%;overflow-x:auto;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--panel)}
pre code{overflow-wrap:normal;white-space:pre}
hr{border:0;border-top:1px solid var(--border);margin-block:var(--space-5)}
.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(--section-space);padding-bottom:var(--section-space)}
.section-heading{max-width:760px;margin-bottom:var(--space-5)}
.muted{color:var(--text-muted)}
.accent,.kw{color:var(--accent)}
.mono{font-family:var(--font-mono)}
.stack{display:grid;gap:var(--space-3)}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}
.panel,.paper-card{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--r-card);background:var(--panel);box-shadow:var(--paper-shadow)}
.prose{line-height:1.85;overflow-wrap:break-word}
.prose h2{margin-top:var(--space-6)}
.prose h3{margin-top:var(--space-4)}
.prose p,.prose ul,.prose ol{margin-bottom:var(--space-3)}
.prose a{color:var(--accent)}
.skip{position:absolute;left:16px;top:-80px;z-index:100;padding:8px 14px;border-radius:var(--r-sm);background:var(--accent);color:var(--panel);text-decoration:none;font-size:var(--small-size)}
.skip:focus{top:12px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:14px 30px;border:1.5px solid var(--transparent);border-radius:var(--r-pill);font-family:var(--font-body);font-size:16px;font-weight:var(--weight-medium);line-height:1.25;text-decoration:none;white-space:nowrap;flex-shrink:0;transition:background var(--fast),transform var(--fast),box-shadow var(--fast)}
.btn-ghost,.btn-secondary{border-color:var(--text);color:var(--text);background:var(--transparent)}
.btn-ghost:hover,.btn-secondary:hover{background:var(--panel);transform:translateY(-1px);color:var(--text)}
.btn-solid,.btn-primary{border-color:var(--accent-dark);color:var(--panel);background:linear-gradient(180deg,var(--accent),var(--accent-dark));box-shadow:inset 0 1px 0 var(--glass-top),0 14px 28px -12px var(--shadow-cta)}
.btn-solid:hover,.btn-primary:hover{color:var(--panel);transform:translateY(-1px);box-shadow:inset 0 1px 0 var(--glass-top),0 18px 32px -12px var(--shadow-cta)}
.btn:active{transform:translateY(0)}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;transform:none}
.btn svg{width:18px;height:18px}
.btn-small{min-height:40px;padding:9px 20px;font-size:14px}
.cta-row{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin:0 0 32px}
.site-head{position:relative;z-index:40;background:var(--bg-top);border-bottom:1px solid var(--border-soft)}
.head-inner{max-width:1360px;height:var(--head-height);margin:0 auto;padding:0 40px;display:flex;align-items:center;gap:40px;flex-wrap:nowrap}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--text);flex-shrink:0;min-height:32px}
.brand-mark{display:block;width:32px;height:32px;filter:drop-shadow(0 6px 10px var(--shadow-tint-2))}
.brand-word{font-weight:650;font-size:19px;letter-spacing:.01em}
.brand-zh{font-weight:var(--weight-body);font-size:var(--small-size);color:var(--text-muted)}
.nav{flex:1;min-width:0}
.nav-list{display:flex;align-items:center;list-style:none;margin:0;padding:0;font-size:15px;white-space:nowrap}
.nav-list li{display:flex;align-items:center;margin:0}
.nav-list li+li::before{content:"·";color:var(--apricot-500);margin:0 14px;font-weight:700}
.nav-list a{display:inline-flex;align-items:center;min-height:36px;text-decoration:none;color:var(--text);padding:6px 2px;transition:color var(--fast)}
.nav-list a:hover,.nav-list a[aria-current="page"]{color:var(--accent)}
.nav-list a[aria-current="page"]{font-weight:var(--weight-bold)}
.head-tools{display:flex;align-items:center;gap:18px;flex-shrink:0;margin-left:auto}
.language{position:relative}
.lang{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;width:auto;height:36px;padding:0 6px;border:0;background:var(--transparent);color:var(--text-muted);font:inherit;font-size:14px;cursor:pointer;white-space:nowrap}
.lang svg{width:16px;height:16px;color:var(--accent)}
.lang-text{white-space:nowrap}
.lang-caret{font-size:11px}
.lang-panel{position:absolute;right:0;top:calc(100% + 12px);z-index:60;min-width:180px;padding:8px;border:1px solid var(--border);border-radius:var(--r-ui);background:var(--panel);box-shadow:var(--card-shadow)}
.lang-panel a{display:flex;align-items:center;min-height:44px;padding:8px 12px;text-decoration:none;border-radius:var(--r-sm)}
.lang-panel a:hover,.lang-panel a[aria-current="true"]{background:var(--apricot-50);color:var(--accent)}
.btn-login{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 24px;border:1.5px solid var(--text);border-radius:var(--r-pill);text-decoration:none;color:var(--text);font-size:15px;font-weight:var(--weight-medium);white-space:nowrap;transition:background var(--fast)}
.btn-login:hover{background:var(--panel);color:var(--text)}
.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-sm);background:var(--panel);color:var(--accent)}
.menu-toggle svg{width:22px;height:22px}
.mobile-drawer{display:none}
.menu-veil{display:none}
html.nav-open{overflow:hidden}
.site-footer{background:var(--panel-2);border-top:1px solid var(--border);padding-top:var(--space-6);padding-bottom:var(--space-4)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--space-5)}
.footer-brand p{max-width:310px;margin-top:var(--space-3);font-size:var(--small-size);color:var(--text-muted)}
.footer-heading{font-family:var(--font-body);font-size:var(--small-size);font-weight:var(--weight-bold);margin:0 0 var(--space-2)}
.footer-links{display:grid;gap:4px;list-style:none;padding:0;margin:0}
.footer-links li{margin:0}
.footer-links a{display:inline-flex;align-items:center;min-height:32px;text-decoration:none;font-size:var(--small-size);color:var(--text-muted)}
.footer-links a:hover{color:var(--accent);text-decoration:underline}
.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:var(--space-5);padding-top:var(--space-3);border-top:1px solid var(--border);font-size:13px;color:var(--text-muted)}
.footer-bottom p{margin:0;margin-right:auto}
.footer-bottom a{display:inline-flex;align-items:center;min-height:28px}
.reveal{transition:opacity var(--reveal-time) var(--ease),transform var(--reveal-time) var(--ease)}
.reveal.pending{opacity:0;transform:translateY(16px)}
.reveal.shown{opacity:1;transform:none}
[data-counter]{display:inline-block;min-width:3ch;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}
#server-status{position:relative;display:block;min-width:0;max-width:100%;min-height:180px;overflow:hidden;margin-block:var(--space-4);isolation:isolate}
#server-status+*{margin-top:var(--space-4)}
.ico{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.svg-defs{position:absolute;width:0;height:0;overflow:hidden}
.fl-red{fill:var(--flag-red)}.fl-white{fill:var(--flag-white)}.fl-blue{fill:var(--flag-blue)}
.fl-line{fill:none;stroke:var(--flag-edge);stroke-width:1}
.f-paper{fill:var(--panel)}.f-apr50{fill:var(--apricot-50)}.f-apr{fill:var(--apricot)}.f-apr3{fill:var(--apricot-300)}.f-apr5{fill:var(--apricot-500)}.f-sand{fill:var(--sand)}
.f-sl1{fill:var(--slate-150)}.f-sl3{fill:var(--slate-300)}.f-sl5{fill:var(--slate-500)}.f-sl7{fill:var(--accent)}.f-sl9{fill:var(--accent-dark)}
.s-apr50{stop-color:var(--apricot-50)}.s-apr{stop-color:var(--apricot)}.s-apr3{stop-color:var(--apricot-300)}
.s-sl1{stop-color:var(--slate-150)}.s-sl3{stop-color:var(--slate-300)}.s-sl5{stop-color:var(--slate-500)}.s-sl7{stop-color:var(--accent)}.s-sl9{stop-color:var(--accent-dark)}.s-paper{stop-color:var(--panel)}
@media(max-width:1359px){.head-inner{gap:28px}}
@media(max-width:1279px){.nav-list li+li::before{margin:0 10px}.head-inner{padding-inline:24px;gap:24px}.head-tools{gap:12px}}
@media(max-width:1100px){
  .nav{display:none}
  .head-inner{padding-inline:var(--gutter)}
  .head-tools{margin-left:auto;gap:10px}
  .menu-toggle{display:inline-flex}
  .mobile-drawer{position:fixed;display:block;top:var(--head-height);left:0;right:0;height:calc(100dvh - var(--head-height));max-height:calc(100dvh - var(--head-height));padding:20px var(--gutter) 40px;overflow-y:auto;overscroll-behavior:contain;background:var(--panel);border-top:1px solid var(--border);z-index:42}
  .mobile-drawer a{display:flex;align-items:center;width:100%;min-height:48px;padding:12px 16px;text-decoration:none;border-radius:var(--r-sm)}
  .mobile-drawer a:hover,.mobile-drawer a[aria-current]{background:var(--apricot-50);color:var(--accent)}
  .drawer-links{list-style:none;margin:0;padding:0}
  .drawer-links li{margin:0}
  .drawer-languages{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}
  .menu-veil{display:block;position:fixed;inset:var(--head-height) 0 0;background:var(--veil);border:0;z-index:41}
}
@media(max-width:768px){
  :root{--h1-size:40px;--h2-size:32px;--h3-size:24px;--section-space:56px}
  h1{font-size:40px}
  .grid-3{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  :root{--gutter:20px;--h1-size:36px;--h2-size:30px;--section-space:48px}
  .no-break{white-space:normal}
  h1{font-size:36px}
  .grid-2{grid-template-columns:1fr}
  .panel,.paper-card{padding:var(--space-3)}
  .btn{padding-inline:24px}
  .head-inner{gap:8px}
  .head-tools{gap:6px;margin-left:auto}
  .brand{gap:8px}
  .brand-word{font-size:17px}
  .brand-zh{display:none}
  .lang-text{display:none}
  .lang{padding-inline:4px}
  .btn-login{padding-inline:16px;font-size:14px}
  .tilt,[data-tilt]{transform:none!important}
  .footer-grid{gap:24px}
  .footer-brand{grid-column:1/-1}
}
@media(max-width:359px){
  :root{--gutter:16px}
  .brand-word{font-size:16px}
  .brand-mark{width:28px;height:28px}
  .btn-login{padding-inline:12px}
  .head-tools{gap:3px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal,.reveal.pending,.reveal.shown{opacity:1;transform:none}
}