{"id":"d84c9479-6953-4be0-8c7d-97f1752eb858","authorId":"j1ANNvV1JdcHoo9SXoAWWuH0n70zAPuZ","title":"轮回乐园|诸界乱入|魔改【全角色CG，300张高清精品CG图】","description":"当乐园的大门向所有世界敞开，故事就此开始。🌀\n150位角色，来自动漫、原创世界与神秘乐园深处，各有立绘，女性角色皆有专属特殊CG。✨\n每一位背后都有超过4000字的专属设定支撑——她们不是摆设，是真正活着的存在。📖\n战场上，原著级别的战斗描写让每一场厮杀都有重量；⚔️\n私下里，扶她、百合、各种你想象得到与想象不到的玩法，一样都不少。🔞💦\n升级、探索、解锁——每一个阶位都是通往新世界的钥匙。🗝️\n你不知道下一扇门后站着谁，但你知道，这里永远有新的故事在等你。🚪✨","background":"c3fwxgs9t32yw94zunmjybai.webp","backgroundWidth":2304,"backgroundHeight":1536,"cover":"qkj64johybi723ugabysipb8.webp","coverWidth":2304,"coverHeight":1536,"introPage":"qq1qy42bbwi58g8jdvhuvoec.html","changelog":"","createdAt":"2026-08-03T05:11:04.616Z","updatedAt":"2026-08-17T16:07:21.406Z","initPublicAt":"2026-08-17T15:52:47.807Z","renderTemplate":null,"assistantRegexReplace":[{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@RL\\|([^\\]]*)\\]/g","replaceString":"<div class=\"rlmain\"><input type=\"radio\" class=\"rlrd rlr0\" name=\"rlnav$1\" id=\"rlp0-$1\"><input type=\"radio\" class=\"rlrd rlr1\" name=\"rlnav$1\" id=\"rlp1-$1\"><input type=\"radio\" class=\"rlrd rlr2\" name=\"rlnav$1\" id=\"rlp2-$1\"><input type=\"radio\" class=\"rlrd rlr3\" name=\"rlnav$1\" id=\"rlp3-$1\"><input type=\"radio\" class=\"rlrd rlr4\" name=\"rlnav$1\" id=\"rlp4-$1\"><input type=\"radio\" class=\"rlrd rlr5\" name=\"rlnav$1\" id=\"rlp5-$1\"><input type=\"radio\" class=\"rlrd rlrx\" name=\"rlnav$1\" id=\"rlpx-$1\"><input type=\"checkbox\" class=\"rlck rlac2\" id=\"rlac-$1\"><input type=\"checkbox\" class=\"rlck rlst2\" id=\"rlset-$1\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@RL\\|([^\\]]*)\\]/g","replaceString":"<div class=\"rlnavbar\"><label class=\"rlbtn rlb0\" for=\"rlp0-$1\"><i></i><span>主角信息</span></label><label class=\"rlbtn rlb1\" for=\"rlp1-$1\"><i></i><span>互动角色</span></label><label class=\"rlbtn rlb2\" for=\"rlp2-$1\"><i></i><span>联络平台</span></label><label class=\"rlbtn rlb3\" for=\"rlp3-$1\"><i></i><span>地区任务</span></label><label class=\"rlbtn rlb4\" for=\"rlp4-$1\"><i></i><span>关系网</span></label><label class=\"rlbtn rlb5\" for=\"rlp5-$1\"><i></i><span>过往记忆</span></label></div><label class=\"rlmask\" for=\"rlset-$1\"></label></div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@WL\\]([\\s\\S]*?)\\[\\/@WL\\]/g","replaceString":"<wldata>$1</wldata>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@ANC\\|([^\\]]*)\\]/g","replaceString":"<anchor class=\"rlanchor\">$1</anchor>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@TOP\\|([^|]*)\\|([^|]*)\\|([^|]*)\\|([^|]*)\\|([^\\]]*)\\]/g","replaceString":"<div class=\"rltop\"><div class=\"rlsigil\"></div><div class=\"rlslot rltime\"><i></i><u><s>TIME</s><b>$1</b></u></div><div class=\"rlslot rlwrap\"><w w=\"$2\" t=\"$3\"></w></div><div class=\"rlslot rlloc\"><i></i><u><s>LOCATION</s><b>$4</b></u></div><label class=\"rlsetbtn\" for=\"rlset-$5\"></label></div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@VIEW\\]/g","replaceString":"<div class=\"rlview\"><div class=\"rlbody\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@VIEW\\]/g","replaceString":"</div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@STG\\|([^\\]]*)\\]/g","replaceString":"<div class=\"rlstage\"><div class=\"rlsthd\"><i></i><b></b><label class=\"rlstclose\" for=\"rlpx-$1\"></label></div><div class=\"rlstbd\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@STG\\]/g","replaceString":"</div></div></div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@P0\\|([^\\]]*)\\]/g","replaceString":"<div class=\"rlpn rlp0\"><div class=\"rlsecbar\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@P0\\]/g","replaceString":"<div class=\"rlpn rlp0\"><div class=\"rlsecbar\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@P0\\]/g","replaceString":"</div></div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@P1\\|([^\\]]*)\\]/g","replaceString":"<div class=\"rlpn rlp1\"><div class=\"rlsecbar\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@P1\\]/g","replaceString":"<div class=\"rlpn rlp1\"><div class=\"rlsecbar\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@P1\\]/g","replaceString":"</div></div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@P2\\]/g","replaceString":"<div class=\"rlpn rlp2\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@P2\\]/g","replaceString":"</div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@P3\\|([^\\]]*)\\]/g","replaceString":"<div class=\"rlpn rlp3\"><div class=\"rlsecbar\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@P3\\]/g","replaceString":"<div class=\"rlpn rlp3\"><div class=\"rlsecbar\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@P3\\]/g","replaceString":"</div></div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@P4\\]/g","replaceString":"<div class=\"rlpn rlp4\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@P4\\]/g","replaceString":"</div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@P5\\]/g","replaceString":"<div class=\"rlpn rlp5\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@P5\\]/g","replaceString":"</div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@SEC\\|([^|]*)\\|([^|]*)\\|([^\\]]*)\\]/g","replaceString":"<details class=\"rlsec\" data-sec=\"$1\"><summary class=\"rlseclbl\">$2</summary><div class=\"rlsecbd\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@SEC\\]/g","replaceString":"</div></details>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@SECN\\|([^|]*)\\|([^|]*)\\|([^|]*)\\|([^\\]]*)\\]/g","replaceString":"<details class=\"rlsec rlsec-npc\" nfc=\"$2\" data-idx=\"$1\"><summary class=\"rlseclbl\"><span data-name=\"$3\">$3</span></summary><div class=\"rlsecbd\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@SECN\\]/g","replaceString":"</div></details>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@SECM\\|([^|]*)\\|([^|]*)\\|([^\\]]*)\\]/g","replaceString":"<details class=\"rlsec\" data-sec=\"$1\"><summary class=\"rlseclbl\">$2</summary><div class=\"rlsecbd\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@SECM\\]/g","replaceString":"</div></details>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@CD\\]/g","replaceString":"<cd>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@CD\\]/g","replaceString":"</cd>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@G2\\]/g","replaceString":"<g2>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@G2\\]/g","replaceString":"</g2>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@G3\\]/g","replaceString":"<g3>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@G3\\]/g","replaceString":"</g3>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@D\\]/g","replaceString":"<d></d>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@AV\\]/g","replaceString":"<av></av>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@CG\\|([^\\]]*)\\]/g","replaceString":"<div class=\"rlcg\" cg=\"$1\"><details class=\"rlcg-sw\"><summary></summary></details><div class=\"rlcg-img rlcg-n\"></div><div class=\"rlcg-img rlcg-h\"></div></div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@DMBOX\\]/g","replaceString":"<div class=\"rldmbox\"><div class=\"rldmlist\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@DMBOX\\]/g","replaceString":"</div></div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@T\\|([^|]*)\\|([^\\]]*)\\]/g","replaceString":"<t><b>$1</b><span>$2</span></t>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@TN\\|([^|]*)\\|([^|]*)\\|([^\\]]*)\\]/g","replaceString":"<t><b>$1</b><span><n>$2</n>/$3</span></t>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@ACT\\|([^\\]]*)\\]/g","replaceString":"<div class=\"rlact\"><label class=\"rlacthd\" for=\"rlac-$1\"><i></i><b n=\"4\"></b><span class=\"rlactar\"></span></label><div class=\"rlactbd\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@ACT\\]/g","replaceString":"</div></div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@A\\|([^|]*)\\|([^\\]]*)\\]/g","replaceString":"<ac data-action=\"append-textinput\" data-value=\"$2\"><s>0$1</s><span>$2</span></ac>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@AH\\|([^|]*)\\|([^\\]]*)\\]/g","replaceString":"<ac hi=\"1\" data-action=\"append-textinput\" data-value=\"$2\"><s>0$1</s><span>$2</span></ac>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@CH\\|([^|]*)\\|([^|]*)\\|([^\\]]*)\\]/g","replaceString":"<cd><t><b>频道</b><span>$1</span></t><g2><t><b>接入</b><span>$2</span></t><t><b>风向</b><span>$3</span></t></g2></cd>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@DMHD\\]/g","replaceString":"<cd><t><b>实时弹幕</b><span>滚动浏览</span></t>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@DMHD\\]/g","replaceString":"</cd>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@DM\\|([^|]*)\\|([^|]*)\\|([^\\]]*)\\]/g","replaceString":"<dm><tg fc=\"$1\">$2</tg><span>$3</span></dm>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@CDM\\|([^\\]]*)\\]/g","replaceString":"<cd class=\"rlmsgcard\"><div class=\"rlmsghd\"><i></i><b></b><span>收件·<n>$1</n>条</span></div><div class=\"rlmsgbox\"><div class=\"rlmsglist\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@CDM\\]/g","replaceString":"</div></div></cd>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@MS\\|([^|]*)\\|([^|]*)\\|([^|]*)\\|([^|]*)\\|([^|]*)\\|([^\\]]*)\\]/g","replaceString":"<ms mt=\"$1\" fc=\"$2\" ur=\"$3\"><tg fc=\"$2\">$4</tg><nav><s>$5</s><span>$6</span></nav></ms>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@SET\\|([^\\]]*)\\]/g","replaceString":"<div class=\"rlsetpanel\"><div class=\"rlsethd\"><i></i><b>System Config</b><label class=\"rlclose\" for=\"rlset-$1\"></label></div><div class=\"rlsetbd\">"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[\\/@SET\\]/g","replaceString":"</div></div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@SETG\\|([^\\]]*)\\]/g","replaceString":"<div class=\"rlsetgrp\">$1</div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@SI\\|([^|]*)\\|([^|]*)\\|([^|]*)\\|([^|]*)\\|([^\\]]*)\\]/g","replaceString":"<div class=\"rlsetitem\"><i class=\"rlseti\" s=\"$1\"></i><u><b>$2</b><s>$3</s></u><span class=\"rlsetval\" v=\"$5\">$4</span></div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@SIF\\|([^|]*)\\|([^|]*)\\|([^|]*)\\|([^|]*)\\|([^|]*)\\|([^\\]]*)\\]/g","replaceString":"<div class=\"rlsetitem $1\"><i class=\"rlseti\" s=\"$2\"></i><u><b>$3</b><s>$4</s></u><span class=\"rlsetval\" v=\"$6\">$5</span></div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@SIS\\|([^|]*)\\|([^|]*)\\|([^\\]]*)\\]/g","replaceString":"<div class=\"rlsetitem rlsetstory\"><i class=\"rlseti\" s=\"$1\"></i><u><b>$2</b><s>$3</s></u></div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@SETFT\\|([^|]*)\\|([^\\]]*)\\]/g","replaceString":"<div class=\"rlsetft\">PARADISE TERMINAL · TURN $1 · ROUND $2</div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\[@SETGS\\|([^|]*)\\|([^|]*)\\|([^|]*)\\|([^|]*)\\|([^\\]]*)\\]/g","replaceString":"<div class=\"rlsetitem rlsetstory\"><i class=\"rlseti\" s=\"$1\"></i><u><b>$2</b><s>$3</s></u><span class=\"rlsetval\" v=\"$5\">$4</span></div>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\{N\\|([^}]*)\\}/g","replaceString":"<n>$1</n>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\{DG\\|([^}]*)\\}/g","replaceString":"<dg dg=\"$1\"></dg>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\{LK\\}/g","replaceString":"<lk></lk>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\{TG\\|([^|]*)\\|([^}]*)\\}/g","replaceString":"<tg fc=\"$1\">$2</tg>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\{W\\|([^|]*)\\|([^}]*)\\}/g","replaceString":"<w w=\"$1\" t=\"$2\"></w>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\{C\\|([^|]*)\\|([^|]*)\\|([^}]*)\\}/g","replaceString":"<b c>$1<i><b>$2</b>$3</i></b>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\{CN\\|([^|]*)\\|([^|]*)\\|([^|]*)\\|([^}]*)\\}/g","replaceString":"<b c n><n>$1</n>$2<i><b>$3</b>$4</i></b>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\{CQ\\|([^|]*)\\|([^|]*)\\|([^|]*)\\|([^}]*)\\}/g","replaceString":"<b c q=\"$1\">$2<i><b>$3</b>$4</i></b>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\{CF\\|([^|]*)\\|([^|]*)\\|([^|]*)\\|([^}]*)\\}/g","replaceString":"<b c fc=\"$1\">$2<i><b>$3</b>$4</i></b>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\{CFN\\|([^|]*)\\|([^|]*)\\|([^|]*)\\|([^|]*)\\|([^}]*)\\}/g","replaceString":"<b c fc=\"$1\"><n>$2</n>$3<i><b>$4</b>$5</i></b>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\{CO\\|([^}]*)\\}/g","replaceString":"<b c>$1</b>"},{"enabled":true,"applyMode":"front-end","messageRole":"assistant","regex":"/\\{CNO\\|([^|]*)\\|([^}]*)\\}/g","replaceString":"<b c n><n>$1</n>$2</b>"}],"enableMemorySchema":true,"memorySchema":null,"injectStyles":"/* ============================================================\n   轮回乐园 · PARADISE TERMINAL UI v1.0\n   全局命名空间前缀 rl  禁止使用 id 选择器\n   ============================================================ */\n\n/* ---------- 设计公理层：颜色与尺度令牌 ---------- */\n.rlmain {\n  --rl-void: #05070c;\n  --rl-bg0: #080a10;\n  --rl-bg1: #0e1220;\n  --rl-bg2: #141a2c;\n  --rl-bg3: #1c2440;\n  --rl-line: #223052;\n  --rl-line2: #2e3f68;\n  --rl-order: #4dd0ff;\n  --rl-order-d: #1d7fa8;\n  --rl-chaos: #ff2d55;\n  --rl-chaos-d: #a01030;\n  --rl-nature: #3ddc97;\n  --rl-nature-d: #1a8a5c;\n  --rl-gold: #ffc94d;\n  --rl-gold-d: #c9a227;\n  --rl-txt: #c8d4e8;\n  --rl-txt2: #7a8aa8;\n  --rl-txt3: #4a5670;\n  --rl-cut: 10px;\n  --rl-cut-s: 5px;\n  --rl-ez-panel: cubic-bezier(.16, 1, .3, 1);\n  --rl-ez-slide: cubic-bezier(.65, .05, .36, 1);\n  --rl-ez-pop: cubic-bezier(.34, 1.56, .64, 1);\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  box-sizing: border-box;\n  width: 100%;\n  max-width: 100%;\n  height: calc(100vh - 168px);\n  height: calc(100dvh - 168px);\n  min-height: 470px;\n  max-height: 780px;\n  margin: 2px0;\n  padding: 0;\n  overflow: hidden;\n  font-family: \"Segoe UI\", \"PingFang SC\", \"Microsoft YaHei\", -apple-system, sans-serif;\n  font-size: 13px;\n  line-height: 1.7;\n  color: var(--rl-txt);\n  letter-spacing: .3px;\n  background:\n    radial-gradient(ellipse 120% 70% at 50% -10%, rgba(77, 208, 255, .11), transparent 62%),\n    radial-gradient(ellipse 90% 50% at 100% 108%, rgba(255, 45, 85, .075), transparent 60%),\n    linear-gradient(172deg, var(--rl-bg1) 0%, var(--rl-bg0) 45%, var(--rl-void) 100%);\n  border: 1px solid var(--rl-line);\n  border-radius: 3px;\n  isolation: isolate;\n  container-type: inline-size;\n  container-name: rlbox;\n}\n\n/* ============================================================\n   1. 外框容器 —— 隔离平台样式，锁定总高度\n   ============================================================ */\n\n/* 外框四角机械卡榫 */\n.rlmain::before {\n  content: '';\n  position: absolute;\n  inset: 0;\n  z-index: 9;\n  pointer-events: none;\n  background:\n    linear-gradient(90deg, var(--rl-order) 0 22px, transparent 22px) 0 0/100% 1px no-repeat,\n    linear-gradient(180deg, var(--rl-order) 0 22px, transparent 22px) 0 0/1px 100% no-repeat,\n    linear-gradient(270deg, var(--rl-order) 0 22px, transparent 22px) 100% 0/100% 1px no-repeat,\n    linear-gradient(0deg, var(--rl-order) 0 22px, transparent 22px) 100% 0/1px 100% no-repeat,\n    linear-gradient(90deg, var(--rl-chaos) 0 22px, transparent 22px) 0 100%/100% 1px no-repeat,\n    linear-gradient(0deg, var(--rl-chaos) 0 22px, transparent 22px) 0 100%/1px 100% no-repeat,\n    linear-gradient(270deg, var(--rl-chaos) 0 22px, transparent 22px) 100% 100%/100% 1px no-repeat,\n    linear-gradient(180deg, var(--rl-chaos) 0 22px, transparent 22px) 100% 100%/1px 100% no-repeat;\n  opacity: .85;\n}\n\n/* 全屏噪点质感层 —— feTurbulence 生成，注意 baseFrequency 不可过大 */\n.rlmain::after {\n  content: '';\n  position: absolute;\n  inset: 0;\n  z-index: 8;\n  pointer-events: none;\n  opacity: .038;\n  background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E\");\n  background-size: 180px 180px;\n}\n\n/* 隐藏内部结构区 */\n.rlmain wldata,\n.rlmain rlock,\n.rlmain lck,\n.rlmain anchor,\n.rlmain .rlanchor {\n  display: none !important;\n}\n\n/* 集中式 input 全部隐藏 —— display:none 彻底脱离渲染树\n   24-1节用!important再次声明，此处为基础声明保持一致\n   label的for关联、:checked、~选择器均基于DOM工作，不受display:none影响 */\n.rlmain input.rlrd,\n.rlmain input.rlck {\n  display: none;\n}\n\n/* 全局去除 s 标签默认删除线（防止嵌套 s 标签遗漏） */\n.rlmain s {\n  text-decoration: none;\n}\n\n/* ============================================================\n   2. 顶栏 —— 时间 / 天气 / 地点 / 设置按钮\n   ============================================================ */\n.rlmain .rltop {\n  position: relative;\n  z-index: 6;\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center;\n  gap: 0;\n  box-sizing: border-box;\n  height: 46px;\n  padding: 0 12px 0 0;\n  background:\n    linear-gradient(180deg, rgba(28, 36, 64, .92) 0%, rgba(14, 18, 32, .96) 100%);\n  border-bottom: 1px solid var(--rl-line2);\n  box-shadow: 0 4px 18px rgba(0, 0, 0, .6), inset 0 1px 0 rgba(120, 180, 240, .09);\n}\n\n/* 顶栏底部流动扫描光 */\n.rlmain .rltop::after {\n  content: '';\n  position: absolute;\n  bottom: -1px;\n  left: 0;\n  width: 34%;\n  height: 1px;\n  background: linear-gradient(90deg, transparent, var(--rl-order), rgba(255, 201, 77, .9), transparent);\n  animation: rlScanX 5.5s linear infinite;\n  filter: drop-shadow(0 0 4px rgba(77, 208, 255, .8));\n}\n\n@keyframes rlScanX {\n  0% { transform: translateX(-105%); }\n  100% { transform: translateX(400%); }\n}\n\n/* 顶栏左侧品牌徽记 */\n.rlmain .rlsigil {\n  position: relative;\n  flex: 0 0 auto;\n  width: 58px;\n  height: 58px;\n  background: linear-gradient(145deg, rgba(77, 208, 255, .16), rgba(255, 45, 85, .08));\n  border-right: 1px solid var(--rl-line2);\n}\n\n.rlmain .rlsigil::before {\n  content: '';\n  position: absolute;\n  inset: 0;\n  background-color: var(--rl-order);\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 L21 7 L21 17 L12 22 L3 17 L3 7 Z' fill='none' stroke='black' stroke-width='1.3'/%3E%3Ccircle cx='12' cy='12' r='4.2' fill='none' stroke='black' stroke-width='1.3'/%3E%3Cpath d='M12 7.8 L12 4.4 M16.2 12 L19.6 12 M12 16.2 L12 19.6 M7.8 12 L4.4 12' stroke='black' stroke-width='1.1'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 L21 7 L21 17 L12 22 L3 17 L3 7 Z' fill='none' stroke='black' stroke-width='1.3'/%3E%3Ccircle cx='12' cy='12' r='4.2' fill='none' stroke='black' stroke-width='1.3'/%3E%3Cpath d='M12 7.8 L12 4.4 M16.2 12 L19.6 12 M12 16.2 L12 19.6 M7.8 12 L4.4 12' stroke='black' stroke-width='1.1'/%3E%3C/svg%3E\");\n  -webkit-mask-size: 30px 30px;\n  mask-size: 30px 30px;\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  -webkit-mask-position: center;\n  mask-position: center;\n  animation: rlSigilPulse 3.4s ease-in-out infinite;\n}\n\n@keyframes rlSigilPulse {\n  0%, 100% { opacity: .72; filter: drop-shadow(0 0 3px rgba(77, 208, 255, .5)); }\n  50% { opacity: 1; filter: drop-shadow(0 0 9px rgba(77, 208, 255, .95)); }\n}\n\n/* 徽记外旋光环 */\n.rlmain .rlsigil::after {\n  content: '';\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  width: 42px;\n  height: 42px;\n  margin: -21px 0 0 -21px;\n  border: 1px dashed rgba(77, 208, 255, .32);\n  border-radius: 50%;\n  animation: rlSpin 14s linear infinite;\n}\n\n@keyframes rlSpin {\n  from { transform: rotate(0deg); }\n  to { transform: rotate(360deg); }\n}\n\n/* 顶栏信息槽通用 */\n.rlmain .rlslot {\n  position: relative;\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center;\n  gap: 6px;\n  box-sizing: border-box;\n  height: 58px;\n  padding: 0 13px;\n  border-right: 1px solid rgba(34, 48, 82, .7);\n  transition: background .2s ease-out;\n}\n\n.rlmain .rlslot:hover {\n  background: rgba(77, 208, 255, .07);\n}\n\n.rlmain .rlslot > i {\n  position: relative;\n  flex: 0 0 auto;\n  width: 17px;\n  height: 17px;\n  background-color: var(--rl-txt2);\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  -webkit-mask-position: center;\n  mask-position: center;\n  -webkit-mask-size: 17px 17px;\n  mask-size: 17px 17px;\n  transition: background-color .2s ease-out, filter .2s ease-out;\n}\n\n.rlmain .rlslot:hover > i {\n  background-color: var(--rl-order);\n  filter: drop-shadow(0 0 5px rgba(77, 208, 255, .8));\n}\n\n.rlmain .rlslot > u {\n  display: flex;\n  flex-direction: column;\n  line-height: 1.25;\n  text-decoration: none;\n}\n\n.rlmain .rlslot > u > s {\n  font-size: 8.5px;\n  font-weight: 700;\n  color: var(--rl-txt3);\n  text-decoration: none;\n  text-transform: uppercase;\n  letter-spacing: 1.4px;\n}\n\n.rlmain .rlslot > u > b {\n  font-size: 12.5px;\n  font-weight: 600;\n  color: var(--rl-txt);\n  letter-spacing: .4px;\n  white-space: nowrap;\n}\n\n/* 时间槽 —— 数字等宽并带微光 */\n.rlmain .rlslot.rltime > u > b {\n  font-family: \"Consolas\", \"SF Mono\", \"Courier New\", monospace;\n  font-size: 13.5px;\n  color: var(--rl-order);\n  text-shadow: 0 0 8px rgba(77, 208, 255, .55);\n}\n\n.rlmain .rlslot.rltime > i {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M12 7.2 L12 12 L15.6 14.4' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M12 7.2 L12 12 L15.6 14.4' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E\");\n  background-color: var(--rl-order);\n  filter: drop-shadow(0 0 4px rgba(77, 208, 255, .6));\n}\n\n/* 地点槽 */\n.rlmain .rlslot.rlloc {\n  flex: 1 1 auto;\n  min-width: 0;\n  border-right: 1px solid rgba(34, 48, 82, .7);\n}\n\n.rlmain .rlslot.rlloc > u {\n  min-width: 0;\n}\n\n.rlmain .rlslot.rlloc > u > b {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.rlmain .rlslot.rlloc > i {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21.5s7.2-7 7.2-12.1A7.2 7.2 0 0 0 4.8 9.4C4.8 14.5 12 21.5 12 21.5Z' fill='none' stroke='black' stroke-width='1.6'/%3E%3Ccircle cx='12' cy='9.3' r='2.7' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21.5s7.2-7 7.2-12.1A7.2 7.2 0 0 0 4.8 9.4C4.8 14.5 12 21.5 12 21.5Z' fill='none' stroke='black' stroke-width='1.6'/%3E%3Ccircle cx='12' cy='9.3' r='2.7' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E\");\n  background-color: var(--rl-gold);\n  filter: drop-shadow(0 0 4px rgba(255, 201, 77, .5));\n}\n\n/* ---------- 天气图标穷举映射 ---------- */\n.rlmain .rlwx {\n  position: relative;\n  display: inline-flex;\n  align-items: center;\n  gap: 5px;\n  font-size: 12.5px;\n  font-weight: 600;\n  color: var(--rl-txt);\n}\n\n.rlmain .rlwx::before {\n  content: '';\n  flex: 0 0 auto;\n  width: 18px;\n  height: 18px;\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  -webkit-mask-position: center;\n  mask-position: center;\n  -webkit-mask-size: 18px 18px;\n  mask-size: 18px 18px;\n}\n\n.rlmain .rlwx::after {\n  content: attr(t);\n  white-space: nowrap;\n}\n\n.rlmain .rlwx[w=\"sun\"]::before {\n  background-color: var(--rl-gold);\n  filter: drop-shadow(0 0 6px rgba(255, 201, 77, .75));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4.6' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M12 1.8v3.1M12 19.1v3.1M1.8 12h3.1M19.1 12h3.1M4.8 4.8l2.2 2.2M17 17l2.2 2.2M19.2 4.8L17 7M7 17l-2.2 2.2' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4.6' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M12 1.8v3.1M12 19.1v3.1M1.8 12h3.1M19.1 12h3.1M4.8 4.8l2.2 2.2M17 17l2.2 2.2M19.2 4.8L17 7M7 17l-2.2 2.2' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E\");\n  animation: rlSpin 22s linear infinite;\n}\n\n.rlmain .rlwx[w=\"night\"]::before {\n  background-color: #a8c0e8;\n  filter: drop-shadow(0 0 6px rgba(168, 192, 232, .7));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.4 14.6A8.6 8.6 0 0 1 9.4 3.6a8.8 8.8 0 1 0 11 11Z' fill='none' stroke='black' stroke-width='1.6'/%3E%3Ccircle cx='16.8' cy='6.4' r='.9' fill='black'/%3E%3Ccircle cx='19.6' cy='9.6' r='.6' fill='black'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.4 14.6A8.6 8.6 0 0 1 9.4 3.6a8.8 8.8 0 1 0 11 11Z' fill='none' stroke='black' stroke-width='1.6'/%3E%3Ccircle cx='16.8' cy='6.4' r='.9' fill='black'/%3E%3Ccircle cx='19.6' cy='9.6' r='.6' fill='black'/%3E%3C/svg%3E\");\n  animation: rlBreath 4.2s ease-in-out infinite;\n}\n\n.rlmain .rlwx[w=\"rain\"]::before {\n  background-color: #5fb4e8;\n  filter: drop-shadow(0 0 5px rgba(95, 180, 232, .7));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.4 15.4a4.2 4.2 0 0 1 .5-8.4 5.6 5.6 0 0 1 10.7 1.3 3.6 3.6 0 0 1-.8 7.1Z' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M8.4 18.2l-1 2.6M12 18.2l-1 2.6M15.6 18.2l-1 2.6' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.4 15.4a4.2 4.2 0 0 1 .5-8.4 5.6 5.6 0 0 1 10.7 1.3 3.6 3.6 0 0 1-.8 7.1Z' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M8.4 18.2l-1 2.6M12 18.2l-1 2.6M15.6 18.2l-1 2.6' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E\");\n  animation: rlRainShift 1.5s steps(3) infinite;\n}\n\n@keyframes rlRainShift {\n  0% { -webkit-mask-position: center 0; mask-position: center 0; }\n  100% { -webkit-mask-position: center 3px; mask-position: center 3px; }\n}\n\n.rlmain .rlwx[w=\"storm\"]::before {\n  background-color: var(--rl-gold);\n  filter: drop-shadow(0 0 8px rgba(255, 201, 77, .9));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.4 14.6a4.2 4.2 0 0 1 .5-8.4 5.6 5.6 0 0 1 10.7 1.3 3.6 3.6 0 0 1-.8 7.1' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M13.2 12.4l-3.6 5.2h2.8l-1.4 4.2 4.4-6h-3Z' fill='black'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.4 14.6a4.2 4.2 0 0 1 .5-8.4 5.6 5.6 0 0 1 10.7 1.3 3.6 3.6 0 0 1-.8 7.1' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M13.2 12.4l-3.6 5.2h2.8l-1.4 4.2 4.4-6h-3Z' fill='black'/%3E%3C/svg%3E\");\n  animation: rlFlash 3.1s steps(1) infinite;\n}\n\n@keyframes rlFlash {\n  0%, 88%, 100% { opacity: 1; }\n  90% { opacity: .25; }\n  92% { opacity: 1; }\n  94% { opacity: .35; }\n}\n\n.rlmain .rlwx[w=\"snow\"]::before {\n  background-color: #d8ecff;\n  filter: drop-shadow(0 0 6px rgba(216, 236, 255, .8));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4v19.2M3.7 7.2l16.6 9.6M20.3 7.2L3.7 16.8' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M12 6.2l-2 2 2 2 2-2ZM12 15.6l-2 2 2 2 2-2Z' fill='black'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4v19.2M3.7 7.2l16.6 9.6M20.3 7.2L3.7 16.8' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M12 6.2l-2 2 2 2 2-2ZM12 15.6l-2 2 2 2 2-2Z' fill='black'/%3E%3C/svg%3E\");\n  animation: rlSpin 9s linear infinite;\n}\n\n.rlmain .rlwx[w=\"fog\"]::before {\n  background-color: #90a4c4;\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 8.4h14M6.6 12h14.4M3 15.6h11.4M17.4 15.6H21M3 19.2h9' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 8.4h14M6.6 12h14.4M3 15.6h11.4M17.4 15.6H21M3 19.2h9' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E\");\n  animation: rlFogDrift 4.6s ease-in-out infinite;\n}\n\n@keyframes rlFogDrift {\n  0%, 100% { opacity: .55; transform: translateX(-1.5px); }\n  50% { opacity: 1; transform: translateX(1.5px); }\n}\n\n.rlmain .rlwx[w=\"cloud\"]::before {\n  background-color: #8fa8c8;\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 18.6a4.4 4.4 0 0 1 .5-8.8 5.8 5.8 0 0 1 11.1 1.4 3.8 3.8 0 0 1-.8 7.4Z' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 18.6a4.4 4.4 0 0 1 .5-8.8 5.8 5.8 0 0 1 11.1 1.4 3.8 3.8 0 0 1-.8 7.4Z' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E\");\n  animation: rlFogDrift 6.8s ease-in-out infinite;\n}\n\n.rlmain .rlwx[w=\"wind\"]::before {\n  background-color: var(--rl-nature);\n  filter: drop-shadow(0 0 5px rgba(61, 220, 151, .6));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 9.6h11.4a2.7 2.7 0 1 0-2.7-2.7M3 14.4h15a2.7 2.7 0 1 1-2.7 2.7M3 12h6' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 9.6h11.4a2.7 2.7 0 1 0-2.7-2.7M3 14.4h15a2.7 2.7 0 1 1-2.7 2.7M3 12h6' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E\");\n  animation: rlWindPush 2.4s ease-in-out infinite;\n}\n\n@keyframes rlWindPush {\n  0%, 100% { transform: translateX(-2px); opacity: .7; }\n  55% { transform: translateX(2px); opacity: 1; }\n}\n\n.rlmain .rlwx[w=\"void\"]::before {\n  background-color: var(--rl-chaos);\n  filter: drop-shadow(0 0 8px rgba(255, 45, 85, .8));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='8.4' fill='none' stroke='black' stroke-width='1.5'/%3E%3Ccircle cx='12' cy='12' r='3.4' fill='black'/%3E%3Cpath d='M12 3.6v2.4M12 18v2.4M3.6 12h2.4M18 12h2.4' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='8.4' fill='none' stroke='black' stroke-width='1.5'/%3E%3Ccircle cx='12' cy='12' r='3.4' fill='black'/%3E%3Cpath d='M12 3.6v2.4M12 18v2.4M3.6 12h2.4M18 12h2.4' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E\");\n  animation: rlVoidPulse 2.6s ease-in-out infinite;\n}\n\n@keyframes rlVoidPulse {\n  0%, 100% { transform: scale(.9); opacity: .7; }\n  50% { transform: scale(1.08); opacity: 1; }\n}\n\n@keyframes rlBreath {\n  0%, 100% { opacity: .68; }\n  50% { opacity: 1; }\n}\n\n/* ---------- 危险度指示 ---------- */\n.rlmain .rldg {\n  display: inline-flex;\n  align-items: center;\n  gap: 2px;\n  padding: 2px 7px;\n  font-size: 10px;\n  font-weight: 700;\n  letter-spacing: 1px;\n  border: 1px solid;\n  border-radius: 2px;\n}\n\n.rlmain .rldg::before {\n  content: '';\n  width: 12px;\n  height: 12px;\n  margin-right: 3px;\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4 22 20.4H2Z' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M12 8.4v5.4M12 16.4v1.4' stroke='black' stroke-width='2.1' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4 22 20.4H2Z' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M12 8.4v5.4M12 16.4v1.4' stroke='black' stroke-width='2.1' stroke-linecap='round'/%3E%3C/svg%3E\");\n  -webkit-mask-size: 12px 12px;\n  mask-size: 12px 12px;\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  background-color: currentColor;\n}\n\n.rlmain .rldg[dg=\"1\"] { color: var(--rl-nature); border-color: rgba(61, 220, 151, .45); background: rgba(61, 220, 151, .09); }\n.rlmain .rldg[dg=\"1\"]::after { content: '★'; }\n.rlmain .rldg[dg=\"2\"] { color: #9ddc3d; border-color: rgba(157, 220, 61, .45); background: rgba(157, 220, 61, .09); }\n.rlmain .rldg[dg=\"2\"]::after { content: '★★'; }\n.rlmain .rldg[dg=\"3\"] { color: var(--rl-gold); border-color: rgba(255, 201, 77, .5); background: rgba(255, 201, 77, .1); box-shadow: 0 0 4px rgba(255, 201, 77, .35); }\n.rlmain .rldg[dg=\"3\"]::after { content: '★★★'; }\n.rlmain .rldg[dg=\"4\"] { color: #ff8a3d; border-color: rgba(255, 138, 61, .55); background: rgba(255, 138, 61, .12); box-shadow: 0 0 10px rgba(255, 138, 61, .45), 0 0 20px rgba(255, 138, 61, .18); }\n.rlmain .rldg[dg=\"4\"]::after { content: '★★★★'; }\n.rlmain .rldg[dg=\"5\"] { color: var(--rl-chaos); border-color: rgba(255, 45, 85, .6); background: rgba(255, 45, 85, .14); box-shadow: 0 0 8px rgba(255, 45, 85, .6), 0 0 24px rgba(255, 45, 85, .3), 0 0 48px rgba(255, 45, 85, .12); animation: rlBreath 1.3s ease-in-out infinite; }\n.rlmain .rldg[dg=\"5\"]::after { content: '★★★★★'; }\n.rlmain .rldg[dg=\"6\"] { color: var(--rl-gold-d); border-color: rgba(201, 162, 39, .65); background: rgba(201, 162, 39, .16); box-shadow: 0 0 10px rgba(201, 162, 39, .7), 0 0 28px rgba(201, 162, 39, .4), 0 0 56px rgba(201, 162, 39, .18); animation: rlBreath 0.8s ease-in-out infinite; }\n.rlmain .rldg[dg=\"6\"]::after { content: '★★★★★★'; }\n\n/* rlcap 与 rldg 并列时间距 */\n.rlmain .rlcap + .rldg { margin-left: 2px; }\n.rlmain .rldg + .rlcap { margin-left: 5px; }\n\n/* ---------- 设置按钮 ---------- */\n.rlmain .rlsetbtn {\n  position: relative;\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center;\n  justify-content: center;\n  box-sizing: border-box;\n  width: 38px;\n  height: 38px;\n  margin-left: 8px;\n  cursor: pointer;\n  background: linear-gradient(145deg, rgba(34, 48, 82, .8), rgba(14, 18, 32, .9));\n  border: 1px solid var(--rl-line2);\n  border-radius: 2px;\n  transition: border-color .18s ease-out, background .18s ease-out, transform .18s var(--rl-ez-pop);\n  -webkit-tap-highlight-color: transparent;\n}\n\n.rlmain .rlsetbtn::before {\n  content: '';\n  width: 20px;\n  height: 20px;\n  background-color: var(--rl-txt2);\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 15.3a3.3 3.3 0 1 0 0-6.6 3.3 3.3 0 0 0 0 6.6Z' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M19.5 12c0-.5-.05-1-.14-1.47l2.02-1.44-1.9-3.3-2.32.9a7.6 7.6 0 0 0-2.55-1.48L14.3 2.7h-3.8l-.31 2.51a7.6 7.6 0 0 0-2.55 1.48l-2.32-.9-1.9 3.3 2.02 1.44a7.9 7.9 0 0 0 0 2.94L3.42 14.9l1.9 3.3 2.32-.9a7.6 7.6 0 0 0 2.55 1.48l.31 2.51h3.8l.31-2.51a7.6 7.6 0 0 0 2.55-1.48l2.32.9 1.9-3.3-2.02-1.44c.09-.47.14-.96.14-1.46Z' fill='none' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 15.3a3.3 3.3 0 1 0 0-6.6 3.3 3.3 0 0 0 0 6.6Z' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M19.5 12c0-.5-.05-1-.14-1.47l2.02-1.44-1.9-3.3-2.32.9a7.6 7.6 0 0 0-2.55-1.48L14.3 2.7h-3.8l-.31 2.51a7.6 7.6 0 0 0-2.55 1.48l-2.32-.9-1.9 3.3 2.02 1.44a7.9 7.9 0 0 0 0 2.94L3.42 14.9l1.9 3.3 2.32-.9a7.6 7.6 0 0 0 2.55 1.48l.31 2.51h3.8l.31-2.51a7.6 7.6 0 0 0 2.55-1.48l2.32.9 1.9-3.3-2.02-1.44c.09-.47.14-.96.14-1.46Z' fill='none' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E\");\n  -webkit-mask-size: 20px 20px;\n  mask-size: 20px 20px;\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  -webkit-mask-position: center;\n  mask-position: center;\n  transition: background-color .18s ease-out, filter .18s ease-out;\n}\n\n.rlmain .rlsetbtn:hover {\n  background: linear-gradient(145deg, rgba(77, 208, 255, .22), rgba(14, 18, 32, .9));\n  border-color: var(--rl-order);\n  transform: scale(1.06);\n}\n\n.rlmain .rlsetbtn:hover::before {\n  background-color: var(--rl-order);\n  filter: drop-shadow(0 0 7px rgba(77, 208, 255, .9));\n  animation: rlSpin 4s linear infinite;\n}\n\n.rlmain .rlsetbtn:active {\n  transform: scale(.94);\n}\n\n/* 设置按钮悬浮提示 */\n.rlmain .rlsetbtn::after {\n  content: 'SYSTEM';\n  position: absolute;\n  top: 100%;\n  right: 0;\n  margin-top: 7px;\n  padding: 3px 8px;\n  font-size: 9px;\n  font-weight: 700;\n  color: var(--rl-order);\n  letter-spacing: 1.5px;\n  white-space: nowrap;\n  background: rgba(8, 10, 16, .96);\n  border: 1px solid var(--rl-order-d);\n  border-radius: 2px;\n  opacity: 0;\n  transform: translateY(-5px);\n  pointer-events: none;\n  transition: opacity .2s ease-out, transform .2s ease-out;\n  z-index: 20;\n}\n\n.rlmain .rlsetbtn:hover::after {\n  opacity: 1;\n  transform: translateY(0);\n}\n\n/* 设置面板打开时按钮变为激活态 —— 排除行动折叠开关 rlac2 */\n.rlmain input.rlck.rlst2:checked ~ .rltop .rlsetbtn {\n  background: linear-gradient(145deg, rgba(255, 45, 85, .28), rgba(14, 18, 32, .9));\n  border-color: var(--rl-chaos);\n}\n\n.rlmain input.rlck.rlst2:checked ~ .rltop .rlsetbtn::before {\n  background-color: var(--rl-chaos);\n  filter: drop-shadow(0 0 8px rgba(255, 45, 85, .9));\n  transform: rotate(90deg);\n}\n\n/* ============================================================\n   3. 正文区 —— 固定高度可滚动\n   ============================================================ */\n.rlmain .rlbody {\n  position: relative;\n  z-index: 2;\n  flex: 1 1 auto;\n  min-height: 0;\n  box-sizing: border-box;\n  padding: 8px 18px 10px 30px;\n  overflow-x: hidden;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  touch-action: pan-y;\n  overscroll-behavior-y: contain;\n  background:\n    linear-gradient(180deg, var(--rl-order) 0%, rgba(77, 208, 255, .25) 40%, rgba(255, 45, 85, .3) 100%)12px 0/3px 100% no-repeat,\n    repeating-linear-gradient(180deg, transparent 0 6px, rgba(8, 10, 16, .8) 6px 8px) 12px 0/3px 100% no-repeat,\n    linear-gradient(180deg, rgba(20, 26, 44, .5) 0%, rgba(8, 10, 16, .2) 30%, rgba(8, 10, 16, 0) 100%);\n  scrollbar-width: thin;\n  scrollbar-color: var(--rl-line2) transparent;\n  overscroll-behavior: contain;\n}\n\n.rlmain .rlbody p {\n  margin: 0 0 13px;\n  font-size: 13.5px;\n  line-height: 1.92;\n  color: var(--rl-txt);\n  text-align: justify;\n  text-indent: 1.6em;\n  letter-spacing: .35px;\n}\n\n.rlmain .rlbody p:last-child {\n  margin-bottom: 0;\n}\n\n/* 系统提示【】自动高亮 —— 通过 em 标签承载 */\n.rlmain .rlbody em {\n  display: inline-block;\n  padding: 1px 7px;\n  margin: 0 2px;\n  font-style: normal;\n  font-size: 12.5px;\n  font-weight: 600;\n  color: var(--rl-order);\n  background: rgba(77, 208, 255, .1);\n  border-left: 2px solid var(--rl-order);\n  border-radius: 0 2px 2px 0;\n  text-shadow: 0 0 6px rgba(77, 208, 255, .45);\n}\n\n/* 空段落与多余换行兜底 —— 正文只用p，br与空p一律无效 */\n.rlmain .rlbody p:empty { display: none; }\n.rlmain .rlbody p:has(> br:only-child) { display: none; }\n.rlmain .rlbody br { display: none; }\n\n/* 整段被em包裹时改为块级，避免inline-block行盒留白 */\n.rlmain .rlbody p:has(> em:only-child) { text-indent: 0; }\n.rlmain .rlbody p > em:only-child { display: block; margin: 0; }\n\n/* 正文区内出现非法块级元素时，剥掉BFC与浮动影响 */\n.rlmain .rlbody > div,\n.rlmain .rlbody > details,\n.rlmain .rlbody > blockquote,\n.rlmain .rlbody > table { float: none; clear: none; overflow: visible; margin: 0 0 13px; }\n\n/* 对话强调 */\n.rlmain .rlbody q {\n  quotes: none;\n  color: #e4ecfa;\n  font-weight: 500;\n}\n\n.rlmain .rlbody q::before,\n.rlmain .rlbody q::after {\n  color: var(--rl-gold);\n  content: '「';\n}\n\n.rlmain .rlbody q::after {\n  content: '」';\n}\n\n/* 技能名突出 */\n.rlmain .rlbody strong {\n  color: var(--rl-gold);\n  font-weight: 700;\n  text-shadow: 0 0 7px rgba(255, 201, 77, .5);\n}\n\n/* 正文尾部终端光标收束 */\n.rlmain .rlbody::after {\n  content: '';\n  display: block;\n  clear: both;\n  width: 100%;\n  height: 26px;\n  margin-top: 6px;\n  background:\n    linear-gradient(90deg, rgba(77, 208, 255, .5), rgba(77, 208, 255, 0) 42%) 0 50%/100% 1px no-repeat;\n}\n\n/* 滚动条 —— webkit */\n.rlmain .rlbody::-webkit-scrollbar {\n  width: 7px;\n}\n\n.rlmain .rlbody::-webkit-scrollbar-track {\n  background: rgba(8, 10, 16, .55);\n  border-left: 1px solid rgba(34, 48, 82, .55);\n}\n\n.rlmain .rlbody::-webkit-scrollbar-thumb {\n  background: linear-gradient(180deg, var(--rl-order-d), var(--rl-line2));\n  border-radius: 0;\n  box-shadow: inset 0 0 3px rgba(77, 208, 255, .5);\n}\n\n.rlmain .rlbody::-webkit-scrollbar-thumb:hover {\n  background: linear-gradient(180deg, var(--rl-order), var(--rl-order-d));\n}\n\n/* ============================================================\n   4. 导航按钮组 —— 六个 SVG 图标按钮\n   ============================================================ */\n.rlmain .rlnavbar {\n  position: relative;\n  z-index: 25;\n  display: grid;\n  flex: 0 0 auto;\n  grid-template-columns: repeat(6, 1fr);\n  gap: 1px;\n  box-sizing: border-box;\n  height: 58px;\n  padding: 0;\n  background: var(--rl-line);\n  border-top: 1px solid var(--rl-line2);\n  border-bottom: 1px solid var(--rl-line2);\n  box-shadow: 0 -6px 20px rgba(0, 0, 0, .5), 0 6px 20px rgba(0, 0, 0, .5);\n}\n\n.rlmain .rlbtn {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  gap: 3px;\n  box-sizing: border-box;\n  padding: 5px 2px 6px;\n  overflow: hidden;\n  cursor: pointer;\n  background: linear-gradient(180deg, rgba(20, 26, 44, .96), rgba(10, 13, 22, .98));\n  transition: background .2s ease-out;\n  -webkit-tap-highlight-color: transparent;\n  user-select: none;\n}\n\n/* 按钮内部斜向光泽 */\n.rlmain .rlbtn::before {\n  content: '';\n  position: absolute;\n  top: -60%;\n  left: -120%;\n  width: 60%;\n  height: 220%;\n  background: linear-gradient(90deg, transparent, rgba(180, 220, 255, .13), transparent);\n  transform: rotate(22deg);\n  transition: left .5s var(--rl-ez-panel);\n  pointer-events: none;\n}\n\n.rlmain .rlbtn:hover::before {\n  left: 160%;\n}\n\n/* 按钮底部激活光条 */\n.rlmain .rlbtn::after {\n  content: '';\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 2px;\n  background: linear-gradient(90deg, transparent, var(--rl-order), transparent);\n  transform: scaleX(0);\n  transform-origin: center;\n  transition: transform .38s var(--rl-ez-pop);\n  filter: drop-shadow(0 0 5px rgba(77, 208, 255, .9));\n}\n\n.rlmain .rlbtn i {\n  position: relative;\n  flex: 0 0 auto;\n  width: 20px;\n  height: 20px;\n  background-color: var(--rl-txt3);\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  -webkit-mask-position: center;\n  mask-position: center;\n  -webkit-mask-size: 20px 20px;\n  mask-size: 20px 20px;\n  transition: background-color .2s ease-out, transform .28s var(--rl-ez-pop), filter .2s ease-out;\n}\n\n.rlmain .rlbtn span {\n  font-size: 9px;\n  font-weight: 600;\n  color: var(--rl-txt3);\n  letter-spacing: .4px;\n  white-space: nowrap;\n  transition: color .2s ease-out, text-shadow .2s ease-out;\n}\n\n.rlmain .rlbtn:hover {\n  background: linear-gradient(180deg, rgba(34, 48, 82, .95), rgba(14, 18, 32, .98));\n}\n\n.rlmain .rlbtn:hover i {\n  background-color: var(--rl-txt);\n  transform: translateY(-1px) scale(1.06);\n}\n\n.rlmain .rlbtn:hover span {\n  color: var(--rl-txt);\n}\n\n.rlmain .rlbtn:active i {\n  transform: translateY(0) scale(.92);\n}\n\n/* ---------- 六个导航图标 ---------- */\n/* 0 主角信息 —— 人形+六芒环 */\n.rlmain .rlbtn.rlb0 i {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='7.6' r='3.6' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M5.2 21c0-3.8 3-6.5 6.8-6.5s6.8 2.7 6.8 6.5' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M12 1.4l1.6 2.4h-3.2Z' fill='black'/%3E%3Cpath d='M2.6 10.6l1.8 1.4-1.8 1.4ZM21.4 10.6l-1.8 1.4 1.8 1.4Z' fill='black'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='7.6' r='3.6' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M5.2 21c0-3.8 3-6.5 6.8-6.5s6.8 2.7 6.8 6.5' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M12 1.4l1.6 2.4h-3.2Z' fill='black'/%3E%3Cpath d='M2.6 10.6l1.8 1.4-1.8 1.4ZM21.4 10.6l-1.8 1.4 1.8 1.4Z' fill='black'/%3E%3C/svg%3E\");\n}\n\n/* 1 互动角色 —— 双人对话 */\n.rlmain .rlbtn.rlb1 i {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='8.2' cy='7.4' r='3.2' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M2.4 19.8c0-3.3 2.6-5.6 5.8-5.6s5.8 2.3 5.8 5.6' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M15.6 4.4a3.2 3.2 0 0 1 0 6.2M16.4 14.4c2.9.3 5.2 2.6 5.2 5.4' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3Cpath d='M11.4 2.8h6.8v3.4h-2.2l-1.6 1.8V6.2h-3Z' fill='black' opacity='.85'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='8.2' cy='7.4' r='3.2' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M2.4 19.8c0-3.3 2.6-5.6 5.8-5.6s5.8 2.3 5.8 5.6' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M15.6 4.4a3.2 3.2 0 0 1 0 6.2M16.4 14.4c2.9.3 5.2 2.6 5.2 5.4' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3Cpath d='M11.4 2.8h6.8v3.4h-2.2l-1.6 1.8V6.2h-3Z' fill='black' opacity='.85'/%3E%3C/svg%3E\");\n}\n\n/* 2 世界联络平台 —— 卫星信号塔 */\n.rlmain .rlbtn.rlb2 i {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='2.4' fill='black'/%3E%3Cpath d='M7.6 7.6a6.2 6.2 0 0 0 0 8.8M16.4 7.6a6.2 6.2 0 0 1 0 8.8' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M4.6 4.6a10.4 10.4 0 0 0 0 14.8M19.4 4.6a10.4 10.4 0 0 1 0 14.8' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' opacity='.75'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='2.4' fill='black'/%3E%3Cpath d='M7.6 7.6a6.2 6.2 0 0 0 0 8.8M16.4 7.6a6.2 6.2 0 0 1 0 8.8' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M4.6 4.6a10.4 10.4 0 0 0 0 14.8M19.4 4.6a10.4 10.4 0 0 1 0 14.8' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' opacity='.75'/%3E%3C/svg%3E\");\n}\n\n/* 3 地区与任务 —— 罗盘地图 */\n.rlmain .rlbtn.rlb3 i {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5.8 9 3.4l6 2.4 6-2.4v14.8l-6 2.4-6-2.4-6 2.4Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M9 3.4v15.4M15 5.8v15.4' stroke='black' stroke-width='1.3' opacity='.7'/%3E%3Ccircle cx='12' cy='11.6' r='2.2' fill='black'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5.8 9 3.4l6 2.4 6-2.4v14.8l-6 2.4-6-2.4-6 2.4Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M9 3.4v15.4M15 5.8v15.4' stroke='black' stroke-width='1.3' opacity='.7'/%3E%3Ccircle cx='12' cy='11.6' r='2.2' fill='black'/%3E%3C/svg%3E\");\n}\n\n/* 4 关系网 —— 节点连线 */\n.rlmain .rlbtn.rlb4 i {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5.4 5.4 9.6M12 5.4l6.6 4.2M5.4 9.6 8.6 18M18.6 9.6 15.4 18M8.6 18h6.8' stroke='black' stroke-width='1.4' opacity='.8'/%3E%3Ccircle cx='12' cy='4.6' r='2.4' fill='black'/%3E%3Ccircle cx='4.8' cy='10.2' r='1.9' fill='black'/%3E%3Ccircle cx='19.2' cy='10.2' r='1.9' fill='black'/%3E%3Ccircle cx='8.2' cy='19' r='1.7' fill='black'/%3E%3Ccircle cx='15.8' cy='19' r='1.7' fill='black'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5.4 5.4 9.6M12 5.4l6.6 4.2M5.4 9.6 8.6 18M18.6 9.6 15.4 18M8.6 18h6.8' stroke='black' stroke-width='1.4' opacity='.8'/%3E%3Ccircle cx='12' cy='4.6' r='2.4' fill='black'/%3E%3Ccircle cx='4.8' cy='10.2' r='1.9' fill='black'/%3E%3Ccircle cx='19.2' cy='10.2' r='1.9' fill='black'/%3E%3Ccircle cx='8.2' cy='19' r='1.7' fill='black'/%3E%3Ccircle cx='15.8' cy='19' r='1.7' fill='black'/%3E%3C/svg%3E\");\n}\n\n/* 5 过往记忆 —— 数据晶体 */\n.rlmain .rlbtn.rlb5 i {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.2 20.4 7v10L12 21.8 3.6 17V7Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M12 2.2v19.6M3.6 7l8.4 4.8 8.4-4.8' stroke='black' stroke-width='1.3' opacity='.75'/%3E%3Ccircle cx='12' cy='11.9' r='1.7' fill='black'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.2 20.4 7v10L12 21.8 3.6 17V7Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M12 2.2v19.6M3.6 7l8.4 4.8 8.4-4.8' stroke='black' stroke-width='1.3' opacity='.75'/%3E%3Ccircle cx='12' cy='11.9' r='1.7' fill='black'/%3E%3C/svg%3E\");\n}\n\n/* ---------- 选中态：六路穷举 ---------- */\n.rlmain input.rlrd.rlr0:checked ~ .rlnavbar .rlb0,\n.rlmain input.rlrd.rlr1:checked ~ .rlnavbar .rlb1,\n.rlmain input.rlrd.rlr2:checked ~ .rlnavbar .rlb2,\n.rlmain input.rlrd.rlr3:checked ~ .rlnavbar .rlb3,\n.rlmain input.rlrd.rlr4:checked ~ .rlnavbar .rlb4,\n.rlmain input.rlrd.rlr5:checked ~ .rlnavbar .rlb5 {\n  background: linear-gradient(180deg, rgba(77, 208, 255, .2) 0%, rgba(20, 30, 54, .98) 62%, rgba(14, 18, 32, .99) 100%);\n}\n\n.rlmain input.rlrd.rlr0:checked ~ .rlnavbar .rlb0 i,\n.rlmain input.rlrd.rlr1:checked ~ .rlnavbar .rlb1 i,\n.rlmain input.rlrd.rlr2:checked ~ .rlnavbar .rlb2 i,\n.rlmain input.rlrd.rlr3:checked ~ .rlnavbar .rlb3 i,\n.rlmain input.rlrd.rlr4:checked ~ .rlnavbar .rlb4 i,\n.rlmain input.rlrd.rlr5:checked ~ .rlnavbar .rlb5 i {\n  background-color: var(--rl-order);\n  filter: drop-shadow(0 0 8px rgba(77, 208, 255, .95));\n  transform: translateY(-2px) scale(1.1);\n  animation: rlIconBreath 2.6s ease-in-out infinite;\n}\n\n@keyframes rlIconBreath {\n  0%, 100% { filter: drop-shadow(0 0 6px rgba(77, 208, 255, .7)); }\n  50% { filter: drop-shadow(0 0 14px rgba(77, 208, 255, 1)); }\n}\n\n.rlmain input.rlrd.rlr0:checked ~ .rlnavbar .rlb0 span,\n.rlmain input.rlrd.rlr1:checked ~ .rlnavbar .rlb1 span,\n.rlmain input.rlrd.rlr2:checked ~ .rlnavbar .rlb2 span,\n.rlmain input.rlrd.rlr3:checked ~ .rlnavbar .rlb3 span,\n.rlmain input.rlrd.rlr4:checked ~ .rlnavbar .rlb4 span,\n.rlmain input.rlrd.rlr5:checked ~ .rlnavbar .rlb5 span {\n  color: var(--rl-order);\n  text-shadow: 0 0 8px rgba(77, 208, 255, .6);\n  font-weight: 700;\n}\n\n.rlmain input.rlrd.rlr0:checked ~ .rlnavbar .rlb0::after,\n.rlmain input.rlrd.rlr1:checked ~ .rlnavbar .rlb1::after,\n.rlmain input.rlrd.rlr2:checked ~ .rlnavbar .rlb2::after,\n.rlmain input.rlrd.rlr3:checked ~ .rlnavbar .rlb3::after,\n.rlmain input.rlrd.rlr4:checked ~ .rlnavbar .rlb4::after,\n.rlmain input.rlrd.rlr5:checked ~ .rlnavbar .rlb5::after {\n  transform: scaleX(1);\n}\n\n/* ============================================================\n   6. 面板内通用组件库 —— 供后续内容设计直接复用\n   ============================================================ */\n\n/* 数据行 */\n.rlmain .rlrow {\n  position: relative;\n  display: flex;\n  align-items: baseline;\n  gap: 8px;\n  padding: 5px 8px;\n  margin: 0 0 3px;\n  font-size: 12.5px;\n  background: linear-gradient(90deg, rgba(28, 36, 64, .5), rgba(28, 36, 64, 0));\n  border-left: 2px solid var(--rl-line2);\n  transition: background .18s ease-out, border-color .18s ease-out, padding-left .18s ease-out;\n}\n\n.rlmain .rlrow:hover {\n  background: linear-gradient(90deg, rgba(77, 208, 255, .13), rgba(28, 36, 64, 0));\n  border-left-color: var(--rl-order);\n  padding-left: 12px;\n}\n\n.rlmain .rlrow > b {\n  flex: 0 0 auto;\n  min-width: 62px;\n  font-size: 11px;\n  font-weight: 600;\n  color: var(--rl-txt2);\n  letter-spacing: .8px;\n}\n\n.rlmain .rlrow > span {\n  flex: 1 1 auto;\n  color: var(--rl-txt);\n}\n\n/* 数值强调 */\n.rlmain .rlnum {\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 13px;\n  font-weight: 700;\n  color: var(--rl-order);\n  text-shadow: 0 0 7px rgba(77, 208, 255, .5);\n}\n\n/* 标签芯片 */\n.rlmain .rltag {\n  display: inline-block;\n  padding: 2px 8px;\n  margin: 2px 3px 2px 0;\n  font-size: 10.5px;\n  font-weight: 600;\n  letter-spacing: .6px;\n  color: var(--rl-txt2);\n  background: rgba(28, 36, 64, .8);\n  border: 1px solid var(--rl-line2);\n  border-radius: 2px;\n  transition: color .18s ease-out, border-color .18s ease-out, box-shadow .18s ease-out, transform .18s var(--rl-ez-pop);\n}\n\n.rlmain .rltag:hover {\n  color: var(--rl-order);\n  border-color: var(--rl-order-d);\n  box-shadow: 0 0 10px rgba(77, 208, 255, .45), 0 0 20px rgba(77, 208, 255, .18);\n  transform: translateY(-1px);\n}\n\n/* ---------- 悬停 tooltip 组件 ----------\n   用法：<b class=\"rlcap\" q=\"3\">技能名<i>品质·主动·冷却10·效果说明</i></b>\n   长方形标签样式，悬停时展开 <i> 内的详情，离开自动收回 */\n.rlmain .rlcap {\n  position: relative;\n  display: inline-block;\n  box-sizing: border-box;\n  max-width: 100%;\n  padding: 2px 8px;\n  margin: 2px 3px 2px 0;\n  font-size: 10.5px;\n  font-weight: 600;\n  letter-spacing: .6px;\n  color: var(--rl-txt2);\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  background: rgba(28, 36, 64, .8);\n  border: 1px solid var(--rl-line2);\n  border-radius: 2px;\n  cursor: default;\n  transition: color .18s ease-out, border-color .18s ease-out, box-shadow .18s ease-out, transform .18s var(--rl-ez-pop);\n  -webkit-tap-highlight-color: transparent;\n}\n\n.rlmain .rlcap > i {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 99999;\n  box-sizing: border-box;\n  width: 320px;\n  max-width: min(320px, calc(100cqw - 30px));\n  margin-top: 6px;\n  padding: 9px 11px;\n  font: 400 10.5px/1.55 inherit;\n  font-style: normal;\n  color: var(--rl-txt);\n  text-align: left;\n  white-space: normal;\n  letter-spacing: .2px;\n  background: linear-gradient(160deg, rgba(12, 16, 28, .98), rgba(5, 7, 12, .99));\n  border: 1px solid var(--rl-order-d);\n  border-radius: 2px;\n  box-shadow: 0 6px 22px rgba(0, 0, 0, .8), 0 0 0 1px rgba(77, 208, 255, .2), inset 0 1px 0 rgba(120, 180, 240, .12);\n  opacity: 0;\n  visibility: hidden;\n  transform: translateY(-4px) scale(.96);\n  pointer-events: none;\n  transition: opacity .22s ease-out, transform .22s var(--rl-ez-pop), visibility .22s;\n  max-height: none;\n  overflow: visible;\n}\n.rlmain .rlcap > i::-webkit-scrollbar {\n  width: 0;\n  height: 0;\n}\n\n/* 小三角箭头 */\n.rlmain .rlcap > i::before {\n  content: '';\n  position: absolute;\n  bottom: 100%;\n  left: 14px;\n  width: 0;\n  height: 0;\n  border: 5px solid transparent;\n  border-bottom-color: var(--rl-order-d);\n}\n\n.rlmain .rlcap > i::after {\n  content: '';\n  position: absolute;\n  bottom: 100%;\n  left: 15px;\n  width: 0;\n  height: 0;\n  border: 4px solid transparent;\n  border-bottom-color: rgba(12, 16, 28, .98);\n}\n\n.rlmain .rlcap:hover {\n  z-index: 9999;\n  color: var(--rl-order);\n  border-color: var(--rl-order-d);\n  box-shadow: 0 0 10px rgba(77, 208, 255, .45), 0 0 20px rgba(77, 208, 255, .18);\n  transform: translateY(-1px);\n}\n\n.rlmain .rlcap:hover > i {\n  opacity: 1;\n  visibility: visible;\n  transform: translateY(0) scale(1);\n  pointer-events: auto;\n}\n\n/* 悬停标签时提升所在行层级，确保 tooltip 不被相邻行遮挡 */\n.rlmain .rlrow:has(.rlcap:hover) {\n  z-index: 9000;\n}\n\n.rlmain .rlgrid2:has(.rlcap:hover),\n.rlmain .rlgrid3:has(.rlcap:hover) {\n  position: relative;\n  z-index: 9000;\n}\n\n/* 标签内详情标题行（粗体） */\n.rlmain .rlcap > i > b {\n  display: block;\n  margin-bottom: 3px;\n  font-size: 11px;\n  font-weight: 700;\n  color: var(--rl-order);\n  letter-spacing: .6px;\n  text-shadow: 0 0 6px rgba(77, 208, 255, .5);\n}\n\n/* 标签内详情分隔线 */\n.rlmain .rlcap > i > hr {\n  height: 1px;\n  margin: 4px 0;\n  border: 0;\n  background: linear-gradient(90deg, var(--rl-order-d), transparent);\n}\n\n/* 属性数值悬停（不改变数字显示，悬停显示效果说明） */\n.rlmain .rlcap.rlcap-num,\n.rlmain .rlcap.rlcap-num:hover {\n  padding: 0;\n  margin: 0;\n  color: inherit;\n  background: transparent;\n  border: 0;\n  border-radius: 0;\n  box-shadow: none;\n  transform: none;\n}\n\n.rlmain .rlcap.rlcap-num > i {\n  left: -4px;\n}\n\n/* ---------- 阵营色穷举 ---------- */\n.rlmain [fc=\"order\"] {\n  color: var(--rl-order);\n  border-color: rgba(77, 208, 255, .5);\n  background: rgba(77, 208, 255, .1);\n  text-shadow: 0 0 6px rgba(77, 208, 255, .45);\n}\n\n.rlmain [fc=\"chaos\"] {\n  color: var(--rl-chaos);\n  border-color: rgba(255, 45, 85, .5);\n  background: rgba(255, 45, 85, .1);\n  text-shadow: 0 0 6px rgba(255, 45, 85, .5);\n}\n\n.rlmain [fc=\"nature\"] {\n  color: var(--rl-nature);\n  border-color: rgba(61, 220, 151, .5);\n  background: rgba(61, 220, 151, .1);\n  text-shadow: 0 0 6px rgba(61, 220, 151, .45);\n}\n\n.rlmain [fc=\"none\"] {\n  color: var(--rl-txt2);\n  border-color: var(--rl-line2);\n  background: rgba(28, 36, 64, .6);\n}\n\n/* ---------- 品质色穷举 七级 ---------- */\n.rlmain [q=\"1\"] { color: #9aa8bd; border-color: rgba(154, 168, 189, .4); }\n.rlmain [q=\"2\"] { color: #5fd97a; border-color: rgba(95, 217, 122, .45); box-shadow: 0 0 4px rgba(95, 217, 122, .35); }\n.rlmain [q=\"3\"] { color: #4da6ff; border-color: rgba(77, 166, 255, .5); box-shadow: 0 0 4px rgba(77, 166, 255, .35); }\n.rlmain [q=\"4\"] { color: #b968ff; border-color: rgba(185, 104, 255, .5); box-shadow: 0 0 10px rgba(185, 104, 255, .45), 0 0 20px rgba(185, 104, 255, .18); }\n.rlmain [q=\"5\"] { color: var(--rl-gold); border-color: rgba(255, 201, 77, .55); box-shadow: 0 0 10px rgba(255, 201, 77, .45), 0 0 20px rgba(255, 201, 77, .18); }\n.rlmain [q=\"6\"] {\n  color: #d8952a;\n  border-color: rgba(216, 149, 42, .6);\n  background: linear-gradient(90deg, rgba(216, 149, 42, .16), rgba(90, 55, 10, .08));\n  box-shadow: 0 0 8px rgba(216, 149, 42, .6), 0 0 24px rgba(216, 149, 42, .3), 0 0 48px rgba(216, 149, 42, .12);\n}\n.rlmain [q=\"7\"] {\n  color: #ff5ce0;\n  border-color: rgba(255, 92, 224, .65);\n  background: linear-gradient(90deg, rgba(255, 92, 224, .18), rgba(77, 208, 255, .1));\n  box-shadow: 0 0 8px rgba(255, 92, 224, .6), 0 0 24px rgba(255, 92, 224, .3), 0 0 48px rgba(255, 92, 224, .12);\n  animation: rlEternal 3.4s ease-in-out infinite;\n}\n\n@keyframes rlEternal {\n  0%, 100% { filter: hue-rotate(0deg); }\n  50% { filter: hue-rotate(38deg); }\n}\n\n/* ---------- 卡片容器（切角 + drop-shadow 发光） ---------- */\n.rlmain .rlcard {\n  position: relative;\n  box-sizing: border-box;\n  padding: 11px 13px;\n  margin: 0 0 9px;\n  background: linear-gradient(150deg, rgba(28, 36, 64, .85), rgba(14, 18, 32, .92));\n  border: 1px solid var(--rl-line2);\n  clip-path: polygon(var(--rl-cut) 0, 100% 0, 100% calc(100% - var(--rl-cut)), calc(100% - var(--rl-cut)) 100%, 0 100%, 0 var(--rl-cut));\n  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, .5));\n  transition: border-color .2s ease-out, filter .25s ease-out, transform .25s var(--rl-ez-panel);\n}\n\n.rlmain .rlcard:hover {\n  border-color: var(--rl-order-d);\n  filter: drop-shadow(0 0 10px rgba(77, 208, 255, .35)) drop-shadow(0 3px 8px rgba(0, 0, 0, .55));\n  transform: translateY(-2px);\n}\n\n/* 悬停标签时临时移除卡片切角裁剪，让 tooltip 能溢出显示 */\n.rlmain .rlcard:has(.rlcap:hover) {\n  position: relative;\n  z-index: 100;\n  clip-path: none;\n}\n\n/* 卡片右上角机械标记 */\n.rlmain .rlcard::before {\n  content: '';\n  position: absolute;\n  top: 6px;\n  right: 8px;\n  width: 16px;\n  height: 8px;\n  background:\n    linear-gradient(90deg, var(--rl-order) 0 4px, transparent 4px 6px, var(--rl-order) 6px 10px, transparent 10px 12px, var(--rl-chaos) 12px 16px);\n  opacity: .55;\n}\n\n/* 卡片左侧氛围竖光 */\n.rlmain .rlcard::after {\n  content: '';\n  position: absolute;\n  top: 12px;\n  bottom: 12px;\n  left: 0;\n  width: 2px;\n  background: linear-gradient(180deg, var(--rl-order), transparent);\n  opacity: 0;\n  transition: opacity .25s ease-out;\n}\n\n.rlmain .rlcard:hover::after {\n  opacity: 1;\n}\n\n/* 头像位 —— 纯 CSS 生成的占位纹样 */\n.rlmain .rlava {\n  position: relative;\n  flex: 0 0 auto;\n  width: 46px;\n  height: 46px;\n  background:\n    radial-gradient(circle at 50% 38%, rgba(77, 208, 255, .3), transparent 62%),\n    linear-gradient(145deg, rgba(34, 48, 82, .95), rgba(8, 10, 16, .98));\n  border: 1px solid var(--rl-line2);\n  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);\n  transition: filter .25s ease-out;\n}\n\n.rlmain .rlava::before {\n  content: '';\n  position: absolute;\n  inset: 0;\n  background-color: var(--rl-order);\n  opacity: .75;\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='9' r='3.4' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M5.6 20c0-3.6 2.9-6.2 6.4-6.2s6.4 2.6 6.4 6.2' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='9' r='3.4' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M5.6 20c0-3.6 2.9-6.2 6.4-6.2s6.4 2.6 6.4 6.2' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E\");\n  -webkit-mask-size: 30px 30px;\n  mask-size: 30px 30px;\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  -webkit-mask-position: center;\n  mask-position: center;\n}\n\n.rlmain .rlcard:hover .rlava {\n  filter: drop-shadow(0 0 8px rgba(77, 208, 255, .6));\n}\n\n/* 锁定标记 */\n.rlmain .rllock {\n  display: inline-block;\n  width: 13px;\n  height: 13px;\n  vertical-align: -2px;\n  background-color: var(--rl-gold);\n  filter: drop-shadow(0 0 5px rgba(255, 201, 77, .8));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='5' y='10.4' width='14' height='10.4' rx='1.4' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M8.4 10.4V7.8a3.6 3.6 0 0 1 7.2 0v2.6' fill='none' stroke='black' stroke-width='1.7'/%3E%3Ccircle cx='12' cy='15.4' r='1.3' fill='black'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='5' y='10.4' width='14' height='10.4' rx='1.4' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M8.4 10.4V7.8a3.6 3.6 0 0 1 7.2 0v2.6' fill='none' stroke='black' stroke-width='1.7'/%3E%3Ccircle cx='12' cy='15.4' r='1.3' fill='black'/%3E%3C/svg%3E\");\n  -webkit-mask-size: 13px 13px;\n  mask-size: 13px 13px;\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  animation: rlBreath 2.8s ease-in-out infinite;\n}\n\n/* 分隔纹饰 */\n.rlmain .rldiv {\n  display: block;\n  height: 9px;\n  margin: 10px 0;\n  border: 0;\n  background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='9' viewBox='0 0 120 9'%3E%3Cpath d='M0 4.5h44M76 4.5h44' stroke='%23223052' stroke-width='1'/%3E%3Cpath d='M60 .8l5.4 3.7L60 8.2l-5.4-3.7Z' fill='none' stroke='%234dd0ff' stroke-width='1'/%3E%3Cpath d='M50 4.5h2.4M67.6 4.5H70' stroke='%23ffc94d' stroke-width='1'/%3E%3C/svg%3E\");\n  background-repeat: no-repeat;\n  background-position: center;\n  background-size: 100% 9px;\n  opacity: .8;\n}\n\n/* ---------- 弹幕拖动组件 ---------- */\n.rlmain .rldmbox {\n  position: relative;\n  box-sizing: border-box;\n  height: 200px;\n  margin: 6px 0 2px;\n  overflow-y: auto;\n  overflow-x: hidden;\n  overscroll-behavior: contain;\n  scroll-behavior: smooth;\n  background:\n    linear-gradient(180deg, rgba(5, 7, 12, .96) 0%, rgba(8, 10, 16, .7) 15%, rgba(8, 10, 16, .7) 85%, rgba(5, 7, 12, .96) 100%),\n    linear-gradient(90deg, rgba(34, 48, 82, .25), rgba(14, 18, 32, .15));\n  border: 1px solid var(--rl-line);\n  border-radius: 2px;\n  scrollbar-width: thin;\n  scrollbar-color: var(--rl-line2) transparent;\n  cursor: default;\n  touch-action: pan-y;\n  -webkit-user-select: none;\n  user-select: none;\n}\n\n/* WebKit 滚动条 */\n.rlmain .rldmbox::-webkit-scrollbar {\n  width: 4px;\n}\n\n.rlmain .rldmbox::-webkit-scrollbar-track {\n  background: transparent;\n}\n\n.rlmain .rldmbox::-webkit-scrollbar-thumb {\n  background: var(--rl-line2);\n  border-radius: 2px;\n}\n\n.rlmain .rldmbox::-webkit-scrollbar-thumb:hover {\n  background: var(--rl-order-d);\n}\n\n/* 弹幕列表容器 —— 静态布局，靠父级滚动 */\n.rlmain .rldmlist {\n  position: relative;\n  padding: 6px 10px;\n}\n\n/* 单条弹幕 */\n.rlmain .rldm {\n  display: flex;\n  align-items: baseline;\n  gap: 7px;\n  padding: 4px 0;\n  font-size: 11.5px;\n  line-height: 1.5;\n  border-bottom: 1px dashed rgba(34, 48, 82, .4);\n}\n\n.rlmain .rldm:last-child {\n  border-bottom: 0;\n}\n\n.rlmain .rldm > .rltag {\n  flex: 0 0 auto;\n  min-width: 48px;\n  padding: 1px 6px;\n  font-size: 10px;\n  text-align: center;\n}\n\n.rlmain .rldm > span {\n  flex: 1 1 auto;\n  min-width: 0;\n  color: var(--rl-txt);\n  word-break: break-word;\n  white-space: normal;\n}\n\n/* ============================================================\n   7. 设置面板 —— 侧滑覆盖层\n   ============================================================ */\n.rlmain .rlmask {\n  position: absolute;\n  inset: 0;\n  z-index: 30;\n  background: rgba(3, 5, 9, .74);\n  opacity: 0;\n  visibility: hidden;\n  cursor: pointer;\n  transition: opacity .4s ease-out, visibility .4s;\n  -webkit-backdrop-filter: blur(3px);\n  backdrop-filter: blur(3px);\n}\n\n.rlmain input.rlck.rlst2:checked ~ .rlmask {\n  opacity: 1;\n  visibility: visible;\n}\n\n.rlmain .rlsetpanel {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 31;\n  display: flex;\n  flex-direction: column;\n  box-sizing: border-box;\n  width: 78%;\n  max-width: 330px;\n  padding: 0;\n  overflow: hidden;\n  background:\n    linear-gradient(200deg, rgba(28, 36, 64, .97) 0%, rgba(12, 16, 28, .99) 55%, rgba(5, 7, 12, .99) 100%);\n  border-left: 1px solid var(--rl-order-d);\n  box-shadow: -14px 0 40px rgba(0, 0, 0, .78), inset 1px 0 0 rgba(77, 208, 255, .22);\n  transform: translateX(103%);\n  transition: transform .5s var(--rl-ez-slide);\n}\n\n.rlmain input.rlck.rlst2:checked ~ .rlsetpanel {\n  transform: translateX(0);\n}\n\n/* 设置面板左缘能量流 */\n.rlmain .rlsetpanel::before {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 2px;\n  height: 40%;\n  background: linear-gradient(180deg, transparent, var(--rl-order), var(--rl-gold), transparent);\n  filter: drop-shadow(0 0 6px rgba(77, 208, 255, .9));\n  animation: rlScanY 3.8s linear infinite;\n}\n\n@keyframes rlScanY {\n  0% { transform: translateY(-105%); }\n  100% { transform: translateY(355%); }\n}\n\n/* 设置面板背景网格 */\n.rlmain .rlsetpanel::after {\n  content: '';\n  position: absolute;\n  inset: 0;\n  z-index: 0;\n  pointer-events: none;\n  opacity: .3;\n  background-image:\n    linear-gradient(rgba(34, 48, 82, .55) 1px, transparent 1px),\n    linear-gradient(90deg, rgba(34, 48, 82, .55) 1px, transparent 1px);\n  background-size: 26px 26px;\n  -webkit-mask-image: radial-gradient(ellipse 90% 70% at 70% 20%, #000, transparent 78%);\n  mask-image: radial-gradient(ellipse 90% 70% at 70% 20%, #000, transparent 78%);\n}\n\n/* 设置面板标题栏 */\n.rlmain .rlsethd {\n  position: relative;\n  z-index: 2;\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center;\n  gap: 9px;\n  box-sizing: border-box;\n  height: 56px;\n  padding: 0 12px 0 15px;\n  background: linear-gradient(180deg, rgba(34, 48, 82, .9), rgba(14, 18, 32, .95));\n  border-bottom: 1px solid var(--rl-order-d);\n}\n\n.rlmain .rlsethd > i {\n  flex: 0 0 auto;\n  width: 19px;\n  height: 19px;\n  background-color: var(--rl-order);\n  filter: drop-shadow(0 0 6px rgba(77, 208, 255, .8));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3.2' y='4.4' width='17.6' height='15.2' rx='1.6' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M3.2 8.6h17.6' stroke='black' stroke-width='1.5'/%3E%3Ccircle cx='6.4' cy='6.5' r='.8' fill='black'/%3E%3Ccircle cx='9' cy='6.5' r='.8' fill='black'/%3E%3Cpath d='M6.8 12.4h10.4M6.8 15.8h6.6' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3.2' y='4.4' width='17.6' height='15.2' rx='1.6' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M3.2 8.6h17.6' stroke='black' stroke-width='1.5'/%3E%3Ccircle cx='6.4' cy='6.5' r='.8' fill='black'/%3E%3Ccircle cx='9' cy='6.5' r='.8' fill='black'/%3E%3Cpath d='M6.8 12.4h10.4M6.8 15.8h6.6' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E\");\n  -webkit-mask-size: 19px 19px;\n  mask-size: 19px 19px;\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  -webkit-mask-position: center;\n  mask-position: center;\n}\n\n.rlmain .rlsethd > b {\n  flex: 1 1 auto;\n  font-size: 12.5px;\n  font-weight: 700;\n  color: var(--rl-order);\n  letter-spacing: 2.4px;\n  text-transform: uppercase;\n  text-shadow: 0 0 9px rgba(77, 208, 255, .55);\n}\n\n/* 关闭按钮 */\n.rlmain .rlclose {\n  position: relative;\n  flex: 0 0 auto;\n  width: 32px;\n  height: 32px;\n  cursor: pointer;\n  background: rgba(255, 45, 85, .1);\n  border: 1px solid rgba(255, 45, 85, .38);\n  border-radius: 2px;\n  transition: background .18s ease-out, border-color .18s ease-out, transform .2s var(--rl-ez-pop);\n  -webkit-tap-highlight-color: transparent;\n}\n\n.rlmain .rlclose::before {\n  content: '';\n  position: absolute;\n  inset: 0;\n  background-color: var(--rl-chaos);\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.4 6.4l11.2 11.2M17.6 6.4L6.4 17.6' stroke='black' stroke-width='2.1' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.4 6.4l11.2 11.2M17.6 6.4L6.4 17.6' stroke='black' stroke-width='2.1' stroke-linecap='round'/%3E%3C/svg%3E\");\n  -webkit-mask-size: 17px 17px;\n  mask-size: 17px 17px;\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  -webkit-mask-position: center;\n  mask-position: center;\n  transition: transform .25s var(--rl-ez-pop);\n}\n\n.rlmain .rlclose:hover {\n  background: rgba(255, 45, 85, .24);\n  border-color: var(--rl-chaos);\n  transform: rotate(90deg);\n}\n\n.rlmain .rlclose:hover::before {\n  filter: drop-shadow(0 0 7px rgba(255, 45, 85, .95));\n}\n\n.rlmain .rlclose:active {\n  transform: rotate(90deg) scale(.9);\n}\n\n/* 设置面板内容区 */\n.rlmain .rlsetbd {\n  position: relative;\n  z-index: 2;\n  flex: 1 1 auto;\n  min-height: 0;\n  box-sizing: border-box;\n  padding: 14px 14px 20px;\n  overflow-x: hidden;\n  overflow-y: auto;\n  scrollbar-width: thin;\n  scrollbar-color: var(--rl-order-d) transparent;\n  overscroll-behavior: contain;\n}\n\n.rlmain .rlsetbd::-webkit-scrollbar {\n  width: 6px;\n}\n\n.rlmain .rlsetbd::-webkit-scrollbar-track {\n  background: rgba(5, 7, 12, .6);\n}\n\n.rlmain .rlsetbd::-webkit-scrollbar-thumb {\n  background: linear-gradient(180deg, var(--rl-order-d), var(--rl-line2));\n}\n\n/* 设置分组标题 */\n.rlmain .rlsetgrp {\n  display: flex;\n  align-items: center;\n  gap: 7px;\n  margin: 14px 0 8px;\n  font-size: 10px;\n  font-weight: 700;\n  color: var(--rl-txt3);\n  letter-spacing: 2px;\n  text-transform: uppercase;\n}\n\n.rlmain .rlsetgrp:first-child {\n  margin-top: 2px;\n}\n\n.rlmain .rlsetgrp::after {\n  content: '';\n  flex: 1 1 auto;\n  height: 1px;\n  background: linear-gradient(90deg, var(--rl-line2), transparent);\n}\n\n/* 设置条目 */\n.rlmain .rlsetitem {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  box-sizing: border-box;\n  padding: 9px 11px;\n  margin: 0 0 6px;\n  background: linear-gradient(140deg, rgba(28, 36, 64, .72), rgba(14, 18, 32, .8));\n  border: 1px solid var(--rl-line);\n  border-radius: 2px;\n  transition: border-color .2s ease-out, background .2s ease-out, transform .2s var(--rl-ez-panel);\n}\n\n.rlmain .rlsetitem:hover {\n  background: linear-gradient(140deg, rgba(77, 208, 255, .13), rgba(14, 18, 32, .85));\n  border-color: var(--rl-order-d);\n  transform: translateX(3px);\n}\n\n.rlmain .rlsetitem > u {\n  display: flex;\n  flex: 1 1 auto;\n  flex-direction: column;\n  gap: 2px;\n  min-width: 0;\n  text-decoration: none;\n}\n\n.rlmain .rlsetitem > u > b {\n  font-size: 12px;\n  font-weight: 600;\n  color: var(--rl-txt);\n}\n\n.rlmain .rlsetitem > u > s {\n  font-size: 10px;\n  color: var(--rl-txt3);\n  text-decoration: none;\n  line-height: 1.5;\n}\n\n/* 设置项右侧数值/开关外观 */\n.rlmain .rlsetval {\n  flex: 0 0 auto;\n  padding: 3px 9px;\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 11px;\n  font-weight: 700;\n  color: var(--rl-order);\n  letter-spacing: .8px;\n  background: rgba(77, 208, 255, .1);\n  border: 1px solid var(--rl-order-d);\n  border-radius: 2px;\n  white-space: nowrap;\n  transition: box-shadow .2s ease-out;\n}\n\n.rlmain .rlsetitem:hover .rlsetval {\n  box-shadow: 0 0 10px rgba(77, 208, 255, .45), 0 0 20px rgba(77, 208, 255, .18);\n}\n\n.rlmain .rlsetval[v=\"off\"] {\n  color: var(--rl-txt3);\n  background: rgba(28, 36, 64, .8);\n  border-color: var(--rl-line2);\n}\n\n.rlmain .rlsetval[v=\"on\"] {\n  color: var(--rl-nature);\n  background: rgba(61, 220, 151, .12);\n  border-color: rgba(61, 220, 151, .5);\n}\n\n/* Story区内容直显（放大说明文字·支持换行） */\n.rlmain .rlsetitem.rlsetstory > u > s {\n  font-size: 11.5px;\n  color: var(--rl-txt2);\n  line-height: 1.6;\n  white-space: normal;\n  word-break: break-word;\n}\n\n/* 自由开放模式下隐藏 Story 区（剧情模式才显示章节信息） */\n.rlmain .rlsetitem.rlmode-free ~ .rlsetgrp,\n.rlmain .rlsetitem.rlmode-free ~ .rlsetitem.rlsetstory {\n  display: none;\n}\n\n/* 设置项图标穷举 */\n.rlmain .rlseti {\n  flex: 0 0 auto;\n  width: 18px;\n  height: 18px;\n  background-color: var(--rl-txt2);\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  -webkit-mask-position: center;\n  mask-position: center;\n  -webkit-mask-size: 18px 18px;\n  mask-size: 18px 18px;\n  transition: background-color .2s ease-out, filter .2s ease-out;\n}\n\n.rlmain .rlsetitem:hover .rlseti {\n  background-color: var(--rl-order);\n  filter: drop-shadow(0 0 6px rgba(77, 208, 255, .8));\n}\n\n.rlmain .rlseti[s=\"style\"] {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 20l3-8 8-8 5 5-8 8Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M13.4 5.4l5.2 5.2' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 20l3-8 8-8 5 5-8 8Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M13.4 5.4l5.2 5.2' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E\");\n}\n\n.rlmain .rlseti[s=\"len\"] {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 6.4h18M3 12h13M3 17.6h8' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 6.4h18M3 12h13M3 17.6h8' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n.rlmain .rlseti[s=\"mode\"] {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 8h11a4 4 0 0 1 4 4v1.2a3.6 3.6 0 0 1-6.6 1.9 2.4 2.4 0 0 0-3.8 0A3.6 3.6 0 0 1 4.5 13.2V12a4 4 0 0 1 4-4Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M7.5 11.5v2M6.5 12.5h2' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3Ccircle cx='15.5' cy='11.6' r='.9' fill='black'/%3E%3Ccircle cx='17.6' cy='13' r='.9' fill='black'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 8h11a4 4 0 0 1 4 4v1.2a3.6 3.6 0 0 1-6.6 1.9 2.4 2.4 0 0 0-3.8 0A3.6 3.6 0 0 1 4.5 13.2V12a4 4 0 0 1 4-4Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M7.5 11.5v2M6.5 12.5h2' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3Ccircle cx='15.5' cy='11.6' r='.9' fill='black'/%3E%3Ccircle cx='17.6' cy='13' r='.9' fill='black'/%3E%3C/svg%3E\");\n}\n\n.rlmain .rlseti[s=\"info\"] {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9.2' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M12 10.6v6' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='7.4' r='1.1' fill='black'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9.2' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M12 10.6v6' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='7.4' r='1.1' fill='black'/%3E%3C/svg%3E\");\n}\n\n.rlmain .rlseti[s=\"chapter\"] {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 4.5h14v15H5Z' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M8 8.5h8M8 12h8M8 15.5h5' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 4.5h14v15H5Z' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M8 8.5h8M8 12h8M8 15.5h5' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n.rlmain .rlseti[s=\"npc\"] {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='7.5' r='3.2' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M5.4 20.4c0-3.6 3-6.4 6.6-6.4s6.6 2.8 6.6 6.4' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='7.5' r='3.2' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M5.4 20.4c0-3.6 3-6.4 6.6-6.4s6.6 2.8 6.6 6.4' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E\");\n}\n\n.rlmain .rlseti[s=\"timeline\"] {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M12 7v5l3.5 2' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M12 7v5l3.5 2' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n.rlmain .rlseti[s=\"next\"] {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3Cpath d='M13 6l6 6-6 6' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3Cpath d='M13 6l6 6-6 6' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");\n}\n\n/* 设置面板底部签名 */\n.rlmain .rlsetft {\n  position: relative;\n  z-index: 2;\n  flex: 0 0 auto;\n  padding: 9px 14px;\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 9px;\n  color: var(--rl-txt3);\n  letter-spacing: 1.6px;\n  text-align: center;\n  background: rgba(5, 7, 12, .8);\n  border-top: 1px solid var(--rl-line);\n}\n\n/* ============================================================\n   8. 容器查询自适应 —— 窄屏收缩策略\n   ============================================================ */\n\n@container rlbox (max-width: 460px) {\n  .rlmain .rlbtn span {\n    font-size: 9px;\n    letter-spacing: 0;\n  }\n  .rlmain .rlbtn i {\n    width: 22px;\n    height: 22px;\n    -webkit-mask-size: 22px 22px;\n    mask-size: 22px 22px;\n  }\n  .rlmain .rlslot {\n    padding: 0 9px;\n  }\n  .rlmain .rlslot > u > s {\n    display: none;\n  }\n  .rlmain .rlnavbar {\n    height: 66px;\n  }\n  .rlmain .rlactbd {\n  box-sizing: border-box;\n  max-height: 168px;\n  padding: 0 11px 9px;\n  overflow-x: hidden;\n  overflow-y: auto;\n  overscroll-behavior: contain;\n  scrollbar-width: thin;\n  scrollbar-color: var(--rl-line2) transparent;\n  transition: max-height .34s cubic-bezier(.4, 0, .2, 1),\n              padding .34s cubic-bezier(.4, 0, .2, 1);\n}\n  .rlmain .rlaci > span {\n    font-size: 11.5px;\n    line-height: 1.55;\n  }\n  .rlmain .rlsthd {\n    height: 40px;\n    padding-left: 11px;\n  }\n  .rlmain .rlstclose::after {\n    display: none;\n  }\n  .rlmain .rlstclose {\n    width: 30px;\n    padding: 0;\n    justify-content: center;\n  }\n}\n\n@container rlbox (max-width: 350px) {\n  .rlmain .rlbtn span {\n    display: none;\n  }\n  .rlmain .rlbtn i {\n    width: 24px;\n    height: 24px;\n    -webkit-mask-size: 24px 24px;\n    mask-size: 24px 24px;\n  }\n  .rlmain .rlnavbar {\n    height: 54px;\n  }\n  .rlmain .rlsigil {\n    width: 46px;\n  }\n  .rlmain .rlslot.rlwrap {\n    display: none;\n  }\n  .rlmain .rlacthd > b::before {\n    content: '行动建议';\n  }\n  .rlmain .rlactbd {\n    max-height: 280px;\n    overflow-y: auto;\n  }\n  .rlmain .rlpn {\n    padding: 11px 11px 18px;\n  }\n  .rlmain .rlgrid2,\n  .rlmain .rlgrid3 {\n    grid-template-columns: minmax(0, 1fr);\n  }\n}\n\n/* 媒体查询兜底 —— 容器查询不支持时的降级 */\n@media (max-width: 420px) {\n  .rlmain {\n    height: calc(100vh - 152px);\n    height: calc(100dvh - 152px);\n    min-height: 430px;\n    max-height: none;\n    font-size: 12.5px;\n    margin: 1px0;\n  }\n  .rlmain .rlbody {\n    padding: 13px 13px 18px 24px;\n  }\n  .rlmain .rlbody p {\n    font-size: 13px;\n    line-height: 1.85;\n  }\n\n  .rlmain .rlsetpanel {\n    width: auto;\n    max-width: 90%;}\n\n  .rlmain .rlactbd {\n    max-height: 280px;\n    overflow-y: auto;\n  }\n}\n\n@media (max-width: 420px) {\n  .rlmain .rlactbd {\n    max-height: 140px;\n    overflow-y: auto;\n  }\n  .rlmain .rlaci {\n    padding: 5px 8px 5px 7px;\n  }\n}\n\n/* 减弱动画偏好 */\n@media (prefers-reduced-motion: reduce) {\n  .rlmain *,\n  .rlmain *::before,\n  .rlmain *::after {\n    animation-duration: .01ms !important;\n    animation-iteration-count: 1 !important;\n    transition-duration: .01ms !important;\n  }\n}\n\n\n/* ============================================================\n   9. 【重构】阅读区容器 —— 面板覆盖式布局的定位基准\n   ============================================================ */\n.rlmain .rlview {\n  position: relative;\n  flex: 1 1 auto;\n  min-height: 220px;\n  display: flex;\n  flex-direction: column;\n  overflow: visible;\n}\n\n/* 正文改为 rlview 的子项，保留原有内部样式 */\n.rlmain .rlview > .rlbody {\n  flex: 1 1 auto;\n  min-height: 0;\n}\n\n/* ============================================================\n   10. 【重构】面板舞台 —— 绝对定位覆盖层，独占阅读区全高\n   ============================================================ */\n.rlmain .rlstage {\n  position: absolute;\n  inset: 0;\n  z-index: 20;\n  display: flex;\n  flex-direction: column;\n  box-sizing: border-box;\n  background:\n    radial-gradient(ellipse 100% 60% at 50% 0%, rgba(77, 208, 255, .1), transparent 66%),\n    linear-gradient(178deg, rgba(16, 21, 36, .995) 0%, rgba(9, 12, 21, .998) 60%, rgba(5, 7, 12, 1) 100%);\n  opacity: 0;\n  visibility: hidden;\n  transform: translateY(16px);\n  pointer-events: none;\n  transition:\n    opacity .26s ease-in,\n    transform .26s ease-in,\n    visibility .26s;\n}\n\n/* 七路穷举：任一面板 radio 选中即展开舞台 */\n.rlmain input.rlrd.rlr0:checked ~ .rlview .rlstage,\n.rlmain input.rlrd.rlr1:checked ~ .rlview .rlstage,\n.rlmain input.rlrd.rlr2:checked ~ .rlview .rlstage,\n.rlmain input.rlrd.rlr3:checked ~ .rlview .rlstage,\n.rlmain input.rlrd.rlr4:checked ~ .rlview .rlstage,\n.rlmain input.rlrd.rlr5:checked ~ .rlview .rlstage {\n  opacity: 1;\n  visibility: visible;\n  transform: translateY(0);\n  pointer-events: auto;\n  transition:\n    opacity .32s ease-out,\n    transform .42s var(--rl-ez-panel),\n    visibility .32s;\n}\n\n/* 舞台顶部装饰扫描线 */\n.rlmain .rlstage::before {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 3;\n  width: 30%;\n  height: 1px;\n  background: linear-gradient(90deg, transparent, var(--rl-order), var(--rl-gold), transparent);\n  filter: drop-shadow(0 0 5px rgba(77, 208, 255, .9));\n  animation: rlScanX 4.6s linear infinite;\n}\n\n/* ---------- 舞台头部：标题 + 关闭 ---------- */\n.rlmain .rlsthd {\n  position: relative;\n  z-index: 2;\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center;\n  gap: 9px;\n  box-sizing: border-box;\n  height: 44px;\n  padding: 0 8px 0 13px;\n  background: linear-gradient(180deg, rgba(34, 48, 82, .82), rgba(16, 21, 36, .9));\n  border-bottom: 1px solid var(--rl-line2);\n  box-shadow: 0 3px 14px rgba(0, 0, 0, .5);\n}\n\n.rlmain .rlsthd > i {\n  position: relative;\n  flex: 0 0 auto;\n  width: 3px;\n  height: 16px;\n  background: linear-gradient(180deg, var(--rl-order), var(--rl-chaos));\n  filter: drop-shadow(0 0 5px rgba(77, 208, 255, .85));\n}\n\n.rlmain .rlsthd > b {\n  flex: 1 1 auto;\n  min-width: 0;\n  overflow: hidden;\n  font-size: 12px;\n  font-weight: 700;\n  color: var(--rl-order);\n  letter-spacing: 2.2px;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  text-shadow: 0 0 9px rgba(77, 208, 255, .5);\n}\n\n/* 六路标题注入 —— CSS 生成，AI 不必输出 */\n.rlmain input.rlrd.rlr0:checked ~ .rlview .rlsthd > b::before { content: '主角信息 / CHARACTER'; }\n.rlmain input.rlrd.rlr1:checked ~ .rlview .rlsthd > b::before { content: '互动角色 / CONTACT'; }\n.rlmain input.rlrd.rlr2:checked ~ .rlview .rlsthd > b::before { content: '世界联络平台 / CHANNEL'; }\n.rlmain input.rlrd.rlr3:checked ~ .rlview .rlsthd > b::before { content: '地区与任务 / REGION'; }\n.rlmain input.rlrd.rlr4:checked ~ .rlview .rlsthd > b::before { content: '关系网 / RELATION'; }\n.rlmain input.rlrd.rlr5:checked ~ .rlview .rlsthd > b::before { content: '过往记忆 / ARCHIVE'; }\n\n/* 舞台关闭按钮 —— 指向空档位 radio */\n.rlmain .rlstclose {\n  position: relative;\n  flex: 0 0 auto;\n  display: flex;\n  align-items: center;\n  gap: 5px;\n  box-sizing: border-box;\n  height: 28px;\n  padding: 0 10px 0 8px;\n  cursor: pointer;\n  background: rgba(255, 45, 85, .1);\n  border: 1px solid rgba(255, 45, 85, .34);\n  border-radius: 2px;\n  transition: background .18s ease-out, border-color .18s ease-out, transform .2s var(--rl-ez-pop);\n  -webkit-tap-highlight-color: transparent;\n  user-select: none;\n}\n\n.rlmain .rlstclose::before {\n  content: '';\n  flex: 0 0 auto;\n  width: 14px;\n  height: 14px;\n  background-color: var(--rl-chaos);\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.4 5.4 7.8 12l6.6 6.6' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.4 5.4 7.8 12l6.6 6.6' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");\n  -webkit-mask-size: 14px 14px;\n  mask-size: 14px 14px;\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  -webkit-mask-position: center;\n  mask-position: center;\n  transition: transform .2s var(--rl-ez-pop);\n}\n\n.rlmain .rlstclose::after {\n  content: '返回正文';\n  font-size: 10px;\n  font-weight: 700;\n  color: var(--rl-chaos);\n  letter-spacing: 1px;\n  white-space: nowrap;\n}\n\n.rlmain .rlstclose:hover {\n  background: rgba(255, 45, 85, .22);\n  border-color: var(--rl-chaos);\n  transform: translateX(-2px);\n}\n\n.rlmain .rlstclose:hover::before {\n  transform: translateX(-3px);\n  filter: drop-shadow(0 0 6px rgba(255, 45, 85, .95));\n}\n\n.rlmain .rlstclose:active {\n  transform: scale(.95);\n}\n\n/* ---------- 舞台内容宿主 ---------- */\n.rlmain .rlstbd {\n  position: relative;\n  flex: 1 1 auto;\n  min-height: 120px;\n}\n\n/* 面板本体：绝对定位堆叠，高度由舞台决定 */\n.rlmain .rlpn {\n  position: absolute;\n  inset: 0;\n  box-sizing: border-box;\n  padding: 13px 14px 34px;\n  overflow-x: hidden;\n  overflow-y: auto;\n  opacity: 0;\n  visibility: hidden;\n  pointer-events: none;\n  scrollbar-width: thin;\n  scrollbar-color: var(--rl-line2) transparent;\n  scrollbar-gutter: stable;\n  overscroll-behavior: contain;\n  transition: opacity .2s ease-in, visibility .2s;\n}\n\n.rlmain .rlpn::-webkit-scrollbar {\n  width: 7px;\n}\n\n.rlmain .rlpn::-webkit-scrollbar-track {\n  background: rgba(5, 7, 12, .7);\n  border-left: 1px solid rgba(34, 48, 82, .5);\n}\n\n.rlmain .rlpn::-webkit-scrollbar-thumb {\n  background: linear-gradient(180deg, var(--rl-order-d), var(--rl-line2));\n  box-shadow: inset 0 0 3px rgba(77, 208, 255, .45);\n}\n\n.rlmain .rlpn::-webkit-scrollbar-thumb:hover {\n  background: linear-gradient(180deg, var(--rl-order), var(--rl-order-d));\n}\n\n/* 六路面板显隐穷举 */\n.rlmain input.rlrd.rlr0:checked ~ .rlview .rlstbd > .rlpn.rlp0,\n.rlmain input.rlrd.rlr1:checked ~ .rlview .rlstbd > .rlpn.rlp1,\n.rlmain input.rlrd.rlr2:checked ~ .rlview .rlstbd > .rlpn.rlp2,\n.rlmain input.rlrd.rlr3:checked ~ .rlview .rlstbd > .rlpn.rlp3,\n.rlmain input.rlrd.rlr4:checked ~ .rlview .rlstbd > .rlpn.rlp4,\n.rlmain input.rlrd.rlr5:checked ~ .rlview .rlstbd > .rlpn.rlp5 {\n  opacity: 1;\n  visibility: visible;\n  pointer-events: auto;\n  transition: opacity .34s ease-out .06s, visibility .34s;\n}\n\n/* 面板内子块错峰入场 */\n.rlmain .rlpn > * {\n  animation: rlItemIn .5s var(--rl-ez-panel) both;\n}\n\n.rlmain .rlpn > *:nth-child(1) { animation-delay: .06s; }\n.rlmain .rlpn > *:nth-child(2) { animation-delay: .1s; }\n.rlmain .rlpn > *:nth-child(3) { animation-delay: .14s; }\n.rlmain .rlpn > *:nth-child(4) { animation-delay: .18s; }\n.rlmain .rlpn > *:nth-child(5) { animation-delay: .22s; }\n.rlmain .rlpn > *:nth-child(6) { animation-delay: .26s; }\n.rlmain .rlpn > *:nth-child(7) { animation-delay: .3s; }\n.rlmain .rlpn > *:nth-child(8) { animation-delay: .34s; }\n.rlmain .rlpn > *:nth-child(n+9) { animation-delay: .38s; }\n\n@keyframes rlItemIn {\n  from {\n    opacity: 0;\n    transform: translateY(10px);\n  }\n  to {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n\n/* 面板底部溢出淡出提示 —— 暗示可继续滚动 */\n.rlmain .rlstbd::after {\n  content: '';\n  position: absolute;\n  right: 7px;\n  bottom: 0;\n  left: 0;\n  z-index: 2;\n  height: 26px;\n  background: linear-gradient(180deg, transparent, rgba(6, 8, 15, .95));\n  pointer-events: none;\n}\n\n/* ---------- 面板内双列网格组件 ---------- */\n.rlmain .rlgrid2 {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  gap: 4px 9px;\n  margin: 0 0 9px;\n}\n\n.rlmain .rlgrid3 {\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n  gap: 4px 8px;\n  margin: 0 0 9px;\n}\n\n/* ============================================================\n   11. 【新增】行动建议区 —— 常驻可见，可折叠\n   ============================================================ */\n.rlmain .rlact {\n  position: relative;\n  z-index: 25;\n  flex: 0 0 auto;\n  box-sizing: border-box;\n  background: linear-gradient(180deg, rgba(16, 21, 36, .96), rgba(9, 12, 21, .98));\n  border-top: 1px solid var(--rl-line2);\n  box-shadow: 0 -4px 16px rgba(0, 0, 0, .45);\n}\n\n/* 顶缘能量流 */\n.rlmain .rlact::before {\n  content: '';\n  position: absolute;\n  top: -1px;\n  left: 0;\n  width: 26%;\n  height: 1px;\n  background: linear-gradient(90deg, transparent, var(--rl-gold), transparent);\n  filter: drop-shadow(0 0 4px rgba(255, 201, 77, .85));\n  animation: rlScanX 6.2s linear infinite;\n}\n\n/* ---------- 折叠头部 ---------- */\n.rlmain .rlacthd {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  box-sizing: border-box;\n  height: 31px;\n  padding: 0 11px;\n  cursor: pointer;\n  transition: background .18s ease-out;\n  -webkit-tap-highlight-color: transparent;\n  user-select: none;\n}\n\n.rlmain .rlacthd:hover {\n  background: rgba(255, 201, 77, .07);\n}\n\n.rlmain .rlacthd > i {\n  flex: 0 0 auto;\n  width: 15px;\n  height: 15px;\n  background-color: var(--rl-gold);\n  filter: drop-shadow(0 0 5px rgba(255, 201, 77, .7));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.2 2.4 4.6 13.8h5.4l-1.4 7.8 9.4-11.8h-5.6Z' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.2 2.4 4.6 13.8h5.4l-1.4 7.8 9.4-11.8h-5.6Z' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E\");\n  -webkit-mask-size: 15px 15px;\n  mask-size: 15px 15px;\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  -webkit-mask-position: center;\n  mask-position: center;\n  animation: rlBreath 2.8s ease-in-out infinite;\n}\n\n.rlmain .rlacthd > b {\n  flex: 1 1 auto;\n  font-size: 10.5px;\n  font-weight: 700;\n  color: var(--rl-gold);\n  letter-spacing: 1.8px;\n}\n\n.rlmain .rlacthd > b::before {\n  content: '行动建议 / ACTION';\n}\n\n.rlmain .rlacthd > b::after {\n  content: ' ×' attr(n);\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 10px;\n  color: var(--rl-txt3);\n  letter-spacing: 0;\n}\n\n/* 折叠箭头 */\n.rlmain .rlactar {\n  flex: 0 0 auto;\n  width: 15px;\n  height: 15px;\n  background-color: var(--rl-txt2);\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.4 14.4 12 7.8l6.6 6.6' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.4 14.4 12 7.8l6.6 6.6' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");\n  -webkit-mask-size: 15px 15px;\n  mask-size: 15px 15px;\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  -webkit-mask-position: center;\n  mask-position: center;\n  transform-origin: center;\n  transition: transform .34s cubic-bezier(.4, 0, .2, 1), background-color .18s ease-out;\n}\n\n.rlmain .rlacthd:hover .rlactar {\n  background-color: var(--rl-gold);\n}\n\n/* ---------- 建议列表 ---------- */\n.rlmain .rlactbd {\n  box-sizing: border-box;\n  max-height: 168px;\n  padding: 0 11px 9px;\n  overflow-x: hidden;\n  overflow-y: auto;\n  overscroll-behavior: contain;\n  scrollbar-width: thin;\n  scrollbar-color: var(--rl-line2) transparent;\n  transition: max-height .34s cubic-bezier(.4, 0, .2, 1),\n              padding .34s cubic-bezier(.4, 0, .2, 1);\n}\n\n.rlmain .rlactbd::-webkit-scrollbar {\n  width: 5px;\n}\n\n.rlmain .rlactbd::-webkit-scrollbar-track {\n  background: rgba(5, 7, 12, .6);\n}\n\n.rlmain .rlactbd::-webkit-scrollbar-thumb {\n  background: linear-gradient(180deg, var(--rl-gold-d), var(--rl-line2));\n  border-radius: 2px;\n}\n\n.rlmain .rlactbd::-webkit-scrollbar-thumb:hover {\n  background: linear-gradient(180deg, var(--rl-gold), var(--rl-gold-d));\n}\n\n/* 默认收起 - !important 确保覆盖容器查询，勾选后展开 */\n.rlmain input.rlck.rlac2:not(:checked) ~ .rlact .rlactbd {\n  max-height: 0 !important;\n  padding-top: 0 !important;\n  padding-bottom: 0 !important;\n  overflow: hidden !important;\n}\n\n.rlmain input.rlck.rlac2:not(:checked) ~ .rlact .rlactar {\n  transform: rotate(180deg);\n}\n\n/* ---------- 单条建议 ---------- */\n.rlmain .rlaci {\n  position: relative;\n  display: flex;\n  align-items: flex-start;\n  gap: 9px;\n  box-sizing: border-box;\n  padding: 6px 10px 6px 8px;\n  margin: 0 0 4px;\n  overflow: hidden;\n  background: linear-gradient(90deg, rgba(28, 36, 64, .68), rgba(20, 26, 44, .34));\n  border: 1px solid var(--rl-line);\n  border-left: 2px solid var(--rl-line2);\n  border-radius: 0 2px 2px 0;\n  cursor: pointer;\n  transition:\n    background .2s ease-out,\n    border-color .2s ease-out,\n    border-left-color .2s ease-out,\n    transform .22s var(--rl-ez-panel),\n    box-shadow .22s ease-out;\n}\n\n.rlmain .rlaci:last-child {\n  margin-bottom: 0;\n}\n\n/* 掠过光泽 */\n.rlmain .rlaci::before {\n  content: '';\n  position: absolute;\n  top: -50%;\n  left: -110%;\n  width: 45%;\n  height: 200%;\n  background: linear-gradient(90deg, transparent, rgba(180, 220, 255, .12), transparent);\n  transform: rotate(20deg);\n  transition: left .55s var(--rl-ez-panel);\n  pointer-events: none;\n}\n\n.rlmain .rlaci:hover::before {\n  left: 170%;\n}\n\n.rlmain .rlaci:hover {\n  background: linear-gradient(90deg, rgba(77, 208, 255, .14), rgba(20, 26, 44, .4));\n  border-color: var(--rl-order-d);\n  border-left-color: var(--rl-order);\n  transform: translateX(4px);\n  box-shadow: 0 0 10px rgba(77, 208, 255, .28);\n}\n\n/* 按下反馈 */\n.rlmain .rlaci:active {\n  transform: translateX(2px) scale(.995);\n}\n\n/* 序号章标 */\n.rlmain .rlaci > s {\n  flex: 0 0 auto;\n  box-sizing: border-box;\n  min-width: 22px;\n  padding: 1px 0;\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 10px;\n  font-weight: 700;\n  color: var(--rl-txt2);\n  text-align: center;\n  text-decoration: none;\n  letter-spacing: .5px;\n  background: rgba(5, 7, 12, .8);\n  border: 1px solid var(--rl-line2);\n  border-radius: 1px;\n  transition: color .2s ease-out, border-color .2s ease-out, background .2s ease-out;\n}\n\n.rlmain .rlaci:hover > s {\n  color: var(--rl-order);\n  background: rgba(77, 208, 255, .14);\n  border-color: var(--rl-order-d);\n}\n\n.rlmain .rlaci > span {\n  flex: 1 1 auto;\n  min-width: 0;\n  font-size: 12px;\n  line-height: 1.6;\n  color: var(--rl-txt);\n}\n\n/* ---------- 高风险条目 ---------- */\n.rlmain .rlaci[hi=\"1\"] {\n  background: linear-gradient(90deg, rgba(255, 45, 85, .13), rgba(20, 26, 44, .34));\n  border-color: rgba(255, 45, 85, .34);\n  border-left-color: var(--rl-chaos);\n}\n\n.rlmain .rlaci[hi=\"1\"] > s {\n  color: var(--rl-chaos);\n  background: rgba(255, 45, 85, .14);\n  border-color: rgba(255, 45, 85, .42);\n}\n\n.rlmain .rlaci[hi=\"1\"] > span::after {\n  content: 'RISK';\n  display: inline-block;\n  padding: 0 5px;\n  margin-left: 6px;\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 8.5px;\n  font-weight: 700;\n  color: var(--rl-chaos);\n  letter-spacing: 1.2px;\n  vertical-align: 1px;\n  background: rgba(255, 45, 85, .16);\n  border: 1px solid rgba(255, 45, 85, .45);\n  border-radius: 1px;\n  animation: rlBreath 1.6s ease-in-out infinite;\n}\n\n.rlmain .rlaci[hi=\"1\"]:hover {\n  background: linear-gradient(90deg, rgba(255, 45, 85, .24), rgba(20, 26, 44, .4));\n  border-color: var(--rl-chaos);\n  box-shadow: 0 0 8px rgba(255, 45, 85, .6), 0 0 24px rgba(255, 45, 85, .3), 0 0 48px rgba(255, 45, 85, .12);\n}\n\n.rlmain .rlaci[hi=\"1\"]:hover > s {\n  color: #fff;\n  background: rgba(255, 45, 85, .34);\n  border-color: var(--rl-chaos);\n}\n\n/* ============================================================\n   12. 【补充】容器查询与媒体查询更新\n   ============================================================ */\n@container rlbox (min-width: 620px) {\n  .rlmain .rlactbd {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 4px 9px;\n    max-height: 132px;\n    overflow-y: auto;\n  }\n  .rlmain .rlaci {\n    margin-bottom: 0;\n  }\n  .rlmain input.rlck.rlac2:not(:checked) ~ .rlact .rlactbd {\n    max-height: 0 !important;\n    padding-top: 0 !important;\n    padding-bottom: 0 !important;\n    overflow: hidden !important;\n  }\n}\n\n@media (max-width: 420px) {\n  .rlmain .rlactbd {\n    max-height: 140px;\n    overflow-y: auto;\n  }\n  .rlmain .rlaci {\n    padding: 5px 8px 5px 7px;\n  }\n}\n\n\n/* ============================================================\n   补丁：tooltip 防截断优化 —— 智能定位策略\n   ============================================================ */\n\n/* 方案二修正：基于父容器类型的智能对齐 */\n\n/* 双列网格：第2列右对齐 */\n.rlmain .rlgrid2 > *:nth-child(2n) .rlcap > i {\n  left: auto;\n  right: 0;\n}\n\n.rlmain .rlgrid2 > *:nth-child(2n) .rlcap > i::before {\n  left: auto;\n  right: 14px;\n}\n\n.rlmain .rlgrid2 > *:nth-child(2n) .rlcap > i::after {\n  left: auto;\n  right: 15px;\n}\n\n/* 三列网格：第3列右对齐 */\n.rlmain .rlgrid3 > *:nth-child(3n) .rlcap > i {\n  left: auto;\n  right: 0;\n}\n\n.rlmain .rlgrid3 > *:nth-child(3n) .rlcap > i::before {\n  left: auto;\n  right: 14px;\n}\n\n.rlmain .rlgrid3 > *:nth-child(3n) .rlcap > i::after {\n  left: auto;\n  right: 15px;\n}\n\n/* 三列网格：第2列居中（可选，避免偏移太远） */\n.rlmain .rlgrid3 > *:nth-child(3n-1) .rlcap > i {\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n.rlmain .rlgrid3 > *:nth-child(3n-1) .rlcap > i::before,\n.rlmain .rlgrid3 > *:nth-child(3n-1) .rlcap > i::after {\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n/* 方案三：提升层级，确保不被相邻元素遮挡 */\n.rlmain .rlcap:hover {\n  z-index: 100000;\n}\n\n.rlmain .rlcap:hover > i {\n  z-index: 100001;\n}\n\n/* ============================================================\n   13. 容错补丁层 —— 结构错位时的降级兜底\n   必须置于内置css最末尾（同权重靠后者胜）\n   ============================================================ */\n\n/* ---------- 13-1 面板寻址放宽：直接子 → 后代 ---------- */\n/* rlpn 被误嵌进别的 rlpn 时，仍能被选中态命中 */\n.rlmain input.rlrd.rlr0:checked ~ .rlview .rlstbd .rlpn.rlp0,\n.rlmain input.rlrd.rlr1:checked ~ .rlview .rlstbd .rlpn.rlp1,\n.rlmain input.rlrd.rlr2:checked ~ .rlview .rlstbd .rlpn.rlp2,\n.rlmain input.rlrd.rlr3:checked ~ .rlview .rlstbd .rlpn.rlp3,\n.rlmain input.rlrd.rlr4:checked ~ .rlview .rlstbd .rlpn.rlp4,\n.rlmain input.rlrd.rlr5:checked ~ .rlview .rlstbd .rlpn.rlp5 {\n  opacity: 1;\n  visibility: visible;\n  pointer-events: auto;\n  transition: opacity .34s ease-out .06s, visibility .34s;\n}\n\n/* ---------- 13-3 兄弟链重建：四大组件掉进 .rlview 时的双路寻址 ----------\n   :is(目标, .rlview) 让「直接兄弟」与「藏在 rlview 里」两种形态共用一条规则 */\n\n/* 导航按钮选中态 */\n.rlmain input.rlrd.rlr0:checked ~ :is(.rlnavbar, .rlview) .rlb0,\n.rlmain input.rlrd.rlr1:checked ~ :is(.rlnavbar, .rlview) .rlb1,\n.rlmain input.rlrd.rlr2:checked ~ :is(.rlnavbar, .rlview) .rlb2,\n.rlmain input.rlrd.rlr3:checked ~ :is(.rlnavbar, .rlview) .rlb3,\n.rlmain input.rlrd.rlr4:checked ~ :is(.rlnavbar, .rlview) .rlb4,\n.rlmain input.rlrd.rlr5:checked ~ :is(.rlnavbar, .rlview) .rlb5 {\n  background: linear-gradient(180deg, rgba(77, 208, 255, .2) 0%, rgba(20, 30, 54, .98) 62%, rgba(14, 18, 32, .99) 100%);\n}\n\n.rlmain input.rlrd.rlr0:checked ~ :is(.rlnavbar, .rlview) .rlb0 i,\n.rlmain input.rlrd.rlr1:checked ~ :is(.rlnavbar, .rlview) .rlb1 i,\n.rlmain input.rlrd.rlr2:checked ~ :is(.rlnavbar, .rlview) .rlb2 i,\n.rlmain input.rlrd.rlr3:checked ~ :is(.rlnavbar, .rlview) .rlb3 i,\n.rlmain input.rlrd.rlr4:checked ~ :is(.rlnavbar, .rlview) .rlb4 i,\n.rlmain input.rlrd.rlr5:checked ~ :is(.rlnavbar, .rlview) .rlb5 i {\n  background-color: var(--rl-order);\n  filter: drop-shadow(0 0 8px rgba(77, 208, 255, .95));\n  transform: translateY(-3px) scale(1.1);\n  animation: rlIconBreath 2.6s ease-in-out infinite;\n}\n\n.rlmain input.rlrd.rlr0:checked ~ :is(.rlnavbar, .rlview) .rlb0 span,\n.rlmain input.rlrd.rlr1:checked ~ :is(.rlnavbar, .rlview) .rlb1 span,\n.rlmain input.rlrd.rlr2:checked ~ :is(.rlnavbar, .rlview) .rlb2 span,\n.rlmain input.rlrd.rlr3:checked ~ :is(.rlnavbar, .rlview) .rlb3 span,\n.rlmain input.rlrd.rlr4:checked ~ :is(.rlnavbar, .rlview) .rlb4 span,\n.rlmain input.rlrd.rlr5:checked ~ :is(.rlnavbar, .rlview) .rlb5 span {\n  color: var(--rl-order);\n  font-weight: 700;\n  text-shadow: 0 0 8px rgba(77, 208, 255, .6);\n}\n\n.rlmain input.rlrd.rlr0:checked ~ :is(.rlnavbar, .rlview) .rlb0::after,\n.rlmain input.rlrd.rlr1:checked ~ :is(.rlnavbar, .rlview) .rlb1::after,\n.rlmain input.rlrd.rlr2:checked ~ :is(.rlnavbar, .rlview) .rlb2::after,\n.rlmain input.rlrd.rlr3:checked ~ :is(.rlnavbar, .rlview) .rlb3::after,\n.rlmain input.rlrd.rlr4:checked ~ :is(.rlnavbar, .rlview) .rlb4::after,\n.rlmain input.rlrd.rlr5:checked ~ :is(.rlnavbar, .rlview) .rlb5::after {\n  transform: scaleX(1);\n}\n\n/* 行动建议默认收起，勾选后展开 */\n.rlmain input.rlck.rlac2:not(:checked) ~ :is(.rlact, .rlview) .rlactbd {\n  max-height: 0 !important;\n  padding-top: 0 !important;\n  padding-bottom: 0 !important;\n  overflow: hidden !important;\n}\n\n.rlmain input.rlck.rlac2:not(:checked) ~ :is(.rlact, .rlview) .rlactar {\n  transform: rotate(180deg);\n}\n\n/* 设置按钮激活态 */\n.rlmain input.rlck.rlst2:checked ~ :is(.rltop, .rlview) .rlsetbtn {\n  background: linear-gradient(145deg, rgba(255, 45, 85, .28), rgba(14, 18, 32, .9));\n  border-color: var(--rl-chaos);\n}\n\n.rlmain input.rlck.rlst2:checked ~ :is(.rltop, .rlview) .rlsetbtn::before {\n  background-color: var(--rl-chaos);\n  filter: drop-shadow(0 0 8px rgba(255, 45, 85, .9));\n  transform: rotate(90deg);\n}\n\n/* 遮罩与设置面板（subject 是自身，只能显式双写） */\n.rlmain input.rlck.rlst2:checked ~ .rlview .rlmask {\n  opacity: 1;\n  visibility: visible;\n}\n\n.rlmain input.rlck.rlst2:checked ~ .rlview .rlsetpanel {\n  transform: translateX(0);\n}\n\n/* ---------- 13-4 错位后的定位与层叠修正 ---------- */\n/* 落进 rlview 的组件抬到舞台之上，不被 .rlstage 的 inset:0 吞掉 */\n.rlmain .rlview > .rlact,\n.rlmain .rlview > .rlnavbar {\n  position: relative;\n  z-index: 26;\n  flex: 0 0 auto;\n}\n\n/* rlview 是 z-index:2 的层叠上下文，设置面板会被 z6 的顶栏压住 → 整体抬升 */\n.rlmain .rlview:has(> .rlsetpanel),\n.rlmain .rlview:has(> .rlmask) {\n  z-index: 32;\n}\n\n/* absolute 的遮罩与面板会缩进阅读区 → 负偏移近似还原到整卡高度 */\n.rlmain .rlview > .rlmask,\n.rlmain .rlview > .rlsetpanel {\n  top: -58px;\n  bottom: -76px;\n}\n\n/* 导航条留在 rlview 内时，给滚动内容让出被遮挡的高度 */\n.rlmain .rlview:has(> .rlnavbar) .rlpn {\n  padding-bottom: 112px;\n}\n\n.rlmain .rlview:has(> .rlnavbar) .rlbody {\n  padding-bottom: 30px;\n}\n\n/* ---------- 13-5 卡片嵌套压平 ---------- */\n.rlmain .rlcard .rlcard {\n  margin: 9px 0 0;\n  padding: 9px 11px;\n  background: rgba(20, 26, 44, .5);\n  border-color: var(--rl-line);\n  clip-path: none;\n  filter: none;\n}\n\n.rlmain .rlcard .rlcard::before,\n.rlmain .rlcard .rlcard::after {\n  display: none;\n}\n\n.rlmain .rlcard .rlcard:hover {\n  transform: none;\n  filter: none;\n  border-color: var(--rl-order-d);\n}\n\n/* ---------- 13-6 裸露组件补壳 ---------- */\n/* 忘了包 .rlcard 的 rlrow / grid，也给一层卡片质感 */\n.rlmain .rlpn > .rlrow,\n.rlmain .rlpn > .rlgrid2,\n.rlmain .rlpn > .rlgrid3 {\n  box-sizing: border-box;\n  padding: 9px 11px;\n  margin: 0 0 9px;\n  background: linear-gradient(150deg, rgba(28, 36, 64, .85), rgba(14, 18, 32, .92));\n  border: 1px solid var(--rl-line2);\n  clip-path: polygon(var(--rl-cut) 0, 100% 0, 100% calc(100% - var(--rl-cut)), calc(100% - var(--rl-cut)) 100%, 0 100%, 0 var(--rl-cut));\n}\n\n.rlmain .rlpn > .rlrow {\n  border-left: 2px solid var(--rl-order-d);\n}\n\n/* 嵌套网格降为单列，防止列宽被挤成条 */\n.rlmain .rlgrid2 :is(.rlgrid2, .rlgrid3),\n.rlmain .rlgrid3 :is(.rlgrid2, .rlgrid3) {\n  grid-template-columns: minmax(0, 1fr);\n  margin-bottom: 0;\n}\n\n/* ---------- 13-7 杂标签兜底隐藏 ---------- */\n.rlmain think,\n.rlmain wldata,\n.rlmain anchor {\n  display: none !important;\n}\n\n/* ---------- 13-8 结构报警：舞台头部竖条变红 ----------\n   只有你认得这个信号，玩家只会以为是配色 */\n.rlmain:has(.rlcard .rlcard) .rlsthd > i,\n.rlmain:has(.rlpn .rlpn) .rlsthd > i,\n.rlmain:has(.rlview > .rlnavbar) .rlsthd > i,\n.rlmain:has(.rlview > .rlact) .rlsthd > i,\n.rlmain:has(.rlpn > .rlrow) .rlsthd > i {\n  width: 5px;\n  background: var(--rl-chaos);\n  filter: drop-shadow(0 0 7px rgba(255, 45, 85, .95));\n  animation: rlBreath 1s ease-in-out infinite;\n}\n\n/* ============================================================\n   14. tooltip 遮挡修复 —— 层叠上下文解锁 + 底部翻转\n   必须置于内置css最末尾\n   ============================================================ */\n\n/* ---------- 14-1 解开层级倒挂 ----------\n   rlview 抬到 navbar/act(25) 之上、mask(30)/setpanel(31) 之下。\n   rlstage 是 inset:0 限定在 rlview 内，与 navbar/act 物理不重叠，\n   未选中时 visibility:hidden + pointer-events:none，不会抢点击 */\n.rlmain .rlview {\n  z-index: 27;\n}\n\n/* 13-4 错位分支同步上调，保持设置面板仍在最上 */\n.rlmain .rlview:has(> .rlsetpanel),\n.rlmain .rlview:has(> .rlmask) {\n  z-index: 33;\n}\n\n/* 落进 rlview 的组件继续压住舞台 */\n.rlmain .rlview > .rlact,\n.rlmain .rlview > .rlnavbar {\n  z-index: 28;\n}\n\n/* ---------- 14-2 hover 时撤掉底部渐变遮罩 ---------- */\n.rlmain .rlstbd:has(.rlcap:hover)::after {\n  opacity: 0;\n  transition: opacity .18s ease-out;\n}\n\n/* ---------- 14-3 底部卡片 tooltip 向上翻转 ----------\n   CSS 无法感知距底距离，按结构位置近似：\n   面板内最后两张卡片、以及卡片内最后一组行，一律向上开 */\n.rlmain .rlpn > .rlcard:nth-last-child(-n+2) .rlcap > i,\n.rlmain .rlpn > .rlcard:last-child .rlcap > i {\n  top: auto;\n  bottom: 100%;\n  margin-top: 0;\n  margin-bottom: 6px;\n  transform: translateY(4px) scale(.96);\n}\n\n.rlmain .rlpn > .rlcard:nth-last-child(-n+2) .rlcap:hover > i,\n.rlmain .rlpn > .rlcard:last-child .rlcap:hover > i {\n  transform: translateY(0) scale(1);\n}\n\n/* 箭头翻到下沿 */\n.rlmain .rlpn > .rlcard:nth-last-child(-n+2) .rlcap > i::before,\n.rlmain .rlpn > .rlcard:last-child .rlcap > i::before {\n  bottom: auto;\n  top: 100%;\n  border-bottom-color: transparent;\n  border-top-color: var(--rl-order-d);\n}\n\n.rlmain .rlpn > .rlcard:nth-last-child(-n+2) .rlcap > i::after,\n.rlmain .rlpn > .rlcard:last-child .rlcap > i::after {\n  bottom: auto;\n  top: 100%;\n  border-bottom-color: transparent;\n  border-top-color: rgba(12, 16, 28, .98);\n}\n\n/* 向上翻转时保持列对齐规则（右列/中列） */\n.rlmain .rlpn > .rlcard:nth-last-child(-n+2) .rlgrid2 > *:nth-child(2n) .rlcap > i::before,\n.rlmain .rlpn > .rlcard:nth-last-child(-n+2) .rlgrid2 > *:nth-child(2n) .rlcap > i::after,\n.rlmain .rlpn > .rlcard:nth-last-child(-n+2) .rlgrid3 > *:nth-child(3n) .rlcap > i::before,\n.rlmain .rlpn > .rlcard:nth-last-child(-n+2) .rlgrid3 > *:nth-child(3n) .rlcap > i::after {\n  left: auto;\n  right: 14px;\n}\n\n/* ---------- 14-6 hover 链路层级链补齐 ----------\n   把从 rlstbd 到 rlcap 的每一环都抬起来，\n   防止中途某个 rlcard 的 filter/clip-path 重新造出裁剪盒 */\n.rlmain .rlstbd:has(.rlcap:hover) {\n  z-index: 200;\n}\n\n.rlmain .rlpn:has(.rlcap:hover) {\n  z-index: 201;\n}\n\n.rlmain .rlcard:has(.rlcap:hover) {\n  z-index: 202;\n  filter: none;\n}\n\n.rlmain .rlcard:has(.rlcap:hover):hover {\n  filter: none;\n}\n\n/* ============================================================\n   15. tooltip 全量展开 —— 去滚轮，一次性显示全部内容\n   必须置于内置css最末尾（在 14 之后）\n   ============================================================ */\n\n/* ---------- 15-3 向上翻转判定放宽到最后三张卡片 ----------\n   tooltip 变高后，倒数第三张卡片向下开也会被 rlpn 裁掉 */\n.rlmain .rlpn > .rlcard:nth-last-child(-n+3) .rlcap > i {\n  top: auto;\n  bottom: 100%;\n  margin-top: 0;\n  margin-bottom: 6px;\n  transform: translateY(4px) scale(.96);\n}\n\n.rlmain .rlpn > .rlcard:nth-last-child(-n+3) .rlcap:hover > i {\n  transform: translateY(0) scale(1);\n}\n\n.rlmain .rlpn > .rlcard:nth-last-child(-n+3) .rlcap > i::before {\n  bottom: auto;\n  top: 100%;\n  border-bottom-color: transparent;\n  border-top-color: var(--rl-order-d);\n}\n\n.rlmain .rlpn > .rlcard:nth-last-child(-n+3) .rlcap > i::after {\n  bottom: auto;\n  top: 100%;\n  border-bottom-color: transparent;\n  border-top-color: rgba(12, 16, 28, .98);\n}\n\n/* ---------- 15-4 窄屏：宽度贴合容器，去掉箭头省高度 ---------- */\n@container rlbox (max-width: 420px) {\n  .rlmain .rlcap > i {\n    width: calc(100cqw - 72px);\n    max-width: none;\n    font-size: 10px;\n    line-height: 1.5;\n  }\n  .rlmain .rlcap > i::before,\n  .rlmain .rlcap > i::after {\n    display: none;\n  }\n}\n\n/* ============================================================\n   16. 个人联络终端 · INBOX TERMINAL\n   命名空间 rlmsg追加至内置CSS末尾\n   ============================================================ */\n\n/* ---------- 终端卡片容器 ---------- */\n.rlmain .rlmsgcard {\n  padding: 0;\n  overflow: visible;\n}\n\n/* ---------- 终端状态栏 ---------- */\n.rlmain .rlmsghd {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  box-sizing: border-box;\n  height: 38px;\n  padding: 0 12px;\n  background: linear-gradient(90deg, rgba(28, 36, 64, .92), rgba(20, 26, 44, .88));\n  border-bottom: 1px solid var(--rl-line2);\n}\n\n/* 信封图标 */\n.rlmain .rlmsghd > i {\n  flex: 0 0 auto;\n  width: 16px;\n  height: 16px;\n  background-color: var(--rl-gold);\n  filter: drop-shadow(0 0 4px rgba(255, 201, 77, .5));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='5.4' width='18' height='13.2' rx='1.4' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M3 6.6l9 6.2 9-6.2' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='5.4' width='18' height='13.2' rx='1.4' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M3 6.6l9 6.2 9-6.2' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");\n  -webkit-mask-size:16px 16px;\n  mask-size: 16px 16px;\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  -webkit-mask-position: center;\n  mask-position: center;\n}\n\n/* 标题—— CSS注入 */\n.rlmain .rlmsghd > b {\n  flex: 1 1 auto;\n  font-size: 10.5px;\n  font-weight: 700;\n  color: var(--rl-gold);\n  letter-spacing: 1.6px;\n  text-shadow: 0 0 7px rgba(255, 201, 77, .45);\n}\n\n.rlmain .rlmsghd > b::before {\n  content: '个人联络终端 / INBOX';\n}\n\n/* 收件计数 */\n.rlmain .rlmsghd > span {\n  flex: 0 0 auto;\n  font-size: 10px;\n  font-weight: 600;\n  color: var(--rl-txt3);\n  letter-spacing: .6px;\n  white-space: nowrap;\n}\n\n/* ---------- 消息滚动容器（与rldmbox同风格） ---------- */\n.rlmain .rlmsgbox {\n  position: relative;\n  box-sizing: border-box;\n  max-height: 220px;\n  overflow-x: hidden;\n  overflow-y: auto;\n  overscroll-behavior: contain;\n  background:\n    linear-gradient(180deg, rgba(5, 7, 12, .96) 0%, rgba(8, 10, 16, .7) 15%, rgba(8, 10, 16, .7) 85%, rgba(5, 7, 12, .96) 100%),\n    linear-gradient(90deg, rgba(34, 48, 82, .25), rgba(14, 18, 32, .15));\n  border-top: 1px solid var(--rl-line);\n  scrollbar-width: thin;\n  scrollbar-color: var(--rl-line2) transparent;-webkit-user-select: none;\n  user-select: none;\n}\n\n.rlmain .rlmsgbox::-webkit-scrollbar {\n  width: 4px;\n}\n\n.rlmain .rlmsgbox::-webkit-scrollbar-track {\n  background: transparent;\n}\n\n.rlmain .rlmsgbox::-webkit-scrollbar-thumb {\n  background: var(--rl-line2);\n  border-radius: 2px;\n}\n\n.rlmain .rlmsgbox::-webkit-scrollbar-thumb:hover {\n  background: var(--rl-order-d);\n}\n\n.rlmain .rlmsglist {\n  padding: 6px 10px;\n}\n\n/* ---------- 单条消息（与rlrow同风格） ---------- */\n.rlmain .rlmsg {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  gap: 4px;\n  box-sizing: border-box;\n  padding: 7px 10px 7px 12px;\n  margin: 0 0 3px;\n  background: linear-gradient(90deg, rgba(28, 36, 64, .5), rgba(28, 36, 64, 0));\n  border-left: 2px solid var(--rl-line2);\n  transition: background .18s ease-out, border-color .18s ease-out, padding-left .18s ease-out;\n}\n\n.rlmain .rlmsg:last-child {\n  margin-bottom: 0;\n}\n\n.rlmain .rlmsg:hover {\n  background: linear-gradient(90deg, rgba(77, 208, 255, .1), rgba(28, 36, 64, 0));\n  border-left-color: var(--rl-order);\n  padding-left: 16px;\n}\n\n/* 发信人标签 */\n.rlmain .rlmsg > .rltag {\n  align-self: flex-start;\n  margin: 0;\n}\n\n.rlmain .rlmsg > nav {\n  display: flex;\n  flex-direction: column;\n  gap: 2px;\n}\n\n/* 时间戳 */\n.rlmain .rlmsg > nav > s {\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 9.5px;\n  font-weight: 600;\n  color: var(--rl-txt3);\n  text-decoration: none;\n  letter-spacing: .8px;\n}\n\n/* 消息正文 */\n.rlmain .rlmsg > nav > span {\n  font-size: 11.5px;\n  line-height: 1.6;\n  color: var(--rl-txt);\n  word-break: break-word;\n  white-space: normal;\n}\n\n/* ---------- 消息类型色条 (mt属性) ---------- */\n\n/* 情报*/\n.rlmain .rlmsg[mt=\"intel\"] { border-left-color: var(--rl-order); }\n.rlmain .rlmsg[mt=\"intel\"]::after {\n  content: 'INTEL';\n  position: absolute;\n  top: 7px;\n  right: 8px;\n  padding: 1px 5px;\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 8px;\n  font-weight: 700;\n  color: var(--rl-order);\n  letter-spacing: 1.2px;\n  background: rgba(77, 208, 255, .1);\n  border: 1px solid rgba(77, 208, 255, .3);\n  border-radius: 1px;\n}\n.rlmain .rlmsg[mt=\"intel\"]:hover { border-left-color: var(--rl-order); }\n\n/* 交易 */\n.rlmain .rlmsg[mt=\"trade\"] { border-left-color: var(--rl-gold); }\n.rlmain .rlmsg[mt=\"trade\"]::after {\n  content: 'TRADE';\n  position: absolute;\n  top: 7px;\n  right: 8px;\n  padding: 1px 5px;\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 8px;\n  font-weight: 700;\n  color: var(--rl-gold);\n  letter-spacing: 1.2px;\n  background: rgba(255, 201, 77, .1);\n  border: 1px solid rgba(255, 201, 77, .3);\n  border-radius: 1px;\n}\n.rlmain .rlmsg[mt=\"trade\"]:hover { border-left-color: var(--rl-gold); }\n\n/* 招募 */\n.rlmain .rlmsg[mt=\"recruit\"] { border-left-color: var(--rl-nature); }\n.rlmain .rlmsg[mt=\"recruit\"]::after {\n  content: 'RECRUIT';\n  position: absolute;\n  top: 7px;\n  right: 8px;\n  padding: 1px 5px;\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 8px;\n  font-weight: 700;\n  color: var(--rl-nature);\n  letter-spacing: 1.2px;\n  background: rgba(61, 220, 151, .1);\n  border: 1px solid rgba(61, 220, 151, .3);\n  border-radius: 1px;\n}\n.rlmain .rlmsg[mt=\"recruit\"]:hover { border-left-color: var(--rl-nature); }\n\n/* 警告 */\n.rlmain .rlmsg[mt=\"warn\"] { border-left-color: var(--rl-chaos); }\n.rlmain .rlmsg[mt=\"warn\"]::after {\n  content: 'WARN';\n  position: absolute;\n  top: 7px;\n  right: 8px;\n  padding: 1px 5px;\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 8px;\n  font-weight: 700;\n  color: var(--rl-chaos);\n  letter-spacing: 1.2px;\n  background: rgba(255, 45, 85, .1);\n  border: 1px solid rgba(255, 45, 85, .3);\n  border-radius: 1px;\n}\n.rlmain .rlmsg[mt=\"warn\"]:hover { border-left-color: var(--rl-chaos); }\n\n/* 系统 */\n.rlmain .rlmsg[mt=\"sys\"] { border-left-color: #b968ff; }\n.rlmain .rlmsg[mt=\"sys\"]::after {\n  content: 'SYSTEM';\n  position: absolute;\n  top: 7px;\n  right: 8px;\n  padding: 1px 5px;\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 8px;\n  font-weight: 700;\n  color: #b968ff;\n  letter-spacing: 1.2px;\n  background: rgba(185, 104, 255, .1);\n  border: 1px solid rgba(185, 104, 255, .3);\n  border-radius: 1px;\n}\n.rlmain .rlmsg[mt=\"sys\"]:hover { border-left-color: #b968ff; }\n\n/* ---------- 紧急度 (ur属性) ---------- */\n.rlmain .rlmsg[ur=\"2\"] { border-left-width: 3px; }\n.rlmain .rlmsg[ur=\"3\"] { border-left-width: 4px; }\n\n/* ---------- 消息内嵌套rlcap时的层级保护 ---------- */\n.rlmain .rlmsg:has(.rlcap:hover) {\n  z-index: 9000;\n}\n\n.rlmain .rlmsgbox:has(.rlcap:hover) {\n  overflow: visible;\n}\n\n.rlmain .rlmsgcard:has(.rlcap:hover) {\n  z-index: 202;\n  clip-path: none;\n  filter: none;\n  overflow: visible;\n}\n\n/* ----------窄屏适配 ---------- */\n@container rlbox (max-width: 460px) {\n  .rlmain .rlmsgbox {\n    max-height: 180px;\n  }\n  .rlmain .rlmsg {\n    padding: 6px 8px 6px 10px;\n  }\n  .rlmain .rlmsg > nav > span {\n    font-size: 11px;\n  }\n  .rlmain .rlmsghd {\n    height: 34px;\n    padding: 0 10px;\n  }\n  .rlmain .rlmsghd > b {\n    font-size: 9.5px;\n    letter-spacing: 1.2px;\n  }\n}\n\n@container rlbox (max-width: 350px) {\n  .rlmain .rlmsgbox {\n    max-height: 160px;\n  }\n  .rlmain .rlmsg::after {\n    display: none !important;\n  }\n  .rlmain .rlmsghd > b::before {\n    content: '联络终端 / INBOX';\n  }\n}\n\n/* ============================================================\n   17. 分类标签栏 · SECTION TAB BAR v4\n   details+summary 原生点击 + CSS :has() 互斥\n   不依赖 id / name / for，彻底绕过平台净化器\n   ============================================================ */\n\n/* 17-1 容器基础 */\n.rlmain .rlsecbar {\n  position: relative;\n  padding-top: 42px;\n  min-height: 42px;\n}\n\n/* 17-2 所有分区内容默认隐藏 */\n.rlmain .rlsecbar > .rlsec > .rlsecbd { display: none; }\n\n/* 17-3 某 details[open] 时显示其内容 */\n.rlmain .rlsecbar > .rlsec[open] > .rlsecbd { display: block; }\n\n/* 17-4 无任何 details open 时的默认显示（首个分区） */\n.rlmain .rlp0 .rlsecbar:not(:has(.rlsec[open])) .rlsec[data-sec=\"p\"] > .rlsecbd { display: block; }\n.rlmain .rlp1 .rlsecbar:not(:has(.rlsec[open])) .rlsec-npc[data-idx=\"0\"] > .rlsecbd { display: block; }\n.rlmain .rlp3 .rlsecbar:not(:has(.rlsec[open])) .rlsec[data-sec=\"m\"] > .rlsecbd { display: block; }\n\n/* 17-5 P0 五分区互斥（优先级 t > b > c > a > p）\n   同时有多个 open 时，只显示优先级最高的那个 */\n.rlmain .rlsecbar:has(.rlsec[data-sec=\"a\"][open]) .rlsec[data-sec=\"p\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec[data-sec=\"c\"][open]) .rlsec[data-sec=\"p\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec[data-sec=\"b\"][open]) .rlsec[data-sec=\"p\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec[data-sec=\"t\"][open]) .rlsec[data-sec=\"p\"] > .rlsecbd { display: none; }\n\n.rlmain .rlsecbar:has(.rlsec[data-sec=\"c\"][open]) .rlsec[data-sec=\"a\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec[data-sec=\"b\"][open]) .rlsec[data-sec=\"a\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec[data-sec=\"t\"][open]) .rlsec[data-sec=\"a\"] > .rlsecbd { display: none; }\n\n.rlmain .rlsecbar:has(.rlsec[data-sec=\"b\"][open]) .rlsec[data-sec=\"c\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec[data-sec=\"t\"][open]) .rlsec[data-sec=\"c\"] > .rlsecbd { display: none; }\n\n.rlmain .rlsecbar:has(.rlsec[data-sec=\"t\"][open]) .rlsec[data-sec=\"b\"] > .rlsecbd { display: none; }\n\n/* 17-6 P3 三分区互斥（优先级 d > r > m） */\n.rlmain .rlsecbar:has(.rlsec[data-sec=\"r\"][open]) .rlsec[data-sec=\"m\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec[data-sec=\"d\"][open]) .rlsec[data-sec=\"m\"] > .rlsecbd { display: none; }\n\n.rlmain .rlsecbar:has(.rlsec[data-sec=\"d\"][open]) .rlsec[data-sec=\"r\"] > .rlsecbd { display: none; }\n\n/* 17-7 P1 NPC 八槽互斥（优先级 idx=7 > 6 > ... > 0） */\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"1\"][open]) .rlsec-npc[data-idx=\"0\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"2\"][open]) .rlsec-npc[data-idx=\"0\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"3\"][open]) .rlsec-npc[data-idx=\"0\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"4\"][open]) .rlsec-npc[data-idx=\"0\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"5\"][open]) .rlsec-npc[data-idx=\"0\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"6\"][open]) .rlsec-npc[data-idx=\"0\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"7\"][open]) .rlsec-npc[data-idx=\"0\"] > .rlsecbd { display: none; }\n\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"2\"][open]) .rlsec-npc[data-idx=\"1\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"3\"][open]) .rlsec-npc[data-idx=\"1\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"4\"][open]) .rlsec-npc[data-idx=\"1\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"5\"][open]) .rlsec-npc[data-idx=\"1\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"6\"][open]) .rlsec-npc[data-idx=\"1\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"7\"][open]) .rlsec-npc[data-idx=\"1\"] > .rlsecbd { display: none; }\n\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"3\"][open]) .rlsec-npc[data-idx=\"2\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"4\"][open]) .rlsec-npc[data-idx=\"2\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"5\"][open]) .rlsec-npc[data-idx=\"2\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"6\"][open]) .rlsec-npc[data-idx=\"2\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"7\"][open]) .rlsec-npc[data-idx=\"2\"] > .rlsecbd { display: none; }\n\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"4\"][open]) .rlsec-npc[data-idx=\"3\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"5\"][open]) .rlsec-npc[data-idx=\"3\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"6\"][open]) .rlsec-npc[data-idx=\"3\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"7\"][open]) .rlsec-npc[data-idx=\"3\"] > .rlsecbd { display: none; }\n\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"5\"][open]) .rlsec-npc[data-idx=\"4\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"6\"][open]) .rlsec-npc[data-idx=\"4\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"7\"][open]) .rlsec-npc[data-idx=\"4\"] > .rlsecbd { display: none; }\n\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"6\"][open]) .rlsec-npc[data-idx=\"5\"] > .rlsecbd,\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"7\"][open]) .rlsec-npc[data-idx=\"5\"] > .rlsecbd { display: none; }\n\n.rlmain .rlsecbar:has(.rlsec-npc[data-idx=\"7\"][open]) .rlsec-npc[data-idx=\"6\"] > .rlsecbd { display: none; }\n\n/* 17-8 summary 标签按钮样式\n   接管原 label.rlseclbl 的外观，position:absolute 固钉定位 */\n.rlmain .rlsec > summary.rlseclbl {\n  position: absolute;\n  top: 0;\n  z-index: 5;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  box-sizing: border-box;\n  width: 36px;\n  height: 34px;\n  font-size: 0;\n  color: transparent;\n  list-style: none;\n  cursor: pointer;\n  background: linear-gradient(150deg, rgba(28, 36, 64, .88), rgba(14, 18, 32, .95));\n  border: 1px solid var(--rl-line2);\n  border-radius: 3px;\n  transition: background .2s ease-out, border-color .2s ease-out, box-shadow .2s ease-out;\n  -webkit-tap-highlight-color: transparent;\n  user-select: none;\n}\n\n/* 去掉 summary 默认三角箭头 */\n.rlmain .rlsec > summary.rlseclbl::-webkit-details-marker { display: none; }\n.rlmain .rlsec > summary.rlseclbl::marker { content: ''; display: none; }\n\n/* 图标伪元素 */\n.rlmain .rlsec > summary.rlseclbl::before {\n  content: '';\n  flex: 0 0 auto;\n  width: 15px;\n  height: 15px;\n  background-color: var(--rl-txt3);\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  -webkit-mask-position: center;\n  mask-position: center;\n  -webkit-mask-size: 15px 15px;\n  mask-size: 15px 15px;\n  transition: background-color .2s ease-out, filter .2s ease-out, transform .22s var(--rl-ez-pop);\n}\n\n/* hover 态 */\n.rlmain .rlsec > summary.rlseclbl:hover {\n  background: linear-gradient(150deg, rgba(77, 208, 255, .16), rgba(14, 18, 32, .95));\n  border-color: var(--rl-order-d);\n  box-shadow: 0 0 10px rgba(77, 208, 255, .35), 0 0 20px rgba(77, 208, 255, .12);\n}\n\n.rlmain .rlsec > summary.rlseclbl:hover::before {\n  background-color: var(--rl-order);\n  filter: drop-shadow(0 0 6px rgba(77, 208, 255, .9));\n  transform: scale(1.12);\n}\n\n.rlmain .rlsec > summary.rlseclbl:active::before {\n  transform: scale(.92);\n}\n\n/* hover tooltip（用 ::after 生成） */\n.rlmain .rlsec > summary.rlseclbl::after {\n  position: absolute;\n  top: 100%;\n  left: 50%;\n  z-index: 50;\n  margin-top: 5px;\n  padding: 3px 8px;\n  font-size: 9px;\n  font-weight: 700;\n  color: var(--rl-order);\n  letter-spacing: 1px;\n  white-space: nowrap;\n  background: rgba(8, 10, 16, .96);\n  border: 1px solid var(--rl-order-d);\n  border-radius: 2px;\n  opacity: 0;\n  transform: translate(-50%, -3px);\n  pointer-events: none;\n  transition: opacity .18s ease-out, transform .18s ease-out;\n}\n\n.rlmain .rlsec > summary.rlseclbl:hover::after {\n  opacity: 1;\n  transform: translate(-50%, 0);\n}\n\n/* 17-9 定位：nth-of-type 固钉（步进 41px） */\n.rlmain .rlsecbar > .rlsec:nth-of-type(1) > summary.rlseclbl { left: 0; }\n.rlmain .rlsecbar > .rlsec:nth-of-type(2) > summary.rlseclbl { left: 41px; }\n.rlmain .rlsecbar > .rlsec:nth-of-type(3) > summary.rlseclbl { left: 82px; }\n.rlmain .rlsecbar > .rlsec:nth-of-type(4) > summary.rlseclbl { left: 123px; }\n.rlmain .rlsecbar > .rlsec:nth-of-type(5) > summary.rlseclbl { left: 164px; }\n.rlmain .rlsecbar > .rlsec:nth-of-type(6) > summary.rlseclbl { left: 205px; }\n.rlmain .rlsecbar > .rlsec:nth-of-type(7) > summary.rlseclbl { left: 246px; }\n.rlmain .rlsecbar > .rlsec:nth-of-type(8) > summary.rlseclbl { left: 287px; }\n\n/* 17-10 选中态（details[open]）：高亮 + 呼吸动画 + 底部发光条 */\n.rlmain .rlsec[open] > summary.rlseclbl {\n  border-color: var(--rl-order-d);\n  background: linear-gradient(150deg, rgba(77, 208, 255, .2), rgba(14, 18, 32, .95));\n  box-shadow: 0 0 12px rgba(77, 208, 255, .4), 0 0 24px rgba(77, 208, 255, .15);\n}\n\n.rlmain .rlsec[open] > summary.rlseclbl::before {\n  background-color: var(--rl-order);\n  filter: drop-shadow(0 0 7px rgba(77, 208, 255, .95));\n  animation: rlIconBreath 2.6s ease-in-out infinite;\n}\n\n/* 选中态 ::after 切换为底部发光条（覆盖 tooltip 定位） */\n.rlmain .rlsec[open] > summary.rlseclbl::after {\n  content: '';\n  position: absolute;\n  top: auto;\n  bottom: -2px;\n  left: 15%;\n  margin-top: 0;\n  padding: 0;\n  width: 70%;\n  height: 2px;\n  background: linear-gradient(90deg, transparent, var(--rl-order), transparent);\n  border: 0;\n  border-radius: 0;\n  filter: drop-shadow(0 0 4px rgba(77, 208, 255, .9));\n  opacity: 1;\n  transform: none;\n  pointer-events: none;\n}\n\n/* 17-12 内容区动画 */\n.rlmain .rlsecbd {\n  box-sizing: border-box;\n  padding: 6px 0 0;\n  animation: rlSecIn .32s var(--rl-ez-pop) both;\n}\n\n@keyframes rlSecIn {\n  from { opacity: 0; transform: translateY(8px); }\n  to   { opacity: 1; transform: translateY(0); }\n}\n\n.rlmain .rlsecbd > .rlcard {\n  margin: 0 0 9px;\n}\n\n/* 17-13 tooltip 文字穷举（data-sec 穷举） */\n.rlmain .rlsec[data-sec=\"p\"] > summary.rlseclbl::after { content: '基础档案'; }\n.rlmain .rlsec[data-sec=\"a\"] > summary.rlseclbl::after { content: '属性面板'; }\n.rlmain .rlsec[data-sec=\"c\"] > summary.rlseclbl::after { content: '战斗配置'; }\n.rlmain .rlsec[data-sec=\"b\"] > summary.rlseclbl::after { content: '据点'; }\n.rlmain .rlsec[data-sec=\"t\"] > summary.rlseclbl::after { content: '冒险团'; }\n.rlmain .rlsec[data-sec=\"m\"] > summary.rlseclbl::after { content: '世界与任务'; }\n.rlmain .rlsec[data-sec=\"r\"] > summary.rlseclbl::after { content: '大区'; }\n.rlmain .rlsec[data-sec=\"d\"] > summary.rlseclbl::after { content: '小区'; }\n\n/* 选中态覆盖 tooltip（切为发光条，特异性 0,5,1 压过上方穷举） */\n.rlmain .rlsec[data-sec=\"p\"][open] > summary.rlseclbl::after,\n.rlmain .rlsec[data-sec=\"a\"][open] > summary.rlseclbl::after,\n.rlmain .rlsec[data-sec=\"c\"][open] > summary.rlseclbl::after,\n.rlmain .rlsec[data-sec=\"b\"][open] > summary.rlseclbl::after,\n.rlmain .rlsec[data-sec=\"t\"][open] > summary.rlseclbl::after,\n.rlmain .rlsec[data-sec=\"m\"][open] > summary.rlseclbl::after,\n.rlmain .rlsec[data-sec=\"r\"][open] > summary.rlseclbl::after,\n.rlmain .rlsec[data-sec=\"d\"][open] > summary.rlseclbl::after {\n  content: '';\n  position: absolute;\n  top: auto;\n  bottom: -2px;\n  left: 15%;\n  margin-top: 0;\n  padding: 0;\n  width: 70%;\n  height: 2px;\n  background: linear-gradient(90deg, transparent, var(--rl-order), transparent);\n  border: 0;\n  border-radius: 0;\n  filter: drop-shadow(0 0 4px rgba(77, 208, 255, .9));\n  opacity: 1;\n  transform: none;\n  pointer-events: none;\n}\n\n/* 17-13 图标组（P0五组 + P3三组，data-sec穷举） */\n\n/* 基础档案 - 身份卡 */\n.rlmain .rlsec[data-sec=\"p\"] > summary.rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4' y='3' width='16' height='18' rx='1.6' fill='none' stroke='black' stroke-width='1.5'/%3E%3Ccircle cx='12' cy='10' r='3' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M7.4 18.6c0-2.6 2.1-4.4 4.6-4.4s4.6 1.8 4.6 4.4' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4' y='3' width='16' height='18' rx='1.6' fill='none' stroke='black' stroke-width='1.5'/%3E%3Ccircle cx='12' cy='10' r='3' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M7.4 18.6c0-2.6 2.1-4.4 4.6-4.4s4.6 1.8 4.6 4.4' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n/* 属性面板 - 六芒星 */\n.rlmain .rlsec[data-sec=\"a\"] > summary.rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4 14.8 8.6 21.6 9.6 16.8 14.2 18 21 12 17.8 6 21 7.2 14.2 2.4 9.6 9.2 8.6Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4 14.8 8.6 21.6 9.6 16.8 14.2 18 21 12 17.8 6 21 7.2 14.2 2.4 9.6 9.2 8.6Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E\");\n}\n\n/* 战斗配置 - 交叉剑 */\n.rlmain .rlsec[data-sec=\"c\"] > summary.rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.4 3.6V7l3.4 3.4h3.4M6.2 17.8l11.6-11.6M9.6 3.6V7L6.2 10.4H2.8M17.8 17.8L6.2 6.2' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M7.2 14.8l2 2M14.8 7.2l2 2' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.4 3.6V7l3.4 3.4h3.4M6.2 17.8l11.6-11.6M9.6 3.6V7L6.2 10.4H2.8M17.8 17.8L6.2 6.2' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M7.2 14.8l2 2M14.8 7.2l2 2' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n/* 据点 - 塔楼 */\n.rlmain .rlsec[data-sec=\"b\"] > summary.rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.4 21V9.6L12 4.2l6.6 5.4V21Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M9.6 21v-5.4h4.8V21' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M9 11.4h1.8M13.2 11.4H15' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.4 21V9.6L12 4.2l6.6 5.4V21Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M9.6 21v-5.4h4.8V21' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M9 11.4h1.8M13.2 11.4H15' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n/* 冒险团 - 旗帜 */\n.rlmain .rlsec[data-sec=\"t\"] > summary.rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 3v18' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3Cpath d='M6 4.2h12.6l-3.6 4.2 3.6 4.2H6' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 3v18' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3Cpath d='M6 4.2h12.6l-3.6 4.2 3.6 4.2H6' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E\");\n}\n\n/* 世界与任务 - 任务卷轴 */\n.rlmain .rlsec[data-sec=\"m\"] > summary.rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.2 3.6c-1.4 0-2.6.8-2.6 1.8v13.2c0 1 1.2 1.8 2.6 1.8h9.6c1.4 0 2.6-.8 2.6-1.8V5.4c0-1-1.2-1.8-2.6-1.8Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M9 8.4h6M9 12h4.8M9 15.6h3' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.2 3.6c-1.4 0-2.6.8-2.6 1.8v13.2c0 1 1.2 1.8 2.6 1.8h9.6c1.4 0 2.6-.8 2.6-1.8V5.4c0-1-1.2-1.8-2.6-1.8Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M9 8.4h6M9 12h4.8M9 15.6h3' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n/* 大区 - 罗盘地图 */\n.rlmain .rlsec[data-sec=\"r\"] > summary.rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M12 3v3.6M12 17.4V21M3 12h3.6M17.4 12H21' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3Cpath d='M14.8 9.2l-6.6 2 2 6.6 6.6-2Z' fill='none' stroke='black' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M12 3v3.6M12 17.4V21M3 12h3.6M17.4 12H21' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3Cpath d='M14.8 9.2l-6.6 2 2 6.6 6.6-2Z' fill='none' stroke='black' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E\");\n}\n\n/* 小区 - 建筑群 */\n.rlmain .rlsec[data-sec=\"d\"] > summary.rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.6 20V10.8h5.4V20M9 20V6h6v14M15 20V10.8h5.4V20' fill='none' stroke='black' stroke-width='1.4' stroke-linejoin='round'/%3E%3Cpath d='M11.2 9h1.6M11.2 12.6h1.6M11.2 16.2h1.6M5.2 13.8h1.8M16.8 13.8h1.8' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.6 20V10.8h5.4V20M9 20V6h6v14M15 20V10.8h5.4V20' fill='none' stroke='black' stroke-width='1.4' stroke-linejoin='round'/%3E%3Cpath d='M11.2 9h1.6M11.2 12.6h1.6M11.2 16.2h1.6M5.2 13.8h1.8M16.8 13.8h1.8' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n/* 17-15 窄屏适配 */\n@container rlbox (max-width: 350px) {\n  .rlmain .rlsec > summary.rlseclbl {\n    width: 30px;\n    height: 28px;\n  }\n  .rlmain .rlsec > summary.rlseclbl::before {\n    width: 13px;\n    height: 13px;\n    -webkit-mask-size: 13px 13px;\n    mask-size: 13px 13px;\n  }\n  .rlmain .rlsecbar {\n    padding-top: 36px;\n    min-height: 36px;\n  }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(1) > summary.rlseclbl { left: 0; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(2) > summary.rlseclbl { left: 35px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(3) > summary.rlseclbl { left: 70px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(4) > summary.rlseclbl { left: 105px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(5) > summary.rlseclbl { left: 140px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(6) > summary.rlseclbl { left: 175px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(7) > summary.rlseclbl { left: 210px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(8) > summary.rlseclbl { left: 245px; }\n  .rlmain .rlsec > summary.rlseclbl::after,\n  .rlmain .rlsec-npc > summary.rlseclbl > span { display: none; }\n}\n\n@media (max-width: 390px) {\n  .rlmain .rlsec > summary.rlseclbl {\n    width: 30px;\n    height: 28px;\n  }\n  .rlmain .rlsec > summary.rlseclbl::before {\n    width: 13px;\n    height: 13px;\n    -webkit-mask-size: 13px 13px;\n    mask-size: 13px 13px;\n  }\n  .rlmain .rlsecbar {\n    padding-top: 36px;\n    min-height: 36px;\n  }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(1) > summary.rlseclbl { left: 0; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(2) > summary.rlseclbl { left: 35px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(3) > summary.rlseclbl { left: 70px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(4) > summary.rlseclbl { left: 105px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(5) > summary.rlseclbl { left: 140px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(6) > summary.rlseclbl { left: 175px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(7) > summary.rlseclbl { left: 210px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(8) > summary.rlseclbl { left: 245px; }\n}\n\n/* 17-11 NPC 标签阵营色 */\n.rlmain .rlsec-npc[nfc=\"order\"] { --rlnc: 77, 208, 255; --rlncs: var(--rl-order); --rlncd: var(--rl-order-d); }\n.rlmain .rlsec-npc[nfc=\"chaos\"] { --rlnc: 255, 45, 85; --rlncs: var(--rl-chaos); --rlncd: var(--rl-chaos-d); }\n.rlmain .rlsec-npc[nfc=\"nature\"] { --rlnc: 61, 220, 151; --rlncs: var(--rl-nature); --rlncd: var(--rl-nature-d); }\n.rlmain .rlsec-npc[nfc=\"none\"] { --rlnc: 122, 138, 168; --rlncs: var(--rl-txt2); --rlncd: var(--rl-line2); }\n\n.rlmain .rlsec-npc > summary.rlseclbl {\n  border-color: rgba(var(--rlnc), .4);\n}\n\n.rlmain .rlsec-npc > summary.rlseclbl:hover {\n  border-color: rgba(var(--rlnc), .7);\n  box-shadow: 0 0 10px rgba(var(--rlnc), .35), 0 0 20px rgba(var(--rlnc), .12);\n  background: linear-gradient(150deg, rgba(var(--rlnc), .15), rgba(14, 18, 32, .95));\n}\n\n.rlmain .rlsec-npc > summary.rlseclbl:hover::before {\n  background-color: var(--rlncs);\n  filter: drop-shadow(0 0 6px rgba(var(--rlnc), .9));\n}\n\n/* NPC 角色名 tooltip */\n.rlmain .rlsec-npc > summary.rlseclbl > span {\n  position: absolute;\n  top: 100%;\n  left: 50%;\n  z-index: 50;\n  margin-top: 5px;\n  padding: 3px 8px;\n  font-size: 9px;\n  font-weight: 700;\n  color: var(--rlncs);\n  letter-spacing: 1px;\n  white-space: nowrap;\n  background: rgba(8, 10, 16, .96);\n  border: 1px solid var(--rlncd);\n  border-radius: 2px;\n  opacity: 0;\n  transform: translate(-50%, -3px);\n  pointer-events: none;\n  transition: opacity .18s ease-out, transform .18s ease-out;\n}\n\n.rlmain .rlsec-npc > summary.rlseclbl:hover > span {\n  opacity: 1;\n  transform: translate(-50%, 0);\n}\n\n/* NPC 选中态 */\n.rlmain .rlsec-npc[open] > summary.rlseclbl {\n  border-color: rgba(var(--rlnc), .6);\n  background: linear-gradient(150deg, rgba(var(--rlnc), .2), rgba(14, 18, 32, .95));\n  box-shadow: 0 0 12px rgba(var(--rlnc), .4), 0 0 24px rgba(var(--rlnc), .15);\n}\n\n.rlmain .rlsec-npc[open] > summary.rlseclbl::before {\n  background-color: var(--rlncs);\n  filter: drop-shadow(0 0 7px rgba(var(--rlnc), .95));\n}\n\n.rlmain .rlsec-npc[open] > summary.rlseclbl::after {\n  content: '';\n  position: absolute;\n  top: auto;\n  bottom: -2px;\n  left: 15%;\n  margin-top: 0;\n  padding: 0;\n  width: 70%;\n  height: 2px;\n  background: linear-gradient(90deg, transparent, var(--rlncs), transparent);\n  border: 0;\n  border-radius: 0;\n  filter: drop-shadow(0 0 4px rgba(var(--rlnc), .9));\n  opacity: 1;\n  transform: none;\n  pointer-events: none;\n}\n\n/* 选中时隐藏角色名 tooltip */\n.rlmain .rlsec-npc[open] > summary.rlseclbl > span {\n  opacity: 0;\n  pointer-events: none;\n}\n\n/* 17-14 NPC 八种图标轮换（nth-of-type） */\n\n/* 1 · 标准人形 */\n.rlmain .rlsec-npc:nth-of-type(8n+1) > summary.rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='7.6' r='3.2' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M5.8 20c0-3.4 2.8-5.8 6.2-5.8s6.2 2.4 6.2 5.8' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='7.6' r='3.2' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M5.8 20c0-3.4 2.8-5.8 6.2-5.8s6.2 2.4 6.2 5.8' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n/* 2 · 兜帽人形 */\n.rlmain .rlsec-npc:nth-of-type(8n+2) > summary.rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3C8.8 3 7 5.8 7 8.4c0 1.4.5 2.6 1.4 3.4L6.6 20h10.8l-1.8-8.2c.9-.8 1.4-2 1.4-3.4C17 5.8 15.2 3 12 3Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Ccircle cx='12' cy='9.2' r='2.2' fill='none' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3C8.8 3 7 5.8 7 8.4c0 1.4.5 2.6 1.4 3.4L6.6 20h10.8l-1.8-8.2c.9-.8 1.4-2 1.4-3.4C17 5.8 15.2 3 12 3Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Ccircle cx='12' cy='9.2' r='2.2' fill='none' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E\");\n}\n\n/* 3 · 带角/恶魔 */\n.rlmain .rlsec-npc:nth-of-type(8n+3) > summary.rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8.2 4.2l1.4 3.4M15.8 4.2l-1.4 3.4' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='10' r='3' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M6.4 20c0-3.2 2.5-5.4 5.6-5.4s5.6 2.2 5.6 5.4' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8.2 4.2l1.4 3.4M15.8 4.2l-1.4 3.4' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='10' r='3' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M6.4 20c0-3.2 2.5-5.4 5.6-5.4s5.6 2.2 5.6 5.4' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n/* 4 · 长发女性 */\n.rlmain .rlsec-npc:nth-of-type(8n+4) > summary.rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='8' r='3' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M8.2 6.6c-.2-2.4 1.6-4 3.8-4s4 1.6 3.8 4' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M8 8.2c-.8 1.4-1.2 3.4-.8 5.8M16 8.2c.8 1.4 1.2 3.4.8 5.8' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3Cpath d='M6.4 20c0-3 2.5-5 5.6-5s5.6 2 5.6 5' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='8' r='3' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M8.2 6.6c-.2-2.4 1.6-4 3.8-4s4 1.6 3.8 4' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M8 8.2c-.8 1.4-1.2 3.4-.8 5.8M16 8.2c.8 1.4 1.2 3.4.8 5.8' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3Cpath d='M6.4 20c0-3 2.5-5 5.6-5s5.6 2 5.6 5' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n/* 5 · 重甲宽肩 */\n.rlmain .rlsec-npc:nth-of-type(8n+5) > summary.rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='7.4' r='2.8' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M4.2 20V14c0-2.4 3.5-4.2 7.8-4.2s7.8 1.8 7.8 4.2v6' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M8.4 13.4h7.2' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='7.4' r='2.8' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M4.2 20V14c0-2.4 3.5-4.2 7.8-4.2s7.8 1.8 7.8 4.2v6' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M8.4 13.4h7.2' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n/* 6 · 法师/法杖 */\n.rlmain .rlsec-npc:nth-of-type(8n+6) > summary.rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='10.4' cy='8' r='2.8' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M5 20c0-3 2.4-5.2 5.4-5.2s5.4 2.2 5.4 5.2' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M18.4 3.6v15M17 4.6h2.8M17.6 6.2h1.6' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='10.4' cy='8' r='2.8' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M5 20c0-3 2.4-5.2 5.4-5.2s5.4 2.2 5.4 5.2' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M18.4 3.6v15M17 4.6h2.8M17.6 6.2h1.6' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n/* 7 · 双持/刺客 */\n.rlmain .rlsec-npc:nth-of-type(8n+7) > summary.rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='7.2' r='2.6' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M6.6 20c0-3 2.4-5 5.4-5s5.4 2 5.4 5' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3Cpath d='M5.4 8.4l3.2 4.8M18.6 8.4l-3.2 4.8' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='7.2' r='2.6' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M6.6 20c0-3 2.4-5 5.4-5s5.4 2 5.4 5' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3Cpath d='M5.4 8.4l3.2 4.8M18.6 8.4l-3.2 4.8' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n/* 8 · 小体型/伙伴 */\n.rlmain .rlsec-npc:nth-of-type(8n+8) > summary.rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='9' cy='8.4' r='2.6' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M4.4 19c0-2.6 2-4.4 4.6-4.4s4.6 1.8 4.6 4.4' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3Cpath d='M15.6 6.8a2 2 0 1 1 0 4M16.2 14c2 .2 3.6 1.8 3.6 3.8' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='9' cy='8.4' r='2.6' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M4.4 19c0-2.6 2-4.4 4.6-4.4s4.6 1.8 4.6 4.4' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3Cpath d='M15.6 6.8a2 2 0 1 1 0 4M16.2 14c2 .2 3.6 1.8 3.6 3.8' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n/* ============================================================\n   20. CG立绘展示区 · CHARACTER GALLERY\n   命名空间 rlcg · 追加至内置CSS末尾\n   ============================================================ */\n\n/* ---------- 立绘容器 ---------- */\n.rlmain .rlcg {\n  position: relative;\n  width: 100%;\n  margin: 14px 0 4px;\n  overflow: hidden;\n  border: 1px solid var(--rl-line2);\n  border-radius: 3px;\n  background: var(--rl-bg1);\n  transition: border-color .25s ease-out, box-shadow .25s ease-out;\n}\n\n.rlmain .rlcg:hover {\n  border-color: var(--rl-order-d);\n  box-shadow: 0 0 14px rgba(77, 208, 255, .2), 0 4px 16px rgba(0, 0, 0, .5);\n}\n\n/* 左上角CG标签 */\n.rlmain .rlcg::before {\n  content: 'CG';\n  position: absolute;\n  top: 8px;\n  left: 8px;\n  z-index: 5;\n  padding: 2px 8px;\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 9px;\n  font-weight: 700;\n  color: var(--rl-order);\n  letter-spacing: 1.8px;\n  background: rgba(8, 10, 16, .78);\n  border: 1px solid rgba(77, 208, 255, .35);\n  border-radius: 2px;\n  -webkit-backdrop-filter: blur(4px);\n  backdrop-filter: blur(4px);\n  pointer-events: none;\n  transition: color .2s ease-out, border-color .2s ease-out;\n}\n\n/* 底部渐变收束 */\n.rlmain .rlcg::after {\n  content: '';\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  height: 36px;\n  background: linear-gradient(180deg, transparent, rgba(5, 7, 12, .65));\n  pointer-events: none;\n  z-index: 2;\n}\n\n/* ---------- 图片通用 ---------- */\n.rlmain .rlcg-img {\n  width: 100%;\n  aspect-ratio: 3/4;\n  background-size: cover;\n  background-position: center top;\n  background-repeat: no-repeat;\n  background-color: var(--rl-bg2);\n}\n\n/* 性爱CG默认隐藏 */\n.rlmain .rlcg-h {\n  display: none;\n}\n\n/* ---------- 切换按钮（details）---------- */\n\n/* 默认显示（常态图为主，点击切换至性爱图）*/\n.rlmain .rlcg-sw {\n  display: block;\n  position: absolute;\n  top: 8px;\n  right: 8px;\n  z-index: 10;\n}\n\n/* summary去掉默认样式 */\n.rlmain .rlcg-sw > summary::-webkit-details-marker { display: none; }\n.rlmain .rlcg-sw > summary::marker { content: ''; display: none; }\n\n/* 按钮外观 */\n.rlmain .rlcg-sw > summary {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 34px;\n  height: 34px;\n  list-style: none;\n  cursor: pointer;\n  background: rgba(8, 10, 16, .78);\n  border: 1px solid rgba(77, 208, 255, .4);\n  border-radius: 50%;\n  -webkit-backdrop-filter: blur(6px);\n  backdrop-filter: blur(6px);\n  transition: background .2s ease-out, border-color .2s ease-out, transform .2s var(--rl-ez-pop), box-shadow .2s ease-out;\n  -webkit-tap-highlight-color: transparent;\n}\n\n.rlmain .rlcg-sw > summary:hover {\n  background: rgba(77, 208, 255, .18);\n  border-color: var(--rl-order);\n  transform: scale(1.1);\n  box-shadow: 0 0 12px rgba(77, 208, 255, .5);\n}\n\n.rlmain .rlcg-sw > summary:active {\n  transform: scale(.92);\n}\n\n/* 按钮图标 —— 循环切换箭头 */\n.rlmain .rlcg-sw > summary::before {\n  content: '';\n  flex: 0 0 auto;\n  width: 16px;\n  height: 16px;\n  background-color: var(--rl-order);\n  filter: drop-shadow(0 0 4px rgba(77, 208, 255, .6));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M171l4 4-4 4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M3 11V9a4 4 0 0 1 4-4h14' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M7 23l-4-4 4-4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M21 13v2a4 4 0 0 1-4 4H3' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 1l4 4-4 4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M3 11V9a4 4 0 0 1 4-4h14' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M7 23l-4-4 4-4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M21 13v2a4 4 0 0 1-4 4H3' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E\");\n  -webkit-mask-size: 16px 16px;\n  mask-size: 16px 16px;\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  -webkit-mask-position: center;\n  mask-position: center;\n  transition: background-color .2s ease-out, filter .2s ease-out;\n}\n\n/* ---------- 展开态（性爱CG显示中）---------- */\n.rlmain .rlcg-sw[open] > summary {\n  border-color: rgba(255, 45, 85, .6);\n  background: rgba(255, 45, 85, .2);\n  box-shadow: 0 0 12px rgba(255, 45, 85, .4);\n}\n\n.rlmain .rlcg-sw[open] > summary::before {\n  background-color: var(--rl-chaos);\n  filter: drop-shadow(0 0 5px rgba(255, 45, 85, .8));\n}\n\n.rlmain .rlcg-sw[open] > summary:hover {\n  background: rgba(255, 45, 85, .32);\n  border-color: var(--rl-chaos);\n  box-shadow: 0 0 16px rgba(255, 45, 85, .6);\n}\n\n/* ---------- CG切换逻辑 ---------- */\n.rlmain .rlcg:has(.rlcg-sw[open]) .rlcg-n {\n  display: none;\n}\n\n.rlmain .rlcg:has(.rlcg-sw[open]) .rlcg-h {\n  display: block;\n}\n\n/* 标签跟随变色 */\n.rlmain .rlcg:has(.rlcg-sw[open])::before {\n  content: 'CG·H';\n  color: var(--rl-chaos);\n  border-color: rgba(255, 45, 85, .4);\n}\n\n/* ----------裁剪保护 ---------- */\n.rlmain .rlcard:has(.rlcg-sw[open]) {\n  clip-path: none;\n}\n\n/* ---------- 窄屏适配 ---------- */\n@container rlbox (max-width: 350px) {\n  .rlmain .rlcg-img {\n    aspect-ratio: 2/3;\n  }\n  .rlmain .rlcg-sw > summary {\n    width: 30px;\n    height: 30px;\n  }\n  .rlmain .rlcg-sw > summary::before {\n    width: 14px;\n    height: 14px;\n    -webkit-mask-size: 14px 14px;\n    mask-size: 14px 14px;\n  }\n}\n\n/* ---------- 角色图片指定（创作者按需填入直链）---------- */\n/* 示例：\n.rlmain .rlcg[cg=\"vera\"] .rlcg-n {\n  background-image: url('https://xxx.com/vera-normal.jpg');\n}\n.rlmain .rlcg[cg=\"vera\"] .rlcg-h {\n  background-image: url('https://xxx.com/vera-nsfw.jpg');\n}\n*/\n\n/* ---------- 角色CG立绘映射（常态 rlcg-n / 性爱 rlcg-h）---------- */\n/* 陈知意 */\n.rlmain .rlcg[cg=\"chenzhiyi\"] .rlcg-n { background-image: url('https://i.ibb.co/WWGPJS1f/image.png'); }\n.rlmain .rlcg[cg=\"chenzhiyi\"] .rlcg-h { background-image: url('https://i.ibb.co/ZRtTjV1q/1.png'); }\n/* 顾清和 */\n.rlmain .rlcg[cg=\"guqinghe\"] .rlcg-n { background-image: url('https://i.ibb.co/ywdTKSg/image.png'); }\n.rlmain .rlcg[cg=\"guqinghe\"] .rlcg-h { background-image: url('https://i.ibb.co/VYwYR6nX/1.png'); }\n/* 顾素锦 */\n.rlmain .rlcg[cg=\"gusujin\"] .rlcg-n { background-image: url('https://i.ibb.co/wFjTSQy6/image.png'); }\n.rlmain .rlcg[cg=\"gusujin\"] .rlcg-h { background-image: url('https://i.ibb.co/SXy9bC6y/2.png'); }\n/* 凌金瑶 */\n.rlmain .rlcg[cg=\"lingjinyao\"] .rlcg-n { background-image: url('https://i.ibb.co/tyjkG1d/image.png'); }\n.rlmain .rlcg[cg=\"lingjinyao\"] .rlcg-h { background-image: url('https://i.ibb.co/gZKtwLLw/1.png'); }\n/* 陆雪晶 */\n.rlmain .rlcg[cg=\"luxuejing\"] .rlcg-n { background-image: url('https://i.ibb.co/0pZ7LhkD/image.png'); }\n.rlmain .rlcg[cg=\"luxuejing\"] .rlcg-h { background-image: url('https://i.ibb.co/PZ8SvrCx/1.png'); }\n/* 孟书冉 */\n.rlmain .rlcg[cg=\"mengshuran\"] .rlcg-n { background-image: url('https://i.ibb.co/yFS1bBSF/image.png'); }\n.rlmain .rlcg[cg=\"mengshuran\"] .rlcg-h { background-image: url('https://i.ibb.co/Z6gZ114c/1.png'); }\n/* 宁依玄 */\n.rlmain .rlcg[cg=\"ningyixuan\"] .rlcg-n { background-image: url('https://i.ibb.co/r2CTsnJ2/image.png'); }\n.rlmain .rlcg[cg=\"ningyixuan\"] .rlcg-h { background-image: url('https://i.ibb.co/jk7LkQdw/1.png'); }\n/* 苏沐璃 */\n.rlmain .rlcg[cg=\"sumuli\"] .rlcg-n { background-image: url('https://i.ibb.co/Z5Nxb1t/image.png'); }\n.rlmain .rlcg[cg=\"sumuli\"] .rlcg-h { background-image: url('https://i.ibb.co/wrQ5chyq/1.png'); }\n/* 叶婉刃 */\n.rlmain .rlcg[cg=\"yewanren\"] .rlcg-n { background-image: url('https://i.ibb.co/kk0GTXN/image.png'); }\n.rlmain .rlcg[cg=\"yewanren\"] .rlcg-h { background-image: url('https://i.ibb.co/fVrXpn7k/2.png'); }\n/* 玉凝香 */\n.rlmain .rlcg[cg=\"yuningxiang\"] .rlcg-n { background-image: url('https://i.ibb.co/8ynBHws/image.png'); }\n.rlmain .rlcg[cg=\"yuningxiang\"] .rlcg-h { background-image: url('https://i.ibb.co/ccwHm3BD/1.png'); }\n/* 白兰芷 */\n.rlmain .rlcg[cg=\"bailanzhi\"] .rlcg-n { background-image: url('https://i.ibb.co/zWjwtxgV/image.png'); }\n.rlmain .rlcg[cg=\"bailanzhi\"] .rlcg-h { background-image: url('https://i.ibb.co/Jwg65kCr/1.png'); }\n/* 步瑶光 */\n.rlmain .rlcg[cg=\"buyaoguang\"] .rlcg-n { background-image: url('https://i.ibb.co/23921Kg4/image.png'); }\n.rlmain .rlcg[cg=\"buyaoguang\"] .rlcg-h { background-image: url('https://i.ibb.co/vxWtdvFQ/1.png'); }\n/* 陈梦曦 */\n.rlmain .rlcg[cg=\"chenmengxi\"] .rlcg-n { background-image: url('https://i.ibb.co/vCHf3nz7/image.png'); }\n.rlmain .rlcg[cg=\"chenmengxi\"] .rlcg-h { background-image: url('https://i.ibb.co/MkCGCVzn/1.png'); }\n/* 宫紫苑 */\n.rlmain .rlcg[cg=\"gongziyuan\"] .rlcg-n { background-image: url('https://i.ibb.co/3yXLXGF3/image.png'); }\n.rlmain .rlcg[cg=\"gongziyuan\"] .rlcg-h { background-image: url('https://i.ibb.co/05NkNs8/1.png'); }\n/* 华素 */\n.rlmain .rlcg[cg=\"huasu\"] .rlcg-n { background-image: url('https://i.ibb.co/QRYghgS/image.png'); }\n.rlmain .rlcg[cg=\"huasu\"] .rlcg-h { background-image: url('https://i.ibb.co/Y4NRT13Z/1.png'); }\n/* 李栖鸾 */\n.rlmain .rlcg[cg=\"liqiluan\"] .rlcg-n { background-image: url('https://i.ibb.co/fz3mD0nK/image.png'); }\n.rlmain .rlcg[cg=\"liqiluan\"] .rlcg-h { background-image: url('https://i.ibb.co/20pL2cHS/1.png'); }\n/* 林海棠 */\n.rlmain .rlcg[cg=\"linhaitang\"] .rlcg-n { background-image: url('https://i.ibb.co/7xpRM4Fm/image.png'); }\n.rlmain .rlcg[cg=\"linhaitang\"] .rlcg-h { background-image: url('https://i.ibb.co/DHQYHHK8/1.png'); }\n/* 柳扶摇 */\n.rlmain .rlcg[cg=\"liufuyao\"] .rlcg-n { background-image: url('https://i.ibb.co/Pzv3PVBg/image.png'); }\n.rlmain .rlcg[cg=\"liufuyao\"] .rlcg-h { background-image: url('https://i.ibb.co/C3fkH8tR/1.png'); }\n/* 柳如烟 */\n.rlmain .rlcg[cg=\"liuruyan\"] .rlcg-n { background-image: url('https://i.ibb.co/274Jc9dr/image.png'); }\n.rlmain .rlcg[cg=\"liuruyan\"] .rlcg-h { background-image: url('https://i.ibb.co/jvqqQ39q/1.png'); }\n/* 穆珠 */\n.rlmain .rlcg[cg=\"muzhu\"] .rlcg-n { background-image: url('https://i.ibb.co/B5fyj5cy/image.png'); }\n.rlmain .rlcg[cg=\"muzhu\"] .rlcg-h { background-image: url('https://i.ibb.co/4nyXVkYG/1.png'); }\n/* 欧阳倩 */\n.rlmain .rlcg[cg=\"ouyangqian\"] .rlcg-n { background-image: url('https://i.ibb.co/39JLVmPw/image.png'); }\n.rlmain .rlcg[cg=\"ouyangqian\"] .rlcg-h { background-image: url('https://i.ibb.co/67t1g4sG/1.png'); }\n/* 皮燕子 */\n.rlmain .rlcg[cg=\"piyanzi\"] .rlcg-n { background-image: url('https://i.ibb.co/XZ24Wqgn/image.png'); }\n.rlmain .rlcg[cg=\"piyanzi\"] .rlcg-h { background-image: url('https://i.ibb.co/tpVC8vq9/1.png'); }\n/* 秦穆 */\n.rlmain .rlcg[cg=\"qinmu\"] .rlcg-n { background-image: url('https://i.ibb.co/DTpN7Kq/image.png'); }\n.rlmain .rlcg[cg=\"qinmu\"] .rlcg-h { background-image: url('https://i.ibb.co/1YbwwhWh/1.png'); }\n/* 宋魅 */\n.rlmain .rlcg[cg=\"songmei\"] .rlcg-n { background-image: url('https://i.ibb.co/xKbGvK2Q/image.png'); }\n.rlmain .rlcg[cg=\"songmei\"] .rlcg-h { background-image: url('https://i.ibb.co/rR2Wr0hp/1.png'); }\n/* 宋绮罗 */\n.rlmain .rlcg[cg=\"songqiluo\"] .rlcg-n { background-image: url('https://i.ibb.co/5hxmHX7Q/image.png'); }\n.rlmain .rlcg[cg=\"songqiluo\"] .rlcg-h { background-image: url('https://i.ibb.co/1fMvhnZW/1.png'); }\n/* 苏狂娇 */\n.rlmain .rlcg[cg=\"sukuangjiao\"] .rlcg-n { background-image: url('https://i.ibb.co/9kt7W6yM/image.png'); }\n.rlmain .rlcg[cg=\"sukuangjiao\"] .rlcg-h { background-image: url('https://i.ibb.co/MynQnWJR/1.png'); }\n/* 苏凝语 */\n.rlmain .rlcg[cg=\"suningyu\"] .rlcg-n { background-image: url('https://i.ibb.co/SCwSz7p/image.png'); }\n.rlmain .rlcg[cg=\"suningyu\"] .rlcg-h { background-image: url('https://i.ibb.co/nsV78f9j/1.png'); }\n/* 苏婉儿 */\n.rlmain .rlcg[cg=\"suwaner\"] .rlcg-n { background-image: url('https://i.ibb.co/G4gB1CN2/image.png'); }\n.rlmain .rlcg[cg=\"suwaner\"] .rlcg-h { background-image: url('https://i.ibb.co/kgMSDtD0/1.png'); }\n/* 萧银雪 */\n.rlmain .rlcg[cg=\"xiaoyinxue\"] .rlcg-n { background-image: url('https://i.ibb.co/SbTw2XS/image.png'); }\n.rlmain .rlcg[cg=\"xiaoyinxue\"] .rlcg-h { background-image: url('https://i.ibb.co/0yFXyXXb/1.png'); }\n/* 叶小曼 */\n.rlmain .rlcg[cg=\"yexiaoman\"] .rlcg-n { background-image: url('https://i.ibb.co/rRbJbfq8/image.png'); }\n.rlmain .rlcg[cg=\"yexiaoman\"] .rlcg-h { background-image: url('https://i.ibb.co/rnpFX1S/1.png'); }\n/* 殷绛唇 */\n.rlmain .rlcg[cg=\"yinjiangchun\"] .rlcg-n { background-image: url('https://i.ibb.co/cK9yRV6H/image.png'); }\n.rlmain .rlcg[cg=\"yinjiangchun\"] .rlcg-h { background-image: url('https://i.ibb.co/vxM5V4ng/1.png'); }\n/* 虞静姝 */\n.rlmain .rlcg[cg=\"yujingshu\"] .rlcg-n { background-image: url('https://i.ibb.co/PZwTK8v7/image.png'); }\n.rlmain .rlcg[cg=\"yujingshu\"] .rlcg-h { background-image: url('https://i.ibb.co/K3c17dk/1.png'); }\n/* 云清霜 */\n.rlmain .rlcg[cg=\"yunqingshuang\"] .rlcg-n { background-image: url('https://i.ibb.co/LdKx2SQ5/image.png'); }\n.rlmain .rlcg[cg=\"yunqingshuang\"] .rlcg-h { background-image: url('https://i.ibb.co/HTm6WJyG/1.png'); }\n/* 诸葛婻 */\n.rlmain .rlcg[cg=\"zhugehan\"] .rlcg-n { background-image: url('https://i.ibb.co/9HnrDG11/image.png'); }\n.rlmain .rlcg[cg=\"zhugehan\"] .rlcg-h { background-image: url('https://i.ibb.co/mF0M2M2C/1.png'); }\n/* ========== 轮回乐园角色CG立绘映射 ========== */\n/* 苏晓 */\n.rlmain .rlcg[cg=\"suxiao\"] .rlcg-n { background-image: url('https://i.ibb.co/k23Fpcrk/b93c3442-6a0f-451f-9006-1573225ab97d.png'); }\n.rlmain .rlcg[cg=\"suxiao\"] .rlcg-h { background-image: url('https://i.ibb.co/CLstG13/2fe6cb63-9498-435f-b216-dd9a9e4e7852.png'); }\n/* 布布汪 */\n.rlmain .rlcg[cg=\"bubuwang\"] .rlcg-n { background-image: url('https://i.ibb.co/Rp6h65L8/image.png'); }\n/* 巴哈 */\n.rlmain .rlcg[cg=\"baha\"] .rlcg-n { background-image: url('https://i.ibb.co/DDd71fR8/image.png'); }\n/* 阿姆 */\n.rlmain .rlcg[cg=\"amu\"] .rlcg-n { background-image: url('https://i.ibb.co/V02RwD1c/image.png'); }\n/* 贝妮 */\n.rlmain .rlcg[cg=\"beini\"] .rlcg-n { background-image: url('https://i.ibb.co/gbX3Gr4v/image.png'); }\n/* 棘拉 */\n.rlmain .rlcg[cg=\"jila\"] .rlcg-n { background-image: url('https://i.ibb.co/dsXCpdQH/image.png'); }\n.rlmain .rlcg[cg=\"jila\"] .rlcg-h { background-image: url('https://i.ibb.co/xSCZ2s67/1.png'); }\n/* 团长 */\n.rlmain .rlcg[cg=\"tuanzhang\"] .rlcg-n { background-image: url('https://i.ibb.co/p6t4Qgb6/image.png'); }\n/* 控偶师 */\n.rlmain .rlcg[cg=\"kongoushi\"] .rlcg-n { background-image: url('https://i.ibb.co/ksK9rWnN/image.png'); }\n.rlmain .rlcg[cg=\"kongoushi\"] .rlcg-h { background-image: url('https://i.ibb.co/4RyHhQ54/1.png'); }\n/* 魔女 */\n.rlmain .rlcg[cg=\"monv\"] .rlcg-n { background-image: url('https://i.ibb.co/b554BPLj/image.png'); }\n.rlmain .rlcg[cg=\"monv\"] .rlcg-h { background-image: url('https://i.ibb.co/j9x1JLy3/1.png'); }\n/* 咕噜 */\n.rlmain .rlcg[cg=\"gulu\"] .rlcg-n { background-image: url('https://i.ibb.co/CK564B73/image.png'); }\n.rlmain .rlcg[cg=\"gulu\"] .rlcg-h { background-image: url('https://i.ibb.co/B2fqbf4M/1.png'); }\n/* J先生 */\n.rlmain .rlcg[cg=\"jxiansheng\"] .rlcg-n { background-image: url('https://i.ibb.co/1fKsmN3k/J.png'); }\n/* 莎 */\n.rlmain .rlcg[cg=\"sha\"] .rlcg-n { background-image: url('https://i.ibb.co/zdZ6dtP/image.png'); }\n.rlmain .rlcg[cg=\"sha\"] .rlcg-h { background-image: url('https://i.ibb.co/qVp7zvT/1.png'); }\n/* 黑蔷薇 */\n.rlmain .rlcg[cg=\"heiqiangwei\"] .rlcg-n { background-image: url('https://i.ibb.co/svCSdG76/image.png'); }\n.rlmain .rlcg[cg=\"heiqiangwei\"] .rlcg-h { background-image: url('https://i.ibb.co/7dGCwn1K/1.png'); }\n/* 狠人兄 */\n.rlmain .rlcg[cg=\"henrenxiong\"] .rlcg-n { background-image: url('https://i.ibb.co/bgCgmwVv/image.png'); }\n/* 希儿 */\n.rlmain .rlcg[cg=\"xier\"] .rlcg-n { background-image: url('https://i.ibb.co/wFmXL35k/image.png'); }\n.rlmain .rlcg[cg=\"xier\"] .rlcg-h { background-image: url('https://i.ibb.co/k6QDPxdg/1.png'); }\n/* 亡灵妹 */\n.rlmain .rlcg[cg=\"wanglingmei\"] .rlcg-n { background-image: url('https://i.ibb.co/B2h98nQb/image.png'); }\n.rlmain .rlcg[cg=\"wanglingmei\"] .rlcg-h { background-image: url('https://i.ibb.co/qM318npg/1.png'); }\n/* 夏 */\n.rlmain .rlcg[cg=\"xia\"] .rlcg-n { background-image: url('https://i.ibb.co/rGD8rdzh/image.png'); }\n.rlmain .rlcg[cg=\"xia\"] .rlcg-h { background-image: url('https://i.ibb.co/yjdp20F/1.png'); }\n/* 尼古拉斯·凯撒 */\n.rlmain .rlcg[cg=\"nigulasi\"] .rlcg-n { background-image: url('https://i.ibb.co/TqpGn34W/image.png'); }\n/* 罪亚斯 */\n.rlmain .rlcg[cg=\"zuiyasi\"] .rlcg-n { background-image: url('https://i.ibb.co/Cpm8gqp1/image.png'); }\n/* 莫蕾 */\n.rlmain .rlcg[cg=\"molei\"] .rlcg-n { background-image: url('https://i.ibb.co/BVWhTfbZ/image.png'); }\n.rlmain .rlcg[cg=\"molei\"] .rlcg-h { background-image: url('https://i.ibb.co/Vp5PNSh1/1.png'); }\n/* 月使徒 */\n.rlmain .rlcg[cg=\"yueshitu\"] .rlcg-n { background-image: url('https://i.ibb.co/ZpjKS7h0/image.png'); }\n.rlmain .rlcg[cg=\"yueshitu\"] .rlcg-h { background-image: url('https://i.ibb.co/zHB2hCvx/1.png'); }\n/* 豪妹 */\n.rlmain .rlcg[cg=\"haomei\"] .rlcg-n { background-image: url('https://i.ibb.co/3568Vmyz/image.png'); }\n.rlmain .rlcg[cg=\"haomei\"] .rlcg-h { background-image: url('https://i.ibb.co/SXfTzRdT/1.png'); }\n/* 伍德 */\n.rlmain .rlcg[cg=\"wude\"] .rlcg-n { background-image: url('https://i.ibb.co/yFnXX4rg/image.png'); }\n/* 格林·吉莉安 */\n.rlmain .rlcg[cg=\"gelin\"] .rlcg-n { background-image: url('https://i.ibb.co/qMXPwM3R/image.png'); }\n.rlmain .rlcg[cg=\"gelin\"] .rlcg-h { background-image: url('https://i.ibb.co/FbVhXjS5/1.png'); }\n/* 白龙女 */\n.rlmain .rlcg[cg=\"bailongnv\"] .rlcg-n { background-image: url('https://i.ibb.co/7djPp3tk/image.png'); }\n.rlmain .rlcg[cg=\"bailongnv\"] .rlcg-h { background-image: url('https://i.ibb.co/s9sY1fd8/1.png'); }\n/* 白牛 */\n.rlmain .rlcg[cg=\"bainiu\"] .rlcg-n { background-image: url('https://i.ibb.co/d0hLnPfT/image.png'); }\n/* 不死老人 */\n.rlmain .rlcg[cg=\"busilaoren\"] .rlcg-n { background-image: url('https://i.ibb.co/Q7Pn4RLN/image.png'); }\n/* 刀魔 */\n.rlmain .rlcg[cg=\"daomo\"] .rlcg-n { background-image: url('https://i.ibb.co/p6qXWQ2x/image.png'); }\n/* 圣女座 */\n.rlmain .rlcg[cg=\"shengnvzuo\"] .rlcg-n { background-image: url('https://i.ibb.co/HTtM2t5C/image.png'); }\n.rlmain .rlcg[cg=\"shengnvzuo\"] .rlcg-h { background-image: url('https://i.ibb.co/PzGGfyj6/1.png'); }\n/* 幸运女神 */\n.rlmain .rlcg[cg=\"xingyunnvshen\"] .rlcg-n { background-image: url('https://i.ibb.co/DHq5pNZ6/image.png'); }\n.rlmain .rlcg[cg=\"xingyunnvshen\"] .rlcg-h { background-image: url('https://i.ibb.co/01f7jnB/1.png'); }\n/* 命运女神 */\n.rlmain .rlcg[cg=\"mingyunnvshen\"] .rlcg-n { background-image: url('https://i.ibb.co/CphfSgjH/image.png'); }\n.rlmain .rlcg[cg=\"mingyunnvshen\"] .rlcg-h { background-image: url('https://i.ibb.co/KjSy1chj/2.png'); }\n/* 月女巫·瑟希莉丝 */\n.rlmain .rlcg[cg=\"yuenvwu\"] .rlcg-n { background-image: url('https://i.ibb.co/ynvF0w88/image.png'); }\n.rlmain .rlcg[cg=\"yuenvwu\"] .rlcg-h { background-image: url('https://i.ibb.co/sdxfPqC7/1.png'); }\n/* 法师贤者·瑟菲莉娅 */\n.rlmain .rlcg[cg=\"fashixianzhe\"] .rlcg-n { background-image: url('https://i.ibb.co/tMnL93LK/image.png'); }\n.rlmain .rlcg[cg=\"fashixianzhe\"] .rlcg-h { background-image: url('https://i.ibb.co/PZFDBkWn/1.png'); }\n/* 白金使徒 */\n.rlmain .rlcg[cg=\"baijinshitu\"] .rlcg-n { background-image: url('https://i.ibb.co/j9KCxHJj/image.png'); }\n/* 灰绅士 */\n.rlmain .rlcg[cg=\"huishenshi\"] .rlcg-n { background-image: url('https://i.ibb.co/fdTh3CRh/image.png'); }\n/* 老神父 */\n.rlmain .rlcg[cg=\"laoshenfu\"] .rlcg-n { background-image: url('https://i.ibb.co/4R4pK510/image.png'); }\n\n/* ---------- 原创DLC新增角色CG映射 ---------- */\n/* 罂清雪 */\n.rlmain .rlcg[cg=\"yingqingxue\"] .rlcg-n { background-image: url('https://i.ibb.co/pjstXC5h/image.png'); }\n.rlmain .rlcg[cg=\"yingqingxue\"] .rlcg-h { background-image: url('https://i.ibb.co/ybfSM9D/1.png'); }\n/* 沈墨婉 */\n.rlmain .rlcg[cg=\"shenmowan\"] .rlcg-n { background-image: url('https://i.ibb.co/8L6R2mZg/image.png'); }\n.rlmain .rlcg[cg=\"shenmowan\"] .rlcg-h { background-image: url('https://i.ibb.co/Z6HQrWxp/1.png'); }\n/* 幽白给 */\n.rlmain .rlcg[cg=\"youbaigei\"] .rlcg-n { background-image: url('https://i.ibb.co/BpYBKQS/image.png'); }\n.rlmain .rlcg[cg=\"youbaigei\"] .rlcg-h { background-image: url('https://i.ibb.co/5XVCKs21/1.png'); }\n/* 沈凌云 */\n.rlmain .rlcg[cg=\"shenlingyun\"] .rlcg-n { background-image: url('https://i.ibb.co/kVMmzwW7/image.png'); }\n.rlmain .rlcg[cg=\"shenlingyun\"] .rlcg-h { background-image: url('https://i.ibb.co/1GF13f6y/1.png'); }\n/* 红嫣仙 */\n.rlmain .rlcg[cg=\"hongyanxian\"] .rlcg-n { background-image: url('https://i.ibb.co/KRx5wzc/image.png'); }\n.rlmain .rlcg[cg=\"hongyanxian\"] .rlcg-h { background-image: url('https://i.ibb.co/VcN84F8f/1.png'); }\n/* 李红音 */\n.rlmain .rlcg[cg=\"lihongyin\"] .rlcg-n { background-image: url('https://i.ibb.co/cSdSDZh7/image.png'); }\n.rlmain .rlcg[cg=\"lihongyin\"] .rlcg-h { background-image: url('https://i.ibb.co/QF26hk3N/1.png'); }\n/* 谢瓶儿 */\n.rlmain .rlcg[cg=\"xiepinger\"] .rlcg-n { background-image: url('https://i.ibb.co/Y7DB8wBB/image.png'); }\n.rlmain .rlcg[cg=\"xiepinger\"] .rlcg-h { background-image: url('https://i.ibb.co/chDRRM6x/1.png'); }\n/* 赵紫灵 */\n.rlmain .rlcg[cg=\"zhaoziling\"] .rlcg-n { background-image: url('https://i.ibb.co/k22mGDm8/image.png'); }\n.rlmain .rlcg[cg=\"zhaoziling\"] .rlcg-h { background-image: url('https://i.ibb.co/HDX5Cpbh/1.png'); }\n/* 绛凰 */\n.rlmain .rlcg[cg=\"jianghuang\"] .rlcg-n { background-image: url('https://i.ibb.co/1YvvZ46W/image.png'); }\n.rlmain .rlcg[cg=\"jianghuang\"] .rlcg-h { background-image: url('https://i.ibb.co/pBz6NmwJ/1.png'); }\n/* 云清 */\n.rlmain .rlcg[cg=\"yunqing\"] .rlcg-n { background-image: url('https://i.ibb.co/v4wjsBws/image.png'); }\n.rlmain .rlcg[cg=\"yunqing\"] .rlcg-h { background-image: url('https://i.ibb.co/5zxPKYm/1.png'); }\n/* 苏烬棠 */\n.rlmain .rlcg[cg=\"sujintang\"] .rlcg-n { background-image: url('https://i.ibb.co/jPRMWvJk/image.png'); }\n.rlmain .rlcg[cg=\"sujintang\"] .rlcg-h { background-image: url('https://i.ibb.co/p6R0YsR6/1.png'); }\n/* 介凝语 */\n.rlmain .rlcg[cg=\"jieningyu\"] .rlcg-n { background-image: url('https://i.ibb.co/9mVgsHyD/image.png'); }\n.rlmain .rlcg[cg=\"jieningyu\"] .rlcg-h { background-image: url('https://i.ibb.co/sTyTpt1/1.png'); }\n/* 方清晓 */\n.rlmain .rlcg[cg=\"fangqingxiao\"] .rlcg-n { background-image: url('https://i.ibb.co/y2jxhKf/image.png'); }\n.rlmain .rlcg[cg=\"fangqingxiao\"] .rlcg-h { background-image: url('https://i.ibb.co/G4yL8NQR/1.png'); }\n/* 沧璘 */\n.rlmain .rlcg[cg=\"canglin\"] .rlcg-n { background-image: url('https://i.ibb.co/cc2C1M6k/image.png'); }\n.rlmain .rlcg[cg=\"canglin\"] .rlcg-h { background-image: url('https://i.ibb.co/BRf6x7W/11.png'); }\n/* 何玉汵 */\n.rlmain .rlcg[cg=\"heyubian\"] .rlcg-n { background-image: url('https://i.ibb.co/nsNmSvvb/image.png'); }\n.rlmain .rlcg[cg=\"heyubian\"] .rlcg-h { background-image: url('https://i.ibb.co/q3dCwC3v/1.png'); }\n/* 晏清寒 */\n.rlmain .rlcg[cg=\"yanqinghan\"] .rlcg-n { background-image: url('https://i.ibb.co/6J4F1QTW/image.png'); }\n.rlmain .rlcg[cg=\"yanqinghan\"] .rlcg-h { background-image: url('https://i.ibb.co/6S5hw5V/1.png'); }\n/* 小血 */\n.rlmain .rlcg[cg=\"xiaoxue\"] .rlcg-n { background-image: url('https://i.ibb.co/H8326DZ/image.png'); }\n.rlmain .rlcg[cg=\"xiaoxue\"] .rlcg-h { background-image: url('https://i.ibb.co/hFdGrb30/1.png'); }\n/* 叶知微 */\n.rlmain .rlcg[cg=\"yezhiwei\"] .rlcg-n { background-image: url('https://i.ibb.co/R4dBR81K/image.png'); }\n.rlmain .rlcg[cg=\"yezhiwei\"] .rlcg-h { background-image: url('https://i.ibb.co/Wv3S67Qf/1.png'); }\n/* 翩跹 */\n.rlmain .rlcg[cg=\"pianxian\"] .rlcg-n { background-image: url('https://i.ibb.co/rKK2gL4h/image.png'); }\n.rlmain .rlcg[cg=\"pianxian\"] .rlcg-h { background-image: url('https://i.ibb.co/DgkZRwJ8/1.png'); }\n/* 苏秋湫 */\n.rlmain .rlcg[cg=\"suqiuqiu\"] .rlcg-n { background-image: url('https://i.ibb.co/N6X4js5K/image.png'); }\n.rlmain .rlcg[cg=\"suqiuqiu\"] .rlcg-h { background-image: url('https://i.ibb.co/C3pdpDZ5/1.png'); }\n/* 白璃星 */\n.rlmain .rlcg[cg=\"bailixing\"] .rlcg-n { background-image: url('https://i.ibb.co/tp8647NN/image.png'); }\n.rlmain .rlcg[cg=\"bailixing\"] .rlcg-h { background-image: url('https://i.ibb.co/bgdMdvhR/1.png'); }\n/* 九喵喵 */\n.rlmain .rlcg[cg=\"jiumiaomiao\"] .rlcg-n { background-image: url('https://i.ibb.co/SXMXq97j/image.png'); }\n.rlmain .rlcg[cg=\"jiumiaomiao\"] .rlcg-h { background-image: url('https://i.ibb.co/cXt1TsbX/1.png'); }\n/* 蜜拉 */\n.rlmain .rlcg[cg=\"mila\"] .rlcg-n { background-image: url('https://i.ibb.co/fzHT7Dn1/image.png'); }\n.rlmain .rlcg[cg=\"mila\"] .rlcg-h { background-image: url('https://i.ibb.co/zVkJPrCL/1.png'); }\n/* 维尔娜 */\n.rlmain .rlcg[cg=\"weierena\"] .rlcg-n { background-image: url('https://i.ibb.co/CsVXVyCH/image.png'); }\n.rlmain .rlcg[cg=\"weierena\"] .rlcg-h { background-image: url('https://i.ibb.co/6hV0XXD/1.png'); }\n/* 绯月 */\n.rlmain .rlcg[cg=\"feiyue\"] .rlcg-n { background-image: url('https://i.ibb.co/Ld7ypXvc/image.png'); }\n.rlmain .rlcg[cg=\"feiyue\"] .rlcg-h { background-image: url('https://i.ibb.co/B2fHq7vR/1.png'); }\n/* 赫拉克 */\n.rlmain .rlcg[cg=\"helake\"] .rlcg-n { background-image: url('https://i.ibb.co/4ZLw8YBg/image.png'); }\n.rlmain .rlcg[cg=\"helake\"] .rlcg-h { background-image: url('https://i.ibb.co/7NbzP5TF/1.png'); }\n/* 艾洛蒂 */\n.rlmain .rlcg[cg=\"ailuodi\"] .rlcg-n { background-image: url('https://i.ibb.co/Lz1ssgxg/image.png'); }\n.rlmain .rlcg[cg=\"ailuodi\"] .rlcg-h { background-image: url('https://i.ibb.co/j9TLV4bx/1.png'); }\n/* 芽莉莉 */\n.rlmain .rlcg[cg=\"yalili\"] .rlcg-n { background-image: url('https://i.ibb.co/cc2KypCf/image.png'); }\n.rlmain .rlcg[cg=\"yalili\"] .rlcg-h { background-image: url('https://i.ibb.co/5XPk4CGX/11.png'); }\n/* 瑟菲娅 */\n.rlmain .rlcg[cg=\"sefeiya\"] .rlcg-n { background-image: url('https://i.ibb.co/MD4jmSLd/image.png'); }\n.rlmain .rlcg[cg=\"sefeiya\"] .rlcg-h { background-image: url('https://i.ibb.co/Xx7Wzmvk/1.png'); }\n/* 诺娃 */\n.rlmain .rlcg[cg=\"nuowa\"] .rlcg-n { background-image: url('https://i.ibb.co/SFqQq03/image.png'); }\n.rlmain .rlcg[cg=\"nuowa\"] .rlcg-h { background-image: url('https://i.ibb.co/v6TzMK47/1.png'); }\n/* 薇缇雅 */\n.rlmain .rlcg[cg=\"weitiya\"] .rlcg-n { background-image: url('https://i.ibb.co/SzsJNzP/image.png'); }\n.rlmain .rlcg[cg=\"weitiya\"] .rlcg-h { background-image: url('https://i.ibb.co/yFYwqVbd/1.png'); }\n/* 咬人喵 */\n.rlmain .rlcg[cg=\"yaorenmiao\"] .rlcg-n { background-image: url('https://i.ibb.co/5hXnCrJc/image.png'); }\n.rlmain .rlcg[cg=\"yaorenmiao\"] .rlcg-h { background-image: url('https://i.ibb.co/XxqkDTWC/1.png'); }\n/* 陈胖 */\n.rlmain .rlcg[cg=\"chenpang\"] .rlcg-n { background-image: url('https://i.ibb.co/ynt71FRC/image.png'); }\n/* 莉莉亚 */\n.rlmain .rlcg[cg=\"liliya\"] .rlcg-n { background-image: url('https://i.ibb.co/Fk4qFLLJ/image.png'); }\n.rlmain .rlcg[cg=\"liliya\"] .rlcg-h { background-image: url('https://i.ibb.co/R4ZfzQDj/1.png'); }\n/* 美食家 */\n.rlmain .rlcg[cg=\"meishijia\"] .rlcg-n { background-image: url('https://i.ibb.co/fzXGgTN9/image.png'); }\n/* 国足三兄弟 */\n.rlmain .rlcg[cg=\"guozusanxiong\"] .rlcg-n { background-image: url('https://i.ibb.co/MDj1mJ4f/image.png'); }\n/* Z女士 */\n.rlmain .rlcg[cg=\"z-nvshi\"] .rlcg-n { background-image: url('https://i.ibb.co/Zt6qq5V/Z.png'); }\n.rlmain .rlcg[cg=\"z-nvshi\"] .rlcg-h { background-image: url('https://i.ibb.co/9H0GZvTy/Z-1.png'); }\n/* 光沐 */\n.rlmain .rlcg[cg=\"guangmu\"] .rlcg-n { background-image: url('https://i.ibb.co/NgFmrWyM/image.png'); }\n.rlmain .rlcg[cg=\"guangmu\"] .rlcg-h { background-image: url('https://i.ibb.co/DgwhF2Hw/1.png'); }\n/* 露西西 */\n.rlmain .rlcg[cg=\"luxixi\"] .rlcg-n { background-image: url('https://i.ibb.co/HLgkTVsZ/image.png'); }\n.rlmain .rlcg[cg=\"luxixi\"] .rlcg-h { background-image: url('https://i.ibb.co/LhbwF1zR/1.png'); }\n/* 萨曼娅 */\n.rlmain .rlcg[cg=\"samanya\"] .rlcg-n { background-image: url('https://i.ibb.co/mC2d85K8/image.png'); }\n.rlmain .rlcg[cg=\"samanya\"] .rlcg-h { background-image: url('https://i.ibb.co/YTkkJkZ0/1.png'); }\n/* 丝洛儿 */\n.rlmain .rlcg[cg=\"siluoer\"] .rlcg-n { background-image: url('https://i.ibb.co/nq78Y2Hm/image.png'); }\n.rlmain .rlcg[cg=\"siluoer\"] .rlcg-h { background-image: url('https://i.ibb.co/mFvFvnJp/1.png'); }\n/* ---------- 绝区零角色CG映射 ---------- */\n/* 哲 */\n.rlmain .rlcg[cg=\"zhe\"] .rlcg-n { background-image: url('https://i.ibb.co/Dgvb6cgh/image.png'); }\n/* 铃 */\n.rlmain .rlcg[cg=\"ling\"] .rlcg-n { background-image: url('https://i.ibb.co/YB06z0Xd/image.png'); }\n.rlmain .rlcg[cg=\"ling\"] .rlcg-h { background-image: url('https://i.ibb.co/7NLKStV8/1.png'); }\n/* 11号 */\n.rlmain .rlcg[cg=\"11hao\"] .rlcg-n { background-image: url('https://i.ibb.co/gLDzhkZ3/11.png'); }\n.rlmain .rlcg[cg=\"11hao\"] .rlcg-h { background-image: url('https://i.ibb.co/HT3Yx1BL/11-1.png'); }\n/* 珂蕾妲 */\n.rlmain .rlcg[cg=\"keleida\"] .rlcg-n { background-image: url('https://i.ibb.co/JwSCmhW0/image.png'); }\n.rlmain .rlcg[cg=\"keleida\"] .rlcg-h { background-image: url('https://i.ibb.co/ksZNZKft/1.png'); }\n/* 格莉丝 */\n.rlmain .rlcg[cg=\"gelisi\"] .rlcg-n { background-image: url('https://i.ibb.co/wN3kNqHt/image.png'); }\n.rlmain .rlcg[cg=\"gelisi\"] .rlcg-h { background-image: url('https://i.ibb.co/6RCwFncw/1.png'); }\n/* 安比 */\n.rlmain .rlcg[cg=\"anbi\"] .rlcg-n { background-image: url('https://i.ibb.co/0jqjvBsF/image.png'); }\n.rlmain .rlcg[cg=\"anbi\"] .rlcg-h { background-image: url('https://i.ibb.co/FbbB7BVj/1.png'); }\n/* 猫又 */\n.rlmain .rlcg[cg=\"maoyou\"] .rlcg-n { background-image: url('https://i.ibb.co/14xg9RT/image.png'); }\n.rlmain .rlcg[cg=\"maoyou\"] .rlcg-h { background-image: url('https://i.ibb.co/Mk6zpcXN/1.png'); }\n/* 妮可 */\n.rlmain .rlcg[cg=\"nike\"] .rlcg-n { background-image: url('https://i.ibb.co/Xfwy0W0g/image.png'); }\n.rlmain .rlcg[cg=\"nike\"] .rlcg-h { background-image: url('https://i.ibb.co/9kt00cs5/1.png'); }\n/* 比利 */\n.rlmain .rlcg[cg=\"bili\"] .rlcg-n { background-image: url('https://i.ibb.co/N6zwNsXF/image.png'); }\n/* 凯撒 */\n.rlmain .rlcg[cg=\"kaisa\"] .rlcg-n { background-image: url('https://i.ibb.co/tPkksTjp/image.png'); }\n.rlmain .rlcg[cg=\"kaisa\"] .rlcg-h { background-image: url('https://i.ibb.co/fYVKZ95d/1.png'); }\n/* 柏妮思 */\n.rlmain .rlcg[cg=\"bonisi\"] .rlcg-n { background-image: url('https://i.ibb.co/bwjLBXD/image.png'); }\n.rlmain .rlcg[cg=\"bonisi\"] .rlcg-h { background-image: url('https://i.ibb.co/B2tz4wvm/1.png'); }\n/* 露西 */\n.rlmain .rlcg[cg=\"luxi\"] .rlcg-n { background-image: url('https://i.ibb.co/27c6rKd4/image.png'); }\n.rlmain .rlcg[cg=\"luxi\"] .rlcg-h { background-image: url('https://i.ibb.co/hJMDvsMq/1.png'); }\n/* 朱鸢 */\n.rlmain .rlcg[cg=\"zhuyuan\"] .rlcg-n { background-image: url('https://i.ibb.co/DP7VhtZ3/image.png'); }\n.rlmain .rlcg[cg=\"zhuyuan\"] .rlcg-h { background-image: url('https://i.ibb.co/BH7hwzBG/1.png'); }\n/* 青衣 */\n.rlmain .rlcg[cg=\"qingyi\"] .rlcg-n { background-image: url('https://i.ibb.co/Ng1HsM4f/image.png'); }\n.rlmain .rlcg[cg=\"qingyi\"] .rlcg-h { background-image: url('https://i.ibb.co/5hMrJ6S0/1.png'); }\n/* 简·杜 */\n.rlmain .rlcg[cg=\"jiandu\"] .rlcg-n { background-image: url('https://i.ibb.co/35FWY0K1/image.png'); }\n.rlmain .rlcg[cg=\"jiandu\"] .rlcg-h { background-image: url('https://i.ibb.co/39WK6FnR/1.png'); }\n/* 赛斯 */\n.rlmain .rlcg[cg=\"saisi\"] .rlcg-n { background-image: url('https://i.ibb.co/3mQbTJty/image.png'); }\n/* 薇薇安 */\n.rlmain .rlcg[cg=\"weiweian\"] .rlcg-n { background-image: url('https://i.ibb.co/ymtpyt9s/image.png'); }\n.rlmain .rlcg[cg=\"weiweian\"] .rlcg-h { background-image: url('https://i.ibb.co/V04jkqgx/1.png'); }\n/* 星见雅 */\n.rlmain .rlcg[cg=\"xingjianya\"] .rlcg-n { background-image: url('https://i.ibb.co/TxbK4cp7/image.png'); }\n.rlmain .rlcg[cg=\"xingjianya\"] .rlcg-h { background-image: url('https://i.ibb.co/jkrr9XJF/1.png'); }\n/* 月城柳 */\n.rlmain .rlcg[cg=\"yuechengliu\"] .rlcg-n { background-image: url('https://i.ibb.co/LDynCYns/image.png'); }\n.rlmain .rlcg[cg=\"yuechengliu\"] .rlcg-h { background-image: url('https://i.ibb.co/TBN9DsCb/1.png'); }\n/* 苍角 */\n.rlmain .rlcg[cg=\"cangjiao\"] .rlcg-n { background-image: url('https://i.ibb.co/b5sKqhyT/image.png'); }\n.rlmain .rlcg[cg=\"cangjiao\"] .rlcg-h { background-image: url('https://i.ibb.co/RG8Lb24s/1.png'); }\n/* 莱卡恩 */\n.rlmain .rlcg[cg=\"laikaen\"] .rlcg-n { background-image: url('https://i.ibb.co/JWDJPkRr/image.png'); }\n/* 丽娜 */\n.rlmain .rlcg[cg=\"lina\"] .rlcg-n { background-image: url('https://i.ibb.co/wfxFb1v/image.png'); }\n.rlmain .rlcg[cg=\"lina\"] .rlcg-h { background-image: url('https://i.ibb.co/fGVJ8zDG/1.png'); }\n/* 艾莲 */\n.rlmain .rlcg[cg=\"ailian\"] .rlcg-n { background-image: url('https://i.ibb.co/xngtz1d/image.png'); }\n.rlmain .rlcg[cg=\"ailian\"] .rlcg-h { background-image: url('https://i.ibb.co/4nsmZ9nd/1.png'); }\n/* 可琳 */\n.rlmain .rlcg[cg=\"kelin\"] .rlcg-n { background-image: url('https://i.ibb.co/27CFstXH/image.png'); }\n.rlmain .rlcg[cg=\"kelin\"] .rlcg-h { background-image: url('https://i.ibb.co/0yd3Rf0g/1.png'); }\n/* ---------- 尼尔组 ---------- */\n/* 2B */\n.rlmain .rlcg[cg=\"2b\"] .rlcg-n { background-image: url('https://i.ibb.co/sd9Z6R8f/2B.png'); }\n.rlmain .rlcg[cg=\"2b\"] .rlcg-h { background-image: url('https://i.ibb.co/PvDfsJnD/2B1.png'); }\n/* A2 */\n.rlmain .rlcg[cg=\"a2\"] .rlcg-n { background-image: url('https://i.ibb.co/Z6tVDYtY/A2.png'); }\n.rlmain .rlcg[cg=\"a2\"] .rlcg-h { background-image: url('https://i.ibb.co/1fgVcmrJ/A21.png'); }\n/* 凯妮 */\n.rlmain .rlcg[cg=\"kaini\"] .rlcg-n { background-image: url('https://i.ibb.co/Xrmt5dTN/Kaine.png'); }\n.rlmain .rlcg[cg=\"kaini\"] .rlcg-h { background-image: url('https://i.ibb.co/FbkH8937/Kaine1.png'); }\n/* ---------- 型月组 ---------- */\n/* 阿尔托莉雅 */\n.rlmain .rlcg[cg=\"aertuoliya\"] .rlcg-n { background-image: url('https://i.ibb.co/35GzhxXK/image.png'); }\n.rlmain .rlcg[cg=\"aertuoliya\"] .rlcg-h { background-image: url('https://i.ibb.co/4ZMQ581J/1.png'); }\n/* 爱丽丝菲尔 */\n.rlmain .rlcg[cg=\"ailisifeier\"] .rlcg-n { background-image: url('https://i.ibb.co/3DSNjy3/image.png'); }\n.rlmain .rlcg[cg=\"ailisifeier\"] .rlcg-h { background-image: url('https://i.ibb.co/N2S1Gw4H/1.png'); }\n/* 间桐樱 */\n.rlmain .rlcg[cg=\"jiantongying\"] .rlcg-n { background-image: url('https://i.ibb.co/DH0pcBxF/image.png'); }\n.rlmain .rlcg[cg=\"jiantongying\"] .rlcg-h { background-image: url('https://i.ibb.co/bM5xRJ51/1.png'); }\n/* 美杜莎 */\n.rlmain .rlcg[cg=\"meidusha\"] .rlcg-n { background-image: url('https://i.ibb.co/WvcN9tWK/image.png'); }\n.rlmain .rlcg[cg=\"meidusha\"] .rlcg-h { background-image: url('https://i.ibb.co/W46R3VsZ/1.png'); }\n/* 牛若丸 */\n.rlmain .rlcg[cg=\"niuruowan\"] .rlcg-n { background-image: url('https://i.ibb.co/qMCzWGZ7/image.png'); }\n.rlmain .rlcg[cg=\"niuruowan\"] .rlcg-h { background-image: url('https://i.ibb.co/pjpRzFFn/1.png'); }\n/* 杀生院祈荒 */\n.rlmain .rlcg[cg=\"shashengyuan\"] .rlcg-n { background-image: url('https://i.ibb.co/6R3swF1T/image.png'); }\n.rlmain .rlcg[cg=\"shashengyuan\"] .rlcg-h { background-image: url('https://i.ibb.co/FkHCmCDf/1.png'); }\n/* 斯卡蒂 */\n.rlmain .rlcg[cg=\"sikadi\"] .rlcg-n { background-image: url('https://i.ibb.co/j9TqMsvw/image.png'); }\n.rlmain .rlcg[cg=\"sikadi\"] .rlcg-h { background-image: url('https://i.ibb.co/N6vxMdPM/1.png'); }\n/* 提亚马特 */\n.rlmain .rlcg[cg=\"tiyamate\"] .rlcg-n { background-image: url('https://i.ibb.co/jvWjQ4dV/image.png'); }\n.rlmain .rlcg[cg=\"tiyamate\"] .rlcg-h { background-image: url('https://i.ibb.co/S4kcLPr1/1.png'); }\n/* 武则天 */\n.rlmain .rlcg[cg=\"wuzetian\"] .rlcg-n { background-image: url('https://i.ibb.co/39WvZTLK/image.png'); }\n.rlmain .rlcg[cg=\"wuzetian\"] .rlcg-h { background-image: url('https://i.ibb.co/b5kxzzDR/1.png'); }\n/* 玉藻前 */\n.rlmain .rlcg[cg=\"yuzaoqian\"] .rlcg-n { background-image: url('https://i.ibb.co/Y4Y0mMqQ/image.png'); }\n.rlmain .rlcg[cg=\"yuzaoqian\"] .rlcg-h { background-image: url('https://i.ibb.co/qYJLDJSb/1.png'); }\n/* 源赖光 */\n.rlmain .rlcg[cg=\"yuanlaiguang\"] .rlcg-n { background-image: url('https://i.ibb.co/JWdTB9Vt/image.png'); }\n.rlmain .rlcg[cg=\"yuanlaiguang\"] .rlcg-h { background-image: url('https://i.ibb.co/0Rhty7Bw/1.png'); }\n/* 远坂凛 */\n.rlmain .rlcg[cg=\"yuanbanlin\"] .rlcg-n { background-image: url('https://i.ibb.co/fYDYkKpY/image.png'); }\n.rlmain .rlcg[cg=\"yuanbanlin\"] .rlcg-h { background-image: url('https://i.ibb.co/R4vnz7cJ/1.png'); }\n/* 紫式部 */\n.rlmain .rlcg[cg=\"zishibu\"] .rlcg-n { background-image: url('https://i.ibb.co/twCXFPmn/image.png'); }\n.rlmain .rlcg[cg=\"zishibu\"] .rlcg-h { background-image: url('https://i.ibb.co/1GvBSmnJ/1.png'); }\n/* ---------- 原神组 ---------- */\n/* 甘雨 */\n.rlmain .rlcg[cg=\"ganyu\"] .rlcg-n { background-image: url('https://i.ibb.co/Ps9tz5J8/image.png'); }\n.rlmain .rlcg[cg=\"ganyu\"] .rlcg-h { background-image: url('https://i.ibb.co/C5NS6QPn/1.png'); }\n/* 刻晴 */\n.rlmain .rlcg[cg=\"keqing\"] .rlcg-n { background-image: url('https://i.ibb.co/CKdnh5dZ/image.png'); }\n.rlmain .rlcg[cg=\"keqing\"] .rlcg-h { background-image: url('https://i.ibb.co/HfNmTfXK/1.png'); }\n/* 雷电影 */\n.rlmain .rlcg[cg=\"leidianying\"] .rlcg-n { background-image: url('https://i.ibb.co/bgq3RB82/image.png'); }\n.rlmain .rlcg[cg=\"leidianying\"] .rlcg-h { background-image: url('https://i.ibb.co/v0rJn9t/1.png'); }\n/* 丽莎 */\n.rlmain .rlcg[cg=\"lisha\"] .rlcg-n { background-image: url('https://i.ibb.co/d4KVQMjd/image.png'); }\n.rlmain .rlcg[cg=\"lisha\"] .rlcg-h { background-image: url('https://i.ibb.co/nMV4CV23/1.png'); }\n/* 琳妮特 */\n.rlmain .rlcg[cg=\"linnite\"] .rlcg-n { background-image: url('https://i.ibb.co/Kpcxxm4y/image.png'); }\n.rlmain .rlcg[cg=\"linnite\"] .rlcg-h { background-image: url('https://i.ibb.co/FLpfxGTv/1.png'); }\n/* 女士（罗莎琳） */\n.rlmain .rlcg[cg=\"luoshalin\"] .rlcg-n { background-image: url('https://i.ibb.co/Y7K5J3QP/image.png'); }\n.rlmain .rlcg[cg=\"luoshalin\"] .rlcg-h { background-image: url('https://i.ibb.co/gFcfjscz/1.png'); }\n/* 玛薇卡 */\n.rlmain .rlcg[cg=\"maweika\"] .rlcg-n { background-image: url('https://i.ibb.co/hFMqj3pv/image.png'); }\n.rlmain .rlcg[cg=\"maweika\"] .rlcg-h { background-image: url('https://i.ibb.co/s9FMdSD8/1.png'); }\n/* 莫娜 */\n.rlmain .rlcg[cg=\"mona\"] .rlcg-n { background-image: url('https://i.ibb.co/S7fqftzs/image.png'); }\n.rlmain .rlcg[cg=\"mona\"] .rlcg-h { background-image: url('https://i.ibb.co/5hBCcYDS/1.png'); }\n/* 凝光 */\n.rlmain .rlcg[cg=\"ningguang\"] .rlcg-n { background-image: url('https://i.ibb.co/5W16h9Xk/image.png'); }\n.rlmain .rlcg[cg=\"ningguang\"] .rlcg-h { background-image: url('https://i.ibb.co/qYpZQNCG/1.png'); }\n/* 琴 */\n.rlmain .rlcg[cg=\"qin\"] .rlcg-n { background-image: url('https://i.ibb.co/1fr68XQ5/image.png'); }\n.rlmain .rlcg[cg=\"qin\"] .rlcg-h { background-image: url('https://i.ibb.co/FL88ZWJv/1.png'); }\n/* 申鹤 */\n.rlmain .rlcg[cg=\"shenhe\"] .rlcg-n { background-image: url('https://i.ibb.co/5xTqKDzm/image.png'); }\n.rlmain .rlcg[cg=\"shenhe\"] .rlcg-h { background-image: url('https://i.ibb.co/nqgLnjgN/1.png'); }\n/* 闲云 */\n.rlmain .rlcg[cg=\"xianyun\"] .rlcg-n { background-image: url('https://i.ibb.co/8n649ZqB/image.png'); }\n.rlmain .rlcg[cg=\"xianyun\"] .rlcg-h { background-image: url('https://i.ibb.co/xqy2Fq5r/1.png'); }\n/* 优菈 */\n.rlmain .rlcg[cg=\"youla\"] .rlcg-n { background-image: url('https://i.ibb.co/WW1tQXbX/image.png'); }\n.rlmain .rlcg[cg=\"youla\"] .rlcg-h { background-image: url('https://i.ibb.co/RTxgjCXm/1.png'); }\n/* ---------- 最终幻想组 ---------- */\n/* 爱丽丝·盖恩斯巴勒 */\n.rlmain .rlcg[cg=\"ailisiFF\"] .rlcg-n { background-image: url('https://i.ibb.co/Cs71vRc0/image.png'); }\n.rlmain .rlcg[cg=\"ailisiFF\"] .rlcg-h { background-image: url('https://i.ibb.co/4wdNJxKT/1.png'); }\n/* 蒂法 */\n.rlmain .rlcg[cg=\"difa\"] .rlcg-n { background-image: url('https://i.ibb.co/1f2zyHzf/image.png'); }\n.rlmain .rlcg[cg=\"difa\"] .rlcg-h { background-image: url('https://i.ibb.co/CKWK4PRD/1.png'); }\n\n\n/* ============================================================\n   21. 短标签别名层 · TOKEN SAVER ALIASES\n   将AI输出的极简标签映射到原有样式\n   追加至内置CSS最末尾\n   ============================================================ */\n\n/* ---------- 21-1 <t> = .rlrow ---------- */\n.rlmain t {\n  position: relative;\n  display: flex;\n  align-items: baseline;\n  gap: 8px;\n  padding: 5px 8px;\n  margin: 0 0 3px;\n  font-size: 12.5px;\n  background: linear-gradient(90deg, rgba(28, 36, 64, .5), rgba(28, 36, 64, 0));\n  border-left: 2px solid var(--rl-line2);\n  transition: background .18s ease-out, border-color .18s ease-out, padding-left .18s ease-out;\n}\n\n.rlmain t:hover {\n  background: linear-gradient(90deg, rgba(77, 208, 255, .13), rgba(28, 36, 64, 0));\n  border-left-color: var(--rl-order);\n  padding-left: 12px;\n}\n\n.rlmain t > b {\n  flex: 0 0 auto;\n  min-width: 62px;\n  font-size: 11px;\n  font-weight: 600;\n  color: var(--rl-txt2);\n  letter-spacing: .8px;\n}\n\n.rlmain t > span {\n  flex: 1 1 auto;\n  color: var(--rl-txt);\n}\n\n/* hover时t层级提升 */\n.rlmain t:has([c]:hover) {\n  z-index: 9000;\n}\n\n/* ---------- 21-2 <g2> = .rlgrid2 ---------- */\n.rlmain g2 {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  gap: 4px 9px;\n  margin: 0 0 9px;\n}\n\n.rlmain g2:has([c]:hover) {\n  position: relative;\n  z-index: 9000;\n}\n\n/* ---------- 21-3 <g3> = .rlgrid3 ---------- */\n.rlmain g3 {\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n  gap: 4px 8px;\n  margin: 0 0 9px;\n}\n\n.rlmain g3:has([c]:hover) {\n  position: relative;\n  z-index: 9000;\n}\n\n/* ---------- 21-4 <cd> = .rlcard ---------- */\n.rlmain cd {\n    display: block;     \n  position: relative;\n  box-sizing: border-box;\n  padding: 11px 13px;\n  margin: 0 0 9px;\n  background: linear-gradient(150deg, rgba(28, 36, 64, .85), rgba(14, 18, 32, .92));\n  border: 1px solid var(--rl-line2);\n  clip-path: polygon(var(--rl-cut) 0, 100% 0, 100% calc(100% - var(--rl-cut)), calc(100% - var(--rl-cut)) 100%, 0 100%, 0 var(--rl-cut));\n  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, .5));\n  transition: border-color .2s ease-out, filter .25s ease-out, transform .25s var(--rl-ez-panel);\n}\n\n.rlmain cd:hover {\n  border-color: var(--rl-order-d);\n  filter: drop-shadow(0 0 10px rgba(77, 208, 255, .35)) drop-shadow(0 3px 8px rgba(0, 0, 0, .55));\n  transform: translateY(-2px);\n}\n\n.rlmain cd:has([c]:hover) {\n  position: relative;\n  z-index: 100;\n  clip-path: none;\n}\n\n.rlmain cd::before {\n  content: '';\n  position: absolute;\n  top: 6px;\n  right: 8px;\n  width: 16px;\n  height: 8px;\n  background:\n    linear-gradient(90deg, var(--rl-order) 0 4px, transparent 4px 6px, var(--rl-order) 6px 10px, transparent 10px 12px, var(--rl-chaos) 12px 16px);\n  opacity: .55;\n}\n\n.rlmain cd::after {\n  content: '';\n  position: absolute;\n  top: 12px;\n  bottom: 12px;\n  left: 0;\n  width: 2px;\n  background: linear-gradient(180deg, var(--rl-order), transparent);\n  opacity: 0;\n  transition: opacity .25s ease-out;\n}\n\n.rlmain cd:hover::after {\n  opacity: 1;\n}\n\n/* cd内hover时解除clip-path */\n.rlmain cd:has([c]:hover) {\n  z-index: 202;\n  filter: none;\n  clip-path: none;\n}\n\n.rlmain cd:has([c]:hover):hover {\n  filter: none;\n}\n\n/* ---------- 21-5 <d> = .rldiv ---------- */\n.rlmain d {\n  display: block;\n  height: 9px;\n  margin: 10px 0;\n  border: 0;\n  background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='9' viewBox='0 0 120 9'%3E%3Cpath d='M0 4.5h44M76 4.5h44' stroke='%23223052' stroke-width='1'/%3E%3Cpath d='M60 .8l5.4 3.7L60 8.2l-5.4-3.7Z' fill='none' stroke='%234dd0ff' stroke-width='1'/%3E%3Cpath d='M50 4.5h2.4M67.6 4.5H70' stroke='%23ffc94d' stroke-width='1'/%3E%3C/svg%3E\");\n  background-repeat: no-repeat;\n  background-position: center;\n  background-size: 100% 9px;\n  opacity: .8;\n}\n\n/* ---------- 21-6 <n> = .rlnum ---------- */\n.rlmain n {\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 13px;\n  font-weight: 700;\n  color: var(--rl-order);\n  text-shadow: 0 0 7px rgba(77, 208, 255, .5);\n}\n\n/* ---------- 21-7 [c] = .rlcap (属性选择器) ---------- */\n.rlmain [c] {\n  position: relative;\n  display: inline-block;\n  box-sizing: border-box;\n  max-width: 100%;\n  padding: 2px 8px;\n  margin: 2px 3px 2px 0;\n  font-size: 10.5px;\n  font-weight: 600;\n  letter-spacing: .6px;\n  color: var(--rl-txt2);\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  background: rgba(28, 36, 64, .8);\n  border: 1px solid var(--rl-line2);\n  border-radius: 2px;\n  cursor: default;\n  transition: color .18s ease-out, border-color .18s ease-out, box-shadow .18s ease-out, transform .18s var(--rl-ez-pop);\n  -webkit-tap-highlight-color: transparent;\n}\n\n.rlmain [c] > i {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 99999;\n  box-sizing: border-box;\n  width: 320px;\n  max-width: min(320px, calc(100cqw - 30px));\n  margin-top: 6px;\n  padding: 9px 11px;\n  font: 400 10.5px/1.55 inherit;\n  font-style: normal;\n  color: var(--rl-txt);\n  text-align: left;\n  white-space: normal;\n  letter-spacing: .2px;\n  background: linear-gradient(160deg, rgba(12, 16, 28, .98), rgba(5, 7, 12, .99));\n  border: 1px solid var(--rl-order-d);\n  border-radius: 2px;\n  box-shadow: 0 6px 22px rgba(0, 0, 0, .8), 0 0 0 1px rgba(77, 208, 255, .2), inset 0 1px 0 rgba(120, 180, 240, .12);\n  opacity: 0;\n  visibility: hidden;\n  transform: translateY(-4px) scale(.96);\n  pointer-events: none;\n  transition: opacity .22s ease-out, transform .22s var(--rl-ez-pop), visibility .22s;\n  max-height: none;\n  overflow: visible;\n}\n\n.rlmain [c] > i::before {\n  content: '';\n  position: absolute;\n  bottom: 100%;\n  left: 14px;\n  width: 0;\n  height: 0;\n  border: 5px solid transparent;\n  border-bottom-color: var(--rl-order-d);\n}\n\n.rlmain [c] > i::after {\n  content: '';\n  position: absolute;\n  bottom: 100%;\n  left: 15px;\n  width: 0;\n  height: 0;\n  border: 4px solid transparent;\n  border-bottom-color: rgba(12, 16, 28, .98);\n}\n\n.rlmain [c]:hover {\n  z-index: 9999;\n  color: var(--rl-order);\n  border-color: var(--rl-order-d);\n  box-shadow: 0 0 10px rgba(77, 208, 255, .45), 0 0 20px rgba(77, 208, 255, .18);\n  transform: translateY(-1px);\n}\n\n.rlmain [c]:hover > i {\n  opacity: 1;\n  visibility: visible;\n  transform: translateY(0) scale(1);\n  pointer-events: auto;\n}\n\n.rlmain [c] > i > b {\n  display: block;\n  margin-bottom: 3px;\n  font-size: 11px;\n  font-weight: 700;\n  color: var(--rl-order);\n  letter-spacing: .6px;\n  text-shadow: 0 0 6px rgba(77, 208, 255, .5);\n}\n\n.rlmain [c] > i > hr {\n  height: 1px;\n  margin: 4px 0;\n  border: 0;\n  background: linear-gradient(90deg, var(--rl-order-d), transparent);\n}\n\n/* [c][n] = .rlcap.rlcap-num */\n.rlmain [c][n],\n.rlmain [c][n]:hover {\n  padding: 0;\n  margin: 0;\n  color: inherit;\n  background: transparent;\n  border: 0;\n  border-radius: 0;\n  box-shadow: none;\n  transform: none;\n}\n\n.rlmain [c][n] > i {\n  left: -4px;\n}\n\n/* ---------- 21-8 阵营色继承（[c]版） ---------- */\n.rlmain [c][fc=\"order\"] {\n  color: var(--rl-order);\n  border-color: rgba(77, 208, 255, .5);\n  background: rgba(77, 208, 255, .1);\n  text-shadow: 0 0 6px rgba(77, 208, 255, .45);\n}\n\n.rlmain [c][fc=\"chaos\"] {\n  color: var(--rl-chaos);\n  border-color: rgba(255, 45, 85, .5);\n  background: rgba(255, 45, 85, .1);\n  text-shadow: 0 0 6px rgba(255, 45, 85, .5);\n}\n\n.rlmain [c][fc=\"nature\"] {\n  color: var(--rl-nature);\n  border-color: rgba(61, 220, 151, .5);\n  background: rgba(61, 220, 151, .1);\n  text-shadow: 0 0 6px rgba(61, 220, 151, .45);\n}\n\n.rlmain [c][fc=\"none\"] {\n  color: var(--rl-txt2);\n  border-color: var(--rl-line2);\n  background: rgba(28, 36, 64, .6);\n}\n\n/* ---------- 21-9 品质色继承（[c]版） ---------- */\n.rlmain [c][q=\"1\"] { color: #9aa8bd; border-color: rgba(154, 168, 189, .4); }\n.rlmain [c][q=\"2\"] { color: #5fd97a; border-color: rgba(95, 217, 122, .45); box-shadow: 0 0 4px rgba(95, 217, 122, .35); }\n.rlmain [c][q=\"3\"] { color: #4da6ff; border-color: rgba(77, 166, 255, .5); box-shadow: 0 0 4px rgba(77, 166, 255, .35); }\n.rlmain [c][q=\"4\"] { color: #b968ff; border-color: rgba(185, 104, 255, .5); box-shadow: 0 0 10px rgba(185, 104, 255, .45), 0 0 20px rgba(185, 104, 255, .18); }\n.rlmain [c][q=\"5\"] { color: var(--rl-gold); border-color: rgba(255, 201, 77, .55); box-shadow: 0 0 10px rgba(255, 201, 77, .45), 0 0 20px rgba(255, 201, 77, .18); }\n.rlmain [c][q=\"6\"] {\n  color: #d8952a;\n  border-color: rgba(216, 149, 42, .6);\n  background: linear-gradient(90deg, rgba(216, 149, 42, .16), rgba(90, 55, 10, .08));\n  box-shadow: 0 0 8px rgba(216, 149, 42, .6), 0 0 24px rgba(216, 149, 42, .3), 0 0 48px rgba(216, 149, 42, .12);\n}\n.rlmain [c][q=\"7\"] {\n  color: #ff5ce0;\n  border-color: rgba(255, 92, 224, .65);\n  background: linear-gradient(90deg, rgba(255, 92, 224, .18), rgba(77, 208, 255, .1));\n  box-shadow: 0 0 8px rgba(255, 92, 224, .6), 0 0 24px rgba(255, 92, 224, .3), 0 0 48px rgba(255, 92, 224, .12);\n  animation: rlEternal 3.4s ease-in-out infinite;\n}\n\n/* ---------- 21-10 <w> = .rlwx ---------- */\n.rlmain w {\n  position: relative;\n  display: inline-flex;\n  align-items: center;\n  gap: 5px;\n  font-size: 12.5px;\n  font-weight: 600;\n  color: var(--rl-txt);\n}\n\n.rlmain w::before {\n  content: '';\n  flex: 0 0 auto;\n  width: 18px;\n  height: 18px;\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  -webkit-mask-position: center;\n  mask-position: center;\n  -webkit-mask-size: 18px 18px;\n  mask-size: 18px 18px;\n}\n\n.rlmain w::after {\n  content: attr(t);\n  white-space: nowrap;\n}\n\n.rlmain w[w=\"sun\"]::before {\n  background-color: var(--rl-gold);\n  filter: drop-shadow(0 0 6px rgba(255, 201, 77, .75));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4.6' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M12 1.8v3.1M12 19.1v3.1M1.8 12h3.1M19.1 12h3.1M4.8 4.8l2.2 2.2M17 17l2.2 2.2M19.2 4.8L17 7M7 17l-2.2 2.2' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4.6' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M12 1.8v3.1M12 19.1v3.1M1.8 12h3.1M19.1 12h3.1M4.8 4.8l2.2 2.2M17 17l2.2 2.2M19.2 4.8L17 7M7 17l-2.2 2.2' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E\");\n  animation: rlSpin 22s linear infinite;\n}\n\n.rlmain w[w=\"night\"]::before {\n  background-color: #a8c0e8;\n  filter: drop-shadow(0 0 6px rgba(168, 192, 232, .7));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.4 14.6A8.6 8.6 0 0 1 9.4 3.6a8.8 8.8 0 1 0 11 11Z' fill='none' stroke='black' stroke-width='1.6'/%3E%3Ccircle cx='16.8' cy='6.4' r='.9' fill='black'/%3E%3Ccircle cx='19.6' cy='9.6' r='.6' fill='black'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.4 14.6A8.6 8.6 0 0 1 9.4 3.6a8.8 8.8 0 1 0 11 11Z' fill='none' stroke='black' stroke-width='1.6'/%3E%3Ccircle cx='16.8' cy='6.4' r='.9' fill='black'/%3E%3Ccircle cx='19.6' cy='9.6' r='.6' fill='black'/%3E%3C/svg%3E\");\n  animation: rlBreath 4.2s ease-in-out infinite;\n}\n\n.rlmain w[w=\"rain\"]::before {\n  background-color: #5fb4e8;\n  filter: drop-shadow(0 0 5px rgba(95, 180, 232, .7));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.4 15.4a4.2 4.2 0 0 1 .5-8.4 5.6 5.6 0 0 1 10.7 1.3 3.6 3.6 0 0 1-.8 7.1Z' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M8.4 18.2l-1 2.6M12 18.2l-1 2.6M15.6 18.2l-1 2.6' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.4 15.4a4.2 4.2 0 0 1 .5-8.4 5.6 5.6 0 0 1 10.7 1.3 3.6 3.6 0 0 1-.8 7.1Z' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M8.4 18.2l-1 2.6M12 18.2l-1 2.6M15.6 18.2l-1 2.6' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E\");\n  animation: rlRainShift 1.5s steps(3) infinite;\n}\n\n.rlmain w[w=\"storm\"]::before {\n  background-color: var(--rl-gold);\n  filter: drop-shadow(0 0 8px rgba(255, 201, 77, .9));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.4 14.6a4.2 4.2 0 0 1 .5-8.4 5.6 5.6 0 0 1 10.7 1.3 3.6 3.6 0 0 1-.8 7.1' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M13.2 12.4l-3.6 5.2h2.8l-1.4 4.2 4.4-6h-3Z' fill='black'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.4 14.6a4.2 4.2 0 0 1 .5-8.4 5.6 5.6 0 0 1 10.7 1.3 3.6 3.6 0 0 1-.8 7.1' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M13.2 12.4l-3.6 5.2h2.8l-1.4 4.2 4.4-6h-3Z' fill='black'/%3E%3C/svg%3E\");\n  animation: rlFlash 3.1s steps(1) infinite;\n}\n\n.rlmain w[w=\"snow\"]::before {\n  background-color: #d8ecff;\n  filter: drop-shadow(0 0 6px rgba(216, 236, 255, .8));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4v19.2M3.7 7.2l16.6 9.6M20.3 7.2L3.7 16.8' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M12 6.2l-2 2 2 2 2-2ZM12 15.6l-2 2 2 2 2-2Z' fill='black'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4v19.2M3.7 7.2l16.6 9.6M20.3 7.2L3.7 16.8' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M12 6.2l-2 2 2 2 2-2ZM12 15.6l-2 2 2 2 2-2Z' fill='black'/%3E%3C/svg%3E\");\n  animation: rlSpin 9s linear infinite;\n}\n\n.rlmain w[w=\"fog\"]::before {\n  background-color: #90a4c4;\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 8.4h14M6.6 12h14.4M3 15.6h11.4M17.4 15.6H21M3 19.2h9' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 8.4h14M6.6 12h14.4M3 15.6h11.4M17.4 15.6H21M3 19.2h9' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E\");\n  animation: rlFogDrift 4.6s ease-in-out infinite;\n}\n\n.rlmain w[w=\"cloud\"]::before {\n  background-color: #8fa8c8;\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 18.6a4.4 4.4 0 0 1 .5-8.8 5.8 5.8 0 0 1 11.1 1.4 3.8 3.8 0 0 1-.8 7.4Z' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 18.6a4.4 4.4 0 0 1 .5-8.8 5.8 5.8 0 0 1 11.1 1.4 3.8 3.8 0 0 1-.8 7.4Z' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E\");\n  animation: rlFogDrift 6.8s ease-in-out infinite;\n}\n\n.rlmain w[w=\"wind\"]::before {\n  background-color: var(--rl-nature);\n  filter: drop-shadow(0 0 5px rgba(61, 220, 151, .6));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 9.6h11.4a2.7 2.7 0 1 0-2.7-2.7M3 14.4h15a2.7 2.7 0 1 1-2.7 2.7M3 12h6' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 9.6h11.4a2.7 2.7 0 1 0-2.7-2.7M3 14.4h15a2.7 2.7 0 1 1-2.7 2.7M3 12h6' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E\");\n  animation: rlWindPush 2.4s ease-in-out infinite;\n}\n\n.rlmain w[w=\"void\"]::before {\n  background-color: var(--rl-chaos);\n  filter: drop-shadow(0 0 8px rgba(255, 45, 85, .8));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='8.4' fill='none' stroke='black' stroke-width='1.5'/%3E%3Ccircle cx='12' cy='12' r='3.4' fill='black'/%3E%3Cpath d='M12 3.6v2.4M12 18v2.4M3.6 12h2.4M18 12h2.4' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='8.4' fill='none' stroke='black' stroke-width='1.5'/%3E%3Ccircle cx='12' cy='12' r='3.4' fill='black'/%3E%3Cpath d='M12 3.6v2.4M12 18v2.4M3.6 12h2.4M18 12h2.4' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E\");\n  animation: rlVoidPulse 2.6s ease-in-out infinite;\n}\n\n/* ---------- 21-11 <dg> = .rldg ---------- */\n.rlmain dg {\n  display: inline-flex;\n  align-items: center;\n  gap: 2px;\n  padding: 2px 7px;\n  font-size: 10px;\n  font-weight: 700;\n  letter-spacing: 1px;\n  border: 1px solid;\n  border-radius: 2px;\n}\n\n.rlmain dg::before {\n  content: '';\n  width: 12px;\n  height: 12px;\n  margin-right: 3px;\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4 22 20.4H2Z' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M12 8.4v5.4M12 16.4v1.4' stroke='black' stroke-width='2.1' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4 22 20.4H2Z' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M12 8.4v5.4M12 16.4v1.4' stroke='black' stroke-width='2.1' stroke-linecap='round'/%3E%3C/svg%3E\");\n  -webkit-mask-size: 12px 12px;\n  mask-size: 12px 12px;\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  background-color: currentColor;\n}\n\n.rlmain dg[dg=\"1\"] { color: var(--rl-nature); border-color: rgba(61, 220, 151, .45); background: rgba(61, 220, 151, .09); }\n.rlmain dg[dg=\"1\"]::after { content: '★'; }\n.rlmain dg[dg=\"2\"] { color: #9ddc3d; border-color: rgba(157, 220, 61, .45); background: rgba(157, 220, 61, .09); }\n.rlmain dg[dg=\"2\"]::after { content: '★★'; }\n.rlmain dg[dg=\"3\"] { color: var(--rl-gold); border-color: rgba(255, 201, 77, .5); background: rgba(255, 201, 77, .1); box-shadow: 0 0 4px rgba(255, 201, 77, .35); }\n.rlmain dg[dg=\"3\"]::after { content: '★★★'; }\n.rlmain dg[dg=\"4\"] { color: #ff8a3d; border-color: rgba(255, 138, 61, .55); background: rgba(255, 138, 61, .12); box-shadow: 0 0 10px rgba(255, 138, 61, .45), 0 0 20px rgba(255, 138, 61, .18); }\n.rlmain dg[dg=\"4\"]::after { content: '★★★★'; }\n.rlmain dg[dg=\"5\"] { color: var(--rl-chaos); border-color: rgba(255, 45, 85, .6); background: rgba(255, 45, 85, .14); box-shadow: 0 0 8px rgba(255, 45, 85, .6), 0 0 24px rgba(255, 45, 85, .3), 0 0 48px rgba(255, 45, 85, .12); animation: rlBreath 1.3s ease-in-out infinite; }\n.rlmain dg[dg=\"5\"]::after { content: '★★★★★'; }\n.rlmain dg[dg=\"6\"] { color: var(--rl-gold-d); border-color: rgba(201, 162, 39, .65); background: rgba(201, 162, 39, .16); box-shadow: 0 0 10px rgba(201, 162, 39, .7), 0 0 28px rgba(201, 162, 39, .4), 0 0 56px rgba(201, 162, 39, .18); animation: rlBreath 0.8s ease-in-out infinite; }\n.rlmain dg[dg=\"6\"]::after { content: '★★★★★★'; }\n\n/* ---------- 21-12 <tg> = .rltag ---------- */\n.rlmain tg {\n  display: inline-block;\n  padding: 2px 8px;\n  margin: 2px 3px 2px 0;\n  font-size: 10.5px;\n  font-weight: 600;\n  letter-spacing: .6px;\n  color: var(--rl-txt2);\n  background: rgba(28, 36, 64, .8);\n  border: 1px solid var(--rl-line2);\n  border-radius: 2px;\n  transition: color .18s ease-out, border-color .18s ease-out, box-shadow .18s ease-out, transform .18s var(--rl-ez-pop);\n}\n\n.rlmain tg:hover {\n  color: var(--rl-order);\n  border-color: var(--rl-order-d);\n  box-shadow: 0 0 10px rgba(77, 208, 255, .45), 0 0 20px rgba(77, 208, 255, .18);\n  transform: translateY(-1px);\n}\n\n.rlmain tg[fc=\"order\"] { color: var(--rl-order); border-color: rgba(77, 208, 255, .5); background: rgba(77, 208, 255, .1); }\n.rlmain tg[fc=\"chaos\"] { color: var(--rl-chaos); border-color: rgba(255, 45, 85, .5); background: rgba(255, 45, 85, .1); }\n.rlmain tg[fc=\"nature\"] { color: var(--rl-nature); border-color: rgba(61, 220, 151, .5); background: rgba(61, 220, 151, .1); }\n.rlmain tg[fc=\"none\"] { color: var(--rl-txt2); border-color: var(--rl-line2); background: rgba(28, 36, 64, .6); }\n\n/* ---------- 21-13 <av> = .rlava ---------- */\n.rlmain av {\n    display: block;  \n  position: relative;\n  flex: 0 0 auto;\n  width: 46px;\n  height: 46px;\n  background:\n    radial-gradient(circle at 50% 38%, rgba(77, 208, 255, .3), transparent 62%),\n    linear-gradient(145deg, rgba(34, 48, 82, .95), rgba(8, 10, 16, .98));\n  border: 1px solid var(--rl-line2);\n  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);\n  transition: filter .25s ease-out;\n}\n\n.rlmain av::before {\n  content: '';\n  position: absolute;\n  inset: 0;\n  background-color: var(--rl-order);\n  opacity: .75;\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='9' r='3.4' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M5.6 20c0-3.6 2.9-6.2 6.4-6.2s6.4 2.6 6.4 6.2' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='9' r='3.4' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M5.6 20c0-3.6 2.9-6.2 6.4-6.2s6.4 2.6 6.4 6.2' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E\");\n  -webkit-mask-size: 30px 30px;\n  mask-size: 30px 30px;\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  -webkit-mask-position: center;\n  mask-position: center;\n}\n\n.rlmain cd:hover av {\n  filter: drop-shadow(0 0 8px rgba(77, 208, 255, .6));\n}\n\n/* ---------- 21-14 <lk> = .rllock ---------- */\n.rlmain lk {\n  display: inline-block;\n  width: 13px;\n  height: 13px;\n  vertical-align: -2px;\n  background-color: var(--rl-gold);\n  filter: drop-shadow(0 0 5px rgba(255, 201, 77, .8));\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='5' y='10.4' width='14' height='10.4' rx='1.4' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M8.4 10.4V7.8a3.6 3.6 0 0 1 7.2 0v2.6' fill='none' stroke='black' stroke-width='1.7'/%3E%3Ccircle cx='12' cy='15.4' r='1.3' fill='black'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='5' y='10.4' width='14' height='10.4' rx='1.4' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M8.4 10.4V7.8a3.6 3.6 0 0 1 7.2 0v2.6' fill='none' stroke='black' stroke-width='1.7'/%3E%3Ccircle cx='12' cy='15.4' r='1.3' fill='black'/%3E%3C/svg%3E\");\n  -webkit-mask-size: 13px 13px;\n  mask-size: 13px 13px;\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  animation: rlBreath 2.8s ease-in-out infinite;\n}\n\n/* ---------- 21-15 <dm> = .rldm ---------- */\n.rlmain dm {\n  display: flex;\n  align-items: baseline;\n  gap: 7px;\n  padding: 4px 0;\n  font-size: 11.5px;\n  line-height: 1.5;\n  border-bottom: 1px dashed rgba(34, 48, 82, .4);\n}\n\n.rlmain dm:last-child {\n  border-bottom: 0;\n}\n\n.rlmain dm > tg {\n  flex: 0 0 auto;\n  min-width: 48px;\n  padding: 1px 6px;\n  font-size: 10px;\n  text-align: center;\n}\n\n.rlmain dm > span {\n  flex: 1 1 auto;\n  min-width: 0;\n  color: var(--rl-txt);\n  word-break: break-word;\n  white-space: normal;\n}\n\n/* ---------- 21-16 <ac> = .rlaci ---------- */\n.rlmain ac {\n  position: relative;\n  display: flex;\n  align-items: flex-start;\n  gap: 9px;\n  box-sizing: border-box;\n  padding: 6px 10px 6px 8px;\n  margin: 0 0 4px;\n  overflow: hidden;\n  background: linear-gradient(90deg, rgba(28, 36, 64, .68), rgba(20, 26, 44, .34));\n  border: 1px solid var(--rl-line);\n  border-left: 2px solid var(--rl-line2);\n  border-radius: 0 2px 2px 0;\n  cursor: pointer;\n  transition:\n    background .2s ease-out,\n    border-color .2s ease-out,\n    border-left-color .2s ease-out,\n    transform .22s var(--rl-ez-panel),\n    box-shadow .22s ease-out;\n}\n\n.rlmain ac:last-child {\n  margin-bottom: 0;\n}\n\n.rlmain ac::before {\n  content: '';\n  position: absolute;\n  top: -50%;\n  left: -110%;\n  width: 45%;\n  height: 200%;\n  background: linear-gradient(90deg, transparent, rgba(180, 220, 255, .12), transparent);\n  transform: rotate(20deg);\n  transition: left .55s var(--rl-ez-panel);\n  pointer-events: none;\n}\n\n.rlmain ac:hover::before {\n  left: 170%;\n}\n\n.rlmain ac:hover {\n  background: linear-gradient(90deg, rgba(77, 208, 255, .14), rgba(20, 26, 44, .4));\n  border-color: var(--rl-order-d);\n  border-left-color: var(--rl-order);\n  transform: translateX(4px);\n  box-shadow: 0 0 10px rgba(77, 208, 255, .28);\n}\n\n.rlmain ac:active {\n  transform: translateX(2px) scale(.995);\n}\n\n.rlmain ac > s {\n  flex: 0 0 auto;\n  box-sizing: border-box;\n  min-width: 22px;\n  padding: 1px 0;\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 10px;\n  font-weight: 700;\n  color: var(--rl-txt2);\n  text-align: center;\n  text-decoration: none;\n  letter-spacing: .5px;\n  background: rgba(5, 7, 12, .8);\n  border: 1px solid var(--rl-line2);\n  border-radius: 1px;\n  transition: color .2s ease-out, border-color .2s ease-out, background .2s ease-out;\n}\n\n.rlmain ac:hover > s {\n  color: var(--rl-order);\n  background: rgba(77, 208, 255, .14);\n  border-color: var(--rl-order-d);\n}\n\n.rlmain ac > span {\n  flex: 1 1 auto;\n  min-width: 0;\n  font-size: 12px;\n  line-height: 1.6;\n  color: var(--rl-txt);\n}\n\n/* 高风险 */\n.rlmain ac[hi=\"1\"] {\n  background: linear-gradient(90deg, rgba(255, 45, 85, .13), rgba(20, 26, 44, .34));\n  border-color: rgba(255, 45, 85, .34);\n  border-left-color: var(--rl-chaos);\n}\n\n.rlmain ac[hi=\"1\"] > s {\n  color: var(--rl-chaos);\n  background: rgba(255, 45, 85, .14);\n  border-color: rgba(255, 45, 85, .42);\n}\n\n.rlmain ac[hi=\"1\"] > span::after {\n  content: 'RISK';\n  display: inline-block;\n  padding: 0 5px;\n  margin-left: 6px;\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 8.5px;\n  font-weight: 700;\n  color: var(--rl-chaos);\n  letter-spacing: 1.2px;\n  vertical-align: 1px;\n  background: rgba(255, 45, 85, .16);\n  border: 1px solid rgba(255, 45, 85, .45);\n  border-radius: 1px;\n  animation: rlBreath 1.6s ease-in-out infinite;\n}\n\n.rlmain ac[hi=\"1\"]:hover {\n  background: linear-gradient(90deg, rgba(255, 45, 85, .24), rgba(20, 26, 44, .4));\n  border-color: var(--rl-chaos);\n  box-shadow: 0 0 8px rgba(255, 45, 85, .6), 0 0 24px rgba(255, 45, 85, .3), 0 0 48px rgba(255, 45, 85, .12);\n}\n\n.rlmain ac[hi=\"1\"]:hover > s {\n  color: #fff;\n  background: rgba(255, 45, 85, .34);\n  border-color: var(--rl-chaos);\n}\n\n/* ---------- 21-17 <ms> = .rlmsg ---------- */\n.rlmain ms {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  gap: 4px;\n  box-sizing: border-box;\n  padding: 7px 10px 7px 12px;\n  margin: 0 0 3px;\n  background: linear-gradient(90deg, rgba(28, 36, 64, .5), rgba(28, 36, 64, 0));\n  border-left: 2px solid var(--rl-line2);\n  transition: background .18s ease-out, border-color .18s ease-out, padding-left .18s ease-out;\n}\n.rlmain ms:last-child {\n  margin-bottom: 0;\n}\n\n.rlmain ms:hover {\n  background: linear-gradient(90deg, rgba(77, 208, 255, .1), rgba(28, 36, 64, 0));\n  border-left-color: var(--rl-order);\n  padding-left: 16px;\n}\n\n.rlmain ms > tg {\n  align-self: flex-start;\n  margin: 0;\n}\n\n.rlmain ms > nav {\n  display: flex;\n  flex-direction: column;\n  gap: 2px;\n}\n\n.rlmain ms > nav > s {\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 9.5px;\n  font-weight: 600;\n  color: var(--rl-txt3);\n  text-decoration: none;\n  letter-spacing: .8px;\n}\n\n.rlmain ms > nav > span {\n  font-size: 11.5px;\n  line-height: 1.6;\n  color: var(--rl-txt);\n  word-break: break-word;\n  white-space: normal;\n}\n\n/* 消息类型色条 */\n.rlmain ms[mt=\"intel\"] { border-left-color: var(--rl-order); }\n.rlmain ms[mt=\"intel\"]::after {\n  content: 'INTEL';\n  position: absolute;\n  top: 7px;\n  right: 8px;\n  padding: 1px 5px;\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 8px;\n  font-weight: 700;\n  color: var(--rl-order);\n  letter-spacing: 1.2px;\n  background: rgba(77, 208, 255, .1);\n  border: 1px solid rgba(77, 208, 255, .3);\n  border-radius: 1px;\n}\n.rlmain ms[mt=\"intel\"]:hover { border-left-color: var(--rl-order); }\n\n.rlmain ms[mt=\"trade\"] { border-left-color: var(--rl-gold); }\n.rlmain ms[mt=\"trade\"]::after {\n  content: 'TRADE';\n  position: absolute;\n  top: 7px;\n  right: 8px;\n  padding: 1px 5px;\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 8px;\n  font-weight: 700;\n  color: var(--rl-gold);\n  letter-spacing: 1.2px;\n  background: rgba(255, 201, 77, .1);\n  border: 1px solid rgba(255, 201, 77, .3);\n  border-radius: 1px;\n}\n.rlmain ms[mt=\"trade\"]:hover { border-left-color: var(--rl-gold); }\n\n.rlmain ms[mt=\"recruit\"] { border-left-color: var(--rl-nature); }\n.rlmain ms[mt=\"recruit\"]::after {\n  content: 'RECRUIT';\n  position: absolute;\n  top: 7px;\n  right: 8px;\n  padding: 1px 5px;\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 8px;\n  font-weight: 700;\n  color: var(--rl-nature);\n  letter-spacing: 1.2px;\n  background: rgba(61, 220, 151, .1);\n  border: 1px solid rgba(61, 220, 151, .3);\n  border-radius: 1px;\n}\n.rlmain ms[mt=\"recruit\"]:hover { border-left-color: var(--rl-nature); }\n\n.rlmain ms[mt=\"warn\"] { border-left-color: var(--rl-chaos); }\n.rlmain ms[mt=\"warn\"]::after {\n  content: 'WARN';\n  position: absolute;\n  top: 7px;\n  right: 8px;\n  padding: 1px 5px;\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 8px;\n  font-weight: 700;\n  color: var(--rl-chaos);\n  letter-spacing: 1.2px;\n  background: rgba(255, 45, 85, .1);\n  border: 1px solid rgba(255, 45, 85, .3);\n  border-radius: 1px;\n}\n.rlmain ms[mt=\"warn\"]:hover { border-left-color: var(--rl-chaos); }\n\n.rlmain ms[mt=\"sys\"] { border-left-color: #b968ff; }\n.rlmain ms[mt=\"sys\"]::after {\n  content: 'SYSTEM';\n  position: absolute;\n  top: 7px;\n  right: 8px;\n  padding: 1px 5px;\n  font-family: \"Consolas\", \"SF Mono\", monospace;\n  font-size: 8px;\n  font-weight: 700;\n  color: #b968ff;\n  letter-spacing: 1.2px;\n  background: rgba(185, 104, 255, .1);\n  border: 1px solid rgba(185, 104, 255, .3);\n  border-radius: 1px;\n}\n.rlmain ms[mt=\"sys\"]:hover { border-left-color: #b968ff; }\n\n/* 紧急度 */\n.rlmain ms[ur=\"2\"] { border-left-width: 3px; }\n.rlmain ms[ur=\"3\"] { border-left-width: 4px; }\n\n/* ---------- 21-18 tooltip位置修复（短标签版） ---------- */\n\n/* g2第二列右对齐 */\n.rlmain g2 > *:nth-child(2n) [c] > i {\n  left: auto;\n  right: 0;\n}\n\n.rlmain g2 > *:nth-child(2n) [c] > i::before {\n  left: auto;\n  right: 14px;\n}\n\n.rlmain g2 > *:nth-child(2n) [c] > i::after {\n  left: auto;\n  right: 15px;\n}\n\n/* g3第三列右对齐 */\n.rlmain g3 > *:nth-child(3n) [c] > i {\n  left: auto;\n  right: 0;\n}\n\n.rlmain g3 > *:nth-child(3n) [c] > i::before {\n  left: auto;\n  right: 14px;\n}\n\n.rlmain g3 > *:nth-child(3n) [c] > i::after {\n  left: auto;\n  right: 15px;\n}\n\n/* g3第二列居中 */\n.rlmain g3 > *:nth-child(3n-1) [c] > i {\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n.rlmain g3 > *:nth-child(3n-1) [c] > i::before,\n.rlmain g3 > *:nth-child(3n-1) [c] > i::after {\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n/* ---------- 21-19 tooltip底部翻转（短标签版） ---------- */\n.rlmain .rlpn > cd:nth-last-child(-n+3) [c] > i {\n  top: auto;\n  bottom: 100%;\n  margin-top: 0;\n  margin-bottom: 6px;\n  transform: translateY(4px) scale(.96);\n}\n\n.rlmain .rlpn > cd:nth-last-child(-n+3) [c]:hover > i {\n  transform: translateY(0) scale(1);\n}\n\n.rlmain .rlpn > cd:nth-last-child(-n+3) [c] > i::before {\n  bottom: auto;\n  top: 100%;\n  border-bottom-color: transparent;\n  border-top-color: var(--rl-order-d);\n}\n\n.rlmain .rlpn > cd:nth-last-child(-n+3) [c] > i::after {\n  bottom: auto;\n  top: 100%;\n  border-bottom-color: transparent;\n  border-top-color: rgba(12, 16, 28, .98);\n}\n\n/* ---------- 21-20 容错：短标签嵌套压平 ---------- */\n.rlmain cd cd {\n  margin: 9px 0 0;\n  padding: 9px 11px;\n  background: rgba(20, 26, 44, .5);\n  border-color: var(--rl-line);\n  clip-path: none;\n  filter: none;\n}\n\n.rlmain cd cd::before,\n.rlmain cd cd::after {\n  display: none;\n}\n\n.rlmain cd cd:hover {\n  transform: none;\n  filter: none;\n  border-color: var(--rl-order-d);\n}\n\n/* 裸露组件补壳 */\n.rlmain .rlpn > t,\n.rlmain .rlpn > g2,\n.rlmain .rlpn > g3 {\n  box-sizing: border-box;\n  padding: 9px 11px;\n  margin: 0 0 9px;\n  background: linear-gradient(150deg, rgba(28, 36, 64, .85), rgba(14, 18, 32, .92));\n  border: 1px solid var(--rl-line2);\n  clip-path: polygon(var(--rl-cut) 0, 100% 0, 100% calc(100% - var(--rl-cut)), calc(100% - var(--rl-cut)) 100%, 0 100%, 0 var(--rl-cut));\n}\n\n.rlmain .rlpn > t {\n  border-left: 2px solid var(--rl-order-d);\n}\n\n/* 嵌套网格降单列 */\n.rlmain g2 :is(g2, g3),\n.rlmain g3 :is(g2, g3) {\n  grid-template-columns: minmax(0, 1fr);\n  margin-bottom: 0;\n}\n\n/* ---------- 21-21 hover层级链（短标签版） ---------- */\n.rlmain [c]:hover {\n  z-index: 100000;\n}\n\n.rlmain [c]:hover > i {\n  z-index: 100001;\n}\n\n.rlmain .rlstbd:has([c]:hover) {\n  z-index: 200;\n}\n\n.rlmain .rlpn:has([c]:hover) {\n  z-index: 201;\n}\n\n.rlmain cd:has([c]:hover) {\n  z-index: 202;\n  filter: none;\n}\n\n/* ---------- 21-22 data-sec缩写tooltip映射（覆盖17节） ---------- */\n.rlmain .rlsec[data-sec=\"p\"] > .rlseclbl::after { content: '基础档案'; }\n.rlmain .rlsec[data-sec=\"a\"] > .rlseclbl::after { content: '属性面板'; }\n.rlmain .rlsec[data-sec=\"c\"] > .rlseclbl::after { content: '战斗配置'; }\n.rlmain .rlsec[data-sec=\"b\"] > .rlseclbl::after { content: '据点'; }\n.rlmain .rlsec[data-sec=\"t\"] > .rlseclbl::after { content: '冒险团'; }\n.rlmain .rlsec[data-sec=\"m\"] > .rlseclbl::after { content: '世界与任务'; }\n.rlmain .rlsec[data-sec=\"r\"] > .rlseclbl::after { content: '大区'; }\n.rlmain .rlsec[data-sec=\"d\"] > .rlseclbl::after { content: '小区'; }\n\n/* ---------- 21-23 data-sec缩写图标映射（覆盖17节） ---------- */\n.rlmain .rlsec[data-sec=\"p\"] > .rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4' y='3' width='16' height='18' rx='1.6' fill='none' stroke='black' stroke-width='1.5'/%3E%3Ccircle cx='12' cy='10' r='3' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M7.4 18.6c0-2.6 2.1-4.4 4.6-4.4s4.6 1.8 4.6 4.4' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4' y='3' width='16' height='18' rx='1.6' fill='none' stroke='black' stroke-width='1.5'/%3E%3Ccircle cx='12' cy='10' r='3' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M7.4 18.6c0-2.6 2.1-4.4 4.6-4.4s4.6 1.8 4.6 4.4' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n.rlmain .rlsec[data-sec=\"a\"] > .rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4 14.8 8.6 21.6 9.6 16.8 14.2 18 21 12 17.8 6 21 7.2 14.2 2.4 9.6 9.2 8.6Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4 14.8 8.6 21.6 9.6 16.8 14.2 18 21 12 17.8 6 21 7.2 14.2 2.4 9.6 9.2 8.6Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E\");\n}\n\n.rlmain .rlsec[data-sec=\"c\"] > .rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.4 3.6V7l3.4 3.4h3.4M6.2 17.8l11.6-11.6M9.6 3.6V7L6.2 10.4H2.8M17.8 17.8L6.2 6.2' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M7.2 14.8l2 2M14.8 7.2l2 2' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.4 3.6V7l3.4 3.4h3.4M6.2 17.8l11.6-11.6M9.6 3.6V7L6.2 10.4H2.8M17.8 17.8L6.2 6.2' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M7.2 14.8l2 2M14.8 7.2l2 2' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n.rlmain .rlsec[data-sec=\"b\"] > .rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.4 21V9.6L12 4.2l6.6 5.4V21Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M9.6 21v-5.4h4.8V21' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M9 11.4h1.8M13.2 11.4H15' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.4 21V9.6L12 4.2l6.6 5.4V21Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M9.6 21v-5.4h4.8V21' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M9 11.4h1.8M13.2 11.4H15' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n.rlmain .rlsec[data-sec=\"t\"] > .rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 3v18' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3Cpath d='M6 4.2h12.6l-3.6 4.2 3.6 4.2H6' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 3v18' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3Cpath d='M6 4.2h12.6l-3.6 4.2 3.6 4.2H6' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E\");\n}\n\n.rlmain .rlsec[data-sec=\"m\"] > .rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.2 3.6c-1.4 0-2.6.8-2.6 1.8v13.2c0 1 1.2 1.8 2.6 1.8h9.6c1.4 0 2.6-.8 2.6-1.8V5.4c0-1-1.2-1.8-2.6-1.8Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M9 8.4h6M9 12h4.8M9 15.6h3' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.2 3.6c-1.4 0-2.6.8-2.6 1.8v13.2c0 1 1.2 1.8 2.6 1.8h9.6c1.4 0 2.6-.8 2.6-1.8V5.4c0-1-1.2-1.8-2.6-1.8Z' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3Cpath d='M9 8.4h6M9 12h4.8M9 15.6h3' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n.rlmain .rlsec[data-sec=\"r\"] > .rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M12 3v3.6M12 17.4V21M3 12h3.6M17.4 12H21' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3Cpath d='M14.8 9.2l-6.6 2 2 6.6 6.6-2Z' fill='none' stroke='black' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M12 3v3.6M12 17.4V21M3 12h3.6M17.4 12H21' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3Cpath d='M14.8 9.2l-6.6 2 2 6.6 6.6-2Z' fill='none' stroke='black' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E\");\n}\n\n.rlmain .rlsec[data-sec=\"d\"] > .rlseclbl::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.6 20V10.8h5.4V20M9 20V6h6v14M15 20V10.8h5.4V20' fill='none' stroke='black' stroke-width='1.4' stroke-linejoin='round'/%3E%3Cpath d='M11.2 9h1.6M11.2 12.6h1.6M11.2 16.2h1.6M5.2 13.8h1.8M16.8 13.8h1.8' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.6 20V10.8h5.4V20M9 20V6h6v14M15 20V10.8h5.4V20' fill='none' stroke='black' stroke-width='1.4' stroke-linejoin='round'/%3E%3Cpath d='M11.2 9h1.6M11.2 12.6h1.6M11.2 16.2h1.6M5.2 13.8h1.8M16.8 13.8h1.8' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n/* ---------- 21-24 窄屏适配（短标签版） ---------- */\n@container rlbox (max-width: 460px) {\n  .rlmain ac > span {\n    font-size: 11.5px;\n    line-height: 1.55;\n  }\n}\n\n@container rlbox (max-width: 350px) {\n  .rlmain g2,\n  .rlmain g3 {\n    grid-template-columns: minmax(0, 1fr);\n  }\n}\n\n@container rlbox (max-width: 420px) {\n  .rlmain [c] > i {\n    width: calc(100cqw - 72px);\n    max-width: none;\n    font-size: 10px;\n    line-height: 1.5;\n  }\n  .rlmain [c] > i::before,\n  .rlmain [c] > i::after {\n    display: none;\n  }\n}\n\n@container rlbox (min-width: 620px) {\n  .rlmain .rlactbd ac {\n    margin-bottom: 0;\n  }\n}\n\n/* ---------- 21-25 rlp0内cd与rlsecbd兼容（短标签在details内） ---------- */\n.rlmain .rlsecbd > cd {\n  margin: 0 0 9px;\n}\n\n.rlmain .rlsecbd:has([c]:hover) {\n  overflow: visible;\n  z-index: 9000;\n}\n\n.rlmain .rlsec:has([c]:hover) {\n  z-index: 9001;\n  overflow: visible;\n}\n\n/* ---------- 21-26 面板动画继承 ---------- */\n.rlmain .rlpn > cd {\n  animation: rlItemIn .5s var(--rl-ez-panel) both;\n}\n\n.rlmain .rlpn > cd:nth-child(1) { animation-delay: .06s; }\n.rlmain .rlpn > cd:nth-child(2) { animation-delay: .1s; }\n.rlmain .rlpn > cd:nth-child(3) { animation-delay: .14s; }\n.rlmain .rlpn > cd:nth-child(4) { animation-delay: .18s; }\n.rlmain .rlpn > cd:nth-child(5) { animation-delay: .22s; }\n.rlmain .rlpn > cd:nth-child(6) { animation-delay: .26s; }\n\n/* ---------- 21-27 杂标签兜底隐藏 ---------- */\n.rlmain wldata,\n.rlmain anchor {\n  display: none !important;\n}\n\n/* ============================================================\n   END OF TOKEN SAVER ALIASES\n   ============================================================ */\n\n\n/* ============================================================\n   22. 修复补丁 · 必须置于内置CSS最末尾\n   ============================================================ */\n\n/* ---------- 22-1 修正 @container 语法（原三块因缺空格整体失效） ---------- */\n@container rlbox (max-width: 460px) {\n  .rlmain .rlmsgbox { max-height: 180px; }\n  .rlmain ms { padding: 6px 8px 6px 10px; }\n  .rlmain ms > nav > span { font-size: 11px; }\n  .rlmain .rlmsghd { height: 34px; padding: 0 10px; }\n  .rlmain .rlmsghd > b { font-size: 9.5px; letter-spacing: 1.2px; }\n}\n\n@container rlbox (max-width: 350px) {\n  .rlmain .rlsec > .rlseclbl { width: 30px; height: 28px; }\n  .rlmain .rlsec > .rlseclbl::before {\n    width: 13px; height: 13px;\n    -webkit-mask-size: 13px 13px; mask-size: 13px 13px;\n  }\n  .rlmain .rlsecbar { padding-top: 36px; min-height: 36px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(1) > .rlseclbl { left: 0; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(2) > .rlseclbl { left: 35px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(3) > .rlseclbl { left: 70px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(4) > .rlseclbl { left: 105px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(5) > .rlseclbl { left: 140px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(6) > .rlseclbl { left: 175px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(7) > .rlseclbl { left: 210px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(8) > .rlseclbl { left: 245px; }\n  .rlmain .rlsec > .rlseclbl::after,\n  .rlmain .rlsec-npc > .rlseclbl > span { display: none; }\n  .rlmain .rlcg-img { aspect-ratio: 2/3; }\n  .rlmain .rlcg-sw > summary { width: 30px; height: 30px; }\n  .rlmain .rlcg-sw > summary::before {\n    width: 14px; height: 14px;\n    -webkit-mask-size: 14px 14px; mask-size: 14px 14px;\n  }\n}\n\n/* ---------- 22-2 修复 CG 切换按钮 webkit 路径截断 ---------- */\n.rlmain .rlcg-sw > summary::before {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 1l4 4-4 4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M3 11V9a4 4 0 0 1 4-4h14' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M7 23l-4-4 4-4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M21 13v2a4 4 0 0 1-4 4H3' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E\");\n}\n\n/* ---------- 22-3 rlp0/rlp1/rlp3 内 tooltip 上翻 ----------\n   cd 在 .rlsecbd 内，21-19 的 .rlpn>cd 选择器打不中，\n   改为按 cd 内部末尾位置判定 */\n.rlmain .rlsecbd > cd > *:nth-last-child(-n+2) [c] > i {\n  top: auto;\n  bottom: 100%;\n  margin-top: 0;\n  margin-bottom: 6px;\n  transform: translateY(4px) scale(.96);\n}\n\n.rlmain .rlsecbd > cd > *:nth-last-child(-n+2) [c]:hover > i {\n  transform: translateY(0) scale(1);\n}\n\n.rlmain .rlsecbd > cd > *:nth-last-child(-n+2) [c] > i::before {\n  bottom: auto;\n  top: 100%;\n  border-bottom-color: transparent;\n  border-top-color: var(--rl-order-d);\n}\n\n.rlmain .rlsecbd > cd > *:nth-last-child(-n+2) [c] > i::after {\n  bottom: auto;\n  top: 100%;\n  border-bottom-color: transparent;\n  border-top-color: rgba(12, 16, 28, .98);\n}\n\n/* ---------- 22-4 底部渐变遮罩补短标签选择器 ---------- */\n.rlmain .rlstbd:has([c]:hover)::after {\n  opacity: 0;\n  transition: opacity .18s ease-out;\n}\n\n/* ---------- 22-5 消息区 tooltip 防裁剪补短标签 ---------- */\n.rlmain ms:has([c]:hover) { z-index: 9000; }\n.rlmain .rlmsgbox:has([c]:hover) { overflow: visible; }\n.rlmain .rlmsgcard:has([c]:hover) {\n  z-index: 202;\n  clip-path: none;\n  filter: none;\n  overflow: visible;\n}\n\n/* ---------- 22-6 结构报警补短标签检测 ---------- */\n.rlmain:has(cd cd) .rlsthd > i,\n.rlmain:has(.rlpn > t) .rlsthd > i,\n.rlmain:has(.rlpn > g2) .rlsthd > i,\n.rlmain:has(.rlpn > g3) .rlsthd > i {\n  width: 5px;\n  background: var(--rl-chaos);\n  filter: drop-shadow(0 0 7px rgba(255, 45, 85, .95));\n  animation: rlBreath 1s ease-in-out infinite;\n}\n\n/* ============================================================23. 移动端紧凑化补丁 · MOBILE COMPACT PATCH\n   追加至内置CSS最末尾\n   ============================================================ */\n\n/* ========== 23-1 中等手机 ≤520px ========== */\n@media (max-width: 520px) {\n\n  /* --- 容器整体 --- */\n  .rlmain {\n    height: calc(100dvh - 80px);\n    min-height: 340px;\n    max-height: none;\n    font-size: 12px;\n    line-height: 1.6;\n    border-radius: 2px;\n    margin: 1px 0;\n    overflow: visible;\n  }\n\n  /* --- 顶栏 58→38 --- */\n  .rlmain .rltop {\n    height: 38px;\n    padding-right: 8px;\n  }\n\n  .rlmain .rlsigil {\n    width: 38px;\n    height: 38px;\n  }\n\n  .rlmain .rlsigil::before {\n    -webkit-mask-size: 20px 20px;\n    mask-size: 20px 20px;\n  }\n\n  .rlmain .rlsigil::after {\n    width: 28px;\n    height: 28px;\n    margin: -14px 0 0 -14px;\n  }\n\n  .rlmain .rlslot {\n    height: 38px;\n    padding: 0 8px;\n    gap: 4px;\n  }\n\n  .rlmain .rlslot > i {\n    width: 14px;\n    height: 14px;\n    -webkit-mask-size: 14px 14px;\n    mask-size: 14px 14px;\n  }\n\n  .rlmain .rlslot > u > s {\n    display: none;\n  }\n\n  .rlmain .rlslot > u > b {\n    font-size: 11px;}\n\n  .rlmain .rlslot.rltime > u > b {\n    font-size: 11.5px;\n  }\n\n  /*天气图标缩小*/\n  .rlmain .rlwx::before,\n  .rlmain w::before {\n    width: 14px;\n    height: 14px;\n    -webkit-mask-size: 14px 14px;\n    mask-size: 14px 14px;\n  }\n\n  .rlmain .rlwx,\n  .rlmain w {\n    font-size: 11px;gap: 3px;\n  }\n\n  /*危险度标签缩小 */\n  .rlmain .rldg,\n  .rlmain dg {\n    padding: 1px 5px;\n    font-size: 8.5px;\n  }\n\n  .rlmain .rldg::before,\n  .rlmain dg::before {\n    width: 10px;\n    height: 10px;\n    -webkit-mask-size: 10px 10px;\n    mask-size: 10px 10px;margin-right: 2px;\n  }\n\n  /*设置按钮缩小 */\n  .rlmain .rlsetbtn {\n    width: 28px;\n    height: 28px;\n    margin-left: 5px;\n  }\n\n  .rlmain .rlsetbtn::before {\n    width: 14px;\n    height: 14px;\n    -webkit-mask-size: 14px 14px;\n    mask-size: 14px 14px;\n  }\n\n  /* --- 导航栏 74→48 --- */\n  .rlmain .rlnavbar {\n    height: 48px;}\n\n  .rlmain .rlbtn {\n    padding: 4px 1px 5px;\n    gap: 2px;\n  }\n\n  .rlmain .rlbtn i {\n    width: 20px;\n    height: 20px;\n    -webkit-mask-size: 20px 20px;\n    mask-size: 20px 20px;\n  }\n\n  .rlmain .rlbtn span {\n    font-size: 8.5px;\n    letter-spacing: 0;\n  }\n\n  /* --- 正文区 --- */\n  .rlmain .rlbody {\n    padding: 10px 10px 14px 20px;\n  }\n\n  .rlmain .rlbody p {\n    font-size: 12.5px;\n    line-height: 1.8;\n    margin-bottom: 10px;\n  }\n\n  /*左侧装饰竖线缩窄 */\n  .rlmain .rlbody {\n    background-position: 8px 0, 8px 0;\n    background-size: 2px 100%, 2px 100%;\n  }\n\n  /* --- 行动建议区 --- */\n  .rlmain .rlacthd {\n    height: 26px;\n    padding: 0 8px;\n    gap: 5px;\n  }\n\n  .rlmain .rlacthd > i {\n    width: 12px;\n    height: 12px;\n    -webkit-mask-size: 12px 12px;\n    mask-size: 12px 12px;\n  }\n\n  .rlmain .rlacthd > b {\n    font-size: 9px;\n    letter-spacing: 1.2px;\n  }\n\n  .rlmain .rlactar {\n    width: 12px;\n    height: 12px;\n    -webkit-mask-size: 12px 12px;\n    mask-size: 12px 12px;\n  }\n\n  .rlmain .rlactbd {\n    max-height: 220px !important;\n    padding: 0 8px 6px;\n  }\n\n  .rlmain .rlaci,\n  .rlmain ac {\n    padding: 4px 7px 4px 6px;\n    gap: 6px;\n    margin-bottom: 3px;\n  }\n\n  .rlmain .rlaci > s,\n  .rlmain ac > s {\n    min-width: 18px;\n    font-size: 9px;\n  }\n\n  .rlmain .rlaci > span,\n  .rlmain ac > span {\n    font-size: 11px;\n    line-height: 1.5;\n  }\n\n  /* --- 舞台头部 44→34 --- */\n  .rlmain .rlsthd {\n    height: 34px;\n    padding: 0 6px 0 10px;\n    gap: 6px;\n  }\n\n  .rlmain .rlsthd > b {\n    font-size: 10.5px;\n    letter-spacing: 1.6px;\n  }\n\n  .rlmain .rlstclose {\n    height: 24px;\n    padding: 0 7px 0 5px;\n    gap: 3px;\n  }\n\n  .rlmain .rlstclose::before {\n    width: 12px;\n    height: 12px;\n    -webkit-mask-size: 12px 12px;\n    mask-size: 12px 12px;\n  }\n\n  .rlmain .rlstclose::after {\n    font-size: 9px;\n  }\n\n  /* --- 面板内组件缩小 --- */\n  .rlmain .rlpn {\n    padding: 9px 10px 28px;}\n\n  .rlmain .rlcard,\n  .rlmain cd {\n    padding: 8px 10px;margin-bottom: 7px;\n  }\n\n  .rlmain .rlrow,\n  .rlmain t {\n    padding: 3px 6px;\n    font-size: 11.5px;\n    gap: 6px;\n    margin-bottom: 2px;\n  }\n\n  .rlmain .rlrow > b,\n  .rlmain t > b {\n    font-size: 10px;\n    min-width: 52px;\n  }\n\n  .rlmain .rltag,\n  .rlmain tg {\n    padding: 1px 6px;\n    font-size: 9.5px;\n  }\n\n  .rlmain .rlcap,\n  .rlmain [c] {\n    padding: 1px 6px;\n    font-size: 9.5px;\n  }\n\n  .rlmain .rlcap > i,\n  .rlmain [c] > i {\n    width: calc(100vw - 80px);\n    max-width: 280px;\n    padding: 7px 9px;\n    font-size: 10px;\n    line-height: 1.5;\n  }\n\n  .rlmain .rlnum,\n  .rlmain n {\n    font-size: 12px;\n  }\n\n  .rlmain .rlgrid2,\n  .rlmain g2 {\n    gap: 3px 6px;\n    margin-bottom: 6px;\n  }\n\n  .rlmain .rlgrid3,\n  .rlmain g3 {\n    gap: 3px 5px;\n    margin-bottom: 6px;\n  }\n\n  .rlmain .rldiv,\n  .rlmain d {\n    margin: 7px 0;\n  }\n\n  /*头像缩小 */\n  .rlmain .rlava,\n  .rlmain av {\n    width: 38px;\n    height: 38px;\n  }\n\n  .rlmain .rlava::before,\n  .rlmain av::before {\n    -webkit-mask-size: 24px 24px;\n    mask-size: 24px 24px;\n  }\n\n  /* --- 分类标签栏缩小 --- */\n  .rlmain .rlsecbar {\n    padding-top: 34px;\n    min-height: 34px;}\n\n  .rlmain .rlsec > .rlseclbl {\n    width: 32px;\n    height: 30px;\n  }\n\n  .rlmain .rlsec > .rlseclbl::before {\n    width: 14px;\n    height: 14px;\n    -webkit-mask-size: 14px 14px;\n    mask-size: 14px 14px;\n  }\n\n  .rlmain .rlsecbar > .rlsec:nth-of-type(1) > .rlseclbl { left: 0; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(2) > .rlseclbl { left: 37px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(3) > .rlseclbl { left: 74px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(4) > .rlseclbl { left: 111px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(5) > .rlseclbl { left: 148px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(6) > .rlseclbl { left: 185px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(7) > .rlseclbl { left: 222px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(8) > .rlseclbl { left: 259px; }\n\n  /* --- 设置面板：内容自适应、下拉式对齐设置按钮下方 --- */\n  .rlmain .rlview > .rlsetpanel {\n    top: 0;\n    bottom: auto;\n    width: auto;\n    max-width: 88%;\n    max-height: 65vh;\n  }\n\n  .rlmain .rlsethd {\n    height: 44px;\n    padding: 0 10px 0 12px;\n  }\n\n  .rlmain .rlsethd > b {\n    font-size: 11px;\n    letter-spacing: 1.8px;\n  }\n\n  .rlmain .rlsetbd {\n    padding: 10px 10px 16px;\n  }\n\n  .rlmain .rlsetitem {\n    padding: 7px 9px;\n    gap: 8px;\n    margin-bottom: 4px;\n  }\n\n  .rlmain .rlsetitem > u > b {\n    font-size: 11px;\n  }\n\n  .rlmain .rlsetitem > u > s {\n    font-size: 9px;\n  }\n\n  .rlmain .rlsetval {\n    padding: 2px 7px;\n    font-size: 10px;\n  }\n\n  .rlmain .rlseti {\n    width: 15px;\n    height: 15px;\n    -webkit-mask-size: 15px 15px;\n    mask-size: 15px 15px;\n  }\n\n  .rlmain .rlclose {\n    width: 28px;\n    height: 28px;\n  }\n\n  .rlmain .rlclose::before {\n    -webkit-mask-size: 14px 14px;\n    mask-size: 14px 14px;\n  }\n\n  /* --- 消息终端 --- */\n  .rlmain .rlmsghd {\n    height: 32px;\n    padding: 0 8px;\n  }\n\n  .rlmain .rlmsghd > i {\n    width: 13px;\n    height: 13px;\n    -webkit-mask-size: 13px 13px;\n    mask-size: 13px 13px;\n  }\n\n  .rlmain .rlmsghd > b {\n    font-size: 9px;\n    letter-spacing: 1px;\n  }\n\n  .rlmain .rlmsgbox {\n    max-height: 160px;\n  }\n\n  .rlmain .rlmsg,\n  .rlmain ms {\n    padding: 5px 8px 5px 9px;\n  }\n\n  .rlmain .rlmsg > nav > span,\n  .rlmain ms > nav > span {\n    font-size: 10.5px;\n  }\n\n  /* --- CG立绘 --- */\n  .rlmain .rlcg-img {\n    aspect-ratio: 5/6;\n  }\n\n  /* --- 弹幕区--- */\n  .rlmain .rldmbox {\n    height: 150px;\n  }\n\n  .rlmain .rldm,\n  .rlmain dm {\n    font-size: 10.5px;\n    padding: 3px 0;\n  }\n\n  /* --- 遮罩覆盖rlview全区（面板已改为下拉式，无需负偏移） --- */\n  .rlmain .rlview > .rlmask {\n    top: 0;\n    bottom: 0;\n  }\n}\n\n/* ========== 23-2 小屏手机 ≤390px ========== */\n@media (max-width: 390px) {\n\n  .rlmain {\n    height: calc(100dvh - 56px);\n    min-height: 300px;\n    font-size: 11.5px;\n    margin: 0;}\n\n  /*顶栏进一步压缩 38→32 */\n  .rlmain .rltop {\n    height: 32px;\n    padding-right: 6px;\n  }\n\n  .rlmain .rlsigil {\n    width: 32px;\n    height: 32px;\n  }\n\n  .rlmain .rlsigil::before {\n    -webkit-mask-size: 16px 16px;\n    mask-size: 16px 16px;\n  }\n\n  .rlmain .rlsigil::after {\n    width: 24px;\n    height: 24px;\n    margin: -12px 0 0 -12px;\n  }\n\n  .rlmain .rlslot {\n    height: 32px;\n    padding: 0 6px;}\n\n  .rlmain .rlslot > u > b {\n    font-size: 10.5px;\n  }\n\n  .rlmain .rlslot.rltime > u > b {\n    font-size: 11px;\n  }\n\n  /*隐藏天气槽（太窄放不下） */\n  .rlmain .rlslot.rlwrap {\n    display: none;\n  }\n\n  /*导航栏 48→40 +隐藏文字 */\n  .rlmain .rlnavbar {\n    height: 40px;\n  }\n\n  .rlmain .rlbtn span {\n    display: none;\n  }\n\n  .rlmain .rlbtn i {\n    width: 22px;\n    height: 22px;\n    -webkit-mask-size: 22px 22px;\n    mask-size: 22px 22px;\n  }\n\n  .rlmain .rlbtn {\n    padding: 4px 1px;}\n\n  /* 正文进一步紧凑 */\n  .rlmain .rlbody {\n    padding: 8px 8px 12px 16px;\n    background-position: 6px 0, 6px 0;\n  }\n\n  .rlmain .rlbody p {\n    font-size: 12px;\n    line-height: 1.75;\n    margin-bottom: 8px;text-indent: 1.2em;\n  }\n\n  /* 行动建议进一步收紧 */\n  .rlmain .rlactbd {\n    max-height: 180px !important;\n  }\n\n  .rlmain .rlaci > span,\n  .rlmain ac > span {\n    font-size: 10.5px;\n  }\n\n  /* 舞台头 34→30 */\n  .rlmain .rlsthd {\n    height: 30px;\n    padding: 0 5px 0 8px;\n  }\n\n  .rlmain .rlsthd > b {\n    font-size: 9.5px;\n    letter-spacing: 1.2px;\n  }\n\n  .rlmain .rlstclose::after {\n    display: none;\n  }\n\n  .rlmain .rlstclose {\n    width: 24px;\n    height: 24px;\n    padding: 0;justify-content: center;\n  }\n\n  /* 面板内 */\n  .rlmain .rlpn {\n    padding: 7px 8px 24px;\n  }\n\n  .rlmain .rlcard,\n  .rlmain cd {\n    padding: 6px 8px;\n    margin-bottom: 5px;\n  }\n\n  .rlmain .rlgrid2,\n  .rlmain g2,\n  .rlmain .rlgrid3,\n  .rlmain g3 {\n    grid-template-columns: minmax(0, 1fr);}\n\n  /* 分类标签栏更小 */\n  .rlmain .rlsecbar {\n    padding-top: 30px;\n    min-height: 30px;\n  }\n\n  .rlmain .rlsec > .rlseclbl {\n    width: 28px;\n    height: 26px;\n  }\n\n  .rlmain .rlsec > .rlseclbl::before {\n    width: 12px;\n    height: 12px;\n    -webkit-mask-size: 12px 12px;\n    mask-size: 12px 12px;\n  }\n\n  .rlmain .rlsecbar > .rlsec:nth-of-type(1) > .rlseclbl { left: 0; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(2) > .rlseclbl { left: 33px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(3) > .rlseclbl { left: 66px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(4) > .rlseclbl { left: 99px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(5) > .rlseclbl { left: 132px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(6) > .rlseclbl { left: 165px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(7) > .rlseclbl { left: 198px; }\n  .rlmain .rlsecbar > .rlsec:nth-of-type(8) > .rlseclbl { left: 231px; }\n\n  .rlmain .rlsec > .rlseclbl::after {\n    display: none;\n  }\n\n  /* tooltip hover在小屏禁用箭头 */\n  .rlmain .rlcap > i::before,\n  .rlmain .rlcap > i::after,\n  .rlmain [c] > i::before,\n  .rlmain [c] > i::after {\n    display: none;\n  }\n\n  /* 设置按钮*/\n  .rlmain .rlsetbtn {\n    width: 28px;\n    height: 28px;\n  }\n\n  .rlmain .rlsetbtn::before {\n    width: 14px;\n    height: 14px;\n    -webkit-mask-size: 14px 14px;\n    mask-size: 14px 14px;\n  }\n\n  .rlmain .rlsetbtn::after {\n    display: none;\n  }\n\n  /* 遮罩覆盖rlview全区 */\n  .rlmain .rlview > .rlmask {\n    top: 0;\n    bottom: 0;\n  }\n}\n\n/* ========== 23-3 极小屏 ≤340px（iPhone SE 1代等） ========== */\n@media (max-width: 340px) {\n\n  .rlmain {\n    height: calc(100dvh - 44px);\n    min-height: 280px;\n    margin: 0;\n  }\n\n  .rlmain .rltop {\n    height: 28px;\n  }\n\n  .rlmain .rlsigil {\n    width: 28px;\n    height: 28px;\n  }\n\n  .rlmain .rlslot {\n    height: 28px;\n    padding: 0 5px;\n  }\n\n  .rlmain .rlslot > i {\n    width: 12px;\n    height: 12px;\n    -webkit-mask-size: 12px 12px;\n    mask-size: 12px 12px;\n  }\n\n  .rlmain .rlslot > u > b {\n    font-size: 10px;\n  }\n\n  .rlmain .rlnavbar {\n    height: 36px;\n  }\n\n  .rlmain .rlbtn i {\n    width: 20px;\n    height: 20px;\n    -webkit-mask-size: 20px 20px;\n    mask-size: 20px 20px;\n  }\n\n  .rlmain .rlbody {\n    padding: 6px 6px 10px 14px;\n    background-position: 5px 0, 5px 0;\n  }\n\n  .rlmain .rlbody p {\n    font-size: 11.5px;\n    line-height: 1.7;\n    text-indent: 1em;\n  }\n\n  .rlmain .rlactbd {\n    max-height: 160px !important;\n  }\n\n  .rlmain .rlview > .rlmask {\n    top: 0;\n    bottom: 0;\n  }\n}\n\n/* ============================================================24. 移动端终极修复 · MOBILE ULTIMATE FIX v2\n   替换旧版24节 · 必须置于内置CSS最末尾\n   ============================================================ */\n\n/* ---------- 24-1 input反滚动：display:none 彻底脱离渲染树 ----------\n   display:none使元素完全无渲染盒，浏览器focus时scrollIntoView找不到目标，不会滚动任何祖先容器。\n   label的for关联、:checked状态、~兄弟选择器均基于DOM树工作，不受display:none影响。\n   之前用absolute/fixed+top:0仍会触发页面滚动，因为元素仍在布局树中。 */\n.rlmain input.rlrd,\n.rlmain input.rlck {\n  display: none !important;\n}\n\n/* ---------- 24-2 tooltip居中 + 宽度自适应（全局基础） ---------- */\n.rlmain [c] > i,\n.rlmain .rlcap > i {\n  left: 50% !important;\n  right: auto !important;\n  width: auto;\n  min-width: 160px;\n  max-width: min(300px, calc(100cqw - 36px));\n  transform: translateX(-50%) translateY(-4px) scale(.96);\n}\n\n.rlmain [c]:hover > i,\n.rlmain .rlcap:hover > i {\n  transform: translateX(-50%) translateY(0) scale(1);\n}\n\n/* 箭头居中 */\n.rlmain [c] > i::before,\n.rlmain .rlcap > i::before {\n  left: 50% !important;\n  right: auto !important;\n  transform: translateX(-50%);\n}\n\n.rlmain [c] > i::after,\n.rlmain .rlcap > i::after {\n  left: 50% !important;\n  right: auto !important;\n  transform: translateX(-50%);\n}\n\n/* ---------- 24-3 覆盖所有列对齐残留（g2/g3全列） ----------\n   用!important 确保不被前面更高特异性的规则盖回去*/\n.rlmain g2 > * [c] > i,\n.rlmain g3 > * [c] > i,\n.rlmain .rlgrid2 > * [c] > i,\n.rlmain .rlgrid3 > * [c] > i,\n.rlmain .rlgrid2 > * .rlcap > i,\n.rlmain .rlgrid3 > * .rlcap > i {\n  left: 50% !important;\n  right: auto !important;\n  transform: translateX(-50%) translateY(-4px) scale(.96);\n}\n\n.rlmain g2 > * [c]:hover > i,\n.rlmain g3 > * [c]:hover > i,\n.rlmain .rlgrid2 > * [c]:hover > i,\n.rlmain .rlgrid3 > * [c]:hover > i,\n.rlmain .rlgrid2 > * .rlcap:hover > i,\n.rlmain .rlgrid3 > * .rlcap:hover > i {\n  transform: translateX(-50%) translateY(0) scale(1);\n}\n\n.rlmain g2 > * [c] > i::before,\n.rlmain g2 > * [c] > i::after,\n.rlmain g3 > * [c] > i::before,\n.rlmain g3 > * [c] > i::after,\n.rlmain .rlgrid2 > * [c] > i::before,\n.rlmain .rlgrid2 > * [c] > i::after,\n.rlmain .rlgrid3 > * [c] > i::before,\n.rlmain .rlgrid3 > * [c] > i::after,\n.rlmain .rlgrid2 > * .rlcap > i::before,\n.rlmain .rlgrid2 > * .rlcap > i::after,\n.rlmain .rlgrid3 > * .rlcap > i::before,\n.rlmain .rlgrid3 > * .rlcap > i::after {\n  left: 50% !important;\n  right: auto !important;\n  transform: translateX(-50%);\n}\n\n/* ---------- 24-4 向上翻转时也居中 ---------- */\n.rlmain .rlpn > cd:nth-last-child(-n+3) [c] > i,\n.rlmain .rlpn > .rlcard:nth-last-child(-n+3) [c] > i,\n.rlmain .rlpn > .rlcard:nth-last-child(-n+3) .rlcap > i,\n.rlmain .rlpn > cd:nth-last-child(-n+2) [c] > i,\n.rlmain .rlsecbd > cd > *:nth-last-child(-n+2) [c] > i,\n.rlmain .rlsecbd > cd > *:nth-last-child(-n+2) .rlcap > i {\n  left: 50% !important;\n  right: auto !important;\n  top: auto;\n  bottom: 100%;\n  margin-top: 0;\n  margin-bottom: 6px;\n  transform: translateX(-50%) translateY(4px) scale(.96);\n}\n\n.rlmain .rlpn > cd:nth-last-child(-n+3) [c]:hover > i,\n.rlmain .rlpn > .rlcard:nth-last-child(-n+3) [c]:hover > i,\n.rlmain .rlpn > .rlcard:nth-last-child(-n+3) .rlcap:hover > i,\n.rlmain .rlpn > cd:nth-last-child(-n+2) [c]:hover > i,\n.rlmain .rlsecbd > cd > *:nth-last-child(-n+2) [c]:hover > i,\n.rlmain .rlsecbd > cd > *:nth-last-child(-n+2) .rlcap:hover > i {\n  transform: translateX(-50%) translateY(0) scale(1);\n}\n\n/* 向上箭头也居中 */\n.rlmain .rlpn > cd:nth-last-child(-n+3) [c] > i::before,\n.rlmain .rlpn > cd:nth-last-child(-n+3) [c] > i::after,\n.rlmain .rlpn > .rlcard:nth-last-child(-n+3) [c] > i::before,\n.rlmain .rlpn > .rlcard:nth-last-child(-n+3) [c] > i::after,\n.rlmain .rlpn > .rlcard:nth-last-child(-n+3) .rlcap > i::before,\n.rlmain .rlpn > .rlcard:nth-last-child(-n+3) .rlcap > i::after,\n.rlmain .rlsecbd > cd > *:nth-last-child(-n+2) [c] > i::before,\n.rlmain .rlsecbd > cd > *:nth-last-child(-n+2) [c] > i::after {\n  left: 50% !important;\n  right: auto !important;\n  transform: translateX(-50%);\n}\n\n/* ---------- 24-4b 小区(data-sec=\"d\") 禁用向上翻转 ----------\n   小区cd仅2个g2子元素，nth-last-child(-n+2)导致全部上翻，\n   顶部标签(所在小区/相邻小区)tooltip上翻后超出rlpn顶部被overflow裁剪。\n   大区cd有7个子元素仅末尾上翻故正常，此处仅对小区强制向下显示。 */\n.rlmain .rlsec[data-sec=\"d\"] .rlsecbd > cd > *:nth-last-child(-n+2) [c] > i {\n  top: 100% !important;\n  bottom: auto !important;\n  margin-top: 6px !important;\n  margin-bottom: 0 !important;\n  transform: translateX(-50%) translateY(-4px) scale(.96) !important;\n}\n\n.rlmain .rlsec[data-sec=\"d\"] .rlsecbd > cd > *:nth-last-child(-n+2) [c]:hover > i {\n  transform: translateX(-50%) translateY(0) scale(1) !important;\n}\n\n.rlmain .rlsec[data-sec=\"d\"] .rlsecbd > cd > *:nth-last-child(-n+2) [c] > i::before {\n  bottom: 100% !important;\n  top: auto !important;\n  border-bottom-color: var(--rl-order-d) !important;\n  border-top-color: transparent !important;\n}\n\n.rlmain .rlsec[data-sec=\"d\"] .rlsecbd > cd > *:nth-last-child(-n+2) [c] > i::after {\n  bottom: 100% !important;\n  top: auto !important;\n  border-bottom-color: rgba(12, 16, 28, .98) !important;\n  border-top-color: transparent !important;\n}\n\n/* ---------- 24-5 [c][n] 数值型tooltip特殊处理 ----------\n   数值型胶囊没有padding/border，tooltip起点不同 */\n.rlmain [c][n] > i,\n.rlmain .rlcap.rlcap-num > i {\n  left: 50% !important;\n  right: auto !important;\n}\n\n/* ---------- 24-6 移动端tooltip尺寸微调 ---------- */\n@media (max-width: 520px) {\n  .rlmain [c] > i,\n  .rlmain .rlcap > i {\n    min-width: 130px;\n    max-width: min(280px, calc(100cqw - 28px));padding: 7px 9px;\n    font-size: 10px;\n    line-height: 1.5;\n  }\n}\n\n@media (max-width: 390px) {\n  .rlmain [c] > i,\n  .rlmain .rlcap > i {\n    min-width: 110px;\n    max-width: min(250px, calc(100cqw - 20px));\n    padding: 6px 8px;\n  }\n\n  /* 极窄屏隐藏箭头省空间 */\n  .rlmain [c] > i::before,\n  .rlmain [c] > i::after,\n  .rlmain .rlcap > i::before,\n  .rlmain .rlcap > i::after {\n    display: none;\n  }\n}\n\n/* ---------- 24-7 容器查询覆盖旧的固定宽度 ---------- */\n@container rlbox (max-width: 420px) {\n  .rlmain [c] > i,\n  .rlmain .rlcap > i {\n    width: auto;\n    min-width: 120px;\n    max-width: calc(100cqw - 28px);\n  }\n}\n\n/* ---------- 24-8 全局禁止平滑滚动 + 阻断滚动链 ----------\n   禁用html/body的smooth滚动，使任何意外触发的scrollIntoView瞬时完成而非平滑滚动；\n   overscroll-behavior:contain阻止.rlmain内部滚动链传导到页面级。 */\nhtml, body {\n  scroll-behavior: auto !important;\n}\n.rlmain {\n  overscroll-behavior: contain;\n}\n\n/* ============================================================\n   25. rili 平台适配层 —— 破宽度限制 / 渲染区基线 / 面板互斥 / 平台美化\n   ------------------------------------------------------------\n   平台默认给AI回复/输入框设 max-w-2xl(~672px) 把内容压窄；\n   平台 HTML 净化器会剥离 radio 的 name 属性，导致 radio 无法分组互斥；\n   本层解决以上三类问题，并对 shell 外的平台元素套用轮回乐园视觉系。\n   配色：秩序青 #4dd0ff (AI/左) / 混沌红 #ff2d55 (玩家/右) / 金 #ffc94d\n   ============================================================ */\n\n/* ---------- 25-1 外层容器破限（全局，无 @media） ---------- */\n.max-w-2xl,\ndiv[class*=\"max-w-2xl\"] {\n  max-width: 920px !important;\n}\n\n/* AI 回复气泡解除宽度限制 */\ndiv[class*=\"is-assistant\"],\n.group.is-assistant {\n  max-width: none !important;\n  width: 100% !important;\n}\n\n.group.is-assistant > .is-dark.bg-card,\ndiv[class*=\"is-assistant\"][class*=\"bg-card\"] {\n  max-width: none !important;\n  width: 100% !important;\n}\n\n/* 玩家消息气泡解除宽度限制 */\ndiv[class*=\"is-user\"],\n.group.is-user {\n  max-width: none !important;\n}\n\n/* markdown 渲染器铺满 */\ndiv.rili-markdown-renderer,\n.group.is-assistant .rili-markdown-renderer {\n  max-width: none !important;\n  width: 100% !important;\n}\n\n/* AI 正文框铺满 */\narticle.story-main {\n  max-width: none !important;\n  width: 100% !important;\n}\n\n/* ---------- 25-2 输入栏破限（逐层突破父容器链） ---------- */\n#prompt-input,\n#ai-chat-bottom-input,\ndiv[data-slot=\"input-group\"],\ndiv[data-slot=\"input-group\"][role=\"group\"] {\n  max-width: 920px !important;\n  width: 100% !important;\n  margin-left: auto !important;\n  margin-right: auto !important;\n}\n\n#prompt-input [data-slot=\"input-group\"],\n#prompt-input > div,\n#ai-chat-bottom-input > div {\n  width: 100% !important;\n  max-width: none !important;\n}\n\n#prompt-input-header,\n#prompt-input-footer,\n#prompt-input-header > div,\n#prompt-input-footer > div {\n  width: 100% !important;\n  max-width: none !important;\n}\n\n#prompt-input textarea,\n#ai-chat-bottom-input textarea {\n  width: 100% !important;\n  max-width: none !important;\n}\n\n/* 兜底：所有含 input/prompt/chat-bottom 的容器破限 */\ndiv[class*=\"prompt-input\"],\ndiv[class*=\"chat-bottom\"],\ndiv[class*=\"input-group\"] {\n  max-width: 920px !important;\n  width: 100% !important;\n}\n\n/* ---------- 25-3 渲染区文字基线（霞鹜文楷配套） ----------\n   AI 正文 / markdown 渲染器统一使用霞鹜文楷，与 shell 内部字体呼应。 */\narticle.story-main,\n.group.is-assistant .rili-markdown-renderer,\ndiv.rili-markdown-renderer {\n  font-family: 'LXGW WenKai', 'Noto Serif SC', 'Source Han Serif SC', 'STSong', 'SimSun', 'Georgia', serif !important;\n  font-size: 15.5px !important;\n  font-weight: 500 !important;\n  line-height: 1.85 !important;\n  letter-spacing: .35px !important;\n  color: #c8d4e8 !important;\n}\n\narticle.story-main p:not(.rlmain *),\n.group.is-assistant .rili-markdown-renderer p:not(.rlmain *),\ndiv.rili-markdown-renderer p:not(.rlmain *) {\n  color: #c8d4e8 !important;\n}\n\narticle.story-main :is(b, strong):not(.rlmain *),\ndiv.rili-markdown-renderer :is(b, strong):not(.rlmain *) {\n  color: #ffc94d !important;\n  font-weight: 800 !important;\n  text-shadow: 0 0 6px rgba(255, 201, 77, .35) !important;\n}\n\n.group.is-assistant .rili-markdown-renderer :is(h1, h2, h3):not(.rlmain *),\ndiv.rili-markdown-renderer :is(h1, h2, h3):not(.rlmain *) {\n  color: #4dd0ff !important;\n  font-weight: 900 !important;\n  letter-spacing: 1px !important;\n  text-shadow: 0 0 8px rgba(77, 208, 255, .4) !important;\n}\n\n/* ---------- 25-4 面板互斥：checkbox 后选覆盖极简版 ----------\n   平台 HTML 净化器剥离 radio 的 name 属性，导致 rlr0~rlr5 可同时选中。\n   利用 :has() 实现\"编号大压编号小\"：当任一比当前面板编号大的面板被选中时，\n   隐藏当前面板。多个面板同时 checked 时，显示编号最大的那个。 */\n.rlmain:has(input.rlrd.rlr1:checked) .rlview .rlstbd > .rlpn.rlp0,\n.rlmain:has(input.rlrd.rlr2:checked) .rlview .rlstbd > .rlpn.rlp0,\n.rlmain:has(input.rlrd.rlr2:checked) .rlview .rlstbd > .rlpn.rlp1,\n.rlmain:has(input.rlrd.rlr3:checked) .rlview .rlstbd > .rlpn.rlp0,\n.rlmain:has(input.rlrd.rlr3:checked) .rlview .rlstbd > .rlpn.rlp1,\n.rlmain:has(input.rlrd.rlr3:checked) .rlview .rlstbd > .rlpn.rlp2,\n.rlmain:has(input.rlrd.rlr4:checked) .rlview .rlstbd > .rlpn.rlp0,\n.rlmain:has(input.rlrd.rlr4:checked) .rlview .rlstbd > .rlpn.rlp1,\n.rlmain:has(input.rlrd.rlr4:checked) .rlview .rlstbd > .rlpn.rlp2,\n.rlmain:has(input.rlrd.rlr4:checked) .rlview .rlstbd > .rlpn.rlp3,\n.rlmain:has(input.rlrd.rlr5:checked) .rlview .rlstbd > .rlpn.rlp0,\n.rlmain:has(input.rlrd.rlr5:checked) .rlview .rlstbd > .rlpn.rlp1,\n.rlmain:has(input.rlrd.rlr5:checked) .rlview .rlstbd > .rlpn.rlp2,\n.rlmain:has(input.rlrd.rlr5:checked) .rlview .rlstbd > .rlpn.rlp3,\n.rlmain:has(input.rlrd.rlr5:checked) .rlview .rlstbd > .rlpn.rlp4 {\n  opacity: 0 !important;\n  visibility: hidden !important;\n  pointer-events: none !important;\n}\n\n/* 同步处理导航栏高亮：编号大的覆盖编号小的按钮高亮\n   生效点：按钮背景 / 图标 i 的 background-color / 文字 span 的 color / 光条 ::after 的 transform:scaleX */\n.rlmain:has(input.rlrd.rlr1:checked) .rlnavbar .rlb0,\n.rlmain:has(input.rlrd.rlr2:checked) .rlnavbar :is(.rlb0, .rlb1),\n.rlmain:has(input.rlrd.rlr3:checked) .rlnavbar :is(.rlb0, .rlb1, .rlb2),\n.rlmain:has(input.rlrd.rlr4:checked) .rlnavbar :is(.rlb0, .rlb1, .rlb2, .rlb3),\n.rlmain:has(input.rlrd.rlr5:checked) .rlnavbar :is(.rlb0, .rlb1, .rlb2, .rlb3, .rlb4) {\n  background: linear-gradient(180deg, rgba(20, 26, 44, .96), rgba(10, 13, 22, .98)) !important;\n}\n\n.rlmain:has(input.rlrd.rlr1:checked) .rlnavbar .rlb0 i,\n.rlmain:has(input.rlrd.rlr2:checked) .rlnavbar :is(.rlb0, .rlb1) i,\n.rlmain:has(input.rlrd.rlr3:checked) .rlnavbar :is(.rlb0, .rlb1, .rlb2) i,\n.rlmain:has(input.rlrd.rlr4:checked) .rlnavbar :is(.rlb0, .rlb1, .rlb2, .rlb3) i,\n.rlmain:has(input.rlrd.rlr5:checked) .rlnavbar :is(.rlb0, .rlb1, .rlb2, .rlb3, .rlb4) i {\n  background-color: var(--rl-txt3) !important;\n  filter: none !important;\n  transform: none !important;\n  animation: none !important;\n}\n\n.rlmain:has(input.rlrd.rlr1:checked) .rlnavbar .rlb0 span,\n.rlmain:has(input.rlrd.rlr2:checked) .rlnavbar :is(.rlb0, .rlb1) span,\n.rlmain:has(input.rlrd.rlr3:checked) .rlnavbar :is(.rlb0, .rlb1, .rlb2) span,\n.rlmain:has(input.rlrd.rlr4:checked) .rlnavbar :is(.rlb0, .rlb1, .rlb2, .rlb3) span,\n.rlmain:has(input.rlrd.rlr5:checked) .rlnavbar :is(.rlb0, .rlb1, .rlb2, .rlb3, .rlb4) span {\n  color: var(--rl-txt3) !important;\n  font-weight: 600 !important;\n  text-shadow: none !important;\n}\n\n.rlmain:has(input.rlrd.rlr1:checked) .rlnavbar .rlb0::after,\n.rlmain:has(input.rlrd.rlr2:checked) .rlnavbar :is(.rlb0, .rlb1)::after,\n.rlmain:has(input.rlrd.rlr3:checked) .rlnavbar :is(.rlb0, .rlb1, .rlb2)::after,\n.rlmain:has(input.rlrd.rlr4:checked) .rlnavbar :is(.rlb0, .rlb1, .rlb2, .rlb3)::after,\n.rlmain:has(input.rlrd.rlr5:checked) .rlnavbar :is(.rlb0, .rlb1, .rlb2, .rlb3, .rlb4)::after {\n  transform: scaleX(0) !important;\n}\n\n/* ---------- 25-5 rili 平台页面美化（轮回乐园·秩序混沌双轴系） ----------\n   - 底色：深空蓝黑 (#05070c / #080a10 / #0e1220)\n   - 主色：秩序青 #4dd0ff (AI/输入栏/导航)\n   - 副色：混沌红 #ff2d55 (玩家气泡)\n   - 强调：金 #ffc94d (按钮/高亮)\n   ----------------------------------------------- */\n\n/* ─── 输入栏容器 ─── */\n#prompt-input [data-slot=\"input-group\"] {\n  background: linear-gradient(135deg, #0e1220 0%, #080a10 100%) !important;\n  border: 1px solid rgba(46, 63, 104, .6) !important;\n  border-top: 3px solid #4dd0ff !important;\n  border-radius: 8px !important;\n  box-shadow: 0 -4px 16px rgba(5, 7, 12, .6), inset 0 0 60px rgba(77, 208, 255, .04), 0 -1px 0 rgba(77, 208, 255, .15) inset !important;\n  position: relative !important;\n  overflow: visible !important;\n  transition: all 0.3s ease !important;\n}\n#prompt-input [data-slot=\"input-group\"]::before {\n  content: \"\" !important;\n  position: absolute !important;\n  top: -3px; left: 0; right: 0 !important;\n  height: 3px !important;\n  background: linear-gradient(90deg, transparent 0%, #4dd0ff 10%, #4dd0ff 30%, #ffc94d 50%, #4dd0ff 70%, #4dd0ff 90%, transparent 100%) !important;\n  background-size: 200% 100% !important;\n  animation: rlInputBorderFlow 4s linear infinite !important;\n  opacity: 0.8 !important;\n}\n#prompt-input [data-slot=\"input-group\"]:hover {\n  box-shadow: 0 -6px 24px rgba(5, 7, 12, .75), inset 0 0 80px rgba(77, 208, 255, .06), 0 -1px 0 rgba(77, 208, 255, .25) inset !important;\n  transform: translateY(-2px) !important;\n}\n#prompt-input [data-slot=\"input-group\"]:focus-within {\n  border-color: #4dd0ff !important;\n  box-shadow: 0 -6px 28px rgba(77, 208, 255, .2), inset 0 0 100px rgba(77, 208, 255, .08), 0 0 0 2px rgba(77, 208, 255, .2) !important;\n}\n\n/* ─── 输入框文本 ─── */\n#prompt-input textarea {\n  background: #05070c !important;\n  color: #c8d4e8 !important;\n  border: none !important;\n  font-family: 'LXGW WenKai', 'Noto Serif SC', 'Source Han Serif SC', 'STSong', 'SimSun', 'Georgia', serif !important;\n  font-size: 15px !important;\n  line-height: 1.7 !important;\n  padding: 12px 16px !important;\n  border-radius: 4px !important;\n  transition: all 0.2s ease !important;\n  box-shadow: inset 0 1px 3px rgba(5, 7, 12, .4) !important;\n}\n#prompt-input textarea:focus {\n  background: #080a10 !important;\n  outline: none !important;\n  box-shadow: inset 0 1px 4px rgba(77, 208, 255, .12), 0 0 0 1px #4dd0ff inset !important;\n}\n#prompt-input textarea::placeholder {\n  color: #4dd0ff !important;\n  font-family: 'LXGW WenKai', 'Noto Serif SC', 'Source Han Serif SC', 'STSong', 'SimSun', 'Georgia', serif !important;\n  font-style: italic !important;\n  opacity: 0.6 !important;\n}\n\n/* ─── 发送按钮 ─── */\n#prompt-input-footer button {\n  background: linear-gradient(135deg, #4dd0ff 0%, #1d7fa8 100%) !important;\n  color: #05070c !important;\n  border: 1px solid #4dd0ff !important;\n  border-radius: 6px !important;\n  padding: 8px 16px !important;\n  font-family: 'LXGW WenKai', 'Noto Serif SC', 'Source Han Serif SC', 'STSong', 'SimSun', 'Georgia', serif !important;\n  font-weight: 700 !important;\n  box-shadow: 0 2px 8px rgba(77, 208, 255, .3), inset 0 1px 0 rgba(180, 230, 255, .25) !important;\n  transition: all 0.2s ease !important;\n  position: relative !important;\n  overflow: hidden !important;\n  text-shadow: 0 0 8px rgba(180, 230, 255, .5) !important;\n}\n#prompt-input-footer button::before {\n  content: \"\" !important;\n  position: absolute !important;\n  top: -50%; left: -50% !important;\n  width: 200%; height: 200% !important;\n  background: radial-gradient(circle, rgba(77, 208, 255, .25) 0%, transparent 70%) !important;\n  opacity: 0 !important;\n  transition: opacity 0.4s ease !important;\n}\n#prompt-input-footer button:hover {\n  background: linear-gradient(135deg, #4dd0ff 0%, #4dd0ff 100%) !important;\n  box-shadow: 0 4px 14px rgba(77, 208, 255, .5), inset 0 1px 0 rgba(200, 240, 255, .35) !important;\n  transform: translateY(-1px) scale(1.02) !important;\n}\n#prompt-input-footer button:hover::before {\n  opacity: 1 !important;\n  animation: rlButtonRipple 1.2s ease-out infinite !important;\n}\n#prompt-input-footer button:active {\n  transform: translateY(0) scale(0.98) !important;\n  box-shadow: 0 1px 4px rgba(77, 208, 255, .4), inset 0 2px 4px rgba(5, 7, 12, .3) !important;\n}\n#prompt-input-footer button svg {\n  transition: transform 0.3s ease !important;\n  filter: drop-shadow(0 1px 2px rgba(5, 7, 12, .4)) !important;\n}\n#prompt-input-footer button:hover svg {\n  transform: translateX(2px) !important;\n}\n\n/* ─── 输入栏头部按钮 ─── */\n#prompt-input-header button {\n  background: #141a2c !important;\n  color: #4dd0ff !important;\n  border: 1px solid rgba(46, 63, 104, .6) !important;\n  border-radius: 4px !important;\n  padding: 6px 10px !important;\n  transition: all 0.2s ease !important;\n  box-shadow: 0 1px 3px rgba(5, 7, 12, .3) !important;\n}\n#prompt-input-header button:hover {\n  background: #1c2440 !important;\n  color: #4dd0ff !important;\n  border-color: #4dd0ff !important;\n  box-shadow: 0 2px 6px rgba(77, 208, 255, .2), inset 0 0 0 1px rgba(77, 208, 255, .1) !important;\n  transform: translateY(-1px) !important;\n}\n#prompt-input-header button svg { transition: all 0.3s ease !important; }\n#prompt-input-header button:hover svg {\n  transform: scale(1.1) !important;\n  filter: drop-shadow(0 0 3px rgba(77, 208, 255, .5)) !important;\n}\n\n/* ─── AI 回复气泡（秩序青光弧·左） ─── */\n.is-assistant > div {\n  font-family: 'LXGW WenKai', 'Noto Serif SC', 'Source Han Serif SC', 'STSong', 'SimSun', 'Georgia', serif !important;\n  position: relative !important;\n  background: linear-gradient(135deg, rgba(77, 208, 255, .08) 0%, rgba(77, 208, 255, .04) 25%, rgba(20, 26, 44, .5) 50%, rgba(77, 208, 255, .04) 75%, rgba(77, 208, 255, .08) 100%), linear-gradient(180deg, rgba(14, 18, 32, .92) 0%, rgba(8, 10, 16, .88) 50%, rgba(5, 7, 12, .92) 100%) !important;\n  border: 1px solid rgba(77, 208, 255, .25) !important;\n  border-left: 2px solid rgba(77, 208, 255, .4) !important;\n  box-shadow: 0 2px 12px rgba(5, 7, 12, .4), inset 0 0 60px rgba(77, 208, 255, .04), 0 1px 0 rgba(77, 208, 255, .1) inset !important;\n  border-radius: 12px !important;\n  overflow: hidden !important;\n  color: #c8d4e8 !important;\n}\n.is-assistant > div::before {\n  content: \"\" !important;\n  position: absolute !important;\n  top: 0; left: -3px; bottom: 0 !important;\n  width: 3px !important;\n  background: linear-gradient(180deg, transparent 0%, #4dd0ff 10%, #4dd0ff 30%, #ffc94d 50%, #4dd0ff 70%, #4dd0ff 90%, transparent 100%) !important;\n  background-size: 100% 200% !important;\n  animation: rlAssistantBorderFlow 4s linear infinite !important;\n  opacity: 0.8 !important;\n  filter: drop-shadow(0 0 4px rgba(77, 208, 255, .6)) !important;\n}\n.is-assistant > div:hover {\n  transform: none !important;\n  box-shadow: 0 6px 24px rgba(5, 7, 12, .65), inset 0 0 80px rgba(77, 208, 255, .05), 0 1px 0 rgba(77, 208, 255, .2) inset !important;\n}\n\n/* ─── 玩家消息气泡（混沌红光弧·右） ─── */\n.is-user > div {\n  font-family: 'LXGW WenKai', 'Noto Serif SC', 'Source Han Serif SC', 'STSong', 'SimSun', 'Georgia', serif !important;\n  position: relative !important;\n  background: linear-gradient(135deg, rgba(77, 208, 255, .08) 0%, rgba(77, 208, 255, .04) 25%, rgba(28, 36, 64, .5) 50%, rgba(77, 208, 255, .04) 75%, rgba(77, 208, 255, .08) 100%), linear-gradient(180deg, rgba(20, 26, 44, .92) 0%, rgba(14, 18, 32, .88) 50%, rgba(8, 10, 16, .92) 100%) !important;\n  border: 1px solid rgba(77, 208, 255, .25) !important;\n  border-right: 2px solid rgba(77, 208, 255, .35) !important;\n  box-shadow: 0 2px 12px rgba(5, 7, 12, .4), inset 0 0 60px rgba(77, 208, 255, .04),0 1px 0 rgba(77, 208, 255, .1) inset !important;\n  border-radius: 12px !important;\n  overflow: hidden !important;\n  color: #c8d4e8 !important;\n}\n.is-user > div::before {\n  content: \"\" !important;\n  position: absolute !important;\n  top: 0; right: -3px; bottom: 0 !important;\n  width: 3px !important;\n  background: linear-gradient(180deg, transparent 0%, #4dd0ff 10%, #4dd0ff 30%, #ffc94d 50%, #4dd0ff 70%, #4dd0ff 90%, transparent 100%) !important;\n  background-size: 100% 200% !important;\n  animation: rlUserBorderFlow 4s linear infinite !important;\n  opacity: 0.7 !important;\n  filter: drop-shadow(0 0 4px rgba(77, 208, 255, .5)) !important;\n}\n.is-user > div:hover {\n  transform: none !important;\n  box-shadow: 0 6px 24px rgba(5, 7, 12, .65), inset 0 0 80px rgba(77, 208, 255, .05), 0 1px 0 rgba(77, 208, 255, .2) inset !important;\n}\n\n/* ─── 顶部导航栏 ─── */\nnav header {\n  height: 2rem !important;\n  min-height: 2rem !important;\n  padding-left: 0.25rem !important;\n  padding-right: 0.25rem !important;\n  background: linear-gradient(180deg, rgba(8, 12, 20, 0.97) 0%, rgba(4, 8, 16, 0.93) 100%) !important;\n  backdrop-filter: blur(12px) saturate(1.3) !important;\n  -webkit-backdrop-filter: blur(12px) saturate(1.3) !important;\n}\nnav header::before {\n  content: \"\" !important;\n  position: absolute !important;\n  bottom: -2px; left: 0; right: 0 !important;\n  height: 2px !important;\n  background: linear-gradient(90deg, transparent 0%, rgba(77, 208, 255, 0.6) 15%, #4dd0ff 35%, #ffc94d 50%, #4dd0ff 65%, rgba(77, 208, 255, 0.6) 85%, transparent 100%) !important;\n  background-size: 200% 100% !important;\n  animation: rlHeaderBorderFlow 4s linear infinite !important;\n  opacity: 0.9 !important;\n  filter: blur(0.5px) !important;\n}\nnav header:hover {\n  box-shadow:\n    inset 0 1px 0 rgba(77, 208, 255, 0.14),\n    inset 0 0 60px rgba(77, 208, 255, 0.06),\n    0 4px 20px rgba(0, 0, 0, 0.7),\n    0 0 16px rgba(77, 208, 255, 0.08) !important;\n}\n\n/* ─── 圆形操作按钮（复制/重试等） ─── */\n.is-assistant button.rounded-full,\n.is-user button.rounded-full {\n  background: #141a2c !important;\n  color: #4dd0ff !important;\n  border: 1px solid rgba(46, 63, 104, .6) !important;\n  border-radius: 50% !important;\n  transition: all 0.2s ease !important;\n  box-shadow: 0 1px 3px rgba(5, 7, 12, .3) !important;\n  position: relative !important;\n  overflow: hidden !important;\n}\n.is-assistant button.rounded-full::before,\n.is-user button.rounded-full::before {\n  content: \"\" !important;\n  position: absolute !important;\n  top: -50%; left: -50% !important;\n  width: 200%; height: 200% !important;\n  background: radial-gradient(circle, rgba(77, 208, 255, .2) 0%, transparent 70%) !important;\n  opacity: 0 !important;\n  transition: opacity 0.4s ease !important;\n}\n.is-assistant button.rounded-full:hover,\n.is-user button.rounded-full:hover {\n  background: #1c2440 !important;\n  color: #4dd0ff !important;\n  border-color: #4dd0ff !important;\n  box-shadow: 0 2px 6px rgba(77, 208, 255, .2), inset 0 0 0 1px rgba(77, 208, 255, .1) !important;\n  transform: translateY(-1px) scale(1.05) !important;\n}\n.is-assistant button.rounded-full:hover::before,\n.is-user button.rounded-full:hover::before {\n  opacity: 1 !important;\n  animation: rlButtonRipple 1.2s ease-out infinite !important;\n}\n.is-assistant button.rounded-full:active,\n.is-user button.rounded-full:active {\n  transform: translateY(0) scale(0.95) !important;\n  box-shadow: 0 1px 3px rgba(77, 208, 255, .25), inset 0 2px 4px rgba(5, 7, 12, .3) !important;\n}\n.is-assistant button.rounded-full svg,\n.is-user button.rounded-full svg { transition: all 0.3s ease !important; }\n.is-assistant button.rounded-full:hover svg,\n.is-user button.rounded-full:hover svg {\n  transform: scale(1.1) !important;\n  filter: drop-shadow(0 0 3px rgba(77, 208, 255, .5)) !important;\n}\n\n/* ─── 动画关键帧 ─── */\n@keyframes rlInputBorderFlow { 0% { background-position: 0% 0%; } 100% { background-position: 200% 0%; } }\n@keyframes rlAssistantBorderFlow { 0% { background-position: 0% 0%; } 100% { background-position: 0% 200%; } }\n@keyframes rlUserBorderFlow { 0% { background-position: 0% 0%; } 100% { background-position: 0% 200%; } }\n@keyframes rlHeaderBorderFlow { 0% { background-position: 0% 0%; } 100% { background-position: 200% 0%; } }\n@keyframes rlButtonRipple { 0% { transform: translate(-50%, -50%) scale(0); opacity: 1; } 100% { transform: translate(-50%, -50%) scale(1.5); opacity: 0; } }\n\n/* ---------- 25-6 rili 平台渲染器补充美化 ----------\n   代码块 / 引用块 / 滚动条 / 行动选项按钮兜底。 */\n\n/* ─── 代码块（终端风·秩序青边） ─── */\n.rili-markdown-renderer pre {\n  background: #05070c !important;\n  border: 1px solid rgba(46, 63, 104, .6) !important;\n  border-left: 3px solid #4dd0ff !important;\n  border-radius: 4px !important;\n  padding: 12px 16px !important;\n  margin: 8px 0 !important;\n  font-family: 'Cascadia Code', 'Consolas', 'Source Code Pro', 'Menlo', 'Courier New', monospace !important;\n  font-size: 0.88em !important;\n  line-height: 1.6 !important;\n  color: #4dd0ff !important;\n  overflow-x: auto !important;\n  box-shadow: inset 0 0 30px rgba(77, 208, 255, .04), 0 1px 4px rgba(5, 7, 12, .4) !important;\n}\n.rili-markdown-renderer pre code {\n  background: transparent !important;\n  color: #4dd0ff !important;\n  padding: 0 !important;\n  font-family: inherit !important;\n  text-shadow: 0 0 6px rgba(77, 208, 255, .25) !important;\n}\n.rili-markdown-renderer code {\n  background: rgba(77, 208, 255, .12) !important;\n  color: #4dd0ff !important;\n  padding: 1px 5px !important;\n  border-radius: 3px !important;\n  font-family: 'Cascadia Code', 'Consolas', 'Source Code Pro', 'Menlo', 'Courier New', monospace !important;\n  font-size: 0.9em !important;\n  border: 1px solid rgba(77, 208, 255, .25) !important;\n}\n\n/* ─── 引用块（混沌红光弧·左） ─── */\n.rili-markdown-renderer blockquote {\n  background: linear-gradient(135deg, rgba(255, 45, 85, .1) 0%, rgba(255, 45, 85, .06) 100%) !important;\n  border-left: 4px solid #ff2d55 !important;\n  padding: 10px 16px !important;\n  margin: 8px 0 !important;\n  color: #ffc94d !important;\n  font-style: italic !important;\n  border-radius: 0 4px 4px 0 !important;\n  box-shadow: 0 1px 4px rgba(255, 45, 85, .15), inset 0 0 30px rgba(255, 45, 85, .03) !important;\n  position: relative !important;\n}\n.rili-markdown-renderer blockquote::before {\n  content: \"\" !important;\n  position: absolute !important;\n  top: 0; bottom: 0; left: -4px !important;\n  width: 4px !important;\n  background: linear-gradient(180deg, transparent 0%, #ff2d55 15%, #ffc94d 50%, #ff2d55 85%, transparent 100%) !important;\n  background-size: 100% 200% !important;\n  animation: rlUserBorderFlow 4s linear infinite !important;\n  opacity: 0.8 !important;\n}\n\n/* ─── 渲染器滚动条（秩序青主题） ─── */\n.rili-markdown-renderer ::-webkit-scrollbar {\n  width: 8px !important;\n  height: 8px !important;\n}\n.rili-markdown-renderer ::-webkit-scrollbar-track {\n  background: #05070c !important;\n  border-radius: 4px !important;\n}\n.rili-markdown-renderer ::-webkit-scrollbar-thumb {\n  background: linear-gradient(180deg, rgba(77, 208, 255, .7), rgba(46, 63, 104, .7)) !important;\n  border-radius: 4px !important;\n  border: 1px solid rgba(77, 208, 255, .3) !important;\n}\n.rili-markdown-renderer ::-webkit-scrollbar-thumb:hover {\n  background: linear-gradient(180deg, rgba(77, 208, 255, .85), rgba(77, 208, 255, .5)) !important;\n  box-shadow: 0 0 8px rgba(77, 208, 255, .5) !important;\n}\n\n/* ─── 行动选项按钮（shell 外防御样式） ─── */\n.rili-markdown-renderer [data-action=\"append-textinput\"] {\n  display: block !important;\n  padding: 10px 14px !important;\n  margin: 6px 0 !important;\n  background: linear-gradient(155deg, rgba(14, 18, 32, .92), rgba(8, 10, 16, .94)) !important;\n  border: 1px solid rgba(77, 208, 255, .35) !important;\n  border-left: 3px solid #4dd0ff !important;\n  border-radius: 6px !important;\n  color: #4dd0ff !important;\n  font-family: 'LXGW WenKai', 'Noto Serif SC', 'Source Han Serif SC', 'STSong', 'SimSun', 'Georgia', serif !important;\n  font-size: 14px !important;\n  line-height: 1.6 !important;\n  cursor: pointer !important;\n  transition: all 0.25s ease !important;\n  word-break: break-word !important;\n  box-shadow: 0 2px 8px rgba(5, 7, 12, .3), inset 0 1px 0 rgba(77, 208, 255, .08) !important;\n}\n.rili-markdown-renderer [data-action=\"append-textinput\"]:hover {\n  transform: translateX(3px) !important;\n  border-color: #4dd0ff !important;\n  border-left-color: #4dd0ff !important;\n  box-shadow: 0 4px 14px rgba(77, 208, 255, .35), inset 0 1px 0 rgba(180, 230, 255, .15), 0 0 18px -4px rgba(77, 208, 255, .5) !important;\n  background: linear-gradient(155deg, rgba(20, 26, 44, .96), rgba(14, 18, 32, .96)) !important;\n  color: #ffc94d !important;\n}\n.rili-markdown-renderer [data-action=\"append-textinput\"]:active {\n  transform: translateX(1px) scale(0.98) !important;\n  box-shadow: 0 1px 4px rgba(77, 208, 255, .3), inset 0 2px 4px rgba(5, 7, 12, .4) !important;\n}\n\n/* ============================================================\n   26. rlsec 标签页互斥 · radio版\n   互斥由17节radio:checked链实现（平台剥离details的name属性，\n   但input的name正常），无需焦点兜底与多开标题条\n   ============================================================ */\n\n@container rlbox (max-width: 460px) {\n  .rlmain .rlbtn span {\n    font-size: 9px;\n    letter-spacing: 0;\n  }.rlmain .rlbtn i {\n    width: 22px;\n    height: 22px;\n    -webkit-mask-size: 22px 22px;\n    mask-size: 22px 22px;\n  }\n  .rlmain .rlslot {\n    padding: 0 9px;\n  }\n  .rlmain .rlslot > u > s {\n    display: none;\n  }\n  .rlmain .rlnavbar {\n    height: 66px;\n  }\n  .rlmain .rlactbd {\n    max-height: 304px;overflow-y: auto;\n  }\n  .rlmain .rlaci > span {\n    font-size: 11.5px;\n    line-height: 1.55;\n  }\n  .rlmain .rlsthd {\n    height: 40px;\n    padding-left: 11px;\n  }\n  .rlmain .rlstclose::after {\n    display: none;\n  }\n  .rlmain .rlstclose {\n    width: 30px;\n    padding: 0;\n    justify-content: center;\n  }\n}\n\nheader.flex.h-12.items-center.justify-between.gap-2.border-b.px-4.transition-\\[width\\,height\\].ease-linear.md\\:h-16 {\n  position: relative !important;\n  height: 2rem !important;\n  min-height: 2rem !important;\n  padding-left: 0.25rem !important;\n  padding-right: 0.25rem !important;\n  background: linear-gradient(180deg, rgba(8, 12, 20, 0.97) 0%, rgba(4, 8, 16, 0.93) 100%) !important;\n  border-bottom: none !important;\n  border-left: 1px solid rgba(77, 208, 255, 0.18) !important;\n  border-right: 1px solid rgba(77, 208, 255, 0.18) !important;\n  border-radius: 0 0 3px 3px !important;\n  box-shadow:\n    inset 0 1px 0 rgba(77, 208, 255, 0.08),\n    inset 0 0 40px rgba(77, 208, 255, 0.04),\n    0 2px 12px rgba(0, 0, 0, 0.6) !important;\n  backdrop-filter: blur(12px) saturate(1.3) !important;\n  -webkit-backdrop-filter: blur(12px) saturate(1.3) !important;\n  color: rgba(200, 230, 255, 0.92) !important;\n  text-shadow: 0 0 8px rgba(77, 208, 255, 0.3) !important;\n  transition: box-shadow 0.3s ease, border-color 0.3s ease, background 0.3s ease !important;\n}\n\nheader.flex.h-12.items-center.justify-between.gap-2.border-b.px-4.transition-\\[width\\,height\\].ease-linear.md\\:h-16::before {\n  content: \"\" !important;\n  position: absolute !important;\n  bottom: -2px; left: 0; right: 0!important;\n  height: 2px !important;\n  background: linear-gradient(90deg, transparent0%, rgba(77, 208, 255, 0.6) 15%, #4dd0ff 35%, #ffc94d 50%, #4dd0ff 65%, rgba(77, 208, 255, 0.6) 85%, transparent 100%) !important;\n  background-size: 200% 100% !important;\n  animation:rlHeaderBorderFlow 4s linear infinite !important;\n  opacity: 0.9 !important;\n  filter: blur(0.5px) !important;\n}\n\nheader.flex.h-12.items-center.justify-between.gap-2.border-b.px-4.transition-\\[width\\,height\\].ease-linear.md\\:h-16:hover {\n  background: linear-gradient(180deg, rgba(10, 16, 28, 0.98) 0%, rgba(6, 10, 20, 0.95) 100%) !important;\n  border-left-color: rgba(77, 208, 255, 0.32) !important;\n  border-right-color: rgba(77, 208, 255, 0.32) !important;\n  box-shadow:\n    inset 0 1px 0 rgba(77, 208, 255, 0.14),\n    inset 0 0 60px rgba(77, 208, 255, 0.06),\n    0 4px 20px rgba(0, 0, 0, 0.7),\n    0 0 16px rgba(77, 208, 255, 0.08) !important;\n  color: rgba(220, 240, 255, 1) !important;\n  text-shadow: 0 0 10px rgba(77, 208, 255, 0.4) !important;\n}\n\n.is-assistant > div::after {\n  content: \"\" !important;\n  position: absolute !important;\n  bottom: -1px; left: 10%; right: 10% !important;\n  height: 2px !important;\n  background: linear-gradient(90deg, transparent0%, #4dd0ff 20%, #4dd0ff 40%, #ffc94d 50%, #4dd0ff 60%, #4dd0ff 80%, transparent 100%) !important;\n  background-size: 200% 100% !important;\n  animation: rlHeaderBorderFlow 4s linear infinite !important;\n  opacity: 0.5 !important;\n  border-radius: 1px !important;\n}\n\n.is-assistant > div::after {\n  content: \"\" !important;\n  position: absolute !important;\n  bottom:0; left: 0; right: 0 !important;\n  height: 2px !important;\n  background: linear-gradient(90deg, transparent 0%, #4dd0ff 20%, #4dd0ff 40%, #ffc94d 50%, #4dd0ff 60%, #4dd0ff 80%, transparent 100%) !important;\n  background-size: 200% 100% !important;\n  animation: rlHeaderBorderFlow 4s linear infinite !important;\n  opacity: 0.6 !important;\n}\n\n.is-user > div::after {\n  content: \"\" !important;\n  position: absolute !important;\n  bottom: 0 !important;\n  left: 0 !important;\n  right: 0 !important;\n  height: 2px !important;\n  background: linear-gradient(90deg, transparent 0%, #4dd0ff 20%, #4dd0ff 40%, #ffc94d 50%, #4dd0ff 60%, #4dd0ff 80%, transparent 100%) !important;\n  background-size: 200% 100% !important;\n  animation: rlHeaderBorderFlow 4s linear infinite !important;\n  opacity: 0.5 !important;\n}\n\n.is-assistant > div::after {\n  content: \"\" !important;\n  position: absolute !important;\n  bottom: 0 !important;\n  left: 0 !important;\n  right: 0 !important;\n  height: 2px !important;\n  background: linear-gradient(90deg, transparent 0%, #4dd0ff 20%, #4dd0ff 40%, #ffc94d 50%, #4dd0ff 60%, #4dd0ff 80%, transparent 100%) !important;\n  background-size: 200% 100% !important;\n  animation: rlHeaderBorderFlow 4s linear infinite !important;\n  opacity: 0.6 !important;\n}\n\n.is-user > div::after {\n  content: \"\" !important;\n  position: absolute !important;\n  bottom: 0 !important;\n  left: 0 !important;\n  right: 0 !important;\n  height: 2px !important;\n  background: linear-gradient(90deg, transparent 0%, #ff2d55 20%, #ff2d55 40%, #ffc94d 50%, #ff2d55 60%, #ff2d55 80%, transparent 100%) !important;\n  background-size: 200% 100% !important;\n  animation: rlHeaderBorderFlow 4s linear infinite !important;\n  opacity: 0.5 !important;\n}\n\n\n\ndiv#nav-middle.flex.min-w-0.flex-1.h-full.items-center.justify-center.gap-2.overflow-hidden:hover {\n  border-left-color: rgba(77, 208, 255, 0.25) !important;\n  border-right-color: rgba(77, 208, 255, 0.25) !important;\n  box-shadow: inset 0 0 50px rgba(77, 208, 255, 0.05), 0 0 10px rgba(77, 208, 255, 0.08) !important;\n  color: rgba(77, 208, 255, 1) !important;\n  text-shadow: 0 0 8px rgba(77, 208, 255, 0.35) !important;\n}\n\ndiv#nav-middle.flex.min-w-0.flex-1.h-full.items-center.justify-center.gap-2.overflow-hidden::after {\n  content: \"\" !important;\n  position: absolute !important;\n  bottom: 0; left: 0; right: 0 !important;\n  height: 1px !important;\n  background: linear-gradient(90deg, transparent 0%, rgba(77, 208, 255, 0.4) 30%, rgba(255, 201, 77, 0.5) 50%, rgba(77, 208, 255, 0.4) 70%, transparent 100%) !important;\n  background-size: 200% 100% !important;\n  animation:rlHeaderBorderFlow 4s linear infinite !important;\n  opacity: 0.7 !important;\n}\n\n.rlmain {\n  height: calc(100vh - 210px) !important;\n  max-height: 780px !important;\n  min-height: 0 !important;\n  overflow: hidden !important;\n}\n\n.rlmain .rlview {\n  min-height: 0 !important;\n}\n\n.rlmain .rlbody {\n  flex: 1 1 auto !important;\n  min-height: 0 !important;\n  overflow-y: auto !important;\n}\n\n@media (max-width: 520px) {\n  .rlmain {\n    height: calc(100vh - 250px) !important;\n    max-height: calc(100vh - 250px) !important;\n    width: calc(100% + 12px) !important;\n    margin-left: -12px !important;\n  }\n}\n\n/* ============================================================\n   27. 手机端降耗层 —— 关闭高成本特效，保留布局与交互\n   无限动画/backdrop-filter/blur滤镜是手机GPU持续重绘三大来源；\n   transition:all会连带布局属性引发反复重排，收窄为颜色类过渡。\n   ============================================================ */\n@media (max-width: 520px) {\n\n  /* 27-1 停掉全部循环动画（流光/呼吸/漂移/慢速旋转均为纯装饰） */\n  .rlmain *,\n  .rlmain *::before,\n  .rlmain *::after,\n  .is-assistant *,\n  .is-user *,\n  nav header,\n  nav header::before {\n    animation: none !important;\n  }\n\n  /* 27-2 去掉模糊与滤镜（backdrop-filter在手机上开销最大） */\n  .rlmain,\n  .rlmain *,\n  .is-assistant > div,\n  .is-user > div,\n  nav header {\n    -webkit-backdrop-filter: none !important;\n    backdrop-filter: none !important;\n    filter: none !important;\n  }\n\n  /* 27-3 transition:all收窄为颜色/透明度，避免布局属性重排 */\n  .rlmain * {\n    transition: color .2s ease, background-color .2s ease, border-color .2s ease, opacity .2s ease !important;\n  }\n}","options":{"items":[{"order":0,"label":"锁定角色","type":"SET-INPUT","value":"（锁定{角色名}/解锁{角色名}）+ 行动"}]},"language":"zh","containsNSFW":true,"publicAccess":true,"deletedAt":null,"isAnonymous":false,"enableSafeguard":false,"defaultModelSettings":{"modelSettings":{}},"totalConversations":65,"totalMessages":560,"totalCreditsUsed":1046227,"totalTokensUsed":32046560,"totalPlayedUsers":26,"deeplyPlayed":11,"fixedPromptLength":28708,"lorebookLength":980459,"author":{"id":"j1ANNvV1JdcHoo9SXoAWWuH0n70zAPuZ","name":"我去了是巨乳","displayUsername":"2523912862","username":"2523912862"},"cardsTags":[],"cardsVoices":[],"prompt":null,"promptSizeBytes":null}