@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/assets/fonts/manrope-latin-ext.3911b66d9f.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/assets/fonts/manrope-latin.a30ddcd349.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Courier Prime"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/assets/fonts/courier-prime-latin-ext.efbea074e3.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Courier Prime"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/assets/fonts/courier-prime-latin.f09844e1f4.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {

  --slate-25: #FBFCFD;
  --slate-50: #F4F6F8;
  --slate-100: #ECEEF1;
  --slate-200: #DDE0E4;
  --slate-300: #C8CCD2;
  --slate-400: #9FA3AA;
  --slate-500: #696E74;
  --slate-600: #52565D;
  --slate-700: #3B3F44;
  --slate-800: #272A2F;
  --slate-900: #1B1E21;
  --slate-950: #0E0F12;

  --ink-500: #424E60;
  --ink-600: #2E3B4E;
  --ink-700: #212E41;
  --ink-800: #1A273A;
  --ink-850: #142032;
  --ink-900: #101A29;
  --ink-950: #070F19;
  --ink-1000: #03060D;

  --blue-50: #E9F7FF;
  --blue-100: #D3EEFF;
  --blue-200: #ACE0FE;
  --blue-300: #7BCAF6;
  --blue-400: #4EB5EA;
  --blue-500: #1AA0DA;
  --blue-600: #0088BC;
  --blue-700: #006D98;
  --blue-800: #005476;
  --blue-900: #003A54;

  --sand-50: #FBF6F0;
  --sand-100: #F7ECE0;
  --sand-200: #EDDBC6;
  --sand-300: #E0C8AB;
  --sand-400: #D0B28E;
  --sand-500: #C19E72;
  --sand-700: #82623A;

  --ok-500: #3DA454;
  --ok-600: #1D8139;
  --ok-300: #86D391;
  --warn-500: #E6A231;
  --warn-600: #AA5C08;
  --warn-300: #F5C984;
  --danger-500: #E24947;
  --danger-600: #C3222A;
  --danger-300: #FF9592;

  --eq-ink-0: #B3A0FF;
  --eq-ink-1: #A8A5FF;
  --eq-ink-2: #9DA9FF;
  --eq-ink-3: #92ADFF;
  --eq-ink-4: #86B1FF;
  --eq-ink-5: #78B4FF;
  --eq-ink-6: #67B8FF;
  --eq-ink-7: #4FBCFF;
  --eq-ink-8: #37BFFA;
  --eq-ink-9: #18C3F3;
  --eq-ink-10: #00C5E9;
  --eq-ink-11: #00C7DE;
  --eq-ink-12: #00C9D4;
  --eq-light-0: #8871D6;
  --eq-light-1: #7C75DA;
  --eq-light-2: #6F79DD;
  --eq-light-3: #617DDE;
  --eq-light-4: #5181DE;
  --eq-light-5: #3D86DC;
  --eq-light-6: #1F8AD9;
  --eq-light-7: #008ECF;
  --eq-light-8: #0090C3;
  --eq-light-9: #0092B8;
  --eq-light-10: #0094AF;
  --eq-light-11: #0096A7;
  --eq-light-12: #00979F;
  --eq-ink-sweep: linear-gradient(90deg, #B3A0FF, #A8A5FF, #9DA9FF, #92ADFF, #86B1FF, #78B4FF, #67B8FF, #4FBCFF, #37BFFA, #18C3F3, #00C5E9, #00C7DE, #00C9D4);
  --eq-light-sweep: linear-gradient(90deg, #8871D6, #7C75DA, #6F79DD, #617DDE, #5181DE, #3D86DC, #1F8AD9, #008ECF, #0090C3, #0092B8, #0094AF, #0096A7, #00979F);
}

:root {

  --w-bg: var(--slate-50);
  --w-surface: #fff;
  --w-surface-sunken: var(--slate-100);
  --w-surface-raised: #fff;

  --w-hairline: color-mix(in srgb, var(--ink-900) 6%, transparent);
  --w-line: color-mix(in srgb, var(--ink-900) 11%, transparent);
  --w-line-strong: color-mix(in srgb, var(--ink-900) 22%, transparent);

  --w-text: var(--slate-900);
  --w-text-dim: var(--slate-500);
  --w-text-faint: var(--slate-400);
  --w-text-inverse: var(--slate-25);

  --w-text-heading: var(--w-text);

  --w-accent: var(--blue-500);
  --w-accent-ink: var(--blue-700);
  --w-accent-solid: var(--blue-700);
  --w-accent-soft: color-mix(in srgb, var(--blue-500) 12%, transparent);
  --w-accent-soft-hover: color-mix(in srgb, var(--blue-500) 19%, transparent);
  --w-accent-line: color-mix(in srgb, var(--blue-500) 34%, transparent);

  --w-primary-bg: var(--ink-950);
  --w-primary-bg-hover: var(--ink-900);
  --w-primary-fg: #fff;

  --w-hover: color-mix(in srgb, var(--ink-900) 5%, transparent);
  --w-hover-strong: color-mix(in srgb, var(--ink-900) 9%, transparent);
  --w-pressed: color-mix(in srgb, var(--ink-900) 13%, transparent);
  --w-focus-ring: color-mix(in srgb, var(--blue-500) 45%, transparent);
  --w-selection: color-mix(in srgb, var(--blue-500) 22%, transparent);

  --w-ok: var(--ok-600);
  --w-ok-dot: var(--ok-500);
  --w-ok-soft: color-mix(in srgb, var(--ok-500) 13%, transparent);
  --w-warn: var(--warn-600);
  --w-warn-dot: var(--warn-500);
  --w-warn-soft: color-mix(in srgb, var(--warn-500) 16%, transparent);
  --w-danger: var(--danger-600);
  --w-danger-dot: var(--danger-500);
  --w-danger-soft: color-mix(in srgb, var(--danger-500) 12%, transparent);
  --w-danger-fg-on-solid: #fff;

  --w-pro-bg: var(--sand-100);
  --w-pro-line: var(--sand-300);
  --w-pro-ink: var(--sand-700);

  --w-eq-sweep: var(--eq-light-sweep);
  --w-eq-0: var(--eq-light-0);
  --w-eq-6: var(--eq-light-6);
  --w-eq-12: var(--eq-light-12);

  --w-shadow-color: 16 26 41;
  --w-e1: 0 1px 2px rgb(var(--w-shadow-color) / .05),
          0 1px 3px rgb(var(--w-shadow-color) / .04);
  --w-e2: 0 1px 3px rgb(var(--w-shadow-color) / .06),
          0 4px 12px rgb(var(--w-shadow-color) / .05);
  --w-e3: 0 2px 6px rgb(var(--w-shadow-color) / .07),
          0 12px 28px rgb(var(--w-shadow-color) / .08);
  --w-e4: 0 8px 24px rgb(var(--w-shadow-color) / .10),
          0 24px 60px rgb(var(--w-shadow-color) / .13);

  --w-sheen: inset 0 1px 0 rgb(255 255 255 / .9);
}

[data-surface="ink"] {
  --w-bg: var(--ink-950);
  --w-surface: var(--ink-900);
  --w-surface-sunken: var(--ink-1000);
  --w-surface-raised: var(--ink-850);

  --w-hairline: rgb(255 255 255 / .06);
  --w-line: rgb(255 255 255 / .10);
  --w-line-strong: rgb(255 255 255 / .22);

  --w-text: var(--slate-25);
  --w-text-dim: var(--slate-400);
  --w-text-faint: var(--slate-500);
  --w-text-inverse: var(--ink-950);

  --w-accent: var(--blue-400);
  --w-accent-ink: var(--blue-300);
  --w-accent-solid: var(--blue-500);
  --w-accent-soft: color-mix(in srgb, var(--blue-400) 22%, transparent);
  --w-accent-soft-hover: color-mix(in srgb, var(--blue-400) 30%, transparent);
  --w-accent-line: color-mix(in srgb, var(--blue-400) 40%, transparent);

  --w-primary-bg: var(--slate-25);
  --w-primary-bg-hover: #fff;
  --w-primary-fg: var(--ink-950);

  --w-hover: rgb(255 255 255 / .07);
  --w-hover-strong: rgb(255 255 255 / .12);
  --w-pressed: rgb(255 255 255 / .16);
  --w-focus-ring: color-mix(in srgb, var(--blue-400) 55%, transparent);
  --w-selection: color-mix(in srgb, var(--blue-400) 28%, transparent);

  --w-ok: var(--ok-300);
  --w-ok-dot: var(--ok-500);
  --w-ok-soft: color-mix(in srgb, var(--ok-500) 20%, transparent);
  --w-warn: var(--warn-300);
  --w-warn-dot: var(--warn-500);
  --w-warn-soft: color-mix(in srgb, var(--warn-500) 22%, transparent);
  --w-danger: var(--danger-300);
  --w-danger-dot: var(--danger-500);
  --w-danger-soft: color-mix(in srgb, var(--danger-500) 20%, transparent);
  --w-danger-fg-on-solid: var(--ink-1000);

  --w-pro-bg: color-mix(in srgb, var(--sand-300) 16%, transparent);
  --w-pro-line: color-mix(in srgb, var(--sand-300) 40%, transparent);
  --w-pro-ink: var(--sand-200);

  --w-eq-sweep: var(--eq-ink-sweep);
  --w-eq-0: var(--eq-ink-0);
  --w-eq-6: var(--eq-ink-6);
  --w-eq-12: var(--eq-ink-12);

  --w-e1: 0 1px 2px rgb(0 0 0 / .30);
  --w-e2: 0 2px 8px rgb(0 0 0 / .35);
  --w-e3: 0 6px 20px rgb(0 0 0 / .42);
  --w-e4: 0 14px 44px rgb(0 0 0 / .50);
  --w-sheen: inset 0 1px 0 rgb(255 255 255 / .08);
}

[data-surface="paper"] {
  --w-bg: var(--sand-50);
  --w-surface: color-mix(in srgb, var(--sand-50) 38%, #fff);
  --w-surface-sunken: var(--sand-100);
  --w-surface-raised: #fff;

  --w-hairline: color-mix(in srgb, #3B2A16 8%, transparent);
  --w-line: color-mix(in srgb, #3B2A16 14%, transparent);
  --w-line-strong: color-mix(in srgb, #3B2A16 26%, transparent);
  --w-hover: color-mix(in srgb, #3B2A16 5%, transparent);
  --w-hover-strong: color-mix(in srgb, #3B2A16 9%, transparent);
  --w-pressed: color-mix(in srgb, #3B2A16 13%, transparent);
  --w-shadow-color: 59 42 22;

  --w-text-heading: var(--w-glass-top);
}

:root {

  --w-glass-top: var(--ink-800);
  --w-glass-bottom: var(--ink-900);
  --w-glass-edge: rgb(255 255 255 / .09);
  --w-glass-fill: linear-gradient(180deg, var(--w-glass-top), var(--w-glass-bottom));

  --w-glass-shadow:
    inset 0 1px 0 rgb(255 255 255 / .10),
    0 1px 2px rgb(0 0 0 / .28),
    0 8px 24px rgb(0 0 0 / .28);
  --w-glass-radius: 999px;

  --w-cta-fill: var(--w-glass-fill);
  --w-cta-fill-hover: linear-gradient(180deg, var(--ink-700), var(--ink-850));
  --w-cta-fg: var(--sand-50);
  --w-cta-shadow: 0 2px 6px rgb(16 26 41 / .30), 0 10px 26px rgb(16 26 41 / .26);
  --w-cta-shadow-hover: 0 3px 10px rgb(16 26 41 / .34), 0 16px 36px rgb(16 26 41 / .30);
}

:root {

  --w-font-ui: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;

  --w-font-display: "Manrope", system-ui, -apple-system, sans-serif;
  --w-font-mono: "Courier Prime", ui-monospace, "SF Mono", Consolas, monospace;

  --w-d1-size: clamp(2.75rem, 6.2vw, 4.5rem);
  --w-d1-line: 1.06;
  --w-d1-track: -0.042em;
  --w-d2-size: clamp(2rem, 4vw, 2.875rem);
  --w-d2-line: 1.12;
  --w-d2-track: -0.035em;
  --w-d3-size: clamp(1.375rem, 2.4vw, 1.75rem);
  --w-d3-line: 1.22;
  --w-d3-track: -0.028em;
  --w-display-weight: 800;

  --w-t-xl: 20px;
  --w-t-lg: 17px;
  --w-t-md: 14px;
  --w-t-sm: 13px;
  --w-t-xs: 12px;
  --w-t-2xs: 11px;
  --w-leading-tight: 1.25;
  --w-leading: 1.45;
  --w-leading-loose: 1.65;

  --w-label-track: 0.06em;
}

:root {

  --w-s1: 4px;   --w-s2: 8px;   --w-s3: 12px;  --w-s4: 16px;
  --w-s5: 20px;  --w-s6: 24px;  --w-s7: 32px;  --w-s8: 40px;
  --w-s9: 56px;  --w-s10: 72px; --w-s11: 96px; --w-s12: 128px;

  --w-r1: 6px;
  --w-r2: 8px;
  --w-r3: 10px;
  --w-r4: 14px;
  --w-r5: 18px;
  --w-r6: 24px;
  --w-r-full: 999px;

  --w-ease: cubic-bezier(.2, .7, .2, 1);
  --w-ease-out: cubic-bezier(.16, 1, .3, 1);
  --w-ease-in-out: cubic-bezier(.65, 0, .35, 1);
  --w-dur-1: 120ms;
  --w-dur-2: 180ms;
  --w-dur-3: 240ms;
  --w-dur-4: 320ms;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --w-dur-1: 1ms; --w-dur-2: 1ms; --w-dur-3: 1ms; --w-dur-4: 1ms;
  }
}

:root {
  --w-font-ui: "Manrope", "PingFang SC", "Microsoft YaHei", "Noto Sans SC",
    system-ui, -apple-system, "Segoe UI", sans-serif;
  --w-font-display: "Manrope", "PingFang SC", "Microsoft YaHei", "Noto Sans SC",
    system-ui, -apple-system, sans-serif;
  --w-font-mono: "Courier Prime", ui-monospace, "SF Mono", Consolas,
    "PingFang SC", "Microsoft YaHei", "Noto Sans SC", monospace;
}

@font-face {
  font-family: "Whisay CJK Punctuation";
  src: local("PingFang SC"), local("PingFangSC-Regular"), local("Microsoft YaHei"),
    local("Microsoft YaHei UI"), local("Noto Sans SC"), local("Noto Sans CJK SC"),
    local("NotoSansCJKsc-Regular"), local("Source Han Sans SC");
  unicode-range: U+2018-2019, U+201C-201D, U+2026, U+3000-303F, U+FF01-FF60;
}
:lang(zh) {
  --w-font-ui: "Whisay CJK Punctuation", "Manrope", "PingFang SC", "Microsoft YaHei",
    "Noto Sans SC", system-ui, -apple-system, "Segoe UI", sans-serif;
  --w-font-display: "Whisay CJK Punctuation", "Manrope", "PingFang SC", "Microsoft YaHei",
    "Noto Sans SC", system-ui, -apple-system, sans-serif;
  --w-font-mono: "Whisay CJK Punctuation", "Courier Prime", ui-monospace, "SF Mono", Consolas,
    "PingFang SC", "Microsoft YaHei", "Noto Sans SC", monospace;
}

:lang(zh) [lang]:not(:lang(zh)) {
  --w-font-ui: "Manrope", "PingFang SC", "Microsoft YaHei", "Noto Sans SC",
    system-ui, -apple-system, "Segoe UI", sans-serif;
  --w-font-display: "Manrope", "PingFang SC", "Microsoft YaHei", "Noto Sans SC",
    system-ui, -apple-system, sans-serif;
  --w-font-mono: "Courier Prime", ui-monospace, "SF Mono", Consolas,
    "PingFang SC", "Microsoft YaHei", "Noto Sans SC", monospace;
  font-family: var(--w-font-ui);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body { margin: 0; background: var(--w-bg); color: var(--w-text);
       font-family: var(--w-font-ui); font-size: 16px; line-height: 1.6;
       -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
.wrap { max-width: 1180px; margin: 0 auto; padding: 0 24px; }

@media (max-width: 360px) { .wrap { padding: 0 16px; } }
section { padding: 100px 0; }

h1, h2, h3 { font-family: var(--w-font-display); font-weight: 800;
     letter-spacing: -0.035em; margin: 0; color: var(--w-text-heading); }
h1 { font-size: clamp(2.6rem, 5.4vw, 4.1rem); line-height: 1.05;
     letter-spacing: -0.042em; }
h2 { font-size: clamp(1.9rem, 3.6vw, 2.8rem); line-height: 1.14; }
h3 { font-size: 1.35rem; line-height: 1.3; letter-spacing: -0.008em; }

:lang(zh) h1, :lang(zh) h2, :lang(zh) h3 { letter-spacing: 0; }
.center { text-align: center; }

h1, h2, h3, p, li, dd, dt { overflow-wrap: break-word; }

:lang(de) h1, :lang(de) h2, :lang(de) h3 {
  -webkit-hyphens: auto; hyphens: auto;
  hyphenate-limit-chars: 10 4 4;
  -webkit-hyphenate-limit-before: 4; -webkit-hyphenate-limit-after: 4;
}

.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0;
     margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px;
     font-weight: 700; font-size: 16px; padding: 15px 26px; border-radius: 12px;
     border: 0; cursor: pointer; white-space: nowrap; max-width: 100%;
     font-family: inherit;
     transition: transform .12s var(--w-ease), box-shadow .2s var(--w-ease),
                 background .2s var(--w-ease); }
.btn:active { transform: translateY(1px); }
.btn svg { width: 18px; height: 18px; flex-shrink: 0; fill: none; stroke: currentColor;
     stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }

.btn.primary { background: var(--w-cta-fill); color: var(--w-cta-fg);
     box-shadow: var(--w-cta-shadow); }
.btn.primary:hover { background: var(--w-cta-fill-hover);
     box-shadow: var(--w-cta-shadow-hover); }
.btn.ghost { background: var(--w-surface-raised); color: var(--w-text);
     box-shadow: inset 0 0 0 1.5px var(--w-line); }
.btn.ghost:hover { box-shadow: inset 0 0 0 1.5px var(--w-line-strong); }
.btn.sm { font-size: 14.5px; padding: 11px 18px; border-radius: 10px; }
.btn.big { font-size: 17px; padding: 18px 32px; }

.btn svg.os-logo { fill: currentColor; stroke: none; }

@media (max-width: 480px) {
  .btn { white-space: normal; text-align: center; }
  .btn.big { padding-left: 22px; padding-right: 22px; }
}

:focus-visible { outline: 2.5px solid var(--w-accent); outline-offset: 2px; border-radius: 6px; }

header { position: sticky; top: 0; z-index: 50;
     background: color-mix(in srgb, var(--w-bg) 86%, transparent);
     -webkit-backdrop-filter: saturate(150%) blur(12px);
     backdrop-filter: saturate(150%) blur(12px);
     border-bottom: 1px solid var(--w-hairline); }
.nav { display: flex; align-items: center; gap: 26px; height: 70px; }
.brand { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.brand span { font-family: var(--w-font-display); font-weight: 800; font-size: 20px;
     letter-spacing: -0.035em; }
.nav .links { display: flex; gap: 24px; margin-left: auto; font-size: 15px;
     font-weight: 500; color: var(--w-text-dim); white-space: nowrap; }
.nav .links a:hover { color: var(--w-text); }

.nav-end { display: flex; align-items: center; gap: 18px; margin-left: auto; }
.nav .links + .nav-end { margin-left: 0; }

@media (max-width: 1100px) {
  .nav .links { display: none; }
  .nav .links + .nav-end { margin-left: auto; }
}
.nav .btn .sh { display: none; }
@media (max-width: 560px) {
  .nav { gap: 12px; }
  .nav-end { gap: 10px; }
  .nav .btn .lg { display: none; }
  .nav .btn .sh { display: inline; }
  .nav .btn.sm { padding: 10px 14px; gap: 8px; }
}

@media (max-width: 360px) {
  .nav .btn svg { display: none; }
  .nav { gap: 8px; }
  .nav-end { gap: 2px; }
  .nav .btn.sm { padding: 10px 12px; }
  .signin { padding: 8px 6px; }
  .langsw summary { padding: 8px 4px; }
}

@media (max-width: 440px) {
  .nav .btn.cta-long .sh { position: absolute; width: 1px; height: 1px; overflow: hidden;
       clip: rect(0 0 0 0); white-space: nowrap; }
  .nav .btn.cta-long svg { display: block; }
  .nav .btn.cta-long.sm { padding: 10px 12px; }
}

.signin { display: inline-flex; align-items: center; gap: 7px; font-size: 15px;
     font-weight: 600; color: var(--w-text); white-space: nowrap;
     padding: 8px 2px; border-radius: 8px; }
.signin:hover { color: var(--w-text-heading); text-decoration: underline;
     text-underline-offset: 4px; text-decoration-thickness: 1.5px; }
.signin svg { display: none; width: 20px; height: 20px; fill: none; stroke: currentColor;
     stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 640px) {
  .signin { padding: 8px; }
  .signin svg { display: block; }
  .signin span { position: absolute; width: 1px; height: 1px; overflow: hidden;
       clip: rect(0 0 0 0); white-space: nowrap; }
}

.langsw { position: relative; }
.langsw summary { display: inline-flex; align-items: center; gap: 6px; list-style: none;
     cursor: pointer; padding: 8px 9px; border-radius: 9px; font-size: 14px;
     font-weight: 700; letter-spacing: .04em; color: var(--w-text-dim);
     -webkit-user-select: none; user-select: none; }
.langsw summary::-webkit-details-marker { display: none; }
.langsw summary:hover, .langsw[open] summary { color: var(--w-text); background: var(--w-hover); }
.langsw summary svg { width: 17px; height: 17px; fill: none; stroke: currentColor;
     stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.langsw summary .chev { width: 12px; height: 12px; stroke-width: 2.4;
     transition: transform .18s var(--w-ease); }
.langsw[open] summary .chev { transform: rotate(180deg); }
.langsw-list { position: absolute; right: 0; top: calc(100% + 8px); z-index: 60;
     min-width: 176px; margin: 0; padding: 6px; list-style: none;
     background: var(--w-surface-raised); border-radius: 13px;
     box-shadow: inset 0 0 0 1px var(--w-hairline),
                 0 2px 6px rgb(59 42 22 / .08), 0 18px 40px rgb(59 42 22 / .16); }
.langsw-list a { display: flex; align-items: center; justify-content: space-between;
     gap: 14px; padding: 9px 12px; border-radius: 8px; font-size: 15px;
     font-weight: 500; color: var(--w-text); }
.langsw-list a:hover { background: var(--w-hover); }
.langsw-list a[aria-current] { font-weight: 700; color: var(--w-text-heading); }
.langsw-list a svg { width: 15px; height: 15px; fill: none; stroke: var(--w-accent-ink);
     stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 560px) {
  .langsw summary { padding: 8px 6px; gap: 4px; }
  .langsw summary .globe { display: none; }
}

.langbar { position: fixed; left: 50%; bottom: 18px; z-index: 70;
     transform: translateX(-50%); width: max-content; max-width: calc(100% - 32px);
     display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
     padding: 10px 10px 10px 18px; border-radius: 14px;
     background: var(--w-cta-fill); color: var(--w-cta-fg);
     box-shadow: var(--w-cta-shadow), 0 18px 40px rgb(7 15 25 / .28);
     font-size: 15px; line-height: 1.4; }
.langbar[hidden] { display: none; }
.langbar p { margin: 0; font-weight: 600; }
.langbar-go { font-weight: 700; padding: 8px 14px; border-radius: 9px;
     background: rgb(255 255 255 / .14); white-space: nowrap; }
.langbar-go:hover { background: rgb(255 255 255 / .22); }
.langbar-x { display: grid; place-items: center; width: 34px; height: 34px; padding: 0;
     border: 0; border-radius: 9px; background: transparent; color: inherit; cursor: pointer; }
.langbar-x:hover { background: rgb(255 255 255 / .12); }
.langbar-x svg { width: 15px; height: 15px; fill: none; stroke: currentColor;
     stroke-width: 2.2; stroke-linecap: round; }
@media (max-width: 480px) {
  .langbar { left: 16px; right: 16px; transform: none; width: auto; max-width: none;
       bottom: 12px; padding: 10px 8px 10px 14px; gap: 8px 10px; }
  .langbar p { flex: 1 1 100%; }
}

footer { padding: 60px 0 40px; border-top: 1px solid var(--w-hairline);
     font-size: 14px; color: var(--w-text-dim); }
.fcols { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 30px;
     margin-bottom: 40px; }
@media (max-width: 780px) { .fcols { grid-template-columns: 1fr 1fr; } }
@media (max-width: 380px) { .fcols { grid-template-columns: 1fr; } }
.fcols h4 { font-size: 12px; font-weight: 700; letter-spacing: .08em;
     text-transform: uppercase; color: var(--w-text); margin: 0 0 14px; }
.fcols a { display: block; padding: 5px 0; }
.fcols a:hover { color: var(--w-text); }
.fcols .brand { margin-bottom: 12px; }
.fcols .brand span { font-size: 17px; }
.ftag { font-size: 13.5px; max-width: 34ch; }
.fbot { display: flex; gap: 12px 20px; flex-wrap: wrap; justify-content: space-between;
     padding-top: 24px; border-top: 1px solid var(--w-hairline); font-size: 13px; }

.flangs { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0; padding: 0;
     list-style: none; }
.flangs a:hover { color: var(--w-text); }
.flangs a[aria-current] { color: var(--w-text); font-weight: 600; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .langsw summary .chev { transition: none; }
}

.legal { padding: 64px 0 110px; }
.doc { max-width: 760px; margin: 0 auto; }
.doc h1 { font-size: clamp(2rem, 4.4vw, 2.9rem); line-height: 1.1; letter-spacing: -0.035em; }
:lang(zh) .doc h1 { letter-spacing: 0; }
.doc .updated { margin: 14px 0 40px; font-family: var(--w-font-mono); font-size: 13px;
     letter-spacing: .02em; color: var(--w-text-faint); }

.doc h2, .doc h3, .doc h4 { scroll-margin-top: 92px; }

html { scroll-behavior: auto; }
.doc h2 { font-size: 1.5rem; line-height: 1.25; margin: 52px 0 14px; letter-spacing: -0.02em; }
.doc h3 { font-size: 1.15rem; line-height: 1.3; margin: 34px 0 10px; letter-spacing: -0.01em; }
.doc h4 { font-size: 1rem; margin: 26px 0 8px; color: var(--w-text-heading); }
.doc h2:target, .doc h3:target { background: linear-gradient(transparent 62%, var(--w-accent-soft) 62%); }

.doc p, .doc li, .doc td, .doc th, .doc blockquote { font-size: 16.5px; line-height: 1.7;
     color: var(--slate-800); }
.doc p { margin: 0 0 16px; }
.doc ul, .doc ol { margin: 0 0 18px; padding-left: 24px; }
.doc li { margin: 0 0 8px; }
.doc li > ul, .doc li > ol { margin: 8px 0 0; }
.doc li::marker { color: var(--w-text-faint); }
.doc strong { color: var(--w-text); font-weight: 700; }
.doc a { color: var(--w-accent-ink); text-decoration: underline; text-underline-offset: 3px;
     text-decoration-thickness: 1px; overflow-wrap: anywhere; }
.doc a:hover { text-decoration-thickness: 2px; }
.doc code { font-family: var(--w-font-mono); font-size: .92em; padding: 1px 5px;
     border-radius: 5px; background: var(--w-surface-sunken); }
.doc pre { overflow-x: auto; padding: 16px 18px; border-radius: 12px;
     background: var(--w-surface-sunken); }
.doc pre code { padding: 0; background: none; }
.doc hr { border: 0; border-top: 1px solid var(--w-line); margin: 40px 0; }
.doc blockquote { margin: 0 0 20px; padding: 18px 22px; border-radius: 12px;
     background: var(--w-surface-sunken); box-shadow: inset 3px 0 0 var(--w-line-strong); }
.doc blockquote p:last-child { margin-bottom: 0; }

.doc .table { overflow-x: auto; margin: 0 0 22px; border-radius: 12px;
     box-shadow: inset 0 0 0 1px var(--w-line); background: var(--w-surface-raised); }
.doc table { border-collapse: collapse; width: 100%; min-width: 520px; }
.doc th, .doc td { padding: 10px 14px; text-align: left; vertical-align: top;
     border-bottom: 1px solid var(--w-hairline); font-size: 14.5px; line-height: 1.55; }
.doc th { font-weight: 700; color: var(--w-text); background: var(--w-surface); }
.doc tr:last-child td { border-bottom: 0; }
.doc .t-center { text-align: center; }
.doc .t-right { text-align: right; }

.doc .notice { margin: 0 0 28px; padding: 14px 18px; border-radius: 12px; font-size: 14.5px;
     background: var(--w-accent-soft); color: var(--w-text); }

@media (max-width: 480px) {
  .legal { padding: 40px 0 80px; }
  .doc p, .doc li, .doc blockquote { font-size: 16px; }
}

.nf { text-align: left; padding: 30px 0 10px; }
.nf h1 { margin-bottom: 14px; }
.nf p { font-size: 17px; color: var(--w-text-dim); }
.nf .btn { margin-top: 8px; color: var(--w-cta-fg); text-decoration: none; }
.nf .btn.ghost { color: var(--w-text); }
.nf-alt { margin-top: 56px; padding-top: 36px; border-top: 1px solid var(--w-hairline); }
.nf-alt h2 { font-size: 1.4rem; margin-bottom: 10px; }
