@charset "utf-8";
/* ==========================================================================
   tokens.css —— 与主题无关的设计 token（几何 / 字体 / 动效 / 媒体层 / 渲染效果）

   配色 token 不在这里：
     · 主题色（5 套）→ assets/css/themes.generated.css（由 data/themes.json 生成）
     · 实物色（金属、宝石、水晶、印章朱砂）→ data/palette.json，
       JS 侧经 assets/js/palette.generated.js 使用，CSS 侧仅需 --seal / --metal-* / --gem-*

   铁律：主题色只走 var()，实物色不跟随主题（见 docs/主题与Token规范.md）。
   ========================================================================== */

:root{
  /* ---------- 圆角 ---------- */
  --radius-sm:8px;
  --radius:14px;
  --radius-lg:22px;
  --radius-pill:999px;

  /* ---------- 字体族 ---------- */
  --font-display:"Songti SC","STSong","SimSun",serif;
  --font-body:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  /* 兼容别名：现有代码沿用 --serif / --sans 命名 */
  --serif:var(--font-display);
  --sans:var(--font-body);
  --font-mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;

  /* ---------- 动效 ---------- */
  --dur-fast:.15s;
  --dur:.2s;
  --dur-slow:.4s;

  /* ---------- 层级 ---------- */
  --z-modal:50;
  --z-toast:80;
  --z-mask:100;

  /* ---------- 阴影（中性色，5 套主题共用） ---------- */
  --fx-shadow-1:0 24px 60px rgba(0,0,0,.45);
  --fx-shadow-2:rgba(0,0,0,.35);
  --fx-shadow-3:rgba(0,0,0,.30);
  --fx-card-shadow:rgba(0,0,0,.25);
  --fx-modal-shadow:rgba(0,0,0,.60);
  --fx-inset:rgba(0,0,0,.35);
  --fx-text-shadow:rgba(0,0,0,.55);
  --fx-btn-glow:rgba(201,154,78,.25);
  --shadow:var(--fx-shadow-1);

  /* ---------- 遮罩（弹窗背后的压暗层） ---------- */
  --fx-scrim:rgba(8,6,4,.72);
  --fx-scrim-strong:rgba(6,4,2,.78);

  /* ---------- 媒体层：照片/图片上的遮罩与文字 ----------
     拍品标准照统一纯黑底拍摄，图片上的文字必须始终可读，
     因此这一组不随主题变化（亮色主题下依然是"暗底 + 浅字"）。 */
  --media-scrim:#0a0806;
  --media-bg:#0b0907;
  --on-media:#efe6d3;
  --on-media-mut:#d8cdb8;
  --on-media-strong:#ffffff;   /* 主视觉大标题用的最高对比色 */
}
