/* ============================================================
   UAA 设计系统 · Token 层 (v1 草案 / light)
   真相源：novel-site.html :root (行 13-47)，此处原样抽出 + 门户级新增令牌。
   纪律：所有模块只能消费这些变量，禁止再写裸 hex。新增主色一律走 --peri 阶梯。
   ============================================================ */

/* —— 数字字形矫正(2026-06-12) ——
   Playfair/Fraunces/Georgia 的数字是"老式数字"(oldstyle figures)：
   3/4/5/7/9 沉到基线下、6/8 上扬，一行数字高低不齐、与中文不齐平。
   此 @font-face 只接管 U+0030-0039(0-9)，用本地等高衬线数字顶掉它们；
   字母/标点不在 range 内，仍走原栈(Playfair 斜体 kicker 等不受影响)。
   src 全部 local()，不依赖网络字体：Times(mac/win/iOS) → Noto Serif/Tinos(安卓)。 */
@font-face{
  font-family:"UAA Num";
  src:local("Times New Roman"),local("TimesNewRomanPSMT"),local("Noto Serif"),local("Tinos");
  unicode-range:U+0030-0039;
}
@font-face{
  font-family:"UAA Num";
  font-weight:bold;
  src:local("Times New Roman Bold"),local("TimesNewRomanPS-BoldMT"),local("Noto Serif Bold"),local("Tinos Bold");
  unicode-range:U+0030-0039;
}

:root{
  /* —— 品牌色：长春花蓝(暮光主色) —— */
  --peri:#8AA0FF;
  --peri-600:#6B7FE8;
  --peri-700:#5566D9;      /* 实色按钮(白字) */
  --peri-100:#E6EAFF;
  --peri-050:#F1F3FF;
  --accent:#5566D9;

  /* —— 文字三级 —— */
  --ink:#1B1D33;
  --ink-2:#42466B;
  --ink-3:#7B7F9E;

  /* —— 中性背景 —— */
  --paper:#F3F3FA;
  --surface:#FFFFFF;
  --surface-2:#FBFBFE;
  --line:#E6E6F1;

  /* —— 状态/点缀 —— */
  --clay:#F0835F;          /* 暖橙 · 热度/编辑荐 */
  --clay-soft:#FDE9E1;
  --jade:#37A78C;          /* 完结 */
  --gold:#D7A33E;

  /* —— 阴影 —— */
  --shadow-s:0 4px 16px -8px rgba(43,46,92,.30);
  --shadow-m:0 14px 40px -18px rgba(60,64,120,.40);
  --shadow-cover:0 12px 26px -12px rgba(40,45,90,.55);

  /* —— 圆角 —— */
  --r-cover:9px;
  --r-card:18px;
  --r-pill:999px;
  --r-field:13px;

  /* —— 布局 —— */
  --maxw:1180px;
  --top-h:60px;
  --sub-h:48px;
  --tab-h:62px;

  /* —— 字体三栈("UAA Num" 等高数字覆盖见文件头) —— */
  --font-sans:-apple-system,BlinkMacSystemFont,"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC",sans-serif;
  --font-serif:"UAA Num","Songti SC","Source Han Serif SC","Noto Serif SC","Noto Serif CJK SC","SimSun",serif;
  --font-latin:"UAA Num","Fraunces",Georgia,"Times New Roman",serif;

  /* —— 状态条/反馈 —— */
  --bar-bg:rgba(243,243,250,.82);
  --toast-bg:#1B1D33;
  --toast-fg:#FFFFFF;
  --ghost-bg:rgba(255,255,255,.9);

  /* ========= 门户级新增令牌（novel-site 单文件没有、多模块门户必需） ========= */
  /* 层级阶梯：终结旧站 z-index 乱象，所有浮层只能取这些档位 */
  --z-base:1;
  --z-sticky:600;     /* topbar */
  --z-subnav:500;
  --z-tabbar:540;
  --z-bottombar:550;  /* 详情底栏 */
  --z-drawer:1800;
  --z-reader:2000;
  --z-modal:5000;     /* 登录/确认弹层 */
  --z-toast:9999;

  /* 间距 scale（4 的倍数，配 0.625rem 基准也成立，因为用 px） */
  --space-1:4px;  --space-2:8px;  --space-3:12px; --space-4:16px;
  --space-5:20px; --space-6:24px; --space-8:32px; --space-10:40px; --space-12:48px;

  /* 字号阶梯 */
  --fs-cap:11px; --fs-sm:12.5px; --fs-base:14px; --fs-md:15px;
  --fs-lg:17px;  --fs-xl:19px;   --fs-2xl:24px;  --fs-3xl:30px;

  /* 多模块品牌副色（各内容线的识别色，仅用于角标/标签点缀，主色仍是 --peri） */
  --m-novel:#8AA0FF;   /* 小说 */
  --m-video:#FF3B5C;   /* 视频(统一为 logo 红) */
  --m-comic:#FF3B5C;   /* 漫画(统一为 logo 红) */
  --m-audio:#FF3B5C;   /* 有声(统一为 logo 红) */
  --m-ai:#B98AFF;      /* AI */
}

/* rem 基准契约：生产站 html{font-size:62.5%}(1rem=10px)。
   DS 组件一律用 px，与基准解耦；旧页的 rem 值在 62.5% 下按原比例渲染。 */

/* ===== 流式字号令牌（安卓窄屏与 iOS 观感对齐）=====
   起因：安卓机实测视口约 358 CSS px，而设计基准是 iPhone 的 390 —— 同一个 15px
   在 358 的视口里占屏幅比 390 大 9%，用户看到的就是「安卓字比 iOS 大很多」。
   不是字号被放大（实测文字/容器比例与设计只差 6%），是每个 CSS px 物理更大。

   口径：字号 = min(设计值, 设计值 / 3.9 vw)，即
     视口 ≥ 390px → 完全等于设计值（PC 与大屏 iPhone 一律不受影响）
     视口 < 390px → 按视口等比缩小，358px 处约 0.918×，正好抵掉与 iOS 的差
     下限 0.85×，避免小屏上字小到读不动

   ⚠️ 令牌名就是设计值：--fz-13 = 13px、--fz-12_5 = 12.5px。新增字号要同步加令牌，
      直接写 font-size:Npx 不会参与缩放，安卓上就会比周围的字大一圈。
   ⚠️ 只覆盖 font-size。行高、内距、图标尺寸仍是写死 px —— 这是有意的：
      全都跟着缩等于整页缩放，那是另一回事(见 zoom 方案)，且会动到已定稿的版式。 */
:root{
  --fz-8:clamp(6.8px,2.0513vw,8px);
  --fz-8_5:clamp(7.225px,2.1795vw,8.5px);
  --fz-9:clamp(7.65px,2.3077vw,9px);
  --fz-9_5:clamp(8.075px,2.4359vw,9.5px);
  --fz-10:clamp(8.5px,2.5641vw,10px);
  --fz-10_5:clamp(8.925px,2.6923vw,10.5px);
  --fz-11:clamp(9.35px,2.8205vw,11px);
  --fz-11_5:clamp(9.775px,2.9487vw,11.5px);
  --fz-12:clamp(10.2px,3.0769vw,12px);
  --fz-12_5:clamp(10.625px,3.2051vw,12.5px);
  --fz-12_8:clamp(10.88px,3.2821vw,12.8px);
  --fz-13:clamp(11.05px,3.3333vw,13px);
  --fz-13_5:clamp(11.475px,3.4615vw,13.5px);
  --fz-14:clamp(11.9px,3.5897vw,14px);
  --fz-14_5:clamp(12.325px,3.7179vw,14.5px);
  --fz-15:clamp(12.75px,3.8462vw,15px);
  --fz-15_5:clamp(13.175px,3.9744vw,15.5px);
  --fz-16:clamp(13.6px,4.1026vw,16px);
  --fz-17:clamp(14.45px,4.359vw,17px);
  --fz-18:clamp(15.3px,4.6154vw,18px);
  --fz-19:clamp(16.15px,4.8718vw,19px);
  --fz-20:clamp(17px,5.1282vw,20px);
  --fz-21:clamp(17.85px,5.3846vw,21px);
  --fz-22:clamp(18.7px,5.641vw,22px);
  --fz-23:clamp(19.55px,5.8974vw,23px);
  --fz-24:clamp(20.4px,6.1538vw,24px);
  --fz-25:clamp(21.25px,6.4103vw,25px);
  --fz-26:clamp(22.1px,6.6667vw,26px);
  --fz-27:clamp(22.95px,6.9231vw,27px);
  --fz-28:clamp(23.8px,7.1795vw,28px);
  --fz-30:clamp(25.5px,7.6923vw,30px);
  --fz-32:clamp(27.2px,8.2051vw,32px);
  --fz-34:clamp(28.9px,8.7179vw,34px);
  --fz-40:clamp(34px,10.2564vw,40px);
  --fz-48:clamp(40.8px,12.3077vw,48px);
  --fz-52:clamp(44.2px,13.3333vw,52px);
}
