/* =====================================================================
   交付副本（由 scripts/sync-brand-assets.mjs 生成）
   源文件：.project/assets/brand/tulinghealth-tokens.css（未修改）
   差异：仅移除 @font-face；字体由 src/styles/fonts.css 引用子集化 woff2。
   颜色 / 字号 / 间距 / 圆角 / 阴影 / 动效变量与源文件逐字一致。
   ===================================================================== */
/* =====================================================================
   图灵健康 Tuling Health · 设计 token（CSS 变量）
   v1.0 / 2026-10-24 / 与 tulinghealth-brand-tokens.json 同步
   用法：<link rel="stylesheet" href="/assets/brand/tulinghealth-tokens.css">
   字体路径按站点部署位置调整：任务约定 /assets/brand/fonts/
   ===================================================================== */

/* ---------- 自托管字体（SIL OFL 1.1，GB2312 子集） ---------- */








:root {
  /* ---------- 品牌色 ---------- */
  --th-ink-950: #06202A; --th-ink-900: #0C2F3A; --th-ink-800: #123D4B;
  --th-ink-700: #1B4E5E; --th-ink-600: #2A6273; --th-ink-500: #487786;
  --th-ink-400: #7799A4; --th-ink-300: #A9C0C8; --th-ink-200: #CBD9DE;
  --th-ink-100: #E6EEF0;

  --th-jade-800: #275E52; --th-jade-700: #316E60; --th-jade-600: #3E806F;
  --th-jade-500: #4E8C7C; --th-jade-400: #7BAB9D; --th-jade-300: #A9CBBF;
  --th-jade-200: #CDE1DA; --th-jade-100: #E9F2EE;

  --th-amber-700: #8C5A25; --th-amber-600: #A56A2C; --th-amber-500: #C4863F;
  --th-amber-400: #D8A467; --th-amber-300: #EBC79B; --th-amber-100: #F7EBDC;

  --th-stone-100: #F4F5F4; --th-stone-200: #E6E8E6; --th-stone-300: #CFD4D2;
  --th-stone-400: #A9B1AF; --th-stone-500: #7D8785; --th-stone-600: #5C6664;
  --th-stone-700: #3B4442;

  --th-paper: #F6F2E9; --th-sand: #EFE9DC; --th-white: #FFFFFF;

  --th-success: #2F7D5E; --th-warning: #B8722E; --th-danger: #A63A32; --th-info: #2E6B85;

  /* ---------- 语义色 ---------- */
  --th-bg: var(--th-paper);
  --th-bg-alt: var(--th-sand);
  --th-surface: var(--th-white);
  --th-text: var(--th-ink-900);
  --th-text-muted: var(--th-stone-600);
  --th-text-faint: var(--th-stone-500);
  --th-text-inverse: var(--th-paper);
  --th-link: var(--th-jade-700);
  --th-link-hover: var(--th-ink-900);
  --th-border: var(--th-stone-200);
  --th-border-strong: var(--th-stone-300);
  --th-focus: var(--th-jade-700);

  /* ---------- 字体 ---------- */
  --th-font-serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", SimSun, serif;
  --th-font-sans: "Noto Sans SC", "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  --th-font-latin: "Inter", "Helvetica Neue", Arial, sans-serif;
  --th-font-num: "Inter", ui-monospace, monospace; /* 配合 font-variant-numeric: tabular-nums */

  /* ---------- 字号 ---------- */
  --th-fs-display: 64px; --th-fs-h1: 44px; --th-fs-h2: 32px; --th-fs-h3: 24px; --th-fs-h4: 20px;
  --th-fs-body-lg: 18px; --th-fs-body: 16px; --th-fs-small: 14px; --th-fs-caption: 12px;
  --th-lh-display: 1.12; --th-lh-h1: 1.2; --th-lh-h2: 1.28; --th-lh-h3: 1.36;
  --th-lh-body: 1.75; --th-lh-small: 1.6;
  --th-tracking-title: 0; --th-tracking-body: 0.01em; --th-tracking-eyebrow: 0.24em;

  /* ---------- 间距 ---------- */
  --th-space-1: 4px; --th-space-2: 8px; --th-space-3: 12px; --th-space-4: 16px;
  --th-space-5: 24px; --th-space-6: 32px; --th-space-7: 48px; --th-space-8: 64px;
  --th-space-9: 96px; --th-space-10: 128px;
  --th-section-y: 96px; --th-section-y-mobile: 56px;

  /* ---------- 布局 ---------- */
  --th-container: 1200px; --th-container-narrow: 760px;
  --th-gutter: 24px; --th-margin: 64px;

  /* ---------- 圆角 / 描边 / 阴影 ---------- */
  --th-radius-xs: 2px; --th-radius-sm: 4px; --th-radius-md: 8px;
  --th-radius-lg: 12px; --th-radius-xl: 20px; --th-radius-pill: 999px;
  --th-shadow-sm: 0 1px 2px rgba(12, 47, 58, 0.06);
  --th-shadow-md: 0 8px 24px rgba(12, 47, 58, 0.08);
  --th-shadow-lg: 0 20px 48px rgba(12, 47, 58, 0.12);

  /* ---------- 动效 ---------- */
  --th-ease: cubic-bezier(0.2, 0, 0.2, 1);
  --th-dur-fast: 160ms; --th-dur-base: 240ms; --th-dur-slow: 400ms;
}

/* ---------- 基础排版类（可直接用于内容页） ---------- */
.th-title-display { font-family: var(--th-font-serif); font-weight: 600; font-size: var(--th-fs-display); line-height: var(--th-lh-display); letter-spacing: -0.01em; color: var(--th-text); }
.th-title-1 { font-family: var(--th-font-serif); font-weight: 600; font-size: var(--th-fs-h1); line-height: var(--th-lh-h1); color: var(--th-text); }
.th-title-2 { font-family: var(--th-font-serif); font-weight: 600; font-size: var(--th-fs-h2); line-height: var(--th-lh-h2); color: var(--th-text); }
.th-title-3 { font-family: var(--th-font-sans); font-weight: 500; font-size: var(--th-fs-h3); line-height: var(--th-lh-h3); color: var(--th-text); }
.th-body { font-family: var(--th-font-sans); font-weight: 400; font-size: var(--th-fs-body); line-height: var(--th-lh-body); letter-spacing: var(--th-tracking-body); color: var(--th-text); }
.th-body-muted { color: var(--th-text-muted); }
.th-small { font-family: var(--th-font-sans); font-size: var(--th-fs-small); line-height: var(--th-lh-small); color: var(--th-text-muted); }
.th-eyebrow { font-family: var(--th-font-latin); font-weight: 600; font-size: var(--th-fs-caption); letter-spacing: var(--th-tracking-eyebrow); text-transform: uppercase; color: var(--th-jade-700); }
.th-num { font-family: var(--th-font-num); font-variant-numeric: tabular-nums; }

/* ---------- 无障碍：焦点与减弱动效 ---------- */
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--th-focus); outline-offset: 2px; border-radius: var(--th-radius-xs);
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
