/* ═══════════════════════════════════════════
   寻呼2000 · PAGE 2000  独立版样式 v1
   千禧夜：深夜蓝黑打底，光都是台灯暖金
   双色温语言：2027 未来侧＝台灯金（--lcd），
   1999 过去侧＝荧光绿（见 pager-panel）；红戳红为第三签名色
   ═══════════════════════════════════════════ */
/* webfont：与 98 一致（display=swap 加载期间用系统字体保底，不阻塞渲染；
   无此行时 Windows 正文 fallback 到 SimSun 点阵宋体，观感明显劣于第一部） */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;700&family=Noto+Sans+SC:wght@300;400;700&display=swap');
:root{
  /* 千禧夜底色：比 98 的灰蓝更深——跨年夜的天 */
  --bg:#090b11;
  --bg2:#10131c;
  /* 台灯下的纸色：暖白正文 */
  --ink:#e9e4d6;
  --dim:#9d968a;
  --accent:#b3a486;
  /* 台灯金＝未来侧强调（第二层 data-side 接线后，过去侧场景整体覆写为荧光绿） */
  --lcd:#eac484;
  --lcd-dim:#93855f;
  --gold:#e0af57;
  /* 红戳红 */
  --red:#d8544a;
  --ok:#79d69b;
  /* 暖深青铜边框 */
  --line:#332c1d;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{
  min-height:100%;
  background:
    radial-gradient(1100px 560px at 72% -8%, rgba(224,175,87,.07), transparent),
    radial-gradient(900px 520px at 8% 108%, rgba(96,116,168,.10), transparent),
    var(--bg);
  color:var(--ink);
  font-family:"Noto Serif SC","Source Han Serif SC","SimSun",serif;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
.hidden{display:none !important}
button{font-family:inherit;cursor:pointer;touch-action:manipulation}

/* ── 纸纹颗粒氛围层（档案材质；98 是扫描线，2000 是纸） ── */
body.fx-on::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:60;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity:.05;
  mix-blend-mode:overlay;
}

/* ══ 标题画面 ══ */
#title-screen{
  min-height:100vh;min-height:100dvh;
  display:flex;align-items:center;justify-content:center;text-align:center;
  padding:max(24px, env(safe-area-inset-top)) 24px max(24px, env(safe-area-inset-bottom));
}
.t-series{color:var(--dim);letter-spacing:.45em;text-indent:.45em;font-size:.95rem;margin-bottom:20px}
#game-title{
  font-size:clamp(2.2rem,8.5vw,3.4rem);font-weight:700;letter-spacing:.12em;color:var(--ink);
  text-shadow:0 0 26px rgba(224,175,87,.28);position:relative;
}
body.fx-on #game-title{animation:titleBreath 4.6s ease-in-out infinite}
@keyframes titleBreath{
  0%,100%{text-shadow:0 0 22px rgba(224,175,87,.18)}
  50%{text-shadow:0 0 36px rgba(224,175,87,.46)}
}
.t-year{color:var(--lcd);margin-left:.15em}
/* 双年代行：过去侧荧光绿／未来侧台灯金——双色温语言在标题屏的预告 */
.t-years{margin-top:16px;display:flex;align-items:baseline;justify-content:center;gap:14px;
  font-family:"Courier New",monospace;font-size:.95rem;letter-spacing:.22em}
.t-years .y-past{color:#86e2a8;text-shadow:0 0 12px rgba(134,226,168,.35)}
.t-years .y-sep{color:var(--lcd-dim);font-size:.7rem;letter-spacing:.3em}
.t-years .y-future{color:var(--lcd);text-shadow:0 0 12px rgba(234,196,132,.35)}
.t-en{color:var(--dim);letter-spacing:.5em;text-indent:.5em;font-size:.95rem;margin-top:14px}
.t-tagline{color:var(--dim);font-size:1.05rem;font-style:italic;letter-spacing:.12em;margin-top:14px}
.t-date{color:var(--lcd);font-size:.9rem;margin-top:10px;letter-spacing:.15em}
.t-egg{color:var(--lcd-dim);font-size:.88rem;letter-spacing:.08em;margin-top:10px;line-height:1.7;padding:0 18px}
.t-menu{margin-top:46px;display:flex;flex-direction:column;gap:16px;align-items:center}
.t-btn{
  width:min(260px,78vw);padding:15px 30px;font-size:1.08rem;letter-spacing:.35em;text-indent:.35em;
  color:var(--lcd);background:linear-gradient(#191409,#100d06);
  border:1px solid #57482c;border-radius:3px;
  box-shadow:0 0 18px rgba(224,175,87,.10),inset 0 0 22px rgba(224,175,87,.06);
  transition:.18s;min-height:50px;
}
.t-btn:hover{border-color:var(--lcd);box-shadow:0 0 26px rgba(224,175,87,.28)}
.t-btn.ghost{opacity:.88}
/* 「继续调查」金底实心按钮（对齐第一部 #continue-btn：存档入口视觉突出，与「开始」区分） */
#btn-continue{
  color:#1c1506;font-weight:700;
  background:linear-gradient(180deg,#e6b95f,#cf9d3f);border-color:#a8843c;
  box-shadow:0 0 24px #e0af5733, inset 0 1px 0 #ffffff40;
}
#btn-continue:hover{border-color:#f0c878;box-shadow:0 0 32px #e0af5755, inset 0 1px 0 #ffffff40}
.t-author{margin-top:26px;color:var(--lcd);font-size:.9rem;letter-spacing:.3em;font-family:"Courier New",monospace}
.t-note{margin-top:30px;color:#7d7568;font-size:.78rem;letter-spacing:.05em;padding:0 10px}
#game-title{user-select:none;-webkit-user-select:none;cursor:pointer}
/* ══ 状态栏（对齐第一部：只留证物袋/信任值两个短元素，地点·时间移入内容区 scene-label，手机永不挤） ══ */
#status-bar{
  position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:max(11px, env(safe-area-inset-top)) 16px 11px;
  font-family:"Noto Sans SC","Microsoft YaHei",sans-serif;font-size:.92rem;
  background:#131008ee;border-bottom:1px solid var(--line);backdrop-filter:blur(4px);
}
/* 证物袋入口（对齐第一部 inventory-btn：状态栏常驻，手机可点） */
#sb-inv{
  display:flex;align-items:center;gap:5px;flex:none;
  background:linear-gradient(#191409,#110e07);border:1px solid #57482c;border-radius:4px;
  color:var(--lcd);font-size:.78rem;letter-spacing:.08em;padding:5px 10px;min-height:34px;
  font-family:"Noto Sans SC","Microsoft YaHei",sans-serif;transition:.15s;
}
#sb-inv:hover{border-color:var(--lcd);box-shadow:0 0 10px rgba(224,175,87,.2)}
#sb-inv:active{opacity:.65}
#inv-badge{
  font-family:"Courier New",monospace;font-weight:bold;color:var(--gold);
  background:#0f0c07;border:1px solid #3e3626;border-radius:3px;padding:0 5px;min-width:20px;
  text-align:center;line-height:1.5;
}
#sb-cred{color:var(--gold);letter-spacing:.28em;font-size:.82rem;white-space:nowrap;flex:none;
  cursor:pointer;user-select:none;-webkit-user-select:none;padding:6px 0 6px 10px}
#sb-cred:active{opacity:.65}
/* 校验异常读数：全系列唯一显性数值（它对应物理事故，不是人心）——只出「✕ N」，手机不挤 */
#sb-spoof{color:var(--red);font-size:.78rem;letter-spacing:.1em;white-space:nowrap;flex:none;padding:6px 0 6px 10px}
.spoof-note{color:var(--red)}

/* 场景标签行（对齐第一部 scene-label：地点·时间在内容区顶部，长文字不受状态栏限制） */
#scene-label{
  color:var(--lcd-dim);font-size:.78rem;letter-spacing:.18em;line-height:1.7;
  padding-bottom:10px;margin-bottom:22px;border-bottom:1px solid var(--line);
}

/* ══ 主区域 ══ */
#game-main{max-width:720px;margin:0 auto;padding:36px 24px calc(200px + env(safe-area-inset-bottom, 0px))} /* 底部留白须大于右下开关列高度(3×48+2×11+12+安全区≈178+34px)，防遮盖最后的选项按钮 */
#scene-box p{line-height:2.15;margin:0 0 1.25em;font-size:1.05rem;color:var(--ink);text-indent:2em;animation:textFadeIn .5s ease}
/* 段落/选项入场渐入（对齐第一部 textFadeIn）；不带 fill 模式，播完释放 transform，不挡 :active 缩放 */
@keyframes textFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
#scene-box .sys{
  color:var(--lcd-dim);font-family:"Noto Sans SC",monospace;font-size:.85rem;letter-spacing:.1em;
}
#scene-box .stamp-note{color:var(--red)}
em.hot{color:var(--gold);font-style:normal}
.caret::after{content:"▍";color:var(--lcd);animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}

/* 选择项：大触区 + 档案卡立体感（左侧强调条 + 渐变底 + 双层阴影） */
#choice-list{display:flex;flex-direction:column;gap:14px;margin-top:30px}
.choice{
  text-align:left;padding:18px 22px;font-size:.95rem;line-height:1.85;min-height:60px;
  color:var(--ink);background:linear-gradient(180deg,#171309,#100d07);
  border:1px solid #3e3626;border-left:3px solid #8a6d38;border-radius:6px;
  box-shadow:0 3px 10px #00000066, inset 0 1px 0 #ffffff08;
  transition:.16s;width:100%;animation:textFadeIn .35s ease;
}
.choice:hover{
  border-color:#6b5a3a;border-left-color:var(--lcd);background:linear-gradient(180deg,#211a0d,#161108);
  padding-left:30px;box-shadow:0 5px 16px #000000aa, 0 0 12px rgba(224,175,87,.12), inset 0 1px 0 #ffffff0d;
}
.choice:active{transform:scale(.985);box-shadow:0 2px 8px #00000088}
/* 继续/结算按钮：对齐第一部美学（金色 + 宽字距），两侧 CSS 装饰线替代 ▶ 字符 */
.choice.continue{
  display:flex;align-items:center;justify-content:center;gap:16px;
  text-align:center;color:var(--gold);border:1px solid var(--gold);
  background:linear-gradient(180deg,#e0af5714,#e0af5708);min-height:52px;width:auto;align-self:center;
  padding:14px 38px;font-size:.92rem;letter-spacing:.35em;text-indent:.35em;cursor:pointer;margin:20px auto 0;
  box-shadow:0 3px 12px #e0af5722;
}
.choice.continue::before,.choice.continue::after{
  content:"";width:30px;height:1px;flex:none;
}
.choice.continue::before{background:linear-gradient(90deg,transparent,#e0af57aa)}
.choice.continue::after{background:linear-gradient(90deg,#e0af57aa,transparent)}
.choice.continue:hover{border-color:var(--gold);background:#e0af5711;transform:translateY(-2px);box-shadow:0 6px 18px #e0af5733}
.choice.continue:active{transform:translateY(0) scale(.97)}
.choice .tag-danger{color:var(--red);font-weight:bold;margin-right:.5em}
.choice .tag-risk{color:var(--gold);margin-right:.5em}

/* 翻页等待提示：呼吸闪烁，告诉玩家画面在等点击而非卡死 */
.tap-hint{
  color:var(--dim);font-size:.82rem;letter-spacing:.25em;text-align:right;
  padding:10px 4px 2px;user-select:none;pointer-events:none;
  animation:tapBreathe 1.6s ease-in-out infinite;
}
@keyframes tapBreathe{0%,100%{opacity:.25}50%{opacity:.95}}

/* 寻呼机面板：过去侧机器的 CRT 荧光绿质感（双色温语言：绿＝1999，金＝2027） */
.pager-panel{
  display:flex;flex-direction:column;
  border:1px solid #3f5a48;background:
    linear-gradient(180deg,#86e2a80d,transparent 46%),
    linear-gradient(#0b1610,#09110b);border-radius:8px;
  padding:clamp(14px,3.5vw,22px);margin:26px 0;
  box-shadow:0 0 24px rgba(70,140,100,.22),inset 0 0 22px rgba(134,226,168,.07);
}
.pager-head{
  display:flex;justify-content:space-between;gap:8px;color:#6fae87;
  font-family:"Noto Sans SC",monospace;font-size:.82rem;letter-spacing:.16em;flex-wrap:wrap;
  background:rgba(9,20,14,.92);border:1px solid #244634;border-radius:4px;
  padding:8px 12px;margin-bottom:14px;
}
.wt-msg{padding:12px 16px;margin:10px 0;border-radius:12px;line-height:2;font-size:.9rem;max-width:88%;animation:slideUp .35s ease}
.wt-msg .sender{display:block;font-family:"Noto Sans SC",monospace;font-size:.78rem;letter-spacing:.14em;margin-bottom:4px;opacity:.92}
.wt-msg .msg-body{display:block;white-space:pre-wrap}
.wt-msg.them{align-self:flex-start;background:linear-gradient(180deg,#11291cd9,#0c1f14d9);border:1px solid #2c5a3e;color:#d8f2e2;border-radius:12px 12px 12px 4px;box-shadow:0 2px 8px #00000055}
.wt-msg.them .sender{color:#86e2a8}
.wt-msg.me{align-self:flex-end;background:linear-gradient(180deg,#2a2418e6,#211c12e6);border:1px solid #6b5a2a;color:#efe6d4;border-radius:12px 12px 4px 12px;box-shadow:0 2px 8px #00000055}
.wt-msg.me .sender{color:var(--gold)}
.wt-msg.sysline{background:none;border:none;color:#8d8574;font-family:monospace;font-size:.9rem;text-align:center;
  animation:slideUp .35s ease,sysFlicker 2.2s ease-in-out .6s infinite} /* 频道杂音行闪烁，对齐第一部 wt-static */
@keyframes sysFlicker{0%,100%{opacity:.4}50%{opacity:.85}}

/* 预算输入条（输入字号≥16px 防 iOS 聚焦缩放） */
.budget-wrap{margin-top:16px}
.budget-bar{height:9px;background:#131008;border:1px solid var(--line);border-radius:5px;overflow:hidden;margin-bottom:9px}
.budget-fill{height:100%;width:100%;background:var(--lcd);transition:width .15s,background-color .15s}
.budget-fill.warn{background:#e07b39}
.budget-fill.bad{background:var(--red)}
.budget-meta{display:flex;justify-content:space-between;color:var(--dim);
  font-family:monospace;font-size:.85rem;margin-bottom:9px}
.send-row{display:flex;gap:10px}
#budget-input,.combo-input,.ledger-note-input{
  flex:1;min-width:0;background:#0e0c07;border:1px solid #3e3626;border-radius:5px;color:var(--lcd);
  padding:13px 13px;font-size:16px;font-family:inherit;outline:none;
}
#budget-input:focus,.combo-input:focus{border-color:var(--lcd);box-shadow:0 0 10px rgba(224,175,87,.22)}
.btn-send{
  flex:none;padding:0 24px;min-height:50px;background:#1c1609;border:1px solid #57482c;border-radius:5px;
  color:var(--lcd);letter-spacing:.18em;font-size:1rem;
}
.btn-send:hover{border-color:var(--lcd)}
.hint-text{margin-top:12px;color:var(--dim);font-size:.95rem;line-height:1.8}
.budget-extra{display:flex;justify-content:flex-end;margin-top:10px}
.hint-btn{
  background:transparent;border:1px dashed #3e3626;border-radius:4px;color:var(--dim);
  padding:7px 14px;font-size:.85rem;letter-spacing:.08em;transition:.15s;min-height:36px;
}
.hint-btn:hover{border-color:var(--gold);color:var(--gold)}
.hint-btn:disabled{border-style:solid;opacity:.45;cursor:default}
.budget-prompt{
  margin:10px 2px 4px;padding:9px 12px;border-left:3px solid var(--gold);
  background:#1a1f2eaa;color:#d9c39a;font-size:.9rem;line-height:1.7;border-radius:0 4px 4px 0;
}

/* 数字电报谜题 */
.num-panel{border:1px dashed #57482c;border-radius:6px;padding:18px;margin:20px 0;text-align:center;background:#0f0d08}
.num-code{
  font-family:"Courier New",monospace;font-size:clamp(1.3rem,5vw,1.8rem);letter-spacing:.35em;
  color:var(--lcd);text-shadow:0 0 14px rgba(224,175,87,.28);margin:6px 0 2px;
}
.num-sub{color:var(--dim);font-size:.9rem;margin-bottom:8px}
.num-opts{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.num-opt{
  text-align:left;padding:14px 16px;font-size:.98rem;line-height:1.7;min-height:50px;
  background:#141008bb;border:1px solid var(--line);border-radius:4px;color:var(--ink);transition:.15s;
}
.num-opt:hover{border-color:var(--lcd)}

/* 台账核对 */
.ledger-list{display:flex;flex-direction:column;gap:9px;margin:20px 0}
.ledger-row{
  display:flex;align-items:flex-start;gap:10px;text-align:left;
  padding:13px 15px;font-size:1rem;line-height:1.75;
  background:#14100899;border:1px solid var(--line);border-radius:4px;color:var(--ink);
  transition:.14s;min-height:50px;
}
.ledger-row .lno{color:var(--lcd-dim);font-family:monospace;flex:none;margin-top:2px}
.ledger-row.picked{border-color:var(--gold);background:#231d10aa}
.ledger-row.right{border-color:var(--ok);background:#10241aaa}
.ledger-row.wrongpick{border-color:var(--red);background:#2a1214aa}
.ledger-hint{color:var(--dim);font-size:.92rem;line-height:1.8}

/* 调查面板容器（对齐第一部 investigation-area：标题 + 描述 + 卡片容器） */
.investigation-area{
  background:linear-gradient(180deg,#151008f2,#0e0b06f2);border:1px solid var(--line);border-radius:10px;
  padding:18px 18px 16px;margin:24px 0;box-shadow:0 0 24px rgba(10,8,4,.5), inset 0 1px 0 #ffffff06;
  animation:slideUp .45s ease;
}
.inv-scene-title{font-size:1.05rem;color:var(--gold);letter-spacing:.08em;padding-bottom:10px;margin-bottom:6px;border-bottom:1px solid var(--line)}
.inv-scene-desc{color:var(--dim);font-size:.88rem;margin-bottom:14px;line-height:1.7}
@keyframes slideUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
/* 调查点：图标徽章 + 名称 + 已查标记，加高贴合（对齐第一部 inv-spot） */
.invest-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0 6px}
.invest-grid > *{min-width:0} /* grid item 默认 min-width:auto 会被内容撑破列宽，窄屏第二列溢出 */
.inv-point{
  display:flex;align-items:center;gap:14px;text-align:left;width:100%;max-width:100%;
  padding:16px 18px;min-height:82px;cursor:pointer;
  border:1px solid #3e3626;border-radius:8px;
  background:linear-gradient(180deg,#181208f2,#100c06f2);
  color:var(--ink);font-size:1rem;letter-spacing:.05em;line-height:1.55;
  box-shadow:0 2px 12px #00000066,inset 0 1px 0 #ffffff08;transition:.2s;
}
.inv-point .spot-icon{
  font-size:1.6rem;line-height:1;flex:none;width:44px;text-align:center;
  filter:drop-shadow(0 1px 2px #00000088);
}
.inv-point .spot-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem}
.inv-point .spot-found{color:var(--gold);font-weight:700;flex:none;font-size:1.1rem}
.inv-point:hover{border-color:var(--lcd);background:linear-gradient(180deg,#221a0c,#161008);transform:translateY(-2px);box-shadow:0 6px 18px rgba(224,175,87,.15)}
.inv-point.done{border-color:#5a7a3a;background:linear-gradient(180deg,#141c0ef2,#0f1608f2)}
.inv-point.done .spot-icon{opacity:.85}
.inv-point.done .spot-name{color:#b8d48a}
.inv-point.done:hover{transform:none;box-shadow:0 2px 12px #00000066}
.invest-done-btn,.deploy-submit{
  display:block;margin:22px auto 0;padding:14px 44px;font-size:1.02rem;letter-spacing:.3em;text-indent:.3em;
  color:var(--lcd);background:#1c1609;border:1px solid #57482c;border-radius:4px;min-height:52px;
}

/* 布防预案 */
.deploy-node{border:1px solid var(--line);border-radius:5px;padding:16px;margin:13px 0;background:#120f08}
.deploy-node h4{font-size:1rem;color:var(--gold);letter-spacing:.08em;margin-bottom:12px}
.deploy-opts{display:flex;flex-wrap:wrap;gap:9px}
.deploy-opt{
  margin:0;padding:12px 15px;font-size:.98rem;line-height:1.55;min-height:46px;
  border:1px solid #3e3626;border-radius:4px;background:#100d07;color:var(--dim);transition:.14s;
}
.deploy-opt.sel{color:var(--lcd);border-color:var(--lcd);background:#2a2110}
.deploy-result{margin-top:16px;border-top:1px dashed var(--line);padding-top:14px;line-height:2;color:var(--ink)}

/* 推理矩阵 */
.logic-clues{color:var(--dim);font-size:.98rem;line-height:2;margin-bottom:16px}
.logic-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:8px -6px;padding:0 6px}
.logic-table{border-collapse:collapse;margin:6px auto 16px;font-family:"Noto Sans SC";font-size:.92rem}
.logic-table td,.logic-table th{border:1px solid var(--line);padding:9px 11px;text-align:center;color:var(--dim);white-space:nowrap}
.logic-cell{cursor:pointer;width:52px;height:48px;font-size:1.15rem;color:var(--lcd);user-select:none}
.logic-hintbtn{display:block;margin:0 auto;padding:11px 30px;font-size:.95rem;letter-spacing:.2em;
  color:var(--dim);background:#161108;border:1px solid #4a3d24;border-radius:4px;min-height:46px}

/* 面板（证物袋/底单册） */
#overlay{position:fixed;inset:0;z-index:80;background:#04060ccc;display:flex;align-items:flex-end;justify-content:center}
@media (min-width:701px){ #overlay{align-items:center} }
#panel{
  width:min(580px,100vw);max-height:86vh;display:flex;flex-direction:column;
  background:#131008;border:1px solid #57482c;border-radius:10px 10px 0 0;box-shadow:0 0 60px #000;
  padding-bottom:env(safe-area-inset-bottom);
}
@media (min-width:701px){
  #panel{border-radius:8px;width:min(580px,94vw);padding-bottom:0}
}
.panel-head{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;border-bottom:1px solid var(--line);
  font-family:"Noto Sans SC";letter-spacing:.28em;color:var(--lcd);font-size:1rem;position:sticky;top:0;background:#131008}
#panel-close{background:none;border:none;color:var(--dim);font-size:1.25rem;padding:4px 10px;min-width:44px;min-height:44px}
#panel-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 18px calc(18px + env(safe-area-inset-bottom));line-height:1.95}
.clue-item{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:8px;padding:13px 15px;margin:10px 0;background:linear-gradient(180deg,#181208,#100c06);transition:.15s}
.clue-item:hover{border-color:#57482c;background:linear-gradient(180deg,#211a0c,#161008)}
.clue-icon{font-size:1.4em;line-height:1.2;flex-shrink:0}
.clue-body{flex:1;min-width:0}
.clue-item b{color:var(--lcd);font-weight:normal;display:block;margin-bottom:4px;letter-spacing:.08em;font-size:1.02rem}
.clue-body span{color:var(--dim);font-size:.95rem}
.book-progress{color:var(--gold);font-size:.9rem;letter-spacing:.15em;margin:4px 0 12px;font-family:"Noto Sans SC"}

/* 结案报告 */
.report-box{border:1px solid #57482c;border-radius:6px;background:#0f0c07;padding:18px;margin:20px 0}
.report-line{display:flex;justify-content:space-between;gap:14px;padding:10px 4px;border-bottom:1px dashed #38301e;
  font-size:1rem;line-height:1.8}
.report-line:last-child{border-bottom:none}
.report-line b{color:var(--dim);font-weight:normal;letter-spacing:.1em}
.report-line span{color:var(--lcd);text-align:right}

/* 角落开关 & 通知 */
#corner-switches{
  position:fixed;right:calc(12px + env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));z-index:90;
  display:flex;flex-direction:column;gap:11px;
}
#corner-switches button{
  width:48px;height:48px;border-radius:50%;border:1px solid #3e3626;background:#131008dd;
  color:var(--lcd);font-size:1.15rem;transition:.15s;box-shadow:0 2px 10px #00000066;
}
#corner-switches button.off{opacity:.4}
#toast{
  position:fixed;left:50%;transform:translateX(-50%);
  bottom:calc(84px + env(safe-area-inset-bottom));z-index:95;pointer-events:none; /* 通知不拦截点击，防挡右下开关 */
  background:#171208f0;border:1px solid #57482c;color:var(--lcd);border-radius:5px;
  padding:12px 22px;font-size:.98rem;letter-spacing:.1em;white-space:nowrap;
  box-shadow:0 4px 18px #000a;
}

/* 特效：闪烁与撕裂（对齐第一部 fxGlitch：hue-rotate 色彩撕裂 + 抖动） */
#fx-flashlayer{position:fixed;inset:0;z-index:70;pointer-events:none;opacity:0;transition:opacity .18s}
#fx-flashlayer.ok{background:#17362733;opacity:1}
#fx-flashlayer.err{background:#3a121233;opacity:1}
#fx-flashlayer{display:flex;align-items:center;justify-content:center;font-family:"Courier New",monospace;font-size:clamp(1.1rem,3vw,1.6rem);font-weight:700;letter-spacing:.12em}
#fx-flashlayer.ok{color:#33ff88;text-shadow:0 0 18px rgba(51,255,136,.6)}
#fx-flashlayer.err{color:#ff3b5c;text-shadow:0 0 18px rgba(255,59,92,.6)}
/* 危机红光脉冲（对齐第一部 fx-danger：内阴影呼吸灯，heat≥10 时全程循环） */
#fx-danger{
  position:fixed;inset:0;z-index:69;pointer-events:none;opacity:0;
  box-shadow:inset 0 0 140px rgba(220,38,38,.5);
}
#fx-danger.active{animation:fxDangerPulse 1.1s ease-in-out infinite}
@keyframes fxDangerPulse{
  0%,100%{opacity:.14}
  50%{opacity:.82}
}
/* 特效关闭：红光直接不显示，与第一部 fx-off 一致（不做静止的 0.35 静帧） */
body.fx-off #fx-danger{display:none}
body.fx-on .glitching{animation:gshake .32s linear both}
@keyframes gshake{
  0%{transform:translate(0);filter:none}
  20%{transform:translate(-3px,2px);filter:hue-rotate(90deg)}
  40%{transform:translate(3px,-2px);filter:hue-rotate(180deg) saturate(1.6)}
  60%{transform:translate(-2px,-1px);filter:saturate(2)}
  80%{transform:translate(2px,1px);filter:hue-rotate(270deg)}
  100%{transform:none;filter:none}
}

/* 寻呼机面板特效：CRT 荧光绿扫描线纹理 + 顶部辉光 + 呼吸脉冲（绿＝过去侧机房的色温） */
.pager-panel{position:relative}
.pager-panel::before{
  content:"";position:absolute;inset:0;pointer-events:none;border-radius:8px;z-index:1;
  background:
    repeating-linear-gradient(0deg, #86e2a80b 0 1px, transparent 1px 4px),
    repeating-linear-gradient(90deg, #86e2a806 0 1px, transparent 1px 5px),
    radial-gradient(circle at 50% 0%, #86e2a810, transparent 60%);
  mix-blend-mode:screen;opacity:.6;
  animation:pagerBreath 3.2s ease-in-out infinite; /* 背景脉冲：CRT 待机辉光缓慢呼吸 */
}
@keyframes pagerBreath{
  0%,100%{opacity:.42}
  50%{opacity:.68}
}
.pager-panel>*{position:relative;z-index:2}
/* 寻呼消息到位时的瞬时干扰：随机加在单条消息上 */
body.fx-on .wt-msg.msg-glint{animation:msgGlint .3s steps(2) both}
@keyframes msgGlint{
  0%{filter:none;transform:none}
  30%{filter:hue-rotate(60deg) saturate(1.8);transform:translateX(2px)}
  60%{filter:hue-rotate(-40deg);transform:translateX(-2px)}
  100%{filter:none;transform:none}
}

/* 无障碍降级 */
@media (prefers-reduced-motion: reduce){
  body.fx-on::after{display:none}
  body.fx-on #game-title,body.fx-on .glitching{animation:none !important}
  .pager-panel::before{animation:none !important}      /* LCD 呼吸脉冲降级为静态 */
  .wt-msg.sysline{animation:slideUp .35s ease !important} /* 杂音闪烁关闭，保留入场 */
}
body.fx-off::after{display:none}

/* ═══════════ 移动端优先的收敛适配 ═══════════ */
@media (max-width:700px){
  html{font-size:16px}                       /* 与第一部一致，正文≈16.8px */
  #status-bar{font-size:.82rem;gap:6px 10px;padding:max(9px, env(safe-area-inset-top)) 10px 9px}
  #sb-inv{padding:4px 7px;font-size:.72rem;min-height:32px;gap:4px}
  #inv-badge{min-width:17px;padding:0 3px;font-size:.72rem}
  #sb-cred{letter-spacing:.12em;font-size:.72rem}
  #game-main{padding:26px 16px calc(200px + env(safe-area-inset-bottom, 0px))}
  #scene-label{font-size:.72rem;letter-spacing:.14em;margin-bottom:16px}
  #scene-box p{font-size:1.05rem;line-height:2.2;margin-bottom:1.3em}
  .choice{padding:17px 16px;font-size:.95rem}
  .wt-msg{font-size:.9rem;padding:12px 13px}
  .invest-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .inv-point{padding:13px;gap:11px;font-size:.92rem;min-height:70px}
  .inv-point .spot-icon{width:36px;font-size:1.35rem}
  .wt-msg{max-width:94%}
  .deploy-node{padding:13px}
  .deploy-opt{width:auto;flex:1 1 auto;padding:12px 13px}
  .logic-table th,.logic-table td{padding:8px 9px}
  .logic-cell{width:58px;height:52px}
  .report-line{font-size:.98rem}
  .send-row{flex-wrap:wrap}
  .btn-send{flex:1 1 100%;height:50px}
}
@media (max-width:400px){
  #status-bar{gap:5px 8px}
  #sb-inv{padding:3px 5px;font-size:.66rem}
  #sb-cred{letter-spacing:.18em;font-size:.68rem}
  .t-btn{letter-spacing:.28em;text-indent:.28em}
  .invest-grid{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════
   自定义鼠标指针（侦探放大镜主题，仅精确指针设备启用）
   使用本作台灯金色系 —— 与第一部同款逻辑
   ═══════════════════════════════════════════ */
@media (pointer: fine){
  body{ cursor:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2228%22%20height=%2228%22%3E%3Ccircle%20cx=%2211%22%20cy=%2211%22%20r=%227%22%20style=%22fill:rgba(234,196,132,.10);stroke:%23c9b184;stroke-width:2.5%22/%3E%3Cline%20x1=%2216.5%22%20y1=%2216.5%22%20x2=%2225%22%20y2=%2225%22%20style=%22stroke:%23c9b184;stroke-width:3;stroke-linecap:round%22/%3E%3C/svg%3E") 11 11, auto; }
  button,[onclick]{ cursor:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2228%22%20height=%2228%22%3E%3Ccircle%20cx=%2211%22%20cy=%2211%22%20r=%227%22%20style=%22fill:rgba(224,175,87,.12);stroke:%23e0af57;stroke-width:2.5%22/%3E%3Cline%20x1=%2216.5%22%20y1=%2216.5%22%20x2=%2225%22%20y2=%2225%22%20style=%22stroke:%23e0af57;stroke-width:3;stroke-linecap:round%22/%3E%3C/svg%3E") 11 11, pointer; }
  input,textarea{ cursor:text; }
}

/* ═══════════════════════════════════════════
   主题曲片尾播放器（《隔着一年半》）
   ═══════════════════════════════════════════ */
/* 片尾收束献词：与正文同基准、居中 */
.ending-verse{
  text-align:center;letter-spacing:.12em;line-height:2.2;
  max-width:560px;margin:1.4em auto;color:var(--ink);
}
.ending-verse.sys{color:var(--lcd-dim)}
.ending-verse.stamp-note{color:var(--red)}

/* ═══════════ 片尾结局屏（对标第一部 ending-screen） ═══════════ */
#ending-screen{
  position:fixed;inset:0;z-index:100;overflow-y:auto;-webkit-overflow-scrolling:touch;
  background:
    radial-gradient(900px 520px at 50% -12%, rgba(224,175,87,.06), transparent),
    var(--bg);
  display:flex;flex-direction:column;align-items:center;
}
#ending-screen.hidden{display:none}
.ending-content{
  width:min(680px,92vw);margin:auto;
  padding:max(46px, env(safe-area-inset-top)) 4px calc(64px + env(safe-area-inset-bottom));
  text-align:center;
}
#ending-title{
  font-family:"Noto Serif SC","SimSun",serif;font-size:clamp(1.9rem,7.2vw,2.9rem);font-weight:700;
  letter-spacing:.1em;color:var(--ink);text-shadow:0 0 22px rgba(224,175,87,.25);margin-bottom:6px;
}
#ending-verse{margin:18px auto 4px;max-width:560px}
#ending-verse p{
  text-align:center;letter-spacing:.1em;line-height:2.2;margin:1.05em auto;
  max-width:560px;color:var(--ink);font-size:1.05rem;
}
#ending-verse .sys{color:var(--lcd-dim);font-family:"Noto Sans SC",monospace;font-size:.9rem;letter-spacing:.1em}
#ending-verse .stamp-note{color:var(--red)}

/* 结案回执卡 */
#ending-casefile{
  margin:26px auto 0;max-width:560px;text-align:left;
  border:1px solid #3e3626;border-radius:8px;
  background:linear-gradient(180deg,#120e07,#0d0a05);
  padding:20px 22px;box-shadow:0 0 26px #00000073,inset 0 0 40px rgba(10,8,4,.4);
}
.casefile-signal{display:flex;align-items:center;justify-content:space-between;gap:.4rem;
  color:var(--lcd-dim);font:.66rem "Courier New",monospace;letter-spacing:.12em;margin-bottom:.6rem}
.casefile-signal::before{content:"";width:34px;height:5px;margin-right:.55rem;flex:none;
  background:repeating-linear-gradient(90deg,var(--lcd) 0 2px,transparent 2px 5px);box-shadow:0 0 8px rgba(224,175,87,.4)}
.casefile-signal span{margin-left:auto;color:var(--lcd-dim)}
.casefile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
  padding:0 0 .9rem;border-bottom:1px solid rgba(224,175,87,.26)}
.casefile-kicker{color:var(--dim);font-family:"Courier New",monospace;font-size:.68rem;letter-spacing:.08em;line-height:1.5}
.casefile-title{color:var(--ink);font-family:"Noto Serif SC",serif;font-size:1.16rem;margin-top:.2rem}
.casefile-stamp{flex:0 0 auto;color:var(--gold);border:1px solid var(--gold);padding:.3rem .5rem;
  font:700 .7rem "Courier New",monospace;letter-spacing:.08em;transform:rotate(-4deg);
  box-shadow:inset 0 0 0 2px rgba(224,175,87,.08)}
.casefile-role{margin:1rem 0 .8rem;color:var(--ink);font-family:"Noto Serif SC",serif;font-size:1.24rem}
.casefile-role span{display:block;margin-bottom:.3rem;color:var(--dim);
  font-family:"Courier New",monospace;font-size:.66rem;letter-spacing:.12em}
.casefile-route{color:var(--dim);font-size:.92rem;line-height:1.75;padding:.82rem 0;
  border-top:1px dashed rgba(224,175,87,.18);border-bottom:1px dashed rgba(224,175,87,.18)}
.casefile-trust{color:var(--lcd);font:.7rem "Courier New",monospace;letter-spacing:.06em}
.casefile-badges{margin-top:.9rem;border-top:1px solid rgba(224,175,87,.16)}
.casefile-badge{display:grid;grid-template-columns:2.2rem 1fr;gap:.4rem;min-width:0;
  padding:.68rem 0;border-bottom:1px solid rgba(224,175,87,.14)}
.casefile-index{color:var(--lcd);font:.78rem "Courier New",monospace;padding-top:.12rem}
.casefile-badge strong{display:block;color:var(--gold);font-family:"Noto Serif SC",serif;font-size:.92rem}
.casefile-badge span{display:block;margin-top:.2rem;color:var(--dim);font-size:.72rem;line-height:1.35}

/* 回执分享 */
#ending-share{margin:20px auto 0;max-width:560px;text-align:center}
#ending-share-btn{
  padding:11px 30px;border-radius:5px;cursor:pointer;
  background:#171208;border:1px solid #57482c;color:var(--lcd);
  letter-spacing:.18em;font-size:.95rem;transition:.15s;
}
#ending-share-btn:hover{background:#241c0e}
#ending-share-btn:disabled{opacity:.5;cursor:default}
#ending-share-status{color:var(--dim);font-size:.82rem;letter-spacing:.05em;margin-top:12px}

/* 制作署名 */
#ending-credit{margin:26px auto 0;max-width:560px;color:var(--dim);font-size:.92rem;line-height:1.9;letter-spacing:.05em}
#ending-credit strong{color:var(--gold);font-weight:400}

/* 主题曲播放器 */
#ending-song{margin:24px auto 0;max-width:560px;text-align:center;
  background:linear-gradient(180deg,#131007,#0d0a05);border:1px solid #3c3320;
  border-radius:8px;padding:20px 22px 24px;color:var(--dim)}
#ending-song-actions{display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap}
#ending-song-btn{
  padding:10px 26px;border-radius:5px;cursor:pointer;
  background:#171208;border:1px solid #57482c;color:var(--lcd);
  letter-spacing:.2em;font-size:.94rem;transition:.15s;
}
#ending-song-btn:hover{background:#241c0e}
#ending-song-btn.playing{border-color:var(--lcd);box-shadow:0 0 18px rgba(224,175,87,.28)}
#ending-song-link{color:var(--lcd);font-size:.78rem;opacity:.85;text-decoration:none;letter-spacing:.05em}
#ending-song-link:hover{opacity:1;text-decoration:underline}
#ending-song-status{margin-top:14px;color:var(--gold);letter-spacing:.1em;font-size:1rem}
#ending-song-meta{margin-top:6px;color:var(--dim);font-size:.78rem;letter-spacing:.06em}
#ending-lyrics{margin:18px auto 0;max-width:540px;text-align:center;max-height:200px;overflow-y:auto;padding:2px;scrollbar-width:thin}
#ending-lyrics.hidden{display:none}
.lyrics-title{color:var(--dim);font-size:.72rem;letter-spacing:.3em;margin-bottom:10px}
.lyrics-body{padding:2px}
.lyric-line{margin:5px 0;font-size:.92rem;color:#8d8574;transition:color .25s,transform .25s;line-height:1.7;cursor:default}
.lyric-line.active{color:var(--lcd);font-weight:600;transform:scale(1.03)}
#ending-lyrics.signal-live{border-top:1px dashed #3c3320;padding-top:14px}

/* 回到标题 */
#ending-restart{
  margin:30px auto 0;padding:13px 40px;font-size:1rem;letter-spacing:.3em;text-indent:.3em;
  color:var(--lcd);background:#1c1609;border:1px solid #57482c;border-radius:4px;min-height:52px;transition:.15s;
}
#ending-restart:hover{border-color:var(--lcd);background:#241c0e}

/* 片尾滚动（复用 .credits-roll） */
#ending-roll{margin:0;max-width:560px}
#ending-roll.hidden{display:none}

/* ══ 结案回执（报告屏） ══ */
.receipt-zone{margin:30px auto 0;max-width:560px;text-align:center}
.receipt-status{color:var(--dim);font-size:.82rem;letter-spacing:.05em;margin-bottom:12px}
.receipt-btn{
  padding:11px 30px;border-radius:5px;cursor:pointer;
  background:#171208;border:1px solid #57482c;color:var(--lcd);
  letter-spacing:.18em;font-size:.95rem;transition:.15s;
}
.receipt-btn:hover{background:#241c0e}
.receipt-btn:disabled{opacity:.5;cursor:default}

/* ══ 滚动演职员表（片尾） ══ */
.credits-roll{
  position:relative;height:230px;margin:34px auto 0;max-width:560px;
  overflow:hidden;color:var(--dim);border-radius:6px;text-align:center;
  background:linear-gradient(180deg,#090b11 0%,transparent 18%,transparent 78%,#090b11 100%),
    rgba(255,255,255,0.012);
}
.credits-roll .credits-track{
  position:absolute;left:0;right:0;bottom:-280px;
  animation:rollUp 46s linear infinite;
}
.credits-roll p{margin:.62rem 0;font-size:1rem;letter-spacing:.08em;line-height:1.7}
.credits-roll .roll-title{color:var(--gold);font-size:1.32rem;font-weight:700}
.credits-roll .roll-label{color:var(--lcd);font-size:.74rem;letter-spacing:.28em}
.credits-roll .roll-final{color:var(--gold);font-size:1.06rem}
.credits-roll .roll-gap{height:1.9rem}
@keyframes rollUp{from{transform:translateY(0)}to{transform:translateY(-700px)}}
@media (prefers-reduced-motion:reduce){
  .credits-roll .credits-track{position:static;animation:none;padding:1rem 0}
  .credits-roll{height:auto;max-height:240px;overflow-y:auto}
}

/* P1-1: 内联强调 + 关键词自动标识（人名/物品/地点，对齐第一部 highlight 金色） */
#scene-box .hl, .ending-verse .hl, #panel-body .hl { color: var(--gold); font-weight: 700; }
#scene-box .inline-danger, .ending-verse .inline-danger, #panel-body .inline-danger { color: var(--red); font-weight: 700; }

/* P1-3: 寻呼消息时间戳 + 轻触加速提示 */
.msg-time{display:block;font-size:.72rem;color:var(--dim,#6a7a9a);margin-top:3px;font-variant-numeric:tabular-nums;letter-spacing:.05em}
.pager-skip-hint{font-size:.7rem;color:var(--dim,#6a7a9a);margin-left:6px;opacity:0;transition:opacity .3s}
.pager-skip-hint.active{opacity:1}

/* P2-1: 限时谜题倒计时 */
.num-timer{text-align:center;font-size:.95rem;color:var(--dim,#8a9ab5);margin:8px 0;font-variant-numeric:tabular-nums}
.num-timer .nt-sec{color:var(--lcd,#00e5ff);font-weight:700;font-size:1.15rem}
.num-break{display:block;color:var(--danger,#ff2d55);margin-bottom:8px}
.num-relock{display:block;margin:6px auto 0;padding:6px 18px;background:transparent;border:1px solid var(--lcd);color:var(--lcd);cursor:pointer;font-family:inherit;font-size:.9rem}
.num-relock:hover{background:rgba(224,175,87,.12)}

/* ═══ 双向调查（2000 新系统）：左 2027 纸档 × 右当年纸堆 ═══
   双色温语言：左栏＝2027 台灯金，右栏＝当年机房绿 */
.dual-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.dual-col {
  background: rgba(24, 18, 8, 0.55);
  border: 1px solid #3e3626; border-radius: 10px;
  padding: 12px; display: flex; flex-direction: column; gap: 10px;
}
.dual-col-title {
  color: var(--lcd); font-size: 0.86rem; letter-spacing: 0.12em;
  border-bottom: 1px dashed #57482c; padding-bottom: 8px;
}
.dual-right .dual-col-title { color: #86e2a8; }
.dual-col .inv-point { width: 100%; text-align: left; }
.dual-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.dual-chip {
  background: #131008; color: var(--ink);
  border: 1px solid #3e3626; border-radius: 8px;
  padding: 8px 14px; cursor: pointer; font-size: 0.92rem;
}
.dual-chip:hover { border-color: var(--lcd); }
.dual-chip.picked { border-color: #e0af57; color: #e0af57; }
.dual-chip:disabled { opacity: 0.45; cursor: default; }
@media (max-width: 700px) { .dual-grid { grid-template-columns: 1fr; } }


/* ═══ 2000：洪流消息雨（升级版）═══ */
#flood-rain { position: fixed; inset: 0; pointer-events: none; overflow: hidden; z-index: 50; }
.rain-msg {
  position: absolute; top: -8%;
  font-family: 'Noto Sans SC', monospace;
  font-size: 0.78rem; letter-spacing: 0.05em;
  color: #5a7396; white-space: nowrap;
  animation: rainFall linear forwards;
  pointer-events: none;
  text-shadow: 0 0 6px rgba(159,220,255,0.15);
}
.rain-msg.rain-md { font-size: 0.92rem; color: #7ea8cc; }
.rain-msg.rain-lg { font-size: 1.05rem; color: #9fdcff; text-shadow: 0 0 12px rgba(159,220,255,0.3); }
.rain-catch {
  pointer-events: auto; cursor: pointer;
  color: #e0af57 !important;
  text-shadow: 0 0 8px rgba(224,175,87,0.4) !important;
  border-bottom: 1px dotted rgba(224,175,87,0.3);
}
.rain-catch:hover { text-shadow: 0 0 16px rgba(224,175,87,0.6); }
@keyframes rainFall {
  0%  { transform: translate(0, 0) rotate(var(--drift, 0deg)); opacity: 0; }
  8%  { opacity: var(--op, 0.3); }
  85% { opacity: var(--op, 0.3); }
  100% { transform: translate(var(--dx, 0px), 110vh) rotate(var(--drift, 0deg)); opacity: 0; }
}
.flood-pulse {
  position: fixed; inset: 0; z-index: 40; pointer-events: none;
  animation: floodPulse 2.4s ease-in-out infinite;
}
@keyframes floodPulse {
  0%, 100% { box-shadow: inset 0 0 60px rgba(159,220,255,0.04); }
  50% { box-shadow: inset 0 0 120px rgba(159,220,255,0.09); }
}
.flood-hook {
  position: fixed; top: 40%; left: 50%;
  transform: translate(-50%, -50%);
  z-index: 60; pointer-events: none;
  color: #e0af57; font-size: 1.15rem; letter-spacing: 0.1em;
  text-shadow: 0 0 20px rgba(224,175,87,0.3);
  text-align: center;
  animation: hookFade 4s ease-in-out forwards;
}
.flood-hook .hook-year { display: block; font-size: 0.78rem; color: #71859f; margin-top: 6px; }
@keyframes hookFade {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(0.95); }
  15% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  80% { opacity: 1; }
  100% { opacity: 0; }
}
  100% { transform: translateY(110vh); opacity: 0; }
}

/* ═══ 2000：静默 0 格输入框 ═══ */
.silence-box { margin: 16px 0; padding: 14px; border: 1px dashed #3e3626; border-radius: 8px; }
.silence-limit { color: var(--dim); font-size: 0.82rem; margin-bottom: 8px; }
.silence-box input {
  width: 100%; padding: 10px 12px;
  background: #131008; border: 1px solid #3e3626; border-radius: 6px;
  color: var(--lcd); font-size: 0.95rem; outline: none;
}
.silence-note { color: #e0af57; font-size: 0.82rem; margin-top: 8px; }

/* ═══ 2000：双时钟压秒环（环＝表，两块板才是把手）═══ */
.dualclock-ring {
  width: 140px; height: 140px; margin: 18px auto 4px;
  border-radius: 50%; border: 3px solid #4a3f28;
  overflow: hidden; position: relative; cursor: default;
  user-select: none; -webkit-user-select: none;
  touch-action: none;
}
.dualclock-fill {
  position: absolute; bottom: 0; left: 0; right: 0; height: 0%;
  background: linear-gradient(to top, rgba(234,196,132,0.28), rgba(234,196,132,0.07));
  transition: height 2.35s linear;
}
.dualclock-label {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  color: var(--lcd); font-size: 0.88rem; text-align: center; padding: 0 14px;
  pointer-events: none;
}
.dualclock-pads { display: flex; justify-content: center; align-items: stretch; gap: 18px; margin: 14px 0 4px; }
.dcpad {
  width: 132px; min-height: 108px; padding: 12px 10px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  background: #131008; border-radius: 10px; cursor: pointer;
  font-family: inherit; -webkit-tap-highlight-color: transparent;
  user-select: none; -webkit-user-select: none; touch-action: none;
  transition: border-color .12s, box-shadow .12s, transform .08s;
}
.dcpad .pad-name { font-size: 0.86rem; letter-spacing: .04em; }
.dcpad .pad-act { font-size: 0.78rem; opacity: .8; }
.dcpad .pad-state { font-size: 0.7rem; letter-spacing: .18em; opacity: .55; }
.dcpad.past { border: 1px solid #3f5a48; color: #86e2a8; background: #0b120d; }
.dcpad.now { border: 1px solid #4a3f28; color: var(--lcd); }
.dcpad.down.past { border-color: #86e2a8; box-shadow: inset 0 0 22px rgba(134,226,168,.22); }
.dcpad.down.now { border-color: var(--lcd); box-shadow: inset 0 0 22px rgba(234,196,132,.22); }
.dcpad.down { transform: translateY(1px); }
.dcpad.latched .pad-state { opacity: 1; }
.dcpad:disabled { opacity: .45; cursor: default; }
.dc-help { text-align: center; color: var(--dim); font-size: .74rem; letter-spacing: .06em; opacity: .72; margin: -2px 0 8px; }
@media (max-width: 700px) {
  .dualclock-pads { gap: 12px; }
  .dcpad { width: 44vw; max-width: 158px; min-height: 96px; }
}

/* ═══ 2000：双色关键词（过去侧绿）═══ */
.hl-past { color: #6fae87; }

/* ═══ 2000：洪流背景压暗 ═══ */
#flood-dim {
  position: fixed; inset: 0; z-index: 45;
  pointer-events: none;
  background: rgba(4, 6, 10, 0.45);
  animation: floodDimIn 3s ease-in forwards;
}
@keyframes floodDimIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
