/* ============================================================================
 * tokens.css —— 万象学宫 · 设计令牌（网页端）
 * 权威依据：design/art/wanxiang-art-bible.md §2（色板）/ §3（字体）/ §7.5（动效纪律）
 *
 * 🔒 分层纪律（art-bible §2.7）：
 *    第一层 = 原始色板（--ink-900 等），只在本文件出现；
 *    第二层 = 语义层（--bg / --text-1 / --accent 等），页面只准引用语义层；
 *    暗模式只覆盖语义层，不重定义原始色板。
 * 🔒 全局禁红：本产品不存在 --error 红。失败只用「符文黯淡」表达（§7.4）。
 * ========================================================================== */

:root {
  /* ---------- 原始色板：墨青（本产品视觉身份主来源） ---------- */
  --ink-900: #121B1D;   /* 主文本 / 标题        16.0:1 AAA */
  --ink-800: #1B282B;
  --ink-700: #2A3A3D;
  --ink-500: #55666A;   /* 次级文本             5.5:1 AA  */
  --ink-300: #93A2A5;   /* 占位符（仅非关键信息）        */
  --ink-200: #C0CBCC;
  --ink-100: #DBE2E1;

  /* ---------- 原始色板：宣纸 ---------- */
  --paper-200: #EFEBE3; /* 卡片衬底 / 进度槽 / 禁用底 */
  --paper-100: #F7F5F0; /* 🔒 亮模式页面主背景，原值不动 */
  --paper-50:  #FFFFFF;

  /* ---------- 原始色板：灵光（与原产品唯一保留的具体色值） ---------- */
  --lingguang:       #D8F24E;
  --lingguang-press: #C2DB3F;
  --lingguang-soft:  #E4F77E;
  --lingguang-deep:  #637213;              /* 🔒 浅底上的灵光系文字色 4.9:1 */
  --lingguang-glow:  rgba(216, 242, 78, .32);

  /* ---------- 原始色板：青玉（成立 / 凝实 / 充盈） ---------- */
  --jade:      #2E8B78;
  --jade-lit:  #4FB39B;
  --jade-deep: #1F6455;                    /* 青玉系文字色 6.4:1 */
  --jade-tint: #E4F1ED;

  /* ---------- 原始色板：鎏金（成就 / 境界 / 庄重） ---------- */
  /* 🔒 陷阱：--gilt 对宣纸仅 2.5:1，低于非文本 3:1 下限。
   *    它只能作纯装饰（卷轴轴头）。凡承载信息的鎏金元素——境界纹、法宝框、
   *    数值——亮模式下一律用 --gilt-deep。 */
  --gilt:      #C6972F;
  --gilt-lit:  #E0B75C;
  --gilt-deep: #8A6414;                    /* 🔒 亮模式下鎏金唯一信息性取值 4.9:1 */

  /* ---------- 原始色板：低亮语义（替代「红」的整套维度是亮度而非色相） ---------- */
  --waning: #7C8A8C;   /* 灵气涣散 / 待温养 */
  --mist:   #5E6B6E;   /* 心魔（反复出错），无面孔无红色 */

  /* ---------- 原始色板：暗底 void（art-bible §2.2，暗模式背景层） ---------- */
  /* 🔒 这些是暗模式下的「墨青深底」。亮模式不使用；暗模式 / 深色遮罩 / Hero 区
   *    叠层引用。值与 --ink-900 / --ink-800 同源，但 void 是「背景」语义、ink 是「文字」语义，
   *    分开命名避免「用文字色当背景」的语义混淆。 */
  --void-0:      #0B1214;   /* 页面主背景（暗模式） */
  --void-1:      #121B1D;   /* 卡片 / 题卡（= --ink-900） */
  --void-2:      #1B282B;   /* 弹窗 / 浮层（= --ink-800） */
  --void-border: rgba(255, 255, 255, .10);

  /* ---------- 鎏金 / 青玉亮色别名（v5 §4.4 语义对齐） ---------- */
  /* art-bible 原名 --gilt-lit / --jade-lit；v5 方案统一用 -light 后缀，此处设别名不增新值。 */
  --gilt-light: var(--gilt-lit);
  --jade-light: var(--jade-lit);

  /* ---------- 语义层（页面只准用这一层） ---------- */
  --bg:        var(--paper-100);
  --surface:   var(--paper-50);
  --surface-1: var(--paper-50);   /* 别名：= --surface（修复 responsive.css 引用未定义变量） */
  --surface-2: var(--paper-200);
  --bg-card:   color-mix(in srgb, var(--ink-900) 4%, var(--paper-50));  /* 卡片底（修复 vhome.css 引用未定义变量） */
  --text-1:    var(--ink-900);
  --text-2:    var(--ink-500);
  --text-3:    var(--ink-300);
  --border:    var(--ink-100);
  --hairline:  var(--ink-200);
  --accent:    var(--lingguang);
  --accent-on: var(--ink-900);
  --accent-text: var(--lingguang-deep);
  --ok:        var(--jade);
  --ok-text:   var(--jade-deep);
  --ok-tint:   var(--jade-tint);
  --ornament:  var(--gilt-deep);            /* 🔒 亮模式装饰用 deep 值 */
  --ornament-plain: var(--gilt);            /* 纯装饰，允许低对比 */

  /* ---------- Hero 区专用（始终在深色图片背景上，不随主题变） ---------- */
  --hero-text: #f8f6ee;   /* Hero 区文字色：暖宣纸白，不随亮/暗模式变 */
  --hero-card: rgba(8, 18, 26, 0.55);  /* Hero 区卡片/胶囊半透明底 */

  /* ---------- 字体（🔒 不加载任何中文 webfont，3–8MB 不可接受） ---------- */
  --font-ui: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB",
             "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", sans-serif;
  --font-sutra: "Songti SC", "STSong", "SimSun", "Noto Serif CJK SC", serif;  /* 修真专名 */
  --font-num: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas,
              "Liberation Mono", monospace;                                    /* 数字 / 式子 */

  /* ---------- 动效（§7.5 技术纪律） ---------- */
  /* 只动 transform / opacity；不动 width/height/top/left/box-shadow */
  --dur-micro:    100ms;   /* 高频微交互：铭刻点击 */
  --dur-inter:    150ms;   /* 单次交互反馈：吸附 */
  --dur-progress: 300ms;   /* 进度条 / 轨道推进 */
  --dur-settle:   500ms;   /* 结算级联 */
  --dur-realm:   1200ms;   /* 破境 */
  --ease-standard: cubic-bezier(.2, 0, .2, 1);
  --ease-enter:    cubic-bezier(0, 0, .2, 1);
  --ease-exit:     cubic-bezier(.4, 0, 1, 1);

  /* ---------- 尺度 ---------- */
  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 14px;
  --r-pill: 999px;
  --tap: 44px;             /* 🔒 最小可点区（等效小程序 88rpx） */
  --rune-min-w: 80px;      /* 🔒 符文构件最小宽（等效 160rpx） */
  --rune-min-h: 44px;      /* 🔒 符文构件最小高（等效 88rpx） */
  --gutter: 16px;
  --maxw: 560px;           /* 移动端优先，桌面居中收窄 */

  /* ---------- 圆角（v5 §4.4，与 --r-* 并存的语义命名） ---------- */
  --radius-sm:   8px;
  --radius-md:  12px;
  --radius-lg:  16px;
  --radius-xl:  20px;      /* 大卡片 / 弹窗 */
  --radius-2xl: 24px;      /* Hero 区 / 大面板 */
  --radius-pill: 999px;

  /* ---------- 阴影（v5 §4.4 新增） ---------- */
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);    /* 轻微浮起 */
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.12);   /* 卡片浮起 */
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.16);   /* 弹窗 / 大卡片 */
  --shadow-glow: 0 0 10px var(--lingguang),
                 0 0 20px color-mix(in srgb, var(--lingguang) 50%, transparent);  /* 灵光高亮 */

  /* ---------- 失败态：全局唯一表达（§7.4） ---------- */
  /* 🔒 符文黯淡 = opacity .45 + saturate(.4)。无红、无抖动、无位移；失败态可发极轻 rune_dim 余韵（玉磬/算珠，非评价性），禁一切负面/刺耳/评价性音效，见 art-bible §7.6。 */
  --dim-opacity: .45;
  --dim-saturate: .4;
}

/* 暗模式：只覆盖语义层 */
@media (prefers-color-scheme: dark) {
  :root {
    --bg:        #0B1214;
    --surface:   #121B1D;
    --surface-1: #121B1D;
    --surface-2: #1B282B;
    --bg-card:   rgba(20, 32, 42, 0.6);
    --text-1:    #E6EDEB;                 /* 🔒 不用纯白，纯白在深底起光晕 */
    --text-2:    #9DAAA9;
    --text-3:    #6A7877;
    --border:    rgba(255, 255, 255, .10);
    --hairline:  rgba(255, 255, 255, .16);
    --ok:        #4FB39B;
    --ok-text:   #4FB39B;
    --ok-tint:   rgba(79, 179, 155, .14);
    --ornament:  #E0B75C;
    --ornament-plain: #E0B75C;
    --accent-text: #D8F24E;
  }
}

/* 手动切换（顶栏「昼/夜」按钮）：[data-theme] 优先于系统 */
[data-theme="dark"] {
  --bg:        #0B1214;
  --surface:   #121B1D;
  --surface-1: #121B1D;
  --surface-2: #1B282B;
  --bg-card:   rgba(20, 32, 42, 0.6);
  --text-1:    #E6EDEB;
  --text-2:    #9DAAA9;
  --text-3:    #6A7877;
  --border:    rgba(255, 255, 255, .10);
  --hairline:  rgba(255, 255, 255, .16);
  --ok:        #4FB39B;
  --ok-text:   #4FB39B;
  --ok-tint:   rgba(79, 179, 155, .14);
  --ornament:  #E0B75C;
  --ornament-plain: #E0B75C;
  --accent-text: #D8F24E;
}

[data-theme="light"] {
  --bg:        #F7F5F0;
  --surface:   #FFFFFF;
  --surface-1: #FFFFFF;
  --surface-2: #EFEBE3;
  --bg-card:   color-mix(in srgb, var(--ink-900) 4%, #FFFFFF);
  --text-1:    #121B1D;
  --text-2:    #55666A;
  --text-3:    #93A2A5;
  --border:    #DBE2E1;
  --hairline:  #C0CBCC;
  --ok:        #2E8B78;
  --ok-text:   #1F6455;
  --ok-tint:   #E4F1ED;
  --ornament:  #8A6414;
  --ornament-plain: #C6972F;
  --accent-text: #637213;
}

/* 🔒 §7.5：尊重系统「减少动态效果」 */
@media (prefers-reduced-motion: reduce) {
  :root {
    --dur-micro: 1ms;
    --dur-inter: 1ms;
    --dur-progress: 1ms;
    --dur-settle: 1ms;
    --dur-realm: 1ms;
  }
  *, *::before, *::after {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 1ms !important;
    scroll-behavior: auto !important;
  }
}
