/**
 * fsmag.co 设计令牌（Design Tokens）
 *
 * 单一真理之源（Single Source of Truth）。
 * 全站颜色、字体、间距、字号、阴影、圆角的唯一权威定义。
 *
 * 所有页面、所有组件、所有 CSS 文件 MUST 通过 var(--fsmag-*) 取用，
 * 严禁再写 #1c355e 这类硬编码十六进制色。
 *
 * 本文件由 globals.css 与 _legacy 各 CSS 通过 @import 或 layout 加载先行注入，
 * 确保所有下游样式都能解析到这些变量。
 *
 * 命名约定：
 *   --fsmag-color-<role>            语义颜色（推荐使用，如 --fsmag-color-accent）
 *   --fsmag-color-<role>-<variant>  变体（subtle/strong/inverted）
 *   --fsmag-font-<role>             字体堆栈
 *   --fsmag-text-<scale>            字号标尺
 *   --fsmag-space-<scale>           间距标尺
 *   --fsmag-shadow-<scale>          阴影
 *   --fsmag-radius-<scale>          圆角
 *
 * 兼容别名（保留以避免破坏旧 CSS）：
 *   --diplomatic-blue / --history-gold / --bg-paper / --color-fsmag-* …
 *   这些都是 fallback 别名，新代码不要使用，会在迁移完成后删除。
 */

:root {
  /* ──────────────────────────────────────────────────────── */
  /*  颜色 - 品牌核心                                            */
  /* ──────────────────────────────────────────────────────── */

  /* 深蓝："外交蓝"，标题、作者署名、链接 */
  --fsmag-color-deep:           #1c355e;
  --fsmag-color-deep-soft:      #2a4a6e;
  --fsmag-color-deep-pale:      #cbd6e6;

  /* 金色："历史金"，强调线、章节眉、装饰 */
  --fsmag-color-gold:           #c5a059;
  --fsmag-color-gold-bright:    #e8c07d;  /* 较亮的金色，用于深色背景或封面 */

  /* 朱：警示 / 重要标识 / 民国意象 */
  --fsmag-color-vermillion:     #8b2942;
  --fsmag-color-accent:         #c0392b;  /* 比 vermillion 更鲜艳，用于"封面"等强调 */

  /* 青：民国旗帜配色 */
  --fsmag-color-teal:           #2d6a6e;

  /* ──────────────────────────────────────────────────────── */
  /*  颜色 - 中性                                                */
  /* ──────────────────────────────────────────────────────── */

  /* 纸色 - 站点底色（米白偏暖，模拟铜版纸） */
  --fsmag-color-paper:          #fbfbf9;
  --fsmag-color-paper-warm:     #F7F3EE;  /* 主色调更偏奶黄的版本 */
  --fsmag-color-ivory:          #f5f2ea;
  --fsmag-color-ivory-light:    #fdfcfa;

  /* 文字 */
  --fsmag-color-ink:            #2b2b2b;  /* 主文字 */
  --fsmag-color-ink-soft:       #555;     /* 副文字 */
  --fsmag-color-ink-muted:      #888;     /* 提示、时间戳 */
  --fsmag-color-ink-subtle:     #aaa;     /* 边角元数据 */

  /* 边框 */
  --fsmag-color-border:         #ece8e0;
  --fsmag-color-border-soft:    #f4efe6;
  --fsmag-color-border-strong:  #d8d2c4;

  /* 背景层 */
  --fsmag-color-surface:        #ffffff;          /* 卡片白底 */
  --fsmag-color-surface-soft:   #f8f5ef;          /* 二级容器底 */
  --fsmag-color-overlay:        rgba(28, 53, 94, 0.05);

  /* ──────────────────────────────────────────────────────── */
  /*  字体堆栈                                                   */
  /* ──────────────────────────────────────────────────────── */

  /* 中文标题 / 文学正文 */
  --fsmag-font-title: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", Georgia, serif;
  --fsmag-font-prose: "Noto Serif SC", "Source Han Serif SC", "Songti SC", Georgia, serif;

  /* 英文 / 数字 / kicker */
  --fsmag-font-eng:   "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --fsmag-font-mono:  "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;

  /* 装饰字（书法体），仅用于民国专题等特殊场景 */
  --fsmag-font-deco:  "Ma Shan Zheng", "Noto Serif SC", serif;

  /* 默认 sans 与 serif（用于页面级 UI） */
  --fsmag-font-sans:  -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans GB",
                      "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif;

  /* ──────────────────────────────────────────────────────── */
  /*  字号标尺（modular scale，1.2 步长）                        */
  /* ──────────────────────────────────────────────────────── */

  --fsmag-text-3xs:    0.625rem;   /* 10px - kicker eyebrow */
  --fsmag-text-2xs:    0.7rem;     /* 11px - timestamp / micro tag */
  --fsmag-text-xs:     0.78rem;    /* 12.5px - byline / nav small */
  --fsmag-text-sm:     0.875rem;   /* 14px - meta / dek small */
  --fsmag-text-base:   1rem;       /* 16px - 默认 */
  --fsmag-text-md:     1.125rem;   /* 18px - 正文 */
  --fsmag-text-lg:     1.25rem;    /* 20px - section dek */
  --fsmag-text-xl:     1.5rem;     /* 24px - card title */
  --fsmag-text-2xl:    1.75rem;    /* 28px - sub-section title */
  --fsmag-text-3xl:    2.125rem;   /* 34px - article title */
  --fsmag-text-4xl:    2.625rem;   /* 42px - hero title */
  --fsmag-text-display: 3.25rem;   /* 52px - 民国大标题 */

  /* ──────────────────────────────────────────────────────── */
  /*  间距标尺（4px 步长）                                       */
  /* ──────────────────────────────────────────────────────── */

  --fsmag-space-1:   0.25rem;    /* 4 */
  --fsmag-space-2:   0.5rem;     /* 8 */
  --fsmag-space-3:   0.75rem;    /* 12 */
  --fsmag-space-4:   1rem;       /* 16 */
  --fsmag-space-5:   1.25rem;    /* 20 */
  --fsmag-space-6:   1.5rem;     /* 24 */
  --fsmag-space-8:   2rem;       /* 32 */
  --fsmag-space-10:  2.5rem;     /* 40 */
  --fsmag-space-12:  3rem;       /* 48 */
  --fsmag-space-16:  4rem;       /* 64 */
  --fsmag-space-20:  5rem;       /* 80 */
  --fsmag-space-24:  6rem;       /* 96 */

  /* 阅读区 padding（响应式） */
  --fsmag-space-read-pad: clamp(16px, 4vw, 32px);

  /* ──────────────────────────────────────────────────────── */
  /*  布局尺度                                                   */
  /* ──────────────────────────────────────────────────────── */

  --fsmag-width-prose:     min(720px, calc(100vw - 2 * var(--fsmag-space-read-pad)));
  --fsmag-width-content:   min(1200px, calc(100vw - 2 * var(--fsmag-space-read-pad)));
  --fsmag-width-shell:     min(1400px, calc(100vw - 2 * var(--fsmag-space-read-pad)));

  /* ──────────────────────────────────────────────────────── */
  /*  圆角                                                       */
  /* ──────────────────────────────────────────────────────── */

  --fsmag-radius-sm:   2px;
  --fsmag-radius:      4px;
  --fsmag-radius-md:   6px;
  --fsmag-radius-lg:   12px;
  --fsmag-radius-xl:   20px;
  --fsmag-radius-full: 9999px;

  /* ──────────────────────────────────────────────────────── */
  /*  阴影                                                       */
  /* ──────────────────────────────────────────────────────── */

  --fsmag-shadow-xs:   0 1px 2px rgba(28, 53, 94, 0.04);
  --fsmag-shadow-sm:   0 2px 6px rgba(28, 53, 94, 0.06);
  --fsmag-shadow-md:   0 6px 18px rgba(28, 53, 94, 0.08);
  --fsmag-shadow-lg:   0 12px 32px rgba(0, 0, 0, 0.08);
  --fsmag-shadow-xl:   0 20px 48px rgba(0, 0, 0, 0.12);

  /* ──────────────────────────────────────────────────────── */
  /*  动效                                                       */
  /* ──────────────────────────────────────────────────────── */

  --fsmag-ease:        cubic-bezier(0.22, 1, 0.36, 1);
  --fsmag-ease-in:     cubic-bezier(0.4, 0, 1, 1);
  --fsmag-ease-out:    cubic-bezier(0, 0, 0.2, 1);
  --fsmag-duration-1:  150ms;
  --fsmag-duration-2:  220ms;
  --fsmag-duration-3:  320ms;
  --fsmag-duration-4:  500ms;

  /* ──────────────────────────────────────────────────────── */
  /*  Z-index                                                    */
  /* ──────────────────────────────────────────────────────── */

  --fsmag-z-base:      0;
  --fsmag-z-dropdown:  100;
  --fsmag-z-sticky:    200;
  --fsmag-z-overlay:   300;
  --fsmag-z-modal:     400;
  --fsmag-z-toast:     500;

  /* ──────────────────────────────────────────────────────── */
  /*  断点（仅作参考；实际媒体查询用 px 直写）                     */
  /* ──────────────────────────────────────────────────────── */
  /*  --fsmag-bp-sm: 640px;   仅注释，不能在 media query 中用 var */
  /*  --fsmag-bp-md: 768px;                                       */
  /*  --fsmag-bp-lg: 1024px;                                      */
  /*  --fsmag-bp-xl: 1280px;                                      */

  /* ════════════════════════════════════════════════════════ */
  /*  ↓ 兼容别名（不要在新代码中使用，迁移完成后删除）            */
  /* ════════════════════════════════════════════════════════ */

  --bg-paper:        var(--fsmag-color-paper);
  --diplomatic-blue: var(--fsmag-color-deep);
  --history-gold:    var(--fsmag-color-gold);
  --text-main:       var(--fsmag-color-ink);
  --text-muted:      var(--fsmag-color-ink-soft);
  --font-title:      var(--fsmag-font-title);
  --font-eng:        var(--fsmag-font-eng);
  --font-serif:      var(--fsmag-font-prose);
  --border-color:    var(--fsmag-color-border);

  --color-fsmag-bg:     var(--fsmag-color-paper-warm);
  --color-fsmag-ink:    var(--fsmag-color-ink);
  --color-fsmag-accent: var(--fsmag-color-accent);
  --color-fsmag-deep:   var(--fsmag-color-deep);
  --color-fsmag-gold:   var(--fsmag-color-gold-bright);

  /* republic 系列别名 */
  --fsmag-roc-blue:      var(--fsmag-color-deep);
  --fsmag-roc-blue-soft: var(--fsmag-color-deep-soft);
  --fsmag-ivory:         var(--fsmag-color-ivory);
  --fsmag-ivory-light:   var(--fsmag-color-ivory-light);
  --roc-ivory:           var(--fsmag-color-ivory);
  --roc-deep-blue:       var(--fsmag-color-deep);
  --color-vermillion:    var(--fsmag-color-vermillion);
  --color-teal:          var(--fsmag-color-teal);

  /* republic 布局 */
  --read-pad:        var(--fsmag-space-read-pad);
  --read-max:        var(--fsmag-width-content);
  --fsmag-shell-max: var(--fsmag-width-shell);
  --republic-read-pad:    var(--fsmag-space-read-pad);
  --republic-content-max: var(--fsmag-width-content);

  /* republic ease */
  --roc-family-ease: var(--fsmag-ease);
}

/* ════════════════════════════════════════════════════════════
   暗色模式 - 留作未来扩展
   当前只有 fsmag-article.css 在 prefers-color-scheme: dark 下覆盖部分变量。
   将来若做完整暗色，可在此处统一。
   ════════════════════════════════════════════════════════════ */
