/* ============================================================================
 * 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;   /* 心魔（反复出错），无面孔无红色 */

  /* ---------- 语义层（页面只准用这一层） ---------- */
  --bg:        var(--paper-100);
  --surface:   var(--paper-50);
  --surface-2: var(--paper-200);
  --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);            /* 纯装饰，允许低对比 */

  /* ---------- 字体（🔒 不加载任何中文 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;           /* 移动端优先，桌面居中收窄 */

  /* ---------- 失败态：全局唯一表达（§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-2: #1B282B;
    --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-2: #1B282B;
  --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-2: #EFEBE3;
  --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;
  }
}
