:root {
  --brand: #08c0a0;
  --brand-dark: #07a88c;
  --brand-soft: rgba(8, 192, 160, 0.12);
  --ink: #1a1f2e;
  --ink-muted: #5c6578;
  --line: #e6e9ef;
  --surface: #ffffff;
  /* 对齐 Figma 冷灰底，贴近 hero 边缘色 */
  --bg: #e8eef3;
  --bg-glow: #e8eef3;
  --shadow: 0 18px 50px rgba(26, 31, 46, 0.08);
  --radius: 16px;
  --font-sans: "PingFang SC", "PingFang TC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --font-display: var(--font-sans);
  --font-body: var(--font-sans);
  /* 移动端设计基准 1080*2338 */
  --m-dw: 1080;
  --m-dh: 2338;
  --m-ux: calc(100vw / 1080);
  --m-uy: calc(100dvh / 2338);
  /* PC 设计基准 1536×850 */
  --pc-dw: 1536;
  --pc-dh: 850;
  --pc-ux: calc(100vw / 1536);
  --pc-uy: calc(100vh / 850);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-height: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--bg);
}

body {
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

button,
a {
  font: inherit;
}

img {
  max-width: 100%;
  display: block;
}

.hidden {
  display: none !important;
}

/* Shared chrome */
.brand {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: inherit;
}

.brand__mark {
  display: block;
  height: 34px;
  width: auto;
  flex-shrink: 0;
  object-fit: contain;
}

.btn {
  appearance: none;
  border: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 999px;
  padding: 12px 22px;
  min-height: 44px;
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
  text-decoration: none;
  color: #fff;
  background: var(--brand);
  box-shadow: 0 8px 20px rgba(8, 192, 160, 0.22);
  min-width: 0;
}

.btn:hover {
  background: var(--brand-dark);
  transform: translateY(-1px);
}

.btn:active {
  transform: translateY(0);
}

.btn svg,
.btn__icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  object-fit: contain;
  display: block;
}

.btn--ghost {
  background: transparent;
  color: var(--ink-muted);
  box-shadow: none;
  border: 1px solid var(--line);
}

.btn--ghost:hover {
  background: var(--brand-soft);
  color: var(--brand-dark);
  border-color: transparent;
}

.lang-trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(10px);
  border-radius: 999px;
  padding: 8px 14px;
  cursor: pointer;
  color: var(--ink);
  transition: border-color 0.2s ease, background 0.2s ease;
}

.lang-trigger:hover {
  border-color: var(--brand);
  background: #fff;
}

.lang-trigger svg {
  width: 18px;
  height: 18px;
  color: var(--brand);
}

.lang-trigger__chevron {
  width: 14px;
  height: 14px;
  opacity: 0.55;
}

.link-quiet {
  background: none;
  border: none;
  color: #6d7a79;
  cursor: pointer;
  padding: 0;
  text-decoration: none;
  font-size: 0.875rem;
}

.link-quiet:hover {
  color: var(--brand);
}

/* ===================== PC ===================== */
/* 设计基准：1536 × 850
 * 顶栏/底栏/标题/下载按钮：固定设计尺寸，不随视口缩放
 * 中间主图：高度 > 850 时按 h/850 放大并贴右下；否则不缩放
 */
.layout-pc {
  --pc-visual-scale: 1;
  --pc-pad-x: 120px;
  --pc-header-pt: 28px;
  --pc-footer-pb: 28px;
  --pc-logo-h: 37.04px;
  --pc-logo-w: 100px;
  /* 英文 Logo 与中文同高，宽度按素材比例缩放（原 185×50 → 约 137×37） */
  --pc-logo-h-en: 37.04px;
  --pc-logo-w-en: 137px;
  --pc-lang-size: 16px;
  --pc-lang-gap: 0;
  --pc-footer-size: 16px;
  --pc-eyebrow-size: 36px;
  --pc-headline-size: 48px;
  --pc-headline-lh: 1.35;
  --pc-eyebrow-mb: 14px;
  --pc-lead-h: calc(36px + 14px + 48px * 1.35);
  --pc-actions-mt: 32px;
  --pc-actions-gap: 14px;
  --pc-btn-w: 160px;
  --pc-btn-h: 48px;
  --pc-btn-pad-x: 16px;
  --pc-btn-font: 20px;
  --pc-btn-icon: 26px;
  --pc-btn-radius: 24px;
  --pc-copy-max: max-content;
  --pc-visual-w: 1280px;
  --pc-visual-h: 853px;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  position: relative;
  overflow: hidden;
  background: #e8eef3;
  z-index: 1;
}

.layout-pc::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 55% 50% at 72% 48%, rgba(223, 232, 236, 0.95), transparent 72%),
    linear-gradient(90deg, rgba(26, 31, 46, 0.028) 1px, transparent 1px),
    linear-gradient(rgba(26, 31, 46, 0.028) 1px, transparent 1px);
  background-size: auto, 56px 56px, 56px 56px;
  mask-image: radial-gradient(ellipse 75% 80% at 70% 45%, #000 10%, transparent 78%);
  pointer-events: none;
}

/* 顶栏：贴视口顶部，尺寸固定不缩放 */
.pc-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--pc-header-pt) var(--pc-pad-x) 0;
  pointer-events: none;
}

.pc-header .brand,
.pc-header .pc-lang {
  pointer-events: auto;
}

.pc-header .brand {
  display: inline-flex;
  align-items: center;
  /* 按英文 Logo 预留，切语言不挤动右侧语言切换 */
  width: var(--pc-logo-w-en);
  height: var(--pc-logo-h-en);
  flex-shrink: 0;
}

.pc-header .brand__mark {
  width: var(--pc-logo-w);
  height: var(--pc-logo-h);
  max-width: none;
  max-height: none;
  object-fit: contain;
  object-position: left center;
}

html[lang="en"] .pc-header .brand__mark {
  width: var(--pc-logo-w-en);
  height: var(--pc-logo-h-en);
}

.pc-lang {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 168px;
  gap: var(--pc-lang-gap);
  flex-shrink: 0;
  box-sizing: border-box;
}

.pc-lang__btn {
  appearance: none;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
  color: #6d7a79;
  font-size: var(--pc-lang-size);
  font-weight: 500;
  line-height: 1;
  transition: color 0.15s ease;
}

.pc-lang__btn:hover {
  color: #08c0a0;
}

.pc-lang__btn.is-active {
  color: #08c0a0;
  font-weight: 600;
}

.pc-lang__sep {
  display: inline-block;
  width: 1px;
  height: 16px;
  background: #b0bbba;
  flex-shrink: 0;
  font-size: 0;
  line-height: 0;
  color: transparent;
  user-select: none;
}

/* 中间：标题/按钮固定尺寸；主图单独缩放 */
.pc-mid {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.pc-main {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  padding: 0 var(--pc-pad-x);
  width: 100%;
  height: 100%;
  min-height: 0;
  box-sizing: border-box;
}

.pc-copy {
  animation: rise-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
  padding-bottom: 8px;
  max-width: var(--pc-copy-max);
  z-index: 2;
  display: flex;
  flex-direction: column;
}

.pc-copy__lead {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: var(--pc-lead-h);
  min-height: var(--pc-lead-h);
  max-height: var(--pc-lead-h);
  overflow: visible;
  box-sizing: border-box;
  flex-shrink: 0;
}

.pc-eyebrow {
  margin: 0 0 var(--pc-eyebrow-mb);
  color: #6d7a79;
  font-size: var(--pc-eyebrow-size);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1;
  white-space: nowrap;
}

.pc-copy h1,
.pc-headline {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--pc-headline-size);
  line-height: var(--pc-headline-lh);
  font-weight: 700;
  letter-spacing: 0.01em;
  color: #222;
  white-space: nowrap;
}

.pc-headline__stack {
  display: none;
}

html[lang="en"] .pc-eyebrow {
  letter-spacing: -0.01em;
}

html[lang="en"] .pc-headline {
  white-space: normal;
}

html[lang="en"] .pc-headline__full {
  display: none;
}

html[lang="en"] .pc-headline__stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

html[lang="en"] .pc-headline__stack span {
  display: block;
  font-size: var(--pc-headline-size);
  line-height: var(--pc-headline-lh);
  letter-spacing: -0.015em;
  white-space: nowrap;
}

.pc-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--pc-actions-gap);
  margin-top: var(--pc-actions-mt);
}

.pc-actions .btn {
  width: var(--pc-btn-w);
  min-width: var(--pc-btn-w);
  max-width: var(--pc-btn-w);
  height: var(--pc-btn-h);
  min-height: var(--pc-btn-h);
  padding: 0 var(--pc-btn-pad-x);
  font-size: var(--pc-btn-font);
  font-weight: 600;
  color: #fff;
  gap: 8px;
  box-sizing: border-box;
  border-radius: var(--pc-btn-radius);
  box-shadow: none;
  line-height: 1;
}

.pc-actions .btn:hover {
  transform: none;
}

.pc-actions .btn__icon {
  width: var(--pc-btn-icon);
  height: var(--pc-btn-icon);
  max-width: var(--pc-btn-icon);
  max-height: var(--pc-btn-icon);
}

.pc-visual {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  width: var(--pc-visual-w);
  height: var(--pc-visual-h);
  max-width: none;
  pointer-events: none;
  transform: scale(var(--pc-visual-scale));
  transform-origin: right bottom;
  will-change: transform;
  /* 只用透明度入场，避免 animation 覆盖 scale */
  animation: fade-in 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.1s both;
}

.pc-visual img {
  display: block;
  width: var(--pc-visual-w);
  height: var(--pc-visual-h);
  max-width: none;
  object-fit: contain;
  object-position: right bottom;
}

/* 底栏：贴视口底部，尺寸固定不缩放 */
.pc-footer {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 var(--pc-pad-x) var(--pc-footer-pb);
  font-size: var(--pc-footer-size);
  color: #6d7a79;
  line-height: 1;
}

.pc-footer .link-quiet {
  font-size: inherit;
  color: #6d7a79;
}

.pc-footer .link-quiet:hover {
  color: var(--brand);
}

.pc-footer__sep {
  color: #6d7a79;
  font-size: inherit;
  user-select: none;
}

/* ===================== Mobile ===================== */
/* 设计基准：1080 × 2338（单位见 :root --m-ux / --m-uy） */
.layout-mobile {
  /* 垂直布局（设计稿 px → 按屏高比例适配） */
  --m-bottom-gap: calc(60 * var(--m-uy));
  --m-actions-footer-gap: calc(120 * var(--m-uy));
  --m-btn-up: 0px;
  /* 标题首行距顶部 logo：中文 140；英文再下移 40 → 180 */
  --m-copy-gap-logo: calc(140 * var(--m-uy));
  /* 中间主图距屏幕顶 */
  --m-visual-top: calc(580 * var(--m-uy));

  /* 中文标题区（设计稿 px），字号仍按屏宽 */
  --m-copy-pad-x: 52;
  --m-eyebrow-size: 64;
  --m-eyebrow-mb: 40;
  --m-headline-size: 90;
  --m-headline-lh: 1.22;

  position: relative;
  height: 100dvh;
  max-height: 100dvh;
  min-height: 100dvh;
  width: 100%;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #e8eef3;
}

html[lang="en"] .layout-mobile {
  --m-copy-gap-logo: calc(180 * var(--m-uy));
}

.m-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: calc(52 * var(--m-ux) + env(safe-area-inset-top, 0px)) calc(52 * var(--m-ux)) 0;
  flex-shrink: 0;
  z-index: 3;
}

.m-header .brand__mark {
  width: calc(250 * var(--m-ux));
  height: calc(100 * var(--m-ux));
  max-height: none;
  object-fit: contain;
  object-position: left center;
}

html[lang="en"] .m-header .brand__mark {
  width: calc(370 * var(--m-ux));
  height: calc(100 * var(--m-ux));
}

.m-header .lang-trigger {
  gap: calc(12 * var(--m-ux));
  padding: 0;
  width: calc(190 * var(--m-ux));
  min-width: calc(190 * var(--m-ux));
  height: calc(80 * var(--m-ux));
  min-height: calc(80 * var(--m-ux));
  font-size: calc(40 * var(--m-ux));
  font-weight: 500;
  color: #08c0a0;
  border: calc(2 * var(--m-ux)) solid #b3c7c4;
  background: rgba(255, 255, 255, 0.1);
  justify-content: center;
  box-sizing: border-box;
  line-height: 1;
  border-radius: 999px;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

html[lang="en"] .m-header .lang-trigger {
  width: calc(165 * var(--m-ux));
  min-width: calc(165 * var(--m-ux));
}

.m-header .lang-trigger:hover {
  border-color: #b3c7c4;
  background: rgba(255, 255, 255, 0.16);
}

.m-header .lang-trigger__arrow {
  width: calc(25.5 * var(--m-ux));
  height: calc(13.5 * var(--m-ux));
  display: block;
  flex-shrink: 0;
  object-fit: contain;
}

.m-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 0;
  min-height: 0;
  position: static;
  overflow: visible;
}

.m-copy {
  text-align: left;
  /* 首行距顶部 logo 100；下面两行随文档流一起下移 */
  padding: var(--m-copy-gap-logo) calc(var(--m-copy-pad-x) * var(--m-ux)) 0;
  position: relative;
  z-index: 2;
  flex-shrink: 0;
  pointer-events: none;
  animation: rise-in 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.m-eyebrow {
  margin: 0 0 calc(var(--m-eyebrow-mb) * var(--m-ux));
  color: #6d7a79;
  font-size: calc(var(--m-eyebrow-size) * var(--m-ux));
  font-weight: 400;
  line-height: 1;
  text-align: left;
}

.m-copy h1,
.m-headline {
  margin: 0;
  font-family: var(--font-display);
  font-size: calc(var(--m-headline-size) * var(--m-ux));
  line-height: var(--m-headline-lh);
  font-weight: 500;
  letter-spacing: 0.01em;
  text-align: left;
  color: #222;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.m-headline span {
  display: block;
  white-space: nowrap;
}

/* 英文标题：eyebrow 50 / headline 60 */
html[lang="en"] .m-copy .m-eyebrow {
  font-size: calc(54 * var(--m-ux));
  letter-spacing: -0.02em;
  line-height: 0.94;
  white-space: nowrap;
  max-width: 100%;
}

html[lang="en"] .m-copy .m-headline,
html[lang="en"] .m-copy h1.m-headline {
  font-size: calc(65.5 * var(--m-ux));
  letter-spacing: -0.025em;
  line-height: 1.25;
  max-width: 100%;
}

/* 中间图：距屏幕顶部 540（设计稿），按屏高比例适配 */
.m-visual {
  position: absolute;
  left: 0;
  right: 0;
  top: var(--m-visual-top);
  bottom: auto;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
  z-index: 1;
  overflow: visible;
  pointer-events: none;
  animation: float-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.08s both;
}

.m-visual picture {
  display: block;
  width: 100%;
  max-width: 100%;
  line-height: 0;
}

.m-visual img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: unset;
  object-position: center top;
}

.m-bottom {
  flex-shrink: 0;
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: var(--m-actions-footer-gap);
  margin-top: calc(-1 * var(--m-btn-up));
  padding: 0 calc(52 * var(--m-ux)) calc(var(--m-bottom-gap) + env(safe-area-inset-bottom, 0px));
}

.m-actions {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: calc(31 * var(--m-ux));
  padding: 0;
}

.m-actions .btn {
  /* 中文 iOS下载：设计宽 400 够用 */
  width: calc(400 * var(--m-ux));
  max-width: calc(400 * var(--m-ux));
  min-height: calc(112 * var(--m-ux));
  height: calc(112 * var(--m-ux));
  padding: 0 calc(36 * var(--m-ux));
  font-size: calc(48 * var(--m-ux));
  font-weight: 600;
  gap: calc(18 * var(--m-ux));
  overflow: visible;
  box-sizing: border-box;
  /* 切图为胶囊，无重阴影 */
  border-radius: 999px;
  box-shadow: none;
  white-space: nowrap;
  -webkit-tap-highlight-color: transparent;
}

/* 中文 Android下载 更长 */
.m-actions #m-download-android {
  width: calc(500 * var(--m-ux));
  max-width: calc(500 * var(--m-ux));
}

/* 英文两侧文案都更长 */
html[lang="en"] .m-actions #m-download-ios {
  width: calc(500 * var(--m-ux));
  max-width: calc(500 * var(--m-ux));
}

html[lang="en"] .m-actions #m-download-android {
  width: calc(580 * var(--m-ux));
  max-width: calc(580 * var(--m-ux));
}

.m-actions .btn:hover,
.m-actions .btn:active,
.m-actions .btn:focus {
  background: var(--brand);
  transform: none;
  box-shadow: none;
  outline: none;
}

.m-actions .btn svg,
.m-actions .btn__icon {
  width: calc(60 * var(--m-ux));
  height: calc(60 * var(--m-ux));
  max-width: calc(60 * var(--m-ux));
  max-height: calc(60 * var(--m-ux));
  overflow: visible;
}

.m-footer {
  display: flex;
  justify-content: center;
  gap: calc(28 * var(--m-ux));
  align-items: center;
  margin: 0;
  padding: 0;
  color: #6d7a79;
  font-size: calc(36 * var(--m-ux));
  font-weight: 400;
  line-height: 1;
}

.m-footer .link-quiet {
  font-size: inherit;
  color: #6d7a79;
  line-height: 1;
}

.m-footer .link-quiet:hover {
  color: var(--brand);
}

.m-footer .pc-footer__sep {
  font-size: inherit;
  color: #6d7a79;
  opacity: 1;
  font-weight: 400;
  line-height: 1;
}

/* ===================== Modals ===================== */
.overlay {
  position: fixed;
  inset: 0;
  background: rgba(18, 24, 38, 0.48);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: calc(40 * var(--pc-uy)) calc(48 * var(--pc-ux));
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease;
}

.overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}

.modal {
  position: relative;
  /* 效果图约 868×653 @1536×850 */
  /* PC 默认 720×560，按屏宽/屏高等比适配 */
  width: calc(720 * var(--pc-ux));
  max-width: calc(100vw - 96 * var(--pc-ux));
  height: calc(560 * var(--pc-uy));
  max-height: calc(100vh - 80 * var(--pc-uy));
  background: #fff;
  border-radius: calc(16 * var(--pc-ux));
  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.28);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: translateY(10px) scale(0.985);
  transition: transform 0.24s cubic-bezier(0.22, 1, 0.36, 1);
  box-sizing: border-box;
}

.overlay.is-open .modal {
  transform: translateY(0) scale(1);
}

.modal__close {
  position: absolute;
  top: calc(16 * var(--pc-ux));
  right: calc(16 * var(--pc-ux));
  width: calc(32 * var(--pc-ux));
  height: calc(32 * var(--pc-ux));
  border: none;
  background: transparent;
  color: #222;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: calc(8 * var(--pc-ux));
  z-index: 2;
}

.modal__close:hover {
  background: #f2f4f7;
}

.modal__close svg {
  width: calc(18 * var(--pc-ux));
  height: calc(18 * var(--pc-ux));
}

.modal__head {
  flex-shrink: 0;
  padding: calc(28 * var(--pc-ux)) calc(48 * var(--pc-ux)) calc(18 * var(--pc-ux));
  font-family: var(--font-display);
  font-weight: 700;
  /* PC 主标题 #222222 / 20 */
  font-size: calc(20 * var(--pc-ux));
  line-height: 1.45;
  text-align: center;
  color: #222222;
  border-bottom: 1px solid #f0f0f0;
}

.modal__body {
  flex: 1;
  min-height: 0;
  padding: calc(20 * var(--pc-ux)) calc(48 * var(--pc-ux)) calc(28 * var(--pc-ux));
  overflow: auto;
  /* PC 内容 #222222 / 14 */
  color: #222222;
  font-size: calc(14 * var(--pc-ux));
  line-height: 1.75;
  font-weight: 400;
}

.modal__body .modal-date {
  margin: 0 0 calc(16 * var(--pc-ux));
  text-align: center;
  /* PC 时间 #999999 / 12 */
  font-size: calc(12 * var(--pc-ux));
  line-height: 1.4;
  font-weight: 400;
  color: #999999;
}

.modal__body h3 {
  margin: calc(20 * var(--pc-ux)) 0 calc(8 * var(--pc-ux));
  /* PC 小标题 #222222 / 16 */
  font-size: calc(16 * var(--pc-ux));
  font-weight: 700;
  color: #222222;
  line-height: 1.6;
}

.modal__body h3:first-of-type {
  margin-top: calc(4 * var(--pc-ux));
}

.modal__body p {
  margin: 0 0 calc(10 * var(--pc-ux));
}

.modal__body ul {
  margin: 0 0 calc(10 * var(--pc-ux));
  padding-left: 1.2em;
  list-style: disc;
}

.modal__body li {
  margin: calc(4 * var(--pc-ux)) 0;
  color: #222222;
}

.modal__body strong {
  font-weight: 700;
  color: #222222;
}

.modal__foot {
  display: none;
  flex-shrink: 0;
  padding: calc(16 * var(--pc-ux)) calc(40 * var(--pc-ux)) calc(28 * var(--pc-ux));
}

.modal__foot .btn {
  width: 100%;
  height: calc(48 * var(--pc-ux));
  min-height: calc(48 * var(--pc-ux));
  font-size: calc(18 * var(--pc-ux));
  font-weight: 600;
  /* 效果图：小圆角矩形，非半圆胶囊 */
  border-radius: calc(12 * var(--pc-ux));
  box-shadow: none;
}

.modal__foot .btn:hover {
  transform: none;
}

/* thin scrollbar */
.modal__body::-webkit-scrollbar {
  width: 6px;
}

.modal__body::-webkit-scrollbar-thumb {
  background: #d0d5dd;
  border-radius: 999px;
}

.modal__body::-webkit-scrollbar-track {
  background: transparent;
}

/* Mobile legal：默认 880×1800，按屏宽/屏高等比适配 */
.overlay.is-mobile {
  padding: calc(160 * var(--m-uy)) calc(100 * var(--m-ux));
  background: rgba(18, 24, 38, 0.48);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  align-items: center;
}

.overlay.is-mobile .modal {
  width: calc(880 * var(--m-ux));
  max-width: 100%;
  height: calc(1800 * var(--m-uy));
  max-height: calc(100dvh - 320 * var(--m-uy));
  border-radius: calc(40 * var(--m-ux));
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.28);
}

.overlay.is-mobile .modal__close {
  display: none;
}

.overlay.is-mobile .modal__head {
  padding: calc(56 * var(--m-ux)) calc(64 * var(--m-ux)) calc(20 * var(--m-ux));
  /* 主标题 #1E1E1E / 48 */
  font-size: calc(48 * var(--m-ux));
  line-height: 1.35;
  color: #1e1e1e;
  border-bottom: none;
}

.overlay.is-mobile .modal__body {
  padding: calc(8 * var(--m-ux)) calc(64 * var(--m-ux)) calc(16 * var(--m-ux));
  font-size: calc(36 * var(--m-ux));
  line-height: 1.7;
  color: #1e1e1e;
  font-weight: 400;
}

.overlay.is-mobile .modal__body .modal-date {
  margin: 0 0 calc(28 * var(--m-ux));
  /* 时间 #999999 / 32 */
  font-size: calc(32 * var(--m-ux));
  line-height: 1.4;
  color: #999999;
}

.overlay.is-mobile .modal__body h3 {
  margin: calc(36 * var(--m-ux)) 0 calc(16 * var(--m-ux));
  /* 小标题 #1E1E1E / 40 */
  font-size: calc(40 * var(--m-ux));
  color: #1e1e1e;
}

.overlay.is-mobile .modal__body h3:first-of-type {
  margin-top: calc(8 * var(--m-ux));
}

.overlay.is-mobile .modal__body p {
  margin: 0 0 calc(16 * var(--m-ux));
}

.overlay.is-mobile .modal__body ul {
  margin: 0 0 calc(16 * var(--m-ux));
  padding-left: 1.15em;
  list-style: disc;
}

.overlay.is-mobile .modal__body li {
  margin: calc(8 * var(--m-ux)) 0;
  color: #1e1e1e;
}

.overlay.is-mobile .modal__body::-webkit-scrollbar {
  width: calc(10 * var(--m-ux));
}

.overlay.is-mobile .modal__foot {
  display: flex;
  justify-content: center;
  padding: calc(28 * var(--m-ux)) calc(40 * var(--m-ux)) calc(48 * var(--m-ux));
}

.overlay.is-mobile .modal__foot .btn {
  width: calc(800 * var(--m-ux));
  max-width: 100%;
  height: calc(110 * var(--m-ux));
  min-height: calc(110 * var(--m-ux));
  font-size: calc(40 * var(--m-ux));
  font-weight: 600;
  color: #fff;
  background: #08c0a0;
  border-radius: calc(20 * var(--m-ux));
  box-shadow: none;
}

.overlay.is-mobile .modal__foot .btn:hover {
  background: #08c0a0;
  transform: none;
}

/* Mobile language：默认 880×668，仅按屏宽适配（短屏不被高度单位压扁裁切） */
.lang-overlay {
  position: fixed;
  inset: 0;
  background: rgba(18, 24, 38, 0.48);
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: calc(64 * var(--m-ux));
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

.lang-overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}

.lang-modal {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc(880 * var(--m-ux));
  max-width: calc(100vw - 2 * 64 * var(--m-ux));
  height: calc(668 * var(--m-ux));
  max-height: none;
  background: #fff;
  border-radius: calc(48 * var(--m-ux));
  padding: 0;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.22);
  transform: translateY(10px) scale(0.98);
  transition: transform 0.24s cubic-bezier(0.22, 1, 0.36, 1);
  box-sizing: border-box;
  overflow: hidden;
}

.lang-overlay.is-open .lang-modal {
  transform: translateY(0) scale(1);
}

.lang-modal__close {
  position: absolute;
  top: calc(24 * var(--m-ux));
  right: calc(24 * var(--m-ux));
  width: calc(100 * var(--m-ux));
  height: calc(100 * var(--m-ux));
  border: none;
  background: #f8f8f8;
  border-radius: 999px;
  color: #1e1e1e;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  padding: 0;
}

.lang-modal__close svg {
  width: calc(56 * var(--m-ux));
  height: calc(56 * var(--m-ux));
}

.lang-modal__title {
  width: 100%;
  text-align: center;
  font-weight: 700;
  font-size: calc(48 * var(--m-ux));
  margin: 0;
  color: #1e1e1e;
  padding: calc(56 * var(--m-ux)) calc(120 * var(--m-ux)) calc(40 * var(--m-ux));
  line-height: 1.3;
  border-bottom: 1px solid #eeeeee;
  box-sizing: border-box;
}

html[lang="en"] .lang-modal__title {
  font-size: calc(48 * var(--m-ux));
  letter-spacing: -0.02em;
  white-space: nowrap;
}

/* 包围框 800×428：3×116 + 2×间距 → 间距 40 */
.lang-modal__list {
  display: flex;
  flex-direction: column;
  gap: calc(40 * var(--m-ux));
  width: calc(800 * var(--m-ux));
  height: calc(428 * var(--m-ux));
  max-width: 100%;
  margin: auto;
  padding: 0;
  box-sizing: border-box;
}

.lang-modal__list button {
  width: 100%;
  height: calc(116 * var(--m-ux));
  min-height: calc(116 * var(--m-ux));
  flex: 0 0 calc(116 * var(--m-ux));
  border: calc(3 * var(--m-ux)) solid transparent;
  background: #f7f7f7;
  text-align: center;
  padding: 0 calc(24 * var(--m-ux));
  border-radius: calc(40 * var(--m-ux));
  cursor: pointer;
  color: #1e1e1e;
  font-size: calc(40 * var(--m-ux));
  font-weight: 500;
  box-sizing: border-box;
  line-height: 1.2;
}

.lang-modal__list button.is-active {
  background: #edfef8;
  border-color: var(--brand);
  color: #1e1e1e;
  font-weight: 600;
}

@keyframes rise-in {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes float-in {
  from {
    opacity: 0;
    transform: translateY(24px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes pulse-glow {
  0%,
  100% {
    opacity: 0.7;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.06);
  }
}

@media (max-width: 1100px) {
  /* PC 窄屏：设计单位已随视口缩放，保留钩子便于后续微调 */
}
