/* ============================================================
   知几 — base.css 共享层（2026-08-03 模块化拆分）
   reset / 语义令牌 / 纸底纸纹 / 星尘 / 通用 keyframes
   桌面(≥601)与移动(≤600)两套布局共同加载，无尺寸争议
   ============================================================ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px;border-radius:2px}

/* 2026-08-03 审查修复：细金滚动条（系统灰滚动条穿帮纸上画卷） */
html{scrollbar-width:thin;scrollbar-color:rgba(138,109,64,.28) transparent}
html::-webkit-scrollbar{width:6px}
html::-webkit-scrollbar-track{background:transparent}
html::-webkit-scrollbar-thumb{background:rgba(138,109,64,.25);border-radius:3px}

:root{
  /* ═══ 语义令牌 · 古籍拓本美学（国宴级）═══
     浅色模式（宣纸白底）— 暗色模式 token 见 Phase 4 */
  --surface-0:#F7F3E8;        /* 宣纸底 */
  --surface-1:#FCFAF4;        /* 卡片面 */
  --surface-2:rgba(196,154,95,0.08);  /* 选中/悬浮面 */
  --ink:#3A3025;              /* 主文字（墨色） */
  --ink-dim:#7A6450;          /* 次文字（褐灰） */
  --gold:#C49A5F;             /* 品牌金（铜器包浆） */
  --gold-hov:#D4AF6A;         /* 金 hover */
  --gold-deep:#8A6D40;        /* 深金（边框/描边） */
  --jade:#5B8C7A;             /* 玉绿（吉/生） */
  --cinnabar:#A8422E;         /* 朱砂（凶/警示） */
  --border-hairline:rgba(138,109,64,0.15);  /* 发丝线 */

  /* ═══ 兼容层（旧变量 → 语义令牌映射）═══ */
  --bg-deep:var(--surface-0);--bg-mid:#EDE8D8;--bg-card:rgba(0,0,0,0.02);--border:rgba(0,0,0,0.08);
  --text:var(--ink);--text-dim:var(--ink-dim);--accent:var(--gold);--accent-hov:var(--gold-hov);--accent-soft:var(--gold-deep);
  --gold-bg:rgba(196,154,95,0.08);--gold-border:rgba(196,154,95,0.22);
  --glass-bg:rgba(247,243,232,0.7);--glass-border:rgba(196,154,95,0.12);
  --ease-out:cubic-bezier(0.25,1,0.5,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);
  /* 法餐级令牌 */
  --space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;
  --radius-sm:6px;--radius-md:10px;--radius-lg:16px;
  --shadow-md:0 4px 16px rgba(0,0,0,0.08);--shadow-lg:0 8px 32px rgba(0,0,0,0.12);
  --duration-fast:120ms;--duration-normal:250ms;--duration-slow:400ms;
  --z-drawer:999;--z-overlay:998;--z-modal:10000;

  /* ═══ 字体族 ═══ */
  --font-serif:'Noto Serif SC','Source Han Serif SC','SimSun',serif;   /* 宋体 — 标题/术语/题字 */
  --font-sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Noto Sans SC','Helvetica Neue',Arial,sans-serif;  /* 正文 */
  --font-cinzel:'Cinzel',serif;  /* 拉丁小标牌 */

  /* ═══ 器物层令牌（2026-08-03 排盘页重构）═══ */
  --radius-ledger:3px;           /* 契书方角（全页交互件唯一角档） */
  --ink-soft:#7A6450;            /* 次级文字 · 对纸底 5.02:1 ✓ */
  --gold-ink:#8A6D40;            /* 金墨（图形/加粗正文 · 4.35:1 ≥3:1 ✓） */
  --jade-deep:#3F6658;           /* 玉深（应徽章/吉 · 白字 6.4:1 ✓） */
  --cinnabar-ink:#9A3B2A;        /* 锈朱（错误文字 · 6.24:1 ✓） */
  --frame-main:rgba(138,109,64,.28);   /* 凭帖外框 */
  --frame-inner:rgba(138,109,64,.12);  /* 凭帖内细线 */
  --btn-min-h:44px;              /* 触控最小高度 */
  --cta-min-h:48px;              /* 主 CTA 高度 */
}

body{
  font-family:var(--font-sans);
  background:#F7F3E8;
  color:var(--text);min-height:100vh;overflow-x:hidden;position:relative;
}

/* ── 暖阳叠色背景 ── */
body::before{
  content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(196,154,95,0.07) 0%, transparent 55%),
    radial-gradient(ellipse at 50% 100%, rgba(180,140,90,0.05) 0%, transparent 50%),
    #F7F3E8;
}
/* 宣纸纸纹 — SVG feTurbulence 噪声 + 乘性混合 */
body::after{
  content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/></svg>");
  opacity:0.035;mix-blend-mode:multiply;
}

/* ── 星尘干支 · 暗蓝雕刻（两断点共用）── */
.dust-chars{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.dust-char{
  position:absolute;font-family:"Noto Serif SC","SimSun",serif;
  color:rgba(58,48,37,0.16);
  font-weight:500;
  user-select:none;letter-spacing:0.05em;
  animation:dust-spiral 30s ease-in-out infinite;
}
.dust-char-far{color:rgba(58,48,37,0.12);filter:blur(0.6px)}
@keyframes dust-spiral{
  0%{transform:translate(0,0) scale(1)}
  20%{transform:translate(-10px,8px) scale(1.02)}
  40%{transform:translate(6px,-10px) scale(0.97)}
  60%{transform:translate(9px,6px) scale(1.02)}
  80%{transform:translate(-6px,-8px) scale(0.98)}
  100%{transform:translate(0,0) scale(1)}
}

/* ── 通用 keyframes（无尺寸争议，两断点共用）── */
@keyframes coin-flip{
  0%{transform:rotateX(0) rotateY(0) rotateZ(0)}
  25%{transform:rotateX(540deg) rotateY(30deg) rotateZ(15deg)}
  50%{transform:rotateX(1080deg) rotateY(-30deg) rotateZ(-10deg)}
  75%{transform:rotateX(1620deg) rotateY(15deg) rotateZ(5deg)}
  100%{transform:rotateX(2160deg) rotateY(0) rotateZ(0)}
}
@keyframes seal-press{from{transform:scale(1.14);opacity:.5}to{transform:scale(1);opacity:1}}
@keyframes liuyao-archive-spin{to{transform:rotate(360deg)}}
@keyframes rail-ink{from{transform:translateX(-50%) scaleX(0)}to{transform:translateX(-50%) scaleX(1)}}
@keyframes panel-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
