[CSS]

/* ============================================================
   鉴宝直播·蓝星故事 — 主题样式表
   基调：江湖气 + 诙谐戏谑 + 硬派写实
   场景：蓝星·元国「临江市」老城区二楼·寻真台鉴宝直播间
   色调：暖金/琥珀/红木调（H 20-45°）+ 直播暖红 + 江湖冷硬对立色
   氛围：暖金、钨丝灯、朱砂印、江湖烟火气
   ============================================================ */

/* ──────────────────────────────────────────────
   01. 全局主题变量（:root 作用域根）
   ────────────────────────────────────────────── */
:root {
  /* ── 基础结构变量 ── */
  --space-safe-x: 20px;        /* 容器左右安全内边距 */
  --space-safe-y: 20px;        /* 容器上下安全内边距 */
  --space-block-gap: 20px;     /* 块级组件纵向间距 */
  --space-text-inset: 12px;    /* 文字型元素最小内缩 */

  /* ── 鉴宝直播主题色板（暖金/琥珀/红木基调） ── */
  --bg:             #160d06;   /* 主背景：钨丝灯下的深酒褐黑 */
  --bg-card:        #221409;   /* 卡片背景：深红木色 */
  --border:         #3d2a12;   /* 边框：暗金黄褐 */
  --accent:         #e8a33d;   /* 主强调：暖金（钨丝灯色） */
  --accent-soft:    #f0c078;   /* 柔和强调：琥珀淡金 */
  --text:           #f2e2c2;   /* 正文：米白暖色 */
  --text-sub:       #b89a6a;   /* 辅助文字：暖褐金 */
  --text-dim:       #8a6f45;   /* 最弱文字：深褐金 */

  /* ── 角色色板（对话系统） ── */
  --q-player:       #f0a83d;   /* 主播/玩家：暖金呼应accent */
  --q-anchor:       #e2583e;   /* 核心角色：朱砂暖红 */
  --q-bg:           #9c8b6e;   /* 次要角色：低饱和土褐 */
  --q-versus:       #5aa8d8;   /* 对立角色：冷焰蓝（槌爷） */
  --q-sys:          #88a0b0;   /* 系统/平台：中性科技灰蓝 */
  --q-unknown:      #6e6a60;   /* 未知送拍人：低饱和灰 */
  --q-danmu:        #ff6b3d;   /* 弹幕群像：高亮橙红 */

  /* ── 状态栏重点区域色板 ── */
  --status-critical: #f0c078;  /* 一级重要：琥珀高亮 */
  --status-warning:  #ff6b3d;  /* 警示：暖橙红 */
  --status-progress: #4ec8a8;  /* 进度：冷青色（对比暖色系） */

  /* ── 直播间组件细节令牌 ── */
  --danmu-bg: rgba(12, 7, 3, 0.72);   /* 弹幕滚动区半透明深底 */
  --danmu-slot: radial-gradient(circle at 15% 20%, #2a1d0d 0%, #120b04 60%);
  --artifact-bg: linear-gradient(160deg, #1e1309 0%, #160d06 100%);
  --seal-red: #c1342c;                 /* 朱砂印对比点缀色 */
  --gold-edge: linear-gradient(180deg, #f0c078 0%, #e8a33d 30%, rgba(232,163,61,0.15) 100%);
}

/* ============================================================
   02. 全局结构 — 响应式安全区与基础排版
   ============================================================ */

/* 主容器：直播间外框 */
game {
  display: block;
  position: relative;
  max-width: 720px;
  margin: 0 auto;
  padding: var(--space-safe-y) var(--space-safe-x);
  font-family: 'Noto Sans SC', 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', sans-serif;
  font-size: 14px;
  line-height: 1.75;
  background: var(--bg);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 6px 24px rgba(0,0,0,0.6), inset 0 1px 0 rgba(240,192,120,0.06);
}

/* 主容器底部黄铜装饰条 */
game::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 4px;
  border-radius: 0 0 10px 10px;
  background: linear-gradient(90deg, var(--accent) 0%, var(--accent-soft) 50%, var(--accent) 100%);
  opacity: 0.85;
}

/* 顶部标题装饰（模拟直播间招牌火漆条） */
game::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--seal-red) 30%, var(--seal-red) 70%, transparent);
  opacity: 0.5;
}

/* 直播间宣传卡（promohost区） */
game promo {
  display: block;
  margin: 0 0 var(--space-block-gap) 0;
  padding: var(--space-text-inset);
  border-left: 3px solid var(--accent);
  background: linear-gradient(90deg, color-mix(in srgb, var(--accent) 6%, transparent) 0%, transparent 60%);
  font-size: 13px;
  color: var(--text-sub);
}

game promo title {
  display: block;
  font-family: 'Noto Serif SC', 'Source Han Serif SC', 'SimSun', serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 3px;
  color: var(--accent);
  margin-bottom: 6px;
}

game promo title::before,
game promo title::after {
  content: '◆';
  font-size: 10px;
  color: var(--seal-red);
  margin: 0 6px;
  vertical-align: middle;
}

game promo p { margin: 0; }

/* 正文场景描写 */
game text { display: block; margin: 0 0 var(--space-block-gap) 0; }

game text p {
  display: block;
  margin: 0 0 8px 0;
  font-size: 14px;
  line-height: 1.8;
  color: var(--text);
}

/* 环境描行（直播间台灯氛围） */
game env {
  display: block;
  color: var(--text-sub);
  font-size: 12px;
  text-align: center;
  padding: 10px 16px;
  margin: 0 0 var(--space-block-gap) 0;
  border-top: 1px dashed var(--border);
  border-bottom: 1px dashed var(--border);
  letter-spacing: 1.5px;
  font-style: italic;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 5%, transparent) 40%, color-mix(in srgb, var(--accent) 5%, transparent) 60%, transparent);
}

/* 分隔线：直播间转场切割 */
game hr {
  display: block;
  border: none;
  height: 2px;
  margin: var(--space-block-gap) 0;
  background: linear-gradient(90deg,
    transparent, var(--accent) 20%, var(--accent-soft) 50%, var(--accent) 80%, transparent);
  opacity: 0.6;
}

/* ============================================================
   03. 折叠区（details）—— 直播间功能面板
   ============================================================ */
game details { display: block; margin: 12px 0; }

game details summary {
  display: block;
  cursor: pointer;
  user-select: none;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 3px;
  padding: 10px 14px;
  text-align: center;
  color: var(--text-dim);
  background: color-mix(in srgb, var(--bg-card) 60%, transparent);
  border: 1px solid transparent;
  border-radius: 6px;
}

game details summary:hover {
  color: var(--accent-soft);
  background: color-mix(in srgb, var(--accent) 8%, var(--bg-card));
}

game details[open] summary {
  color: var(--accent);
  border-bottom: 1px solid var(--border);
}

/* ============================================================
   04. 卡片型区块（panel / mem）
   ============================================================ */
game panel,
game mem {
  display: block;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px 16px;
  margin: 8px 0;
}

/* 区块标题 */
game panel > h,
game mem > h {
  display: block;
  color: var(--accent-soft);
  font-size: 11px;
  font-weight: 600;
  text-align: center;
  letter-spacing: 4px;
  padding-bottom: 8px;
  margin-bottom: 10px;
  border-bottom: 1px solid var(--border);
}

/* ============================================================
   05. 键值行（row / k / v）
   ============================================================ */
game panel row,
game rel row,
game pacro row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 5px 0;
  font-size: 12px;
  gap: 12px;
}

game k {
  display: inline;
  color: var(--text-sub);
  flex-shrink: 0;
  min-width: 70px;
}

game v {
  display: inline;
  color: var(--text);
  font-weight: 500;
  text-align: right;
  flex: 1;
}

/* 角色名上色（角色档案内 c 属性） */
game k[c="a"] {
  color: var(--q-anchor);
  font-weight: 600;
}
game k[c="b"] {
  color: var(--q-bg);
  font-weight: 600;
}
game k[c="v"] {
  color: var(--q-versus);
  font-weight: 600;
}
game k[c="s"] {
  color: var(--q-sys);
  font-weight: 600;
}
game k[c="x"] {
  color: var(--q-unknown);
  font-weight: 600;
}

/* ============================================================
   06. 角色对话系统（q 标签）
   ============================================================ */
game q {
  display: block;
  margin: 6px 0;
  padding: 6px 12px 6px 14px;
  border-left: 3px solid;
  border-radius: 0 3px 3px 0;
  font-size: 14px;
  line-height: 1.75;
}

/* 角色名牌（伪元素 w 属性） */
game q[w]::before {
  content: attr(w);
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  padding: 1px 8px;
  margin-right: 8px;
  border-radius: 2px;
  vertical-align: middle;
  letter-spacing: 0.5px;
  border: 1px solid;
}

/* ── p：主播 / 玩家（暖金，靠近主色） ── */
game q[c="p"] {
  border-left-color: var(--q-player);
  background: linear-gradient(90deg, color-mix(in srgb, var(--q-player) 7%, transparent) 0%, transparent 55%);
  color: color-mix(in srgb, var(--text) 88%, var(--q-player) 12%);
}
game q[c="p"][w]::before {
  background: color-mix(in srgb, var(--q-player) 15%, transparent);
  color: var(--q-player);
  border-color: color-mix(in srgb, var(--q-player) 35%, transparent);
}

/* ── a：核心角色（阿花=朱砂暖红；胡百万同样a级金主） ── */
game q[c="a"] {
  border-left-color: var(--q-anchor);
  background: linear-gradient(90deg, color-mix(in srgb, var(--q-anchor) 6%, transparent) 0%, transparent 55%);
  color: color-mix(in srgb, var(--text) 90%, var(--q-anchor) 10%);
}
game q[c="a"][w]::before {
  background: color-mix(in srgb, var(--q-anchor) 12%, transparent);
  color: var(--q-anchor);
  border-color: color-mix(in srgb, var(--q-anchor) 28%, transparent);
}

/* ── b：次要角色（老饕=低饱和土褐） ── */
game q[c="b"] {
  border-left-color: var(--q-bg);
  background: linear-gradient(90deg, color-mix(in srgb, var(--q-bg) 5%, transparent) 0%, transparent 55%);
  color: color-mix(in srgb, var(--text) 92%, var(--q-bg) 8%);
}
game q[c="b"][w]::before {
  background: color-mix(in srgb, var(--q-bg) 12%, transparent);
  color: var(--q-bg);
  border-color: color-mix(in srgb, var(--q-bg) 25%, transparent);
}

/* ── v：对立角色（槌爷=冷焰蓝） ── */
game q[c="v"] {
  border-left-color: var(--q-versus);
  background: linear-gradient(90deg, color-mix(in srgb, var(--q-versus) 7%, transparent) 0%, transparent 55%);
  color: color-mix(in srgb, var(--text) 88%, var(--q-versus) 12%);
}
game q[c="v"][w]::before {
  background: color-mix(in srgb, var(--q-versus) 15%, transparent);
  color: var(--q-versus);
  border-color: color-mix(in srgb, var(--q-versus) 30%, transparent);
}

/* ── s：系统 / 平台（寻真台公告=中性科技灰蓝） ── */
game q[c="s"] {
  border-left-color: var(--q-sys);
  background: linear-gradient(90deg, color-mix(in srgb, var(--q-sys) 6%, transparent) 0%, transparent 55%);
  color: color-mix(in srgb, var(--text) 88%, var(--q-sys) 12%);
  font-size: 12px;
  letter-spacing: 0.5px;
}
game q[c="s"][w]::before {
  background: color-mix(in srgb, var(--q-sys) 12%, transparent);
  color: var(--q-sys);
  border-color: color-mix(in srgb, var(--q-sys) 25%, transparent);
}

/* ── x：未知 / 神秘送拍人（低饱和灰） ── */
game q[c="x"] {
  border-left-color: var(--q-unknown);
  background: linear-gradient(90deg, color-mix(in srgb, var(--q-unknown) 5%, transparent) 0%, transparent 55%);
  color: color-mix(in srgb, var(--text) 85%, var(--q-unknown) 15%);
  font-style: italic;
}
game q[c="x"][w]::before {
  background: color-mix(in srgb, var(--q-unknown) 12%, transparent);
  color: var(--q-unknown);
  border-color: color-mix(in srgb, var(--q-unknown) 25%, transparent);
  font-style: normal;
}

/* ── danmu：弹幕群像（高亮橙红流动） ── */
game q[c="danmu"] {
  border-left-color: var(--q-danmu);
  background: linear-gradient(90deg, color-mix(in srgb, var(--q-danmu) 8%, transparent) 0%, transparent 60%);
  color: color-mix(in srgb, var(--text) 85%, var(--q-danmu) 15%);
  font-size: 12px;
  padding: 4px 12px 4px 14px;
}
game q[c="danmu"][w]::before {
  background: color-mix(in srgb, var(--q-danmu) 18%, transparent);
  color: var(--q-danmu);
  border-color: color-mix(in srgb, var(--q-danmu) 35%, transparent);
  font-size: 11px;
}

/* ============================================================
   07. 状态栏 — 一级重要内容（critical + item）
   ============================================================ */
game panel critical {
  display: block;
  margin: 12px 0;
  padding: 12px;
  border-radius: 6px;
  border-left: 3px solid var(--status-critical);
  background: color-mix(in srgb, var(--status-critical) 6%, var(--bg-card));
}

game panel critical > h {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2px;
  padding-bottom: 8px;
  margin-bottom: 8px;
  border-bottom: 1px solid color-mix(in srgb, var(--status-critical) 30%, transparent);
  color: var(--status-critical);
}

game panel critical item {
  display: block;
  padding: 8px 10px;
  margin: 4px 0;
  border-radius: 3px;
  font-size: 12px;
  line-height: 1.5;
  position: relative;
  padding-left: 24px;
  background: color-mix(in srgb, var(--status-critical) 8%, transparent);
  color: var(--text);
}

game panel critical item::before {
  content: '●';
  position: absolute;
  left: 8px;
  top: 8px;
  font-size: 10px;
  color: var(--status-critical);
}

game panel critical item:hover {
  background: color-mix(in srgb, var(--status-critical) 15%, transparent);
}

/* ============================================================
   08. 警示内容（warning）—— 紧凑单行警示条
   ============================================================ */
game panel warning,
game warning {
  display: block;
  padding: 8px 12px;
  margin: 8px 0;
  border-radius: 3px;
  border-left: 3px solid var(--status-warning);
  background: color-mix(in srgb, var(--status-warning) 6%, transparent);
  color: color-mix(in srgb, var(--text) 90%, var(--status-warning) 10%);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.5px;
}

/* ============================================================
   09. 进度型内容（gauge + bar + fill）
   ============================================================ */
game gauge {
  display: block;
  margin: 8px 0;
  padding: 4px 0;
}

game gauge k {
  display: inline;
  font-size: 12px;
  color: var(--text-sub);
  min-width: 70px;
}

game gauge v {
  display: inline;
  font-size: 12px;
  color: var(--text-dim);
  float: right;
}

game gauge bar {
  display: block;
  height: 8px;
  border-radius: 4px;
  overflow: hidden;
  position: relative;
  margin-top: 4px;
  background: color-mix(in srgb, var(--status-progress) 12%, var(--bg-card));
  border: 1px solid color-mix(in srgb, var(--status-progress) 25%, transparent);
}

game gauge bar fill {
  display: block;
  height: 100%;
  border-radius: 4px 0 0 4px;
  background: linear-gradient(90deg,
    var(--status-progress),
    color-mix(in srgb, var(--status-progress) 75%, white));
}

/* ============================================================
   10. 弹幕滚动区（danmaku）
   ============================================================ */
game danmaku {
  display: block;
  position: relative;
  margin: 12px 0;
  padding: 10px 14px;
  border-radius: 6px;
  background: var(--danmu-bg);
  border: 1px solid color-mix(in srgb, var(--accent) 15%, var(--border));
  overflow: hidden;
  max-height: 160px;
}

/* 弹幕区内部滚动内容——使用嵌套结构包裹滚动轨道 */
game danmaku::before {
  content: '◈ 弹幕滚动';
  display: block;
  font-size: 10px;
  letter-spacing: 3px;
  color: var(--accent-soft);
  text-align: center;
  padding-bottom: 6px;
  margin-bottom: 4px;
  border-bottom: 1px dashed color-mix(in srgb, var(--accent) 25%, transparent);
}

/* 弹幕滚动轨道内容（由提示词内的文本段落产生） */
game text > danmaku {
  background: var(--danmu-bg);
}

/* 弹幕输入框样式（若存在） */
game danmaku-input {
  display: block;
  padding: 6px 12px;
  margin-top: 8px;
  border-radius: 4px;
  background: color-mix(in srgb, var(--bg-card) 80%, transparent);
  border: 1px solid var(--border);
  color: var(--accent-soft);
  font-size: 12px;
  font-style: italic;
}

/* ============================================================
   11. 物件资料卡（artifact + story + warn）
   ============================================================ */
game artifact {
  display: block;
  background: var(--artifact-bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px 16px;
  margin: 8px 0;
  position: relative;
  overflow: hidden;
}

/* 物件卡顶部描金线 */
game artifact::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--gold-edge);
}

game artifact > h {
  display: block;
  font-family: 'Noto Serif SC', 'Source Han Serif SC', 'SimSun', serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 3px;
  text-align: center;
  color: var(--accent);
  padding: 8px 0 10px 0;
  margin-bottom: 8px;
  border-bottom: 1px solid var(--border);
}

/* 物件卡内键值行 */
game artifact row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 5px 0;
  font-size: 12px;
  gap: 12px;
}

/* 微神秘警示区（warn） */
game artifact warn,
game warn {
  display: block;
  padding: 10px 12px;
  margin: 10px 0;
  border-radius: 6px;
  background: color-mix(in srgb, var(--status-warning) 8%, var(--bg-card));
  border: 1px dashed color-mix(in srgb, var(--status-warning) 30%, transparent);
  color: color-mix(in srgb, var(--text) 85%, var(--status-warning) 15%);
  font-size: 12px;
  line-height: 1.6;
}

game artifact warn::before {
  content: '⚠';
  margin-right: 6px;
  color: var(--status-warning);
  font-weight: 700;
}

/* 物件来历故事区（story） */
game artifact story,
game story {
  display: block;
  padding: 10px 12px;
  margin: 10px 0;
  border-left: 3px solid var(--accent-soft);
  background: linear-gradient(90deg, color-mix(in srgb, var(--accent) 5%, transparent) 0%, transparent 70%);
  color: var(--text-sub);
  font-size: 12px;
  font-style: italic;
  line-height: 1.7;
}

/* ============================================================
   12. 选项区块（acts）
   ============================================================ */
game acts {
  display: block;
  margin: 16px 0;
  padding: 16px;
  border-radius: 8px;
  counter-reset: option;
  background: var(--bg-card);
  border: 1px solid var(--border);
}

game acts > h {
  display: block;
  font-size: 11px;
  font-weight: 600;
  text-align: center;
  letter-spacing: 4px;
  padding-bottom: 8px;
  margin-bottom: 12px;
  color: var(--accent-soft);
  border-bottom: 1px solid var(--border);
}

game acts li {
  display: flex;
  align-items: center;
  padding: 12px 16px;
  margin: 8px 0;
  border-radius: 6px;
  font-size: 13px;
  line-height: 1.6;
  cursor: pointer;
  position: relative;
  counter-increment: option;
  background: color-mix(in srgb, var(--bg-card) 50%, var(--bg) 50%);
  border: 1px solid var(--border);
  color: var(--text-sub);
}

game acts li::before {
  content: counter(option);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 6px;
  font-weight: 600;
  font-size: 12px;
  margin-right: 12px;
  flex-shrink: 0;
  background: var(--accent);
  color: var(--bg);
}

game acts li:hover {
  background: color-mix(in srgb, var(--bg-card) 70%, var(--accent) 30%);
  border-color: var(--accent-soft);
  color: var(--text);
  transform: translateX(4px);
}

game acts li:hover::before {
  background: var(--accent-soft);
}

game acts num {
  display: none;
}

/* ============================================================
   13. 表格（table）
   ============================================================ */
game table {
  width: 100%;
  border-collapse: collapse;
  margin: 8px 0;
  font-size: 12px;
  color: var(--text-sub);
}

game caption {
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 2px;
  padding: 8px 0;
  text-align: left;
  color: var(--accent-soft);
  border-bottom: 2px solid var(--accent-soft);
}

game th {
  font-weight: 600;
  text-align: left;
  padding: 8px 10px;
  color: var(--text-dim);
  border-bottom: 1px solid var(--border);
}

game td {
  padding: 8px 10px;
  vertical-align: top;
  line-height: 1.5;
  border-bottom: 1px dashed var(--border);
}

game tr:last-child td { border-bottom: none; }

game tbody tr { background: var(--bg-card); }
game tbody tr:nth-child(even) {
  background: color-mix(in srgb, var(--bg-card) 95%, var(--border) 5%);
}

/* ============================================================
   14. 记忆区（mem）
   ============================================================ */
game mem {
  display: block;
  background: color-mix(in srgb, var(--bg-card) 60%, var(--bg));
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px 16px;
}

/* ============================================================
   15. 角色档案（pacro）
   ============================================================ */
game pacro {
  display: block;
}

game pacro row {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 6px 0;
  font-size: 12px;
  gap: 10px;
}

game pacro k {
  display: inline;
  flex-shrink: 0;
  min-width: 72px;
}

game pacro v {
  display: inline;
  flex: 1;
  text-align: left;
  color: var(--text-sub);
  font-weight: 400;
  line-height: 1.6;
}

/* ============================================================
   16. 模块切换系统（panel[b] + radio tabs）
   ============================================================ */
input[type="radio"][name="pnl"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

game panel[b] {
  display: flex;
  width: 100%;
  gap: 8px;
  padding: 12px 0;
  margin: 16px 0 0 0;
  box-sizing: border-box;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: transparent;
  border-radius: 0;
}

game panel[b] label {
  flex: 1 1 0;
  padding: 10px 20px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 2px;
  text-align: center;
  cursor: pointer;
  user-select: none;
  border-radius: 6px;
  white-space: nowrap;
  background: var(--bg-card);
  border: 1px solid var(--border);
  color: var(--text-dim);
}

game panel[b] label:hover {
  background: color-mix(in srgb, var(--bg-card) 70%, var(--accent) 30%);
  border-color: var(--accent-soft);
  color: var(--text);
}

/* 选中态 */
game panel[b] label:has(input.p-1:checked),
game panel[b] label:has(input.p-2:checked),
game panel[b] label:has(input.p-3:checked),
game panel[b] label:has(input.p-4:checked) {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--bg);
  font-weight: 700;
}

game panel[b] label span {
  display: inline-block;
}

/* 面板容器基座 */
game i[sh] {
  display: block;
  height: 2px;
  margin: 0 0 16px 0;
  background: linear-gradient(90deg,
    transparent, var(--accent) 20%, var(--accent-soft) 50%, var(--accent) 80%, transparent);
  opacity: 0.6;
}

game div.p-stack {
  display: block;
  position: relative;
}

game div.p-stack aside {
  display: none;
  padding: 16px;
  border-radius: 8px;
  background: var(--bg-card);
  border: 1px solid var(--border);
}

game div.p-stack aside > b {
  display: block;
  font-family: 'Noto Serif SC', 'Source Han Serif SC', 'SimSun', serif;
  font-size: 11px;
  font-weight: 600;
  text-align: center;
  letter-spacing: 4px;
  padding-bottom: 8px;
  margin-bottom: 12px;
  color: var(--accent-soft);
  border-bottom: 1px solid var(--border);
}

game div.p-stack aside > section {
  display: block;
}

/* 面板显示逻辑 */
game:has(input.p-1:checked) div.p-stack aside[p="1"],
game:has(input.p-2:checked) div.p-stack aside[p="2"],
game:has(input.p-3:checked) div.p-stack aside[p="3"],
game:has(input.p-4:checked) div.p-stack aside[p="4"] {
  display: block;
}

/* ============================================================
   17. 通用强调工具样式
   ============================================================ */
game name {
  color: var(--accent);
  font-weight: 600;
}

/* 角色名高亮（对话内提及） */
game name[role="a"] { color: var(--q-anchor); }
game name[role="v"] { color: var(--q-versus); }
game name[role="s"] { color: var(--q-sys); }

/* 朱砂印点缀（特殊强调） */
game seal {
  display: inline;
  color: var(--seal-red);
  font-weight: 700;
  font-family: 'Noto Serif SC', 'Source Han Serif SC', serif;
}

/* ============================================================
   18. 响应式适配（窄屏）
   ============================================================ */
@media (max-width: 480px) {
  game {
    padding: 12px 12px;
    border-radius: 0;
  }
  game::after { height: 3px; }
  game panel[b] label {
    padding: 8px 10px;
    font-size: 12px;
    letter-spacing: 1px;
  }
}