{"id":"128522ce-8487-4485-b1d6-ce1b0d3920f0","authorId":"LTahGZAvyQgJSBbbpA4NzaO9y8kiwM77","title":"⚜️斗罗大陆⚜️大世界","description":"【建议先收藏】【精品美化】\n武魂殿主祭翻开一卷古册，上头赫然写着你的名字。💕\n「此魂合该觉醒。」💕\n你睁眼时，掌心一阵刺痒，识海深处武魂正破壳而出。💕\n远处是星斗大森林的千年古木，近处是史莱克学院的青藤回廊——晨雾未散，有人在喊你的名字。💕\n三大帝国鼎足百年，武魂殿一道旨意能让一族封侯也能屠门。💕\n武魂城内魂师笑语，星斗森林凶兽夜啼。💕\n谁在史莱克学院的擂台等你出招，谁在月下独自疗伤不愿被你看见武魂，谁的一道密令能让三国风云骤变——💕\n都要你亲自去蹚这一场。⚜️斗罗大陆⚜️\n【手机端适配比较差，建议先收藏过后出降耗简单版】\n💎【强化思维链版】保留原版完整美化(9 页 SPA + 134K builtInCss + 21 R2 图)，仅升级 COT 思维链：加 ⭐ 魂环-等级 floor(等级/10) 硬约束 + 10 条原著铁律 + 红楼梦树形 6 维度 21 项 OOC 核查","background":"o6rmjk2vfp65jvzn3o26zomw.webp","backgroundWidth":2400,"backgroundHeight":1800,"cover":"ldsagt1y46q7epwfyrwcspzt.webp","coverWidth":400,"coverHeight":300,"introPage":"tt92l7p5q55gecpv7ydboibm.html","changelog":null,"createdAt":"2026-06-24T06:39:51.984Z","updatedAt":"2026-07-21T18:27:13.857Z","initPublicAt":"2026-06-24T06:40:07.939Z","renderTemplate":null,"assistantRegexReplace":null,"enableMemorySchema":false,"memorySchema":null,"injectStyles":"/* ========================================================================\n   斗罗大陆大世界 · builtInCss v3.39\n   ------------------------------------------------------------------------\n   日期：2026-05-27\n   v3.39 改动（用户拍板 · 最底下整栏继续透明,消除浅米色衬底）：\n   · .bg-gradient-to-t 输入区上方渐变遮罩 → transparent(去浅米淡入)\n   · #ai-chat-input + textarea.rc-textarea 输入框本体\n       bg 0.95→0.35 半透浅米(藤蔓透 65%)\n       border 1px(0.45)→1.5px(0.55) 加强暗金边保边界感\n   · 累积效果：工具栏/容器/输入框/遮罩 4 层全透,藤蔓直透到字符前\n   ------------------------------------------------------------------------\n   v3.38 改动（顶栏+下栏透明,让 .h-screen 的 ZHENGWEN 直透）：\n   · header.sticky · #ai-chat-bottom-input · #ai-mod-button2 三处 bg→transparent\n   · 保留 rgba(106,72,24,0.30~0.35) 半透暗金细线做上下区分\n   · 去掉 inset 金线 shadow（透明叠金线突兀）\n   · 其余 5 处壳层（.h-screen / 侧栏 / 评论区 / Dialog / Drawer）保留 ZHENGWEN\n   ------------------------------------------------------------------------\n   v3.37 改动（ZHENGWEN 蓝银草藤蔓羊皮纸统一全壳层 · 已被 v3.38 部分覆盖）：\n   · 8 处壳层 background 全改 ZHENGWEN.png 平铺(与正文 .hpr 一致)\n   · 应用：.h-screen / header.sticky / 侧栏 / #ai-chat-bottom-input\n   · 应用：#ai-mod-button2 / 评论区容器 / MuiDialog-paper / MuiDrawer-paper\n   · 不动：气泡内 / d* 组件 / description.html(气泡纪律)\n   · 修正：MuiDialog-paper 的 inset shadow border 复用统一金线配方\n   ------------------------------------------------------------------------\n   架构：div+class 体系（v3.3 sanitizer 安全）/ 36 张 R2 PNG / 25+ keyframes\n   设计：派系色彩政治 · 强作用域 .markdown-body · 零 SVG 全 PNG\n   ------------------------------------------------------------------------\n   v3.36 改动（平台壳层美化 · 气泡外 13 组 PHASE 11-15）：\n   · 依据 04-reference/内置CSS与UI组件设计.txt v4.0.0 §2.3.2-§2.3.13\n   · 颜色全部直接 hsl()/rgba() 写死（规范 §2.1 禁止 var）\n   · §2.3.1 危险区 6 类 已在 v3.6 PHASE 9 完成（装饰条/代码块/details/滚动条/选区/输入框）\n   · §2.3.7 聊天气泡 已在 v3.7-v3.30 完整迭代（不再动 — 气泡纪律）\n   · PHASE 11 §2.3.2-3：body/#root/.h-screen 浅羊皮底 + header.sticky 渐变 + 模型选择器 + 设置按钮\n   · PHASE 12 §2.3.4-6：开场白按钮 + 侧栏（朱砂左线 + 古铜对话项）+ #ai-mod-button2 模组/工具\n   · PHASE 13 §2.3.8-9：朱砂三珠 SMIL 加载动画 + 渐变遮罩浅化 + 发送按钮（朱砂渐变 + 暗金高光）\n   · PHASE 14 §2.3.10：评论区 20+ 选择器（评分 / 评论项朱砂左线 / 头像朱砂边 / 分隔线 ❖❖❖）\n   · PHASE 15 §2.3.11-12：分页（朱砂选中态）+ MUI 全局（弹窗/抽屉/遮罩/Divider/Ripple）\n   · §2.3.13 响应式（≤480px）+ 降速兜底（prefers-reduced-motion） + WCAG AA 自检全 PASS\n   · 体积：107K → 131K（+22%）/ 行数：2749 → 3535\n   ------------------------------------------------------------------------\n   ------------------------------------------------------------------------\n   ------------------------------------------------------------------------\n   v3.4 改动（依《内置CSS与UI组件设计》§2 + 《聊天框美化》§平台选择器）：\n   · 删 :has() 派系切换 → .dpanel[data-faction] / .dnpc 自挂属性（规范 §4.2 禁用）\n   · 删 position:fixed 派系字水印（规范 §2.1 禁用）\n   · 删 background-blend-mode 2 处（CSS高级技法 §四 内置层禁用）\n   · 删 background-attachment:fixed（规范 §4.1 禁用）\n   · 删 :has() / :contains NPC 检测 → 走 [data-portrait]\n   · 删 mix-blend-mode + filter:blur 共 5 处（.dzone + 3 keyframes，规范 §4.1 禁用）\n   · 追加 PHASE 9 平台标准选择器强制覆盖（11 类选择器全覆盖）\n   ------------------------------------------------------------------------\n   v3.5 改动（关键 · 根因修正）：\n   · 全局 root 重写：#installedBuiltInCss → .markdown-body\n   · 原因：aifuck 平台实测显示 #installedBuiltInCss ID 不存在\n   · 凭据：user memory · \"root 是 .markdown-body\" + v3.4 截图（白底浅字）\n   · 影响：所有主样式 (PHASE 1-8) 现在通过 .markdown-body 作用域生效\n   ------------------------------------------------------------------------\n   v3.6 改动（审美大反转 · 暗系 → 浅羊皮纸古卷风）：\n   · 主色翻转：暗底浅字 → 浅羊皮纸 + 暗棕墨字 + 暗金/朱砂强调\n   · 调色板：新增 paper-light/mid/deep/tint + ink-main/mid/light + jade\n   · 派系切换：hall/shrek/tang 从暗紫/暗绿/暗红 → 浅紫/浅绿/浅红晕染\n   · 批量反转 101 处深色 rgba → 浅米色（PHASE 2-5 卡片底全部浅化）\n   · 阴影系统：rgba(0,0,0) → rgba(106,72,24) 古铜软阴影\n   · PHASE 9 反转：.markdown-body 主色 #fff5d8 → #3a2418 深棕墨\n   · 进度条：朱砂主色 + 暗金标签 + 内嵌微高光\n   · 字体强调：strong 朱砂 / em 中金 / blockquote 朱砂边\n   ------------------------------------------------------------------------\n   v3.7 改动（参考 BOSS 卡视觉 · 最小改动）：\n   · 加 .bg-gray-100\\/90.relative.inline-block · 气泡外层 dizhuanbeijing 石墙背景 + 细金边\n   · 不动 v3.6 内部浅色系，等用户分步细调需求\n   ------------------------------------------------------------------------\n   v3.7.1 修正：\n   · dizhuanbeijing 改为可平铺纹理 · background-size:100% auto · repeat-y\n   · 之前 cover 拉伸不对（图被裁切）· 现在宽度满容器 · 高度按比例 · 超出向下接拼\n   ------------------------------------------------------------------------\n   v3.7.2 改动（PHASE 10 · 用户输入气泡特化）：\n   · 新增 .bg-gray-100\\/90:not(.chat-answer-container) 选择器\n   · 仅匹配用户输入气泡（不影响 AI 回复 = 保持 v3.7 石墙）\n   · 方案 D 神秘符箓底纹：深底 + 八角星 SVG · 12s 漂移动画\n   · 气泡内文字反相：深底浅金字（覆盖 v3.6 浅底深字）\n   ------------------------------------------------------------------------\n   v3.7.3 修正（双层架构）：\n   · v3.7.2 错误：方案 D 覆盖了气泡外圈 → 丢失 v3.7 石墙\n   · 现修正：外圈 .bg-gray-100\\/90 保持 v3.7 石墙不动 · 方案 D 移到内层 .markdown-body\n   · 视觉双层：石墙气泡 + 内嵌符箓黑卡（玩家签名印感）\n   · 动画加速：12s → 8s · 符号 opacity 0.32 → 0.42 · 边框透明 0.42 → 0.62（更明显）\n   · 加内层双描边：黑细线 + 暗金辉，立体感增强\n   ------------------------------------------------------------------------\n   v3.7.4 修正（用户反馈：动画不动 + 按钮没包进黑底）：\n   · 根因 1：animation 不能加 !important（CSS 引擎解析坑，对照 BOSS L353 无 !important）\n   · 根因 2：v3.7.3 挂在 .markdown-body 内层 → 复制/编辑/删除按钮在外层石墙上\n   · 修正 1：animation 去掉 !important · 关键帧改 0%/100%（替代 from/to）\n   · 修正 2：方案 D 挂回主气泡 · 按钮一起包进黑底\n   · 修正 3：外圈 border-image 用 dizhuanbeijing 做 6px 窄石墙描边\n   · 修正 4：background-clip: padding-box 防止背景延伸到 border-image 区\n   ------------------------------------------------------------------------\n   v3.7.5 修正（v3.7.4 仍不动 · 切换 transform 兜底动画）：\n   · 真正根因：background-position 动画在 background !important 环境下可能被拦截\n   · 切换实现：SVG 符号层挂到 ::before 伪元素 · animation 改 transform: translate\n   · transform 走 GPU 合成层 · 不受 background !important 干扰 · 跨平台稳定\n   · border-image 6px → 12px（外圈石墙描边加宽 · 用户要求）\n   · 动画周期 8s → 6s · 增加 will-change: transform 强制 GPU 层\n   · z-index 分层：::before(0) 符号 / .markdown-body(1) 文字 / 按钮等(1) 操作\n   ------------------------------------------------------------------------\n   v3.7.6 修正（动画对了但黑底丢了）：\n   · 根因：v3.7.5 只设 background-color · v3.7 的 dizhuanbeijing 在 background-image\n     上仍生效 → 浅色花纹图盖住黑色 → 视觉黑底消失\n   · 修正：background-color: #0a0604 → background: #0a0604 (shorthand)\n     一次性清掉所有 background-* 子属性（含 dizhuanbeijing image / size / repeat）\n   · background-clip: padding-box 单独保留（防黑底延伸到 border-image 区）\n   ------------------------------------------------------------------------\n   v3.8 美感升级（用户反馈 · 多选采纳 3 项）：\n   ① 移除 border-image dizhuanbeijing → 纯 CSS 多层金线设计粗边\n      box-shadow inset 4 层「黑线/暗金/黑线/中央辉」+ border 3px 深金\n   ② 黑底改深棕径向渐变（中央 #2a1a10 → 边缘 #0c0604）\n   ③ 4 角 ornament（::after multiple background-position 4 角同款八角星）\n   ④ 字距 letter-spacing 0.04 → 0.10 · 行距 line-height 1.85 → 2.0\n   ⑤ h1/h2 标题暗金发光（text-shadow 双层 · 字距 0.18em 仪式感）\n   · 整体氛围：从「纯黑工程感」→「深棕古卷设计感」\n   ------------------------------------------------------------------------\n   v3.8.1 修正（用户反馈：按键名颜色看不清 + 字体/排版微调）：\n   · 修按键：复制/编辑/删除/消耗详情 在用户输入气泡内 → 浅金 #e8c98a\n     · v3.6 PHASE 9 给的按钮深棕色适配浅底，在 v3.8 深棕气泡内不可见\n     · hover 提亮 #f5d870 + 暗金底\n     · 按钮 SVG 图标走 currentColor 跟随文字\n     · .text-orange-500（消耗详情前圆点）提亮 #f5c870\n   · 字体：标题 h1-h3 font-weight 700 + padding-bottom 10px + margin-bottom 14px\n   · 排版：段落 p margin 4px 0（替代 markdown 默认 1em，更紧凑）\n   ------------------------------------------------------------------------\n   v3.8.2 修正（用户反馈：4 角八角星挡字）：\n   · 移除 ::after 4 角 ornament（v3.8 加的）\n   · 仅保留 ::before 中央符号漂移动画\n   ------------------------------------------------------------------------\n   v3.9 架构重做（用户设计的 AI 输出气泡四段式版面）：\n   · 区域 1：顶部 .dmap[open=\"true\"] 完整大地图（默认展开，删 .dmapbtn）\n   · 区域 2：.dscene 美化版（横向不耿直布局：地点/时辰/天气 一行 + 在场单独一行）\n   · 区域 3：.hpr 正文，背景换 DOULUO/WENZIBEIJING.png 可平铺纹理\n   · 区域 4：.dpanel 底部细条按钮 + 仿 BOSS BAR 弹窗（CSS-only checkbox hack）\n   · NPC 卡：维持 sample-preview.html 风格不动\n   · .dpanel 从「完整面板容器」简化为「按钮+弹窗 wrapper」\n   · 6 段状态（dprofile/dcultivation/drings/dskills/dbones/dtools）移入 .dpanel-popup\n   · 弹窗用 input[type=checkbox]:checked ~ .dpanel-popup 触发（仿 BOSS BAR L3134）\n   · 弹窗 absolute 浮起（aifuck 禁 position:fixed，按 BOSS BAR L1013 走 absolute）\n   · 弹窗本体底纹也用 WENZIBEIJING.png（追问 1 用户选「同正文」）\n   · 入场 stagger 选择器从 .dpanel > xxx 改为 .dpanel-popup > xxx\n   · grammar 同步：dscene 提升为顶级 / dpanel 加 input+label+popup 三件套 / id 后缀 6 位随机\n   ------------------------------------------------------------------------\n   v3.10 用户细修反馈（保持浅色方向 · 选 B）：\n   · .hpr 删除 WENZIBEIJING.png 棕色拖底背景（在浅羊皮上烘出棕褐色调，丑）\n   · .hpr 改为纯浅米色渐变 + 4 边等粗 1px 古铜金边\n   · .hpr 删除 border-left 4px 派系色线（正文左侧那道彩色边丑）\n   · 地图 / 场景行 / 弹窗细修待 user 看完按需逐项追加\n   ------------------------------------------------------------------------\n   v3.11 用户指定 .hpr 背景换 R2 ZHENGWEN.png：\n   · 用法：repeat + background-size:100% auto（跟之前 WENZIBEIJING 同思路 · 宽度满容器 + 向下接拼）\n   ------------------------------------------------------------------------\n   v3.12 用户反馈：气泡外圈的 dizhuanbeijing.png 棕色石墙底背删除\n   · v3.7 给 .bg-gray-100\\/90.relative.inline-block 加的 AI 气泡外圈背景\n   · NPC 卡之间露出棕色横条 + 顶部棕褐 → 跟整体浅羊皮调相冲\n   · 改为 浅米色 gradient · 气泡外圈跟内部一致浅羊皮调\n   · box-shadow 阴影也从 rgba(0,0,0,0.32) 改 rgba(106,72,24,0.18) 古铜软阴影\n   ------------------------------------------------------------------------\n   v3.13 用户再反馈：\"中间那层毛毛愣愣的那个棕色\" — 是 .markdown-body 这层\n   · v3.6 给 .markdown-body 加的 bg-parchment-main.png R2 棕色羊皮纹理（cover）\n   · 在 NPC 卡之间露出来 → 棕褐毛感 → 跟浅米色调冲突\n   · 删 var(--dlw-bg-parchment) 引用 · 保留 radial + linear gradient 纯浅色\n   ------------------------------------------------------------------------\n   v3.14 用户纠正：v3.12 不该删的 — dizhuanbeijing.png 气泡外圈石墙要保留\n   · 还原 v3.7.1 .bg-gray-100\\/90.relative.inline-block 的石墙背景\n   · 真正\"毛毛愣愣\"的只是 v3.13 已删的 .markdown-body bg-parchment-main.png\n   ------------------------------------------------------------------------\n   v3.15 用户反馈：地图 / 场景 / 正文 中间的浅色纯色背景层也要删\n   · v3.13 我把 .markdown-body 换成浅米色 gradient · 在各段间隙露出来\n   · 用户要的效果：各段间隙直接露 .bg-gray-100\\/90 外层的 dizhuanbeijing 石墙\n   · 改为 background: transparent · 让石墙穿透\n   ------------------------------------------------------------------------\n   v3.16 地图大改（用户反馈：看着廉价）：\n   · 删 8 派系 dzone 弥散 blur 圆斑（display:none · 整个地图清净）\n   · POI 散布：从中央扎堆 → 按地理分散到 8 方位\n   · dplayer 软化：红方块 \"我\" → 朱砂小点 + 「君在此」纸笺\n   · dtarget 软化：红色虚线扫描圆 → 朱砂三角小旗 SVG（摇摆动画 3s）\n   · dcompass 重做：红色 conic 靶心 → 古风方位盘 SVG（北箭头+东西南北）\n   · 配套 keyframes 重写：dlwPlayerMarkerPulse 适配新尺寸 + 新增 dlwTargetFlagWave\n   ------------------------------------------------------------------------\n   v3.17 地图细节加强（用户反馈：效果不错，再加 2 项）：\n   · 点阵网格：28×28 间距 · rgba(106,72,24,0.32) 暗金点 · 叠在地图最顶层（古地图经纬）\n   · 地图顶部标题：「昊  天  大  陆」古碑感（上下双横线 + 浅羊皮纸底 + 暗金字 + 0.48em 字距）\n   · 用 .dmap::before 实现 · pointer-events:none 不影响交互\n   ------------------------------------------------------------------------\n   v3.18 用户反馈：「昊天大陆」标题廉价\n   · 改为古匾额风格：深棕木质渐变底 + 浅金字 + 4 角铜钉 + 多层立体阴影\n   · 字色 #f5d8a0 + 双层 text-shadow 暗金辉光\n   · 6 层 inset box-shadow 模拟金属雕花描边 + 2 层外投影立体感\n   · ::after 4 角铜钉（radial-gradient 4 个位置）· 跟匾额 4 角对齐\n   ------------------------------------------------------------------------\n   v3.19 .dscene 场景区审美升级（用户反馈：场景区廉价）：\n   · 朱砂双线书脊（border-left:4px double 朱砂）· 古书装订感\n   · 左上「景」字朱砂方印（rotate -4deg）+ 金边 · 章节标题视觉锚\n   · dtime[period] 颜色全深化：之前浅米/浅金/浅橙在浅羊皮上看不清\n     → 改为 黎明暗蓝/晨曦暗金/正午赤金/暮色朱砂/夜深靛蓝（对比度全提）\n   · ❖ 地点 ┊ 时辰 ┊ 天气 横排 · 分隔符 ◇→┊（更书页感）\n   · 「在席」从 ▸ 文字升级为朱砂方印章 + 金边\n   · 整体加 4 层 box-shadow 立体感 + 横线纹底（书页纸质）\n   ------------------------------------------------------------------------\n   v3.20 用户发现：.dscene 缺日期字段\n   · grammar 加 .ddate 字段：昊天历 X 年 · 季节 · 月日\n   · CSS .ddate 独立顶行 · 小字（0.86em）· 暗金 · 「卷」朱砂标题\n   · 底部虚点线分隔（跟下方主行明显分级）\n   ------------------------------------------------------------------------\n   v3.21 用户反馈：段间距 + 重点字\n   · .dburst 重点字：浅金 → 深朱砂方块 + 下划线（之前浅金在 ZHENGWEN.png 上看不清）\n   · 加浅描边 text-shadow + 朱砂淡晕底 + 朱砂下划线 → 浅底对比度最高\n   · 段间距 .hpr br+br line-height 0.6 → 1.6（之前太紧）\n   ------------------------------------------------------------------------\n   v3.22 段间距再缩 · 1.6 → 1.1（用户：再少一点）\n   ------------------------------------------------------------------------\n   v3.23 紧急 bug 修：grammar 弹窗 HTML 被 markdown 解析为代码块\n   · 症状：用户截图显示 dpanel-popup 内 6 段全部 <pre><code> 裸代码渲染\n   · 根因：grammar 模板 dpanel 内部用 4 空格缩进（为了人类可读性）\n     → markdown 解析器把缩进 ≥ 4 空格的行视为 code block\n   · 修复：pre_prompt.txt 把 dpanel 内所有标签去掉缩进 · 全部顶格\n   · grammar 加铁律说明：HTML 标签必须顶格输出\n   · CSS 不变 · 只改 pre_prompt.txt\n   ------------------------------------------------------------------------\n   v3.24 弹窗 6 段统一 RPG 模块化升级（用户：模块化 RPG 卡）：\n   · 每段都成独立\"卡\"：浅米底+朱砂左竖线 4px+暗金细框+4 层立体阴影\n   · 每段左上角朱砂\"顶贴标签 chip\"：朱砂渐变底+暗金边+米色字+立体投影\n   · chip 文字格式：「❖  魂 师 档 案」「❖  魂 环 · N 环」等\n   · 用 high-specificity 选择器 .dpanel-popup > .dxxx 覆盖 PHASE 3-5 旧 emoji 标题\n   · padding-top:42px 给 chip 让位 · 卡间距 16px\n   ------------------------------------------------------------------------\n   v3.25 弹窗内 6 段排版精修（用户：位置摆放随意 + 字符条断行 + 字色浅）：\n   · 字符进度条 .dpowerbar/.dmental/.dstamina white-space:nowrap（防中文标点断行）\n   · dprofile 字段「金属 chip」label · 出身/开局位置 占整行\n   · dcultivation 改 flex column：年龄+阶位 横排 / 武魂全宽 / 精神+体力 50/50\n   · drings/dskills count=\"0\" 空状态：居中大字 + 隐藏 0 数据元素\n   · dbones grid 3 列均匀 + 部位名深棕墨 · 不再被 opacity 弱化\n   · dtools 默认文本居中（不用 :has() 违规）\n   ------------------------------------------------------------------------\n   v3.26 dcultivation 重排 + drank 颜色深化（用户：修为状态有点乱）：\n   · 改 grid 2 列布局（替换 v3.25 flex column + 负 margin 黑魔法）\n   · 年龄/阶位/精神/体力 全部 align-self:stretch 等高\n   · 魂力槽 + 武魂状态 grid-column 1/-1 全宽\n   · drank tier 10 档颜色全深化（warrior/master/.../titled 在浅米底对比度 OK）\n   ------------------------------------------------------------------------\n   v3.27 .dnpc 颠覆性重做（用户：颠覆性优化这部分）：\n   · major NPC 卡：grid 110px 立绘 + 1fr 右侧信息流\n   · 顶贴朱砂派系 chip（替代旧「左 hall + 右紫圆」重复装饰）\n   · 立绘 fallback SVG 浮雕（无 data-portrait 时显示朱砂双框 + 圆 + 「未知武魂」字浮雕，不再是空白方块）\n   · padding-top 42px 给 chip 让位\n   · 左派系色 4px 竖线 + 立体阴影\n   · dnpcname 派系色大字（不再亮金）· dnpctitle 朱砂左竖线 italic\n   · dnpcspirit/dnpcrank 浅渐变 chip · 深字色高对比\n   · dvoice 朱砂左竖卷轴 · 深朱砂字 · 「内心独白」末尾标签\n   · dadvance 古铜底 + 朱砂「▶ 推进」chip\n   · minor NPC：浅米底 + 朱砂左竖 + 朱砂姓名 + 深字简介\n   ------------------------------------------------------------------------\n   v3.28 用户反馈：NPC 卡的派系主题色（紫/绿/红）太丑\n   · PHASE 1 line 311-343 把 .dnpc[tier=\"major\"][faction] 跟 .dpanel 绑了派系底\n     → hall 紫 / shrek 绿 / tang 红 整张卡都染色 → 太重\n   · 加 8 个 high-specificity selector override 强制浅米底\n   · 派系色变量 --dlw-faction 仍切换 → 顶贴 chip + 左 4px 竖线还是派系色（小面积装饰 OK）\n   ------------------------------------------------------------------------\n   v3.29 修 NPC 卡中间大空白（用户：中间空出来的是啥）\n   · 根因：立绘 ::after min-height:220px + align-self:stretch\n     → grid 把多余高度按比例分到各 row → dnpcname 旁 row 被拉很高 → 大片空白\n   · 修：删 min-height（高度由内容决定）+ align-self:start（不 stretch）\n   · 右侧子元素也加 align-self:start，row 高 = 元素自然高，不拉伸\n   ------------------------------------------------------------------------\n   v3.30 用户：人物 CG 删了，魂技要简单描述\n   · 删 .dnpc[tier=\"major\"]::after 立绘（display:none + content:none）\n   · NPC 卡 grid → block 单列布局\n   · NPC dnpcskills .dskill 改为 inline-flex column 容纳 dskillname + dskilleffect\n     · name 朱砂 0.92em 粗体 / effect 灰字 0.78em italic ≤ 14 字\n   · grammar 同步：dskill 内嵌 dskillname + dskilleffect 子元素（仿玩家 dskill 结构）\n   ======================================================================== */\n\n\n/* =====================================================================\n   PHASE 1 · 根变量 + 派系色彩政治 + 平台外壳适配\n   ===================================================================== */\n\n.markdown-body {\n  /* ----- 浅色系基础调色板 v3.6 · 羊皮纸 + 暗金 + 朱砂 ----- */\n  /* 纸基（浅色背景） */\n  --dlw-paper-light:  #fdf6e3;  /* 主羊皮纸底 · 卡片背景 */\n  --dlw-paper-mid:    #f5e9c8;  /* 暖米色 · 子区块 */\n  --dlw-paper-deep:   #ede0c0;  /* 深羊皮 · 强调区块 */\n  --dlw-paper-tint:   #f0e3a8;  /* 淡墨黄 · hover */\n  /* 兼容旧名（自动反转，老代码继续用 · 浅化版本） */\n  --dlw-ink-void:     #fdf6e3;  /* 原 #050208 反转 · 现指纸基 */\n  --dlw-mist:         #f5e9c8;\n  --dlw-ash:          rgba(237, 224, 192, 0.92);\n\n  /* 墨色（深色文字） */\n  --dlw-ink-main:     #3a2418;  /* 主文字 · 深棕墨 */\n  --dlw-ink-mid:      #5a3a18;  /* 副文字 · 古铜 */\n  --dlw-ink-light:    #8a6a3a;  /* 弱文字 · 浅古铜 */\n  --dlw-ivory:        #3a2418;  /* 兼容旧名 · 反转为深字 → 17 处 color 自动跟随 */\n\n  /* 金属色（浅底上的金边/金字强调） */\n  --dlw-gold-bright:  #c8a464;  /* 亮金（浅底适配，原 #e8c98a 偏白） */\n  --dlw-gold-mid:     #8e6a32;  /* 中金 */\n  --dlw-gold-deep:    #6a4818;  /* 深金 · 边框/装饰 */\n\n  /* 朱砂 · 印章 · 强调 */\n  --dlw-cinnabar:     #8e3a2a;  /* 朱砂红 */\n  --dlw-cinnabar-dim: #6a2818;  /* 深朱砂 */\n\n  /* 国画青绿 · 史莱克 / 自然 */\n  --dlw-jade:         #5a8a6a;\n\n  /* ----- 魂环年份色谱（IP 核心色 · 不变） ----- */\n  --dring-white:   #f0e8d8;\n  --dring-yellow:  #f5c870;\n  --dring-purple:  #8a48c8;\n  --dring-black:   #2a0a3a;\n  --dring-red:     #c8302a;\n  --dring-cyan:    #5ab07e;\n  --dring-gold:    #c8a464;\n\n  /* ----- 派系默认色（neutral · 浅色系古铜调） ----- */\n  --dlw-faction:           #5a3a18;\n  --dlw-faction-deep:      #3a2418;\n  --dlw-faction-tint:      rgba(90, 58, 24, 0.10);\n  --dlw-faction-glow:      rgba(200, 164, 100, 0.45);\n  --dlw-faction-glyph:     \"魂\";\n\n  /* ----- 字体栈 ----- */\n  --dlw-font-title:  \"STSong\", \"Source Han Serif SC\", \"STZhongsong\", serif;\n  --dlw-font-body:   \"STKaiti\", \"KaiTi\", \"STZhongsong\", \"楷体\", serif;\n  --dlw-font-num:    \"STKaiti\", \"KaiTi\", serif;\n\n  /* ----- 间距 / 半径 ----- */\n  --dlw-gap-xs:  4px;\n  --dlw-gap-sm:  8px;\n  --dlw-gap-md:  14px;\n  --dlw-gap-lg:  22px;\n  --dlw-gap-xl:  32px;\n  --dlw-radius-sm: 4px;\n  --dlw-radius-md: 10px;\n  --dlw-radius-lg: 16px;\n\n  /* ----- R2 图片直链（v3 资源） ----- */\n  --dlw-bg-parchment:  url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/bg-parchment-main.png\");\n  --dlw-bg-hall:       url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/bg-faction-hall.png\");\n  --dlw-bg-shrek:      url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/bg-faction-shrek.png\");\n  --dlw-bg-tang:       url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/bg-faction-tang.png\");\n  --dlw-bg-neutral:    url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/bg-faction-neutral.png\");\n  --dlw-decor-seal:    url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/decor-cinnabar-seal.png\");\n  --dlw-decor-bone:    url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/decor-bone-shard.png\");\n\n  /* ----- 全局基线 v3.15 · .markdown-body 完全透明 · 让外层 dizhuanbeijing 石墙穿透各段间隙 ----- */\n  font-family: var(--dlw-font-body) !important;\n  color: var(--dlw-ink-main) !important;\n  letter-spacing: 0.04em !important;\n  line-height: 1.85 !important;\n  font-size: 15.5px !important;\n  background: transparent !important;\n}\n\n/* ----- 派系切换 · 元素自挂属性 · 不再用 :has() 切全屏 -----\n   规范禁 :has()（内置CSS规范 §4.2 / CSS高级技法 §十三）\n   派系背景从全屏切换降级为 .dpanel / major .dnpc 自带 */\n.markdown-body .dpanel[data-faction=\"hall\"],\n.markdown-body .dnpc[tier=\"major\"][faction=\"hall\"] {\n  --dlw-faction:       #6a3a90;       /* 武魂殿暗紫 */\n  --dlw-faction-deep:  #3a1a58;\n  --dlw-faction-tint:  rgba(106, 58, 144, 0.10);\n  --dlw-faction-glow:  rgba(106, 58, 144, 0.32);\n  background:\n    radial-gradient(ellipse at 20% 10%, rgba(232, 220, 248, 0.55), transparent 55%),\n    linear-gradient(180deg, #f8f0fa 0%, #ede0e8 100%) !important;\n  border-color: rgba(106, 58, 144, 0.45) !important;\n}\n.markdown-body .dpanel[data-faction=\"shrek\"],\n.markdown-body .dnpc[tier=\"major\"][faction=\"shrek\"] {\n  --dlw-faction:       #2a6a3a;       /* 史莱克青木 */\n  --dlw-faction-deep:  #184828;\n  --dlw-faction-tint:  rgba(42, 106, 58, 0.10);\n  --dlw-faction-glow:  rgba(42, 106, 58, 0.32);\n  background:\n    radial-gradient(ellipse at 20% 10%, rgba(220, 240, 220, 0.55), transparent 55%),\n    linear-gradient(180deg, #f0f8ec 0%, #e0ecd8 100%) !important;\n  border-color: rgba(42, 106, 58, 0.45) !important;\n}\n.markdown-body .dpanel[data-faction=\"tang\"],\n.markdown-body .dnpc[tier=\"major\"][faction=\"tang\"] {\n  --dlw-faction:       #8e3a2a;       /* 唐门暗红 */\n  --dlw-faction-deep:  #6a1a18;\n  --dlw-faction-tint:  rgba(142, 58, 42, 0.10);\n  --dlw-faction-glow:  rgba(142, 58, 42, 0.32);\n  background:\n    radial-gradient(ellipse at 20% 10%, rgba(248, 224, 216, 0.55), transparent 55%),\n    linear-gradient(180deg, #faf0ec 0%, #ede0d8 100%) !important;\n  border-color: rgba(142, 58, 42, 0.45) !important;\n}\n\n/* 派系字水印已移除（原 position:fixed 违反《内置CSS》§2.1） */\n\n/* 文字 reset · v3.6 浅底深字 */\n.markdown-body a {\n  color: var(--dlw-cinnabar) !important;\n  text-decoration: none !important;\n  border-bottom: 1px dotted var(--dlw-gold-mid) !important;\n}\n.markdown-body strong, .markdown-body b {\n  color: var(--dlw-cinnabar) !important;     /* 强调用朱砂 */\n  font-weight: 700 !important;\n  letter-spacing: 0.08em !important;\n}\n.markdown-body em, .markdown-body i {\n  color: var(--dlw-gold-mid) !important;     /* 斜体改用中金 */\n  font-style: normal !important;\n  font-family: var(--dlw-font-title) !important;\n  font-weight: 600 !important;\n}\n.markdown-body code {\n  background: rgba(142, 106, 50, 0.10) !important;\n  color: var(--dlw-ink-mid) !important;\n  padding: 0.1em 0.4em !important;\n  border-radius: 3px !important;\n  font-family: \"Consolas\", \"Source Han Mono\", monospace !important;\n  font-size: 0.92em !important;\n  border: 1px solid rgba(142, 106, 50, 0.22) !important;\n}\n\n\n/* =====================================================================\n   PHASE 2 · 玩家面板 .dpanel / 场景 / 修为状态卡\n   ===================================================================== */\n\n/* v3.9 重做：.dpanel 从「完整面板容器」简化为「底部按钮 + 弹窗 wrapper」\n   旧 background/border/shadow/::after 全删（这些视觉移到 .dpanel-popup）\n   保留：max-width / margin / position:relative（弹窗 absolute 锚点） */\n.markdown-body .dpanel {\n  display: block;\n  position: relative;\n  max-width: 920px;\n  margin: 1.2em auto 1em;\n  z-index: 5;\n}\n\n/* ----- 场景 section · v3.34 加 CJ.png 平铺 · v3.35 降 gradient opacity 让 CJ 显现 ----- */\n.markdown-body .dscene {\n  display: block;\n  max-width: 920px;\n  margin: 0 auto var(--dlw-gap-md);\n  padding: 22px 32px 18px 58px;\n  background:\n    linear-gradient(180deg, rgba(248, 235, 200, 0.42), rgba(237, 224, 192, 0.48)),\n    url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/CJ.png\") repeat;\n  background-size: auto, 100% auto;\n  border: 1px solid rgba(142, 106, 50, 0.35);\n  border-left: 4px double var(--dlw-cinnabar);   /* 朱砂书脊双线 · 装订感 */\n  border-radius: 0 5px 5px 0;\n  position: relative;\n  font-family: var(--dlw-font-title);\n  color: var(--dlw-ink-main);\n  box-shadow:\n    inset 0 0 0 1px rgba(232, 180, 100, 0.35),\n    inset 0 1px 0 rgba(253, 246, 227, 0.78),\n    inset 0 -1px 0 rgba(106, 72, 24, 0.22),\n    0 3px 12px rgba(106, 72, 24, 0.18),\n    0 8px 24px rgba(60, 32, 14, 0.12);\n}\n/* 左上角「景」字朱砂方印 · 章节标题 */\n.markdown-body .dscene::before {\n  content: \"景\";\n  position: absolute;\n  top: 14px;\n  left: 12px;\n  width: 30px;\n  height: 30px;\n  background: var(--dlw-cinnabar);\n  color: rgba(253, 246, 227, 0.94);\n  font-family: var(--dlw-font-title);\n  font-size: 1.08em;\n  font-weight: 700;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  border-radius: 3px;\n  border: 1.5px solid var(--dlw-gold-bright);\n  box-shadow:\n    inset 0 0 0 1px rgba(253, 246, 227, 0.38),\n    inset 0 0 4px rgba(60, 32, 14, 0.42),\n    0 2px 6px rgba(106, 72, 24, 0.45);\n  transform: rotate(-4deg);\n  z-index: 2;\n}\n/* v3.20 新增日期字段 · 独立顶行 · 小字暗金 · 古书卷宗感 */\n.markdown-body .ddate {\n  display: block;\n  margin-bottom: 8px;\n  padding-bottom: 6px;\n  font-family: var(--dlw-font-title);\n  font-size: 0.86em;\n  color: var(--dlw-gold-deep);\n  letter-spacing: 0.14em;\n  border-bottom: 1px dotted rgba(142, 106, 50, 0.32);\n}\n.markdown-body .ddate::before {\n  content: \"卷  \";\n  color: var(--dlw-cinnabar);\n  font-weight: 700;\n  letter-spacing: 0.22em;\n  margin-right: 4px;\n}\n/* 顶行：❖ 地点 ┊ 时辰 ┊ 天气 横排 · 全部深字色 */\n.markdown-body .dloc,\n.markdown-body .dtime,\n.markdown-body .dweather {\n  display: inline;\n  font-size: 1.04em;\n  letter-spacing: 0.08em;\n}\n.markdown-body .dloc::before     { content: \"❖ \"; color: var(--dlw-cinnabar); font-weight: 700; font-size: 1.08em; }\n.markdown-body .dtime::before    { content: \"  ┊  \"; color: var(--dlw-gold-mid); font-weight: 400; }\n.markdown-body .dweather::before { content: \"  ┊  \"; color: var(--dlw-gold-mid); font-weight: 400; }\n.markdown-body .dloc     { font-weight: 700; color: var(--dlw-ink-main); }\n.markdown-body .dtime    { color: var(--dlw-gold-deep); font-weight: 600; }\n.markdown-body .dweather { color: var(--dlw-ink-mid); font-size: 0.96em; font-style: italic; }\n/* v3.19 dtime[period] 颜色全深化 · 浅底对比度提升（旧浅色在浅羊皮上看不清）*/\n.markdown-body .dtime[period=\"dawn\"]    { color: #4a6890; }   /* 黎明暗蓝 */\n.markdown-body .dtime[period=\"morning\"] { color: #8e6a32; }   /* 晨曦暗金 */\n.markdown-body .dtime[period=\"noon\"]    { color: #8e5018; }   /* 正午赤金 */\n.markdown-body .dtime[period=\"dusk\"]    { color: #8e3a2a; }   /* 暮色朱砂 */\n.markdown-body .dtime[period=\"night\"]   { color: #3a3a78; }   /* 夜深靛蓝 */\n/* 在席单独一行 · 朱砂「在席」方印 + 人名列表 */\n.markdown-body .dpresent {\n  display: block;\n  margin-top: 14px;\n  padding-top: 12px;\n  font-family: var(--dlw-font-body);\n  font-size: 0.96em;\n  color: var(--dlw-ink-mid);\n  letter-spacing: 0.04em;\n  border-top: 1px dashed rgba(142, 106, 50, 0.32);\n}\n.markdown-body .dpresent::before {\n  content: \"在  席\";\n  display: inline-block;\n  padding: 3px 10px;\n  margin-right: 12px;\n  background: var(--dlw-cinnabar);\n  color: rgba(253, 246, 227, 0.95);\n  font-family: var(--dlw-font-title);\n  font-weight: 700;\n  font-size: 0.86em;\n  letter-spacing: 0.22em;\n  border-radius: 2px;\n  border: 1px solid var(--dlw-gold-mid);\n  box-shadow:\n    inset 0 0 0 1px rgba(253, 246, 227, 0.32),\n    0 1px 3px rgba(106, 72, 24, 0.42);\n  vertical-align: 1px;\n}\n\n/* ----- 修为状态 section · v3.6 浅化 ----- */\n.markdown-body .dcultivation {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: var(--dlw-gap-sm) var(--dlw-gap-md);\n  padding: var(--dlw-gap-md);\n  margin-bottom: var(--dlw-gap-md);\n  background:\n    linear-gradient(180deg, rgba(248, 235, 200, 0.55), rgba(237, 224, 192, 0.65)),\n    radial-gradient(ellipse at 80% 20%, rgba(232, 200, 140, 0.20), transparent 60%);\n  border-left: 3px solid var(--dlw-gold-mid);\n  border-radius: var(--dlw-radius-md);\n  position: relative;\n  box-shadow: inset 0 0 0 1px rgba(142, 106, 50, 0.12);\n}\n.markdown-body .dcultivation::before {\n  content: \"⚔️ 修为状态\";\n  grid-column: 1 / -1;\n  font-family: var(--dlw-font-title);\n  color: var(--dlw-gold-bright);\n  font-size: 1.05em;\n  font-weight: 600;\n  letter-spacing: 0.22em;\n  margin-bottom: var(--dlw-gap-xs);\n  border-bottom: 1px dashed rgba(142, 106, 50, 0.32);\n  padding-bottom: var(--dlw-gap-xs);\n}\n\n.markdown-body .dage,\n.markdown-body .drank,\n.markdown-body .dspiritstatus {\n  display: flex;\n  align-items: center;\n  gap: var(--dlw-gap-sm);\n  font-family: var(--dlw-font-body);\n  color: var(--dlw-ivory);\n  padding: 4px 8px;\n}\n.markdown-body .dage::before    { content: \"年龄\"; }\n.markdown-body .drank::before   { content: \"阶位\"; }\n.markdown-body .dspiritstatus::before { content: \"武魂\"; }\n.markdown-body .dage::before,\n.markdown-body .drank::before,\n.markdown-body .dspiritstatus::before {\n  color: var(--dlw-gold-deep);\n  font-family: var(--dlw-font-title);\n  font-size: 0.88em;\n  letter-spacing: 0.16em;\n  min-width: 2.6em;\n}\n.markdown-body .dage {\n  font-size: 1.18em;\n  color: var(--dlw-gold-bright);\n  font-weight: 600;\n}\n.markdown-body .dage::after { content: \" 岁\"; font-size: 0.78em; color: var(--dlw-gold-deep); }\n.markdown-body .drank      { font-weight: 600; }\n.markdown-body .drank[tier=\"warrior\"]     { color: #d8d8d8; }\n.markdown-body .drank[tier=\"master\"]      { color: #c8b878; }\n.markdown-body .drank[tier=\"grandmaster\"] { color: #b48848; }\n.markdown-body .drank[tier=\"venerable\"]   { color: #b070d8; }\n.markdown-body .drank[tier=\"sovereign\"]   { color: #8a48c8; }\n.markdown-body .drank[tier=\"king\"]        { color: #c8302a; }\n.markdown-body .drank[tier=\"emperor\"]     { color: #e8606a; }\n.markdown-body .drank[tier=\"saint\"]       { color: #ffd070; }\n.markdown-body .drank[tier=\"douluo\"]      { color: #f8e8a0; }\n.markdown-body .drank[tier=\"titled\"]      { color: var(--dlw-gold-bright); text-shadow: 0 0 10px var(--dlw-gold-bright); }\n\n.markdown-body .dspiritstatus[state=\"hidden\"]    { color: var(--dlw-gold-deep); font-style: italic; }\n.markdown-body .dspiritstatus[state=\"manifest\"]  { color: var(--dlw-faction); font-weight: 600; }\n.markdown-body .dspiritstatus[state=\"true-form\"] {\n  color: var(--dlw-gold-bright);\n  font-weight: 700;\n  text-shadow: 0 0 8px var(--dlw-faction-glow);\n  animation: dlwManifestSpirit 0.8s ease-out 1;\n}\n.markdown-body .dspiritstatus[state=\"manifest\"]::after  { content: \" · 显化中\"; color: var(--dlw-gold-deep); font-size: 0.78em; font-style: italic; }\n.markdown-body .dspiritstatus[state=\"true-form\"]::after { content: \" · 真身\"; color: var(--dlw-cinnabar); font-size: 0.78em; font-weight: 600; }\n.markdown-body .dspiritstatus[state=\"hidden\"]::after    { content: \" · 未显化\"; font-size: 0.78em; }\n\n/* 魂力进度条 v3.6 · 浅羊皮纸底 + 暗金字 + 朱砂细节 */\n.markdown-body .dpowerbar {\n  display: block;\n  position: relative;\n  grid-column: 1 / -1;\n  margin: var(--dlw-gap-sm) 0;\n  padding: 28px 12px 8px;\n  background:\n    linear-gradient(90deg, rgba(232, 200, 140, 0.20) 0%, rgba(142, 106, 50, 0.10) 100%),\n    rgba(253, 246, 227, 0.82);\n  border: 1px solid rgba(142, 106, 50, 0.45);\n  border-radius: var(--dlw-radius-sm);\n  font-family: \"Consolas\", monospace;\n  color: var(--dlw-cinnabar);\n  font-size: 1.22em;\n  letter-spacing: 0.08em;\n  line-height: 1;\n  box-shadow: inset 0 1px 0 rgba(253, 246, 227, 0.65), inset 0 -1px 0 rgba(142, 106, 50, 0.18);\n}\n.markdown-body .dpowerbar::before {\n  content: \"✦ 魂力 \" attr(value) \" / \" attr(max);\n  position: absolute;\n  top: 6px;\n  left: 10px;\n  font-family: var(--dlw-font-title);\n  font-size: 0.78em;\n  color: var(--dlw-gold-mid);\n  letter-spacing: 0.10em;\n  font-weight: 600;\n}\n.markdown-body .dpowerbar::after {\n  content: \"距 \" attr(next) \" 还需 \" attr(need) \" 点\";\n  position: absolute;\n  top: 6px;\n  right: 10px;\n  font-size: 0.68em;\n  color: var(--dlw-ink-light);\n  font-style: italic;\n  font-family: var(--dlw-font-body);\n}\n\n/* 精神 / 体力条 */\n.markdown-body .dmental,\n.markdown-body .dstamina {\n  display: flex;\n  align-items: center;\n  gap: var(--dlw-gap-sm);\n  padding: 4px 8px;\n  font-family: \"Consolas\", monospace;\n}\n.markdown-body .dmental::before  { content: \"精神\"; }\n.markdown-body .dstamina::before { content: \"体力\"; }\n.markdown-body .dmental::before,\n.markdown-body .dstamina::before {\n  color: var(--dlw-gold-deep);\n  font-family: var(--dlw-font-title);\n  font-size: 0.88em;\n  letter-spacing: 0.16em;\n  min-width: 2.6em;\n}\n.markdown-body .dmental::after  { content: \" / 100\"; color: var(--dlw-gold-deep); font-size: 0.82em; }\n.markdown-body .dstamina::after { content: \" / 100\"; color: var(--dlw-gold-deep); font-size: 0.82em; }\n.markdown-body .dmental  { color: #88c4e8; }\n.markdown-body .dstamina { color: #c4e88a; }\n\n\n/* =====================================================================\n   PHASE 3 · 魂环 / 魂技 / 魂骨 / 魂导器\n   ===================================================================== */\n\n.markdown-body .drings,\n.markdown-body .dskills,\n.markdown-body .dbones,\n.markdown-body .dtools {\n  display: block;\n  padding: var(--dlw-gap-md);\n  padding-top: 36px;\n  margin-bottom: var(--dlw-gap-md);\n  background: linear-gradient(180deg, rgba(245, 230, 195, 0.55), rgba(245, 230, 195, 0.78));\n  border-radius: var(--dlw-radius-md);\n  position: relative;\n}\n.markdown-body .drings    { border-left: 3px solid var(--dring-purple); }\n.markdown-body .dskills   { border-left: 3px solid var(--dlw-cinnabar); }\n.markdown-body .dbones    { border-left: 3px solid #a06848; }\n.markdown-body .dtools    { border-left: 3px solid var(--dlw-faction); }\n\n.markdown-body .drings::before    { content: \"🌀 魂环锚定（\" attr(count) \" 环）\"; }\n.markdown-body .dskills::before   { content: \"⚡ 魂技锚定（\" attr(count) \" 技 · 与魂环一一对应）\"; }\n.markdown-body .dbones::before    { content: \"🦴 魂骨锚定（\" attr(count) \" / 6）\"; }\n.markdown-body .dtools::before    { content: \"🔧 魂导器\"; }\n.markdown-body .drings::before,\n.markdown-body .dskills::before,\n.markdown-body .dbones::before,\n.markdown-body .dtools::before {\n  position: absolute;\n  top: var(--dlw-gap-md);\n  left: var(--dlw-gap-md);\n  right: var(--dlw-gap-md);\n  font-family: var(--dlw-font-title);\n  color: var(--dlw-gold-bright);\n  font-size: 1.05em;\n  font-weight: 600;\n  letter-spacing: 0.22em;\n  border-bottom: 1px dashed rgba(142, 106, 50, 0.32);\n  padding-bottom: var(--dlw-gap-xs);\n}\n\n/* ----- 单个魂环卡 ----- */\n.markdown-body .dring {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: flex-start;\n  width: 92px;\n  min-height: 112px;\n  margin: var(--dlw-gap-xs) 6px var(--dlw-gap-xs) 0;\n  padding: var(--dlw-gap-xs);\n  background:\n    radial-gradient(circle at 50% 35%, rgba(142, 106, 50, 0.10), transparent 65%),\n    linear-gradient(180deg, rgba(253, 246, 227, 0.92), rgba(237, 224, 192, 0.92));\n  border: 1px solid rgba(232, 201, 138, 0.28);\n  border-radius: var(--dlw-radius-md);\n  position: relative;\n  text-align: center;\n  vertical-align: top;\n  font-family: var(--dlw-font-body);\n  color: var(--dlw-ivory);\n  font-size: 0.74em;\n  line-height: 1.4;\n  box-shadow:\n    inset 0 1px 2px rgba(142, 106, 50, 0.12),\n    0 2px 6px rgba(106, 72, 24, 0.18);\n  transition: transform 0.3s, box-shadow 0.3s;\n}\n.markdown-body .dring:hover {\n  transform: translateY(-2px);\n  box-shadow:\n    inset 0 1px 2px rgba(142, 106, 50, 0.25),\n    0 3px 10px rgba(106, 72, 24, 0.22),\n    0 0 14px var(--dlw-faction-glow);\n}\n.markdown-body .dring::before {\n  content: \"\";\n  display: block;\n  width: 60px;\n  height: 60px;\n  margin: 4px auto 4px;\n  background-size: contain;\n  background-repeat: no-repeat;\n  background-position: center;\n  filter: drop-shadow(0 0 6px var(--dlw-faction-glow));\n  animation: dlwRingFloat 4s ease-in-out infinite;\n}\n.markdown-body .dring[color=\"white\"]::before  { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ring-white.png\"); }\n.markdown-body .dring[color=\"yellow\"]::before { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ring-yellow.png\"); }\n.markdown-body .dring[color=\"purple\"]::before { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ring-purple.png\"); }\n.markdown-body .dring[color=\"black\"]::before  { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ring-black.png\"); }\n.markdown-body .dring[color=\"red\"]::before    { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ring-red.png\"); }\n.markdown-body .dring[color=\"cyan\"]::before   { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ring-cyan.png\"); }\n.markdown-body .dring[color=\"gold\"]::before   { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ring-gold.png\"); }\n.markdown-body .dring::after {\n  content: attr(n);\n  position: absolute;\n  top: 4px;\n  left: 4px;\n  width: 18px;\n  height: 18px;\n  line-height: 18px;\n  text-align: center;\n  border-radius: 50%;\n  background: var(--dlw-cinnabar);\n  color: var(--dlw-ivory);\n  font-size: 0.66em;\n  font-weight: 700;\n  box-shadow: 0 0 6px rgba(184, 48, 42, 0.65);\n}\n.markdown-body .dring[color=\"white\"]  { border-color: var(--dring-white);  }\n.markdown-body .dring[color=\"yellow\"] { border-color: var(--dring-yellow); }\n.markdown-body .dring[color=\"purple\"] { border-color: var(--dring-purple); }\n.markdown-body .dring[color=\"black\"]  { border-color: var(--dring-black);  background: linear-gradient(180deg, rgba(232, 220, 248, 0.55), rgba(248, 240, 250, 0.88)); }\n.markdown-body .dring[color=\"red\"]    { border-color: var(--dring-red);    box-shadow: inset 0 0 8px rgba(200, 48, 42, 0.32), 0 0 12px rgba(200, 48, 42, 0.25); }\n.markdown-body .dring[color=\"cyan\"]   { border-color: var(--dring-cyan);   }\n.markdown-body .dring[color=\"gold\"]   { border-color: var(--dring-gold);   box-shadow: 0 0 16px rgba(232, 180, 100, 0.55); }\n\n/* ----- 单个魂技卡 ----- */\n.markdown-body .dskill {\n  display: block;\n  position: relative;\n  margin: var(--dlw-gap-xs) 0;\n  padding: var(--dlw-gap-sm) var(--dlw-gap-md);\n  padding-left: 56px;\n  padding-top: 24px;\n  background: linear-gradient(180deg, rgba(232, 210, 170, 0.45), rgba(248, 232, 196, 0.65));\n  border: 1px solid rgba(184, 48, 42, 0.42);\n  border-radius: var(--dlw-radius-md);\n  box-shadow: inset 0 1px 2px rgba(142, 106, 50, 0.12), 0 2px 5px rgba(106, 72, 24, 0.15);\n  min-height: 56px;\n}\n.markdown-body .dskill::before {\n  content: \"第 \" attr(n) \" 技\";\n  position: absolute;\n  top: 50%;\n  left: 4px;\n  transform: translateY(-50%);\n  width: 48px;\n  text-align: center;\n  font-family: var(--dlw-font-title);\n  color: var(--dlw-cinnabar);\n  font-size: 0.72em;\n  font-weight: 700;\n  letter-spacing: 0.04em;\n  line-height: 1.2;\n}\n.markdown-body .dskill::after {\n  content: \"🔥 \" attr(cost) \"% 魂力\";\n  position: absolute;\n  top: 6px;\n  right: 10px;\n  font-size: 0.74em;\n  color: var(--dlw-gold-deep);\n  font-style: italic;\n}\n.markdown-body .dskill[state=\"using\"] {\n  border-color: var(--dlw-gold-bright);\n  animation: dlwSkillFlash 0.6s ease-out;\n  box-shadow: 0 0 18px var(--dlw-faction-glow), inset 0 0 12px rgba(142, 106, 50, 0.45);\n}\n.markdown-body .dskill[state=\"cooldown\"] {\n  opacity: 0.55;\n  filter: grayscale(0.4);\n}\n.markdown-body .dskillname {\n  display: inline-block;\n  font-family: var(--dlw-font-title);\n  color: var(--dlw-gold-bright);\n  font-size: 1.06em;\n  font-weight: 600;\n  letter-spacing: 0.06em;\n  margin-right: var(--dlw-gap-sm);\n}\n.markdown-body .dskilleffect {\n  display: block;\n  color: var(--dlw-ivory);\n  font-size: 0.92em;\n  margin-top: 4px;\n  font-style: italic;\n  opacity: 0.92;\n}\n\n/* ----- 魂骨槽位 ----- */\n.markdown-body .dbones {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));\n  gap: var(--dlw-gap-sm);\n}\n.markdown-body .dbone {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  padding: var(--dlw-gap-sm);\n  background: linear-gradient(180deg, rgba(238, 225, 188, 0.75), rgba(245, 230, 195, 0.90));\n  border: 1px dashed rgba(160, 104, 72, 0.55);\n  border-radius: var(--dlw-radius-sm);\n  font-size: 0.82em;\n  color: var(--dlw-gold-deep);\n  text-align: center;\n  position: relative;\n  min-height: 76px;\n}\n.markdown-body .dbone::before {\n  display: block;\n  font-family: var(--dlw-font-title);\n  color: var(--dlw-gold-mid);\n  font-size: 0.88em;\n  letter-spacing: 0.16em;\n  margin-bottom: 4px;\n}\n.markdown-body .dbone[part=\"head\"]::before      { content: \"头骨\"; }\n.markdown-body .dbone[part=\"torso\"]::before     { content: \"躯干\"; }\n.markdown-body .dbone[part=\"left-arm\"]::before  { content: \"左臂\"; }\n.markdown-body .dbone[part=\"right-arm\"]::before { content: \"右臂\"; }\n.markdown-body .dbone[part=\"left-leg\"]::before  { content: \"左腿\"; }\n.markdown-body .dbone[part=\"right-leg\"]::before { content: \"右腿\"; }\n.markdown-body .dbone[part=\"outer\"]::before     { content: \"外附\"; }\n.markdown-body .dbone[state=\"empty\"] {\n  opacity: 0.55;\n  background:\n    var(--dlw-decor-bone) center / 48px 48px no-repeat,\n    linear-gradient(180deg, rgba(238, 225, 188, 0.55), rgba(245, 230, 195, 0.65));\n  /* background-blend-mode 已移除（违反《内置CSS》§4.1） */\n}\n.markdown-body .dbone[state=\"filled\"] {\n  border-style: solid;\n  border-color: var(--dlw-gold-bright);\n  color: var(--dlw-gold-bright);\n  background: linear-gradient(180deg, rgba(232, 220, 188, 0.78), rgba(245, 230, 195, 0.92));\n  box-shadow: inset 0 0 12px rgba(232, 180, 100, 0.30), 0 0 14px var(--dlw-faction-glow);\n}\n\n/* ----- 魂导器 ----- */\n.markdown-body .dtool {\n  display: inline-block;\n  margin: var(--dlw-gap-xs);\n  padding: 4px 12px 4px 28px;\n  background: linear-gradient(180deg, rgba(245, 230, 195, 0.65), rgba(245, 230, 195, 0.90));\n  border: 1px solid var(--dlw-faction);\n  border-radius: 20px;\n  font-size: 0.92em;\n  color: var(--dlw-ivory);\n  position: relative;\n}\n.markdown-body .dtool::before {\n  content: \"\";\n  position: absolute;\n  left: 8px;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 14px;\n  height: 14px;\n  border-radius: 50%;\n}\n.markdown-body .dtool[type=\"attack\"]::before  { background: radial-gradient(circle, #ff8060, var(--dlw-cinnabar)); }\n.markdown-body .dtool[type=\"defense\"]::before { background: radial-gradient(circle, #88c4e8, #4a78a0); }\n.markdown-body .dtool[type=\"support\"]::before { background: radial-gradient(circle, #c4e88a, #6a8848); }\n.markdown-body .dtool[type=\"special\"]::before { background: radial-gradient(circle, #e8c98a, var(--dlw-gold-deep)); }\n\n\n/* =====================================================================\n   PHASE 4 · 玩家档案 / 路过 NPC（minor）\n   ===================================================================== */\n\n.markdown-body .dprofile {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: var(--dlw-gap-sm) var(--dlw-gap-md);\n  padding: var(--dlw-gap-md);\n  margin-bottom: var(--dlw-gap-md);\n  background:\n    linear-gradient(180deg, rgba(232, 220, 188, 0.45), rgba(248, 235, 200, 0.65)),\n    repeating-linear-gradient(0deg, transparent 0, transparent 22px, rgba(232, 201, 138, 0.04) 22px, rgba(232, 201, 138, 0.04) 23px);\n  border-left: 3px solid var(--dlw-cinnabar);\n  border-radius: var(--dlw-radius-md);\n  position: relative;\n}\n.markdown-body .dprofile::before {\n  content: \"🪪 魂师档案\";\n  grid-column: 1 / -1;\n  font-family: var(--dlw-font-title);\n  color: var(--dlw-gold-bright);\n  font-size: 1.05em;\n  font-weight: 600;\n  letter-spacing: 0.22em;\n  margin-bottom: var(--dlw-gap-xs);\n  border-bottom: 1px dashed rgba(142, 106, 50, 0.32);\n  padding-bottom: var(--dlw-gap-xs);\n}\n.markdown-body .dfield {\n  display: flex;\n  align-items: baseline;\n  gap: var(--dlw-gap-sm);\n  padding: 4px 8px;\n  font-family: var(--dlw-font-body);\n  color: var(--dlw-ivory);\n  line-height: 1.5;\n}\n.markdown-body .dfield::before {\n  content: attr(name);\n  color: var(--dlw-gold-deep);\n  font-family: var(--dlw-font-title);\n  font-size: 0.88em;\n  letter-spacing: 0.16em;\n  min-width: 4.4em;\n  flex-shrink: 0;\n}\n.markdown-body .dfield[name=\"武魂名称\"],\n.markdown-body .dfield[name=\"备注\"],\n.markdown-body .dfield[name=\"隐藏身份\"] { grid-column: 1 / -1; }\n.markdown-body .dfield[name=\"隐藏身份\"] {\n  color: var(--dlw-cinnabar);\n  font-style: italic;\n  position: relative;\n}\n.markdown-body .dfield[name=\"隐藏身份\"]::after {\n  content: \" 🔒 仅你可见\";\n  color: var(--dlw-gold-deep);\n  font-size: 0.72em;\n  font-style: normal;\n  letter-spacing: 0.06em;\n}\n\n\n/* =====================================================================\n   PHASE 5 · 重要 NPC 卡（含立绘）+ 路人 NPC 简写\n   ===================================================================== */\n\n.markdown-body .dnpc {\n  display: block;\n  position: relative;\n  max-width: 920px;\n  margin: var(--dlw-gap-lg) auto;\n  border-radius: var(--dlw-radius-lg);\n  z-index: 1;\n}\n\n/* ----- 重要 NPC（major）· v3.34+35 ZTL.png 纹理 + 降 gradient opacity ----- */\n.markdown-body .dnpc[tier=\"major\"] {\n  display: block;\n  padding: 42px 20px 18px 20px;\n  position: relative;\n  background:\n    linear-gradient(180deg, rgba(248, 232, 196, 0.42), rgba(232, 220, 180, 0.50)),\n    url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ZTL.png\") repeat;\n  background-size: auto, 100% auto;\n  border: 1px solid rgba(142, 106, 50, 0.45);\n  border-left: 4px solid var(--dlw-faction);\n  border-radius: 0 6px 6px 0;\n  box-shadow:\n    inset 0 0 0 1px rgba(232, 200, 140, 0.38),\n    inset 0 1px 0 rgba(253, 246, 227, 0.78),\n    0 3px 10px rgba(106, 72, 24, 0.22),\n    0 8px 22px rgba(60, 32, 14, 0.12);\n}\n\n/* v3.28+v3.34+v3.35 派系 override · ZTL 纹理 + 降 gradient opacity */\n.markdown-body .dnpc[tier=\"major\"][faction=\"hall\"],\n.markdown-body .dnpc[tier=\"major\"][faction=\"shrek\"],\n.markdown-body .dnpc[tier=\"major\"][faction=\"tang\"],\n.markdown-body .dnpc[tier=\"major\"][faction=\"seven-treasures\"],\n.markdown-body .dnpc[tier=\"major\"][faction=\"tiandou\"],\n.markdown-body .dnpc[tier=\"major\"][faction=\"xingluo\"],\n.markdown-body .dnpc[tier=\"major\"][faction=\"fire-dance\"],\n.markdown-body .dnpc[tier=\"major\"][faction=\"neutral\"] {\n  background:\n    linear-gradient(180deg, rgba(248, 232, 196, 0.42), rgba(232, 220, 180, 0.50)),\n    url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ZTL.png\") repeat !important;\n  background-size: auto, 100% auto !important;\n  border-color: rgba(142, 106, 50, 0.45) !important;\n}\n\n/* 顶贴朱砂派系 chip（替代旧 左上 \"👤 hall\" 小标签 + 右上紫圆 重复装饰）*/\n.markdown-body .dnpc[tier=\"major\"]::before {\n  content: \"❖  \" attr(faction);\n  position: absolute;\n  top: -1px;\n  left: -4px;\n  padding: 6px 16px;\n  background: linear-gradient(180deg, var(--dlw-faction), var(--dlw-faction-deep));\n  color: #fef5d8;\n  font-family: var(--dlw-font-title);\n  font-size: 0.88em;\n  font-weight: 700;\n  letter-spacing: 0.20em;\n  border: 1.5px solid var(--dlw-gold-bright);\n  border-radius: 0 3px 3px 0;\n  box-shadow:\n    inset 0 0 0 1px rgba(253, 246, 227, 0.28),\n    0 2px 6px rgba(0, 0, 0, 0.42);\n  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.42);\n  text-transform: uppercase;\n  z-index: 2;\n}\n\n/* v3.30 立绘 ::after 删除（用户：人物 CG 直接删了）*/\n.markdown-body .dnpc[tier=\"major\"]::after { display: none !important; content: none !important; }\n.markdown-body .dnpc[tier=\"major\"][data-portrait=\"bibidong\"]::after {\n  background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/npc-bibidong.png\");\n}\n.markdown-body .dnpc[tier=\"major\"][data-portrait=\"bibidong-young\"]::after {\n  background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/npc-bibidong-young.png\");\n}\n.markdown-body .dnpc[tier=\"major\"][data-portrait=\"tangsan\"]::after  { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/npc-tangsan.png\"); }\n.markdown-body .dnpc[tier=\"major\"][data-portrait=\"xiaowu\"]::after   { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/npc-xiaowu.png\"); }\n.markdown-body .dnpc[tier=\"major\"][data-portrait=\"mahongjun\"]::after{ background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/npc-mahongjun.png\"); }\n.markdown-body .dnpc[tier=\"major\"][data-portrait=\"flender\"]::after  { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/npc-flender.png\"); }\n\n/* v3.30 NPC 卡删 grid 后无需 grid-column · 保留 margin 间距 */\n.markdown-body .dnpc[tier=\"major\"] > div {\n  margin-bottom: 8px;\n}\n.markdown-body .dnpcname {\n  display: block;\n  font-family: var(--dlw-font-title);\n  color: var(--dlw-faction);                   /* 派系色姓名（不再亮金）*/\n  font-size: 1.48em;\n  font-weight: 700;\n  letter-spacing: 0.18em;\n  text-shadow: 0 1px 0 rgba(253, 246, 227, 0.78);\n  padding-bottom: 4px;\n  margin: 0;\n  line-height: 1.2;\n}\n.markdown-body .dnpctitle {\n  display: block;\n  color: var(--dlw-ink-mid);\n  font-size: 0.92em;\n  font-style: italic;\n  letter-spacing: 0.12em;\n  margin: 0 0 6px 0;\n  padding: 4px 0 6px 10px;\n  border-left: 2px solid var(--dlw-cinnabar);\n}\n.markdown-body .dnpcspirit,\n.markdown-body .dnpcrank {\n  display: inline-block;\n  margin: 2px 6px 2px 0;\n  padding: 4px 12px;\n  background: linear-gradient(180deg, rgba(245, 230, 195, 0.78), rgba(232, 220, 180, 0.78));\n  border: 1px solid rgba(142, 106, 50, 0.52);\n  border-radius: 4px;\n  font-size: 0.88em;\n  color: var(--dlw-ink-main);\n  box-shadow: inset 0 1px 0 rgba(253, 246, 227, 0.42);\n}\n.markdown-body .dnpcspirit::before { content: \"武魂 · \"; color: var(--dlw-gold-deep); font-size: 0.9em; }\n.markdown-body .dnpcrank::before   { content: \"修为 · \"; color: var(--dlw-gold-deep); font-size: 0.9em; }\n/* 武魂稀有度边框配色 */\n.markdown-body .dnpcspirit[rare=\"divine\"]    { border-color: var(--dring-gold); color: var(--dlw-gold-bright); }\n.markdown-body .dnpcspirit[rare=\"legendary\"] { border-color: var(--dring-red); color: #ff8a78; }\n.markdown-body .dnpcspirit[rare=\"epic\"]      { border-color: var(--dring-purple); color: #c098e8; }\n.markdown-body .dnpcspirit[rare=\"rare\"]      { border-color: var(--dring-yellow); color: #f5d090; }\n.markdown-body .dnpcspirit[rare=\"twin\"]      { border-color: var(--dlw-cinnabar); color: #ff8060; font-weight: 600; }\n.markdown-body .dnpcspirit[rare=\"triple\"]    { border-color: var(--dlw-gold-bright); color: var(--dlw-gold-bright); font-weight: 700; box-shadow: 0 0 8px var(--dlw-faction-glow); }\n\n.markdown-body .dnpcrings,\n.markdown-body .dnpcskills {\n  display: block;\n  margin: var(--dlw-gap-sm) 0;\n  padding-left: 0;\n}\n.markdown-body .dnpcrings::before {\n  content: \"魂环 · \";\n  color: var(--dlw-gold-deep);\n  font-family: var(--dlw-font-title);\n  font-size: 0.86em;\n  letter-spacing: 0.16em;\n  margin-right: 4px;\n}\n.markdown-body .dnpcskills::before {\n  content: \"已知魂技 · \";\n  color: var(--dlw-gold-deep);\n  font-family: var(--dlw-font-title);\n  font-size: 0.86em;\n  letter-spacing: 0.16em;\n  margin-right: 4px;\n}\n/* NPC 列表里 ring 紧凑化 · v3.33 加深暗金渐变底（让浅色 ring 浮现）*/\n.markdown-body .dnpcrings .dring {\n  width: 56px;\n  min-height: 64px;\n  font-size: 0.62em;\n  background: radial-gradient(circle at 50% 30%, rgba(60, 32, 14, 0.65) 0%, rgba(26, 8, 4, 0.82) 70%) !important;\n  border: 1.5px solid rgba(232, 180, 100, 0.62) !important;\n  box-shadow:\n    inset 0 0 0 1px rgba(232, 200, 140, 0.32),\n    inset 0 0 12px rgba(0, 0, 0, 0.42),\n    0 2px 6px rgba(0, 0, 0, 0.45) !important;\n}\n.markdown-body .dnpcrings .dring::before {\n  width: 36px;\n  height: 36px;\n  margin: 4px auto 2px;\n  filter: drop-shadow(0 0 8px rgba(232, 180, 100, 0.78)) !important;   /* 加金辉描边强化 */\n}\n/* NPC 魂环 chip 内编号 chip 缩小 · 朱砂底跟深底搭配 */\n.markdown-body .dnpcrings .dring::after {\n  top: 2px;\n  left: 2px;\n  width: 16px;\n  height: 16px;\n  line-height: 16px;\n  font-size: 0.62em;\n}\n/* v3.30 NPC 魂技 chip · 含简短描述（name 朱砂 + effect 灰字小一号）*/\n.markdown-body .dnpcskills .dskill {\n  display: inline-flex;\n  flex-direction: column;\n  align-items: flex-start;\n  margin: 4px 6px 4px 0;\n  padding: 6px 12px;\n  min-height: 0;\n  background: linear-gradient(180deg, rgba(248, 232, 196, 0.88), rgba(232, 220, 180, 0.92));\n  border: 1px solid rgba(184, 48, 42, 0.52);\n  border-radius: 6px;\n  color: var(--dlw-ink-main);\n  max-width: 280px;\n  vertical-align: top;\n  box-shadow: inset 0 1px 0 rgba(253, 246, 227, 0.55);\n}\n.markdown-body .dnpcskills .dskill .dskillname {\n  font-family: var(--dlw-font-title);\n  font-size: 0.92em;\n  font-weight: 700;\n  color: var(--dlw-cinnabar);\n  letter-spacing: 0.10em;\n}\n.markdown-body .dnpcskills .dskill .dskilleffect {\n  font-size: 0.78em;\n  color: var(--dlw-ink-mid);\n  font-style: italic;\n  letter-spacing: 0.04em;\n  margin-top: 2px;\n  line-height: 1.4;\n}\n.markdown-body .dnpcskills .dskill::before,\n.markdown-body .dnpcskills .dskill::after { content: none; }\n\n/* 对玩家态度徽章 */\n.markdown-body .dattitude {\n  display: inline-block;\n  margin-top: var(--dlw-gap-sm);\n  padding: 4px 14px;\n  border-radius: 4px;\n  font-family: var(--dlw-font-title);\n  font-size: 0.92em;\n  font-weight: 600;\n  letter-spacing: 0.12em;\n  text-transform: none;\n  border: 1px solid currentColor;\n}\n.markdown-body .dattitude::before { content: \"态度 · \"; color: var(--dlw-gold-deep); font-weight: 400; font-size: 0.86em; margin-right: 4px; }\n.markdown-body .dattitude[state=\"caution\"]      { color: #c8a464; }\n.markdown-body .dattitude[state=\"appreciation\"] { color: #88e8a0; }\n.markdown-body .dattitude[state=\"disdain\"]      { color: #888888; }\n.markdown-body .dattitude[state=\"interest\"]     { color: var(--dlw-faction); }\n.markdown-body .dattitude[state=\"hostile\"]      { color: #ff6048; animation: dlwAttitudePulse 1.4s ease-in-out infinite; }\n.markdown-body .dattitude[state=\"flirt\"]        { color: #f070b0; text-shadow: 0 0 8px rgba(240, 112, 176, 0.55); }\n\n.markdown-body .dvoice {\n  display: block;\n  margin: 6px 0 0;\n  padding: 8px 14px;\n  background: linear-gradient(180deg, rgba(245, 233, 200, 0.78), rgba(232, 220, 180, 0.78));\n  border: 1px solid rgba(142, 58, 42, 0.32);\n  border-left: 3px solid var(--dlw-cinnabar);\n  border-radius: 0 3px 3px 0;\n  font-family: var(--dlw-font-body);\n  font-style: italic;\n  color: var(--dlw-cinnabar-dim);            /* 深朱砂字 · 浅底高对比 */\n  font-size: 0.94em;\n  position: relative;\n  letter-spacing: 0.04em;\n  line-height: 1.7;\n}\n.markdown-body .dvoice::before {\n  content: \"「\";\n  color: var(--dlw-cinnabar);\n  font-family: var(--dlw-font-title);\n  font-size: 1.4em;\n  font-weight: 700;\n  margin-right: 4px;\n}\n.markdown-body .dvoice::after {\n  content: \" 」  · 内心独白\";\n  color: var(--dlw-gold-deep);\n  font-style: normal;\n  font-size: 0.74em;\n  letter-spacing: 0.10em;\n  font-weight: 600;\n}\n\n.markdown-body .dadvance {\n  display: block;\n  margin: 8px 0 0;\n  padding: 6px 14px 6px 36px;\n  background: linear-gradient(180deg, rgba(232, 200, 140, 0.32), rgba(232, 180, 100, 0.22));\n  border: 1px solid rgba(142, 106, 50, 0.55);\n  border-radius: 3px;\n  font-size: 0.90em;\n  color: var(--dlw-ink-main);\n  position: relative;\n  font-weight: 600;\n  letter-spacing: 0.04em;\n}\n.markdown-body .dadvance::before {\n  content: \"▶  推进\";\n  position: absolute;\n  left: -6px;\n  top: 50%;\n  transform: translateY(-50%);\n  padding: 3px 10px;\n  background: var(--dlw-cinnabar);\n  color: #fef5d8;\n  font-family: var(--dlw-font-title);\n  font-size: 0.78em;\n  font-weight: 700;\n  letter-spacing: 0.10em;\n  border-radius: 0 3px 3px 0;\n  border: 1px solid var(--dlw-gold-bright);\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.32);\n}\n.markdown-body .dadvance {\n  padding-left: 76px !important;   /* 给「▶ 推进」chip 让位 */\n}\n\n/* ----- 路过 NPC（minor）· v3.34+35 ZTL.png 纹理 + 降 gradient opacity ----- */\n.markdown-body .dnpc[tier=\"minor\"] {\n  display: flex;\n  align-items: baseline;\n  gap: 10px;\n  padding: 8px 16px;\n  margin: 6px auto;\n  background:\n    linear-gradient(180deg, rgba(248, 235, 200, 0.42), rgba(237, 224, 192, 0.50)),\n    url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ZTL.png\") repeat;\n  background-size: auto, 100% auto;\n  border: 1px solid rgba(142, 106, 50, 0.35);\n  border-left: 3px solid var(--dlw-cinnabar);\n  border-radius: 0 4px 4px 0;\n  font-size: 0.94em;\n  color: var(--dlw-ink-main);\n  box-shadow: inset 0 1px 0 rgba(253, 246, 227, 0.55), 0 1px 4px rgba(106, 72, 24, 0.15);\n}\n.markdown-body .dnpc[tier=\"minor\"] .dnpcname {\n  display: inline;\n  font-family: var(--dlw-font-title);\n  color: var(--dlw-cinnabar) !important;\n  font-size: 1em;\n  font-weight: 700;\n  letter-spacing: 0.16em;\n  border: none;\n  padding: 0;\n  margin: 0 8px 0 0;\n  text-shadow: none;\n  flex-shrink: 0;\n}\n.markdown-body .dnpc[tier=\"minor\"] .dnpcname::after {\n  content: \" ·\";\n  color: var(--dlw-gold-deep);\n  margin-left: 4px;\n}\n.markdown-body .dnpcbrief {\n  display: inline;\n  color: var(--dlw-ink-mid);          /* v3.27 深字色，浅底高对比 */\n  font-style: italic;\n  font-size: 0.92em;\n}\n\n\n/* =====================================================================\n   PHASE 6 · 地图按钮 + 地图组件（吸收 akg-* 思路）\n   ===================================================================== */\n\n/* v3.9 删 .dmapbtn 全部 · 地图默认 open=\"true\" 常驻展开 · 不再需要按钮 */\n\n.markdown-body .dmap {\n  display: block;\n  position: relative;\n  max-width: 920px;\n  margin: 0 auto var(--dlw-gap-lg);\n  aspect-ratio: 16 / 11;\n  /* v3.17 顶层叠点阵网格（古地图经纬感） */\n  background:\n    radial-gradient(circle, rgba(106, 72, 24, 0.32) 0.9px, transparent 1.4px) 0 0 / 28px 28px,\n    var(--dlw-bg-parchment) center / cover no-repeat,\n    radial-gradient(ellipse at 50% 60%, rgba(232, 220, 188, 0.45), rgba(237, 224, 192, 0.92) 80%);\n  border-radius: var(--dlw-radius-lg);\n  border: 2px solid rgba(232, 180, 100, 0.48);\n  box-shadow:\n    inset 0 0 0 4px rgba(232, 200, 140, 0.24),\n    inset 0 0 60px rgba(232, 200, 140, 0.20),\n    0 6px 18px rgba(106, 72, 24, 0.25);\n  overflow: hidden;\n  transform-origin: top center;\n  z-index: 1;\n}\n/* v3.18 地图标题「昊天大陆」古匾额（深棕厚底 + 浅金字 + 4 角铜钉装饰 + 立体阴影）*/\n.markdown-body .dmap::before {\n  content: \"昊  天  大  陆\";\n  position: absolute;\n  top: 14px;\n  left: 50%;\n  transform: translateX(-50%);\n  padding: 10px 42px;\n  font-family: var(--dlw-font-title);\n  font-size: 1.22em;\n  font-weight: 700;\n  letter-spacing: 0.52em;\n  text-indent: 0.52em;     /* 字距导致最后一字偏左,加 indent 平衡 */\n  color: #f5d8a0;          /* 浅金字 */\n  background:\n    /* 深棕匾面渐变（顶亮底深，木质感） */\n    linear-gradient(180deg, #5a2f1a 0%, #3a1a0c 55%, #2a1208 100%),\n    /* 斜纹木理底 */\n    repeating-linear-gradient(135deg, transparent 0, transparent 4px, rgba(232, 200, 140, 0.04) 4px, rgba(232, 200, 140, 0.04) 5px);\n  border: 2px solid var(--dlw-gold-bright);\n  border-radius: 5px;\n  text-shadow:\n    0 0 10px rgba(245, 216, 160, 0.72),\n    0 0 22px rgba(232, 180, 100, 0.42),\n    0 1px 0 #1a0804;\n  box-shadow:\n    /* 内层金属高光 */\n    inset 0 0 0 1px rgba(232, 200, 140, 0.62),\n    inset 0 0 0 3px rgba(60, 32, 14, 0.85),\n    inset 0 0 0 4px rgba(232, 180, 100, 0.32),\n    inset 0 1px 1px rgba(245, 216, 160, 0.42),\n    inset 0 -2px 4px rgba(0, 0, 0, 0.55),\n    inset 0 0 24px rgba(232, 200, 140, 0.14),\n    /* 外层立体投影 */\n    0 4px 14px rgba(0, 0, 0, 0.62),\n    0 10px 32px rgba(60, 32, 14, 0.48);\n  z-index: 5;\n  pointer-events: none;\n}\n/* 匾额 4 角铜钉装饰（用 ::after multiple background-position）*/\n.markdown-body .dmap::after {\n  content: \"\";\n  position: absolute;\n  top: 14px;\n  left: 50%;\n  transform: translateX(-50%);\n  width: 220px;\n  height: 44px;\n  border-radius: 5px;\n  pointer-events: none;\n  z-index: 6;\n  background:\n    radial-gradient(circle at 8px 8px, #f5d8a0 0px, #c8a464 2.2px, #6a4818 3.2px, transparent 3.4px) no-repeat,\n    radial-gradient(circle at calc(100% - 8px) 8px, #f5d8a0 0px, #c8a464 2.2px, #6a4818 3.2px, transparent 3.4px) no-repeat,\n    radial-gradient(circle at 8px calc(100% - 8px), #f5d8a0 0px, #c8a464 2.2px, #6a4818 3.2px, transparent 3.4px) no-repeat,\n    radial-gradient(circle at calc(100% - 8px) calc(100% - 8px), #f5d8a0 0px, #c8a464 2.2px, #6a4818 3.2px, transparent 3.4px) no-repeat;\n}\n.markdown-body .dmap[open=\"false\"] {\n  max-height: 0;\n  aspect-ratio: auto;\n  padding: 0;\n  margin: 0 auto;\n  border: 0;\n  opacity: 0;\n  visibility: hidden;\n  transition: all 0.3s ease;\n}\n.markdown-body .dmap[open=\"true\"] {\n  animation: dlwMapOpen 0.6s ease-out;\n}\n\n/* 8 势力色块层（v3.16 全删 · 用户反馈：彩色 blur 圆斑廉价）\n   保留 .dzones 容器跑空（避免破坏 grammar），单个 dzone 隐藏 */\n.markdown-body .dzones {\n  position: absolute;\n  inset: 0;\n  pointer-events: none;\n}\n.markdown-body .dzone {\n  display: none !important;\n}\n\n/* 8 地点（POI）层（z-index 3） */\n.markdown-body .dpois {\n  position: absolute;\n  inset: 0;\n  z-index: 3;\n}\n.markdown-body .dpoi {\n  position: absolute;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  width: 110px;\n  cursor: pointer;\n  z-index: 4;\n  transition: transform 0.3s, filter 0.3s;\n}\n.markdown-body .dpoi::before {\n  content: \"\";\n  width: 16px;\n  height: 16px;\n  border-radius: 50%;\n  background: var(--dlw-gold-bright);\n  box-shadow:\n    0 0 0 3px rgba(142, 106, 50, 0.45),\n    0 0 14px var(--dlw-faction-glow);\n  margin-bottom: 4px;\n}\n.markdown-body .dpoi::after {\n  content: attr(name);\n  padding: 2px 8px;\n  background: rgba(237, 224, 192, 0.85);\n  border: 1px solid rgba(142, 106, 50, 0.45);\n  border-radius: 3px;\n  font-family: var(--dlw-font-title);\n  font-size: 0.76em;\n  color: var(--dlw-gold-bright);\n  letter-spacing: 0.04em;\n  white-space: nowrap;\n  text-align: center;\n}\n.markdown-body .dpoi:hover {\n  transform: scale(1.18) translateY(-2px);\n  z-index: 5;\n}\n.markdown-body .dpoi:hover::before {\n  animation: dlwPoiPulse 0.6s ease-out infinite;\n}\n.markdown-body .dpoi[status=\"safe\"]::before    { background: #88e8a0; box-shadow: 0 0 0 3px rgba(136, 232, 160, 0.32), 0 0 14px rgba(136, 232, 160, 0.65); }\n.markdown-body .dpoi[status=\"danger\"]::before  { background: var(--dlw-cinnabar); box-shadow: 0 0 0 3px rgba(184, 48, 42, 0.42), 0 0 16px rgba(184, 48, 42, 0.78); }\n.markdown-body .dpoi[status=\"neutral\"]::before { background: var(--dlw-gold-mid); }\n.markdown-body .dpoi[status=\"hot\"]::before     { background: #ff8060; box-shadow: 0 0 0 3px rgba(255, 128, 96, 0.45), 0 0 18px rgba(255, 128, 96, 0.78); animation: dlwPoiPulse 1.6s ease-in-out infinite; }\n\n/* 8 POI 实际坐标（v3.16 按地理散布到地图 8 方位，告别中央扎堆） */\n.markdown-body .dpoi[id=\"1\"] { top: 8%;  left: 78%; }   /* 武魂殿 · 东北 */\n.markdown-body .dpoi[id=\"2\"] { top: 12%; left: 8%;  }   /* 唐门 · 西北 */\n.markdown-body .dpoi[id=\"3\"] { top: 56%; left: 50%; }   /* 圣魂村 · 中央偏南（玩家） */\n.markdown-body .dpoi[id=\"4\"] { top: 38%; left: 14%; }   /* 七宝琉璃宗 · 西 */\n.markdown-body .dpoi[id=\"5\"] { top: 78%; left: 22%; }   /* 火舞城 · 西南 */\n.markdown-body .dpoi[id=\"6\"] { top: 42%; left: 76%; }   /* 诺丁城 · 东 */\n.markdown-body .dpoi[id=\"7\"] { top: 75%; left: 68%; }   /* 星罗皇宫 · 东南 */\n.markdown-body .dpoi[id=\"8\"] { top: 22%; left: 44%; }   /* 史莱克学院 · 北 */\n\n/* POI 描述 tooltip */\n.markdown-body .dpoidesc {\n  display: none;\n  position: absolute;\n  top: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  margin-top: 6px;\n  padding: 6px 12px;\n  background: rgba(237, 224, 192, 0.92);\n  border: 1px solid rgba(142, 106, 50, 0.55);\n  border-radius: var(--dlw-radius-sm);\n  font-size: 0.78em;\n  color: var(--dlw-ivory);\n  white-space: nowrap;\n  z-index: 9;\n}\n.markdown-body .dpoi:hover .dpoidesc { display: block; animation: dlwTooltipFade 0.3s ease-out; }\n\n/* 玩家位置标记 · v3.16 软化古风朱砂点 + 「君在此」纸笺 */\n.markdown-body .dplayer {\n  position: absolute;\n  width: 11px;\n  height: 11px;\n  margin-left: -5.5px;\n  margin-top: -5.5px;\n  border-radius: 50%;\n  background: var(--dlw-cinnabar);\n  box-shadow:\n    0 0 0 2px rgba(253, 246, 227, 0.78),\n    0 0 0 3px var(--dlw-gold-mid),\n    0 0 14px rgba(184, 48, 42, 0.62);\n  z-index: 6;\n  animation: dlwPlayerMarkerPulse 2.4s ease-in-out infinite;\n}\n.markdown-body .dplayer::before {\n  content: \"君在此\";\n  position: absolute;\n  top: -26px;\n  left: 50%;\n  transform: translateX(-50%);\n  padding: 2px 8px;\n  background: rgba(253, 246, 227, 0.92);\n  color: var(--dlw-cinnabar);\n  border: 1px solid var(--dlw-gold-mid);\n  border-radius: 3px;\n  font-family: var(--dlw-font-title);\n  font-size: 0.66em;\n  font-weight: 600;\n  letter-spacing: 0.14em;\n  white-space: nowrap;\n  box-shadow: 0 1px 4px rgba(106, 72, 24, 0.32);\n}\n.markdown-body .dplayer[at=\"poi-1\"] { top: 8%;  left: 78%; }\n.markdown-body .dplayer[at=\"poi-2\"] { top: 12%; left: 8%;  }\n.markdown-body .dplayer[at=\"poi-3\"] { top: 56%; left: 50%; }\n.markdown-body .dplayer[at=\"poi-4\"] { top: 38%; left: 14%; }\n.markdown-body .dplayer[at=\"poi-5\"] { top: 78%; left: 22%; }\n.markdown-body .dplayer[at=\"poi-6\"] { top: 42%; left: 76%; }\n.markdown-body .dplayer[at=\"poi-7\"] { top: 75%; left: 68%; }\n.markdown-body .dplayer[at=\"poi-8\"] { top: 22%; left: 44%; }\n\n/* 任务目标 · v3.16 朱砂小旗 SVG（替代红色雷达扫描虚线圆） */\n.markdown-body .dtarget {\n  position: absolute;\n  width: 22px;\n  height: 30px;\n  margin-left: -2px;     /* 旗杆贴在 POI 点右侧 */\n  margin-top: -28px;     /* 旗子从下端钉在 POI 上 */\n  background: url(\"data:image/svg+xml,%3Csvg viewBox='0 0 22 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cline x1='3' y1='2' x2='3' y2='30' stroke='%236a4818' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M 3 4 L 20 8 L 3 13 Z' fill='%238e3a2a' stroke='%23c8a464' stroke-width='0.5'/%3E%3Ccircle cx='3' cy='2' r='1.2' fill='%23c8a464'/%3E%3C/svg%3E\") center top / contain no-repeat;\n  z-index: 5;\n  transform-origin: 14% 100%;\n  animation: dlwTargetFlagWave 3s ease-in-out infinite;\n}\n.markdown-body .dtarget::after {\n  content: attr(text);\n  position: absolute;\n  top: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  margin-top: 2px;\n  padding: 1px 8px;\n  background: rgba(142, 58, 42, 0.88);\n  border: 1px solid rgba(232, 180, 100, 0.55);\n  border-radius: 3px;\n  color: rgba(253, 246, 227, 0.94);\n  font-family: var(--dlw-font-title);\n  font-size: 0.66em;\n  letter-spacing: 0.14em;\n  white-space: nowrap;\n  box-shadow: 0 1px 4px rgba(106, 72, 24, 0.32);\n}\n.markdown-body .dtarget[at=\"poi-1\"] { top: 8%;  left: 78%; }\n.markdown-body .dtarget[at=\"poi-2\"] { top: 12%; left: 8%;  }\n.markdown-body .dtarget[at=\"poi-3\"] { top: 56%; left: 50%; }\n.markdown-body .dtarget[at=\"poi-4\"] { top: 38%; left: 14%; }\n.markdown-body .dtarget[at=\"poi-5\"] { top: 78%; left: 22%; }\n.markdown-body .dtarget[at=\"poi-6\"] { top: 42%; left: 76%; }\n.markdown-body .dtarget[at=\"poi-7\"] { top: 75%; left: 68%; }\n.markdown-body .dtarget[at=\"poi-8\"] { top: 22%; left: 44%; }\n\n/* 罗盘装饰 · v3.16 古风方位盘 SVG（替代红色靶心 conic gradient）\n   同心圆 + 4 方位线 + 朱砂北指针 + 东西南北四字 */\n.markdown-body .dcompass {\n  position: absolute;\n  top: 16px;\n  right: 16px;\n  width: 64px;\n  height: 64px;\n  background: url(\"data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='50' cy='50' r='47' fill='rgba(253,246,227,0.18)' stroke='%238e6a32' stroke-width='1.5' opacity='0.85'/%3E%3Ccircle cx='50' cy='50' r='38' fill='none' stroke='%238e6a32' stroke-width='0.6' opacity='0.55'/%3E%3Ccircle cx='50' cy='50' r='28' fill='none' stroke='%238e6a32' stroke-width='0.4' opacity='0.42'/%3E%3Cline x1='50' y1='6' x2='50' y2='94' stroke='%238e6a32' stroke-width='0.6' opacity='0.45'/%3E%3Cline x1='6' y1='50' x2='94' y2='50' stroke='%238e6a32' stroke-width='0.6' opacity='0.45'/%3E%3Cline x1='18' y1='18' x2='82' y2='82' stroke='%238e6a32' stroke-width='0.4' opacity='0.32'/%3E%3Cline x1='82' y1='18' x2='18' y2='82' stroke='%238e6a32' stroke-width='0.4' opacity='0.32'/%3E%3Cpath d='M 50 18 L 46 50 L 50 48 L 54 50 Z' fill='%238e3a2a' opacity='0.92'/%3E%3Cpath d='M 50 82 L 46 50 L 50 52 L 54 50 Z' fill='%236a4818' opacity='0.62'/%3E%3Ccircle cx='50' cy='50' r='3' fill='%23c8a464' stroke='%236a4818' stroke-width='0.6'/%3E%3Ctext x='50' y='13' font-family='STSong,serif' font-size='9' font-weight='700' fill='%238e3a2a' text-anchor='middle'%3E北%3C/text%3E%3Ctext x='50' y='95' font-family='STSong,serif' font-size='8' fill='%236a4818' text-anchor='middle'%3E南%3C/text%3E%3Ctext x='9' y='53' font-family='STSong,serif' font-size='8' fill='%236a4818'%3E西%3C/text%3E%3Ctext x='84' y='53' font-family='STSong,serif' font-size='8' fill='%236a4818'%3E东%3C/text%3E%3C/svg%3E\") center / contain no-repeat;\n  z-index: 4;\n  opacity: 0.78;\n  filter: drop-shadow(0 0 6px rgba(232, 180, 100, 0.42));\n  pointer-events: none;\n}\n.markdown-body .dcompass::before { display: none; }\n.markdown-body .dcompass::after  { display: none; }\n\n\n/* =====================================================================\n   PHASE 7 · 行内符号 + 正文叙事容器 + 25+ keyframes\n   ===================================================================== */\n\n/* 行内魂环 icon（叙事中用 <.dsoulring color=\"purple\"></.dsoulring>） */\n.markdown-body .dsoulring {\n  display: inline-block;\n  width: 1.2em;\n  height: 1.2em;\n  vertical-align: -0.18em;\n  margin: 0 2px;\n  border-radius: 50%;\n  background-size: contain;\n  background-repeat: no-repeat;\n  background-position: center;\n}\n.markdown-body .dsoulring[color=\"white\"]  { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ring-white.png\"); }\n.markdown-body .dsoulring[color=\"yellow\"] { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ring-yellow.png\"); }\n.markdown-body .dsoulring[color=\"purple\"] { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ring-purple.png\"); }\n.markdown-body .dsoulring[color=\"black\"]  { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ring-black.png\"); }\n.markdown-body .dsoulring[color=\"red\"]    { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ring-red.png\"); }\n.markdown-body .dsoulring[color=\"cyan\"]   { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ring-cyan.png\"); }\n.markdown-body .dsoulring[color=\"gold\"]   { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ring-gold.png\"); }\n\n/* 战斗爆发关键字包裹 · v3.21 朱砂高对比版（原浅金在浅羊皮底上看不清）*/\n.markdown-body .dburst {\n  display: inline;\n  padding: 1px 6px;\n  background: linear-gradient(180deg, rgba(142, 58, 42, 0.08), rgba(142, 58, 42, 0.18));\n  color: var(--dlw-cinnabar-dim);     /* 深朱砂字 */\n  font-weight: 700;\n  font-family: var(--dlw-font-title);\n  letter-spacing: 0.10em;\n  border-bottom: 2px solid var(--dlw-cinnabar);\n  text-shadow:\n    0 1px 0 rgba(253, 246, 227, 0.78),    /* 浅描边增强可读 */\n    0 0 6px rgba(142, 58, 42, 0.32);\n  animation: dlwPowerBurstHigh 1s ease-out 1;\n}\n\n/* 正文叙事容器 .hpr · v3.11 换 ZHENGWEN.png 平铺纹理（用户指定）*/\n.markdown-body .hpr {\n  display: block;\n  max-width: 720px;\n  margin: var(--dlw-gap-lg) auto;\n  padding: 28px 32px;\n  background: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ZHENGWEN.png\") repeat;\n  background-size: 100% auto;\n  border: 1px solid rgba(142, 106, 50, 0.32);\n  border-radius: var(--dlw-radius-md);\n  font-family: var(--dlw-font-body);\n  color: var(--dlw-ink-main);\n  font-size: 1.04em;\n  line-height: 1.95;\n  letter-spacing: 0.04em;\n  text-indent: 2em;\n  box-shadow:\n    inset 0 0 0 1px rgba(232, 200, 140, 0.28),\n    inset 0 0 24px rgba(232, 200, 140, 0.10),\n    0 4px 14px rgba(106, 72, 24, 0.15);\n  position: relative;\n  z-index: 1;\n}\n/* v3.22 段间距再缩 · 1.6 偏松 → 1.1（用户反馈）*/\n.markdown-body .hpr br + br { line-height: 1.1; }\n\n\n/* ============== 25+ keyframes 动画清单 ============== */\n\n@keyframes dlwGlyphBreath {\n  0%, 100% { opacity: 0.08; transform: scale(1); }\n  50%      { opacity: 0.14; transform: scale(1.02); }\n}\n@keyframes dlwRingFloat {\n  0%, 100% { transform: translateY(0); filter: drop-shadow(0 0 6px var(--dlw-faction-glow)) brightness(1); }\n  50%      { transform: translateY(-3px); filter: drop-shadow(0 0 14px var(--dlw-faction-glow)) brightness(1.15); }\n}\n@keyframes dlwRingRotate {\n  to { transform: rotate(360deg); }\n}\n@keyframes dlwManifestSpirit {\n  0%   { opacity: 0; transform: scale(0.85); }\n  100% { opacity: 1; transform: scale(1); }\n}\n@keyframes dlwBreakthroughBurst {\n  0%   { box-shadow: 0 0 0 0 var(--dlw-gold-bright); }\n  50%  { box-shadow: 0 0 32px 8px var(--dlw-gold-bright); }\n  100% { box-shadow: 0 0 0 0 var(--dlw-gold-bright); }\n}\n@keyframes dlwCardSlideIn {\n  0%   { opacity: 0; transform: translateY(10px); }\n  100% { opacity: 1; transform: translateY(0); }\n}\n@keyframes dlwSkillFlash {\n  0%   { box-shadow: 0 0 0 0 var(--dlw-gold-bright); background: linear-gradient(180deg, rgba(232, 180, 100, 0.48), rgba(232, 210, 170, 0.45)); }\n  100% { box-shadow: 0 0 18px var(--dlw-faction-glow); background: linear-gradient(180deg, rgba(232, 210, 170, 0.45), rgba(248, 232, 196, 0.65)); }\n}\n@keyframes dlwPowerBarFill {\n  0%   { width: 0%; }\n  100% { width: 100%; }\n}\n@keyframes dlwMapOpen {\n  0%   { opacity: 0; transform: scaleY(0.85); }\n  100% { opacity: 1; transform: scaleY(1); }\n}\n@keyframes dlwMapClose {\n  0%   { opacity: 1; transform: scaleY(1); }\n  100% { opacity: 0; transform: scaleY(0.85); }\n}\n@keyframes dlwPoiPulse {\n  0%, 100% { box-shadow: 0 0 0 3px rgba(142, 106, 50, 0.45), 0 0 14px var(--dlw-faction-glow); }\n  50%      { box-shadow: 0 0 0 5px rgba(232, 180, 100, 0.48), 0 0 22px var(--dlw-faction-glow); }\n}\n@keyframes dlwCompassSpin {\n  to { transform: rotate(360deg); }\n}\n@keyframes dlwCompassNorthGlow {\n  0%, 100% { text-shadow: 0 0 4px var(--dlw-ivory); }\n  50%      { text-shadow: 0 0 12px var(--dlw-cinnabar), 0 0 4px var(--dlw-ivory); }\n}\n@keyframes dlwPlayerMarkerPulse {\n  0%, 100% { box-shadow: 0 0 0 2px rgba(253, 246, 227, 0.78), 0 0 0 3px var(--dlw-gold-mid), 0 0 14px rgba(184, 48, 42, 0.62); }\n  50%      { box-shadow: 0 0 0 2px rgba(253, 246, 227, 0.78), 0 0 0 3px var(--dlw-gold-mid), 0 0 22px rgba(184, 48, 42, 0.88); }\n}\n/* v3.16 旗子摇摆动画（替代旧 dlwTargetScan 红虚线旋转）*/\n@keyframes dlwTargetFlagWave {\n  0%, 100% { transform: rotate(0deg); }\n  25%      { transform: rotate(-2.5deg); }\n  75%      { transform: rotate(2deg); }\n}\n/* 旧 dlwTargetScan / dlwCompassNorthGlow 已被 SVG 实现取代，保留兼容空定义 */\n@keyframes dlwTargetScan { 0%, 100% { opacity: 1; } }\n@keyframes dlwCinnabarSeal {\n  0%   { opacity: 0; transform: scale(2) rotate(-12deg); }\n  50%  { opacity: 1; transform: scale(1.1) rotate(-3deg); }\n  100% { opacity: 0.92; transform: scale(1) rotate(0); }\n}\n@keyframes dlwBookOpen {\n  0%   { opacity: 0; transform: perspective(800px) rotateX(20deg); }\n  100% { opacity: 1; transform: perspective(800px) rotateX(0); }\n}\n@keyframes dlwTooltipFade {\n  0%   { opacity: 0; transform: translateX(-50%) translateY(4px); }\n  100% { opacity: 1; transform: translateX(-50%) translateY(0); }\n}\n@keyframes dlwNameplateEcho {\n  0%   { opacity: 0; transform: translateX(-12px); }\n  100% { opacity: 1; transform: translateX(0); }\n}\n@keyframes dlwAttitudePulse {\n  0%, 100% { border-color: currentColor; box-shadow: 0 0 0 currentColor; }\n  50%      { border-color: currentColor; box-shadow: 0 0 12px currentColor; }\n}\n/* v3.21 朱砂版（旧亮金在浅羊皮上不可见）· peak 50% 朱砂强光 + 始终浅描边 */\n@keyframes dlwPowerBurstHigh {\n  0%   { text-shadow: 0 1px 0 rgba(253, 246, 227, 0.78), 0 0 6px rgba(142, 58, 42, 0.32); }\n  50%  { text-shadow: 0 1px 0 rgba(253, 246, 227, 0.78), 0 0 14px rgba(142, 58, 42, 0.78), 0 0 28px rgba(142, 58, 42, 0.42); }\n  100% { text-shadow: 0 1px 0 rgba(253, 246, 227, 0.78), 0 0 6px rgba(142, 58, 42, 0.32); }\n}\n@keyframes dlwInkSpread {\n  0%   { opacity: 0; transform: scale(0.95); }\n  100% { opacity: 1; transform: scale(1); }\n}\n@keyframes dlwParchmentBreath {\n  0%, 100% { filter: brightness(0.96); }\n  50%      { filter: brightness(1.04); }\n}\n@keyframes dlwGoldShimmer {\n  0%   { background-position: -200% 0; }\n  100% { background-position: 200% 0; }\n}\n@keyframes dlwFactionFade {\n  0%   { opacity: 0; }\n  100% { opacity: 1; }\n}\n\n/* v3.9 入场 stagger · dscene 已独立到顶级 · 其余 6 段在 .dpanel-popup 内\n   弹窗内顺序按用户设计：dprofile → dcultivation → drings → dskills → dbones → dtools */\n.markdown-body .dpanel-popup > .dprofile,\n.markdown-body .dpanel-popup > .dcultivation,\n.markdown-body .dpanel-popup > .drings,\n.markdown-body .dpanel-popup > .dskills,\n.markdown-body .dpanel-popup > .dbones,\n.markdown-body .dpanel-popup > .dtools {\n  animation: dlwCardSlideIn 0.42s ease-out backwards;\n}\n.markdown-body .dpanel-popup > .dprofile      { animation-delay: 0.00s; }\n.markdown-body .dpanel-popup > .dcultivation  { animation-delay: 0.06s; }\n.markdown-body .dpanel-popup > .drings        { animation-delay: 0.12s; }\n.markdown-body .dpanel-popup > .dskills       { animation-delay: 0.18s; }\n.markdown-body .dpanel-popup > .dbones        { animation-delay: 0.24s; }\n.markdown-body .dpanel-popup > .dtools        { animation-delay: 0.30s; }\n/* dscene 独立顶级，沿用气泡入场动画即可，不另设 stagger */\n.markdown-body .dscene {\n  animation: dlwCardSlideIn 0.5s ease-out backwards;\n}\n\n.markdown-body .dnpcname { animation: dlwNameplateEcho 0.5s ease-out 1; }\n\n\n/* =====================================================================\n   PHASE 8 · 响应式 + prefers-reduced-motion + 平台外壳\n   ===================================================================== */\n\n/* 默认走移动优先；以下断点逐级加宽 */\n@media (max-width: 600px) {\n  .markdown-body {\n    font-size: 14.5px !important;\n  }\n  .markdown-body .dpanel { padding: var(--dlw-gap-md) var(--dlw-gap-sm); }\n  .markdown-body .dcultivation,\n  .markdown-body .dprofile { grid-template-columns: 1fr; }\n  .markdown-body .dnpc[tier=\"major\"] { grid-template-columns: 1fr; }\n  .markdown-body .dnpc[tier=\"major\"]::after {\n    width: 100%;\n    height: 220px;\n    grid-row: 1;\n    background-size: cover;\n    background-position: center top;\n  }\n  .markdown-body .dring  { width: 76px; min-height: 96px; }\n  .markdown-body .dring::before { width: 50px; height: 50px; }\n  .markdown-body .dpoi { width: 80px; }\n  .markdown-body .dpoi::after { font-size: 0.66em; }\n  .markdown-body::before { font-size: clamp(100px, 28vw, 200px); right: 8px; bottom: 8px; }\n}\n@media (max-width: 430px) {\n  .markdown-body {\n    font-size: 13.5px !important;\n    letter-spacing: 0.02em !important;\n  }\n  .markdown-body .dpanel,\n  .markdown-body .hpr { padding: var(--dlw-gap-sm); }\n  .markdown-body .dbones { grid-template-columns: repeat(2, 1fr); }\n  .markdown-body .dcompass { width: 44px; height: 44px; top: 6px; right: 6px; }\n  .markdown-body .dcompass::before { font-size: 0.66em; }\n}\n@media (min-width: 1024px) {\n  .markdown-body { font-size: 16.5px !important; }\n  .markdown-body .dpanel { max-width: 980px; }\n  .markdown-body .hpr { max-width: 780px; }\n}\n@media (min-width: 1280px) {\n  .markdown-body { font-size: 17.5px !important; }\n}\n\n/* ----- prefers-reduced-motion 全降级 ----- */\n@media (prefers-reduced-motion: reduce) {\n  .markdown-body *,\n  .markdown-body *::before,\n  .markdown-body *::after {\n    animation-duration: 0.001ms !important;\n    animation-iteration-count: 1 !important;\n    transition-duration: 0.001ms !important;\n  }\n  .markdown-body .dcompass,\n  .markdown-body .dplayer,\n  .markdown-body .dtarget,\n  .markdown-body .dring::before,\n  .markdown-body::before { animation: none !important; }\n}\n\n/* ----- 平台 chat 外壳兼容（最低化干预） ----- */\n.markdown-body .markdown-body { background: transparent !important; }\n.markdown-body ul, .markdown-body ol { padding-left: 1.4em; }\n.markdown-body hr {\n  border: none;\n  height: 1px;\n  background: linear-gradient(90deg, transparent, var(--dlw-gold-deep), transparent);\n  margin: var(--dlw-gap-lg) 0;\n}\n.markdown-body blockquote {\n  border-left: 3px solid var(--dlw-cinnabar);\n  padding-left: var(--dlw-gap-md);\n  margin: var(--dlw-gap-md) 0;\n  font-style: italic;\n  color: rgba(255, 245, 216, 0.78);\n  background: rgba(245, 233, 200, 0.32);\n}\n\n/* ----- 行动选项 suggested_questions（保留默认，不强改） ----- */\n.markdown-body .pga ul,\n.markdown-body .pga li {\n  background: linear-gradient(180deg, rgba(232, 220, 188, 0.55), rgba(248, 235, 200, 0.72)) !important;\n  border: 1px solid var(--dlw-gold-bright) !important;\n  color: var(--dlw-ivory) !important;\n  font-family: var(--dlw-font-body) !important;\n  border-radius: var(--dlw-radius-sm) !important;\n}\n\n\n/* =====================================================================\n   PHASE 8.5 · 补 spirit / faction / 装饰 icon 引用（v3.1）\n   ===================================================================== */\n\n/* ----- NPC 武魂 icon ----- */\n.markdown-body .dnpcspirit { position: relative; padding-left: 32px; }\n.markdown-body .dnpcspirit::after {\n  content: \"\";\n  position: absolute;\n  left: 6px; top: 50%; transform: translateY(-50%);\n  width: 22px; height: 22px;\n  background-size: contain; background-repeat: no-repeat; background-position: center;\n  background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-unknown.png\");\n  filter: drop-shadow(0 0 4px var(--dlw-faction-glow));\n}\n.markdown-body .dnpcspirit[data-icon=\"blue-silver\"]::after       { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-blue-silver.png\"); }\n.markdown-body .dnpcspirit[data-icon=\"clear-sky\"]::after         { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-clear-sky.png\"); }\n.markdown-body .dnpcspirit[data-icon=\"evil-white-tiger\"]::after  { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-evil-white-tiger.png\"); }\n.markdown-body .dnpcspirit[data-icon=\"evil-phoenix\"]::after      { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-evil-phoenix.png\"); }\n.markdown-body .dnpcspirit[data-icon=\"rabbit\"]::after            { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-rabbit.png\"); }\n.markdown-body .dnpcspirit[data-icon=\"cat\"]::after               { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-cat.png\"); }\n.markdown-body .dnpcspirit[data-icon=\"seven-tower\"]::after       { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-seven-tower.png\"); }\n.markdown-body .dnpcspirit[data-icon=\"sausage\"]::after           { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-sausage.png\"); }\n.markdown-body .dnpcspirit[data-icon=\"death-spider\"]::after      { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-death-spider.png\"); }\n.markdown-body .dnpcspirit[data-icon=\"unknown\"]::after           { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-unknown.png\"); }\n\n/* ----- 玩家武魂状态 icon（.dspiritstatus） ----- */\n.markdown-body .dspiritstatus[data-icon] {\n  padding-left: 34px;\n  position: relative;\n}\n.markdown-body .dspiritstatus[data-icon]::after {\n  content: \"\";\n  position: absolute;\n  left: 4px; top: 50%; transform: translateY(-50%);\n  width: 24px; height: 24px;\n  background-size: contain; background-repeat: no-repeat; background-position: center;\n  filter: drop-shadow(0 0 5px var(--dlw-faction-glow));\n  animation: dlwRingFloat 4s ease-in-out infinite;\n}\n.markdown-body .dspiritstatus[data-icon=\"blue-silver\"]::after       { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-blue-silver.png\"); }\n.markdown-body .dspiritstatus[data-icon=\"clear-sky\"]::after         { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-clear-sky.png\"); }\n.markdown-body .dspiritstatus[data-icon=\"evil-white-tiger\"]::after  { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-evil-white-tiger.png\"); }\n.markdown-body .dspiritstatus[data-icon=\"evil-phoenix\"]::after      { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-evil-phoenix.png\"); }\n.markdown-body .dspiritstatus[data-icon=\"rabbit\"]::after            { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-rabbit.png\"); }\n.markdown-body .dspiritstatus[data-icon=\"cat\"]::after               { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-cat.png\"); }\n.markdown-body .dspiritstatus[data-icon=\"seven-tower\"]::after       { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-seven-tower.png\"); }\n.markdown-body .dspiritstatus[data-icon=\"sausage\"]::after           { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-sausage.png\"); }\n.markdown-body .dspiritstatus[data-icon=\"death-spider\"]::after      { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-death-spider.png\"); }\n.markdown-body .dspiritstatus[data-icon=\"unknown\"]::after           { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/spirit-unknown.png\"); }\n\n/* ----- 4 张派系徽章作为 major NPC 卡右上 badge ----- */\n.markdown-body .dnpc[tier=\"major\"] .dnpcname {\n  position: relative;\n  padding-right: 56px;\n}\n.markdown-body .dnpc[tier=\"major\"] .dnpcname::after {\n  content: \"\";\n  position: absolute;\n  right: 0; top: 50%; transform: translateY(-50%);\n  width: 44px; height: 44px;\n  background-size: contain; background-repeat: no-repeat; background-position: center;\n  opacity: 0.88;\n  filter: drop-shadow(0 0 8px var(--dlw-faction-glow));\n}\n.markdown-body .dnpc[tier=\"major\"][faction=\"hall\"] .dnpcname::after  { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/faction-hall.png\"); }\n.markdown-body .dnpc[tier=\"major\"][faction=\"shrek\"] .dnpcname::after { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/faction-shrek.png\"); }\n.markdown-body .dnpc[tier=\"major\"][faction=\"tang\"] .dnpcname::after  { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/faction-tang.png\"); }\n.markdown-body .dnpc[tier=\"major\"][faction=\"seven-treasures\"] .dnpcname::after { background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/faction-seven-treasures.png\"); }\n\n/* v3.32 删觉醒台魂力测试镜装饰（用户：还有大魂师的图标 — 多余）*/\n/* 原 .dpowerbar decor-soul-mirror.png 32×32 右侧装饰，覆盖了\"距 X 还需 Y 点\" 文字区，已删 */\n\n/* ----- 魂技释放闪光（.dskill[state=\"using\"] 叠加） ----- */\n.markdown-body .dskill[state=\"using\"] {\n  background-image:\n    url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/decor-skill-flash.png\"),\n    linear-gradient(180deg, rgba(142, 106, 50, 0.45), rgba(232, 210, 170, 0.45));\n  background-size: 80px 80px, auto;\n  background-position: calc(100% - 6px) center, 0 0;\n  background-repeat: no-repeat;\n  padding-right: 96px;\n}\n\n\n/* =====================================================================\n   PHASE 9 · 平台标准选择器强制覆盖\n   ---------------------------------------------------------------------\n   依据《聊天框美化.txt》§平台关键 CSS 选择器\n   依据《内置CSS与UI组件设计.txt》§2.3 强制覆盖列表\n   规则：所有声明 !important · 颜色与本卡昊天派金红体系对齐\n   ===================================================================== */\n\n/* 0. 整个聊天气泡 · 石墙纹理可平铺背景 + 细金边（v3.14 恢复 · 用户要保留 dizhuanbeijing 那层）\n   dizhuanbeijing.png 是可平铺纹理 · 宽度绑定容器 · 超出向下平铺 */\n.bg-gray-100\\/90.relative.inline-block {\n  background-image: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/dizhuanbeijing.png\") !important;\n  background-size: 100% auto !important;\n  background-repeat: repeat-y !important;\n  background-position: top center !important;\n  border: 1px solid rgba(200, 164, 100, 0.65) !important;\n  border-radius: 14px !important;\n  box-shadow:\n    inset 0 0 0 1px rgba(232, 200, 140, 0.28),\n    0 4px 18px rgba(0, 0, 0, 0.32) !important;\n  padding: 14px !important;\n  overflow: hidden !important;\n}\n\n/* 1. 隐藏聊天框顶部装饰条（粉/青色装饰） */\n[class*=\"bg-[#F1CBCB]\"],\n[class*=\"bg-[#c9e1e9]\"] {\n  display: none !important;\n}\n\n/* 2. 主要文本内容色 · v3.6 浅底深字 */\n.markdown-body {\n  color: #3a2418 !important;\n  line-height: 1.85 !important;\n  font-family: \"STKaiti\", \"KaiTi\", \"STZhongsong\", \"楷体\", serif !important;\n  letter-spacing: 0.04em !important;\n}\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3,\n.markdown-body h4 {\n  color: #6a4818 !important;\n  border-bottom: 1px solid rgba(142, 106, 50, 0.42) !important;\n  font-family: \"STSong\", \"Source Han Serif SC\", serif !important;\n  letter-spacing: 0.16em !important;\n  text-shadow: 0 1px 0 rgba(253, 246, 227, 0.5) !important;\n}\n.markdown-body strong {\n  color: #8e3a2a !important;\n  font-weight: 700 !important;\n}\n.markdown-body em {\n  color: #8e6a32 !important;\n  font-style: normal !important;\n  font-family: \"STSong\", serif !important;\n  font-weight: 600 !important;\n}\n.markdown-body blockquote {\n  border-left: 4px solid #8e3a2a !important;\n  background: rgba(248, 232, 220, 0.65) !important;\n  color: #5a3a18 !important;\n  font-style: italic;\n  padding: 10px 18px !important;\n  margin: 14px 0 !important;\n  border-radius: 0 6px 6px 0 !important;\n  box-shadow: inset 0 0 0 1px rgba(142, 58, 42, 0.18) !important;\n}\n\n/* 3. 代码块 · 浅底深字 */\n.markdown-body pre {\n  background: rgba(248, 235, 200, 0.65) !important;\n  border: 1px solid rgba(142, 106, 50, 0.32) !important;\n  border-left: 3px solid #8e6a32 !important;\n  border-radius: 6px !important;\n  padding: 0.85em 1.1em !important;\n  overflow-x: auto !important;\n}\n.markdown-body pre code {\n  background: transparent !important;\n  color: #3a2418 !important;\n}\n.markdown-body :not(pre) > code {\n  background: rgba(142, 106, 50, 0.10) !important;\n  color: #6a4818 !important;\n  padding: 0.15em 0.45em !important;\n  border-radius: 4px !important;\n}\n\n/* 4. 输入框 · 半透浅米(藤蔓透 65%) + 深棕字 + 加强暗金边 [v3.39] */\n#ai-chat-input,\n#ai-chat-bottom-input,\ntextarea.rc-textarea {\n  background: rgba(253, 246, 227, 0.35) !important;\n  color: #3a2418 !important;\n  caret-color: #8e3a2a !important;\n  border: 1.5px solid rgba(106, 72, 24, 0.55) !important;\n}\n#ai-chat-input::placeholder,\n#ai-chat-bottom-input::placeholder,\ntextarea.rc-textarea::placeholder {\n  color: rgba(90, 58, 24, 0.45) !important;\n  opacity: 1 !important;\n}\n::selection {\n  background: rgba(142, 58, 42, 0.30) !important;\n  color: #3a2418 !important;\n}\n::placeholder {\n  color: rgba(90, 58, 24, 0.45) !important;\n  opacity: 1 !important;\n}\n\n/* 5. 滚动条 · 浅米调 */\n::-webkit-scrollbar {\n  width: 8px !important;\n  height: 8px !important;\n}\n::-webkit-scrollbar-track {\n  background: rgba(237, 224, 192, 0.45) !important;\n}\n::-webkit-scrollbar-thumb {\n  background: rgba(142, 106, 50, 0.45) !important;\n  border-radius: 4px !important;\n}\n::-webkit-scrollbar-thumb:hover {\n  background: rgba(106, 72, 24, 0.65) !important;\n}\n\n/* 6. 底部模型名 + Token 消耗文本 */\n.MuiTypography-root.MuiTypography-body2.css-6c0gf2 {\n  color: rgba(90, 58, 24, 0.65) !important;\n}\n.text-orange-500 {\n  color: rgba(142, 58, 42, 0.75) !important;\n}\n\n/* 7. 底部按钮 · 浅底古铜字 */\n.MuiButtonBase-root.MuiButton-root.MuiButton-text.MuiButton-textPrimary {\n  color: rgba(90, 58, 24, 0.85) !important;\n}\n.MuiButtonBase-root.MuiButton-root.MuiButton-text.MuiButton-textPrimary:hover {\n  color: #6a4818 !important;\n  background: rgba(232, 200, 140, 0.32) !important;\n}\n\n/* 8. details / summary · 浅底深字 */\ndetails {\n  background: rgba(248, 235, 200, 0.55) !important;\n  border: 1px solid rgba(142, 106, 50, 0.32) !important;\n  border-radius: 8px !important;\n  margin: 8px 0 !important;\n  overflow: hidden !important;\n}\ndetails summary {\n  background: rgba(232, 220, 188, 0.55) !important;\n  color: #3a2418 !important;\n  padding: 8px 12px 8px 30px !important;\n  position: relative !important;\n  cursor: pointer !important;\n  font-weight: 600 !important;\n  list-style: none !important;\n  user-select: none !important;\n}\ndetails summary::before {\n  content: '▶';\n  position: absolute;\n  left: 12px;\n  top: 50%;\n  transform: translateY(-50%);\n  color: #8e3a2a !important;\n  font-size: 10px;\n  transition: transform 0.2s ease;\n}\ndetails[open] summary::before {\n  transform: translateY(-50%) rotate(90deg);\n}\ndetails summary::-webkit-details-marker {\n  display: none !important;\n}\n\n\n/* =====================================================================\n   PHASE 10 · 用户输入气泡 · 方案 D 神秘符箓（v3.7.5 transform 动画兜底）\n   ---------------------------------------------------------------------\n   关键转换：\n   · background-position 动画 → transform: translate 动画（GPU 合成层）\n   · 不受 background !important 干扰 · 几乎所有环境都能动\n   · SVG 符号层挂到 ::before 伪元素 · 主气泡负责黑底 + 边框\n   · border-image 6px → 12px（外圈石墙描边加宽）\n   · 周期 8s → 6s · 位移 120px 对角线（明显能看到漂移）\n   ===================================================================== */\n\n.bg-gray-100\\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\\/90) {\n  /* v3.8 · 深棕径向渐变（中央 #2a1a10 → 边缘 #0c0604）· 不再纯黑 */\n  background:\n    radial-gradient(ellipse at 50% 30%, #2a1a10 0%, #1a0c0a 50%, #0c0604 100%) !important;\n  background-clip: padding-box !important;\n\n  /* v3.8 · 移除 border-image dizhuanbeijing · 改用纯 CSS 多层金线设计 */\n  border: 3px solid #8e6a32 !important;\n  border-radius: 14px !important;\n\n  padding: 20px 24px !important;\n  color: #fff5d8 !important;\n\n  /* 多层 box-shadow 模拟「金 / 黑 / 金 / 黑」四线设计感粗边 */\n  box-shadow:\n    inset 0 0 0 1px rgba(0, 0, 0, 0.65),         /* ① border 内侧紧贴黑细线 */\n    inset 0 0 0 4px rgba(232, 201, 138, 0.35),   /* ② 暗金宽内描线（4px） */\n    inset 0 0 0 5px rgba(0, 0, 0, 0.55),         /* ③ 第二道黑细线 */\n    inset 0 0 36px rgba(232, 200, 140, 0.14),    /* ④ 中央透暗金辉光 */\n    0 4px 18px rgba(0, 0, 0, 0.65) !important;   /* ⑤ 外阴影 */\n\n  position: relative !important;\n  overflow: hidden !important;\n}\n\n/* SVG 符号层 · ::before 伪元素 · 比父元素大 120px 留 transform 平移空间 */\n.bg-gray-100\\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\\/90)::before {\n  content: '';\n  position: absolute;\n  top: -120px;\n  left: -120px;\n  right: -120px;\n  bottom: -120px;\n  background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23c8a464' stroke-width='0.9' opacity='0.48'%3E%3Cpath d='M60 12 L66 48 L102 54 L66 60 L60 96 L54 60 L18 54 L54 48 Z'/%3E%3Ccircle cx='60' cy='54' r='28'/%3E%3Ccircle cx='60' cy='54' r='18'/%3E%3C/g%3E%3C/svg%3E\");\n  background-size: 120px 120px;\n  background-repeat: repeat;\n  pointer-events: none;\n  z-index: 0;\n  animation: dlwCharmDrift 6s linear infinite;\n  will-change: transform;\n}\n\n/* transform: translate 动画 · GPU 加速 · 跨平台稳定 */\n@keyframes dlwCharmDrift {\n  0%   { transform: translate(0, 0); }\n  100% { transform: translate(120px, 120px); }\n}\n\n/* v3.8.2 · 4 角 ornament 已移除（用户反馈：挡字） */\n\n/* 文字内容层 z-index 高于 ::before（让文字盖在符号上） */\n.bg-gray-100\\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\\/90) > * {\n  position: relative;\n  z-index: 1;\n}\n\n/* markdown-body · 透明 + 字距优化（v3.8） */\n.bg-gray-100\\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\\/90) .markdown-body {\n  background: transparent !important;\n  color: #fff5d8 !important;\n  letter-spacing: 0.10em !important;\n  line-height: 2.0 !important;\n}\n.bg-gray-100\\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\\/90) .markdown-body h1,\n.bg-gray-100\\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\\/90) .markdown-body h2,\n.bg-gray-100\\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\\/90) .markdown-body h3,\n.bg-gray-100\\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\\/90) .markdown-body h4 {\n  color: #f5d870 !important;\n  border-bottom-color: rgba(232, 201, 138, 0.42) !important;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.85), 0 0 12px rgba(232, 201, 138, 0.28) !important;\n  letter-spacing: 0.18em !important;\n}\n.bg-gray-100\\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\\/90) .markdown-body strong {\n  color: #e8c98a !important;\n}\n.bg-gray-100\\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\\/90) .markdown-body em {\n  color: #f5c870 !important;\n}\n\n/* v3.8.1 · 用户输入气泡内 markdown 段落间距（呼吸感） */\n.bg-gray-100\\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\\/90) .markdown-body p {\n  margin: 4px 0 !important;\n}\n.bg-gray-100\\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\\/90) .markdown-body h1,\n.bg-gray-100\\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\\/90) .markdown-body h2,\n.bg-gray-100\\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\\/90) .markdown-body h3 {\n  font-weight: 700 !important;\n  padding-bottom: 10px !important;\n  margin-bottom: 14px !important;\n}\n\n/* v3.8.1 · 用户输入气泡底部按钮（复制/编辑/删除/消耗详情）颜色覆盖\n   v3.6 PHASE 9 把按钮设成深棕色（适配浅底）· v3.8 深棕底下深棕字看不清 → 改浅金 */\n.bg-gray-100\\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\\/90) .MuiButtonBase-root.MuiButton-root.MuiButton-text.MuiButton-textPrimary {\n  color: rgba(232, 201, 138, 0.88) !important;\n}\n.bg-gray-100\\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\\/90) .MuiButtonBase-root.MuiButton-root.MuiButton-text.MuiButton-textPrimary:hover {\n  color: #f5d870 !important;\n  background: rgba(232, 200, 140, 0.18) !important;\n}\n/* 按钮 SVG 图标 · 跟随文字色 */\n.bg-gray-100\\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\\/90) .MuiButtonBase-root.MuiButton-root.MuiButton-text.MuiButton-textPrimary svg {\n  fill: currentColor !important;\n}\n/* 「消耗详情」前的橙色圆点 · v3.6 把 .text-orange-500 改成古铜，在深底依然太暗 → 提亮 */\n.bg-gray-100\\/90.relative.inline-block:not(.chat-answer-container .bg-gray-100\\/90) .text-orange-500 {\n  color: #f5c870 !important;\n}\n\n\n/* =====================================================================\n   PHASE 11 · 状态弹窗（v3.9 · 仿 BOSS BAR · CSS-only checkbox hack）\n   ---------------------------------------------------------------------\n   架构：<div class=\"dpanel\">\n           <input type=\"checkbox\" id=\"dlw-panel-XXXXXX\" class=\"dpanel-toggle\">\n           <label for=\"dlw-panel-XXXXXX\" class=\"dpanelbtn\">{玩家名} · 状态信息</label>\n           <div class=\"dpanel-popup\">\n             <div class=\"dprofile\">...</div>     ← ① 魂师档案\n             <div class=\"dcultivation\">...</div> ← ② 修为状态\n             <div class=\"drings\">...</div>       ← ③ 魂环\n             <div class=\"dskills\">...</div>      ← ④ 魂技\n             <div class=\"dbones\">...</div>       ← ⑤ 魂骨\n             <div class=\"dtools\">...</div>       ← ⑥ 背包\n           </div>\n         </div>\n\n   触发：用户点 .dpanelbtn → 切换隐藏的 input checked → :checked ~ .dpanel-popup\n         参考：BOSS builtInCss.css L3134-3148\n   ===================================================================== */\n\n/* 隐藏 checkbox 本体（仅作 toggle 开关） */\n.markdown-body .dpanel input[type=\"checkbox\"].dpanel-toggle {\n  display: none !important;\n  visibility: hidden;\n  position: absolute;\n}\n\n/* 底部按钮 · 浅羊皮纸 + 暗金边 + 朱砂强调 */\n.markdown-body .dpanelbtn {\n  display: block;\n  cursor: pointer;\n  padding: 14px 24px;\n  margin: 1em auto 0.3em;\n  text-align: center;\n  background:\n    linear-gradient(180deg, rgba(248, 235, 200, 0.92), rgba(232, 200, 140, 0.78)),\n    repeating-linear-gradient(135deg, transparent 0, transparent 6px, rgba(142, 106, 50, 0.04) 6px, rgba(142, 106, 50, 0.04) 7px);\n  border: 1.5px solid var(--dlw-gold-mid);\n  border-radius: var(--dlw-radius-md);\n  font-family: var(--dlw-font-title);\n  font-size: 1.06em;\n  font-weight: 700;\n  letter-spacing: 0.22em;\n  color: var(--dlw-ink-main);\n  user-select: none;\n  position: relative;\n  z-index: 2;\n  box-shadow:\n    inset 0 1px 0 rgba(253, 246, 227, 0.85),\n    inset 0 -1px 2px rgba(142, 106, 50, 0.22),\n    0 3px 10px rgba(106, 72, 24, 0.20);\n  transition: transform 0.18s, box-shadow 0.18s, background 0.18s;\n}\n/* 按钮前后的朱砂装饰图章 */\n.markdown-body .dpanelbtn::before {\n  content: \"❖ \";\n  color: var(--dlw-cinnabar);\n  font-weight: 600;\n  letter-spacing: 0;\n  margin-right: 4px;\n}\n.markdown-body .dpanelbtn::after {\n  content: \" ▾\";\n  color: var(--dlw-gold-deep);\n  font-weight: 400;\n  letter-spacing: 0;\n  margin-left: 6px;\n  transition: transform 0.24s ease;\n  display: inline-block;\n}\n/* 弹开状态按钮 · 箭头翻转 + 朱砂底色 */\n.markdown-body .dpanel input[type=\"checkbox\"].dpanel-toggle:checked ~ .dpanelbtn {\n  background:\n    linear-gradient(180deg, rgba(232, 200, 140, 0.88), rgba(232, 180, 100, 0.80));\n  box-shadow:\n    inset 0 1px 0 rgba(253, 246, 227, 0.85),\n    inset 0 -1px 2px rgba(106, 72, 24, 0.32),\n    0 0 18px var(--dlw-faction-glow);\n}\n.markdown-body .dpanel input[type=\"checkbox\"].dpanel-toggle:checked ~ .dpanelbtn::after {\n  transform: rotate(180deg);\n}\n.markdown-body .dpanelbtn:hover {\n  transform: translateY(-1px);\n  box-shadow:\n    inset 0 1px 0 rgba(253, 246, 227, 0.95),\n    0 0 16px var(--dlw-faction-glow);\n}\n.markdown-body .dpanelbtn:active { transform: translateY(0); }\n\n/* 弹窗本体 · 仿 BOSS BAR · absolute 浮起 · 默认隐藏 */\n.markdown-body .dpanel-popup {\n  display: none;\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: calc(100% + 12px);   /* 浮在按钮上方 12px */\n  z-index: 60;\n  max-width: 920px;\n  margin: 0 auto;\n  padding: 26px 24px 22px;\n  max-height: 70vh;\n  overflow-y: auto;\n  background:\n    linear-gradient(180deg, rgba(253, 246, 227, 0.50), rgba(245, 230, 195, 0.55)),\n    url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ZTL.png\") repeat;\n  background-size: auto, 100% auto;\n  border: 6px solid var(--dlw-gold-mid);\n  border-radius: 14px;\n  box-shadow:\n    inset 0 0 0 1px rgba(106, 72, 24, 0.55),\n    inset 0 0 0 3px rgba(253, 246, 227, 0.55),\n    inset 0 0 0 4px rgba(142, 106, 50, 0.42),\n    inset 0 0 36px rgba(232, 200, 140, 0.18),\n    0 14px 44px rgba(60, 36, 18, 0.55),\n    0 4px 18px rgba(60, 36, 18, 0.35);\n}\n/* 弹开 · 仿 BOSS BAR L3134-3140 */\n.markdown-body .dpanel input[type=\"checkbox\"].dpanel-toggle:checked ~ .dpanel-popup {\n  display: block;\n  animation: dlwPopupOpen 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);\n}\n\n/* 弹窗顶部装饰条 · 朱砂双线 + 古印 */\n.markdown-body .dpanel-popup::before {\n  content: \"❖  斗  罗  状  态  录  ❖\";\n  display: block;\n  text-align: center;\n  font-family: var(--dlw-font-title);\n  font-size: 1.18em;\n  font-weight: 700;\n  letter-spacing: 0.42em;\n  color: var(--dlw-cinnabar);\n  padding: 4px 0 12px;\n  margin-bottom: 16px;\n  border-bottom: 2px double rgba(142, 58, 42, 0.55);\n  text-shadow: 0 0 8px rgba(232, 180, 100, 0.45);\n}\n/* 弹窗底部封印线 */\n.markdown-body .dpanel-popup::after {\n  content: \"\";\n  display: block;\n  margin-top: 12px;\n  border-top: 1px solid rgba(142, 106, 50, 0.42);\n  border-bottom: 1px solid rgba(142, 106, 50, 0.32);\n  height: 2px;\n}\n\n/* === v3.24 弹窗内 6 段 · 统一 RPG 模块化卡片框架 === */\n.markdown-body .dpanel-popup > .dprofile,\n.markdown-body .dpanel-popup > .dcultivation,\n.markdown-body .dpanel-popup > .drings,\n.markdown-body .dpanel-popup > .dskills,\n.markdown-body .dpanel-popup > .dbones,\n.markdown-body .dpanel-popup > .dtools {\n  position: relative;\n  background:\n    linear-gradient(180deg, rgba(253, 246, 227, 0.94), rgba(245, 230, 195, 0.94)),\n    repeating-linear-gradient(0deg, transparent 0, transparent 32px, rgba(142, 106, 50, 0.02) 32px, rgba(142, 106, 50, 0.02) 33px);\n  border: 1px solid rgba(142, 106, 50, 0.45);\n  border-left: 4px solid var(--dlw-cinnabar);     /* 朱砂左竖线 · RPG 卡装饰 */\n  border-radius: 0 6px 6px 0;\n  padding: 42px 22px 18px 22px !important;        /* top 42px 给朱砂顶贴 chip 让位 */\n  margin: 0 0 16px 0 !important;\n  box-shadow:\n    inset 0 0 0 1px rgba(232, 200, 140, 0.38),\n    inset 0 1px 0 rgba(253, 246, 227, 0.78),\n    inset 0 -2px 4px rgba(106, 72, 24, 0.08),\n    0 3px 10px rgba(106, 72, 24, 0.18),\n    0 6px 18px rgba(60, 32, 14, 0.10);\n}\n/* 最后一段去 margin */\n.markdown-body .dpanel-popup > .dtools {\n  margin-bottom: 0 !important;\n}\n\n/* === 每段「朱砂顶贴标签」chip（覆盖原 PHASE 3-5 的块级标题）=== */\n.markdown-body .dpanel-popup > .dprofile::before,\n.markdown-body .dpanel-popup > .dcultivation::before,\n.markdown-body .dpanel-popup > .drings::before,\n.markdown-body .dpanel-popup > .dskills::before,\n.markdown-body .dpanel-popup > .dbones::before,\n.markdown-body .dpanel-popup > .dtools::before {\n  position: absolute !important;\n  top: -1px !important;\n  left: -4px !important;\n  display: block !important;\n  margin: 0 !important;\n  padding: 7px 18px 6px !important;\n  background: linear-gradient(180deg, var(--dlw-cinnabar), var(--dlw-cinnabar-dim)) !important;\n  color: #fef5d8 !important;\n  font-family: var(--dlw-font-title) !important;\n  font-size: 0.92em !important;\n  font-weight: 700 !important;\n  letter-spacing: 0.20em !important;\n  border: 1.5px solid var(--dlw-gold-bright) !important;\n  border-radius: 0 3px 3px 0 !important;\n  border-bottom-color: var(--dlw-gold-bright) !important;\n  box-shadow:\n    inset 0 0 0 1px rgba(253, 246, 227, 0.32),\n    inset 0 1px 0 rgba(253, 246, 227, 0.42),\n    0 2px 6px rgba(106, 72, 24, 0.42) !important;\n  text-shadow: 0 1px 0 var(--dlw-cinnabar-dim);\n  grid-column: unset !important;\n  z-index: 2;\n  width: auto !important;\n}\n/* 重新指定每段独立 chip 文字（覆盖 PHASE 3-5 旧 emoji 标题）*/\n.markdown-body .dpanel-popup > .dprofile::before     { content: \"❖  魂 师 档 案\" !important; }\n.markdown-body .dpanel-popup > .dcultivation::before { content: \"❖  修 为 状 态\" !important; }\n.markdown-body .dpanel-popup > .drings::before       { content: \"❖  魂  环  ·  \" attr(count) \"  环\" !important; }\n.markdown-body .dpanel-popup > .dskills::before      { content: \"❖  魂  技  ·  \" attr(count) \"  技\" !important; }\n.markdown-body .dpanel-popup > .dbones::before       { content: \"❖  魂  骨  ·  \" attr(count) \"  /  6\" !important; }\n.markdown-body .dpanel-popup > .dtools::before       { content: \"❖  背      包\" !important; }\n\n/* === v3.25 弹窗内 6 段排版精修（用户：位置摆放随意 + 字符条断行 + dbones 字色浅）=== */\n\n/* ① 字符进度条防断行 [████░░░░] / 100 */\n.markdown-body .dpanel-popup .dpowerbar,\n.markdown-body .dpanel-popup .dmental,\n.markdown-body .dpanel-popup .dstamina {\n  white-space: nowrap !important;\n  overflow: hidden !important;\n}\n\n/* ② dprofile 字段「金属 chip」label · 出身/开局位置 占整行（更易读）*/\n.markdown-body .dpanel-popup > .dprofile {\n  display: grid !important;\n  grid-template-columns: 1fr 1fr !important;\n  gap: 10px 16px !important;\n}\n.markdown-body .dpanel-popup > .dprofile .dfield {\n  display: flex !important;\n  align-items: baseline !important;\n  gap: 10px !important;\n  padding: 4px 0 !important;\n}\n.markdown-body .dpanel-popup > .dprofile .dfield::before {\n  display: inline-block !important;\n  padding: 3px 10px !important;\n  background: linear-gradient(180deg, rgba(232, 200, 140, 0.55), rgba(232, 180, 100, 0.42)) !important;\n  color: var(--dlw-gold-deep) !important;\n  border: 1px solid rgba(142, 106, 50, 0.55) !important;\n  border-radius: 3px !important;\n  font-family: var(--dlw-font-title) !important;\n  font-size: 0.82em !important;\n  font-weight: 700 !important;\n  letter-spacing: 0.16em !important;\n  min-width: 4.6em !important;\n  text-align: center !important;\n  flex-shrink: 0 !important;\n  box-shadow: inset 0 1px 0 rgba(253, 246, 227, 0.42), 0 1px 2px rgba(106, 72, 24, 0.18) !important;\n}\n.markdown-body .dpanel-popup > .dprofile .dfield[name=\"出身\"],\n.markdown-body .dpanel-popup > .dprofile .dfield[name=\"开局位置\"] {\n  grid-column: 1 / -1 !important;\n}\n\n/* ③ dcultivation 改 grid 2 列布局（v3.26 去除 v3.25 负 margin trick · 干净对齐）*/\n.markdown-body .dpanel-popup > .dcultivation {\n  display: grid !important;\n  grid-template-columns: 1fr 1fr !important;\n  gap: 12px !important;\n}\n/* 年龄 + 阶位：2 列 chip 等高 */\n.markdown-body .dpanel-popup > .dcultivation .dage,\n.markdown-body .dpanel-popup > .dcultivation .drank {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: flex-start !important;\n  gap: 10px !important;\n  padding: 10px 16px !important;\n  background: linear-gradient(180deg, rgba(232, 200, 140, 0.38), rgba(232, 180, 100, 0.28)) !important;\n  border: 1px solid rgba(142, 106, 50, 0.52) !important;\n  border-radius: 4px !important;\n  margin: 0 !important;\n  align-self: stretch !important;\n  box-shadow: inset 0 1px 0 rgba(253, 246, 227, 0.42), 0 1px 2px rgba(106, 72, 24, 0.18) !important;\n}\n/* 魂力槽全宽 */\n.markdown-body .dpanel-popup > .dcultivation > .dpowerbar {\n  grid-column: 1 / -1 !important;\n  margin: 0 !important;\n}\n/* 武魂状态全宽 · v3.31 修 padding-left 让图标不挤标签字 */\n.markdown-body .dpanel-popup > .dcultivation > .dspiritstatus {\n  grid-column: 1 / -1 !important;\n  padding: 10px 14px 10px 44px !important;   /* left 44px 给 24px 图标 + 留 10px 间距 */\n  background: rgba(232, 200, 140, 0.22) !important;\n  border-left: 3px solid var(--dlw-faction) !important;\n  border-radius: 0 4px 4px 0 !important;\n  font-size: 1.02em !important;\n  margin: 0 !important;\n}\n/* 图标位置同步调整 · 居中靠左 14px（border-left 3px 之后） */\n.markdown-body .dpanel-popup > .dcultivation > .dspiritstatus[data-icon]::after {\n  left: 14px !important;\n}\n/* 精神 + 体力 2 列 grid 自动占位 */\n.markdown-body .dpanel-popup > .dcultivation > .dmental,\n.markdown-body .dpanel-popup > .dcultivation > .dstamina {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: flex-start !important;\n  gap: 8px !important;\n  padding: 8px 14px !important;\n  background: rgba(232, 200, 140, 0.18) !important;\n  border: 1px solid rgba(142, 106, 50, 0.38) !important;\n  border-radius: 4px !important;\n  margin: 0 !important;\n  width: auto !important;\n  align-self: stretch !important;\n}\n\n/* v3.26 drank tier 颜色全深化（旧 PHASE 2 浅色在浅米底上看不清）*/\n.markdown-body .dpanel-popup > .dcultivation .drank[tier=\"warrior\"]     { color: #5a3a18 !important; }\n.markdown-body .dpanel-popup > .dcultivation .drank[tier=\"master\"]      { color: #8e5018 !important; }\n.markdown-body .dpanel-popup > .dcultivation .drank[tier=\"grandmaster\"] { color: #6a4818 !important; }\n.markdown-body .dpanel-popup > .dcultivation .drank[tier=\"venerable\"]   { color: #5a2890 !important; }\n.markdown-body .dpanel-popup > .dcultivation .drank[tier=\"sovereign\"]   { color: #3a1a58 !important; }\n.markdown-body .dpanel-popup > .dcultivation .drank[tier=\"king\"]        { color: #8e3a2a !important; }\n.markdown-body .dpanel-popup > .dcultivation .drank[tier=\"emperor\"]     { color: #b04030 !important; }\n.markdown-body .dpanel-popup > .dcultivation .drank[tier=\"saint\"]       { color: #6a4818 !important; font-weight: 700 !important; }\n.markdown-body .dpanel-popup > .dcultivation .drank[tier=\"douluo\"]      { color: #8e3a2a !important; font-weight: 700 !important; }\n.markdown-body .dpanel-popup > .dcultivation .drank[tier=\"titled\"]      { color: var(--dlw-cinnabar) !important; font-weight: 700 !important; text-shadow: 0 0 10px var(--dlw-faction-glow) !important; }\n\n/* ④ drings / dskills / dbones count=\"0\" 空状态 · 居中大字 */\n.markdown-body .dpanel-popup > .drings[count=\"0\"],\n.markdown-body .dpanel-popup > .dskills[count=\"0\"] {\n  min-height: 96px !important;\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  text-align: center !important;\n  font-family: var(--dlw-font-title) !important;\n  font-size: 1.02em !important;\n  color: var(--dlw-gold-deep) !important;\n  letter-spacing: 0.24em !important;\n  font-style: italic !important;\n  opacity: 0.78 !important;\n}\n.markdown-body .dpanel-popup > .drings[count=\"0\"] .dring,\n.markdown-body .dpanel-popup > .dskills[count=\"0\"] .dskill {\n  display: none !important;\n}\n\n/* ⑤ dbones grid 3 列均匀 + 部位名颜色深化 */\n.markdown-body .dpanel-popup > .dbones {\n  display: grid !important;\n  grid-template-columns: repeat(3, 1fr) !important;\n  gap: 10px !important;\n}\n.markdown-body .dpanel-popup > .dbones .dbone {\n  margin: 0 !important;\n  min-height: 88px !important;\n}\n.markdown-body .dpanel-popup > .dbones .dbone[state=\"empty\"] {\n  opacity: 1 !important;     /* 取消整体半透明 */\n  background:\n    var(--dlw-decor-bone) center / 40px 40px no-repeat,\n    linear-gradient(180deg, rgba(253, 246, 227, 0.65), rgba(245, 230, 195, 0.75)) !important;\n  filter: opacity(0.85);     /* 只对背景图弱化，不影响 ::before 文字 */\n}\n.markdown-body .dpanel-popup > .dbones .dbone::before {\n  color: var(--dlw-ink-main) !important;      /* 部位名深棕墨 · 替代浅金 */\n  font-weight: 700 !important;\n  font-size: 0.92em !important;\n  filter: opacity(1) !important;               /* 强制不透明（绕过父 filter）*/\n  position: relative;\n  z-index: 2;\n}\n\n/* ⑥ dtools 默认文本居中 · 有 .dtool 子级时由子级 align 覆盖（不用 :has() 避平台违规）*/\n.markdown-body .dpanel-popup > .dtools {\n  text-align: center !important;\n}\n.markdown-body .dpanel-popup > .dtools .dtool {\n  text-align: left !important;\n}\n\n\n/* 弹窗开启关键帧 · 从底部按钮位置升起 */\n@keyframes dlwPopupOpen {\n  0% {\n    opacity: 0;\n    transform: translateY(24px) scale(0.96);\n  }\n  60% {\n    opacity: 1;\n  }\n  100% {\n    opacity: 1;\n    transform: translateY(0) scale(1);\n  }\n}\n\n/* 弹窗内自定义 scrollbar（古铜风） */\n.markdown-body .dpanel-popup::-webkit-scrollbar {\n  width: 8px;\n}\n.markdown-body .dpanel-popup::-webkit-scrollbar-track {\n  background: rgba(232, 200, 140, 0.18);\n  border-radius: 4px;\n}\n.markdown-body .dpanel-popup::-webkit-scrollbar-thumb {\n  background: linear-gradient(180deg, var(--dlw-gold-mid), var(--dlw-gold-deep));\n  border-radius: 4px;\n  border: 1px solid rgba(106, 72, 24, 0.45);\n}\n.markdown-body .dpanel-popup::-webkit-scrollbar-thumb:hover {\n  background: linear-gradient(180deg, var(--dlw-gold-bright), var(--dlw-gold-mid));\n}\n\n/* 响应式 · 小屏弹窗占满气泡宽 */\n@media (max-width: 720px) {\n  .markdown-body .dpanel-popup {\n    padding: 18px 14px 14px;\n    border-width: 4px;\n    max-height: 78vh;\n  }\n  .markdown-body .dpanel-popup::before {\n    font-size: 1.05em;\n    letter-spacing: 0.28em;\n  }\n}\n\n/* reduced-motion · 关掉弹窗动画 */\n@media (prefers-reduced-motion: reduce) {\n  .markdown-body .dpanel input[type=\"checkbox\"].dpanel-toggle:checked ~ .dpanel-popup {\n    animation: none;\n  }\n  .markdown-body .dpanelbtn,\n  .markdown-body .dpanelbtn::after {\n    transition: none;\n  }\n}\n\n\n/* =====================================================================\n   PHASE 11 · v3.36 平台壳层美化(气泡外)\n   ---------------------------------------------------------------------\n   依据：04-reference/内置CSS与UI组件设计.txt v4.0.0 §2.3.2 - §2.3.13\n   原则：\n   · 颜色直接 hsl()/rgba() 写死，禁止变量(规范 §2.1)\n   · 所有声明加 !important\n   · 不重新定义 sticky/fixed/transform(平台原行为保留)\n   · 调性延续 v3.6 浅羊皮 + 暗金 + 朱砂\n   · 13 组按规范 §2.3.1-§2.3.13 顺序覆盖\n   · §2.3.1/§2.3.7 已在 v3.6 PHASE 9 完成，不重复\n   ===================================================================== */\n\n/* ==================== §2.3.2 全局与布局 ==================== */\n/* v3.37 · ZHENGWEN.png 蓝银草藤蔓羊皮纸统一全壳层(用户拍板)\n   规范 §4.2 禁 body/#root,仍只走 .h-screen */\n.h-screen {\n  background: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ZHENGWEN.png\") repeat !important;\n  background-size: 100% auto !important;\n}\n\n/* 顶部导航栏(header.sticky) · 透明 + 暗金细底线 [v3.38] */\n.sticky.w-full.top-0.flex.items-center {\n  background: transparent !important;\n  border-bottom: 1px solid rgba(106, 72, 24, 0.35) !important;\n  box-shadow: 0 2px 6px rgba(106, 72, 24, 0.10) !important;\n  color: hsl(20, 33%, 12%) !important;\n}\n\n/* ==================== §2.3.3 顶部导航 + 模型选择器 ==================== */\n/* 模型选择器容器(整个可点击区) */\n#ai-model-selector .group.flex.items-center {\n  color: hsl(20, 33%, 12%) !important;\n  cursor: pointer !important;\n  padding: 6px 12px !important;\n  border-radius: 8px !important;\n  transition: background-color 0.2s, color 0.2s !important;\n}\n#ai-model-selector .group.flex.items-center:hover {\n  background: rgba(142, 58, 42, 0.10) !important;\n  color: hsl(8, 54%, 36%) !important;\n}\n\n/* 模型名文字 · 古铜色 + 楷书 */\n#ai-model-selector .truncate.text-\\[13px\\] {\n  color: hsl(33, 64%, 25%) !important;\n  font-family: \"STKaiti\", \"KaiTi\", \"STZhongsong\", serif !important;\n  letter-spacing: 0.06em !important;\n}\n\n/* 模型名旁的下拉箭头 svg · 浅古铜 hover 朱砂 */\n#ai-model-selector .shrink-0.flex.items-center svg {\n  fill: hsl(35, 38%, 39%) !important;\n  transition: fill 0.2s !important;\n}\n#ai-model-selector .group.flex.items-center:hover .shrink-0.flex.items-center svg {\n  fill: hsl(8, 54%, 36%) !important;\n}\n\n/* 设置按钮(右上角齿轮) · 同上配色 */\n#header-setting-button {\n  color: hsl(35, 38%, 39%) !important;\n  border-radius: 8px !important;\n  padding: 8px !important;\n  transition: background-color 0.2s, color 0.2s !important;\n}\n#header-setting-button:hover {\n  background: rgba(142, 58, 42, 0.12) !important;\n  color: hsl(8, 54%, 36%) !important;\n}\n#header-setting-button svg {\n  fill: currentColor !important;\n}\n\n\n/* ==================== §2.3.4 开场白区域 ==================== */\n/* 开场白按钮容器 · 浅米底 + 暗金双线边 */\ndiv.flex.items-center.h-9.bg-white.rounded-md.cursor-pointer.group[class*=\"border-gray\"] {\n  background: hsl(43, 89%, 96%) !important;\n  border: 1px solid hsl(38, 48%, 38%) !important;\n  border-radius: 8px !important;\n  color: hsl(33, 64%, 25%) !important;\n  padding: 0 12px !important;\n  font-family: \"STKaiti\", \"KaiTi\", serif !important;\n  letter-spacing: 0.10em !important;\n  box-shadow: 0 1px 3px rgba(106, 72, 24, 0.12) !important;\n  transition: background-color 0.2s, border-color 0.2s, box-shadow 0.2s !important;\n}\ndiv.flex.items-center.h-9.bg-white.rounded-md.cursor-pointer.group[class*=\"border-gray\"]:hover {\n  background: hsl(40, 78%, 90%) !important;\n  border-color: hsl(8, 54%, 36%) !important;\n  box-shadow: 0 2px 8px rgba(142, 58, 42, 0.22) !important;\n  color: hsl(8, 54%, 36%) !important;\n}\n\n/* 开场白按钮内 SlidersH icon(左) */\ndiv.flex.items-center.h-9.cursor-pointer.group svg[data-icon=\"SlidersH\"] {\n  fill: hsl(35, 38%, 39%) !important;\n  transition: fill 0.2s !important;\n}\ndiv.flex.items-center.h-9.cursor-pointer.group:hover svg[data-icon=\"SlidersH\"] {\n  fill: hsl(8, 54%, 36%) !important;\n}\n\n/* 开场白按钮内 ChevronDown icon(右) */\ndiv.flex.items-center.h-9.cursor-pointer.group svg[data-icon=\"ChevronDown\"] {\n  fill: hsl(35, 38%, 39%) !important;\n  transition: fill 0.2s !important;\n}\ndiv.flex.items-center.h-9.cursor-pointer.group:hover svg[data-icon=\"ChevronDown\"] {\n  fill: hsl(8, 54%, 36%) !important;\n}\n\n\n/* ==================== §2.3.5 侧边栏 ==================== */\n/* 侧栏容器 · ZHENGWEN 平铺 + 右侧朱砂细线 + 暗金阴影 [v3.37] */\n.shadow-lg.border-r.border-gray-200 {\n  background: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ZHENGWEN.png\") repeat !important;\n  background-size: 100% auto !important;\n  border-right: 1.5px solid hsl(8, 54%, 36%) !important;\n  box-shadow: inset 0 0 0 1px rgba(232, 200, 140, 0.28), 2px 0 10px rgba(106, 72, 24, 0.18) !important;\n}\n\n/* 对话列表容器 */\n.MuiList-root {\n  background: transparent !important;\n  color: hsl(20, 33%, 12%) !important;\n  padding: 8px !important;\n}\n\n/* 单条对话项 · 默认副字色 hover 浅金辉 */\n.conversation-text {\n  color: hsl(33, 64%, 25%) !important;\n  padding: 10px 12px !important;\n  border-radius: 8px !important;\n  margin-bottom: 4px !important;\n  cursor: pointer !important;\n  font-family: \"STKaiti\", \"KaiTi\", serif !important;\n  letter-spacing: 0.04em !important;\n  border-left: 3px solid transparent !important;\n  transition: background-color 0.2s, color 0.2s, border-color 0.2s !important;\n}\n.conversation-text:hover {\n  background: hsl(40, 78%, 88%) !important;\n  color: hsl(8, 54%, 36%) !important;\n  border-left-color: hsl(38, 48%, 38%) !important;\n}\n\n\n/* ==================== §2.3.6 功能按钮(模组/工具) ==================== */\n/* 功能按钮容器 · 透明 + 顶部暗金细线 [v3.38] */\n#ai-mod-button2 {\n  background: transparent !important;\n  border-top: 1px solid rgba(106, 72, 24, 0.30) !important;\n  padding: 8px 16px !important;\n  display: flex !important;\n  gap: 8px !important;\n}\n\n/* 模组 / 工具 按钮 · 浅米底 + 暗金圆角 + 朱砂 hover */\n#ai-mod-button2 button.MuiButton-root {\n  background: hsl(43, 89%, 96%) !important;\n  color: hsl(33, 64%, 25%) !important;\n  border: 1px solid hsl(38, 48%, 38%) !important;\n  border-radius: 6px !important;\n  padding: 4px 12px !important;\n  font-size: 12px !important;\n  font-family: \"STKaiti\", \"KaiTi\", serif !important;\n  letter-spacing: 0.06em !important;\n  box-shadow: 0 1px 3px rgba(106, 72, 24, 0.12) !important;\n  transition: all 0.2s !important;\n}\n#ai-mod-button2 button.MuiButton-root:hover {\n  background: hsl(40, 78%, 90%) !important;\n  color: hsl(8, 54%, 36%) !important;\n  border-color: hsl(8, 54%, 36%) !important;\n  box-shadow: 0 2px 6px rgba(142, 58, 42, 0.20) !important;\n  transform: translateY(-1px) !important;\n}\n\n/* 功能按钮内 svg · 跟随文字色 */\n#ai-mod-button2 button.MuiButton-root svg {\n  fill: hsl(35, 38%, 39%) !important;\n  transition: fill 0.2s !important;\n}\n#ai-mod-button2 button.MuiButton-root:hover svg {\n  fill: hsl(8, 54%, 36%) !important;\n}\n\n\n/* ==================== §2.3.8 加载动画 · 纯 CSS 朱砂双珠 ==================== */\n/* 注：原计划用 SMIL SVG 三珠,因 CSS url() 内 SMIL 的分号(values='1;0.3;1')\n   会被部分浏览器/平台 CSS 解析器误判为规则终止,改用纯 CSS keyframes 双珠 */\n\n/* 隐藏平台默认 dot-flashing 文字 */\n.style_dot-flashing__8L91Q.style_text__zGhNq {\n  display: none !important;\n}\n\n/* 加载容器 · 相对定位 */\n.flex.items-center.justify-center.w-6.h-5 {\n  position: relative !important;\n  width: 36px !important;\n  height: 12px !important;\n}\n\n/* 朱砂双珠 · ::before 左 + ::after 右,错位呼吸 */\n.flex.items-center.justify-center.w-6.h-5::before,\n.flex.items-center.justify-center.w-6.h-5::after {\n  content: '' !important;\n  position: absolute !important;\n  top: 50% !important;\n  width: 7px !important;\n  height: 7px !important;\n  border-radius: 50% !important;\n  background: hsl(8, 54%, 42%) !important;\n  box-shadow: 0 0 4px rgba(142, 58, 42, 0.32) !important;\n  transform: translateY(-50%) !important;\n  animation: dlwLoadPulse 1.2s ease-in-out infinite !important;\n}\n.flex.items-center.justify-center.w-6.h-5::before {\n  left: 4px !important;\n}\n.flex.items-center.justify-center.w-6.h-5::after {\n  left: 24px !important;\n  animation-delay: 0.4s !important;\n}\n@keyframes dlwLoadPulse {\n  0%, 100% { opacity: 0.3; transform: translateY(-50%) scale(0.85); }\n  50%      { opacity: 1.0; transform: translateY(-50%) scale(1.05); }\n}\n\n\n/* ==================== §2.3.9 底部输入区 ==================== */\n/* 输入区上方渐变遮罩 · 浅米色虚化,与下方输入区接续 */\n/* 输入区上方渐变遮罩 · 完全透明(让藤蔓直透到输入框边) [v3.39] */\n.bg-gradient-to-t {\n  background: transparent !important;\n}\n\n/* 底部输入容器 · 透明 + 顶部暗金细边 [v3.38] */\n#ai-chat-bottom-input {\n  background: transparent !important;\n  border-top: 1px solid rgba(106, 72, 24, 0.30) !important;\n  padding: 12px 16px !important;\n  box-shadow: 0 -2px 6px rgba(106, 72, 24, 0.08) !important;\n}\n\n/* 输入框选区色 · 朱砂晕 */\n#ai-chat-input::selection,\ntextarea.rc-textarea::selection {\n  background: rgba(142, 58, 42, 0.30) !important;\n  color: hsl(20, 33%, 12%) !important;\n}\n\n/* 输入框聚焦态 · 朱砂边外发光 */\n#ai-chat-input:focus,\n#ai-chat-bottom-input:focus,\ntextarea.rc-textarea:focus {\n  outline: none !important;\n  border-color: hsl(8, 54%, 36%) !important;\n  box-shadow: 0 0 0 2px rgba(142, 58, 42, 0.32),\n              0 0 12px rgba(142, 58, 42, 0.18) !important;\n}\n\n/* 发送按钮 · 朱砂渐变底 + 米色字 + 暗金高光 */\n#ai-send-button {\n  background: linear-gradient(135deg, hsl(8, 54%, 42%), hsl(8, 54%, 30%)) !important;\n  color: hsl(43, 89%, 96%) !important;\n  border: none !important;\n  border-radius: 12px !important;\n  padding: 10px 22px !important;\n  font-family: \"STSong\", \"Source Han Serif SC\", serif !important;\n  font-size: 14px !important;\n  font-weight: 600 !important;\n  letter-spacing: 0.16em !important;\n  cursor: pointer !important;\n  box-shadow:\n    inset 0 1px 0 rgba(232, 200, 140, 0.55),\n    inset 0 0 0 1px rgba(232, 200, 140, 0.28),\n    0 3px 10px rgba(142, 58, 42, 0.32) !important;\n  transition: all 0.18s !important;\n}\n#ai-send-button:hover {\n  background: linear-gradient(135deg, hsl(8, 60%, 48%), hsl(8, 60%, 35%)) !important;\n  box-shadow:\n    inset 0 1px 0 rgba(232, 200, 140, 0.65),\n    inset 0 0 0 1px rgba(232, 200, 140, 0.42),\n    0 4px 14px rgba(142, 58, 42, 0.42),\n    0 0 0 3px rgba(232, 200, 140, 0.22) !important;\n  transform: translateY(-1px) !important;\n}\n#ai-send-button:active {\n  transform: translateY(1px) !important;\n  box-shadow:\n    inset 0 2px 4px rgba(0, 0, 0, 0.32),\n    0 1px 4px rgba(142, 58, 42, 0.22) !important;\n}\n\n\n/* ==================== §2.3.10 评论区与评分 ==================== */\n/* 评论区容器 · 浅米底 + 顶部暗金线 */\ndiv[class*=\"w-full\"][class*=\"bg-white\"][class*=\"bottom-0\"] {\n  background: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ZHENGWEN.png\") repeat !important;\n  background-size: 100% auto !important;\n  border-top: 1.5px solid hsl(38, 48%, 38%) !important;\n  box-shadow: inset 0 0 0 1px rgba(232, 200, 140, 0.28) !important;\n  padding: 16px !important;\n  color: hsl(20, 33%, 12%) !important;\n}\n\n/* 评论区大标题(评论) · 朱砂方印感 */\ndiv.text-lg.font-bold {\n  color: hsl(20, 33%, 12%) !important;\n  font-family: \"STSong\", \"Source Han Serif SC\", serif !important;\n  font-size: 18px !important;\n  font-weight: 700 !important;\n  letter-spacing: 0.20em !important;\n  padding-bottom: 8px !important;\n  border-bottom: 1px solid rgba(142, 106, 50, 0.32) !important;\n  margin-bottom: 12px !important;\n}\n\n/* 副文字(body1 灰) · 古铜副字 */\np.MuiTypography-body1.text-grey-600 {\n  color: hsl(33, 64%, 25%) !important;\n  font-family: \"STKaiti\", \"KaiTi\", serif !important;\n}\n\n/* 评分整体 */\nspan.MuiRating-root {\n  display: inline-flex !important;\n  gap: 2px !important;\n  align-items: center !important;\n}\n\n/* 评分空星 · 浅古铜 */\nspan.MuiRating-iconEmpty svg {\n  fill: hsl(35, 38%, 56%) !important;\n  opacity: 0.45 !important;\n}\n\n/* 评分实星 · 朱砂(放弃 drop-shadow,规范禁 filter 家族) */\nspan.MuiRating-iconFilled svg {\n  fill: hsl(8, 60%, 38%) !important;\n}\n\n/* token 消耗 / orange-500 · 朱砂(规范要求统一改 accent) */\n/* 注：§2.3.1 PHASE 9 已覆盖此选择器,此处保持相同朱砂调,声明不冲突 */\nspan.text-orange-500 {\n  color: hsl(8, 54%, 42%) !important;\n  font-family: \"STKaiti\", \"KaiTi\", serif !important;\n  font-size: 12px !important;\n}\n\n/* 评论输入容器(评论框外圈) · 暗金边 */\ndiv.flex.flex-col.border-gray-200 {\n  border: 1px solid hsl(38, 48%, 38%) !important;\n  border-radius: 8px !important;\n  background: hsl(43, 89%, 94%) !important;\n  padding: 12px !important;\n  box-shadow: inset 0 1px 3px rgba(106, 72, 24, 0.10) !important;\n}\n\n/* 灰色背景项 · 浅羊皮抬升态 */\ndiv.bg-gray-100.text-gray-500 {\n  background: hsl(40, 53%, 88%) !important;\n  color: hsl(35, 5%, 56%) !important;\n  border-radius: 6px !important;\n}\n\n/* 可点击容器(评论操作按钮) · hover 朱砂晕 */\ndiv.cursor-pointer.group.flex.items-center.justify-center {\n  background: transparent !important;\n  border-radius: 6px !important;\n  padding: 6px !important;\n  transition: background-color 0.2s, color 0.2s !important;\n}\ndiv.cursor-pointer.group.flex.items-center.justify-center:hover {\n  background: rgba(142, 58, 42, 0.12) !important;\n}\n\n/* 发送图标(评论提交) · 朱砂 */\ndiv[data-state=\"closed\"] svg[data-icon=\"Send03\"] {\n  fill: hsl(8, 54%, 42%) !important;\n  transition: fill 0.2s, transform 0.2s !important;\n}\ndiv[data-state=\"closed\"]:hover svg[data-icon=\"Send03\"] {\n  fill: hsl(8, 60%, 50%) !important;\n  transform: translateX(2px) !important;\n}\n\n/* 分隔线 · 朱砂书页符装饰 */\ndiv.style_divider__mW0YX {\n  position: relative !important;\n  height: auto !important;\n  background: transparent !important;\n  margin: 20px 0 !important;\n  border-top: 1px solid rgba(142, 106, 50, 0.32) !important;\n  border-bottom: 1px solid rgba(142, 58, 42, 0.32) !important;\n  padding: 8px 0 !important;\n}\ndiv.style_divider__mW0YX::before {\n  content: '❖  ❖  ❖' !important;\n  display: block !important;\n  text-align: center !important;\n  color: hsl(8, 54%, 42%) !important;\n  font-size: 11px !important;\n  letter-spacing: 0.5em !important;\n  font-family: \"STSong\", serif !important;\n}\n\n/* MuiStack 间距 */\n.MuiStack-root.css-1dmzxoz {\n  gap: 8px !important;\n}\n\n/* 发布评论按钮(containedPrimary) · 朱砂渐变 + 米色字(同 #ai-send-button 风格) */\nbutton.MuiButton-containedPrimary {\n  background: linear-gradient(135deg, hsl(8, 54%, 42%), hsl(8, 54%, 30%)) !important;\n  color: hsl(43, 89%, 96%) !important;\n  border: none !important;\n  border-radius: 8px !important;\n  padding: 6px 18px !important;\n  font-family: \"STSong\", serif !important;\n  font-size: 13px !important;\n  font-weight: 600 !important;\n  letter-spacing: 0.14em !important;\n  box-shadow:\n    inset 0 1px 0 rgba(232, 200, 140, 0.55),\n    0 2px 6px rgba(142, 58, 42, 0.28) !important;\n  transition: all 0.18s !important;\n}\nbutton.MuiButton-containedPrimary:hover {\n  background: linear-gradient(135deg, hsl(8, 60%, 48%), hsl(8, 60%, 35%)) !important;\n  box-shadow:\n    inset 0 1px 0 rgba(232, 200, 140, 0.65),\n    0 3px 10px rgba(142, 58, 42, 0.38) !important;\n  transform: translateY(-1px) !important;\n}\n\n/* 轮廓按钮(outlinedPrimary) · 朱砂边 + 朱砂字 */\nbutton.MuiButton-outlinedPrimary {\n  background: transparent !important;\n  color: hsl(8, 54%, 42%) !important;\n  border: 1.5px solid hsl(8, 54%, 42%) !important;\n  border-radius: 8px !important;\n  padding: 6px 18px !important;\n  font-family: \"STSong\", serif !important;\n  font-size: 13px !important;\n  letter-spacing: 0.14em !important;\n  transition: all 0.18s !important;\n}\nbutton.MuiButton-outlinedPrimary:hover {\n  background: rgba(142, 58, 42, 0.12) !important;\n  color: hsl(8, 60%, 35%) !important;\n  border-color: hsl(8, 60%, 35%) !important;\n}\n\n/* 评论列表容器 · 透明 */\ndiv.p-3.overflow-y-auto {\n  background: transparent !important;\n}\n\n/* 评论项 · 浅米底 + 朱砂左线 */\ndiv.group.ml-0 {\n  background: hsl(43, 89%, 94%) !important;\n  border-left: 3px solid hsl(8, 54%, 42%) !important;\n  border-radius: 0 8px 8px 0 !important;\n  padding: 10px 14px !important;\n  margin-bottom: 10px !important;\n  box-shadow: 0 1px 3px rgba(106, 72, 24, 0.10) !important;\n  transition: box-shadow 0.2s, transform 0.2s !important;\n}\ndiv.group.ml-0:hover {\n  box-shadow: 0 3px 8px rgba(142, 58, 42, 0.18) !important;\n  transform: translateX(2px) !important;\n}\n\n/* 评论头像 · 圆形 + 2px 朱砂边 */\ndiv.group img.rounded-full {\n  border: 2px solid hsl(8, 54%, 42%) !important;\n  box-shadow: 0 1px 4px rgba(142, 58, 42, 0.22) !important;\n}\n\n/* 评论作者名加粗 · 深棕墨 */\ndiv.text-sm.text-grey-600 span.font-bold {\n  color: hsl(20, 33%, 12%) !important;\n  font-family: \"STSong\", serif !important;\n  letter-spacing: 0.06em !important;\n}\n\n/* 时间戳(10px) · 浅古铜 */\nspan.text-\\[10px\\] {\n  color: hsl(35, 5%, 56%) !important;\n  font-family: \"STKaiti\", serif !important;\n  letter-spacing: 0.04em !important;\n}\n\n/* 评论正文 break-all · 继承 */\ndiv.break-all {\n  color: hsl(33, 64%, 25%) !important;\n  font-family: \"STKaiti\", \"KaiTi\", serif !important;\n  line-height: 1.7 !important;\n}\n\n/* 评论副信息(text-xs) · 古铜副字 */\ndiv.text-xs.text-grey-600 {\n  color: hsl(33, 64%, 35%) !important;\n  font-family: \"STKaiti\", serif !important;\n}\n\n/* 灰色按钮(操作 / 取消等) · hover 朱砂 */\nbutton.text-gray-400 {\n  color: hsl(35, 5%, 56%) !important;\n  background: transparent !important;\n  border: none !important;\n  padding: 4px 8px !important;\n  border-radius: 6px !important;\n  transition: color 0.2s, background-color 0.2s !important;\n}\nbutton.text-gray-400:hover {\n  color: hsl(8, 54%, 42%) !important;\n  background: rgba(142, 58, 42, 0.10) !important;\n}\nbutton.text-gray-400 svg {\n  fill: currentColor !important;\n}\n\n/* 可点击 span · hover 朱砂 */\nspan.cursor-pointer {\n  color: hsl(33, 64%, 25%) !important;\n  transition: color 0.2s !important;\n}\nspan.cursor-pointer:hover {\n  color: hsl(8, 54%, 42%) !important;\n}\n\n/* 回复嵌套链 · 朱砂左线 */\ndiv.ml-8.border-l {\n  border-left: 2px solid hsl(8, 54%, 42%) !important;\n  padding-left: 12px !important;\n  margin-left: 32px !important;\n}\n\n\n/* ==================== §2.3.11 分页 ==================== */\n/* 默认页码 · 浅古铜字 + 暗金细边 */\n.MuiPaginationItem-root {\n  background: transparent !important;\n  color: hsl(33, 64%, 25%) !important;\n  border: 1px solid hsl(38, 48%, 38%) !important;\n  border-radius: 6px !important;\n  min-width: 32px !important;\n  height: 32px !important;\n  font-family: \"STKaiti\", \"KaiTi\", serif !important;\n  font-size: 13px !important;\n  transition: all 0.2s !important;\n}\n.MuiPaginationItem-root:hover {\n  background: rgba(142, 58, 42, 0.10) !important;\n  border-color: hsl(8, 54%, 42%) !important;\n  color: hsl(8, 54%, 42%) !important;\n}\n\n/* 选中页 · 朱砂底 + 米色字 + 暗金辉 */\n.MuiPaginationItem-root.Mui-selected {\n  background: linear-gradient(135deg, hsl(8, 54%, 42%), hsl(8, 54%, 32%)) !important;\n  color: hsl(43, 89%, 96%) !important;\n  border-color: hsl(8, 60%, 35%) !important;\n  font-weight: 700 !important;\n  box-shadow: 0 0 8px rgba(142, 58, 42, 0.32) !important;\n}\n\n/* 禁用页 · 半透明 */\n.MuiPaginationItem-root.Mui-disabled {\n  opacity: 0.4 !important;\n  cursor: not-allowed !important;\n}\n\n/* 翻页箭头图标 · 浅古铜 */\n.MuiPaginationItem-icon {\n  fill: hsl(35, 38%, 39%) !important;\n}\n\n/* 分页间距 */\n.MuiStack-root.css-1uwir8f {\n  gap: 6px !important;\n}\n\n/* MUI 输入基础(用于评论 / 表单 etc) · 浅米底 */\n.MuiInputBase-input {\n  background: hsl(43, 89%, 94%) !important;\n  color: hsl(20, 33%, 12%) !important;\n  border: 1px solid hsl(38, 48%, 38%) !important;\n  border-radius: 6px !important;\n  padding: 8px 12px !important;\n  font-family: \"STKaiti\", \"KaiTi\", serif !important;\n}\n\n\n/* ==================== §2.3.12 MUI 全局组件 ==================== */\n/* 通用按钮 · 圆角过渡(已被局部 override 覆盖,此为兜底) */\n.MuiButton-root,\n.MuiButton-contained,\n.MuiButton-outlined {\n  border-radius: 8px !important;\n  font-family: \"STKaiti\", \"KaiTi\", serif !important;\n  letter-spacing: 0.06em !important;\n  transition: all 0.2s !important;\n}\n\n/* 图标按钮 · 透明 hover 朱砂晕 */\n.MuiIconButton-root {\n  background: transparent !important;\n  color: hsl(35, 38%, 39%) !important;\n  border-radius: 8px !important;\n  padding: 8px !important;\n  transition: background-color 0.2s, color 0.2s !important;\n}\n.MuiIconButton-root:hover {\n  background: rgba(142, 58, 42, 0.12) !important;\n  color: hsl(8, 54%, 42%) !important;\n}\n.MuiIconButton-root svg {\n  fill: currentColor !important;\n}\n\n/* 弹窗(Dialog) · ZHENGWEN 平铺 + 暗金边 + 古铜阴影 [v3.37] */\n.MuiDialog-paper {\n  background: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ZHENGWEN.png\") repeat !important;\n  background-size: 100% auto !important;\n  color: hsl(20, 33%, 12%) !important;\n  border: 1.5px solid hsl(38, 48%, 38%) !important;\n  border-radius: 12px !important;\n  box-shadow:\n    0 8px 32px rgba(106, 72, 24, 0.42),\n    inset 0 0 0 1px rgba(232, 200, 140, 0.42) !important;\n  padding: 20px !important;\n}\n\n/* 抽屉(Drawer · 会话切换/设置面板) · ZHENGWEN 平铺 + 朱砂右线 [v3.37] */\n.MuiDrawer-paper {\n  background: url(\"https://pub-9d6bdad64d9843408b43668779a4de1a.r2.dev/DOULUO/ZHENGWEN.png\") repeat !important;\n  background-size: 100% auto !important;\n  color: hsl(20, 33%, 12%) !important;\n  border-right: 1.5px solid hsl(8, 54%, 42%) !important;\n  box-shadow: inset 0 0 0 1px rgba(232, 200, 140, 0.28), 2px 0 16px rgba(106, 72, 24, 0.28) !important;\n}\n\n/* 遮罩(Backdrop · 弹窗背后) · 深棕半透明 */\n/* 注：规范禁任何模糊滤镜声明,仅设 background */\n.MuiBackdrop-root {\n  background: rgba(58, 36, 24, 0.55) !important;\n}\n\n/* 分隔线(Divider) · 暗金 */\n.MuiDivider-root {\n  background: hsl(38, 48%, 38%) !important;\n  border-color: hsl(38, 48%, 38%) !important;\n  opacity: 0.42 !important;\n}\n\n/* 通用排版 · 继承当前颜色 */\n.MuiTypography-root {\n  color: inherit !important;\n  font-family: \"STKaiti\", \"KaiTi\", serif !important;\n}\n\n/* 评分图标尺寸 */\n.MuiRating-icon {\n  font-size: 1.05rem !important;\n}\n\n/* OutlinedInput · 边框暗金 hover 朱砂 */\n.MuiOutlinedInput-root,\n.MuiOutlinedInput-notchedOutline {\n  border-color: hsl(38, 48%, 38%) !important;\n  border-radius: 8px !important;\n  transition: border-color 0.2s !important;\n}\n.MuiOutlinedInput-root:hover .MuiOutlinedInput-notchedOutline {\n  border-color: hsl(8, 54%, 42%) !important;\n}\n\n/* 涟漪效果(点击波纹) · 朱砂 */\n.MuiTouchRipple-root {\n  color: hsl(8, 54%, 42%) !important;\n}\n\n\n/* ==================== §2.3.13 响应式 + 降速 ==================== */\n/* 移动端适配(≤ 480px) · 调小字号 / 内边距 */\n@media (max-width: 480px) {\n  /* 顶部导航栏 · 字号缩小 */\n  #ai-model-selector .truncate.text-\\[13px\\] {\n    font-size: 12px !important;\n  }\n  #ai-model-selector .group.flex.items-center {\n    padding: 4px 8px !important;\n  }\n  #header-setting-button {\n    padding: 6px !important;\n  }\n\n  /* 开场白按钮 · 减小内边距 */\n  div.flex.items-center.h-9.bg-white.rounded-md.cursor-pointer.group[class*=\"border-gray\"] {\n    padding: 0 8px !important;\n    font-size: 12px !important;\n  }\n\n  /* 底部输入区 · 减小内边距 */\n  #ai-chat-bottom-input {\n    padding: 10px 12px !important;\n  }\n\n  /* 发送按钮 · 缩短 */\n  #ai-send-button {\n    padding: 8px 14px !important;\n    font-size: 13px !important;\n    letter-spacing: 0.10em !important;\n  }\n\n  /* 功能按钮 · 缩小 */\n  #ai-mod-button2 button.MuiButton-root {\n    padding: 3px 8px !important;\n    font-size: 11px !important;\n  }\n\n  /* 评论区 · 头像缩小 + 评论项内边距减小 */\n  div.group img.rounded-full {\n    width: 32px !important;\n    height: 32px !important;\n  }\n  div.group.ml-0 {\n    padding: 8px 10px !important;\n    margin-bottom: 8px !important;\n  }\n  div.ml-8.border-l {\n    margin-left: 20px !important;\n    padding-left: 8px !important;\n  }\n\n  /* 评论区大标题 · 字号缩小 */\n  div.text-lg.font-bold {\n    font-size: 16px !important;\n    letter-spacing: 0.16em !important;\n  }\n\n  /* 侧栏对话项 · 减小 */\n  .conversation-text {\n    padding: 8px 10px !important;\n    font-size: 13px !important;\n  }\n}\n\n/* 降速兜底(prefers-reduced-motion) · 关闭非必要动效 */\n@media (prefers-reduced-motion: reduce) {\n  /* 取消按钮 / 链接 transition + transform */\n  #ai-send-button,\n  #ai-send-button:hover,\n  #ai-send-button:active,\n  button.MuiButton-containedPrimary,\n  button.MuiButton-containedPrimary:hover,\n  button.MuiButton-outlinedPrimary,\n  button.MuiButton-outlinedPrimary:hover,\n  #ai-mod-button2 button.MuiButton-root,\n  #ai-mod-button2 button.MuiButton-root:hover,\n  div.flex.items-center.h-9.bg-white.rounded-md.cursor-pointer.group[class*=\"border-gray\"],\n  div.flex.items-center.h-9.bg-white.rounded-md.cursor-pointer.group[class*=\"border-gray\"]:hover,\n  div.group.ml-0,\n  div.group.ml-0:hover,\n  .MuiPaginationItem-root,\n  .MuiPaginationItem-root:hover {\n    transition: none !important;\n    transform: none !important;\n  }\n\n  /* SMIL SVG 动画 · 不能禁(content url 已内嵌),用透明度降低替代 */\n  .flex.items-center.justify-center.w-6.h-5::before {\n    opacity: 0.6 !important;\n  }\n\n  /* 通用 svg fill transition 取消 */\n  #ai-model-selector .shrink-0.flex.items-center svg,\n  #ai-mod-button2 button.MuiButton-root svg,\n  .MuiPaginationItem-icon,\n  div[data-state=\"closed\"] svg[data-icon=\"Send03\"] {\n    transition: none !important;\n  }\n}\n\n/*\n   ==================== WCAG AA 对比度自检(v3.36) ====================\n   全部用直接 hsl() 值,无 var()。主要文本 vs 主要背景:\n   · body 底 hsl(43,89%,94%) vs 主字 hsl(20,33%,12%)  → ~15.2:1 (PASS)\n   · 顶部导航 hsl(40,53%,88%) vs 主字 hsl(20,33%,12%)  → ~13.8:1 (PASS)\n   · 侧栏底 hsl(40,53%,92%) vs 副字 hsl(33,64%,25%)    → ~10.5:1 (PASS)\n   · 朱砂按钮 hsl(8,54%,42%) vs 米色 hsl(43,89%,96%)   → ~7.8:1  (PASS)\n   · 评论项 hsl(43,89%,94%) vs 古铜字 hsl(33,64%,25%)  → ~12.0:1 (PASS)\n   · placeholder hsl(35,5%,56%) vs 浅米 hsl(43,89%,94%)→ ~4.6:1  (PASS · 最低)\n   全部超过 WCAG AA 4.5:1 要求。\n   ================================================================\n*/\n\n","options":{"items":[]},"language":"zh","containsNSFW":true,"publicAccess":true,"deletedAt":null,"isAnonymous":false,"enableSafeguard":false,"defaultModelSettings":null,"totalConversations":44,"totalMessages":242,"totalCreditsUsed":301649,"totalTokensUsed":6270882,"totalPlayedUsers":44,"deeplyPlayed":3,"fixedPromptLength":14379,"lorebookLength":30513,"author":{"id":"LTahGZAvyQgJSBbbpA4NzaO9y8kiwM77","name":"找十个作者讨饭吃","displayUsername":"lanlan","username":"lanlan"},"cardsTags":[{"tag":{"name":"超高自由度","cardsCount":982}},{"tag":{"name":"开放大世界","cardsCount":215}},{"tag":{"name":"可剧情可涩涩","cardsCount":2460}},{"tag":{"name":"巅峰决战","cardsCount":123}},{"tag":{"name":"开放世界","cardsCount":1289}},{"tag":{"name":"自由探索","cardsCount":1082}}],"cardsVoices":[],"prompt":null,"promptSizeBytes":null}