:root{
  --bg:#E7F1FB;--bg-panel:#F6FAFE;--bg-panel2:#D8E7F5;--surface:#FFFFFF;
  --border:#C6D8EA;--border-soft:#DCE8F4;--panel-edge:#D3E3F3;
  --accent:#2A7FE3;--accent-dark:#1A5DB3;--amber:#F2B43C;--amber-soft:#FFF6E2;
  --text:#15212E;--text-muted:#55677B;--success:#1E9C6A;--warn:#D9951C;--error:#D4453C;
  --ink:#15212E;--ink-2:#2A3A4D;--ink-hi:rgba(255,255,255,.16);--ink-shadow:rgba(21,33,46,.32);
  --sky-top:#C9E2F8;--sky-mid:#D9EAFA;--sunlight:rgba(255,246,224,.88);
  --glass:rgba(214,232,250,.62);--glass-line:rgba(255,255,255,.72);
  --frame:rgba(255,255,255,.55);--chip-bg:rgba(200,225,249,.78);
  --shadow-tint:rgba(42,127,227,.12);--shadow-tint-soft:rgba(42,127,227,.10);
  --groove-shadow:rgba(26,93,179,.08);--groove-2:#E3EEF9;
  --bld-far-a:#D2E5F8;--bld-far-b:#E5F0FB;--bld-near-a:#AECCEC;
  --bld-near-b:#C9DEF3;--bld-lit-a:#FFF3D8;--bld-lit-b:#F4E2BC;
  --bld-roof:#FFF7E6;--win:rgba(255,255,255,.55);--win-far:rgba(255,255,255,.42);
  --cloud:#FFFFFF;--cloud-cream:#FFEFD2;--rail-side:#8DB6E6;
  --rail-top:#C6DDF5;--pier:#9FC1E8;--pier-cap:#E4EFFA;
  --flag-red:#D8413A;--flag-blue:#2B4FA0;
  --radius-sm:10px;--radius:12px;--radius-lg:14px;--radius-pill:999px;
  --gutter:24px;--content-width:1200px;--toc-offset:116px;
  --font-display:'Inter','Noto Sans SC','PingFang SC','Hiragino Sans','Microsoft YaHei','Apple SD Gothic Neo','Malgun Gothic',sans-serif;
  --font-body:'Inter','Noto Sans SC','PingFang SC','Hiragino Sans','Microsoft YaHei','Apple SD Gothic Neo','Malgun Gothic',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--toc-offset)}
html.nav-open{overflow:hidden}
body{margin:0;min-width:320px;background:var(--bg);color:var(--text);font:400 16px/1.6 var(--font-body);-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}img{height:auto}svg{flex-shrink:0}
a{color:inherit}button{font:inherit;cursor:pointer}ul{list-style:none;margin:0;padding:0}
p{margin:0 0 1em}h1,h2,h3{color:var(--text);font-family:var(--font-display);text-wrap:balance;overflow-wrap:break-word}
h1{font-size:clamp(52px,5vw,72px);line-height:1.1;letter-spacing:-.02em}
h2{font-size:clamp(30px,3vw,44px);line-height:1.2;letter-spacing:-.02em}
h3{font-size:clamp(21px,2vw,30px);line-height:1.25}
code,pre{font-family:var(--font-mono)}code{overflow-wrap:anywhere}pre{max-width:100%;overflow-x:auto;padding:20px;border-radius:var(--radius);background:var(--bg-panel2)}
pre code{overflow-wrap:normal}table{border-collapse:collapse}
:where(a,button,summary,[role="tab"],[tabindex]):focus-visible{outline:2px solid var(--accent-dark);outline-offset:3px}
.wrap{width:min(100%,calc(var(--content-width) + var(--gutter)*2));margin-inline:auto;padding-inline:var(--gutter);min-width:0}
.wrap>*,.grid>*,.feature-card>*,.footer-grid>*{min-width:0}
.sec{padding-top:80px;padding-bottom:80px}
.no-break{white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.kw{background:linear-gradient(100deg,var(--accent) 20%,var(--accent-dark));-webkit-background-clip:text;background-clip:text;color:transparent}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 18px;border:1px solid transparent;border-radius:var(--radius-pill);font:600 14.5px/1.2 var(--font-body);text-decoration:none;white-space:nowrap;flex-shrink:0;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.btn-ink{background:linear-gradient(180deg,var(--ink-2),var(--ink));color:var(--surface);box-shadow:inset 0 1px 0 var(--ink-hi),0 8px 18px -8px var(--ink-shadow)}
.btn-ink:hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 var(--ink-hi),0 12px 22px -8px var(--ink-shadow)}
.btn-ghost{background:var(--surface);color:var(--text);border-color:var(--border);box-shadow:inset 0 -1px 0 var(--bg-panel2)}
.btn-ghost:hover{border-color:var(--accent)}.btn-sm{min-height:38px;padding-inline:16px;font-size:14px}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn svg{width:16px;height:16px}
.site-header{position:relative;z-index:40;display:flex;justify-content:center;padding:20px var(--gutter) 0}
#site-header{position:relative;z-index:40}
.site-header.on-hero{position:absolute;inset:0 0 auto;height:max-content}
.nav-bar{position:relative;width:min(1240px,100%);min-height:60px;display:flex;align-items:center;gap:16px;padding:0 10px 0 18px;background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);box-shadow:0 12px 32px -16px var(--shadow-tint),inset 0 1px 0 var(--glass-line)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.brand-mark{width:32px;height:32px;display:block}.brand-word{font:800 19px/1 var(--font-display);letter-spacing:-.02em}.brand-local{font-weight:500;color:var(--text-muted)}
.nav-tabs{display:flex;align-items:center;list-style:none;margin:0 auto;padding:0;gap:2px}
.nav-tabs li{flex:none}.nav-tabs a{position:relative;display:flex;align-items:center;min-height:58px;padding:0 11px;font:500 14.5px/1 var(--font-body);color:var(--text-muted);text-decoration:none;white-space:nowrap}
.nav-tabs a::after{content:"";position:absolute;left:11px;right:11px;bottom:9px;height:3px;border-radius:var(--radius-pill);background:var(--accent);transform:scaleX(0);opacity:0;transition:transform .22s ease,opacity .22s ease}
.nav-tabs a:hover{color:var(--text)}.nav-tabs a:hover::after{transform:scaleX(.45);opacity:.45}
.nav-tabs a[aria-current="page"]{color:var(--text);font-weight:600}.nav-tabs a[aria-current="page"]::after{transform:scaleX(1);opacity:1}
.nav-tools{display:flex;align-items:center;gap:8px;flex:none}
.lang-wrap{position:relative}.lang-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;min-height:44px;padding:0 10px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);white-space:nowrap;font-size:14px}
.lang-button:hover{color:var(--text);border-color:var(--glass-line)}.lang-button svg{width:16px;height:16px}
.lang-list{position:absolute;right:0;top:calc(100% + 8px);z-index:45;width:170px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 18px 36px -16px var(--shadow-tint)}
.lang-list[hidden],.mobile-drawer[hidden],.menu-veil[hidden]{display:none}
.lang-list a{display:flex;align-items:center;min-height:40px;padding:8px 12px;border-radius:var(--radius-sm);text-decoration:none;font-size:14px}
.lang-list a:hover,.lang-list a[aria-current="true"]{background:var(--bg-panel2)}
.menu-toggle{display:none;place-items:center;min-width:44px;min-height:44px;padding:8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}
.menu-toggle svg{width:22px;height:22px}
.mobile-drawer{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:42;max-height:calc(100dvh - 110px);overflow-y:auto;overscroll-behavior:contain;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 22px 45px -18px var(--shadow-tint)}
.mobile-drawer a{display:flex;width:100%;align-items:center;min-height:44px;padding:10px 14px;border-radius:var(--radius-sm);text-decoration:none}
.mobile-drawer a:hover,.mobile-drawer a[aria-current="page"]{background:var(--bg-panel2)}
.drawer-languages{border-top:1px solid var(--border-soft);margin-top:8px;padding-top:8px}
.menu-veil{position:fixed;inset:0;z-index:35;background:var(--ink-shadow)}
.surface-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:0 24px 60px -30px var(--shadow-tint),inset 0 1px 0 var(--surface)}
.groove{padding:16px;border-radius:var(--radius);background:linear-gradient(160deg,var(--bg-panel2),var(--groove-2));box-shadow:inset 0 2px 8px var(--groove-shadow)}
.reveal{transition:opacity .6s ease,transform .6s ease}.reveal.pending{opacity:0;transform:translateY(16px)}.reveal.shown{opacity:1;transform:none}
.site-footer{background:var(--bg-panel);border-top:1px solid var(--border-soft);padding-top:64px;color:var(--text-muted)}
.footer-grid{display:grid;grid-template-columns:1.35fr 1fr 1.4fr 1fr;gap:40px;padding-bottom:48px}
.footer-grid h2{margin:0 0 16px;font:700 15px/1.4 var(--font-body)}
.footer-grid a{display:inline-flex;align-items:center;min-height:28px;text-decoration:none}
.footer-grid a:hover,.footer-bottom a:hover{color:var(--accent-dark)}
.footer-grid li{margin-bottom:5px}.footer-brand p{margin-top:18px;font-size:14px}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:22px;padding-bottom:32px;border-top:1px solid var(--border);font-size:13px}
.footer-bottom a{margin-left:16px;text-decoration:none}
.prose{max-width:800px}.prose p,.prose li{line-height:1.85}.prose h2{margin:2em 0 .7em}.prose h3{margin:1.5em 0 .6em}
.prose a{color:var(--accent-dark)}.prose ul{list-style:disc;padding-left:1.5em}
#server-status{position:relative;max-width:100%;overflow:hidden;margin-bottom:24px}
#server-status+*{margin-top:24px}
body:has(.toc-tabs) section[id]{scroll-margin-top:var(--toc-offset)}
@media(max-width:1180px){.nav-tabs a{padding-inline:8px;font-size:14px}.nav-tabs a::after{left:8px;right:8px}}
@media(max-width:1060px){.nav-bar{flex-wrap:wrap;padding:8px 10px 0 16px}.nav-tools{margin-left:auto}.nav-tabs{order:3;width:100%;overflow-x:auto;scrollbar-width:none}.nav-tabs::-webkit-scrollbar{display:none}.nav-tabs a{min-height:44px}.nav-tabs a::after{bottom:4px}.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:768px){h1{font-size:clamp(28px,6vw,40px);letter-spacing:-.015em}.nav-bar{flex-wrap:nowrap;padding:6px 8px 6px 12px}.nav-tabs{display:none}.nav-tools{margin-left:auto}.menu-toggle{display:grid}.lang-wrap{display:none}.footer-grid{gap:28px}}
@media(max-width:640px){
  :root{--gutter:16px;--toc-offset:104px}
  .no-break{white-space:normal}
  .site-header{padding:12px 12px 0}.nav-tools{gap:5px}.nav-tools .btn{padding-inline:12px}
  .nav-tools .btn svg{display:none}.brand-word{font-size:17px}
  .sec{padding-top:56px;padding-bottom:56px}.footer-grid{grid-template-columns:1fr 1fr}
  .footer-bottom a{margin:0 12px 0 0}
  .tilt,[class*="tilt-"]{transform:none}
  .decor,.halo-decor,[class*="stripe-halo"]{max-width:100%;overflow-x:clip}
}
@media(max-width:370px){.brand-mark{width:28px;height:28px}.brand-word{font-size:16px}.nav-tools .btn{font-size:13px}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal,.reveal.pending{opacity:1;transform:none;transition:none}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}