/* ============================================================
   研伴官网 · design tokens
   「纸质书香」—— 与小程序 miniapp/App.vue 一一对应，这里是它的镜像。
   换主题 = 同名换值。不要在这个文件之外硬编码颜色。
   ============================================================ */

:root {
  /* ---- 品牌色板（与 miniapp/App.vue 逐字一致，勿改） ---- */
  --paper:  #F5F0E6;  /* 纸底 */
  --card:   #FCFAF6;  /* 卷面 */
  --ink:    #3A342B;  /* 正文 */
  --ink-2:  #857B6B;  /* 次要 */
  --ink-3:  #B3A995;  /* 更次 */
  --seal:   #A5382C;  /* 印章红：重点 / 强调 */
  --bamboo: #5F7A4C;  /* 竹青：完成态 */
  --amber:  #A8842C;
  --border: #E6DCC6;  /* 细线 */
  --seal-foreground: #FDF9EF;  /* 唯一压在朱砂上的字色（6.24:1）；比卷面白暖一度，
                                  避免朱砂配纯白那种廉价的高对比 */

  /* ---- Web 可读性补丁 ----
     实测对比度（sRGB，压在 --paper #F5F0E6 上）：
                            纸底    卷面
       --ink                 10.84   11.81  ✓ 正文
       --seal                 5.77    6.29  ✓ 正文
       --seal hover #8E3025   7.11    7.75  ✓
       --bamboo               4.23    4.60  ✗ 正文 / ✓ 大字与图形
       --ink-2                3.67    3.99  ✗ 正文 / ✓ 大字（≥18px，或 ≥14px 粗体）
       --amber                3.08    3.36  ✗ 正文 / ✓ 仅大字，勉强
       --ink-3                2.05    2.23  ✗ 仅装饰（细线、水印、禁用态）
       印上白 #FDF9EF 压在 --seal 上 6.24，压在 hover 深朱砂上 7.68
     所以补一档压得住的次要墨色，品牌 token 本身原样保留。
     小程序 2026-08-30 起同名同值也有 --ink-2-text，两端逐字一致；
     --ink-2 在两端都只剩大字与图形用途。 */
  /* ---- 打卡日历热力四档（与 miniapp/common/theme.js 逐字一致，只用在日历复刻里）----
     「没学」是柔和的暗粉而不是红 —— theme.js 原注释：柔和，不指责。 */
  --heat-empty: #EDE5D2;  /* 未来 / 今天还没打卡 */
  --heat-miss:  #D9B0A6;  /* 过去没学 */
  --heat-part:  #D8C27A;  /* 部分完成 */
  --heat-done:  #8FAE7C;  /* 全完成 */

  /* ---- 书的实物层（2026-10-21，A「实物书」）：只用在封面和书模式的桌面上 ----
     封面是全站唯一的深色面——单一浅色律的唯一例外（作者 10-21 同意）。
     磁青：古籍线装书衣的传统颜色（靛染的深青纸）。题签用旧一点的纸色，订线是本白丝线。 */
  --cover:      #2E3A4A;  /* 磁青书衣；--paper 压在上面 10.1:1 */
  --cover-deep: #232C38;  /* 包角、书衣暗部 */
  --slip:       #EDE3CB;  /* 题签纸；--ink 压在上面 10.0:1 */
  --thread:     #DCD3C0;  /* 本白订线 */
  --desk:       #E8E0CF;  /* 书模式下书摊放的桌面（比纸底深一档，让书有轮廓） */

  --ink-2-text:  #736958;  /* 4.75:1 on --paper —— 正文尺寸的次要文字用它 */
  --bamboo-text: #4C6339;  /* 竹青的正文档 —— 要读的「完成 / 已通过」文字用它 */

  /* ---- 形状 ---- */
  --radius-cell: 4px; /* = 小程序日历格子的 8rpx（plan.vue .cal-day） */
  --radius:    7px;   /* = 小程序的 14rpx */
  --radius-lg: 12px;

  /* ---- 字体 ---- */
  /* Display 层。栈首 Yanban Display 是自托管的 Noto Serif SC 字符子集——
     Android 没有 Songti SC / STSong / SimSun，Georgia 又只覆盖拉丁字母，
     没有这一层，宋体标题在安卓上会静默变成黑体。子集必须随文案重新生成。 */
  --font-title: "Yanban Display", "Songti SC", "STSong", "SimSun",
                "Noto Serif CJK SC", "Source Han Serif SC", Georgia, serif;
  --font-body:  -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB",
                "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;

  /* ---- 间距（4px 基）---- */
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 24px;
  --s-6: 32px;
  --s-7: 48px;
  --s-8: 64px;
  --s-9: 96px;

  /* ---- 阴影（全站仅此一档；见 DESIGN.md 的 Elevation·线装律）----
     暖褐而非黑 —— 纸上的影子不是灰的。需要更强层级时加细线或加留白，不加第二档。 */
  --shadow-paper: 0 1px 5px rgba(90, 74, 50, 0.06);

  /* ---- 动效（全站仅此一组；见 DESIGN.md 的 Motion）---- */
  --ease-out: cubic-bezier(0.25, 1, 0.5, 1);
  --dur-state: 160ms;
  --dur-gesture: 200ms;

  /* ---- 版面 ---- */
  --topbar-h: 57px;   /* 56px min-height + 1px 下边线。首屏跨页要减掉它才能刚好一屏 */
  --spread-w: 1200px; /* 跨页版心 */
  --foot-h:   120px;  /* 首页居中地脚在 PC 上的规定高度（不是实测值）。最后一个跨页减掉它，和地脚合起来正好一屏 */

  /* ---- 层级 ---- */
  --z-sticky: 100;
  --z-menu:   200;
}
