/* ============================================================
   naming/main 专用覆盖层（在 base.css 之后加载）
   Paper Clinical Sci-Fi 布局 · 2026-09-17 清理版

   本次清理把原文件的两代规则（早期 daylight 覆盖层 + P0-A /
   Paper Clinical 补丁层）逐属性合并为单一来源，删除被完全
   覆盖的死规则；最终渲染与清理前一致。
   基础样式位于 base.css，本文件只写覆盖与扩展。
   修改布局请只改本文件；备份见 naming/backups/。
   ============================================================ */

/* ---------- 基础 ---------- */
:root{--ink:#232a36;--accent:#607f9f;--game-serif:"Songti SC","Noto Serif CJK SC",serif}
*{box-sizing:border-box}
button{cursor:pointer;font-family:inherit}
:focus{outline:none!important}
/* 游戏内文字统一恢复项目最初的 Songti SC / Noto Serif CJK SC 字体栈。 */
body{color:var(--ink);font-family:var(--game-serif);-webkit-font-smoothing:antialiased}
#task-board,#task-board header,#task-board li,.tool-button,.tool-button>span,#profile h3,#profile p,#pad,.manual-page,.manual-pagination button,#cup-note,#inputbar,#chat .bub{font-family:inherit;-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
#yarn-stage{position:fixed;inset:0;z-index:24;width:100%;height:100%;pointer-events:none}
#action-hint{display:none}

/* ---------- 开机画面：操作员姓名登记（日志播完淡入 · 始终固定在底部不被遮挡） ---------- */
#bootscreen{display:flex;flex-direction:column}
.boothead,#brand-ascii{flex:none}
.brand-ascii{flex:none}
#bootlog{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(115,255,140,.3) transparent}
/* visibility 淡入立即切换（保证输入框可自动聚焦），仅淡出才延迟到动画结束 */
#operator-panel{flex:none;position:relative;z-index:2;margin-top:12px;margin-bottom:clamp(40px,9vh,96px);display:flex;flex-direction:column;gap:10px;width:min(340px,100%);padding:18px 20px;background:rgba(3,10,5,.55);border:1px solid rgba(115,255,140,.28);box-shadow:0 0 24px rgba(86,255,126,.12),inset 0 0 18px rgba(86,255,126,.05);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .6s ease,transform .6s ease,visibility 0s linear .6s}
#operator-panel.revealed{opacity:1;visibility:visible;transform:none;transition:opacity .6s ease,transform .6s ease,visibility 0s linear 0s}
#operator-panel label{color:#a1ffac;font-size:.78em;letter-spacing:.16em}
/* 输入框固定占满剩余宽度，按钮贴右侧同一行；按钮始终占位（visibility 切换），故输入框长度恒定 */
.operator-row{display:flex;align-items:center;gap:14px}
#operator-name{flex:1 1 auto;min-width:0;padding:10px 12px;background:rgba(0,0,0,.35);border:1px solid #73ff8c;color:#9cff9e;font:inherit;letter-spacing:.08em;text-shadow:inherit;outline:none;transition:box-shadow .2s,border-color .2s}
#operator-name::placeholder{color:rgba(156,255,158,.35)}
#operator-name:focus{border-color:#80ff93;box-shadow:0 0 16px rgba(86,255,126,.3)}
#operator-hint{color:rgba(161,255,172,.55);font-size:.74em;letter-spacing:.08em;min-height:1.1em}
/* 进入按钮：无方框、仅虚线下划；用 visibility+opacity 显隐以保留占位，输入框长度不随之变化 */
#bootenter{flex:none;display:block;visibility:hidden;opacity:0;margin:0;padding:2px 1px 3px;background:transparent;border:0;border-bottom:1px dashed rgba(115,255,140,.55);color:#9cff9e;font-size:.95em;letter-spacing:.14em;box-shadow:none;animation:none;white-space:nowrap;transition:opacity .3s ease,color .2s,border-color .2s}
#bootenter:hover,#bootenter:focus-visible{color:#c1ffba;background:transparent;border-bottom:1px solid #80ff93;outline:none;box-shadow:none}

/* ---------- 命令行表现形式（已停用，保留备用）----------
   启用：取消下面注释 + 换用 index.html 里 #operator-panel 的命令行结构（见该文件注释），
   并注释掉上面的 .operator-row / #bootenter / 卡片式 #operator-name 规则。
@font-face{font-family:"Zpix";src:url("../assets/fonts/zpix.woff2") format("woff2");font-display:swap}
.operator-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:12px;font-family:"Zpix","Lucida Console","Courier New",monospace;font-size:clamp(16px,1.9vw,24px);letter-spacing:.1em;-webkit-font-smoothing:none}
命令行版 #operator-panel label{color:#73ff8c;text-shadow:0 0 10px rgba(115,255,140,.6)}
命令行版 #operator-name{flex:1 1 150px;min-width:110px;padding:2px 6px;background:transparent;border:0;color:#73ff8c;font:inherit;letter-spacing:.1em;text-shadow:inherit;outline:none;caret-color:#73ff8c}
注：命令行版无 #bootenter 按钮，Enter 提交；ui.js 的 runBoot 需同步去掉 bootenter 相关代码。
---------------------------------------------------------- */
#mxn-session-tasks{display:none!important}
/* 视口偏矮时压缩 ASCII 与间距，保证登记卡完整可见 */
@media (max-height:780px){#bootscreen{padding:clamp(14px,3vw,36px)}.brand-ascii{font-size:clamp(6px,.9vw,10px);margin-bottom:clamp(8px,2vh,18px)}#operator-panel{padding:14px 16px;gap:8px;margin-top:10px;margin-bottom:clamp(24px,6vh,52px)}#operator-name{padding:8px 10px}}

/* ---------- 顶栏与会话标识 ---------- */
.room-header{position:fixed;top:2.5%;left:3.5%;right:3.5%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:42px;z-index:9;border-bottom:1px solid rgba(73,84,101,.4);font-size:12px;letter-spacing:.14em}
.room-header button{border:0;background:transparent;color:var(--ink)}
.room-header #settings{justify-self:end}
#turn-counter{opacity:0;transition:opacity .35s}
#turn-counter.visible{opacity:1}
.room-header #turn-counter{position:static;font:inherit;letter-spacing:inherit;color:inherit}
.session-ident{display:flex;align-items:center;gap:16px;color:#313b48;opacity:0;visibility:hidden;transition:opacity .35s ease}
.session-ident i{display:block;width:1px;height:18px;background:rgba(73,84,101,.35)}
body.subject-visible .session-ident{opacity:1;visibility:visible}
.system-tools{justify-self:end;display:flex;align-items:center;gap:12px}
.system-icon{display:grid;place-items:center;width:44px;height:44px;padding:0!important;border:0!important;background:transparent!important;color:#273142!important;transition:color .16s,background .16s,transform .16s}
.system-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.system-icon:hover{color:var(--accent);background:rgba(238,240,235,.62)!important;transform:translateY(-1px)}

/* ---------- 左侧档案栏与对话流 ---------- */
.archive-label{position:fixed;top:10.5%;left:3.5%;width:27%;max-width:calc(100vw - 7%);min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;overflow:hidden;padding:8px 0;border-bottom:1px solid rgba(73,84,101,.38);color:#283343;font-size:13px;letter-spacing:.12em;white-space:nowrap;z-index:8}
.archive-label small{min-width:0;overflow:hidden;margin-top:3px;color:#8792a0;font:10px var(--game-serif);letter-spacing:.12em;text-overflow:ellipsis;white-space:nowrap}
#chat{left:3.5%;top:15%;transform:none;width:27%;height:56%;max-height:none;overflow-x:hidden;gap:13px;padding:9px 8px 18px 0;z-index:7;scrollbar-width:thin;scrollbar-color:#7a817b transparent;mask-image:linear-gradient(transparent,#000 4%,#000 96%,transparent);background:linear-gradient(90deg,rgba(233,237,243,.93),rgba(233,237,243,.72) 84%,transparent)}
.bub{position:relative;width:92%;max-width:none;padding:13px 15px 12px 17px!important;border-radius:0!important;line-height:1.75;box-shadow:none!important;backdrop-filter:none!important;animation:dialogueIn .35s both}
.bub:before{content:attr(data-speaker);display:block;margin-bottom:5px;color:#758293;font:11px var(--game-serif);letter-spacing:.1em}
.bub.npc{align-self:flex-start;max-width:100%;background:rgba(247,248,244,.78);border:0;border-left:2px solid #5d6878;font-size:15px}
.bub.me{align-self:flex-end;background:rgba(143,160,184,.13);border:0;border-left:1px solid rgba(94,110,133,.45);color:#303a48;font-size:14px}
.bub.npc.selectable{outline:1px dashed rgba(96,127,159,.76);outline-offset:2px}
@keyframes dialogueIn{from{opacity:0;transform:translateY(7px)}}

/* ---------- 右上状态轨迹 ---------- */
#state-track{position:fixed;right:3.5%;top:8.5%;width:19%;max-width:260px;min-width:200px;z-index:7;color:#475361;pointer-events:none}
#state-track .track-title{font-size:12px;letter-spacing:.16em;color:#283343;padding:9px 0 6px;border-bottom:1px solid rgba(73,84,101,.38)}
#state-track .track-title small{float:right;margin-top:2px;font:9px var(--game-serif);letter-spacing:.12em;color:#8792a0}
#state-track svg{display:block;width:min(100%,190px);height:auto;margin:8px auto 0;overflow:visible}
.track-ring{fill:rgba(238,241,244,.42);stroke:#526071;stroke-width:1.1}
.sector{stroke:none}
.sector-nw{fill:rgba(143,160,184,.075)}.sector-ne{fill:rgba(193,204,216,.12)}.sector-sw{fill:rgba(110,106,135,.07)}.sector-se{fill:rgba(110,106,135,.115)}
.track-axis{fill:none;stroke:#465467;stroke-width:1;opacity:.72}
.track-axis-label{fill:#344154;font:16px var(--game-serif);font-weight:400;letter-spacing:.02em}
#state-route-path{fill:none;stroke:#7d8792;stroke-width:1.25;stroke-dasharray:2.5 5;stroke-linecap:round;stroke-linejoin:round;opacity:.7;filter:none}
#state-route-dot{fill:#f4f3ea;stroke:#b57e1e;stroke-width:2.4;filter:drop-shadow(0 1px 4px rgba(181,126,30,.45));transform-box:fill-box;transform-origin:center;animation:stateDotBreath 2.8s ease-in-out infinite;transition:cx .6s ease,cy .6s ease}
#state-track:not(.has-samples) #state-route-dot{display:none}
@keyframes stateDotBreath{0%,100%{transform:scale(.9);filter:drop-shadow(0 0 2px rgba(181,126,30,.32))}50%{transform:scale(1.22);filter:drop-shadow(0 0 8px rgba(181,126,30,.72))}}

/* ---------- 罗盘下方任务栏 ---------- */
#task-board{position:fixed;right:3.5%;top:40%;bottom:auto;width:19%;max-width:260px;min-width:200px;display:flex;flex-direction:column;z-index:7;color:#4d5865}
#task-board header{display:flex;align-items:baseline;justify-content:space-between;padding:0 0 7px;border-bottom:1px solid rgba(73,84,101,.35);font-size:13px;letter-spacing:.16em;color:#283343}
#task-board header small{font-family:inherit;font-size:9px;letter-spacing:.04em;color:#8792a0;white-space:nowrap}
#task-board ol{display:flex;flex:0 0 auto;min-height:0;max-height:min(24vh,260px);flex-direction:column;justify-content:flex-start;gap:8px;margin:10px 0 11px;padding:0 4px 0 0;overflow-x:hidden;overflow-y:auto;list-style:none;scrollbar-width:thin;scrollbar-color:#a5ada3 transparent;overscroll-behavior:contain;scroll-behavior:smooth}
#task-board li{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:start;gap:6px;position:relative;padding:5px 4px 5px 2px;border-left:2px solid transparent;color:#4d5865;font-size:12px;line-height:1.45;opacity:.66;cursor:default;transition:background .16s,border-color .16s,opacity .16s}
#task-board li.active{border-left-color:#607f9f;background:rgba(96,127,159,.06);color:#394553;opacity:1;cursor:context-menu}
#task-board li.complete{opacity:.48}
#task-board li.ignored{border-left-color:#8b744c;opacity:.48}
#task-board li.ignored .task-copy{text-decoration:line-through;text-decoration-color:rgba(139,116,76,.6)}
/* 当前任务尚未被判定：与"已推进"区分开，提示玩家这条要靠真实结果推进。 */
#task-board li.pending-signal{border-left-color:#a8794a;background:rgba(168,121,74,.07)}
#task-board li.pending-signal .task-state{color:#a8794a}
#task-board li:focus-visible{outline:2px solid rgba(96,127,159,.72);outline-offset:1px}
.task-round{color:#8792a0;font-size:10px;line-height:1.6;font-variant-numeric:tabular-nums}
.task-state{color:#8b744c;font-size:9px;line-height:1.6;white-space:nowrap}
.task-system-log{margin:-3px 0 2px 22px;color:#8b744c;font-size:9px;line-height:1.4;letter-spacing:.06em}

/* ---------- 右下工具坞 ---------- */
:root{--tool-dock-width:clamp(120px,calc(19.8vw - 43px),320px)}
#tool-dock{position:fixed;left:72.5%;right:auto;top:auto;bottom:calc(28% - 23px);transform:translateX(-50%);width:var(--tool-dock-width);min-width:120px;display:grid;grid-template-columns:1.3fr .85fr .85fr;align-items:end;gap:clamp(3px,.6vw,12px);padding:0;border:0;z-index:10}
.tool-button,#profile-spot,#prompt-spot,#padspot{position:relative!important;inset:auto!important;width:100%!important;height:108px!important;display:grid;grid-template-rows:82px 18px;place-items:end center;gap:2px;padding:3px!important;border:0!important;border-radius:0!important;background:transparent!important;color:#354252!important;font-size:10px!important;letter-spacing:.08em!important;box-shadow:none!important;transform-origin:50% 100%;transition:transform .16s,color .16s,filter .16s}
.tool-button svg{align-self:end;width:min(86px,100%);height:auto;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 7px 5px rgba(12,18,25,.20))}
.tool-button>span{color:#c6cfd3;text-shadow:0 1px 2px rgba(9,14,20,.45);font-family:inherit;font-size:12px!important;line-height:1.35;letter-spacing:.04em!important}
.tool-button .object-paper{fill:rgba(230,234,234,.86);stroke:#596676}.tool-button .object-back{fill:#c9d0d7;stroke:#596676}.tool-button .object-mid{fill:#d9dee0}.tool-button .object-tab{fill:#8fa0b8;stroke:#596676}.tool-button .object-bind{fill:none;stroke:#596676;stroke-width:1.35}.tool-button .manual-lines{fill:none;stroke:#8e9aa5;stroke-width:.8;stroke-linecap:round}
.tool-button .monitor-shell{fill:#e9edf0;stroke:#778494;stroke-width:1.1;stroke-linejoin:round}.tool-button .monitor-screen{fill:#f4f5f2;stroke:#9ba5ae;stroke-width:.8;stroke-linejoin:round}.tool-button .monitor-content{fill:none;stroke:#a3adb6;stroke-width:.8;stroke-linecap:round}.tool-button .monitor-status{fill:#b57e1e;stroke:none}.tool-button .monitor-base{fill:#dfe4e6;stroke:#778494;stroke-width:.9;stroke-linejoin:round}
.tool-button .scissor-blade{fill:rgba(230,234,234,.72);stroke:#596676;stroke-width:1.35}.tool-button .scissor-pivot{fill:#b57e1e;stroke:#e9e3d6;stroke-width:.8}.tool-button .scissor-neck{fill:none;stroke:#596676;stroke-width:1.35}.tool-button .scissor-handle{fill:rgba(230,234,234,.72);stroke:#596676;stroke-width:1.35}
#padspot svg{color:#596676}
#desk-objects{position:fixed;left:66%;bottom:calc(28% - 4px);width:min(150px,14vw);height:112px;display:block;z-index:10;pointer-events:none}
#profile-spot{position:relative!important;width:100%!important;height:112px!important;grid-template-rows:1fr;transform:perspective(520px) rotateY(-2deg)!important}
#profile-spot:before{display:none}
#profile-spot svg{position:absolute;bottom:-4px;width:min(128px,94%);height:auto;filter:drop-shadow(0 2px 1px rgba(12,18,25,.1))}
#profile-spot>span{position:absolute;bottom:-20px;width:100%;color:#c6cfd3;text-align:center;text-shadow:0 1px 2px rgba(9,14,20,.45)}
#tool-dock #profile-spot{height:108px!important;grid-template-rows:82px 18px}
#tool-dock #profile-spot svg{position:static;bottom:auto;width:min(108px,100%);height:auto;transform:translateY(4px)}
#tool-dock #prompt-spot svg,#tool-dock #padspot svg{width:min(68px,100%)}
#prompt-spot,#padspot{transform:none}
.tool-button:hover,.tool-button:focus-visible{color:#4f6f90!important;filter:drop-shadow(0 4px 5px rgba(96,127,159,.2))}
#profile-spot:hover,#profile-spot:focus-visible{transform:perspective(520px) rotateY(-2deg) translateY(-4px)!important}
#prompt-spot:hover,#prompt-spot:focus-visible,#padspot:hover,#padspot:focus-visible{transform:translateY(-4px)}
#clue-count{position:absolute;right:-6px;top:-7px;display:grid;place-items:center;min-width:21px;height:21px;padding:0 5px;border:1px solid #f1eee5;border-radius:999px;background:#9b7440;color:#fff;font:11px var(--game-serif);box-shadow:0 3px 10px rgba(34,40,36,.2)}
#padspot.has-new-clue #clue-count{animation:cluePulse 1.5s ease-in-out infinite}
@keyframes cluePulse{50%{transform:translateY(-2px);box-shadow:0 5px 16px rgba(139,110,61,.42)}}

/* ---------- 来访者资料卡 ---------- */
#profile{position:fixed;right:18.5%;bottom:31%;width:min(320px,25vw);padding:22px 24px;background:rgba(242,243,235,.97);border:1px solid #7e897d;box-shadow:8px 12px 38px rgba(35,43,38,.18);z-index:27;animation:terminalOpen .28s ease both}
#profile small{font:10px var(--game-serif);color:#8c7449}
#profile h3{font-weight:normal;font-size:16px}
#profile p{font-size:12px;line-height:1.8}
#close-profile{float:right;background:none;border:0}
@keyframes terminalOpen{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}

/* ---------- 窗下工作台：水杯 ---------- */
#cup-spot{position:fixed;left:33%;bottom:calc(28% - 4px);z-index:10;width:62px;height:82px;padding:0;border:0;background:transparent;color:#596676;pointer-events:auto;transform-origin:50% 100%;transition:transform .2s ease,filter .2s ease}
#cup-spot svg{position:absolute;top:auto;right:0;bottom:0;left:0;width:min(62px,100%);height:auto;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 5px 4px rgba(22,28,36,.24))}
#cup-spot .cup-body{fill:rgba(230,234,234,.86)}#cup-spot .cup-rim{stroke:#81909e}#cup-spot .cup-shadow{opacity:.45}
.cup-steam{position:absolute;top:24px;z-index:2;width:3px;height:23px;opacity:0;pointer-events:none;border-radius:50%;background:linear-gradient(transparent,rgba(100,112,122,.84) 32%,rgba(100,112,122,.64) 68%,transparent);filter:blur(.45px)}
.steam-one{left:34%}.steam-two{left:48%;animation-delay:-.42s}.steam-three{left:62%;animation-delay:-.84s}
#cup-spot.steaming .cup-steam{animation:cupSteam 1.35s ease-in-out infinite}
#cup-spot:hover{transform:none;filter:drop-shadow(0 0 6px rgba(181,126,30,.16))}
#cup-note{position:fixed;left:calc(33% - 60px);top:auto;bottom:calc(28% + 47px);z-index:12;width:max-content;max-width:min(150px,90vw);padding:6px 9px;background:rgba(241,242,235,.94);border-left:1px solid #a17a3d;color:#667068;font-size:11px;line-height:1.55;opacity:0;transform:translateY(5px);pointer-events:none;transition:.25s ease}
#cup-note.visible{opacity:1;transform:none}
@keyframes cupSteam{0%,100%{opacity:0;transform:translateY(6px) scaleX(.7)}18%{opacity:.82}55%{opacity:.68;transform:translate(2px,-5px) scaleX(1.35)}82%{opacity:.18;transform:translate(-1px,-12px) scaleX(1.8)}}

/* ---------- 剪断记录 / 问询索引卡（一个工具两页） ---------- */
/* 浮层一律贴在工具坞上方：面板压住工具按钮会让人无法切页或关闭。
   注意 #pad 必须保持「默认 display:none、点按钮后由 JS 设为 display:block」，
   因此这里不能再写 display（否则会盖掉隐藏态，导致面板常驻显示）。 */
#pad{position:fixed;right:3.5%;bottom:calc(28% + 52px);z-index:27;width:min(350px,28vw);max-height:50vh;padding:0;overflow:hidden;background:rgba(242,243,235,.97);border:1px solid #7e897d;border-radius:3px;box-shadow:8px 12px 38px rgba(35,43,38,.2),inset 22px 0 0 rgba(139,110,61,.045)}
#pad[data-view=prompts]{left:auto;right:18.5%;top:auto;bottom:calc(28% + 52px);width:min(380px,20.5vw);max-height:calc(72vh - 64px);overflow:hidden;flex-direction:column;transform:none;transform-origin:bottom right;background:linear-gradient(90deg,rgba(211,214,205,.98) 0 13px,rgba(242,242,234,.99) 13px 50%,rgba(236,238,232,.99) 50%);border-color:#8d9287;box-shadow:9px 14px 38px rgba(35,43,38,.2),inset 14px 0 #65717c,inset 15px 0 rgba(255,255,255,.5)}
#pad[data-view=prompts].is-open{animation:manualOpenAside .42s cubic-bezier(.2,.72,.2,1) both}
#pad[data-view=clues]{background:rgba(242,243,235,.98);box-shadow:7px 11px 32px rgba(35,43,38,.18),inset 18px 0 0 rgba(110,106,135,.045)}
.notebook-head{flex:none;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 16px 10px 25px;border-bottom:1px solid #abb3a8}
.notebook-head small{font:10px var(--game-serif);letter-spacing:.12em;color:#8b744c}
.notebook-head h4{margin:5px 0 0!important;color:#333d37!important;font-size:17px!important;letter-spacing:.12em!important}
.notebook-head #close-pad{width:28px;height:28px;border:0;border-radius:50%;background:rgba(96,108,99,.09);color:#69736d;font-size:18px;line-height:1}
.notebook-panel{max-height:min(34vh,290px);overflow:auto;padding:11px 16px 15px 25px;scrollbar-width:thin;scrollbar-color:#a5ada3 transparent}
#prompt-panel{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;max-height:none;overflow:hidden;padding:12px 21px 12px 28px}
.notebook-empty,.notebook-lead{margin:4px 0 11px;color:#7b847e;font-size:11px;line-height:1.7}
.clue-entry{padding:11px 0;border-top:1px dashed #b6bdb2}
.clue-entry:first-child{border-top:0}
.clue-entry-head{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:6px}
.clue-entry-head small{color:#9aa198;font:9px var(--game-serif)}
.clue-entry-head strong{font-size:13px;font-weight:normal;letter-spacing:.06em}
.clue-entry-head span{padding:2px 6px;border-radius:999px;background:#e0e4dc;color:#69736d;font-size:10px}
.clue-entry.tier-core .clue-entry-head span{background:#e9ddbd;color:#77591e}
.clue-entry.tier-shallow .clue-entry-head span{background:#dde4d9;color:#50604f}
.clue-entry p{margin:7px 0 0 28px;color:#667069;font-size:10px;line-height:1.65}
.manual-pages{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#a5ada3 transparent;perspective:900px;transform-style:preserve-3d}
.manual-page{min-height:250px;padding:4px 6px 12px}
.manual-page.active.turn-next{animation:manualPageTurnNext .34s cubic-bezier(.2,.72,.2,1) both;transform-origin:0 50%;backface-visibility:hidden}
.manual-page.active.turn-prev{animation:manualPageTurnPrev .34s cubic-bezier(.2,.72,.2,1) both;transform-origin:100% 50%;backface-visibility:hidden}
.manual-page h5{margin:6px 0 11px;color:#3f4943;font-size:14px;font-weight:normal;letter-spacing:.1em}
.manual-page-prompts{padding-top:7px}
.basic-prompts{margin:0}
.basic-prompts-head{position:relative;margin:0 0 12px;padding:0 2px 12px;border-bottom:1px solid rgba(82,111,137,.26)}
.basic-prompts-head small{color:#718ba1;font:9px var(--game-serif);letter-spacing:.15em}
.basic-prompts-head h5{margin:5px 0 4px;font-size:15px;letter-spacing:.12em}
.basic-prompts-head p{margin:0;color:#718294;font-size:10px;line-height:1.55}
#basic-prompt-list{display:grid;gap:8px}
.basic-prompts .ph{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr) 15px;align-items:center;gap:8px;width:100%;min-height:48px;padding:9px 10px!important;border:1px solid rgba(82,111,137,.28)!important;border-radius:5px;background:linear-gradient(110deg,rgba(255,255,255,.72),rgba(225,235,243,.45))!important;box-shadow:0 3px 10px rgba(48,73,94,.07),inset 0 1px rgba(255,255,255,.82);color:#3f566a!important;font:inherit;font-size:11px!important;line-height:1.5!important;text-align:left;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}
.basic-prompts .ph:before{content:'';position:absolute;left:-1px;top:8px;bottom:8px;width:2px;border-radius:2px;background:#7896ae;opacity:.42;transition:opacity .18s ease}
.basic-prompts .ph small{color:#7890a4;font:9px var(--game-serif);letter-spacing:.08em}
.basic-prompts .ph span{min-width:0}
.basic-prompts .ph i{color:#8ca0b0;font-style:normal;font-size:12px;transition:transform .18s ease,color .18s ease}
.basic-prompts .ph:hover,.basic-prompts .ph:focus-visible{transform:translateX(3px);border-color:rgba(74,112,144,.62)!important;background:linear-gradient(110deg,rgba(255,255,255,.9),rgba(213,229,241,.7))!important;box-shadow:0 6px 16px rgba(48,73,94,.12),inset 0 1px #fff;outline:0}
.basic-prompts .ph:hover:before,.basic-prompts .ph:focus-visible:before{opacity:1}
.basic-prompts .ph:hover i,.basic-prompts .ph:focus-visible i{color:#4f7390;transform:translate(2px,-2px)}
.manual-pagination{flex:none;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin:0 18px 0 27px;padding:9px 0 12px;border-top:1px solid #c2c4b9}
.manual-pagination button{padding:5px 0;border:0;background:transparent;color:#786742;font:11px var(--game-serif);letter-spacing:.03em;white-space:nowrap}
.manual-pagination button:last-child{text-align:right}
.manual-pagination button:disabled{color:#a5aaa0;opacity:.5;cursor:default}
.manual-page-index{display:grid;justify-items:center;gap:1px;color:#72796f;font-size:9px;line-height:1.25;white-space:nowrap}
.manual-page-index strong{font-size:10px;font-weight:normal;letter-spacing:.12em;color:#5a6258}
.manual-copy{margin:0;padding-left:16px;color:#59635d;font-size:12px;line-height:1.55}
p.manual-copy{padding:0}.manual-copy li+li{margin-top:3px}
.manual-caution{margin:8px 0 0;padding:6px 8px;border-left:2px solid #a17a3d;background:rgba(181,126,30,.06);color:#75694f;font-size:11px;line-height:1.5}
.manual-motto{display:block;margin-top:8px;color:#9a7a49;font:10px var(--game-serif);letter-spacing:.1em}
@keyframes manualPageTurnNext{from{opacity:.2;transform:rotateY(-8deg) translateX(-7px);filter:brightness(.92)}to{opacity:1;transform:none;filter:none}}
@keyframes manualPageTurnPrev{from{opacity:.2;transform:rotateY(8deg) translateX(7px);filter:brightness(.92)}to{opacity:1;transform:none;filter:none}}
@keyframes manualOpen{from{opacity:0;transform:translate(-50%,-47%) rotateX(-5deg) scale(.97)}to{opacity:1;transform:translate(-50%,-50%)}}
@keyframes manualOpenAside{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}

/* ---------- 底部发言区（深色整条，含「你的发言」标签与发送按钮） ---------- */
#inputbar{position:fixed;left:0;right:0;bottom:0;transform:none;width:auto;height:28%;display:grid;grid-template-columns:minmax(90px,11%) minmax(260px,1fr) 96px;align-items:center;gap:20px;padding:0 4%;z-index:8;background:linear-gradient(100deg,rgba(57,64,78,.97),rgba(29,34,41,.98));border-top:1px solid rgba(220,226,231,.18)}
#inputbar:before{content:'你的发言';color:#cbd3d5;font-size:13px;letter-spacing:.16em}
#msg{width:100%;padding:10px 4px;color:#edf0e6;border:0;border-bottom:1px solid rgba(212,220,219,.46);text-align:left;font-size:16px}
#msg::placeholder{color:#9da8aa}
.ibtn{justify-self:stretch;padding:10px 16px;border:1px solid rgba(218,225,221,.38);border-radius:2px;background:transparent;color:#e2e6e1;font-size:12px}
.ibtn:hover{color:#fff;border-color:rgba(111,142,172,.78);background:rgba(96,127,159,.1)}

/* ---------- 引导旁白（基线毛玻璃底板在 guide 层） ---------- */
#narrator{top:13%;width:min(390px,30vw);height:auto;min-height:120px;max-height:34vh;overflow:auto;padding:17px 20px 30px;border-radius:0;background:rgba(239,241,233,.94);border-color:#879086;box-shadow:0 16px 42px rgba(39,47,42,.14);font-size:12px;text-align:left;pointer-events:auto;cursor:pointer;z-index:23}
#narrator:hover{border-color:#718ba5}
#narratorText{white-space:pre-line}
#contcue{color:#756342;font:11px var(--game-serif)}

/* ---------- 聚焦遮罩与引导提示 ---------- */
/* 四块聚焦遮罩不能各自做 backdrop blur，否则块边界会出现横贯屏幕的合成黑缝。 */
#mask{animation:maskIn .3s ease}
#mask .mq{background:rgba(25,29,27,.58);backdrop-filter:none}
#ghint{width:min(360px,calc(100vw - 32px));transform:none;top:auto;left:16px;padding:10px 13px;background:rgba(35,42,39,.9);border-left:2px solid #fff;text-align:left;font-size:13px;line-height:1.75;pointer-events:none;z-index:29}
#ghint.can-continue{pointer-events:auto;cursor:pointer}
#ghint.can-continue:after{content:'  ▽ 点击继续';display:block;margin-top:5px;color:#d9c69a;font:11px var(--game-serif);letter-spacing:.06em}
@keyframes maskIn{from{opacity:0}to{opacity:1}}

/* ---------- AI 等待 / 错误 / 回退（留在对话档案栏内，不遮人物） ---------- */
#ai-status{order:999;align-self:stretch;display:grid;grid-template-columns:28px 1fr;gap:8px 10px;margin-top:2px;padding:11px 13px 12px;background:linear-gradient(105deg,rgba(243,245,239,.95),rgba(236,239,232,.9));border-left:2px solid #87958c;border-top:1px solid rgba(73,84,101,.14);box-shadow:0 7px 20px rgba(60,72,84,.09);color:#4e5953;animation:up .28s both}
#ai-status[data-state=error],#ai-status[data-state=timeout],#ai-status[data-state=invalid]{border-left-color:#8d625d;background:linear-gradient(105deg,rgba(244,238,232,.96),rgba(240,233,226,.92))}
#ai-status[data-state=fallback]{border-left-color:#8b744c}
.ai-breath{position:relative;width:24px;height:24px;margin-top:1px}
.ai-breath i{position:absolute;inset:8px;border:1px solid #78877e;border-radius:50%;animation:aiBreath 1.8s ease-out infinite}
.ai-breath i:nth-child(2){animation-delay:.45s}
.ai-breath i:nth-child(3){animation-delay:.9s}
@keyframes aiBreath{0%{transform:scale(.35);opacity:0}28%{opacity:.55}100%{transform:scale(1.5);opacity:0}}
.ai-status-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.ai-status-copy strong{font-size:12px;font-weight:normal;letter-spacing:.08em}
.ai-status-copy span{font-size:11px;line-height:1.55;color:#77817b}
.ai-status-actions{grid-column:2;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}
.ai-status-actions button{border:1px solid rgba(93,104,120,.38);background:rgba(250,251,248,.72);padding:4px 14px;color:#5d6878;font:11px var(--game-serif);letter-spacing:.14em;box-shadow:0 1px 4px rgba(60,72,84,.08);transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .12s ease}
.ai-status-actions button:hover,.ai-status-actions button:focus-visible{border-color:#5d6878;background:#5d6878;color:#f2f4ef;box-shadow:0 3px 10px rgba(60,72,84,.16);outline:none}
.ai-status-actions button:active{transform:translateY(1px);box-shadow:none}
.ai-status-actions button:last-child{border-color:rgba(125,135,127,.32);background:transparent;color:#79827c;box-shadow:none}
.ai-status-actions button:last-child:hover,.ai-status-actions button:last-child:focus-visible{border-color:#7d878f;background:#7d878f;color:#f2f4ef}
#ai-status[data-state=error] .ai-status-actions button,#ai-status[data-state=timeout] .ai-status-actions button,#ai-status[data-state=invalid] .ai-status-actions button{border-color:rgba(141,98,93,.46);color:#7d5751}
#ai-status[data-state=error] .ai-status-actions button:hover,#ai-status[data-state=error] .ai-status-actions button:focus-visible,#ai-status[data-state=timeout] .ai-status-actions button:hover,#ai-status[data-state=timeout] .ai-status-actions button:focus-visible,#ai-status[data-state=invalid] .ai-status-actions button:hover,#ai-status[data-state=invalid] .ai-status-actions button:focus-visible{border-color:#8d625d;background:#8d625d;color:#f6efe9}
body.ai-waiting #stage{animation:waitingRoom 3.8s ease-in-out infinite}
@keyframes waitingRoom{50%{filter:brightness(1.015) saturate(.97)}}
#msg:disabled{opacity:.55}
#sendbtn:disabled{opacity:.42;cursor:not-allowed;transform:none}

/* ---------- 证据痕迹（抽出后留痕，同一段不可二次收割） ---------- */
.evidence-source{padding:0 1px;background:linear-gradient(transparent 72%,rgba(128,145,151,.28) 72%);color:inherit}
.evidence-source.used{background:linear-gradient(transparent 70%,rgba(139,110,61,.2) 70%);color:#5e6561}
.bub.has-evidence{border-left-color:#8c8170}
.bub.has-used-evidence{box-shadow:inset 3px 0 0 rgba(139,110,61,.12)}

/* ---------- 指名反馈句（独立可读层） ---------- */
#insight-feedback{position:fixed;z-index:26;left:50%;top:36%;transform:translate(-50%,-50%);width:min(62vw,760px);padding:12px 18px;text-align:center;color:#9b6c27;background:linear-gradient(90deg,transparent,rgba(244,239,221,.92) 18%,rgba(244,239,221,.92) 82%,transparent);font-size:clamp(15px,1.7vw,23px);line-height:1.8;letter-spacing:.08em;text-shadow:0 2px 16px rgba(181,126,30,.3);pointer-events:none;animation:insightIn 2.65s ease both}
#insight-feedback[data-tone=neutral]{color:#59625e;background:linear-gradient(90deg,transparent,rgba(235,238,232,.94) 20%,rgba(235,238,232,.94) 80%,transparent);text-shadow:none;font-size:14px}
@keyframes insightIn{0%{opacity:0;transform:translate(-50%,-42%)}15%,72%{opacity:1;transform:translate(-50%,-50%)}100%{opacity:0;transform:translate(-50%,-58%)}}

/* ---------- 团团与剪刀命中区 ---------- */
/* Yarn stays above dialogue and onboarding copy; feedback sheets and endings still outrank it. */
.tt{z-index:24}
.tt,.tt:active{cursor:default}
.tt-withdraw{position:fixed;z-index:25;transform:translate3d(-50%,4px,0);min-width:0;padding:2px 6px;border:1px solid rgba(91,101,112,.34);border-radius:2px;background:#f0f2ee;color:#69727a;font-size:9px;line-height:1.35;letter-spacing:.04em;white-space:nowrap;box-shadow:0 2px 7px rgba(45,54,65,.08);opacity:0;visibility:hidden;pointer-events:none;backface-visibility:hidden;transition:opacity .22s ease,transform .22s ease,visibility 0s linear .22s}
.tt-withdraw.is-visible{transform:translate3d(-50%,0,0);opacity:.8;visibility:visible;pointer-events:auto;transition-delay:0s}
.tt-withdraw:hover,.tt-withdraw:focus-visible{color:#4f6f90;border-color:rgba(96,127,159,.58)}
body.guide-mask-active .tt-withdraw{z-index:19;pointer-events:none}
/* The invisible hit area becomes a breathing cut-progress ring, without a floating label. */
.scissor-target{position:fixed;z-index:25;width:82px;height:82px;transform:translate(-50%,-50%);border:1px dashed transparent;border-radius:50%;background:transparent;touch-action:none;user-select:none;padding:0;color:#545e50;--progress:0%}
.scissor-target:before,.scissor-target:after{content:'';position:absolute;border-radius:50%;pointer-events:none;opacity:0}
.scissor-target:before{inset:14px;border:1px dashed rgba(155,116,64,.58);transform:scale(.72)}
.scissor-target:after{inset:7px;background:conic-gradient(rgba(181,126,30,.8) var(--progress),rgba(139,128,166,.12) 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 0);mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 0)}
.scissor-target:hover:before,.scissor-target.tutorial-target:before{opacity:.72;animation:cutBeacon 1.45s ease-out infinite}
.scissor-target.holding:before,.scissor-target.holding:after{opacity:1}
.scissor-target.holding:before{animation:cutTension .42s ease-in-out infinite alternate}
@keyframes cutBeacon{0%{transform:scale(.55);opacity:.82}100%{transform:scale(1.18);opacity:0}}
@keyframes cutTension{to{transform:scale(.9) rotate(8deg)}}

/* ---------- 摄像头手势 ---------- */
/* Camera remains local to the browser; the transparent canvas carries the hand trace. */
#gesture-stage{position:fixed;inset:0;z-index:24;pointer-events:none;display:none}
#gesture-stage.active{display:block}
#gesture-overlay{position:absolute;inset:0;width:100%;height:100%}
#camera-preview{position:absolute;left:16px;bottom:16px;width:128px;aspect-ratio:4/3;object-fit:cover;transform:scaleX(-1);opacity:.2;filter:grayscale(1);border:1px solid #69756d;box-shadow:0 4px 18px #28302b22}

/* ---------- 通用胶囊控件 ---------- */
#selbar{gap:6px;padding:5px;border:1px solid rgba(112,122,113,.34);border-radius:999px;background:rgba(239,241,233,.9);box-shadow:0 8px 24px rgba(37,45,40,.14);backdrop-filter:blur(8px)}
#selbar button{min-width:72px;padding:7px 17px;border-radius:999px;transition:transform .16s,box-shadow .16s,background .16s}
#selbar button:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(38,46,40,.16)}
#selbar button.ghost{border:0;background:rgba(104,115,107,.1)}
#settings-dialog button,.ending-actions button,.ai-status-actions button,#close-profile{border-radius:999px}

/* ---------- 设置弹窗：与主界面其它灰蓝弹窗保持一致 ---------- */
#settings-dialog{width:min(92vw,430px);max-height:min(86vh,690px);overflow:auto;padding:0;background:linear-gradient(145deg,#e8eef4,#d4e0ea);color:#2c4151;border:1px solid #8298aa;box-shadow:8px 12px 38px rgba(35,55,73,.24),inset 0 1px rgba(255,255,255,.76)}
#settings-dialog::backdrop{background:rgba(54,70,86,.32);backdrop-filter:blur(5px)}
#settings-dialog button{padding:8px;margin:4px;border:1px solid #879dad;background:rgba(245,249,252,.34);color:#2c4151}
#settings-dialog button[aria-pressed=true]{background:#c4d7e5;border-color:#6f8fa7}
#settings-dialog .settings-restart{display:block!important;width:calc(100% - 52px);margin:18px 26px 0!important;padding:10px!important;border-color:#8198ab!important;background:rgba(235,243,249,.52)!important;color:#36536a!important}
#settings-dialog p{font-size:12px}
#settings-dialog a{color:#496b82}
.sensitivity-control{display:grid;grid-template-columns:1fr auto;gap:8px;margin:14px 4px 8px;font-size:12px}
.sensitivity-control input{grid-column:1/-1;width:100%;accent-color:#8b6e3d}
.sensitivity-control output{font:11px var(--game-serif)}
.audio-volume-control{display:grid;grid-template-columns:1fr auto;gap:7px;margin:8px 0 5px;color:#3c5567;font-size:12px}
.audio-volume-control input{grid-column:1/-1;width:100%;margin:0;accent-color:#6f88a0}
.audio-volume-control output{font:10px var(--game-serif);color:#587286}
#camera-status{min-height:32px;margin:6px 4px 12px;padding:7px 9px;border-left:2px solid #899383;font-size:11px;line-height:1.55;color:#657067}
.settings-head{padding:24px 26px 14px;border-bottom:1px solid rgba(101,128,148,.35)}
.settings-head small{font:10px var(--game-serif);letter-spacing:.12em;color:#58748b}
.settings-head h3{margin:6px 0 0;font-size:20px;font-weight:normal}
.settings-group{padding:15px 26px;border-bottom:1px solid rgba(101,128,148,.25)}
.settings-group h4{margin:0 0 11px;color:#5d778c;font:11px var(--game-serif);letter-spacing:.1em;text-transform:uppercase}
.settings-row{display:flex;align-items:center;justify-content:space-between;min-height:37px;font-size:13px}
.settings-row em{margin-left:6px;color:#927b55;font:9px var(--game-serif);font-style:normal}
.settings-row small{color:#879088;font-size:10px}
#settings-dialog .settings-row button{min-width:52px;margin:0;padding:5px 9px}
#gesture-settings{margin-top:9px;padding-top:9px;border-top:1px dashed #b9bfb5}
.settings-danger{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.settings-danger h4{width:100%}
.settings-danger button{margin:0!important}
#tutorial-link{display:flex;justify-content:space-between;gap:16px;text-decoration:none;font-size:13px}
#tutorial-link small{font-size:10px;color:#8b928c}
.settings-back{display:block!important;width:calc(100% - 52px);margin:18px 26px 24px!important;padding:10px!important;background:#313a34!important;color:#edf0e8!important;border-color:#313a34!important}
#settings-dialog .settings-back{background:#49677d!important;color:#f2f7fb!important;border-color:#49677d!important}

/* 会谈出口与重新开始共用同一套灰蓝确认卡。 */
#session-confirm{width:min(86vw,350px);padding:0;overflow:hidden;background:linear-gradient(145deg,#e8eef4,#d4e0ea);color:#2c4151;border:1px solid #8298aa;box-shadow:8px 12px 38px rgba(35,55,73,.24),inset 0 1px rgba(255,255,255,.76)}
#session-confirm::backdrop{background:rgba(54,70,86,.32);backdrop-filter:blur(5px)}
#session-confirm p{margin:0;padding:26px 26px 20px;font-size:15px;letter-spacing:.045em}
.session-confirm-actions{display:flex;justify-content:flex-end;gap:9px;padding:14px 18px;border-top:1px solid rgba(101,128,148,.28)}
.session-confirm-actions button{min-width:72px;padding:8px 13px;border:1px solid #879dad;border-radius:999px;background:rgba(245,249,252,.34);color:#2c4151;font:inherit}.session-confirm-actions #session-confirm-accept{background:#49677d;color:#f2f7fb;border-color:#49677d}

/* ---------- 结局：先留在房间，再打开共享记录纸 ---------- */
#ending-cue{position:fixed;z-index:28;inset:0;display:grid;place-items:center;background:rgba(26,40,56,.16);backdrop-filter:blur(3px) saturate(.84);-webkit-backdrop-filter:blur(3px) saturate(.84);animation:endingCueIn .3s ease both}
.ending-cue-panel{display:flex;flex-direction:column;align-items:center;gap:14px;padding:30px 38px;opacity:0}
.ending-cue-panel small{font:10px var(--game-serif);letter-spacing:.22em;color:rgba(235,242,247,.9)}
.ending-cue-seal{display:block;width:38px;height:1px;background:linear-gradient(90deg,transparent,#d7b574,transparent);box-shadow:0 0 13px rgba(215,181,116,.7);animation:endingSealPulse 1.1s ease-in-out infinite}
body.ending-positive #ending-cue{background:rgba(235,227,203,.34)}
body.ending-negative #ending-cue{background:rgba(207,213,211,.5)}
body.ending-negative #ending-cue button{border-color:#78676c;color:#5f4f54;background:rgba(238,234,230,.95)}
@keyframes endingCueIn{from{opacity:0;backdrop-filter:blur(0) saturate(1)}}
#endcard{position:fixed;inset:0;z-index:32;display:grid;padding:clamp(22px,5vh,72px) clamp(22px,6vw,108px);place-items:center;background:rgba(181,198,213,.035);text-align:left;color:#223044;white-space:normal;animation:endBackdrop .65s ease both}
body:has(#endcard:not([hidden])) #inputbar{visibility:hidden}
.ending-record{position:relative;box-sizing:border-box;width:min(84vw,1500px);height:min(80vh,860px);padding:28px clamp(28px,3.1vw,56px) 0;border:1px solid rgba(255,255,255,.72);border-radius:26px;background:radial-gradient(ellipse at 48% 42%,rgba(255,255,255,.48) 0,rgba(232,243,249,.22) 34%,transparent 61%),linear-gradient(122deg,rgba(246,250,252,.34),rgba(209,224,236,.18) 53%,rgba(189,207,223,.29));backdrop-filter:blur(18px) saturate(.9) brightness(1.06);-webkit-backdrop-filter:blur(18px) saturate(.9) brightness(1.06);box-shadow:0 30px 90px rgba(30,47,66,.24),0 5px 16px rgba(37,55,76,.13),inset 0 1px rgba(255,255,255,.96),inset 0 -1px rgba(78,105,132,.2),inset 0 0 110px rgba(255,255,255,.19),inset 0 -70px 100px rgba(73,96,120,.06);outline:1px solid rgba(88,115,140,.14);outline-offset:4px;overflow:hidden;transform-origin:50% 50%;will-change:transform,opacity,filter;animation:glassReportOpen .78s cubic-bezier(.18,.8,.22,1) both}
.ending-record:before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.42;background-image:linear-gradient(112deg,rgba(255,255,255,.48) 0 9%,transparent 25% 67%,rgba(255,255,255,.18) 84%,transparent),radial-gradient(circle at 18% 36%,rgba(58,78,101,.17) 0 1px,transparent 2px),radial-gradient(circle at 73% 64%,rgba(58,78,101,.13) 0 1px,transparent 2px);background-size:auto,113px 127px,157px 139px;mix-blend-mode:screen}
.ending-record:after{content:'';position:absolute;inset:8px;border:1px solid rgba(255,255,255,.38);border-radius:18px;box-shadow:inset 0 1px rgba(255,255,255,.54),inset 0 -14px 28px rgba(81,108,136,.06);pointer-events:none}
.ending-report-head{position:relative;z-index:1;height:35px;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;justify-content:space-between;border-bottom:1px solid rgba(64,81,87,.22);font:10px var(--game-serif);letter-spacing:.16em;color:#6e7b80;animation:glassContentIn .46s .3s ease both}.ending-report-head span:nth-child(2){text-align:center}.ending-report-head span:last-child{text-align:right;font-size:15px;letter-spacing:.05em;color:#34474e}
.ending-report-grid{position:relative;z-index:1;height:calc(100% - 112px);display:grid;grid-template-columns:minmax(230px,.8fr) minmax(360px,1.1fr) minmax(310px,.95fr);gap:clamp(16px,1.8vw,28px);align-items:stretch}.ending-report-notes{animation:glassContentIn .5s .4s ease both}.ending-orbit-panel{animation:glassContentIn .58s .48s cubic-bezier(.2,.75,.25,1) both}.ending-trend-panel{animation:glassContentIn .5s .58s ease both}.ending-actions{animation:glassContentIn .42s .68s ease both}
.ending-report-notes{display:flex;flex-direction:column;justify-content:center;gap:46px;padding:26px 15px 26px 4px;border-right:1px solid rgba(65,83,88,.2)}
.ending-report-notes section{position:relative;padding-left:15px}.ending-report-notes section:before{content:'';position:absolute;left:0;top:2px;width:2px;height:100%;background:rgba(65,83,88,.22)}
.ending-report-notes small,.ending-orbit-core small,.ending-trend-panel small{font:10px var(--game-serif);letter-spacing:.12em;color:#74858a}
.ending-report-notes p{margin:10px 0 0;font-size:15px;line-height:1.75;color:#34464c}
.ending-evidence{margin:0;padding:0;border:0}.ending-evidence p{font-size:12px;color:#64757a}
.ending-orbit-panel{position:relative;display:grid;place-items:center;min-width:0;isolation:isolate}
.ending-orbit-panel:before{content:'';position:absolute;left:50%;top:50%;width:62%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 36% 28%,rgba(255,255,255,.96),rgba(231,240,246,.72) 40%,rgba(178,198,212,.22) 68%,transparent 74%);box-shadow:inset -20px -25px 42px rgba(92,117,140,.12),inset 18px 18px 34px rgba(255,255,255,.86),0 26px 55px rgba(56,77,99,.13);filter:blur(1px);opacity:.9;animation:orbitPanelBreath 5.8s ease-in-out infinite;pointer-events:none}
#ending-orbit{position:relative;z-index:1;width:min(100%,590px);height:100%;max-height:630px;overflow:visible;filter:drop-shadow(0 16px 30px rgba(67,95,106,.11))}
.orbit-core-aura{opacity:.78;filter:url(#ending-orbit-glow);animation:orbitAuraBreath 4.8s ease-in-out infinite}
.orbit-core-pulse{fill:none;stroke:rgba(255,255,255,.76);stroke-width:1.2;stroke-dasharray:2 9;transform-origin:210px 210px;animation:orbitCorePulse 4.8s ease-in-out infinite}
.orbit-shell{fill:none;stroke:rgba(140,177,187,.2);stroke-width:1;vector-effect:non-scaling-stroke;transform-origin:210px 210px}
.orbit-shell-wide{stroke-dasharray:1 9;animation:orbitShellDrift 18s linear infinite}
.orbit-shell-tilted{stroke:rgba(159,190,197,.24);stroke-dasharray:62 10 2 14;animation:orbitShellDriftReverse 24s linear infinite}
.orbit-shell-tilted-alt{stroke:rgba(122,159,170,.16);stroke-dasharray:3 13;animation:orbitShellDrift 30s linear infinite}
.orbit-liquid{fill:rgba(222,239,242,.2);stroke:rgba(255,255,255,.52);stroke-width:1;transform-origin:210px 210px;filter:drop-shadow(0 0 14px rgba(119,171,182,.18));animation:orbitLiquidBreath 7.2s cubic-bezier(.42,0,.3,1) infinite}.orbit-guide{fill:none;stroke:rgba(45,65,88,.3);stroke-width:1}.orbit-guide-inner{stroke-dasharray:2 8;opacity:.62}.orbit-node{fill:#f7fbfd;stroke:#415a75;stroke-width:1.5;filter:drop-shadow(0 0 3px rgba(69,98,126,.25))}.orbit-node-ghost{fill:rgba(242,248,251,.68);stroke:rgba(65,90,117,.55);stroke-width:1}.orbit-node-cut{fill:#c58b30;stroke:#fff8e7;stroke-width:2.3;filter:drop-shadow(0 0 9px rgba(196,137,47,.66));animation:orbitPeakBreath 2.6s ease-in-out infinite}.orbit-cut-halo{fill:none;stroke:#c58b30;stroke-width:1.2;stroke-dasharray:2 3;opacity:.8;transform-origin:210px 210px;animation:orbitShellDrift 8s linear infinite}.orbit-label{fill:#526a82;font:10px var(--game-serif);letter-spacing:.08em}.orbit-cut{fill:#a96f1b;font:17px sans-serif;filter:drop-shadow(0 0 3px rgba(169,111,27,.38))}
.ending-orbit-core{z-index:2}
@keyframes orbitPanelBreath{0%,100%{transform:translate(-50%,-50%) scale(.9);opacity:.42}50%{transform:translate(-50%,-50%) scale(1.08);opacity:.82}}
@keyframes orbitAuraBreath{0%,100%{opacity:.55;transform:scale(.94)}50%{opacity:.88;transform:scale(1.04)}}
@keyframes orbitCorePulse{0%,100%{opacity:.38;stroke-width:1;transform:scale(.94)}50%{opacity:.9;stroke-width:1.8;transform:scale(1.035)}}
@keyframes orbitLiquidBreath{0%,100%{opacity:.34;transform:scale(.94,.98) rotate(-3deg)}35%{opacity:.62;transform:scale(1.035,.96) rotate(2deg)}65%{opacity:.48;transform:scale(.98,1.045) rotate(-1deg)}}
@keyframes orbitShellDrift{to{transform:rotate(360deg)}}
@keyframes orbitShellDriftReverse{to{transform:rotate(-360deg)}}
@keyframes orbitPeakBreath{0%,100%{transform:scale(.92);transform-origin:50% 50%}50%{transform:scale(1.14);transform-origin:50% 50%}}
.ending-orbit-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:62%;text-align:center}.ending-orbit-core h2{margin:9px 0 8px;font-size:27px;font-weight:400;letter-spacing:.18em}.ending-orbit-core>i{display:block;width:26px;height:2px;margin:0 auto 9px;background:#b58a4c;box-shadow:0 0 10px rgba(181,138,76,.28)}.ending-orbit-core p{display:-webkit-box;max-height:4.86em;margin:0;overflow:hidden;color:#35494f;font-size:14px;line-height:1.62;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.ending-trend-panel{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:32px 2px 22px 24px;border-left:1px solid rgba(65,83,88,.2)}
.ending-trend-panel>header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.ending-trend-panel h3{margin:7px 0 0;font-size:17px;font-weight:400;letter-spacing:.08em}.ending-legend{display:flex;gap:15px;font:10px var(--game-serif);color:#65767c}.ending-legend span:before{content:'';display:inline-block;width:14px;height:2px;margin:0 6px 3px 0}.ending-legend [data-series=exposure]:before{background:#b58a4c}.ending-legend [data-series=stability]:before{background:#5f7f8a}
#ending-trend{width:100%;margin:18px 0 4px;overflow:visible}.trend-grid{stroke:rgba(71,91,98,.14);stroke-width:1}.trend-axis,.trend-turn{fill:#819096;font:9px var(--game-serif)}.trend-line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.46;filter:drop-shadow(0 0 4px rgba(108,139,151,.12))}.trend-dot{stroke:#f5f8f7;stroke-width:1.5;opacity:.58}.trend-exposure{stroke:#b58a4c;fill:#b58a4c}.trend-stability{stroke:#5f7f8a;fill:#5f7f8a}.trend-cut-line{stroke:#a67c43;stroke-width:1;stroke-dasharray:3 5;opacity:.6}.trend-cut{fill:#956f3b;font:14px sans-serif}
#ending-curve{min-height:3.2em;margin:4px 0 0;padding-top:13px;border-top:1px solid rgba(71,91,98,.17);font-size:12px;line-height:1.65;color:#53666c}
.ending-actions{position:absolute;z-index:2;left:0;right:0;bottom:0;height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(28px,3.1vw,56px);background:linear-gradient(108deg,rgba(31,47,66,.43),rgba(59,78,99,.36));backdrop-filter:blur(16px) saturate(.88);-webkit-backdrop-filter:blur(16px) saturate(.88);color:#e5e9ea;border-top:1px solid rgba(242,248,251,.3)}.ending-footer-status{font:10px var(--game-serif);letter-spacing:.18em;color:rgba(232,240,246,.84)}.ending-actions button{min-width:128px;padding:11px 20px;border:1px solid rgba(241,247,250,.62);border-radius:999px;background:rgba(255,255,255,.09);color:#f7fbfc;font-size:13px;letter-spacing:.14em;box-shadow:inset 0 1px rgba(255,255,255,.2)}.ending-actions button:hover{background:rgba(255,255,255,.2)}
.ending-record.bad{box-shadow:0 24px 75px rgba(63,45,50,.18),inset 0 0 90px rgba(255,255,255,.25)}.ending-record.bad .orbit-route,.ending-record.bad .trend-stability{stroke:#78676c}.ending-record.bad .orbit-node{stroke:#78676c}
@keyframes endBackdrop{from{opacity:0}}
@keyframes glassReportOpen{0%{opacity:0;filter:blur(14px) saturate(.65);transform:scale(.78);border-radius:50%;box-shadow:0 0 0 rgba(30,47,66,0)}55%{opacity:1;filter:blur(0) saturate(.9);transform:scale(1.018);border-radius:30px}100%{opacity:1;filter:none;transform:scale(1);border-radius:26px}}
@keyframes glassContentIn{from{opacity:0;filter:blur(5px);transform:translateY(11px) scale(.985)}to{opacity:1;filter:none;transform:none}}
@keyframes endingSealPulse{0%,100%{opacity:.34;transform:scaleX(.7)}50%{opacity:1;transform:scaleX(1.12)}}
body.ending-positive:before,body.ending-negative:before{display:none}
body.ending-positive #stage,body.ending-negative #stage{filter:none;animation:none}
@keyframes endingWash{0%{opacity:0}35%,75%{opacity:1}100%{opacity:.45}}
@keyframes badRoom{0%,100%{transform:none}32%{transform:translateX(-2px)}36%{transform:translateX(2px)}58%{transform:none}72%{transform:translateY(1px)}}

/* ---------- 教学状态 ---------- */
.ph.tutorial-choice{outline:1px solid #607f9f;background:rgba(96,127,159,.1)}
.ph.tutorial-locked{opacity:.3;cursor:not-allowed}
#pad.tutorial-prompts .manual-page-prompts .basic-prompts-head{display:none}
#pad.tutorial-prompts .manual-page-prompts .basic-prompts{margin:0;padding:0;border:0}
#pad.tutorial-prompts .manual-pagination{display:none}

/* ---------- 响应式 ---------- */
/* 901—950px 窗口内旧断点的定位仍会生效，故保留在 900 断点之前。 */
@media(max-width:950px){#state-track{right:2%;top:8%;width:112px;opacity:.82}#state-track .track-axis-label{font-size:20px}#task-board{right:2%;top:40%;bottom:auto;width:112px;min-width:112px}}
@media(max-width:1100px) and (min-width:951px){#task-board{right:3.5%;width:18%;min-width:180px}#state-track{right:3.5%;width:18%;min-width:180px}}
@media(max-width:900px){
  :root{--tool-dock-width:min(190px,23vw)}
  .archive-label,#chat{left:3%;width:31%}#state-track{right:3%;width:13%;min-width:112px}#task-board{right:3%;width:13%;min-width:112px}#tool-dock{right:3%;min-width:174px}.archive-label small,.track-title small,#task-board header small{display:none!important}
  #inputbar{grid-template-columns:minmax(72px,10%) minmax(180px,1fr) 84px;gap:14px;padding-right:3%}
  .bub{width:96%;padding:10px 11px!important}.bub.npc{font-size:13px}.bub.me{font-size:12px}.tool-button span{font-size:11px}
  #desk-objects{left:65.5%;width:min(140px,16vw);height:104px;bottom:calc(28% - 4px)}#profile-spot{height:104px!important}#profile-spot svg{width:min(112px,94%)}#cup-spot{left:35%;width:48px;height:76px}#cup-spot svg{width:48px}#cup-note{left:calc(35% - 45px);bottom:calc(28% + 44px)}
  #pad{width:min(350px,48vw)}
  #narrator{left:48%;width:min(360px,34vw);min-height:140px}.ending-record{min-height:350px;padding:38px 36px 30px}
}
@media(max-width:1000px) and (min-width:821px){
  #desk-objects{left:64%;width:min(120px,14vw);height:104px}
  #profile-spot{height:104px!important}
  #profile-spot svg{width:min(108px,94%)}
  #tool-dock{left:72.5%;right:auto;transform:translateX(-50%);width:clamp(120px,calc(19.8vw - 43px),320px);min-width:120px}
}
@media(max-width:1100px) and (min-width:651px){
  #pad[data-view=prompts]{left:3.5%;right:auto;top:auto;bottom:calc(28% + 52px);width:min(360px,32vw);transform-origin:bottom left}
}
@media(max-width:820px) and (min-width:761px){
  #desk-objects{left:63%;width:min(96px,13vw);height:104px}
  #profile-spot{height:104px!important}
  #profile-spot svg{width:min(76px,94%)}
  #tool-dock{left:72.5%;right:auto;transform:translateX(-50%);width:clamp(120px,calc(19.8vw - 43px),320px);min-width:120px}
}
@media(max-width:760px) and (min-width:651px){
  #task-board{display:flex;right:.25%;top:42%;bottom:auto;width:112px;min-width:112px}
  #task-board header{padding-bottom:5px;font-size:12px}
  #task-board ol{gap:5px;margin:7px 0}
  #task-board li{grid-template-columns:16px minmax(0,1fr) auto;gap:3px;padding:4px 2px;font-size:10px;line-height:1.3}
  #task-board .task-round{font-size:8px}
  #task-board .task-state{font-size:8px}
  #state-track{top:8%;right:3%;width:96px;min-width:96px}
  #state-track .track-axis-label{font-size:23px}
  #desk-objects{left:63%;width:min(88px,13vw);height:100px}
  #tool-dock{left:71.7%;right:auto;bottom:calc(28% - 23px);width:min(320px,18.7vw);min-width:0;transform:translateX(-50%);grid-template-columns:1.3fr .85fr .85fr;gap:clamp(3px,.6vw,12px)}
  #tool-dock .tool-button{padding:2px!important}
  #tool-dock .tool-button>span{font-size:8px!important;letter-spacing:0!important;white-space:nowrap;text-shadow:none}
  #tool-dock #profile-spot{height:108px!important;grid-template-rows:82px 18px}
  #tool-dock #profile-spot svg{width:min(108px,100%)}
  #cup-spot{left:35%;width:44px}
  #cup-spot svg{width:44px}
  #cup-note{left:calc(35% - 45px)}
}
@media(max-width:650px){
  .room-header{left:4%;right:4%;grid-template-columns:1fr auto}.session-ident{display:none}.system-tools{gap:4px}.system-icon{width:40px;height:40px}
  .archive-label{left:5%;top:10%;width:90%}#chat{left:5%;top:14%;width:90%;height:26%;background:linear-gradient(rgba(233,237,243,.94),rgba(233,237,243,.72))}
  :root{--tool-dock-width:116px}
  #state-track{top:40%;right:4%;width:82px;min-width:0;opacity:.82}#state-track .track-title{font-size:10px}#state-track .track-axis-label{font-size:27px}#task-board{display:none}#tool-dock{top:auto;left:auto;right:4%;bottom:calc(14% + 34px);width:116px;min-width:0;transform:none;grid-template-columns:1.3fr .85fr .85fr;gap:2px;border:0;padding:0}.tool-button,#prompt-spot,#padspot{height:62px!important;grid-template-rows:38px 14px;padding:5px!important}.tool-button svg{width:32px;height:32px}.tool-button span{display:none}#tool-dock #profile-spot{height:62px!important;grid-template-rows:38px 14px;padding:5px!important}#tool-dock #profile-spot svg{width:36px;height:auto;transform:translateY(0)}#tool-dock #prompt-spot svg,#tool-dock #padspot svg{width:27px;height:auto}
  #desk-objects{left:64.5%;width:min(120px,32vw);height:78px;display:block}#profile-spot{height:78px!important;padding:0!important}#profile-spot svg{width:min(84px,94%)}#profile-spot>span{display:none}#cup-spot{left:clamp(64px,18vw,118px);width:50px;height:58px}#cup-spot svg{width:min(46px,100%)}#cup-note{left:max(8px,calc(18vw - 60px));bottom:calc(28% + 40px)}
  #profile,#pad{right:4%;bottom:calc(28% + 38px);width:92vw}.archive-label,#chat{z-index:9}#inputbar{height:28%;grid-template-columns:minmax(0,1fr) 64px;padding:0 4%;gap:8px}#inputbar:before{display:none}
  #camera-preview{width:88px;left:8px;bottom:8px}
  #narrator{left:50%;top:11%;transform:translateX(-50%);width:90vw;max-width:90vw;min-height:0;height:176px;max-height:31vh}#ai-status{grid-template-columns:22px 1fr;padding:8px}.ai-status-actions{gap:9px}#insight-feedback{top:43%;width:90vw;font-size:15px}.track-axis-label{display:block}.ending-record{width:92vw;min-height:0;padding:34px 28px 26px}.ending-record h2{font-size:21px}.settings-row{font-size:12px}#ending-cue button{min-width:210px;font-size:14px}
}
@media(max-width:650px){
  #pad[data-view=prompts]{left:50%;right:auto;top:50%;bottom:auto;width:92vw;max-height:88vh;transform:translate(-50%,-50%);transform-origin:center}
  #pad[data-view=prompts].is-open{animation:manualOpen .42s cubic-bezier(.2,.72,.2,1) both}
  #prompt-panel{max-height:none;padding:9px 10px 12px 19px}
  .manual-page{padding:3px 3px 10px;min-height:220px}
  .manual-page h5{font-size:12px}
  .manual-pagination{margin:0 8px 0 19px;padding:7px 0 10px}
  .manual-pagination button{font-size:10px}
  .manual-copy{font-size:9px;line-height:1.45}
  .manual-caution{font-size:8px}
  .basic-prompts-head h5{font-size:12px}.basic-prompts-head p{font-size:9px}
  .basic-prompts .ph{grid-template-columns:22px minmax(0,1fr) 12px;gap:5px;min-height:42px;font-size:9px!important;padding:6px!important}
}
@media(max-width:380px){
  .manual-page{padding:2px;min-height:200px}
  .manual-pagination{margin:0 3px 0 15px}
  .manual-page h5{font-size:11px}
  .manual-copy{font-size:8px;line-height:1.4}
}
/* 蒸汽错峰上升，避免三条轨迹完全同步。 */
#cup-spot.steaming .steam-two{animation-delay:-.42s}
#cup-spot.steaming .steam-three{animation-delay:-.84s}
/* 工具名称仅在悬停或键盘聚焦时出现，说明气泡向左展开，避开右侧任务栏。 */
#tool-dock .tool-button>span{position:absolute;z-index:20;right:0;top:calc(100% - 18px);bottom:auto;left:auto;width:max-content;max-width:min(220px,70vw);display:block;padding:6px 9px;border-left:1px solid #a17a3d;background:rgba(241,242,235,.94);color:#667068;text-align:left;text-shadow:none;font-family:inherit;font-size:11px!important;font-weight:normal;line-height:1.55;letter-spacing:.02em!important;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(4px);transition:opacity .15s ease,transform .15s ease,visibility .15s ease}
#tool-dock .tool-button:hover>span,#tool-dock .tool-button:focus-visible>span{opacity:1;visibility:visible;transform:translateY(0)}
@media(max-width:650px){#tool-dock .tool-button>span{top:auto;bottom:calc(100% + 4px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}#cup-spot.steaming .cup-steam{animation:none!important;opacity:.78;transform:translateY(-5px)}}

/* Visitor selection retained from main. */
.case-selection{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:36px 24px;overflow:auto;background:radial-gradient(circle at 50% 42%,#27342d 0,#141d19 46%,#0b1110 100%);color:#e8e9dc}.case-selection:before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.18;background-image:linear-gradient(#d1decb16 1px,transparent 1px),linear-gradient(90deg,#d1decb16 1px,transparent 1px);background-size:40px 40px}.case-selection-head{position:relative;text-align:center}.case-selection-head small,.visitor-card-top,.visitor-card-info small,.visitor-card-action{font:10px Consolas,monospace;letter-spacing:.18em}.case-selection-head small{color:#b79b67}.case-selection-head h1{margin:13px 0 9px;font-size:clamp(28px,4vw,44px);font-weight:400;letter-spacing:.22em}.case-selection-head p{margin:0;color:#acb7ac;font-size:13px;letter-spacing:.06em}.case-selection-grid{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,330px));gap:26px;width:min(100%,690px)}.visitor-card{display:flex;flex-direction:column;align-items:stretch;min-height:440px;padding:18px;text-align:left;color:#e4e8dc;background:linear-gradient(155deg,#334038da,#1b2923ed);border:1px solid #7b8a776f;box-shadow:0 18px 50px #0308066e;transition:transform .25s,border-color .25s,box-shadow .25s}.visitor-card-top{display:flex;justify-content:space-between;gap:10px;color:#b3bdad}.visitor-particles{align-self:center;width:min(100%,280px);height:260px;object-fit:contain}.visitor-card-info{display:flex;flex-direction:column;gap:8px;min-height:91px}.visitor-card-info small{color:#b9a77e}.visitor-card-info h2,.visitor-card-info strong{margin:0;font-size:26px;font-weight:400;letter-spacing:.15em;color:#f2efdf}.visitor-card-info p,.visitor-card-info>span{margin:0;color:#b9c3b8;font-size:12px;line-height:1.65}.visitor-card-action{display:flex;justify-content:space-between;margin-top:auto;padding-top:16px;color:#cdb98b;border-top:1px solid #95a28d53}.visitor-card-pending{opacity:.57}.visitor-card-active:hover,.visitor-card-active:focus-visible{transform:translateY(-7px);border-color:#c7aa70;box-shadow:0 24px 65px #030806ad}.visitor-card-active:hover .visitor-card-action{color:#f3d89d}@media(max-width:650px){.case-selection{justify-content:flex-start;gap:20px;padding:32px 18px}.case-selection-grid{grid-template-columns:1fr;max-width:370px}.visitor-card{min-height:280px}.visitor-particles{height:130px}.visitor-card-info{min-height:60px}.visitor-card-pending{order:2}}
/* Visitor archive: a quiet extension of the consultation room, not another scene. */
.case-selection{isolation:isolate;perspective:1200px;background:radial-gradient(ellipse 75% 45% at 49% 30%,rgba(255,255,255,.94),transparent 78%),radial-gradient(circle at 14% 68%,rgba(195,205,219,.58),transparent 45%),radial-gradient(circle at 88% 28%,rgba(212,219,229,.6),transparent 47%),linear-gradient(145deg,#e3e9f0,#f0f2f3 50%,#d4dce6);color:#232a36}
.case-selection:before{z-index:-2;opacity:1;inset:0;background:repeating-radial-gradient(ellipse 43% 70% at 50% 44%,transparent 0 88px,rgba(72,88,109,.025) 89px,transparent 90px),linear-gradient(90deg,transparent 9%,rgba(71,85,105,.065) 9.1%,transparent 9.2%,transparent 90.8%,rgba(71,85,105,.065) 90.9%,transparent 91%),linear-gradient(0deg,transparent 11%,rgba(71,85,105,.055) 11.1%,transparent 11.2%);border:0}
.case-selection:after{content:'';position:absolute;z-index:-1;inset:auto 0 0;height:34%;pointer-events:none;background:linear-gradient(0deg,rgba(58,72,91,.18),transparent 88%),radial-gradient(ellipse 45% 40% at 50% 102%,rgba(38,48,66,.17),transparent);mask-image:linear-gradient(transparent,#000 65%)}
.case-selection-head{z-index:1}.case-selection-head small,.visitor-card-info small{color:#94671c}.case-selection-head h1{color:#283343}.case-selection-head p{color:#647082}
.case-selection-grid{z-index:1;perspective:1000px;gap:30px}
.visitor-card{--tilt-x:0deg;--tilt-y:0deg;--shift-x:0px;--shift-y:0px;--glow-x:50%;--glow-y:38%;position:relative;min-height:450px;transform-style:flat;transform:perspective(900px) translate3d(var(--shift-x),var(--shift-y),0) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transition:transform .28s ease-out,border-color .25s,box-shadow .25s;color:#2f3947;background:radial-gradient(circle at var(--glow-x) var(--glow-y),rgba(255,255,255,.76),transparent 66%),linear-gradient(145deg,rgba(248,247,241,.98),rgba(224,231,239,.96));border:1px solid rgba(132,108,68,.45);border-radius:5px;box-shadow:0 22px 50px rgba(39,52,71,.15),0 2px 8px rgba(39,52,71,.07);backface-visibility:hidden}
.visitor-card:before,.visitor-card:after{content:none}
.visitor-card-top,.visitor-card-number,.visitor-art,.visitor-card-info,.visitor-card-action{position:relative;transform:none}
.visitor-card-top{color:#687487;border-bottom:0;padding:0 0 5px}
.visitor-card-number{display:block;align-self:center;color:#607d9d;font:16px Georgia,serif;letter-spacing:.2em;text-align:center;line-height:1.25}
.visitor-art{position:relative;display:flex;align-items:center;justify-content:center;align-self:center;width:calc(100% - 18px);height:226px;overflow:hidden;border:0;border-bottom:1px solid rgba(115,130,148,.22);border-radius:2px;background:radial-gradient(ellipse at 50% 36%,rgba(253,253,250,.94),rgba(230,236,243,.38) 72%,rgba(160,177,194,.12))}
.visitor-art:before,.visitor-art:after{content:none}
.visitor-particles{position:relative;width:100%;height:100%;object-fit:contain;filter:none}
.visitor-card-info h2,.visitor-card-info strong{color:#283343}.visitor-card-info p,.visitor-card-info>span{color:#5e6978}
.visitor-card-action{color:#506f91;border-top-color:rgba(93,124,158,.3)}
.visitor-card-pending{opacity:1;filter:none;background:radial-gradient(circle at var(--glow-x) var(--glow-y),rgba(242,248,255,.76),transparent 66%),linear-gradient(145deg,rgba(239,245,251,.98),rgba(210,222,236,.96));border-style:solid;border-color:rgba(102,127,155,.46)}
.visitor-card-pending .visitor-card-info,.visitor-card-pending .visitor-card-action{opacity:.75}
.visitor-card:hover{transform:perspective(900px) translate3d(var(--shift-x),var(--shift-y),0) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));border-color:#668caf;box-shadow:0 29px 65px rgba(39,52,71,.24),0 0 0 1px rgba(122,157,190,.18),0 5px 13px rgba(39,52,71,.1)}
.visitor-card-active:hover .visitor-card-action{color:#426f9a}
.visitor-card:focus-visible{outline:none;transform:perspective(900px) translate3d(var(--shift-x),var(--shift-y),0) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));border-color:rgba(102,127,155,.46);box-shadow:0 22px 50px rgba(39,52,71,.15),0 2px 8px rgba(39,52,71,.07)}
@media(max-width:650px){.case-selection{justify-content:flex-start;padding-top:28px}.case-selection-head h1{margin:8px 0}.case-selection-grid{gap:16px}.visitor-card{min-height:340px}.visitor-art{height:160px;width:calc(100% - 22px)}.visitor-card-pending{order:2}}
@media(hover:none),(pointer:coarse){.visitor-card{transform:none}.visitor-card:hover{box-shadow:0 22px 50px rgba(39,52,71,.15),0 2px 8px rgba(39,52,71,.07)}}
@media(prefers-reduced-motion:reduce){.visitor-card{transform:none!important;transition:none!important}}

/* 引导中的来访者选择：沿用当前会谈室，不切换独立页面。 */
body.guide-visitor-select .case-selection{background:transparent;backdrop-filter:none;animation:visitorChoiceIn .3s ease both;transition:opacity .26s ease,transform .26s ease}
body.guide-visitor-select .case-selection:before{z-index:-1;opacity:1;background:rgba(38,47,58,.42)}
body.guide-visitor-select .case-selection:after{display:none}
body.guide-visitor-select .case-selection.leaving{opacity:0;transform:scale(.985);pointer-events:none}
body.guide-visitor-select .case-selection-head{width:min(640px,calc(100vw - 32px));min-height:94px;box-sizing:border-box;margin-top:-12px;padding:10px 34px 32px;overflow:hidden;background:linear-gradient(120deg,rgba(244,249,255,.78),rgba(210,224,241,.48) 52%,rgba(238,246,255,.65));backdrop-filter:blur(28px) saturate(1.35) brightness(1.03);-webkit-backdrop-filter:blur(28px) saturate(1.35) brightness(1.03);border:1px solid rgba(218,234,249,.9);border-radius:22px;box-shadow:0 18px 46px rgba(35,49,74,.17),0 3px 10px rgba(45,63,91,.08),inset 0 1px rgba(255,255,255,.92),inset 0 -1px rgba(91,124,160,.14);text-align:center;color:#293f58}
body.guide-visitor-select .case-selection-head:before{content:"";position:absolute;z-index:-1;inset:0;border-radius:inherit;opacity:.55;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.58),transparent 40%),radial-gradient(circle at 88% 0,rgba(255,255,255,.8),transparent 34%)}
body.guide-visitor-select .case-selection-head h1{margin:0;font-size:clamp(22px,2.45vw,32px)!important;line-height:1.42;letter-spacing:.08em;white-space:nowrap;transform:translateY(-2px)}
body.guide-visitor-select .case-selection-cue{position:absolute;left:0;right:0;bottom:8px;color:#59718c;font:13px var(--game-serif);letter-spacing:.04em}
body.guide-visitor-select .visitor-card{min-height:min(430px,62vh);background:radial-gradient(circle at var(--glow-x) var(--glow-y),rgba(242,248,255,.82),transparent 66%),linear-gradient(145deg,rgba(236,243,250,.96),rgba(207,220,235,.92));border-color:rgba(102,127,155,.46)}
body.guide-visitor-select .visitor-card .visitor-art{height:min(226px,32vh);border:1px solid rgba(115,130,148,.18);box-shadow:inset 0 0 28px rgba(91,111,139,.06)}
body.guide-visitor-select .visitor-card-pending .visitor-art{background:radial-gradient(circle at 50% 40%,rgba(223,230,239,.74),rgba(198,210,225,.2) 62%,transparent 78%)}
body.guide-visitor-select .visitor-card-active .visitor-art{background:radial-gradient(circle at 50% 38%,rgba(230,241,252,.9),rgba(194,211,229,.34) 68%,transparent 82%)}
body.guide-visitor-select .visitor-card-top{padding-bottom:9px;border-bottom:1px solid rgba(115,130,148,.18)}
body.guide-visitor-select .visitor-card-info small{color:#5f7894}
@keyframes visitorChoiceIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---------- 全局字号倍率：界面 120%，左侧对话 110% ---------- */
.room-header{font-size:14.4px}
.archive-label{font-size:15.6px}.archive-label small{font-size:12px}
#state-track .track-title{font-size:14.4px}#state-track .track-title small{font-size:10.8px}.track-axis-label{font-size:19.2px}
#task-board header{font-size:15.6px}#task-board header small{font-size:10.8px}#task-board li{font-size:14.4px}.task-round{font-size:12px}.task-state,.task-system-log{font-size:10.8px}
.tool-button>span,#profile-spot>span{font-size:14.4px!important}#tool-dock .tool-button>span{font-size:13.2px!important}
#profile small{font-size:12px}#profile h3{font-size:19.2px}#profile p{font-size:14.4px}
#cup-note{font-size:13.2px}
.notebook-head h4{font-size:20.4px!important}.notebook-head #close-pad{font-size:21.6px}.notebook-empty,.notebook-lead{font-size:13.2px}
.clue-entry-head strong{font-size:15.6px}.clue-entry-head span{font-size:12px}.clue-entry p{font-size:12px}
.manual-page h5{font-size:16.8px}.basic-prompts-head h5{font-size:18px}.basic-prompts-head p{font-size:12px}.basic-prompts .ph{font-size:13.2px!important}
.manual-page-index{font-size:10.8px}.manual-page-index strong{font-size:12px}.manual-copy{font-size:14.4px}.manual-caution{font-size:13.2px}.manual-motto{font-size:12px}.manual-pagination button{font-size:13.2px}
#inputbar:before{font-size:15.6px}#msg{font-size:19.2px}.ibtn{font-size:14.4px}
#narrator{font-size:14.4px}#contcue{font-size:13.2px}#ghint{font-size:15.6px}#ghint.can-continue:after{font-size:13.2px}
.ai-status-copy strong{font-size:14.4px}.ai-status-copy span{font-size:13.2px}.ai-status-actions button{font-size:13.2px}
#insight-feedback[data-tone=neutral]{font-size:16.8px}
.tt{font-size:16.8px}.tt-withdraw{font-size:10.8px}
#settings-dialog p{font-size:14.4px}.settings-head small{font-size:12px}.settings-head h3{font-size:24px}.settings-row{font-size:15.6px}.settings-row small{font-size:12px}#camera-status{font-size:13.2px}#tutorial-link{font-size:15.6px}#tutorial-link small{font-size:12px}
.case-selection-head small,.visitor-card-top,.visitor-card-info small,.visitor-card-action{font-size:12px}.case-selection-head h1{font-size:clamp(33.6px,4.8vw,52.8px)}body.guide-visitor-select .case-selection-head h1{font-size:clamp(25.2px,3.12vw,40.8px)}.case-selection-head p{font-size:15.6px}.visitor-card-info h2,.visitor-card-info strong{font-size:31.2px}.visitor-card-info p,.visitor-card-info>span{font-size:14.4px}

/* 左侧对话区单独按 110%。 */
#chat .bub.npc{font-size:16.5px}#chat .bub.me{font-size:15.4px}#chat .bub:before{font-size:12.1px}#chat .sys{font-size:14.85px}

/* ---------- 三个工具面板：沿用主页面的冷蓝灰色 ---------- */
#profile,#pad{
  background:linear-gradient(135deg,rgba(232,235,239,.98),rgba(218,226,233,.96) 58%,rgba(243,245,247,.98));
  border-color:rgba(82,111,137,.58);
  box-shadow:0 20px 48px rgba(31,55,77,.24),0 3px 10px rgba(39,67,92,.12),inset 0 1px rgba(255,255,255,.86);
  color:#304a61;
}
#profile{overflow:hidden;border-radius:3px 14px 3px 14px}
#profile:before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,#27384a,#607f9f 54%,#b9cddd);opacity:.92}
#profile small{color:#607f9f}
#profile h3{color:#2f4b63}
#profile p{color:#4c657b}
#close-profile{color:#4b6981}

#pad{border-radius:4px 16px 4px 16px}
#pad[data-view=clues]{background:linear-gradient(145deg,rgba(232,235,239,.98),rgba(215,225,233,.95) 62%,rgba(242,245,247,.98));box-shadow:7px 13px 38px rgba(31,55,77,.2),inset 16px 0 rgba(96,127,159,.07),inset 0 1px rgba(255,255,255,.86)}
#pad[data-view=prompts]{background:linear-gradient(135deg,rgba(232,235,239,.98),rgba(218,226,233,.96) 58%,rgba(243,245,247,.98));border-color:rgba(82,111,137,.48);box-shadow:10px 17px 46px rgba(31,55,77,.2),inset 0 1px rgba(255,255,255,.9)}
.notebook-head{border-color:rgba(82,111,137,.34)}
.notebook-head small{color:#607f9f}
.notebook-head h4{color:#2f4b63!important}
.notebook-head #close-pad{background:rgba(96,127,159,.13);color:#486780}
.clue-entry{border-color:rgba(82,111,137,.3)}
.clue-entry-head span{background:rgba(177,201,220,.62);color:#46647d}
.clue-entry.tier-core .clue-entry-head span{background:rgba(164,180,211,.75);color:#4f5e82}
.clue-entry.tier-shallow .clue-entry-head span{background:rgba(169,205,222,.7);color:#416879}
.clue-entry p,.notebook-empty,.notebook-lead,.manual-copy{color:#557087}
.manual-caution{border-left-color:#607f9f;background:rgba(96,127,159,.1);color:#526b80}
.manual-motto{color:#607f9f}
.manual-pagination{border-color:rgba(82,111,137,.32)}
.manual-pagination button{color:#4f708b}
.manual-pagination button:disabled{color:#8fa5b7}

/* 员工手册翻页：新页从中缝翻入，上一页反向翻出。 */
.manual-pages{perspective:1100px;transform-style:preserve-3d}
.manual-page.active.turn-next,.manual-page.active.turn-prev{backface-visibility:hidden;transform-style:preserve-3d}
.manual-page.active.turn-next{animation:manualPageTurnNext .58s cubic-bezier(.2,.72,.2,1) both;transform-origin:0 50%;box-shadow:-18px 0 24px rgba(39,62,82,.1)}
.manual-page.active.turn-prev{animation:manualPageTurnPrev .58s cubic-bezier(.2,.72,.2,1) both;transform-origin:100% 50%;box-shadow:18px 0 24px rgba(39,62,82,.1)}
@keyframes manualPageTurnNext{0%{opacity:.45;transform:rotateY(-78deg) translateX(-12px);filter:brightness(.86)}55%{opacity:1;transform:rotateY(-12deg) translateX(-2px);filter:brightness(.98)}100%{opacity:1;transform:none;filter:none}}
@keyframes manualPageTurnPrev{0%{opacity:.45;transform:rotateY(78deg) translateX(12px);filter:brightness(.86)}55%{opacity:1;transform:rotateY(12deg) translateX(2px);filter:brightness(.98)}100%{opacity:1;transform:none;filter:none}}

/* 员工手册保留一本薄册的左侧书脊，翻页仍保持简洁渐隐。 */
#pad[data-view=prompts]{background:linear-gradient(135deg,rgba(229,234,240,.98),rgba(213,224,234,.96) 58%,rgba(239,243,247,.98));box-shadow:10px 17px 46px rgba(31,55,77,.2),inset 0 1px rgba(255,255,255,.9)}
#pad[data-view=prompts]:before{content:"";position:absolute;z-index:2;left:10px;top:0;bottom:0;width:8px;pointer-events:none;background:linear-gradient(90deg,#3d5972,#7392ae 42%,rgba(202,218,231,.8));border-right:1px solid rgba(37,61,82,.45);box-shadow:2px 0 5px rgba(30,51,70,.22),inset 1px 0 rgba(255,255,255,.35)}
#pad[data-view=prompts] .notebook-head,#pad[data-view=prompts] #prompt-panel,#pad[data-view=prompts] .manual-pagination{position:relative;z-index:3}

/* 来访者档案：身份先行，资料按阅读层级展开。 */
#profile{padding:25px 25px 22px}
#profile .profile-code{display:block;margin-bottom:7px;font-size:9px;letter-spacing:.15em;text-transform:uppercase}
#profile h3{margin:0 0 14px;font-size:15px;letter-spacing:.12em}
#profile .profile-identity{display:grid;grid-template-columns:1fr auto;column-gap:10px;align-items:baseline;margin:0 0 12px;padding:0 0 12px;border-bottom:1px solid rgba(82,111,137,.27)}
#profile .profile-identity strong{color:#294a65;font-size:22px;font-weight:normal;letter-spacing:.1em}
#profile .profile-identity span{color:#6b8498;font-size:11px;white-space:nowrap}
#profile .profile-occupation{grid-column:1/-1;margin:4px 0 0!important;color:#486b85!important;font-size:12px!important;line-height:1.45!important;letter-spacing:.04em}
#profile .profile-details{display:grid;grid-template-columns:32px minmax(0,1fr);gap:8px 9px;margin:0}
#profile .profile-details dt{color:#6b8498;font-size:10px;letter-spacing:.1em}
#profile .profile-details dd{margin:0;color:#405f76;font-size:11px;line-height:1.65}
#pad[data-view=prompts] .manual-page.active.turn-next,#pad[data-view=prompts] .manual-page.active.turn-prev{animation:manualPageFade .28s ease both;transform:none;box-shadow:none}
@keyframes manualPageFade{from{opacity:0}to{opacity:1}}

/* ---------- 粒子人形上方的引导旁白 ---------- */
:root{--guide-paper:linear-gradient(132deg,rgba(226,231,238,.97),rgba(226,231,238,.94) 54%,rgba(207,222,236,.9));--guide-ink:#345570;--guide-line:rgba(70,80,102,.32)}
#narrator{background:var(--guide-paper);border:1px solid var(--guide-line);box-shadow:0 18px 42px rgba(37,67,96,.18),0 3px 10px rgba(39,67,92,.1),inset 0 1px rgba(255,255,255,.9);color:var(--guide-ink)}
#narrator:hover{border-color:rgba(67,116,155,.8)}
#cup-note{background:var(--guide-paper);border:1px solid var(--guide-line);box-shadow:0 10px 26px rgba(37,67,96,.16),inset 0 1px rgba(255,255,255,.9);color:var(--guide-ink)}

/* 引导结束后沿用当前舞台，只给正式会谈一个很短的交接呼吸。 */
body.session-handoff #stage,
body.session-handoff #chat,
body.session-handoff #state-track,
body.session-handoff #task-board,
body.session-handoff #tool-dock{animation:sessionHandoff .52s ease both}
@keyframes sessionHandoff{0%{opacity:.72;filter:saturate(.86)}100%{opacity:1;filter:none}}

/* 选择页只保留卡片，配色与局内冷灰蓝舞台统一。 */
body.guide-visitor-select .case-selection{justify-content:center;gap:0;padding:24px clamp(24px,5vw,80px)}
body.guide-visitor-select .case-selection-head{display:none}
body.guide-visitor-select .case-selection-grid{width:min(100%,920px);grid-template-columns:repeat(2,minmax(280px,360px));justify-content:center;gap:clamp(58px,9vw,132px)}
body.guide-visitor-select .visitor-card{min-height:430px;color:#344252;background:radial-gradient(circle at 28% 16%,rgba(255,255,255,.94),transparent 43%),linear-gradient(145deg,#e8edf3 0%,#d8e1eb 52%,#cbd7e3 100%);border:1px solid rgba(102,127,155,.38);box-shadow:0 20px 52px rgba(55,75,99,.16),inset 0 1px rgba(255,255,255,.78)}
body.guide-visitor-select .visitor-card-pending,body.guide-visitor-select .visitor-card-active{background:radial-gradient(circle at 50% 16%,rgba(255,255,255,.96),transparent 43%),linear-gradient(145deg,#e8eef4 0%,#d8e2ec 52%,#cbd8e4 100%);opacity:1;filter:none}
body.guide-visitor-select .visitor-card:hover,body.guide-visitor-select .visitor-card:focus-visible{border-color:rgba(83,119,153,.72);box-shadow:0 28px 64px rgba(55,75,99,.22),0 0 0 1px rgba(122,157,190,.16),inset 0 1px rgba(255,255,255,.88)}
body.guide-visitor-select .visitor-card-top{color:#63768b;border-bottom-color:rgba(102,127,155,.18)}
body.guide-visitor-select .visitor-card-number{color:#6684a2}
body.guide-visitor-select .visitor-art{background:radial-gradient(ellipse at 50% 34%,rgba(255,255,255,.9),rgba(218,228,237,.45) 70%,rgba(157,177,198,.14));border-color:rgba(102,127,155,.2);box-shadow:inset 0 0 28px rgba(91,111,139,.08)}
body.guide-visitor-select .visitor-card-info h2,body.guide-visitor-select .visitor-card-info strong{color:#304154}
body.guide-visitor-select .visitor-card-info p,body.guide-visitor-select .visitor-card-info>span{color:#5d6e80}
body.guide-visitor-select .visitor-card-action{color:#527899;border-top-color:rgba(93,124,158,.28)}
@media(max-width:650px){body.guide-visitor-select .case-selection{padding:28px 18px}body.guide-visitor-select .case-selection-grid{grid-template-columns:1fr;gap:20px;max-width:370px}body.guide-visitor-select .visitor-card{min-height:340px}}

/* 卡片文字层级：元信息克制、姓名突出、说明集中，避免每一行都在抢重点。 */
body.guide-visitor-select .visitor-card{padding:22px 24px 20px}
body.guide-visitor-select .visitor-card-top{align-items:center;padding-bottom:12px;font-family:ui-sans-serif,"Noto Sans SC",sans-serif;font-size:11px;line-height:1;letter-spacing:.12em;white-space:nowrap}
body.guide-visitor-select .visitor-card-number{margin:10px 0 2px;font-size:13px;letter-spacing:.34em;line-height:1;opacity:.72}
body.guide-visitor-select .visitor-art{width:calc(100% - 8px);height:212px;margin:0 auto 14px}
body.guide-visitor-select .visitor-particles{display:block;width:100%;height:100%;object-fit:contain;opacity:.95;filter:saturate(.86) contrast(1.02);}
body.guide-visitor-select .visitor-card-pending .visitor-card-info,body.guide-visitor-select .visitor-card-pending .visitor-card-action{opacity:1}
body.guide-visitor-select .visitor-card-info{align-items:center;min-height:108px;gap:7px;text-align:center}
body.guide-visitor-select .visitor-card-info small{font-family:ui-sans-serif,"Noto Sans SC",sans-serif;font-size:11px;line-height:1.4;letter-spacing:.08em}
body.guide-visitor-select .visitor-card-info h2,body.guide-visitor-select .visitor-card-info strong{display:block;margin:0;font-size:30px;font-weight:500;line-height:1.2;letter-spacing:.14em}
body.guide-visitor-select .visitor-card-info p,body.guide-visitor-select .visitor-card-info>span{display:block;max-width:255px;margin:0;font-size:13px;line-height:1.7;letter-spacing:.02em;text-align:center}
body.guide-visitor-select .visitor-card-info>span{white-space:pre-line}
body.guide-visitor-select .visitor-card-action{align-items:center;padding-top:14px;font-family:ui-sans-serif,"Noto Sans SC",sans-serif;font-size:11px;line-height:1.4;letter-spacing:.12em}
@media(max-width:650px){body.guide-visitor-select .visitor-card{padding:18px 20px 16px}body.guide-visitor-select .visitor-art{height:150px;margin-bottom:10px}body.guide-visitor-select .visitor-card-info{min-height:84px}body.guide-visitor-select .visitor-card-info h2,body.guide-visitor-select .visitor-card-info strong{font-size:25px}}

/* 所有系统引导提示共用雾蓝渐变侧条，替换原来的白色强调条。 */
#ghint{position:fixed;border-left:0;overflow:hidden;background:linear-gradient(105deg,rgba(35,49,64,.94),rgba(48,67,84,.9));box-shadow:0 10px 28px rgba(31,55,77,.18),inset 0 1px rgba(255,255,255,.1)}
#ghint:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#dceaf4 0%,#a9c5da 48%,#7f9fb9 100%);box-shadow:1px 0 8px rgba(169,197,218,.42)}
#contcue,#ghint.can-continue:after{color:#9bb8d0}
#contcue{color:#557b98}

@media(max-width:1100px){
  #endcard{padding:34px}.ending-record{width:92vw;height:86vh;padding:24px 24px 0;overflow:hidden}
  .ending-report-grid{height:auto;min-height:calc(100% - 94px);grid-template-columns:minmax(150px,.55fr) minmax(350px,1.25fr)}
  .ending-trend-panel{grid-column:1/-1;border-left:0;border-top:1px solid rgba(65,83,88,.2);padding:24px 8px 8px}#ending-trend{height:190px;margin:10px 0 0}
}
@media(max-width:650px){
  #endcard{padding:0}.ending-record{width:100vw;height:100vh;outline:0;border:0;padding:18px 18px 0}
  .ending-report-head{height:30px}.ending-report-grid{display:flex;flex-direction:column;gap:6px}.ending-orbit-panel{order:1;min-height:340px}.ending-report-notes{order:3;display:grid;grid-template-columns:1fr 1fr;gap:16px;border-right:0;border-top:1px solid rgba(65,83,88,.2);padding:18px 0}.ending-report-notes .ending-evidence{display:none}
  .ending-trend-panel{order:2;padding:18px 0 8px}.ending-orbit-core h2{font-size:24px}.ending-orbit-core p{font-size:13px}.ending-report-notes p{font-size:12px}.ending-actions{height:86px;padding:0 18px;gap:12px}.ending-actions label{grid-template-columns:1fr;gap:4px;max-width:none;font-size:11px}.ending-actions label input{display:none}.ending-actions button{min-width:84px;padding:10px 8px;font-size:11px}
}

/* ---------- 跳过引导：右下角雾蓝玻璃长按按钮 ---------- */
#skip-guide{position:fixed;right:26px;bottom:26px;z-index:44;overflow:hidden;padding:9px 18px;border:1px solid rgba(255,255,255,.78);border-radius:999px;background:rgba(96,127,159,.34);backdrop-filter:blur(8px) saturate(1.1);-webkit-backdrop-filter:blur(8px) saturate(1.1);color:#dbe7f1;font:12px var(--game-serif);letter-spacing:.2em;text-shadow:0 1px 3px rgba(30,48,66,.55);box-shadow:0 4px 14px rgba(31,55,77,.16);opacity:.85;user-select:none;-webkit-user-select:none;touch-action:none;cursor:pointer;transition:opacity .4s ease,border-color .2s ease,box-shadow .2s ease}
#skip-guide[hidden]{display:none}
#skip-guide .fill{position:absolute;left:0;top:0;bottom:0;width:0;background:rgba(190,214,235,.28)}
#skip-guide:hover{opacity:1;border-color:#fff}
#skip-guide.holding{border-color:#fff;color:#fff;box-shadow:0 0 20px rgba(190,214,235,.3)}
#skip-guide.holding .fill{width:100%;transition:width 1.2s linear}
#skip-guide:focus-visible{outline:1px solid rgba(255,255,255,.7);outline-offset:3px}
