:root{
  --color-canvas:#FFFFFF;
  --color-panel:#F7F9FC;
  --color-panel-strong:#EFF3F9;
  --color-line:#E4E9F1;
  --color-primary:#2467E6;
  --color-primary-deep:#1A4DB4;
  --color-primary-soft:rgba(36,103,230,.09);
  --color-text:#14181F;
  --color-muted:#5B6472;
  --color-success:#12B886;
  --color-success-soft:rgba(18,184,134,.14);
  --color-warning:#FFC331;
  --color-warning-deep:#C98A00;
  --color-error:#E5484D;
  --color-code-comment:#9AA3B0;
  --color-grid:rgba(20,24,31,.05);
  --color-trace:rgba(36,103,230,.10);
  --color-ring:rgba(20,24,31,.07);
  --color-overlay:rgba(20,24,31,.38);
  --color-footer:#101C35;
  --color-footer-text:#FFFFFF;
  --color-footer-muted:#B9C5DA;
  --color-flag-red:#D5424D;
  --color-flag-blue:#35459C;
  --color-flag-japan:#CE3D51;
  --color-flag-korea:#2E56A5;
  --font-display:'Inter','Noto Sans SC','Noto Sans JP','Noto Sans KR',-apple-system,'PingFang SC','Hiragino Sans','Malgun Gothic',sans-serif;
  --font-body:'Inter','Noto Sans SC','Noto Sans JP','Noto Sans KR',-apple-system,'PingFang SC','Hiragino Sans','Malgun Gothic',sans-serif;
  --font-mono:'JetBrains Mono','SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;
  --radius-xl:26px;
  --radius-lg:18px;
  --radius-md:12px;
  --radius-sm:8px;
  --radius-pill:999px;
  --shadow-editor:0 34px 80px -28px rgba(26,77,180,.24),0 12px 30px -14px rgba(20,24,31,.12),0 0 0 1px var(--color-ring);
  --shadow-card:0 24px 54px -34px rgba(20,24,31,.28),0 0 0 1px var(--color-ring);
  --shadow-pill:0 12px 28px -12px rgba(20,24,31,.20),0 0 0 1px var(--color-ring);
  --shadow-button:0 12px 26px -10px rgba(36,103,230,.48);
  --gradient-title:linear-gradient(96deg,var(--color-primary-deep) 0%,var(--color-primary) 46%,var(--color-warning-deep) 108%);
  --gradient-band:linear-gradient(115deg,var(--color-primary-deep),var(--color-primary));
  --content-max:1352px;
  --reading-max:57rem;
  --gutter:clamp(16px,3vw,36px);
  --section-space:clamp(64px,9vw,116px);
  --header-height:66px;
  --toc-offset:82px;
  --motion-fast:160ms;
  --motion-base:420ms;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--color-canvas)}
html.nav-open{overflow:hidden}
body{margin:0;min-width:320px;overflow-x:hidden;background:var(--color-canvas);color:var(--color-text);font-family:var(--font-body);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body:has(.hero),body:has(.decor-zone){overflow-x:clip}
img,svg,video{display:block;max-width:100%}
button,input,select,textarea{font:inherit}
button,a{touch-action:manipulation}
button{border:0}
a{color:var(--color-primary);text-decoration:none}
a:hover{color:var(--color-primary-deep)}
ul,ol{margin:0;padding:0}
li{min-width:0}
p{margin:0 0 1.15em}
h1,h2,h3,h4{margin:0;color:var(--color-text);font-family:var(--font-display);line-height:1.18;text-wrap:balance}
h1,.hero-title{font-size:clamp(52px,5vw,72px);font-weight:800;letter-spacing:-.02em;line-height:1.1}
h2{font-size:clamp(32px,3.3vw,48px);font-weight:780;letter-spacing:-.015em}
h3{font-size:clamp(21px,2vw,28px);font-weight:730}
small{color:var(--color-muted)}
strong{font-weight:700}
code,kbd,samp{font-family:var(--font-mono)}
:not(pre)>code{padding:.12em .42em;border-radius:var(--radius-sm);background:var(--color-panel-strong);color:var(--color-primary-deep);font-size:.9em;overflow-wrap:anywhere}
pre{max-width:100%;overflow-x:auto;padding:22px;border-radius:var(--radius-lg);background:var(--color-footer);color:var(--color-footer-text);box-shadow:var(--shadow-card);-webkit-overflow-scrolling:touch}
pre code{white-space:pre;overflow-wrap:normal}
hr{border:0;border-top:1px solid var(--color-line)}
::selection{background:var(--color-warning);color:var(--color-text)}
.wrap,.shell,.reading-wrap{width:100%;margin-inline:auto;padding-inline:var(--gutter)}
.wrap,.shell{max-width:var(--content-max)}
.reading-wrap{max-width:calc(var(--reading-max) + var(--gutter) * 2)}
.section{padding-top:var(--section-space);padding-bottom:var(--section-space)}
.section-sm{padding-top:clamp(42px,6vw,72px);padding-bottom:clamp(42px,6vw,72px)}
.panel{min-width:0;border-radius:var(--radius-xl);background:var(--color-panel);box-shadow:var(--shadow-card)}
.card{min-width:0;padding:clamp(22px,3vw,34px);border-radius:var(--radius-xl);background:var(--color-canvas);box-shadow:var(--shadow-card)}
.muted{color:var(--color-muted)}
.eyebrow{display:inline-flex;align-items:center;gap:9px;max-width:100%;padding:8px 15px;border-radius:var(--radius-pill);background:var(--color-panel);box-shadow:0 0 0 1px var(--color-line);font-family:var(--font-mono);font-size:12.5px;color:var(--color-text)}
.eyebrow-dot{width:7px;height:7px;flex-shrink:0;border-radius:50%;background:var(--color-success)}
.gradient-text{background:var(--gradient-title);background-clip:text;-webkit-background-clip:text;color:transparent}
.keep-word{white-space:nowrap}
.badge,.tag,.chip{display:inline-flex;align-items:center;gap:7px;max-width:100%;border-radius:var(--radius-pill)}
.badge{padding:6px 12px;background:var(--color-primary-soft);color:var(--color-primary-deep);font-family:var(--font-mono);font-size:12px;font-weight:650}
.tag{padding:6px 12px;background:var(--color-panel-strong);color:var(--color-muted);font-size:12px;font-weight:650;overflow:hidden}
.chip{padding:7px 14px;background:var(--color-panel);box-shadow:0 0 0 1px var(--color-line);color:var(--color-muted);font-size:13px}
.chip svg,.badge svg,.tag svg{width:14px;height:14px;flex-shrink:0}
.button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:9px;padding:12px 27px;border-radius:var(--radius-pill);cursor:pointer;font-weight:680;line-height:1.2;transition:transform var(--motion-fast),background var(--motion-fast),color var(--motion-fast),box-shadow var(--motion-fast)}
.button:hover{transform:translateY(-2px)}
.button-primary{background:var(--color-primary);color:var(--color-canvas);box-shadow:var(--shadow-button)}
.button-primary:hover{background:var(--color-primary-deep);color:var(--color-canvas)}
.button-secondary{background:var(--color-canvas);color:var(--color-text);box-shadow:0 0 0 1.5px var(--color-line)}
.button-secondary:hover{color:var(--color-primary);box-shadow:0 0 0 1.5px var(--color-primary)}
.button-quiet{background:var(--color-panel);color:var(--color-primary-deep)}
.button[disabled],.button.is-disabled{cursor:not-allowed;opacity:.55;transform:none}
.button svg{width:16px;height:16px;flex-shrink:0}
.button-primary svg{color:var(--color-warning)}
.button-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.site-top{position:relative;z-index:80;border-bottom:1px solid var(--color-line);background:var(--color-canvas)}
.site-topbar{display:flex;height:var(--header-height);align-items:center;gap:22px}
.site-brand{display:flex;flex:none;align-items:center;gap:10px;color:var(--color-text)}
.site-brand:hover{color:var(--color-text)}
.site-logo{width:34px;height:34px;flex-shrink:0}
.site-brand-copy{display:flex;align-items:baseline;gap:7px;white-space:nowrap}
.site-brand-name{font-size:17.5px;font-weight:820;letter-spacing:-.01em}
.site-brand-zh{color:var(--color-muted);font-size:12px;font-weight:520}
.desktop-nav{min-width:0}
.desktop-nav ul{display:flex;align-items:center;gap:2px;list-style:none}
.nav-link{display:flex;min-height:40px;align-items:center;gap:6px;padding:8px 10px;border-radius:var(--radius-pill);color:var(--color-muted);font-size:13px;white-space:nowrap;transition:background var(--motion-fast),color var(--motion-fast)}
.nav-link:hover{background:var(--color-panel);color:var(--color-text)}
.nav-link.is-current{background:var(--color-primary-soft);color:var(--color-primary);font-weight:680}
.nav-icon{width:15px;height:15px;flex-shrink:0}
.nav-icon path,.nav-icon circle,.nav-icon line,.nav-icon ellipse{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.header-tools{display:flex;flex:none;align-items:center;gap:9px;margin-left:auto}
.language-box{position:relative}
.language-trigger{display:inline-flex;min-height:38px;align-items:center;gap:6px;padding:7px 13px;border-radius:var(--radius-pill);background:var(--color-canvas);color:var(--color-muted);box-shadow:0 0 0 1px var(--color-line);cursor:pointer}
.language-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:92;display:none;width:166px;padding:8px;border-radius:var(--radius-md);background:var(--color-canvas);box-shadow:var(--shadow-card)}
.language-box.is-open .language-menu{display:grid}
.language-menu a{display:block;padding:9px 11px;border-radius:var(--radius-sm);color:var(--color-muted);font-size:13px}
.language-menu a:hover,.language-menu a[aria-current="true"]{background:var(--color-primary-soft);color:var(--color-primary)}
.header-login{display:inline-flex;min-height:38px;align-items:center;justify-content:center;padding:8px 20px;border-radius:var(--radius-pill);background:var(--color-primary);color:var(--color-canvas);font-size:13.5px;font-weight:680;box-shadow:var(--shadow-button)}
.header-login:hover{background:var(--color-primary-deep);color:var(--color-canvas)}
.menu-toggle{display:none;min-width:44px;min-height:44px;place-items:center;border-radius:var(--radius-pill);background:var(--color-panel);color:var(--color-text);cursor:pointer}
.menu-toggle svg{width:21px;height:21px}
.mobile-drawer{position:absolute;top:var(--header-height);right:var(--gutter);left:var(--gutter);z-index:91;display:none;max-height:calc(100dvh - var(--header-height) - 12px);overflow-y:auto;padding:10px;border-radius:var(--radius-lg);background:var(--color-canvas);box-shadow:var(--shadow-editor);overscroll-behavior:contain}
.mobile-drawer.is-open{display:block}
.mobile-drawer ul{list-style:none}
.mobile-drawer a{display:flex;width:100%;min-height:48px;align-items:center;gap:10px;padding:11px 14px;border-radius:var(--radius-md);color:var(--color-text)}
.mobile-drawer a:hover,.mobile-drawer a.is-current{background:var(--color-primary-soft);color:var(--color-primary)}
.drawer-label{padding:15px 14px 5px;color:var(--color-muted);font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.nav-veil{position:fixed;inset:var(--header-height) 0 0;z-index:70;display:none;background:var(--color-overlay)}
.nav-veil.is-open{display:block}
.site-footer{margin-top:var(--section-space);background:var(--color-footer);color:var(--color-footer-text)}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1.2fr .8fr;gap:clamp(28px,5vw,70px);padding-top:70px;padding-bottom:52px}
.footer-brand{display:flex;align-items:center;gap:11px;color:var(--color-footer-text)}
.footer-brand:hover{color:var(--color-footer-text)}
.footer-brand img{width:38px;height:38px}
.footer-brand strong{font-size:19px}
.footer-about{max-width:320px;margin-top:17px;color:var(--color-footer-muted);font-size:14px}
.footer-title{margin-bottom:16px;color:var(--color-footer-text);font-size:14px;font-weight:750}
.footer-links{display:grid;gap:9px;list-style:none}
.footer-links a{color:var(--color-footer-muted);font-size:13.5px}
.footer-links a:hover{color:var(--color-footer-text)}
.footer-keywords{display:flex;flex-wrap:wrap;gap:8px;list-style:none}
.footer-keywords a{display:inline-flex;padding:6px 10px;border-radius:var(--radius-pill);background:var(--color-primary-soft);color:var(--color-footer-muted);font-size:12px}
.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding-top:22px;padding-bottom:26px;border-top:1px solid var(--color-primary-soft);color:var(--color-footer-muted);font-size:12.5px}
.footer-legal{display:flex;flex-wrap:wrap;gap:16px}
.reveal{transition:opacity var(--motion-base) ease,transform var(--motion-base) ease}
.reveal.pending{opacity:0;transform:translateY(16px)}
.reveal.shown{opacity:1;transform:none}
.prose{font-size:17px;line-height:1.85}
.prose h2{margin-top:2em;margin-bottom:.75em}
.prose h3{margin-top:1.6em;margin-bottom:.6em}
.prose ul,.prose ol{margin:1em 0 1.4em 1.4em}
.prose li{margin:.45em 0}
.prose img{height:auto;border-radius:var(--radius-lg)}
.prose table{border-collapse:collapse}
.prose > .data-table{display:block;max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.decor-zone{position:relative;overflow-x:clip}
.tilt{transform:rotate(-.4deg)}
body:has(.toc-tabs) section[id]{scroll-margin-top:var(--toc-offset)}
@media (max-width:1180px){
  .desktop-nav{display:none}
  .menu-toggle{display:grid}
  .header-tools{margin-left:auto}
}
@media (max-width:768px){
  :root{--header-height:62px;--toc-offset:76px}
  h1,.hero-title{font-size:clamp(28px,9.7vw,40px);letter-spacing:-.015em}
  h2{font-size:clamp(27px,8vw,36px)}
  .site-topbar{height:var(--header-height);gap:8px}
  .site-brand-zh,.language-trigger{display:none}
  .header-login{min-height:36px;padding:7px 15px}
  .header-tools{margin-left:auto}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .wrap,.shell,.reading-wrap{padding-inline:max(16px,var(--gutter))}
  .tilt,[class*="tilt"]{transform:none}
  .button-row{align-items:stretch}
  .button-row .button{flex:1 1 145px}
  .card{padding:20px}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{align-items:flex-start;flex-direction:column}
  .prose{font-size:16px}
}
@media (max-width:380px){
  .site-brand-copy{display:none}
  .header-login{padding-inline:13px}
}
@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}
}