/* ============================================================
   他山品牌 · base.css · 基础 token
   不随主题变化的所有设计 token（字体 / 尺度 / 动效）
   版本：v1.0 · 2026-04-15 冻结
   真源：brand-spec/v1-spec.md §B §C §F
   ============================================================ */

:root {
  /* ===== B · 字体系统 ===== */
  --font-serif:  'Noto Serif SC', STSong, SimSun, serif;
  --font-sans:   'PingFang SC', 'Noto Sans SC', 'Microsoft YaHei', sans-serif;
  --font-latin:  'Inter', system-ui, sans-serif;
  --font-mono:   'JetBrains Mono', 'SF Mono', Menlo, monospace;

  --fs-h1: 3rem;       --fs-h2: 2.25rem;    --fs-h3: 1.75rem;
  --fs-h4: 1.375rem;   --fs-h5: 1.125rem;   --fs-h6: 1rem;
  --fs-body-l: 1.125rem; --fs-body: 1rem;   --fs-body-s: 0.875rem;
  --fs-caption: 0.75rem;

  --fw-regular: 400;   --fw-medium: 500;
  --fw-semibold: 600;  --fw-bold: 700;

  --lh-cjk-tight: 1.3;  --lh-cjk: 1.55;     --lh-cjk-loose: 1.8;
  --lh-latin-tight: 1.15; --lh-latin: 1.5;  --lh-latin-loose: 1.7;

  --ls-cjk-wide: 0.05em;
  --ls-latin-tight: -0.02em;
  --ls-latin-wide: 0.02em;

  /* ===== C · 尺度系统 ===== */
  --sp-xs: 0.25rem;   --sp-sm: 0.5rem;    --sp-md: 0.75rem;
  --sp-base: 1rem;    --sp-lg: 1.5rem;    --sp-xl: 2rem;
  --sp-2xl: 3rem;     --sp-3xl: 4rem;     --sp-4xl: 6rem;

  --radius-sm: 4px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-full: 9999px;

  --bw-thin: 1px;  --bw-medium: 2px;  --bw-thick: 4px;

  --shadow-sm: 0 1px 2px rgba(0,0,0,.05);
  --shadow-md: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);
  --shadow-lg: 0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.06);
  --shadow-xl: 0 10px 15px rgba(0,0,0,.1), 0 4px 6px rgba(0,0,0,.05);

  --z-base: 0;     --z-raised: 10;     --z-sticky: 50;
  --z-header: 100; --z-dropdown: 1000; --z-modal: 5000;
  --z-popover: 7000; --z-toast: 9000;  --z-tooltip: 9500;

  --bp-sm: 640px;  --bp-md: 768px;  --bp-lg: 1024px;
  --bp-xl: 1280px; --bp-2xl: 1536px;

  /* ===== F · 动效 ===== */
  --transition-fast: 150ms;
  --transition-normal: 200ms;
  --transition-slow: 300ms;
  --easing-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --easing-inOut:  cubic-bezier(0.4, 0, 0.2, 1);
  --easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* 默认行为 */
html { font-family: var(--font-sans); font-size: 16px; line-height: var(--lh-cjk); }
h1,h2,h3,h4,h5,h6 { font-family: var(--font-serif); font-weight: var(--fw-semibold); }
code, pre, kbd, samp { font-family: var(--font-mono); }
:lang(en) { font-family: var(--font-latin); }

/* reducedMotion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
