:root {
  --bg:#276AA5;
  --bg-deep:#1C5893;
  --bg-lift:#2370B6;
  --bg-panel:#FFFFFF;
  --bg-panel-2:#F3F6FA;
  --border:#DCE3EC;
  --accent:#4FA8FF;
  --accent-dark:#0B5CC2;
  --accent-dark-hover:#0A52AE;
  --accent-tint:#E8F0FB;
  --sun:#FFC63A;
  --blossom:#FF8DB3;
  --text:#13243B;
  --text-muted:#586A80;
  --text-faint:#8C9BAE;
  --success:#1FA971;
  --warn:#E9A31B;
  --error:#E0484F;
  --hill-back:#1A5288;
  --hill-mid:#2A71B3;
  --hill-front:#3480C2;
  --frame:#E8EEF5;
  --on-dark:#FFFFFF;
  --on-dark-soft:rgba(255,255,255,.84);
  --on-dark-muted:rgba(255,255,255,.66);
  --glass:rgba(255,255,255,.08);
  --glass-strong:rgba(255,255,255,.13);
  --line-on-dark:rgba(255,255,255,.22);
  --line-btn:rgba(255,255,255,.72);
  --rim:rgba(255,255,255,.16);
  --rim-line:rgba(255,255,255,.34);
  --crest:rgba(255,255,255,.07);
  --accent-ring:rgba(79,168,255,.28);
  --success-ring:rgba(31,169,113,.18);
  --veil:rgba(19,36,59,.5);
  --clear:transparent;
  --shadow-float:0 1px 2px rgba(7,27,54,.16),0 6px 14px rgba(7,27,54,.16),0 22px 40px rgba(7,27,54,.2),0 52px 90px -24px rgba(7,27,54,.42);
  --shadow-phone:0 2px 3px rgba(7,27,54,.18),0 10px 22px rgba(7,27,54,.2),0 34px 60px -10px rgba(7,27,54,.4);
  --shadow-btn:inset 0 1px 0 rgba(255,255,255,.16),0 1px 2px rgba(6,28,60,.25),0 10px 22px -6px rgba(6,28,60,.45);
  --shadow-fab:0 0 0 4px rgba(11,92,194,.14),0 8px 16px -4px rgba(11,92,194,.55);
  --shadow-seg:0 1px 2px rgba(19,36,59,.12);
  --shadow-knob:0 1px 2px rgba(19,36,59,.28);
  --shadow-card:0 2px 4px rgba(7,27,54,.04),0 16px 36px -18px rgba(7,27,54,.18);
  --frame-edge:inset 0 0 0 1px rgba(255,255,255,.92),inset 0 -2px 0 rgba(19,36,59,.06);
  --font-display:'Inter','Noto Sans SC','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
  --font-body:'Inter','Noto Sans SC','PingFang SC','Hiragino Sans GB','Microsoft YaHei',system-ui,sans-serif;
  --font-mono:'JetBrains Mono','SFMono-Regular',Consolas,'Liberation Mono',monospace;
  --r-xl:32px;
  --r-lg:24px;
  --r-md:14px;
  --r-sm:10px;
  --r-xs:8px;
  --r-dot:50%;
  --r-pill:999px;
  --r-device:31px;
  --r-screen:25px;
  --r-tiny:4px;
  --r-seg:9px;
  --r-segment:7px;
  --r-geometry:2px;
  --gutter:40px;
  --content-width:1280px;
  --reading-width:800px;
  --header-height:64px;
  --section-gap:96px;
  --weight-body:400;
  --weight-medium:500;
  --weight-semibold:600;
  --weight-bold:700;
  --weight-display:800;
  --text-xs:12px;
  --text-sm:14px;
  --text-base:16px;
  --text-lead:18px;
  --duration:.18s;
  --reveal-duration:.55s;
}
*,*::before,*::after {box-sizing:border-box}
html {-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}
body {margin:0;font-family:var(--font-body);font-size:var(--text-base);line-height:1.7;color:var(--on-dark);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
main {background:var(--bg-panel);color:var(--text)}
html.nav-open {overflow:hidden}
[hidden] {display:none!important}
a {color:inherit;text-decoration:none}
button,input,select,textarea {font:inherit}
button {cursor:pointer}
button,a,input,summary,select,textarea {-webkit-tap-highlight-color:var(--clear)}
button {color:inherit}
img,svg {vertical-align:middle}
img {max-width:100%;height:auto}
svg {flex-shrink:0}
ul,ol {padding-inline-start:1.5em}
h1,h2,h3,h4 {font-family:var(--font-display);font-weight:var(--weight-display);line-height:1.25;text-wrap:balance;overflow-wrap:break-word}
h1 {font-size:clamp(34px,3.1vw,44px);letter-spacing:-.015em;line-height:1.15}
h2 {font-size:32px;letter-spacing:-.01em}
h3 {font-size:22px}
p {margin-block:0 1.2em}
code,kbd,pre {font-family:var(--font-mono)}
code {overflow-wrap:anywhere;font-size:.9em}
pre {min-width:0;max-width:100%;overflow-x:auto;padding:24px;border-radius:var(--r-md);background:var(--bg-panel-2);color:var(--text);line-height:1.7;tab-size:2}
pre code {overflow-wrap:normal;word-break:normal;white-space:pre}
:focus-visible {outline:2px solid var(--accent-dark);outline-offset:4px}
::selection {background:var(--accent-tint);color:var(--text)}
.wrap {width:100%;max-width:var(--content-width);margin-inline:auto;padding-inline:var(--gutter)}
.reading {width:100%;max-width:calc(var(--reading-width) + var(--gutter) * 2);margin-inline:auto;padding-inline:var(--gutter)}
.section {padding-top:var(--section-gap);padding-bottom:var(--section-gap)}
.section--cool {background:var(--bg-panel-2);color:var(--text);border-radius:var(--r-xl)}
.section--sea,.trust-band {background:var(--bg);color:var(--on-dark)}
.trust-band {padding-top:64px;padding-bottom:64px;overflow-x:clip}
.trust-band a {color:var(--on-dark);text-decoration:underline;text-underline-offset:4px}
.grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.grid>* {min-width:0}
.stack>*+* {margin-top:24px}
.nowrap {white-space:nowrap}
.muted {color:var(--text-muted)}
.mono {font-family:var(--font-mono)}
.link {color:var(--accent-dark);text-decoration:underline;text-underline-offset:4px}
.icon {width:20px;height:20px;flex-shrink:0}
.ln {fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.skip {position:absolute;left:16px;top:12px;z-index:100;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;padding:0;border-radius:var(--r-sm);background:var(--bg-panel);color:var(--accent-dark);font-weight:var(--weight-semibold);font-size:var(--text-sm)}
.skip:focus {width:auto;height:auto;overflow:visible;clip-path:none;padding:8px 14px}
.actions {margin-top:20px;display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.btn {display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:10px 24px;border:0;border-radius:var(--r-md);font-size:15.5px;line-height:1.5;font-weight:var(--weight-bold);letter-spacing:.005em;text-align:center;transition:background-color var(--duration),box-shadow var(--duration),border-color var(--duration)}
.btn svg {width:17px;height:17px;flex-shrink:0}
.btn--solid {background:var(--accent-dark);color:var(--on-dark);box-shadow:var(--shadow-btn)}
.btn--solid:hover,.btn--solid.is-hover {background:var(--accent-dark-hover);color:var(--on-dark)}
.btn--line {color:var(--on-dark);border:1.5px solid var(--line-btn);background:var(--clear)}
.btn--line:hover {background:var(--glass-strong);color:var(--on-dark);border-color:var(--on-dark)}
.btn--outline {background:var(--bg-panel);color:var(--accent-dark);border:1px solid var(--border)}
.btn--outline:hover {background:var(--accent-tint);color:var(--accent-dark);border-color:var(--accent-dark)}
.btn:disabled,.btn[aria-disabled="true"] {background:var(--bg-panel-2);color:var(--text-muted);border:1px solid var(--border);box-shadow:none;cursor:not-allowed}
.btn.is-focus {outline:2px solid var(--accent-dark);outline-offset:4px}
.card {min-width:0;padding:32px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-panel);color:var(--text);box-shadow:var(--shadow-card)}
.card h3 {margin-top:0}
.panel {min-width:0;padding:40px;border-radius:var(--r-xl);background:var(--bg-panel-2);color:var(--text)}
.prose {min-width:0;overflow-wrap:break-word}
.prose h2 {margin-top:2.5em;margin-bottom:.8em;scroll-margin-top:96px}
.prose h3 {margin-top:1.8em}
.prose a {color:var(--accent-dark);text-decoration:underline;text-underline-offset:3px}
.prose li+li {margin-top:.5em}
.prose> :first-child {margin-top:0}
.prose blockquote {margin-inline:0}
.reveal {opacity:1;transform:none}
.reveal.is-observed {opacity:0;transform:translateY(16px);transition:opacity var(--reveal-duration) ease,transform var(--reveal-duration) ease}
.reveal.shown {opacity:1;transform:none}

/* 页头使用独立宽版心，不继承正文阅读宽度。 */
#site-header {position:relative;z-index:40;background:var(--bg-deep);color:var(--on-dark)}
body:has(.hero) #site-header,.masthead {position:absolute;top:0;left:0;right:0;z-index:40;background:var(--clear);color:var(--on-dark)}
.masthead__row {position:relative;width:100%;max-width:min(100%,calc(1280px + var(--gutter) * 2));margin-inline:auto;padding-inline:var(--gutter);height:var(--header-height);display:flex;align-items:center;gap:16px}
.brand {display:flex;align-items:center;gap:10px;color:var(--on-dark);flex-shrink:0}
.brand__mark {width:32px;height:32px;display:block;flex-shrink:0}
.brand__name {font-family:var(--font-display);font-weight:var(--weight-display);font-size:16.5px;letter-spacing:-.005em}
.desktop-nav {margin-left:auto;min-width:0}
.navpill {display:flex;align-items:center;list-style:none;margin:0;padding:4px;gap:2px;border-radius:var(--r-pill);background:var(--glass);color:var(--on-dark);box-shadow:inset 0 0 0 1px var(--line-on-dark)}
.navpill a {display:block;padding:7px 14px;border-radius:var(--r-pill);font-size:14px;line-height:1.7;font-weight:var(--weight-medium);white-space:nowrap;color:var(--on-dark-soft);transition:color var(--duration),background-color var(--duration)}
.navpill a:hover {color:var(--on-dark);background:var(--glass-strong)}
.navpill a[aria-current="page"] {background:var(--bg-panel);color:var(--text);font-weight:var(--weight-semibold)}
.header-tools {display:flex;align-items:center;gap:8px;flex-shrink:0}
.language-picker {position:relative}
.lang {display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 13px;border-radius:var(--r-pill);border:1px solid var(--line-on-dark);background:var(--clear);color:var(--on-dark-soft);font-size:13.5px;white-space:nowrap;cursor:pointer;list-style:none}
.lang::-webkit-details-marker {display:none}
.lang svg {width:15px;height:15px}
.lang__caret {font-size:11px;color:var(--on-dark-soft)}
.lang__short {display:none}
.language-menu {position:absolute;right:0;top:calc(100% + 10px);width:190px;padding:8px;border-radius:var(--r-md);background:var(--bg-panel);color:var(--text);box-shadow:var(--shadow-float);list-style:none;margin:0}
.language-menu a {display:flex;align-items:center;min-height:44px;width:100%;padding:8px 12px;border-radius:var(--r-xs)}
.language-menu a:hover,.language-menu a[aria-current="true"] {background:var(--accent-tint);color:var(--accent-dark)}
.menu-toggle {display:none;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px;border:1px solid var(--line-on-dark);border-radius:var(--r-sm);background:var(--clear);color:var(--on-dark)}
.menu-toggle svg {width:22px;height:22px}
.mobile-drawer {display:none}
.menu-veil {position:fixed;inset:var(--header-height) 0 0;z-index:30;background:var(--veil);color:var(--on-dark);border:0;width:100%;padding:0}
.navpill a:focus-visible,.lang:focus-visible,.menu-toggle:focus-visible,.hero .btn:focus-visible,.plat a:focus-visible {outline-color:var(--accent)}
.static-mobile {display:none}
.site-footer {padding-top:72px;padding-bottom:32px;background:var(--bg);color:var(--on-dark)}
.footer-grid {display:grid;grid-template-columns:1.2fr 1fr 1.3fr;gap:56px}
.footer-grid>* {min-width:0}
.footer-brand p {margin-top:20px;max-width:340px;font-size:14px;color:var(--on-dark-soft)}
.footer-heading {font-size:15px;font-weight:var(--weight-bold);margin:0 0 16px}
.footer-links {list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px}
.footer-links a {display:block;padding-block:4px;font-size:14px;color:var(--on-dark-soft)}
.footer-links a:hover,.footer-bottom a:hover {color:var(--on-dark);text-decoration:underline;text-underline-offset:4px}
.footer-hot {grid-template-columns:1fr}
.footer-languages {margin-top:36px;display:flex;flex-wrap:wrap;gap:8px 20px;font-size:14px}
.footer-languages a {padding-block:8px}
.footer-languages [aria-current="true"] {text-decoration:underline;text-underline-offset:5px}
.footer-bottom {margin-top:24px;padding-top:24px;border-top:1px solid var(--line-on-dark);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;font-size:13px;color:var(--on-dark-soft)}
.footer-legal {display:flex;flex-wrap:wrap;gap:20px}
@media (max-width:1180px) {
  .navpill a {padding:7px 10px;font-size:13.5px}
}
@media (max-width:1100px) {
  .desktop-nav {display:none}
  .header-tools {margin-left:auto}
  .menu-toggle {display:inline-flex}
  .mobile-drawer {position:absolute;left:0;right:0;top:var(--header-height);padding:20px var(--gutter) 28px;background:var(--bg-panel);color:var(--text);max-height:calc(100dvh - var(--header-height));overflow-y:auto;overscroll-behavior:contain;border-radius:0 0 var(--r-lg) var(--r-lg);box-shadow:var(--shadow-card)}
  .mobile-drawer:not([hidden]) {display:block}
  .mobile-drawer ul {list-style:none;padding:0;margin:0}
  .mobile-drawer a {display:flex;align-items:center;min-height:44px;width:100%;padding:10px 16px;border-radius:var(--r-sm)}
  .mobile-drawer a[aria-current="page"],.mobile-drawer a[aria-current="true"] {background:var(--accent-tint);color:var(--accent-dark);font-weight:var(--weight-bold)}
  .mobile-languages {margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
  .static-mobile {display:block;position:relative}
  .static-mobile>summary {display:grid;place-items:center;min-width:44px;min-height:44px;list-style:none;cursor:pointer}
  .static-mobile>summary::-webkit-details-marker {display:none}
  .static-mobile nav {position:absolute;right:0;top:100%;width:min(280px,calc(100vw - 32px));padding:12px;background:var(--bg-panel);color:var(--text);border-radius:var(--r-md);box-shadow:var(--shadow-float);max-height:calc(100dvh - 90px);overflow-y:auto}
  .static-mobile nav a {display:block;min-height:44px;padding:10px 16px;border-radius:var(--r-sm)}
}
@media (max-width:768px) {
  :root {--gutter:20px;--section-gap:64px}
  h1 {font-size:clamp(24px,4vw,30px)}
  h2 {font-size:26px}
  h3 {font-size:20px}
  .grid {grid-template-columns:minmax(0,1fr)}
  .card,.panel {padding:24px}
  .brand__name {font-size:15px}
  .masthead__row {gap:8px}
  .footer-grid {grid-template-columns:minmax(0,1fr);gap:32px}
  .footer-brand p {max-width:none}
  .site-footer {padding-top:48px}
}
@media (max-width:640px) {
  .tilt,[data-tilt] {transform:none!important}
  .lang__full {display:none}
  .lang__short {display:inline}
  .lang {padding-inline:10px;gap:5px}
  .brand {gap:8px}
  .brand__name {font-size:14px}
  .brand__mark {width:28px;height:28px}
  .header-tools {gap:4px;margin-left:auto}
  pre {padding:16px}
}
@media (max-width:360px) {
  :root {--gutter:16px}
  .brand__name {font-size:13px}
  .lang svg {display:none}
}
@media (prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto}
  *,*::before,*::after {transition:none!important;animation:none!important}
  .reveal.is-observed {opacity:1;transform:none}
}