:root {
  --bg: #080b0f;
  --surface: #10151b;
  --surface-2: #151b22;
  --text: #f4f7f9;
  --muted: #87929f;
  --line: rgba(255, 255, 255, .1);
  --line-strong: rgba(255, 255, 255, .18);
  --accent: #43c7ff;
  --accent-rgb: 67, 199, 255;
  --accent-ink: #041219;
  --exact: #65d98a;
  --exact-rgb: 101, 217, 138;
  --tip: #ffc857;
  --tip-rgb: 255, 200, 87;
  --wrong: #ff6b72;
  --wrong-rgb: 255, 107, 114;
  --unknown: #8995a3;
  --font: "Rajdhani", "Microsoft YaHei", "PingFang SC", system-ui, sans-serif;
  --sans: "Microsoft YaHei", "PingFang SC", system-ui, sans-serif;
}

body[data-mode="endless"] {
  --accent: #efff34;
  --accent-rgb: 239, 255, 52;
  --accent-ink: #111500;
}

* { box-sizing: border-box; }
html { scrollbar-color: rgba(var(--accent-rgb), .55) var(--bg); scroll-behavior: smooth; }
html.mode-scroll-driving, html.mobile-game-scroll-driving { scroll-behavior: auto; }
body { min-height: 100vh; margin: 0; overflow-x: hidden; color: var(--text); background: var(--bg); font-family: var(--font); -webkit-font-smoothing: antialiased; }
body.art-preview-open { overflow: hidden; }
button, input { font: inherit; }
button { color: inherit; }
::selection { color: #fff; background: rgba(var(--accent-rgb), .35); }
.hidden { display: none !important; }

.bg-layer, .bg-grid, .hud { position: fixed; inset: 0; pointer-events: none; }
.bg-layer { z-index: -3; background: radial-gradient(circle at 72% 8%, rgba(67, 199, 255, .08), transparent 32%), linear-gradient(145deg, #0d1218 0%, #070a0e 62%); }
body[data-mode="sudden"] .bg-layer { background: linear-gradient(90deg, rgba(7, 10, 14, .95), rgba(7, 10, 14, .77) 50%, rgba(7, 10, 14, .95)), url("../img/paradise-fulcrum.jpg") center / cover fixed no-repeat; }
body[data-mode="endless"] .bg-layer { background: radial-gradient(circle at 82% 12%, rgba(239, 255, 52, .08), transparent 28%), linear-gradient(135deg, #11130f, #080a08 65%); }
.bg-grid { z-index: -2; opacity: .45; background-image: linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.028) 1px, transparent 1px); background-size: 56px 56px; mask-image: linear-gradient(to bottom, #000, transparent 88%); }
.sweep { position: fixed; inset: 0 auto 0 -20%; z-index: -1; width: 28%; pointer-events: none; opacity: .1; background: linear-gradient(90deg, transparent, rgba(var(--accent-rgb), .12), transparent); transform: skewX(-12deg); animation: sweep 14s linear infinite; }

.hud { z-index: 20; }
.hud::before { content: ""; position: absolute; inset: 12px; border: 1px solid rgba(var(--accent-rgb), .12); }
.hud-corner { position: absolute; width: 28px; height: 28px; border-color: var(--accent); border-style: solid; opacity: .8; transition: opacity .35s ease; }
.hud-tl { top: 12px; left: 12px; border-width: 2px 0 0 2px; }
.hud-tr { top: 12px; right: 12px; border-width: 2px 2px 0 0; }
.hud-bl { bottom: 12px; left: 12px; border-width: 0 0 2px 2px; }
.hud-br { right: 12px; bottom: 12px; border-width: 0 2px 2px 0; }
.hud::before { transition: opacity .35s ease; }
.hud-tag { position: absolute; top: 50%; color: rgba(var(--accent-rgb), .5); font-size: 9px; font-weight: 700; letter-spacing: 4px; writing-mode: vertical-rl; }
.hud-tag-l { left: 17px; transform: translateY(-50%) rotate(180deg); }
.hud-tag-r { right: 17px; transform: translateY(-50%); }
/* 模式选择页：隐藏四个角框与全屏细边框，避免与模式卡片视觉冲突 */
body[data-mode=""] .hud-corner { opacity: 0; }
body[data-mode=""] .hud::before { opacity: 0; }

.topbar { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; min-height: 86px; padding: 18px clamp(36px, 5vw, 76px); border-bottom: 1px solid var(--line); background: rgba(7,10,14,.78); backdrop-filter: blur(16px); }
.topbar::after { content: ""; position: absolute; bottom: -1px; left: clamp(36px, 5vw, 76px); width: 160px; height: 2px; background: var(--accent); box-shadow: 0 0 22px rgba(var(--accent-rgb), .6); }
.brand { display: flex; align-items: center; gap: 15px; }
.brand-mark { position: relative; width: 32px; height: 32px; flex: none; border: 1px solid var(--accent); transform: rotate(45deg); box-shadow: inset 0 0 12px rgba(var(--accent-rgb), .25), 0 0 18px rgba(var(--accent-rgb), .22); }
.brand-mark i { position: absolute; inset: 9px; background: var(--accent); box-shadow: 0 0 10px var(--accent); }
.brand-text h1 { margin: 0; font-size: 21px; letter-spacing: 6px; }
.brand-en, .subtitle { margin: 4px 0 0; color: var(--muted); font-size: 10px; font-weight: 600; letter-spacing: 2.5px; }
.topbar-context { display: flex; max-width: min(48vw,560px); flex-direction: column; align-items: flex-end; gap: 5px; text-align: right; transition: opacity .24s ease,transform .34s cubic-bezier(.2,.72,.2,1),visibility 0s .34s; }
.topbar-context > span { color: rgba(var(--accent-rgb),.76); font-size: 8px; font-weight: 700; letter-spacing: 2.4px; }
.topbar-context .subtitle { max-width: none; margin: 0; color: #909ca7; font-family: var(--sans); font-size: 10px; line-height: 1.45; letter-spacing: .7px; }
.topbar-quick-guess { position: absolute; right: clamp(36px,5vw,76px); display: grid; width: min(52vw,650px); grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 9px; visibility: hidden; opacity: 0; pointer-events: none; transform: translate3d(0,-8px,0); transition: opacity .24s ease,transform .34s cubic-bezier(.2,.72,.2,1),visibility 0s .34s; }
.topbar-quick-guess > span { color: rgba(var(--accent-rgb),.68); font-size: 7px; font-weight: 700; letter-spacing: 2px; white-space: nowrap; }
.topbar-quick-field { position: relative; min-width: 0; }
.topbar-quick-field input { width: 100%; height: 42px; padding: 0 13px; border: 1px solid var(--line-strong); outline: none; color: #edf2f5; background: #090d12; font-family: var(--sans); font-size: 11px; }
.topbar-quick-field input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(var(--accent-rgb),.08); }
.topbar-quick-field .suggest { top: calc(100% + 8px); width: 100%; }
.topbar-quick-guess > button { display: inline-flex; min-width: 92px; height: 42px; align-items: center; justify-content: center; gap: 14px; border-color: var(--accent); color: var(--accent-ink); background: var(--accent); font-family: var(--sans); font-size: 11px; font-weight: 700; }
.topbar-quick-guess > button i { font-size: 14px; font-style: normal; }
.topbar-quick-guess > button:disabled, .topbar-quick-field input:disabled { opacity: .46; }
body.quick-guess-active .topbar-context { visibility: hidden; opacity: 0; pointer-events: none; transform: translate3d(0,7px,0); }
body.quick-guess-active .topbar-quick-guess { visibility: visible; opacity: 1; pointer-events: auto; transform: translate3d(0,0,0); transition-delay: .08s,0s,0s; }

main { position: relative; z-index: 1; width: min(1380px, calc(100% - 80px)); margin: 0 auto; padding: 30px 0 40px; }
#modeScreen, #gameScreen { animation: fade-up .45s ease both; }
.section-head { text-align: center; }
.mode-heading { position: absolute; top: 38px; left: 50%; z-index: 4; width: 90%; transform: translateX(-50%); }
.mode-title { margin: 0; font-size: clamp(25px, 2.4vw, 34px); letter-spacing: 10px; }
.section-en { display: inline-flex; align-items: center; gap: 14px; margin-top: 10px; color: var(--accent); font-size: 10px; font-weight: 700; letter-spacing: 5px; }
.section-en::before, .section-en::after { content: ""; width: 56px; height: 1px; background: linear-gradient(90deg, transparent, var(--accent)); }
.section-en::after { transform: rotate(180deg); }

.mode-stage { position: relative; min-height: clamp(620px, calc(100vh - 210px), 840px); overflow: hidden; border: 1px solid var(--line); background: #090d12; box-shadow: 0 34px 100px rgba(0,0,0,.42); }
.mode-stage::before { content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none; background: linear-gradient(90deg, rgba(67,199,255,.12), transparent 28%, transparent 72%, rgba(239,255,52,.09)), linear-gradient(to bottom, rgba(8,11,15,.12), rgba(8,11,15,.9)); }
.scene-scan { position: absolute; inset: 0; z-index: 1; background: repeating-linear-gradient(to bottom, rgba(255,255,255,.035) 0 1px, transparent 1px 5px); mix-blend-mode: screen; }
.mode-seam { position: absolute; top: 0; bottom: 0; left: 50%; z-index: 2; width: 1px; pointer-events: none; background: linear-gradient(to bottom, transparent 5%, rgba(255,255,255,.14) 23%, rgba(255,255,255,.14) 56%, transparent 72%); }
.mode-seam::before { content: ""; position: absolute; top: 39%; left: 0; width: 9px; height: 9px; transform: translate(-50%,-50%) rotate(45deg); border: 1px solid rgba(255,255,255,.42); background: #0a0e13; box-shadow: 0 0 12px rgba(255,255,255,.14); }
.mode-seam::after { content: ""; position: absolute; top: 39%; left: 0; width: 3px; height: 3px; transform: translate(-50%,-50%) rotate(45deg); background: rgba(255,255,255,.6); }
.mode-side { position: absolute; inset: 0 auto 0 0; z-index: 2; width: 50%; overflow: hidden; pointer-events: none; opacity: 0; transition: opacity .5s ease; }
.mode-side-endless { right: 0; left: auto; opacity: 0; background: linear-gradient(270deg,rgba(220,239,20,.18),transparent 72%); -webkit-mask-image: linear-gradient(90deg,transparent 0,#000 24%,#000 100%); mask-image: linear-gradient(90deg,transparent 0,#000 24%,#000 100%); }
.mode-side-sudden { opacity: 0; background: linear-gradient(90deg, rgba(3,12,19,.08), rgba(28,151,210,.24) 54%, transparent 94%), url("../img/paradise-fulcrum.jpg") 30% center / cover no-repeat; filter: saturate(.88) contrast(1.1); }
.mode-side-endless .side-toad { position: absolute; right: 6%; bottom: 19%; width: min(74%,420px); opacity: 0; filter: grayscale(.16) contrast(1.16) brightness(.96); transform: rotate(-4deg); -webkit-mask-image: radial-gradient(ellipse 62% 59% at 56% 57%,#000 0 43%,rgba(0,0,0,.86) 55%,rgba(0,0,0,.22) 73%,transparent 88%); mask-image: radial-gradient(ellipse 62% 59% at 56% 57%,#000 0 43%,rgba(0,0,0,.86) 55%,rgba(0,0,0,.22) 73%,transparent 88%); transition: opacity .5s ease,filter .5s ease,transform .7s cubic-bezier(.2,.8,.2,1); }
.side-content { display: none; }
.mode-side::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: 0; transition: opacity .5s ease; }
.mode-side-sudden::before { background: linear-gradient(102deg, transparent 38%, rgba(158,224,255,.17) 50%, rgba(255,255,255,.06) 55%, transparent 66%); }
.mode-side-endless::before { background: radial-gradient(56% 44% at 68% 40%, rgba(239,255,52,.18), transparent 72%), linear-gradient(252deg, transparent 42%, rgba(239,255,52,.15) 55%, transparent 70%); }
.mode-stage.preview-sudden .mode-side-sudden { opacity: .46; }
.mode-stage.preview-sudden .mode-side-sudden::before { opacity: 1; animation: side-beam-sweep 2.8s ease-in-out infinite; }
.mode-stage.preview-endless .mode-side-endless { opacity: .92; }
.mode-stage.preview-endless .mode-side-endless::before { opacity: 1; animation: side-beam-sweep 2.8s ease-in-out infinite; }
.mode-stage.preview-endless .mode-side-endless .side-toad { opacity: .96; filter: grayscale(.08) contrast(1.22) brightness(1.04) drop-shadow(0 0 24px rgba(239,255,52,.3)); transform: rotate(-4deg) scale(1.025); }

.mode-cards { position: absolute; right: clamp(28px,5vw,76px); bottom: clamp(30px,6vh,68px); left: clamp(28px,5vw,76px); z-index: 5; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.mode-card { position: relative; min-width: 0; min-height: 206px; padding: 27px 30px 25px; overflow: hidden; border: 1px solid var(--line-strong); border-left: 3px solid var(--accent); border-radius: 0; text-align: left; cursor: pointer; background: rgba(9,14,20,.88); backdrop-filter: blur(14px); box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 14px 34px rgba(0,0,0,.3); transition: transform .25s ease, border-color .25s ease, background .25s ease, box-shadow .25s ease; }
article.mode-card { color: var(--text); cursor: pointer; }
.mode-card::after { content: ""; position: absolute; top: 0; right: 0; width: 44px; height: 44px; border-top: 1px solid rgba(var(--accent-rgb),.8); background: linear-gradient(135deg, transparent 48%, rgba(var(--accent-rgb),.16) 50%); }
.mode-card.is-launching { pointer-events: none; border-color: rgba(var(--accent-rgb),.78); box-shadow: inset 0 0 34px rgba(var(--accent-rgb),.1),0 14px 34px rgba(0,0,0,.3); }
.mode-card.is-launching::before { content: "PROTOCOL LINK // 正在接入"; position: absolute; inset: auto 18px 14px; z-index: 8; display: flex; height: 30px; align-items: center; padding: 0 11px; overflow: hidden; border-left: 2px solid var(--accent); color: var(--accent); background: linear-gradient(90deg,rgba(7,12,17,.96),rgba(var(--accent-rgb),.13)); font-size: 8px; font-weight: 700; letter-spacing: 2px; animation: mode-link-pulse .76s ease-in-out infinite alternate; }
.mode-beam { position: absolute; inset: -24% -32%; z-index: 1; pointer-events: none; opacity: .35; transform: translateX(-14%) skewX(-8deg); background: linear-gradient(100deg, transparent 42%, rgba(var(--accent-rgb),.17) 50%, rgba(255,255,255,.08) 53%, rgba(var(--accent-rgb),.06) 57%, transparent 68%); transition: opacity .4s ease, transform .9s cubic-bezier(.2,.8,.2,1); }
.mode-card.mode-hover-armed:hover .mode-beam, .mode-card:focus-visible .mode-beam, .mode-card:focus-within .mode-beam { opacity: 1; transform: translateX(12%) skewX(-8deg); }
.mode-index { position: absolute; top: 50%; right: 18px; bottom: auto; z-index: 1; pointer-events: none; color: transparent; -webkit-text-stroke: 1px rgba(var(--accent-rgb),.3); font-size: 68px; font-weight: 700; line-height: .94; opacity: .8; transform: translateY(-50%); transition: -webkit-text-stroke-color .3s ease, opacity .3s ease, transform .5s cubic-bezier(.2,.8,.2,1); }
.mode-card.mode-hover-armed:hover .mode-index, .mode-card:focus-visible .mode-index, .mode-card:focus-within .mode-index { -webkit-text-stroke-color: rgba(var(--accent-rgb),.62); opacity: 1; transform: translateY(-56%); }
.mode-en, .mode-name, .mode-desc, .mode-config { position: relative; z-index: 2; }
.mode-sudden::before { content: ""; position: absolute; z-index: 1; inset: 0 0 0 34%; pointer-events: none; opacity: .82; background: linear-gradient(90deg,rgba(9,14,20,1),rgba(9,14,20,.18) 48%,rgba(9,14,20,.5)); mask-image: linear-gradient(90deg,transparent,#000 34%); transition: opacity .25s ease,transform .5s ease; }
.mode-sudden.mode-hover-armed:hover::before, .mode-sudden:focus-within::before { opacity: .55; transform: scale(1.025); }
.mode-card-sticker { position: absolute; z-index: 0; top: 7%; right: -2%; width: 43%; height: 90%; pointer-events: none; opacity: 0; object-fit: contain; object-position: center; filter: saturate(.5) contrast(.9) brightness(.58) blur(.35px); transform: rotate(-2deg) scale(.97); -webkit-mask-image: radial-gradient(ellipse 68% 66% at 55% 50%,#000 0 55%,rgba(0,0,0,.7) 72%,transparent 94%); mask-image: radial-gradient(ellipse 68% 66% at 55% 50%,#000 0 55%,rgba(0,0,0,.7) 72%,transparent 94%); transition: opacity .35s ease,filter .35s ease,transform .55s cubic-bezier(.2,.8,.2,1); }
.mode-card-sticker-sudden { height: 100%; top: 0; object-fit: cover; object-position: 52% center; }
.mode-card-sticker-endless { top: -13%; right: -8%; width: 49%; height: 126%; opacity: 0; object-fit: cover; object-position: 49% center; -webkit-mask-image: linear-gradient(90deg,transparent 0,rgba(0,0,0,.32) 16%,#000 46%,#000 100%); mask-image: linear-gradient(90deg,transparent 0,rgba(0,0,0,.32) 16%,#000 46%,#000 100%); }
.mode-sudden .mode-en { padding-right: 0; line-height: 1.45; }
.mode-sudden .mode-en::after { content: " // P.F.S."; color: rgba(125,216,255,.72); }
.mode-card.mode-hover-armed:hover, .mode-card:focus-visible, .mode-card:focus-within { outline: none; border-color: rgba(var(--accent-rgb),.82); background: rgba(14,21,28,.96); box-shadow: 0 20px 48px rgba(0,0,0,.44), 0 0 28px rgba(var(--accent-rgb),.13), inset 0 1px 0 rgba(255,255,255,.08); transform: translateY(-7px); }
.mode-card.mode-hover-armed:hover .mode-card-sticker, .mode-card:focus-visible .mode-card-sticker, .mode-card:focus-within .mode-card-sticker { opacity: .88; filter: saturate(1) contrast(1.12) brightness(.96) blur(0); transform: rotate(-2deg) scale(1.045); }
.mode-endless { --accent: #efff34; --accent-rgb: 239,255,52; --accent-ink: #111500; color: #f7f8ef; }
.mode-en { display: block; color: var(--accent); font-size: 11px; font-weight: 700; letter-spacing: 4px; }
.mode-en::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 9px; vertical-align: 1px; background: var(--accent); box-shadow: 0 0 9px rgba(var(--accent-rgb),.65); }
.mode-name { display: block; margin-top: 8px; font-family: var(--sans); font-size: 28px; font-weight: 700; letter-spacing: 3px; }
.mode-desc { display: block; margin-top: 12px; color: #9aa5b0; font-family: var(--sans); font-size: 12px; line-height: 1.8; }
.mode-go { position: absolute; z-index: 3; right: 24px; bottom: 22px; color: var(--accent); font-size: 11px; font-weight: 700; letter-spacing: 2px; }
.mode-config { position: absolute; right: 22px; bottom: 17px; left: 28px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.mode-config .mode-go { position: static; min-height: auto; padding: 7px 0 5px 12px; border: 0; background: transparent; font-family: var(--font); white-space: nowrap; transition: color .2s ease,text-shadow .2s ease,transform .2s ease; }
.mode-config .mode-go:hover, .mode-config .mode-go:focus-visible { outline: none; color: #fff; background: transparent; text-shadow: 0 0 12px rgba(var(--accent-rgb),.58); transform: translateX(4px); }
.attempt-control { display: inline-flex; align-items: center; gap: 8px; color: #aeb8c2; font-family: var(--sans); font-size: 10px; white-space: nowrap; }
.attempt-control span { letter-spacing: 1px; }
.attempt-control i { color: var(--muted); font-style: normal; }
.attempt-control input { width: 46px; height: 38px; padding: 0; border: 0; outline: none; appearance: textfield; color: var(--accent); background: transparent; font-family: var(--font); font-size: 21px; font-weight: 700; line-height: 1; text-align: center; text-shadow: 0 0 14px rgba(var(--accent-rgb),.38); }
.attempt-control input::-webkit-inner-spin-button, .attempt-control input::-webkit-outer-spin-button { margin: 0; appearance: none; }
.attempt-control input:focus { color: #fff; text-shadow: 0 0 16px rgba(var(--accent-rgb),.72); }

.game-layout { display: grid; grid-template-columns: minmax(260px,330px) minmax(0,1fr); min-height: calc(100vh - 176px); border: 1px solid var(--line); background: rgba(8,11,15,.78); box-shadow: 0 30px 100px rgba(0,0,0,.42); backdrop-filter: blur(16px); }
.game-sidebar { --sidebar-gutter: 18px; position: sticky; top: 20px; align-self: start; min-height: calc(100vh - 176px); overflow: hidden; border-right: 1px solid var(--line); background: linear-gradient(180deg,#0b1016,#080d12); box-shadow: inset 1px 0 rgba(var(--accent-rgb),.3),inset 0 1px rgba(var(--accent-rgb),.18),inset 0 -1px rgba(var(--accent-rgb),.18),inset -1px 0 rgba(255,255,255,.035); }
.game-art { position: relative; height: 286px; overflow: hidden; }
.game-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, transparent 28%, #0b1016 96%); }
.game-art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .65; filter: saturate(.72) contrast(1.1); }
.game-art-sudden { object-position: 40% center; }
.game-art-endless { display: none; object-position: center; }
body[data-mode="endless"] .game-art-sudden { display: none; }
body[data-mode="endless"] .game-art { background: radial-gradient(circle at 50% 44%,rgba(var(--accent-rgb),.16),transparent 48%),#0b110d; }
body[data-mode="endless"] .game-art::after { background: linear-gradient(to bottom,rgba(11,16,22,.04) 5%,rgba(11,16,22,.1) 54%,#0b1016 96%); }
body[data-mode="endless"] .game-art-endless { display: block; inset: 10px 7% 0; width: 86%; height: calc(100% - 10px); object-fit: contain; object-position: center 58%; opacity: .76; filter: saturate(.8) contrast(1.12) brightness(.78) drop-shadow(0 14px 24px rgba(0,0,0,.45)); transform: scale(.94); }
.game-art-grid { position: absolute; inset: 0; z-index: 1; opacity: .28; background-image: linear-gradient(rgba(var(--accent-rgb),.16) 1px,transparent 1px), linear-gradient(90deg,rgba(var(--accent-rgb),.16) 1px,transparent 1px); background-size: 28px 28px; }
.game-sidebar-copy { position: relative; z-index: 2; width: calc(100% - var(--sidebar-gutter) - var(--sidebar-gutter)); margin: -38px auto 0; padding: 17px 16px 16px; border: 1px solid var(--line-strong); border-top: 2px solid var(--accent); background: linear-gradient(135deg,rgba(var(--accent-rgb),.08),transparent 48%),rgba(10,15,20,.95); box-shadow: 0 18px 32px rgba(0,0,0,.28); }
.eyebrow, .meta-label { color: var(--accent); font-size: 9px; font-weight: 700; letter-spacing: 3px; }
.game-sidebar-index { position: absolute; top: 11px; right: 15px; margin: 0; color: rgba(var(--accent-rgb),.27); font-size: 32px; font-weight: 700; line-height: 1; }
.game-sidebar-copy h2 { margin: 12px 0 10px; font-family: var(--sans); font-size: 25px; line-height: 1.27; letter-spacing: 1.5px; }
.game-sidebar-copy > #gameSidebarDesc { margin: 0; color: #8e9aa5; font-family: var(--sans); font-size: 11.5px; line-height: 1.68; }
.sidebar-callout { --callout-gap: 18px; --callout-open-height: 130px; --callout-side: var(--sidebar-gutter); position: relative; max-height: 0; margin: 0 var(--callout-side); padding: 0 15px; overflow: hidden; visibility: hidden; border: 0 solid rgba(var(--accent-rgb),.58); border-width: 0 1px; color: var(--accent); background: linear-gradient(110deg,rgba(var(--accent-rgb),.16),rgba(var(--accent-rgb),.04)); box-shadow: inset 0 0 24px rgba(var(--accent-rgb),.06),0 0 20px rgba(var(--accent-rgb),.08); font-family: var(--sans); opacity: 0; transform: translateX(-112%) skewX(-4deg); }
body[data-mode="sudden"] .sidebar-callout { display: none; }
.sidebar-callout > .endless-bubble-media { display: none; width: 100%; height: 180px; object-fit: contain; object-position: center; background: #080b0d; }
.sidebar-callout.is-media { --callout-gap: 12px; --callout-open-height: 210px; padding-right: 6px; padding-left: 6px; background: #080b0d; }
.sidebar-callout.is-media > .endless-bubble-media { display: block; }
.sidebar-callout.is-media > span,
.sidebar-callout.is-media > strong,
.sidebar-callout.is-media > i { display: none; }
.sidebar-callout > span { display: block; color: rgba(var(--accent-rgb),.65); font-family: var(--font); font-size: 8px; font-weight: 700; letter-spacing: 2px; }
.sidebar-callout > strong { display: block; margin-top: 7px; color: var(--accent); font-size: 12px; line-height: 1.4; }
.sidebar-callout > i { display: block; height: 3px; margin-top: 12px; overflow: hidden; background: rgba(var(--accent-rgb),.13); }
.sidebar-callout > i > b { display: block; width: 100%; height: 100%; background: var(--accent); box-shadow: 0 0 10px rgba(var(--accent-rgb),.75); transform: scaleX(0); transform-origin: left; transition: transform .35s ease; }
.sidebar-callout::after { content: ""; position: absolute; top: -35%; bottom: -35%; left: -42%; width: 26%; opacity: 0; background: linear-gradient(90deg,transparent,rgba(255,255,255,.68),transparent); transform: skewX(-12deg); }
body[data-mode="endless"] .sidebar-callout.show { visibility: visible; animation: callout-slide 4s cubic-bezier(.2,.78,.2,1) both; }
body[data-mode="endless"] .sidebar-callout.show::after { animation: callout-mini-scan .72s .24s ease both; }
.clue-legend { position: relative; display: flex; align-items: center; justify-content: center; gap: 2px; margin: 15px 7px 2px; padding-top: 7px; border-top: 0; }
.clue-legend::before { content: ""; position: absolute; top: 0; right: 18px; left: 18px; height: 1px; background: linear-gradient(90deg,transparent,var(--line-strong) 18%,var(--line-strong) 82%,transparent); }
.clue-legend span { display: flex; min-height: 28px; align-items: center; justify-content: center; gap: 7px; padding: 0 8px; color: #aeb7c0; border-bottom: 1px solid rgba(255,255,255,.06); background: rgba(255,255,255,.022); font-family: var(--sans); font-size: 10px; letter-spacing: .5px; white-space: nowrap; }
.clue-legend i { width: 3px; height: 12px; flex: none; box-shadow: 0 0 9px currentColor; transform: skewX(-12deg); }
.legend-exact { color: var(--exact); background: var(--exact); }
.legend-tip { color: var(--tip); background: var(--tip); }
.legend-wrong { color: var(--wrong); background: var(--wrong); }
.legend-unknown { color: var(--unknown); background: var(--unknown); }
.endless-telemetry { display: none; }

.game-workspace { min-width: 0; padding: clamp(24px,3.5vw,48px); }
.mobile-endless-callout { display: none; }
.game-meta { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 26px; }
.game-meta > div { display: flex; flex-direction: column; gap: 8px; }
.game-meta-actions { align-items: flex-end; }
.game-meta-buttons { display: flex; align-items: center; gap: 8px; }
.protocol-switch { display: inline-flex; min-height: 38px; align-items: center; justify-content: space-between; gap: 14px; padding: 0 12px; border-color: rgba(var(--accent-rgb),.34); color: #c7cfd6; background: rgba(var(--accent-rgb),.045); font-family: var(--sans); font-size: 10px; transition: border-color .2s,color .2s,background .2s; }
.endless-restart { display: none; }
body[data-mode="endless"] .endless-restart { display: inline-flex; }
.protocol-switch i { color: rgba(var(--accent-rgb),.58); font-family: var(--font); font-size: 7px; font-style: normal; letter-spacing: 1.5px; }
.protocol-switch:hover { border-color: var(--accent); color: #fff; background: rgba(var(--accent-rgb),.1); }
.pill { color: var(--text); font-family: var(--sans); font-size: 16px; font-weight: 700; }
.pill.hot::after { content: "LIMITED"; margin-left: 10px; padding: 3px 6px; color: var(--accent-ink); background: var(--accent); font-family: var(--font); font-size: 8px; letter-spacing: 1px; vertical-align: 2px; }
.lives { display: flex; align-items: center; gap: 14px; }
.lives #attemptLabel { color: var(--muted); font-size: 12px; font-weight: 500; }
.pips { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; max-width: 150px; }
.pips i { width: 8px; height: 8px; background: var(--accent); transform: rotate(45deg); box-shadow: 0 0 12px rgba(var(--accent-rgb),.7); transition: opacity .25s ease; }
.pips i.off { opacity: .16; box-shadow: none; }
.game-attempt-config { display: flex; align-items: center; gap: 9px; margin-top: 3px; }
.game-attempt-config .attempt-control { padding: 0; border: 0; background: transparent; }
.game-attempt-config .attempt-control input { width: 40px; height: 32px; }
.game-attempt-config button { min-height: 42px; padding: 0 13px; border-color: rgba(var(--accent-rgb),.34); color: var(--accent); background: rgba(var(--accent-rgb),.07); font-family: var(--sans); font-size: 10px; }
.game-attempt-config button:hover { border-color: var(--accent); background: rgba(var(--accent-rgb),.13); }

.guess-console { position: relative; padding: clamp(22px,3vw,34px); border: 1px solid var(--line-strong); background: linear-gradient(115deg,rgba(var(--accent-rgb),.07),transparent 38%), var(--surface); }
.guess-console::before { content: ""; position: absolute; top: -1px; left: -1px; width: 90px; height: 2px; background: var(--accent); box-shadow: 0 0 18px rgba(var(--accent-rgb),.55); }
.console-heading { display: flex; align-items: center; gap: 15px; margin-bottom: 20px; }
.console-step { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; flex: none; border: 1px solid rgba(var(--accent-rgb),.34); color: var(--accent); font-size: 11px; font-weight: 700; }
.console-heading h2, .dossier-head h2 { margin: 0; font-family: var(--sans); font-size: 18px; letter-spacing: 1px; }
.console-heading p { margin: 5px 0 0; color: var(--muted); font-family: var(--sans); font-size: 11px; }
.input-wrap { position: relative; display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 10px; }
.input-wrap input { min-width: 0; height: 52px; padding: 0 18px; border: 1px solid var(--line-strong); border-radius: 0; outline: none; color: var(--text); background: #090d12; font-family: var(--sans); font-size: 13px; transition: border-color .2s, box-shadow .2s; }
.input-wrap input::placeholder { color: #5f6974; }
.input-wrap input:focus { border-color: rgba(var(--accent-rgb),.8); box-shadow: 0 0 0 3px rgba(var(--accent-rgb),.08); }
button { border: 1px solid transparent; border-radius: 0; cursor: pointer; }
#guessBtn, .victory-actions button:first-child { display: inline-flex; align-items: center; justify-content: center; gap: 22px; min-width: 148px; padding: 0 18px; color: var(--accent-ink); background: var(--accent); font-family: var(--sans); font-size: 12px; font-weight: 700; transition: filter .2s, transform .2s; }
#guessBtn i { font-size: 17px; font-style: normal; }
#guessBtn:hover, .victory-actions button:first-child:hover { filter: brightness(1.12); transform: translateY(-2px); }
.ghost { min-height: 44px; padding: 0 18px; border-color: var(--line-strong); color: #aab3bd; background: transparent; font-family: var(--sans); font-size: 11px; transition: border-color .2s, color .2s; }
.ghost:hover { border-color: var(--wrong); color: #fff; }
button:disabled, input:disabled { cursor: not-allowed; opacity: .46; }
.suggest { position: absolute; top: calc(100% + 8px); left: 0; z-index: 15; width: min(100%,560px); max-height: min(430px,55vh); overflow-x: hidden; overflow-y: auto; border: 1px solid var(--line-strong); background: #11171e; box-shadow: 0 18px 40px rgba(0,0,0,.48); }
.suggest-item { display: flex; align-items: center; justify-content: space-between; min-height: 43px; padding: 0 14px; border-bottom: 1px solid var(--line); color: #dfe5ea; font-family: var(--sans); font-size: 12px; cursor: pointer; }
.suggest-item:last-child { border-bottom: 0; }
.suggest-item.active { color: #fff; background: rgba(var(--accent-rgb),.12); }
.suggest-item .py { color: var(--muted); font-family: var(--font); font-size: 10px; letter-spacing: 1px; }
.suggest-empty { padding: 15px; color: var(--muted); font-family: var(--sans); font-size: 12px; }
.suggest-loading { position: relative; padding: 13px 14px 12px; overflow: hidden; }
.suggest-loading .loading-label { display: block; color: rgba(var(--accent-rgb),.72); font-family: var(--font); font-size: 9px; font-weight: 700; letter-spacing: 2px; animation: suggest-loading-pulse 1s ease-in-out infinite; }
.suggest-loading .loading-bar { position: relative; height: 3px; margin-top: 9px; overflow: hidden; background: rgba(var(--accent-rgb),.13); }
.suggest-loading .loading-bar::after { content: ""; position: absolute; top: 0; bottom: 0; left: -40%; width: 40%; background: linear-gradient(90deg,transparent,var(--accent),transparent); box-shadow: 0 0 10px rgba(var(--accent-rgb),.6); animation: suggest-loading-scan .85s linear infinite; }
.suggest-loading .loading-row { height: 30px; margin-top: 7px; border: 1px solid rgba(var(--accent-rgb),.13); background: linear-gradient(100deg,rgba(var(--accent-rgb),.04) 30%,rgba(var(--accent-rgb),.13) 50%,rgba(var(--accent-rgb),.04) 70%); background-size: 220% 100%; animation: suggest-loading-shimmer 1.05s linear infinite; }
.status { min-height: 18px; margin: 13px 0 0; color: #7fa3b6; font-family: var(--sans); font-size: 11px; }
.status:not(:empty)::before { content: "◆"; margin-right: 8px; color: var(--accent); font-size: 8px; }
.status.error { color: var(--wrong); }

.dossier-section { margin-top: 34px; }
.dossier-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.dossier-head > div { display: flex; align-items: center; gap: 12px; }
.dossier-head p { margin: 0; color: var(--muted); font-family: var(--sans); font-size: 10px; }
.board-empty { display: flex; min-height: 210px; flex-direction: column; align-items: center; justify-content: center; border: 1px dashed var(--line-strong); color: var(--muted); background: rgba(255,255,255,.018); text-align: center; }
.board-empty span { color: rgba(var(--accent-rgb),.44); font-size: 9px; font-weight: 700; letter-spacing: 5px; }
.board-empty strong { margin-top: 12px; color: #c7cfd7; font-family: var(--sans); font-size: 16px; }
.board-empty p { margin: 7px 0 0; font-family: var(--sans); font-size: 11px; }
.guess-list { display: grid; gap: 14px; overflow-anchor: none; }
.guess-card { overflow: hidden; border: 1px solid var(--line-strong); background: var(--surface); box-shadow: 0 18px 45px rgba(0,0,0,.2); }
.mobile-record-pager { display: none; }
.operator-record-layout { display: grid; grid-template-columns: minmax(205px,26%) minmax(0,1fr); min-height: 438px; }
.operator-visual { position: relative; min-height: 100%; overflow: hidden; border-right: 1px solid var(--line); background: radial-gradient(circle at 50% 23%,rgba(var(--accent-rgb),.16),transparent 35%),linear-gradient(145deg,#182029,#090d12 72%); isolation: isolate; }
.operator-visual::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .24; background-image: linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size: 24px 24px; mask-image: linear-gradient(to bottom,#000,transparent 82%); }
.operator-visual::after { content: "RHODES\A ISLAND"; white-space: pre; position: absolute; top: 18px; right: 12px; z-index: 0; color: rgba(255,255,255,.055); font-size: 27px; font-weight: 800; line-height: .86; letter-spacing: -2px; text-align: right; }
.operator-art { position: absolute; z-index: 1; inset: 8px -21% 47px -21%; width: 142%; height: calc(100% - 55px); object-fit: contain; object-position: center bottom; filter: drop-shadow(0 16px 20px rgba(0,0,0,.42)); transition: transform .35s ease,filter .35s ease; }
.guess-card.hover-armed:hover .operator-art { transform: scale(1.018); filter: drop-shadow(0 18px 24px rgba(0,0,0,.55)); }
.operator-visual-scan { position: absolute; z-index: 2; top: -30%; bottom: -30%; left: -70%; width: 34%; pointer-events: none; opacity: 0; background: linear-gradient(90deg,transparent,rgba(var(--accent-rgb),.14),rgba(255,255,255,.42),transparent); transform: skewX(-12deg); }
.guess-card.card-entering .operator-visual-scan { animation: operator-scan .52s .42s cubic-bezier(.26,.02,.18,1) both; }
.guess-card.hover-armed:hover .operator-visual-scan { animation: operator-scan .8s ease both; }

/* 提交猜测后：整张卡先以较小尺寸滑入，保持小尺寸完成扫描，再平滑放大归位 */
.guess-card { position: relative; }
.guess-card.card-entering { z-index: 2; transform-origin: center top; animation: guess-card-dock 1.18s cubic-bezier(.16,.78,.18,1) both; will-change: opacity,transform,filter; }
.guess-card.card-entering::after { content: ""; position: absolute; z-index: 6; top: 0; bottom: 0; left: -3px; width: 3px; pointer-events: none; background: linear-gradient(to bottom,rgba(255,255,255,.25),var(--accent),rgba(var(--accent-rgb),.14)); box-shadow: 0 0 26px var(--accent),8px 0 28px rgba(var(--accent-rgb),.22); animation: guess-lead-scan .52s .42s cubic-bezier(.26,.02,.18,1) both; }
.guess-card.card-entering .operator-art { animation: guess-art-in 1.02s .08s cubic-bezier(.18,.76,.2,1) both; }
@keyframes guess-card-dock { 0% { opacity: 0; filter: brightness(.7); transform: translateX(72px) scale(.94); } 36% { opacity: 1; filter: brightness(.82); transform: translateX(0) scale(.94); } 78% { opacity: 1; filter: brightness(.9); transform: translateX(0) scale(.94); } 100% { opacity: 1; filter: brightness(1); transform: translateX(0) scale(1); } }
@keyframes guess-lead-scan { 0% { left: -3px; opacity: 0; } 14% { opacity: 1; } 82% { opacity: 1; } 100% { left: calc(100% - 3px); opacity: 0; } }
@keyframes guess-art-in { 0% { opacity: .25; filter: brightness(.55) saturate(.72) drop-shadow(0 12px 16px rgba(0,0,0,.3)); transform: translateX(-16px) scale(.985); } 74% { opacity: .78; filter: brightness(.82) saturate(.86) drop-shadow(0 14px 18px rgba(0,0,0,.36)); transform: translateX(0) scale(.985); } 100% { opacity: 1; filter: drop-shadow(0 16px 20px rgba(0,0,0,.42)); transform: none; } }
@keyframes guess-record-drift { 0% { opacity: .4; transform: translateX(34px); } 100% { opacity: 1; transform: translateX(0); } }
.operator-art-caption { position: absolute; right: 0; bottom: 0; left: 0; z-index: 3; display: grid; gap: 4px; padding: 26px 16px 15px; background: linear-gradient(to top,rgba(5,8,12,.98) 30%,transparent); }
.operator-art-caption span { color: var(--accent); font-size: 7px; font-weight: 700; letter-spacing: 2.4px; }
.operator-art-caption strong { overflow: hidden; color: #f2f5f7; font-family: var(--sans); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.operator-visual.image-missing .operator-art { display: none; }
.operator-visual.image-missing::after { content: "NO\A IMAGE"; top: 42%; right: 0; left: 0; color: rgba(255,255,255,.15); font-size: 22px; letter-spacing: 3px; text-align: center; }
.operator-visual.art-preview-trigger { cursor: pointer; outline: none; transition: box-shadow .2s ease; }
.operator-visual.art-preview-trigger:hover { box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb),.52); }
.operator-visual.art-preview-trigger:focus-visible { box-shadow: inset 0 0 0 2px var(--accent); }
.operator-visual.art-preview-trigger .operator-art-caption::after { content: "VIEW +"; justify-self: end; color: rgba(var(--accent-rgb),.72); font-family: var(--font); font-size: 7px; letter-spacing: 1.5px; }
.operator-record-data { min-width: 0; background: #0e141a; }
.guess-card-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 70px; padding: 14px 18px; border-bottom: 1px solid var(--line); background: linear-gradient(90deg,rgba(var(--accent-rgb),.07),transparent 44%); }
.guess-identity { display: flex; align-items: center; gap: 14px; min-width: 0; }
.guess-number { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; flex: none; color: var(--accent); border: 1px solid rgba(var(--accent-rgb),.32); font-size: 11px; font-weight: 700; }
.guess-title small { display: block; color: var(--muted); font-size: 8px; font-weight: 700; letter-spacing: 2px; }
.guess-title h3 { margin: 4px 0 0; overflow: hidden; font-family: var(--sans); font-size: 19px; letter-spacing: 2px; text-overflow: ellipsis; white-space: nowrap; }
.guess-summary { display: flex; align-items: center; gap: 8px; color: var(--muted); font-family: var(--sans); font-size: 10px; }
.guess-summary strong { color: var(--exact); font-size: 18px; }
.is-final-record { overflow-anchor: none; border-color: rgba(var(--accent-rgb),.52); box-shadow: 0 20px 60px rgba(0,0,0,.38),0 0 38px rgba(var(--accent-rgb),.08); animation: final-archive-in .86s cubic-bezier(.16,.76,.18,1) both; }
.is-final-record .operator-record-layout { grid-template-columns: minmax(290px,36%) minmax(0,1fr); height: clamp(460px,calc(100vh - 205px),680px); min-height: 0; }
.is-final-record .operator-visual { min-height: 0; background: radial-gradient(circle at 45% 24%,rgba(var(--accent-rgb),.18),transparent 38%),linear-gradient(145deg,#1a2026,#090c10 76%); }
.is-final-record .operator-art { inset: 0 0 52px; width: 100%; height: calc(100% - 52px); object-fit: cover; object-position: center top; }
.is-final-record .guess-title small::after { content: " // VERIFIED DOSSIER"; color: var(--accent); }
.is-final-record .operator-record-data { display: flex; min-height: 0; flex-direction: column; overflow: hidden; background: #d3d4d2; }
.is-final-record .guess-card-head { flex: none; background: linear-gradient(90deg,rgba(var(--accent-rgb),.08),transparent 38%),#10151a; }
.final-archive-sheet { position: relative; min-height: 0; flex: 1; padding: 18px 20px 26px; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: #66696a #c3c4c2; scrollbar-width: thin; color: #292c2e; background-color: #d3d4d2; background-image: radial-gradient(rgba(42,45,47,.09) .7px,transparent .7px),linear-gradient(120deg,rgba(255,255,255,.28),transparent 38%); background-size: 8px 8px,100% 100%; font-family: var(--sans); }
.final-archive-sheet::-webkit-scrollbar { width: 9px; }
.final-archive-sheet::-webkit-scrollbar-track { background: #c3c4c2; border-left: 1px solid rgba(40,42,43,.18); }
.final-archive-sheet::-webkit-scrollbar-thumb { border: 2px solid #c3c4c2; background: #626566; }
.archive-sheet-heading { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; align-items: end; margin: -18px -20px 10px; padding: 13px 20px 10px; color: #f0f2f2; border-bottom: 3px solid var(--accent); background: linear-gradient(100deg,#25282b,#414346); }
.archive-sheet-heading span { grid-column: 1; color: var(--accent); font-size: 7px; font-weight: 700; letter-spacing: 2px; }
.archive-sheet-heading strong { grid-column: 1; margin-top: 2px; font-size: 17px; letter-spacing: 2.5px; }
.archive-sheet-heading small { grid-column: 2; grid-row: 2; align-self: end; color: #aeb2b4; font-size: 7px; letter-spacing: 1.5px; white-space: nowrap; writing-mode: horizontal-tb; }
.archive-classification { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin-bottom: 8px; border: 1px solid rgba(41,44,46,.16); background: rgba(41,44,46,.16); }
.archive-classification .archive-line { min-height: 50px; align-content: center; padding: 7px 10px; background: rgba(246,247,247,.7); }
.archive-classification .archive-line-wide { grid-column: 1 / -1; }
.archive-section { margin-top: 12px; }
.archive-content > .archive-section:first-child { margin-top: 8px; }
.archive-section > header { display: flex; align-items: center; justify-content: space-between; min-height: 30px; padding: 5px 10px; color: #f2f3f3; background: #5b5d5e; box-shadow: 5px 5px 0 rgba(42,44,45,.09); }
.archive-section > header strong { font-size: 13px; letter-spacing: 1px; }
.archive-section > header span { color: #cfd1d1; font-size: 7px; letter-spacing: 1.5px; }
.archive-lines { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); padding: 8px 4px 2px; }
.archive-line { position: relative; display: grid; grid-template-columns: auto minmax(0,1fr); align-content: start; min-width: 0; padding: 6px 8px; font-size: 11px; line-height: 1.55; }
.archive-line strong { color: #474a4c; font-size: 10px; font-weight: 700; white-space: nowrap; }
.archive-line > span { min-width: 0; color: #242729; font-weight: 600; overflow-wrap: anywhere; }
.archive-line-wide { grid-column: 1 / -1; }
.archive-line-branch { grid-template-columns: 36px minmax(0,1fr); grid-template-rows: auto auto; align-items: center; }
.archive-line-branch strong, .archive-line-branch > span { grid-column: 2; }
.subprofession-mark { display: grid; width: 30px; height: 30px; grid-row: 1 / 3; place-items: center; margin-right: 6px; border: 1px solid rgba(42,45,47,.3); background: #2e3133; transform: rotate(45deg); }
.subprofession-mark img { width: 24px; height: 24px; object-fit: contain; transform: rotate(-45deg); }
.subprofession-mark.image-missing { opacity: .25; }
.archive-classification .archive-identity-card { min-height: 70px; grid-template-columns: 44px minmax(0,1fr); grid-template-rows: auto auto; align-content: center; align-items: center; column-gap: 10px; padding: 10px 12px; background: linear-gradient(135deg,rgba(255,255,255,.78),rgba(232,233,232,.68)); }
.archive-identity-card > strong { grid-column: 2; align-self: end; color: #676b6d; font-size: 9px; letter-spacing: .6px; }
.archive-identity-card > span:not(.power-logo) { grid-column: 2; align-self: start; color: #202426; font-size: 13px; line-height: 1.35; }
.archive-identity-card .subprofession-mark, .archive-line-power > .power-logo { width: 38px; height: 38px; grid-column: 1; grid-row: 1 / 3; margin: 0; border: 0; background: #303436; clip-path: polygon(12% 0,100% 0,100% 88%,88% 100%,0 100%,0 12%); transform: none; }
.archive-identity-card .subprofession-mark::after, .archive-line-power > .power-logo::after { inset: 4px; border-color: rgba(255,255,255,.13); }
.archive-identity-card .subprofession-mark img { width: 28px; height: 28px; transform: none; }
.archive-line-power .power-logo img { width: 28px; height: 28px; }
.archive-line-power .power-id { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.archive-line-power .power-name { overflow: hidden; color: #202426; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.archive-line-power .power-parent { overflow: hidden; color: #666b6e; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.archive-line-power .power-parent::before { content: "上级 · "; width: auto; height: auto; flex: none; background: none; opacity: .72; }
.archive-narratives { display: grid; gap: 7px; margin-top: 17px; }
.archive-content > .archive-narrative { margin-top: 7px; }
.archive-narrative { border: 1px solid rgba(45,48,50,.22); background: rgba(230,231,230,.74); box-shadow: 4px 4px 0 rgba(42,44,45,.055); }
.archive-narrative-head { display: grid; grid-template-columns: 32px 1fr auto; align-items: center; min-height: 39px; padding: 0 12px 0 0; color: #f1f2f2; background: #555859; }
.archive-narrative-head span { display: grid; height: 100%; place-items: center; color: var(--accent-ink); background: var(--accent); font-size: 9px; font-weight: 800; }
.archive-narrative-head strong { padding-left: 12px; font-size: 12px; letter-spacing: .5px; }
.archive-narrative-head i { color: #c6c8c8; font-size: 7px; font-style: normal; letter-spacing: 1px; }
.archive-narrative-text { padding: 14px 16px 18px; border-top: 1px solid rgba(45,48,50,.16); }
.archive-narrative-text p { margin: 0; color: #333638; font-size: 11px; line-height: 1.85; text-align: justify; white-space: pre-line; }
.archive-narrative-text p + p { margin-top: 12px; }
.archive-verified-seal { display: block; margin-top: 18px; color: rgba(38,42,44,.34); font-size: 8px; font-weight: 800; letter-spacing: 3px; text-align: right; }
.clue-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; background: var(--line); }
.clue { position: relative; min-width: 0; min-height: 92px; padding: 15px 14px 12px; overflow: hidden; background: var(--surface-2); }
.clue::before { content: ""; position: absolute; top: 0; right: 0; left: 0; height: 2px; background: var(--state-color,var(--unknown)); opacity: .9; }
.clue::after { content: ""; position: absolute; top: -26px; right: -26px; width: 62px; height: 62px; border-radius: 50%; background: var(--state-color,var(--unknown)); opacity: .05; filter: blur(3px); }
.cell-exact { --state-color: var(--exact); background: rgba(var(--exact-rgb),.075); }
.cell-tip { --state-color: var(--tip); background: rgba(var(--tip-rgb),.075); }
.cell-wrong { --state-color: var(--wrong); background: rgba(var(--wrong-rgb),.055); }
.cell-unknown { --state-color: var(--unknown); }
.clue-label { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #84909b; font-family: var(--sans); font-size: 10px; letter-spacing: .5px; }
.clue-state { color: var(--state-color,var(--unknown)); font-family: var(--font); font-size: 9px; font-weight: 700; letter-spacing: 1px; }
.clue-value { display: block; margin-top: 10px; overflow: hidden; color: #edf1f4; font-family: var(--sans); font-size: 13px; font-weight: 700; line-height: 1.35; text-overflow: ellipsis; }
.clue-direction { margin-left: 6px; color: var(--state-color,var(--tip)); font-family: var(--font); font-size: 16px; }
.clue-meta { display: block; margin-top: 4px; color: #aab5bf; font-size: 10px; line-height: 1.2; letter-spacing: 1px; }
.clue-hint { display: block; margin-top: 5px; color: #84909b; font-family: var(--sans); font-size: 10px; line-height: 1.35; }
.clue-tags { grid-column: auto; }
.tag-pills { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; }
.tag { padding: 3px 6px; border: 1px solid rgba(255,255,255,.1); color: #9ca7b1; background: rgba(255,255,255,.035); font-family: var(--sans); font-size: 10px; }
.tag.shared { border-color: rgba(var(--exact-rgb),.34); color: var(--exact); background: rgba(var(--exact-rgb),.1); }
.cell-special .clue-value::after { content: "SPECIAL"; margin-left: 6px; color: var(--tip); font-family: var(--font); font-size: 8px; letter-spacing: 1px; vertical-align: 2px; }

.result-overlay { position: relative; margin-bottom: 14px; scroll-margin-top: 96px; animation: result-in .36s cubic-bezier(.2,.85,.25,1) both; }
.victory { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 148px; padding: 24px 26px; overflow: hidden; border: 1px solid rgba(var(--exact-rgb),.52); background: radial-gradient(circle at 88% 8%,rgba(var(--exact-rgb),.2),transparent 36%),linear-gradient(120deg,#111a18,#0e141a 70%); box-shadow: 0 18px 50px rgba(0,0,0,.42),0 0 30px rgba(var(--exact-rgb),.1); }
.victory::before { content: ""; position: absolute; top: -1px; left: -1px; width: 130px; height: 3px; background: var(--exact); box-shadow: 0 0 18px rgba(var(--exact-rgb),.7); }
.result-overlay.fail .victory { border-color: rgba(var(--wrong-rgb),.52); background: radial-gradient(circle at 88% 8%,rgba(var(--wrong-rgb),.18),transparent 36%),linear-gradient(120deg,#1b1215,#0e141a 70%); box-shadow: 0 18px 50px rgba(0,0,0,.42),0 0 30px rgba(var(--wrong-rgb),.1); }
.result-overlay.fail .victory::before { background: var(--wrong); box-shadow: 0 0 18px rgba(var(--wrong-rgb),.65); }
.victory-copy { min-width: 0; }
.victory-en { color: var(--exact); font-size: 9px; font-weight: 700; letter-spacing: 4px; }
.result-overlay.fail .victory-en { color: var(--wrong); }
.victory h2 { margin: 9px 0 6px; font-family: var(--sans); font-size: clamp(19px,2.2vw,25px); line-height: 1.45; }
.victory-sub { margin: 0; color: var(--muted); font-family: var(--sans); font-size: 10px; }
.victory-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 254px; flex: none; }
.victory-actions button { min-height: 44px; }

.modal { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; padding: 24px; background: rgba(3,5,7,.82); backdrop-filter: blur(12px); }
.modal-box { position: relative; width: min(960px,100%); max-height: calc(100vh - 48px); padding: 34px; overflow: auto; border: 1px solid var(--line-strong); background: #10161d; box-shadow: 0 30px 100px rgba(0,0,0,.7); }
.modal-box::before { content: ""; position: absolute; top: -1px; left: -1px; width: 110px; height: 3px; background: var(--accent); }
.modal-en { color: var(--accent); font-size: 9px; font-weight: 700; letter-spacing: 4px; }
.modal h3 { margin: 10px 0 6px; font-family: var(--sans); font-size: 25px; }
.modal-sub { margin: 0 0 20px; color: var(--muted); font-family: var(--sans); font-size: 12px; line-height: 1.7; }
#choiceModal:not(.hidden) { animation: choice-modal-backdrop-in .34s ease both; }
#choiceModal:not(.hidden):not(.is-resolving) .modal-box { animation: choice-modal-cut-in .52s cubic-bezier(.16,.82,.2,1) both; }
#choiceModal:not(.hidden):not(.is-resolving) .choice-btn { animation: choice-candidate-in .46s cubic-bezier(.18,.78,.2,1) both; }
#choiceModal:not(.hidden):not(.is-resolving) .choice-btn:nth-child(2) { animation-delay: .07s; }
#choiceModal:not(.hidden):not(.is-resolving) .choice-btn:nth-child(3) { animation-delay: .14s; }
#choiceModal:not(.hidden):not(.is-resolving) .choice-btn:nth-child(4) { animation-delay: .21s; }
#choiceList { position: relative; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
#choiceList[data-count="3"] { grid-template-columns: repeat(3,minmax(0,1fr)); }
.choice-btn { position: relative; display: grid; min-width: 0; min-height: 280px; padding: 0; overflow: hidden; border: 1px solid var(--line-strong); color: #e8edf1; background: var(--surface-2); font-family: var(--sans); text-align: left; transition: border-color .2s,background .2s,transform .2s; }
.choice-btn:hover { border-color: var(--accent); background: rgba(var(--accent-rgb),.1); transform: translateY(-3px); }
.choice-btn:disabled { opacity: 1; }
.choice-btn::before { content: ""; position: absolute; z-index: 2; top: 0; left: 0; width: 36px; height: 2px; background: var(--accent); }
.choice-art { position: relative; display: block; min-height: 224px; overflow: hidden; background: radial-gradient(circle at 50% 30%,rgba(var(--accent-rgb),.13),transparent 37%),#0b1016; }
.choice-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top,#0d1319,transparent 38%); }
.choice-art img { position: absolute; inset: 8px -14% 0; width: 128%; height: 100%; object-fit: contain; object-position: center bottom; filter: drop-shadow(0 12px 13px rgba(0,0,0,.45)); }
.choice-art.choice-silhouette { background: radial-gradient(ellipse at 50% 46%,rgba(190,209,211,.58) 0,rgba(125,151,155,.4) 38%,rgba(51,70,77,.3) 58%,rgba(9,14,19,.96) 78%),#090e13; box-shadow: inset 0 0 42px rgba(0,0,0,.38),inset 0 0 0 1px rgba(190,216,218,.06); }
.choice-art.choice-silhouette::after { background: repeating-linear-gradient(to bottom,rgba(255,255,255,.03) 0 1px,transparent 1px 4px); }
.choice-art.choice-silhouette img { inset: 8px 0 0; width: 100%; filter: drop-shadow(0 8px 16px rgba(0,0,0,.55)); }
.choice-art.image-missing img { display: none; }
.choice-preview-trigger { position: absolute; z-index: 5; top: 10px; right: 10px; display: inline-flex; min-height: 28px; padding: 0 9px; align-items: center; justify-content: center; color: rgba(255,255,255,.68); border: 1px solid rgba(255,255,255,.2); background: rgba(7,11,15,.72); box-shadow: 0 4px 14px rgba(0,0,0,.18); font-family: var(--sans); font-size: 8px; font-weight: 700; letter-spacing: 1px; cursor: zoom-in; opacity: .62; transition: opacity .2s,color .2s,border-color .2s,background .2s,transform .2s; }
.choice-btn:hover .choice-preview-trigger, .choice-preview-trigger:hover, .choice-preview-trigger:focus-visible { color: #fff; border-color: var(--accent); background: rgba(7,11,15,.94); opacity: 1; transform: translateY(-1px); outline: none; }
.choice-info { position: relative; z-index: 3; display: grid; min-height: 48px; align-content: center; padding: 10px 12px; border-top: 1px solid var(--line); background: #111820; }
.choice-info strong { overflow: hidden; font-size: 14px; letter-spacing: .5px; text-overflow: ellipsis; white-space: nowrap; }
#choiceGiveup { width: 100%; margin-top: 14px; }
.modal.is-resolving { pointer-events: none; }
.modal.is-resolving .modal-box { overflow: hidden; }
.modal.is-resolving #choiceList::after { content: "档案检索中  ARCHIVE RETRIEVAL"; position: absolute; inset: 0; display: grid; place-items: center; color: var(--accent); background: rgba(8,12,16,.86); font-size: 9px; font-weight: 800; letter-spacing: 3px; opacity: 0; animation: choice-status-in .3s .62s both; }
.modal.is-resolving .modal-box::after { content: "VERIFICATION // LOCKED"; position: absolute; z-index: 20; top: -20%; bottom: -20%; left: -42%; display: grid; width: 28%; place-items: center; color: #121517; background: linear-gradient(90deg,transparent,rgba(var(--accent-rgb),.55),#fff 48%,var(--accent) 52%,transparent); font-size: 8px; font-weight: 800; letter-spacing: 2px; white-space: nowrap; transform: skewX(-13deg) rotate(-4deg); animation: choice-verification-scan .7s cubic-bezier(.5,0,.22,1) both; }
.choice-btn.choice-exit-left { animation: choice-out-left .48s cubic-bezier(.55,0,1,.45) both; }
.choice-btn.choice-exit-right { animation: choice-out-right .48s cubic-bezier(.55,0,1,.45) both; }
.choice-btn.choice-selected { z-index: 8; border-color: var(--accent); animation: choice-lock-out .74s cubic-bezier(.45,0,.18,1) both; }
.reveal-modal { z-index: 70; }
.reveal-confirm-box { display: grid; width: min(610px,100%); grid-template-columns: 96px minmax(0,1fr); padding: 0; overflow: hidden; border-color: rgba(255,91,109,.42); background: linear-gradient(135deg,#151a20,#0b1015 72%); animation: modal-lock-in .3s cubic-bezier(.18,.82,.22,1) both; }
.reveal-confirm-box::before { width: 42%; background: var(--wrong); }
.reveal-confirm-box::after { content: none; position: absolute; right: -52px; bottom: 46px; color: rgba(255,255,255,.035); font-size: 9px; font-weight: 800; letter-spacing: 3px; transform: rotate(-90deg); }
.reveal-modal:not(.hidden) .reveal-confirm-box::after { content: "ARCHIVE ACCESS // TERMINATION"; }
.reveal-confirm-code { display: grid; min-height: 238px; align-content: space-between; padding: 28px 18px 24px; color: #11161b; background: linear-gradient(160deg,var(--wrong),#ff8b73); }
.reveal-confirm-code span { font-size: 8px; font-weight: 800; letter-spacing: 2px; writing-mode: vertical-rl; }
.reveal-confirm-code strong { font-size: 37px; line-height: 1; letter-spacing: -2px; }
.reveal-confirm-copy { align-self: center; padding: 32px 36px 26px; }
.reveal-confirm-copy .modal-en { color: var(--wrong); }
.reveal-confirm-copy h3 { margin-top: 12px; font-size: 27px; }
.reveal-confirm-status { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 22px; padding: 12px 14px; border-left: 2px solid var(--wrong); background: rgba(255,255,255,.035); }
.reveal-confirm-status span { color: var(--muted); font-family: var(--sans); font-size: 10px; }
.reveal-confirm-status strong { color: #f1f4f6; font-family: var(--sans); font-size: 13px; }
.reveal-confirm-actions { display: grid; grid-column: 1 / -1; grid-template-columns: 1fr 1fr; gap: 1px; border-top: 1px solid var(--line); background: var(--line); }
.reveal-confirm-actions button { min-height: 58px; border: 0; background: #111820; }
.reveal-confirm-actions #revealConfirm { display: flex; align-items: center; justify-content: center; gap: 18px; color: #fff; background: rgba(255,91,109,.14); }
.reveal-confirm-actions #revealConfirm:hover { color: #11161b; background: var(--wrong); }
.reveal-confirm-actions #revealConfirm i { font-style: normal; }
.reveal-modal.is-resolving .reveal-confirm-box::after { content: "ARCHIVE RETRIEVAL"; inset: 0; z-index: 10; display: grid; place-items: center; color: #11161b; background: linear-gradient(100deg,transparent 0 30%,var(--wrong) 47%,#fff 50%,var(--wrong) 53%,transparent 70%); font-size: 9px; opacity: 1; transform: translateX(-100%); animation: reveal-scan .75s cubic-bezier(.5,0,.2,1) infinite; }
.art-preview { position: fixed; inset: 0; z-index: 85; display: grid; place-items: center; padding: clamp(16px,3vw,42px); background: rgba(2,5,8,.91); backdrop-filter: blur(14px); }
.art-preview-stage { display: grid; width: min(1120px,100%); height: min(900px,calc(100vh - 48px)); grid-template-rows: 48px minmax(0,1fr) 66px; overflow: hidden; border: 1px solid rgba(var(--accent-rgb),.45); background: #090e13; box-shadow: 0 36px 120px rgba(0,0,0,.78),0 0 54px rgba(var(--accent-rgb),.07); animation: art-preview-in .42s cubic-bezier(.16,.8,.2,1) both; }
.art-preview-head { display: flex; align-items: center; justify-content: space-between; padding-left: 18px; border-bottom: 1px solid var(--line); background: #10171e; }
.art-preview-head > span { color: var(--accent); font-size: 8px; font-weight: 700; letter-spacing: 3px; }
.art-preview-head button { align-self: stretch; min-width: 142px; border: 0; border-left: 1px solid var(--line); color: #bdc6ce; background: rgba(255,255,255,.025); font-size: 9px; letter-spacing: 1px; }
.art-preview-head button:hover,.art-preview-head button:focus-visible { outline: none; color: var(--accent-ink); background: var(--accent); }
.art-preview-head button i { position: relative; display: inline-block; width: 9px; height: 9px; margin-right: 10px; }
.art-preview-head button i::before,.art-preview-head button i::after { content: ""; position: absolute; top: 4px; left: -1px; width: 11px; height: 1px; background: currentColor; transform: rotate(45deg); }
.art-preview-head button i::after { transform: rotate(-45deg); }
.art-preview-canvas { position: relative; min-height: 0; overflow: hidden; cursor: zoom-in; background: radial-gradient(circle at 50% 42%,rgba(var(--accent-rgb),.11),transparent 36%),linear-gradient(145deg,#151d24,#070b0f 74%); }
.art-preview[data-zoomed="true"] .art-preview-canvas { cursor: crosshair; }
.art-preview[data-image-kind="silhouette"] .art-preview-canvas, .art-preview[data-image-kind="artFragment"] .art-preview-canvas { background: radial-gradient(ellipse at 50% 47%,rgba(190,209,211,.62) 0,rgba(125,151,155,.42) 36%,rgba(45,63,70,.28) 59%,rgba(7,11,15,.98) 80%),#070b0f; box-shadow: inset 0 0 110px rgba(0,0,0,.44); }
.art-preview-grid { position: absolute; inset: 0; opacity: .23; background-image: linear-gradient(rgba(var(--accent-rgb),.12) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--accent-rgb),.12) 1px,transparent 1px); background-size: 34px 34px; mask-image: radial-gradient(circle at center,#000,transparent 78%); }
.art-preview-canvas img { position: relative; z-index: 1; display: block; width: 100%; height: 100%; object-fit: contain; transform: scale(var(--preview-scale,1)); transform-origin: var(--preview-origin-x,50%) var(--preview-origin-y,50%); filter: drop-shadow(0 20px 30px rgba(0,0,0,.58)); transition: transform .1s ease-out; animation: art-image-in .55s .08s cubic-bezier(.16,.8,.2,1) both; will-change: transform; }
.art-preview-caption { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 0 20px; border-top: 2px solid var(--accent); background: #111820; }
.art-preview-caption strong { font-family: var(--sans); font-size: 20px; letter-spacing: 3px; }
.art-preview-caption span { color: var(--muted); font-size: 8px; letter-spacing: 2px; text-align: right; }
.mobile-data-sheet, .mobile-range-summary, .mobile-range-open { display: none; }
.foot { position: relative; z-index: 2; padding: 8px 20px 24px; color: #4e5964; font-size: 8px; font-weight: 600; line-height: 1.8; letter-spacing: 2px; text-align: center; }
.wipe { position: fixed; inset: 0; z-index: 100; pointer-events: none; visibility: hidden; overflow: hidden; opacity: 0; background: rgba(3,7,11,.9); }
.wipe::before { content: ""; position: absolute; inset: 0; opacity: .29; background: repeating-linear-gradient(0deg, rgba(var(--accent-rgb),.1) 0 1px, transparent 1px 7px), linear-gradient(110deg, transparent 20%, rgba(var(--accent-rgb),.075) 48%, transparent 72%); }
.wipe span { position: absolute; top: -16%; bottom: -16%; left: -42%; width: 28%; background: linear-gradient(90deg,transparent,rgba(var(--accent-rgb),.1) 18%,rgba(var(--accent-rgb),.78) 48%,rgba(255,255,255,.82) 50%,rgba(var(--accent-rgb),.62) 53%,transparent 82%); filter: blur(1px); transform: skewX(-14deg); box-shadow: 0 0 38px rgba(var(--accent-rgb),.34),0 0 96px rgba(var(--accent-rgb),.15); }
.wipe span::after { content: "SCANNING // OPERATOR PROTOCOL"; position: absolute; top: 50%; left: 52%; padding: 5px 12px; color: var(--accent); border: 1px solid rgba(var(--accent-rgb),.48); background: rgba(3,7,11,.86); font-size: 9px; font-weight: 700; letter-spacing: 3px; white-space: nowrap; transform: translate(-50%,-50%) skewX(14deg) rotate(-90deg); }
.wipe.play { visibility: visible; animation: wipe-overlay .86s ease both; }
.wipe.play span { animation: scan-pass .86s cubic-bezier(.5,0,.28,1) both; }

@keyframes fade-up { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes mode-link-pulse { from { opacity: .66; transform: translateX(-3px); } to { opacity: 1; transform: none; } }
@keyframes mode-card-dock { from { opacity: 0; transform: translateY(34px) rotate(var(--card-tilt)) scale(.965); } to { opacity: .9; transform: rotate(var(--card-tilt)); } }
@keyframes chessmaster-terminal-load {
  0% { opacity: .04; filter: grayscale(1) contrast(1.28) brightness(.28) blur(5px); transform: scale(1.075); clip-path: inset(0 0 88%); }
  42% { opacity: .5; filter: grayscale(.92) contrast(1.18) brightness(.56) blur(1px); clip-path: inset(0 0 18%); }
  68% { opacity: .7; filter: saturate(.68) contrast(1.1) brightness(.66); transform: scale(1.025); clip-path: inset(0); }
  100% { opacity: .8; filter: saturate(.72) contrast(1.08) brightness(.72); transform: scale(1.02); clip-path: inset(0); }
}
@keyframes chessmaster-scanlines-load {
  0% { opacity: 0; background-position: 0 -90px; }
  28% { opacity: .58; }
  100% { opacity: .58; background-position: 0 120px; }
}
@keyframes chessmaster-acquire-line {
  0% { top: 3%; opacity: 0; transform: scaleX(.25); }
  12% { opacity: .78; transform: scaleX(1); }
  50% { top: 91%; opacity: .78; transform: scaleX(.92); }
  88% { top: 3%; opacity: .78; transform: scaleX(1); }
  100% { top: 3%; opacity: 0; transform: scaleX(.72); }
}
@keyframes mode-heading-acquire {
  from { opacity: 0; filter: blur(4px); transform: translate(-50%,-10px); }
  to { opacity: 1; filter: none; transform: translateX(-50%); }
}
@keyframes mode-card-focus-reveal {
  0% { opacity: 0; filter: blur(4px) saturate(.58); transform: translateY(46px) rotate(var(--card-tilt)) scale(.955); }
  58% { opacity: 1; filter: blur(0) saturate(1.08); }
  100% { opacity: .9; filter: none; transform: rotate(var(--card-tilt)); }
}
@keyframes card-in { from { opacity: 0; transform: translateY(-10px) scale(.99); } to { opacity: 1; transform: none; } }
@keyframes sweep { from { transform: translateX(-120vw) skewX(-12deg); } to { transform: translateX(150vw) skewX(-12deg); } }
@keyframes wipe-overlay { 0% { opacity: 0; } 22% { opacity: .8; } 55% { opacity: .68; } 100% { opacity: 0; } }
@keyframes scan-pass { 0% { left: -42%; } 100% { left: 122%; } }
@keyframes result-in { from { opacity: 0; transform: translateY(-10px) scale(.99); } to { opacity: 1; transform: none; } }
@keyframes final-archive-in { 0% { opacity: 0; clip-path: inset(0 0 0 100%); transform: translateX(70px); } 45% { opacity: 1; } 100% { clip-path: inset(0); transform: none; } }
@keyframes callout-slide { 0% { max-height: 0; margin-top: 0; padding-top: 0; padding-bottom: 0; border-width: 0 1px; opacity: 0; transform: translateX(-112%) skewX(-4deg); } 12%,82% { max-height: var(--callout-open-height); margin-top: var(--callout-gap); padding-top: 15px; padding-bottom: 14px; border-width: 1px; opacity: 1; transform: none; } 100% { max-height: 0; margin-top: 0; padding-top: 0; padding-bottom: 0; border-width: 0 1px; opacity: 0; transform: translateX(-32px); } }
@keyframes callout-mini-scan { 0% { left: -42%; opacity: 0; } 20% { opacity: .7; } 100% { left: 122%; opacity: 0; } }
@keyframes suggest-loading-pulse { 0%,100% { opacity: .45; } 50% { opacity: 1; } }
@keyframes suggest-loading-scan { 0% { left: -40%; } 100% { left: 100%; } }
@keyframes suggest-loading-shimmer { 0% { background-position: 130% 0; } 100% { background-position: -90% 0; } }
@keyframes operator-scan { 0% { left: -70%; opacity: 0; } 18% { opacity: .75; } 100% { left: 138%; opacity: 0; } }
@keyframes choice-out-left { 0% { opacity: 1; transform: none; } 100% { opacity: 0; transform: translateX(-65vw) skewX(-7deg); } }
@keyframes choice-out-right { 0% { opacity: 1; transform: none; } 100% { opacity: 0; transform: translateX(65vw) skewX(7deg); } }
@keyframes choice-lock-out { 0% { opacity: 1; filter: brightness(1); transform: scale(1); } 26% { filter: brightness(1.35); transform: scale(1.035); } 58% { opacity: 1; transform: scale(1.035) translateX(-4%); } 100% { opacity: 0; transform: scale(1.035) translateX(75vw); } }
@keyframes choice-verification-scan { 0% { left: -42%; opacity: 0; } 16% { opacity: 1; } 100% { left: 122%; opacity: 0; } }
@keyframes choice-status-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes mobile-art-reveal { from { opacity: 0; filter: brightness(.45); transform: translateX(-24px); } to { opacity: 1; filter: brightness(1); transform: none; } }
@keyframes choice-modal-backdrop-in { from { opacity: 0; backdrop-filter: blur(0); } to { opacity: 1; backdrop-filter: blur(12px); } }
@keyframes choice-modal-cut-in { 0% { opacity: 0; clip-path: inset(0 0 0 100%); transform: translateX(74px) skewX(-3deg); } 55% { opacity: 1; } 100% { clip-path: inset(0); transform: none; } }
@keyframes choice-candidate-in { from { opacity: 0; filter: brightness(.55); transform: translateY(24px) skewX(-2deg); } to { opacity: 1; filter: brightness(1); transform: none; } }
@keyframes mobile-endless-callout { 0% { opacity: 0; transform: translateY(-18px) skewX(-4deg); } 12%,82% { opacity: 1; transform: none; } 100% { opacity: 0; transform: translateY(-10px); } }

@media (min-width: 761px) {
  .is-final-record .operator-record-layout { display: grid; grid-template-columns: minmax(290px,36%) minmax(0,1fr); height: clamp(460px,calc(100vh - 205px),680px); min-height: 0; overflow: hidden; }
  .is-final-record .operator-visual { border-right: 1px solid var(--line); }
  .is-final-record .operator-art { inset: 0 0 52px; width: 100%; height: calc(100% - 52px); object-fit: cover; object-position: center top; }
}

@media (max-width: 1040px) {
  .topbar-quick-guess { width: min(49vw,560px); }
  .topbar-quick-guess > span { display: none; }
  main { width: min(100% - 48px,1040px); }
  .game-layout { grid-template-columns: 230px minmax(0,1fr); }
  .game-sidebar { --sidebar-gutter: 14px; }
  .game-sidebar-copy { padding: 15px 13px 14px; }
  .game-sidebar-copy h2 { font-size: 24px; }
  .game-sidebar-index { display: none; }
  .clue-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .operator-record-layout { grid-template-columns: minmax(190px,28%) minmax(0,1fr); }
  .is-final-record .operator-record-layout { grid-template-columns: minmax(230px,34%) minmax(0,1fr); }
  #choiceList { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #choiceList[data-count="3"] { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 760px) {
  .sidebar-callout { display: none; }
  html, body { width: 100%; max-width: 100%; overflow-x: hidden; overscroll-behavior-x: none; }
  body { touch-action: pan-y pinch-zoom; }
  main, #modeScreen, #gameScreen, #anomalyScreen { min-width: 0; max-width: 100%; }
  .topbar-quick-guess { display: none; }
  .hud-tag, .topbar-context { display: none; }
  body.quick-guess-active .topbar-quick-guess { display: none; }
  .topbar { min-height: 72px; padding: 15px 26px; }
  .brand-mark { width: 27px; height: 27px; }
  .brand-mark i { inset: 8px; }
  .brand-text h1 { font-size: 16px; letter-spacing: 4px; }
  .brand-en { font-size: 7px; letter-spacing: 1.7px; }
  main { width: calc(100% - 28px); padding-top: 14px; }
  .mode-stage { min-height: 690px; }
  .mode-seam { display: none; }
  .mode-index { right: 12px; font-size: 48px; }
  .mode-en { font-size: 10px; letter-spacing: 2px; }
  .mode-sudden .mode-en { padding-right: 0; }
  .mode-heading { top: 30px; }
  .mode-title { font-size: 23px; letter-spacing: 6px; }
  .mode-cards { right: 18px; bottom: 20px; left: 18px; grid-template-columns: 1fr; gap: 10px; }
  .mode-card { min-height: 158px; padding: 22px; }
  .mode-name { font-size: 23px; }
  .mode-desc { margin-top: 8px; line-height: 1.65; }
  .mode-sudden { min-height: 194px; }
  .mode-config { right: 20px; bottom: 16px; left: 20px; }
  .mode-card-sticker, .mode-card-sticker-endless { opacity: 0; filter: saturate(.86) contrast(1.04) brightness(.86) blur(0); }
  .mode-card:active .mode-card-sticker { opacity: .86; filter: saturate(1) contrast(1.1) brightness(.94) blur(0); transform: rotate(-2deg) scale(1.035); }
  .choice-preview-trigger { min-height: 34px; padding: 0 10px; color: rgba(255,255,255,.86); font-size: 9px; opacity: .9; }
  .mobile-record-active .topbar { min-height: 56px; padding: 9px 20px; }
  .mobile-record-active main { padding-top: 0; padding-bottom: clamp(112px,20dvh,144px); }
  .game-layout { display: block; }
  .game-sidebar { position: relative; top: auto; min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .game-art { height: 150px; }
  body[data-mode="endless"] .game-art { height: 150px; }
  .game-art::after { background: linear-gradient(to bottom, transparent 12%, #0b1016 96%); }
  .game-sidebar-copy { margin-top: -31px; padding: 13px 14px 12px; }
  .game-sidebar-copy h2 { margin: 10px 0 8px; font-size: 22px; }
  .game-sidebar-copy > #gameSidebarDesc { display: none; }
  .game-sidebar-index { top: 10px; right: 14px; font-size: 29px; }
  .clue-legend { display: flex; flex-wrap: wrap; margin-top: 0; margin-bottom: 0; padding: 10px 0 14px; }
  .sidebar-callout { --callout-gap: 14px; }
  .game-workspace { padding: 22px; }
  .game-meta { align-items: center; margin-bottom: 20px; }
  .lives { flex-direction: column; align-items: flex-end; gap: 7px; }
  .input-wrap { grid-template-columns: minmax(0,1fr) auto; }
  /* 应用本局/切换模式等按钮：文字单行不折行，避免两字一行的难看换行；保持一致高度 */
  .protocol-switch { flex-wrap: nowrap; white-space: nowrap; }
  .protocol-switch span { white-space: nowrap; }
  .protocol-switch i { white-space: nowrap; }
  .game-attempt-config button { white-space: nowrap; }
  .input-wrap .ghost { grid-column: 1 / -1; }
  #guessBtn { min-width: 112px; }
  #guessBtn i { display: none; }
  /* 搜索候选滑动到边界时链式带动外层档案卡片与最外层页面（不再用 contain 截断） */
  .suggest { top: auto; bottom: calc(100% + 7px); width: 100%; max-height: min(258px,38svh); overflow-x: hidden; overflow-y: auto; overscroll-behavior: auto; box-shadow: 0 -18px 40px rgba(0,0,0,.56); }
  .clue-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .operator-record-layout { grid-template-columns: 190px minmax(0,1fr); min-height: 560px; }
  .is-final-record .operator-record-layout { display: block; height: auto; min-height: 0; }
  .is-final-record .operator-visual { height: 340px; min-height: 340px; border-right: 0; border-bottom: 1px solid var(--line); }
  .is-final-record .operator-record-data { height: min(660px,72vh); min-height: 520px; }
  .operator-art { right: -35%; left: -35%; width: 170%; }
  .is-final-record .operator-art { inset: 0 0 48px; width: 100%; object-fit: cover; object-position: center top; }
  .final-archive-sheet { padding-right: 14px; padding-left: 14px; }
  .archive-sheet-heading { margin-right: -14px; margin-left: -14px; }
  .clue { min-height: 88px; }
  .clue-tags { grid-column: auto; }
  .victory { align-items: flex-start; flex-direction: column; gap: 18px; }
  .victory-actions { width: 100%; }

  /* 开局（未提交）首屏紧凑化：把猜测输入与提交按钮收进首屏，同时保留战术指令的可读性 */
  #gameScreen:not(.has-guesses) .game-art { height: 98px; }
  #gameScreen:not(.has-guesses) .game-sidebar-copy { margin-top: -24px; padding: 9px 13px; }
  #gameScreen:not(.has-guesses) .game-sidebar-copy h2 { margin: 7px 0 0; font-size: 18px; }
  #gameScreen:not(.has-guesses) .clue-legend { padding: 5px 0 7px; }
  #gameScreen:not(.has-guesses) .clue-legend span { min-height: 22px; }
  #gameScreen:not(.has-guesses) .directive-panel { margin-bottom: 10px; padding: 8px 12px; }
  #gameScreen:not(.has-guesses) .directive-brief { margin-top: 6px; }
  #gameScreen:not(.has-guesses) .directive-rule { margin-top: 6px; padding: 5px 9px 6px; }
  #gameScreen:not(.has-guesses) .directive-track { margin-top: 6px; padding-top: 6px; }
  #gameScreen:not(.has-guesses) .game-meta { margin-bottom: 10px; align-items: flex-end; }
  /* 开局操作按钮统一：同高、垂直居中对齐、边框风格一致，避免"应用本局/切换模式"宽窄错位难看 */
  #gameScreen:not(.has-guesses) .game-meta-actions { align-items: center; }
  #gameScreen:not(.has-guesses) .game-meta-buttons { align-items: center; }
  #gameScreen:not(.has-guesses) .game-attempt-config { align-items: center; flex-direction: row; gap: 8px; margin-top: 0; }
  #gameScreen:not(.has-guesses) .game-attempt-config button { display: inline-flex; align-items: center; justify-content: center; }
  /* 注意不给 .protocol-switch 强制 display：.endless-restart(重新开始)在终局校验本就 display:none，不能被顶出来 */
  #gameScreen:not(.has-guesses) .game-attempt-config button,
  #gameScreen:not(.has-guesses) .game-meta-buttons .protocol-switch { min-height: 36px; height: 36px; box-sizing: border-box; }
  #gameScreen:not(.has-guesses) .guess-console { padding: 12px 14px 10px; }
  #gameScreen:not(.has-guesses) .console-heading { margin-bottom: 10px; }
  #gameScreen:not(.has-guesses) .input-wrap { grid-template-columns: minmax(0,1fr) auto; }
  #gameScreen:not(.has-guesses) .input-wrap .ghost { grid-column: 1 / -1; min-height: 40px; }
  #gameScreen:not(.has-guesses) .input-wrap input { height: 44px; }
  #gameScreen:not(.has-guesses) #guessBtn { min-height: 44px; }
  #gameScreen:not(.has-guesses) .status { min-height: 12px; margin-top: 2px; }
  #gameScreen:not(.has-guesses) #boardEmpty { min-height: 148px; }
  /* 刚进入（未提交）时不显示底部"档案比对"空态区，首屏聚焦输入；首次提交后由 has-guesses 恢复。
     终局校验与全域检索共用此规则（优化同步）。 */
  #gameScreen:not(.has-guesses) .dossier-section { display: none; }

  .game-sidebar { max-height: 430px; opacity: 1; transform: none; transition: max-height .48s cubic-bezier(.2,.8,.2,1),opacity .28s ease,transform .48s cubic-bezier(.2,.8,.2,1),border-color .28s ease; }
  #gameScreen.has-guesses .game-layout { display: flex; height: calc(var(--mobile-game-viewport-height,100dvh) + clamp(112px,20dvh,144px)); min-height: 0; flex-direction: column; overflow: hidden; }
  #gameScreen.has-guesses .game-sidebar { max-height: 0; min-height: 0; opacity: 0; border-bottom-color: transparent; transform: translateY(-28px); }
  #gameScreen.has-guesses .game-workspace { position: relative; display: flex; min-height: 0; flex: 1; flex-direction: column; padding: 8px 12px max(6px,env(safe-area-inset-bottom)); overflow: hidden; }
  #gameScreen.has-guesses .game-meta { min-height: 32px; flex: none; align-items: center; gap: 6px; margin-bottom: 4px; }
  #gameScreen.has-guesses .game-meta > div { gap: 4px; }
  #gameScreen.has-guesses .game-meta > div:first-child { flex-direction: row; align-items: center; }
  #gameScreen.has-guesses #modeLabel { display: none; }
  #gameScreen.has-guesses .game-meta-actions { min-width: 0; flex: 1; flex-direction: row; align-items: center; justify-content: flex-end; }
  #gameScreen.has-guesses .game-meta-buttons { gap: 5px; }
  #gameScreen.has-guesses .meta-label { display: none; }
  #gameScreen.has-guesses .pill { font-size: 12px; }
  #gameScreen.has-guesses .pill.hot::after { margin-left: 5px; padding: 2px 4px; font-size: 6px; }
  #gameScreen.has-guesses .lives { flex-direction: row; gap: 5px; }
  #gameScreen.has-guesses .lives #attemptLabel { font-size: 10px; white-space: nowrap; }
  #gameScreen.has-guesses .pips { display: none; }
  #gameScreen.has-guesses .protocol-switch { min-height: 30px; padding: 0 8px; }
  #gameScreen.has-guesses .protocol-switch i { display: none; }
  #gameScreen.has-guesses .game-attempt-config { gap: 4px; margin-top: 0; }
  #gameScreen.has-guesses .game-attempt-config .attempt-control span { display: none; }
  #gameScreen.has-guesses .game-attempt-config .attempt-control input { width: 30px; height: 28px; font-size: 16px; }
  #gameScreen.has-guesses .game-attempt-config button { min-height: 30px; padding: 0 7px; font-size: 8px; }
  body[data-mode="endless"] #gameScreen.has-guesses .mobile-endless-callout,
  body[data-mode="endless"] #gameScreen .mobile-endless-callout.input-triggered { position: absolute; top: 0; right: 12px; z-index: 30; display: grid; width: min(230px,calc(100% - 24px)); height: 58px; min-height: 0; grid-template-columns: 58px minmax(0,1fr); align-items: center; overflow: hidden; visibility: hidden; border: 1px solid rgba(var(--accent-rgb),.48); color: var(--accent); background: linear-gradient(110deg,rgba(15,18,12,.96),rgba(26,31,16,.94)); box-shadow: 0 16px 36px rgba(0,0,0,.55),inset 0 0 22px rgba(var(--accent-rgb),.05); opacity: 0; pointer-events: none; }
  body[data-mode="endless"] #gameScreen.has-guesses .mobile-endless-callout.show,
  body[data-mode="endless"] #gameScreen .mobile-endless-callout.input-triggered.show { visibility: visible; animation: mobile-endless-callout 4s cubic-bezier(.2,.78,.2,1) both; }
  .mobile-endless-callout > img { position: absolute; top: -5px; left: -13px; width: 80px; height: 68px; object-fit: cover; object-position: 50% center; opacity: .86; filter: saturate(.8) contrast(1.12) brightness(.9); transform: rotate(-3deg) scale(1.04); -webkit-mask-image: radial-gradient(ellipse 72% 66% at 46% 50%,#000 0 48%,rgba(0,0,0,.7) 68%,transparent 100%); mask-image: radial-gradient(ellipse 72% 66% at 46% 50%,#000 0 48%,rgba(0,0,0,.7) 68%,transparent 100%); }
  .mobile-endless-callout > div { min-width: 0; grid-column: 2; padding: 6px 9px 6px 2px; }
  .mobile-endless-callout span { display: block; color: rgba(var(--accent-rgb),.62); font-size: 7px; font-weight: 700; letter-spacing: 1.4px; }
  .mobile-endless-callout strong { display: block; margin-top: 4px; overflow: hidden; font-family: var(--sans); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
  .mobile-endless-callout i { display: block; height: 2px; margin-top: 7px; overflow: hidden; background: rgba(var(--accent-rgb),.14); }
  .mobile-endless-callout b { display: block; width: 100%; height: 100%; background: var(--accent); box-shadow: 0 0 8px rgba(var(--accent-rgb),.7); transform: scaleX(0); transform-origin: left; transition: transform .35s ease; }
  body[data-mode="endless"] #gameScreen .mobile-endless-callout.is-media { width: min(260px,calc(100% - 24px)); height: 126px; grid-template-columns: 1fr; background: #080b0d; }
  body[data-mode="endless"] #gameScreen .mobile-endless-callout.is-media > img { inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center; opacity: 1; filter: none; transform: none; -webkit-mask-image: none; mask-image: none; }
  body[data-mode="endless"] #gameScreen .mobile-endless-callout.is-media > div { display: none; }
  body[data-mode="endless"] #gameScreen .mobile-endless-callout.is-special-text { width: min(270px,calc(100% - 24px)); height: 76px; }
  body[data-mode="endless"] #gameScreen .mobile-endless-callout.is-special-text strong { line-height: 1.32; text-overflow: clip; white-space: normal; }

  /* 档案区层级显式垫底：位移中的档案内容永不可压住固定输入台（文档流内 z-index:18 / 固定态 z-index:86）。 */
  #gameScreen.has-guesses .dossier-section { z-index: 0; display: flex; min-height: 0; flex: 1; flex-direction: column; order: 1; margin-top: 0; }
  #gameScreen.has-guesses .dossier-head { min-height: 30px; flex: none; margin-bottom: 4px; }
  #gameScreen.has-guesses .dossier-head .console-step { width: 26px; height: 26px; font-size: 9px; }
  #gameScreen.has-guesses .dossier-head h2 { font-size: 15px; }
  #gameScreen.has-guesses .dossier-head p { display: none; }
  #gameScreen.has-guesses .board { display: flex; min-height: 0; flex: 1; flex-direction: column; overflow: hidden; }
  #gameScreen.has-guesses .result-overlay { flex: none; }
  #gameScreen.has-guesses .guess-list { display: flex; min-height: 0; flex: 1; flex-direction: column; overflow-x: hidden; overflow-y: auto; overscroll-behavior-x: contain; overscroll-behavior-y: auto; scroll-snap-type: none; scrollbar-width: none; }
  #gameScreen.has-guesses .guess-list.mobile-new-record-positioned { scroll-snap-type: none; }
  #gameScreen.has-guesses .guess-list::-webkit-scrollbar { display: none; }
  #gameScreen.has-guesses .guess-card + .guess-card { margin-top: 8px; }
  /* 移动端档案列表不做卡片吸附：自由惯性滑动更顺畅（桌面端本就不吸附） */
  #gameScreen.has-guesses .guess-card { display: flex; height: 100%; min-height: 100%; flex-direction: column; overflow: clip; scroll-snap-align: none; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) { height: auto; min-height: 0; flex: 0 0 auto; }
  #gameScreen.has-guesses .guess-card.card-entering { transform-origin: center bottom; }
  /* 单档案（首猜）：档案卡吃满"头部↔固定控制台"之间的可用高度，消除上下大空隙、信息完整。
     布局改为视口约束的固定高度，卡片拉伸填满，线索网格行随之拉伸；底部为固定控制台预留空间。 */
  #gameScreen.has-guesses.has-single-record .game-layout { height: calc(var(--mobile-game-viewport-height,100dvh) - 50px); }
  #gameScreen.has-guesses.has-single-record .game-workspace,
  #gameScreen.has-guesses.has-single-record .dossier-section,
  #gameScreen.has-guesses.has-single-record .board,
  #gameScreen.has-guesses.has-single-record .guess-list { min-height: 0; flex: 1 1 auto; }
  #gameScreen.has-guesses.has-single-record .guess-list { overflow: hidden; padding-bottom: 78px; }
  #gameScreen.has-guesses.has-single-record .guess-card:not(.is-final-record) { height: 100%; }
  #gameScreen.has-guesses.has-single-record .guess-card:not(.is-final-record) .operator-record-layout { flex: 1 1 auto; }
  #gameScreen.has-guesses.has-single-record .guess-card:not(.is-final-record) .v2-clue-grid { flex: 1 1 auto; min-height: 0; align-content: stretch; grid-auto-rows: 1fr; grid-template-rows: none; }
  /* 紧凑视口（软键盘打开）：单档案恢复视口约束布局，卡片余量由 .guess-list 内部滚动承担，避免档案下半截被固定控制台永久遮挡 */
  body.mobile-compact-viewport #gameScreen.has-guesses.has-single-record .game-layout { height: calc(var(--mobile-game-viewport-height,100dvh) + clamp(112px,20dvh,144px)); }
  body.mobile-compact-viewport #gameScreen.has-guesses.has-single-record .game-workspace,
  body.mobile-compact-viewport #gameScreen.has-guesses.has-single-record .dossier-section,
  body.mobile-compact-viewport #gameScreen.has-guesses.has-single-record .board,
  body.mobile-compact-viewport #gameScreen.has-guesses.has-single-record .guess-list { min-height: 0; flex: 1 1 auto; }
  #gameScreen.has-guesses .guess-card .operator-record-layout { display: flex; height: auto; min-height: 0; flex: 1; overflow: clip; touch-action: pan-y; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .operator-record-layout { flex: none; }
  #gameScreen.has-guesses .guess-card .operator-visual,
  #gameScreen.has-guesses .guess-card .operator-record-data { width: 100%; height: auto; min-height: 0; flex: 0 0 100%; align-self: stretch; transform: translateX(0); transition: transform .42s cubic-bezier(.2,.72,.2,1); }
  #gameScreen.has-guesses .guess-card .operator-record-layout.mobile-show-record > .operator-visual,
  #gameScreen.has-guesses .guess-card .operator-record-layout.mobile-show-record > .operator-record-data { transform: translateX(-100%); }
  #gameScreen.has-guesses .guess-card .operator-visual { overflow: clip; border-right: 0; border-bottom: 0; }
  #gameScreen.has-guesses .guess-card .operator-art { display: block; opacity: 1; }
  #gameScreen.has-guesses .guess-card .operator-art-caption { visibility: visible; opacity: 1; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record).card-entering .operator-art { animation: mobile-art-reveal .68s cubic-bezier(.16,.76,.18,1) both; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .operator-record-data { display: flex; flex-direction: column; overflow: clip; }
  #gameScreen.has-guesses .guess-card.is-final-record { height: auto; min-height: 0; overflow: clip; }
  #gameScreen.has-guesses .guess-card.is-final-record .operator-record-layout { display: flex; height: min(700px,78dvh); min-height: min(560px,72dvh); flex: none; overflow: clip; touch-action: pan-y; }
  #gameScreen.has-guesses .guess-card.is-final-record .operator-visual,
  #gameScreen.has-guesses .guess-card.is-final-record .operator-record-data { width: 100%; height: 100%; min-height: 0; flex: 0 0 100%; }
  #gameScreen.has-guesses .guess-card.is-final-record .operator-record-data { display: flex; flex-direction: column; overflow: clip; }
  #gameScreen.has-guesses .guess-card.is-final-record .final-archive-sheet { min-height: 0; flex: 1; overflow-y: auto; overscroll-behavior-y: auto; touch-action: pan-y; }
  #gameScreen.has-guesses .guess-card.is-final-record > .mobile-record-pager { display: none; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .guess-card-head { min-height: 52px; flex: none; padding: 7px 9px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .guess-number { width: 30px; height: 30px; font-size: 9px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .guess-title small { font-size: 7px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .guess-title h3 { margin-top: 2px; font-size: 15px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .guess-summary { gap: 4px; font-size: 8px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .guess-summary strong { font-size: 15px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .clue-grid { min-height: 0; flex: none; align-content: start; grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: repeat(6,minmax(54px,auto)); }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .clue { min-height: 54px; padding: 5px 7px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .clue-label { font-size: 9.5px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .clue-state { font-size: 9px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .clue-value { margin-top: 3px; font-size: 12px; line-height: 1.2; white-space: nowrap; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .clue-direction { font-size: 13px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .clue-meta { display: -webkit-box; margin-top: 2px; overflow: hidden; font-size: clamp(9.5px,1.25svh,10.5px); line-height: 1.25; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .clue-hint { display: none; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .tag-pills { gap: 2px; margin-top: 3px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .tag { padding: 1px 4px; font-size: 8px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .cell-special .clue-value::after { font-size: 6px; }
  .mobile-record-pager { display: flex; min-height: 29px; flex: none; align-items: center; justify-content: center; gap: 5px; border-top: 1px solid var(--line); background: #0c1218; }
  .mobile-record-pager button { display: inline-flex; min-height: 24px; align-items: center; gap: 5px; padding: 0 7px; border: 0; color: #737e88; background: transparent; font-family: var(--sans); font-size: 9px; }
  .mobile-record-pager button i { width: 5px; height: 5px; border: 1px solid currentColor; transform: rotate(45deg); }
  .mobile-record-pager button.active { color: var(--accent); }
  .mobile-record-pager button.active i { background: var(--accent); box-shadow: 0 0 7px rgba(var(--accent-rgb),.65); }
  .mobile-record-pager em { margin-left: 5px; color: #515c66; font-size: 7px; font-style: normal; letter-spacing: 1px; }

  #gameScreen.has-guesses .guess-console { z-index: 18; max-height: 76px; flex: none; order: 2; margin-top: 4px; padding: 5px 8px 4px; overflow: visible; border-color: rgba(var(--accent-rgb),.36); box-shadow: 0 -10px 24px rgba(3,7,10,.68); opacity: 1; transform: none; transition: border-color .16s ease,background .16s ease; }
  #gameScreen.mobile-fixed-viewport-root { animation: none !important; transform: none !important; }
  body.mobile-guess-docked #gameScreen .game-layout { -webkit-backdrop-filter: none; backdrop-filter: none; }
  body.mobile-guess-docked #gameScreen.has-guesses:not(.is-finished) .guess-console { position: fixed; z-index: 86; max-height: none; margin: 0; background: linear-gradient(105deg,rgba(var(--accent-rgb),.11),transparent 44%),rgba(9,15,21,.98); box-shadow: 0 -16px 34px rgba(3,7,10,.82),0 0 0 1px rgba(var(--accent-rgb),.12); transform: none !important; }
  #gameScreen.has-guesses .console-heading { display: none; margin-bottom: 0; gap: 7px; }
  #gameScreen.has-guesses .console-heading .console-step { width: 24px; height: 24px; font-size: 8px; }
  #gameScreen.has-guesses .console-heading h2 { font-size: 13px; }
  #gameScreen.has-guesses .console-heading p { display: none; }
  #gameScreen.has-guesses .input-wrap { grid-template-columns: minmax(0,1fr) 86px 64px; gap: 5px; }
  #gameScreen.has-guesses .input-wrap input { width: auto; height: 42px; padding: 0 10px; font-size: 11px; transition: none; }
  #gameScreen.has-guesses .input-wrap input:focus { border-color: rgba(var(--accent-rgb),.76); box-shadow: none; }
  #gameScreen.has-guesses #guessBtn { min-width: 0; min-height: 42px; padding: 0 9px; font-size: 10px; }
  #gameScreen.has-guesses .input-wrap .ghost { min-height: 42px; grid-column: auto; padding: 0 6px; font-size: 9px; }
  #gameScreen.has-guesses .status { min-height: 12px; margin-top: 2px; font-size: 9px; }
  .mobile-record-active .foot { display: none; }

  #gameScreen.has-guesses.is-finished .guess-console { max-height: 0; min-height: 0; margin-top: 0; padding-top: 0; padding-bottom: 0; overflow: hidden; border-width: 0; box-shadow: none; opacity: 0; pointer-events: none; transform: translateY(20px); }
  #gameScreen.has-guesses.is-finished .board { overflow-y: auto; overscroll-behavior-x: contain; overscroll-behavior-y: auto; scroll-snap-type: none; scrollbar-width: none; }
  #gameScreen.has-guesses .mobile-boundary-handoff-active { scroll-snap-type: none !important; }
  #gameScreen.has-guesses.is-finished .board::-webkit-scrollbar { display: none; }
  #gameScreen.has-guesses.is-finished .result-overlay { display: flex; min-height: 0; flex: 0 0 auto; align-items: stretch; margin: 2px 0 6px; }
  #gameScreen.has-guesses.is-finished .result-overlay .victory { width: 100%; min-height: 0; gap: 9px; padding: 13px 14px 12px; }
  #gameScreen.has-guesses.is-finished .result-overlay .victory h2 { margin: 5px 0 3px; font-size: 18px; line-height: 1.32; }
  #gameScreen.has-guesses.is-finished .result-overlay .victory-sub { font-size: 9px; line-height: 1.35; }
  #gameScreen.has-guesses.is-finished .result-overlay .victory-actions { gap: 6px; }
  #gameScreen.has-guesses.is-finished .result-overlay .victory-actions button { min-height: 38px; }
  #gameScreen.has-guesses.is-finished .guess-list { display: contents; }
  #gameScreen.has-guesses.is-finished .guess-card { height: auto; min-height: 0; flex: 0 0 auto; }
  #gameScreen.has-guesses.is-finished .is-final-record.mobile-final-revealing .operator-art { animation: mobile-art-reveal .56s cubic-bezier(.18,.8,.2,1) both; }
  #gameScreen.has-guesses.is-finished .is-final-record.mobile-final-revealing .operator-visual-scan { animation: operator-scan .88s .08s cubic-bezier(.32,0,.18,1) both; }
  .mobile-game-finished .topbar, .mobile-game-finished .game-meta, .mobile-game-finished .dossier-head { touch-action: none; }
  .art-preview { z-index: 110; max-width: none; overflow: hidden; padding: max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left)); }
  .art-preview-stage { width: 100%; height: 100%; max-width: 100%; max-height: 100%; grid-template-rows: 52px minmax(0,1fr) 54px; animation: mobile-art-preview-in .24s ease both; }
  .art-preview-head { justify-content: flex-end; padding-left: 0; }
  .art-preview-head > span { display: none; }
  .art-preview-head button { width: 100%; min-width: 0; min-height: 52px; border-left: 0; font-size: 10px; touch-action: manipulation; }
  .art-preview-canvas { cursor: pointer; touch-action: none; }
  .art-preview[data-zoomed="true"] .art-preview-canvas { cursor: pointer; }
  /* 移动端立绘预览启用双指缩放：沿用 --preview-scale/--preview-origin 变量，transition 置零避免捏合滞后 */
  .art-preview-canvas img { transform: scale(var(--preview-scale,1)); transform-origin: var(--preview-origin-x,50%) var(--preview-origin-y,50%); transition: none; will-change: transform; }
  .art-preview-caption { min-width: 0; padding: 0 13px; }
  .art-preview-caption strong, .art-preview-caption span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  body.art-preview-open .mobile-data-sheet { pointer-events: none; }
  @keyframes mobile-art-preview-in { from { opacity: 0; } to { opacity: 1; } }
}

@media (max-width: 460px) {
  .hud::before { inset: 6px; }
  .hud-corner { display: none; }
  .topbar { padding: 14px 20px; }
  main { width: calc(100% - 16px); }
  .mode-title { font-size: 20px; }
  .section-en::before, .section-en::after { width: 28px; }
  .mode-card { padding: 19px; }
  .game-workspace { padding: 18px 14px; }
  .game-meta { align-items: flex-start; }
  .game-attempt-config { align-items: flex-start; flex-direction: column; }
  .pill { font-size: 14px; }
  .pips i { width: 7px; height: 7px; }
  .guess-console { padding: 20px 14px; }
  .console-heading { margin-bottom: 16px; }
  .input-wrap { grid-template-columns: 1fr; }
  .input-wrap input, #guessBtn { width: 100%; }
  #guessBtn { min-height: 48px; }
  .input-wrap .ghost { grid-column: auto; }
  .dossier-head { align-items: flex-end; }
  .dossier-head p { max-width: 90px; text-align: right; }
  .guess-card-head { align-items: flex-start; }
  .operator-record-layout,.is-final-record .operator-record-layout { display: block; }
  .operator-visual,.is-final-record .operator-visual { min-height: 340px; border-right: 0; border-bottom: 1px solid var(--line); }
  .operator-art,.is-final-record .operator-art { inset: 4px -12% 48px; width: 124%; }
  .is-final-record .operator-art { inset: 0 0 48px; width: 100%; object-fit: cover; object-position: center top; }
  .archive-classification { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .archive-lines { grid-template-columns: 1fr; }
  .archive-lines .archive-line-wide { grid-column: auto; }
  .guess-summary { flex-direction: column; align-items: flex-end; gap: 0; }
  .clue { min-height: 84px; padding: 13px 11px; }
  .clue-value { font-size: 12px; }
  .victory { min-height: 0; padding: 22px 18px; }
  .victory-actions { grid-template-columns: 1fr; }
  .victory-actions button:first-child { grid-column: auto; }
  #choiceList { grid-template-columns: 1fr; }
  #choiceList[data-count="3"] { grid-template-columns: 1fr; }
  .choice-btn { min-height: 310px; }
  .modal-box { padding: 26px 20px; }
  .reveal-confirm-box { grid-template-columns: 68px minmax(0,1fr); padding: 0; }
  .reveal-confirm-code { min-height: 230px; padding: 24px 12px 20px; }
  .reveal-confirm-code strong { font-size: 28px; }
  .reveal-confirm-copy { padding: 26px 18px 22px; }
  .reveal-confirm-copy h3 { font-size: 22px; }
  .reveal-confirm-status { align-items: flex-start; flex-direction: column; gap: 5px; }
  .reveal-confirm-actions { grid-template-columns: 1fr; }
  .art-preview { padding: 8px; }
  .art-preview-stage { height: 100%; max-height: 100%; grid-template-rows: 52px minmax(0,1fr) 54px; }
  .art-preview-head { justify-content: flex-end; padding-left: 0; }
  .art-preview-head > span { display: none; }
  .art-preview-head button { width: 100%; border-left: 0; }
  .art-preview-caption { align-items: flex-start; flex-direction: column; justify-content: center; gap: 4px; }
  .art-preview-caption strong { font-size: 16px; }
  .art-preview-caption span { font-size: 7px; text-align: left; }
}

@media (max-width: 760px) and (max-height: 740px) {
  .mobile-record-active .topbar { min-height: 50px; padding-top: 7px; padding-bottom: 7px; }
  .mobile-record-active main { padding-top: 0; padding-bottom: clamp(112px,20dvh,144px); }
  #gameScreen.has-guesses .game-layout { height: calc(var(--mobile-game-viewport-height,100dvh) + clamp(112px,20dvh,144px)); }
  #gameScreen.has-guesses .game-meta { min-height: 36px; margin-bottom: 4px; }
  #gameScreen.has-guesses .dossier-head { min-height: 27px; margin-bottom: 3px; }
  #gameScreen.has-guesses .dossier-head .console-step { width: 24px; height: 24px; }
  #gameScreen.has-guesses .console-heading { display: none; }
  #gameScreen.has-guesses .guess-console { margin-top: 4px; padding-top: 5px; padding-bottom: 4px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .clue-meta,
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .clue-hint { font-size: 9.5px; }
}

@media (max-width: 340px) {
  .archive-classification { grid-template-columns: 1fr; }
  .archive-classification .archive-line-wide { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@keyframes side-beam-sweep { 0%, 100% { transform: translateX(-3%); } 50% { transform: translateX(3%); } }
@keyframes modal-lock-in { from { opacity: 0; transform: translateY(18px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes reveal-scan { to { transform: translateX(100%); } }
@keyframes art-preview-in { from { opacity: 0; clip-path: inset(0 0 0 100%); transform: translateX(54px); } to { opacity: 1; clip-path: inset(0); transform: none; } }
@keyframes art-image-in { from { opacity: 0; } to { opacity: 1; } }

/* ============ SUDDEN 终局校验 V3 ============ */

/* --- 战术指令终端（侧栏） --- */
.directive-panel { --directive-tint: var(--accent); --directive-tint-rgb: var(--accent-rgb); position: relative; display: none; width: calc(100% - var(--sidebar-gutter) - var(--sidebar-gutter)); margin: 0 auto 20px; padding: 14px 15px; overflow: hidden; border: 1px solid var(--line-strong); background: linear-gradient(120deg, rgba(var(--directive-tint-rgb),.06), transparent 55%), #0c1219; }
body[data-mode="sudden"] .directive-panel { display: block; }
.directive-panel.directive-awaiting { visibility: hidden; opacity: 0; transform: translate3d(-44px,0,0); }
.directive-panel.directive-round-enter { animation: directive-round-enter .68s cubic-bezier(.16,.78,.18,1) both; will-change: clip-path,transform,opacity; }
.directive-panel::before { content: ""; position: absolute; top: -1px; left: -1px; width: 44px; height: 2px; background: var(--directive-tint); box-shadow: 0 0 12px rgba(var(--directive-tint-rgb),.5); }
.directive-panel[data-family="battle"] { --directive-tint: #ffb35c; --directive-tint-rgb: 255,179,92; }
.directive-panel[data-family="identity"] { --directive-tint: #a8b8ff; --directive-tint-rgb: 168,184,255; }
.directive-panel[data-family="logistics"] { --directive-tint: #ffd76b; --directive-tint-rgb: 255,215,107; }
.directive-panel[data-family="visual"] { --directive-tint: #ff9edb; --directive-tint-rgb: 255,158,219; }
.directive-stage { display: grid; min-width: 0; }
.directive-main-view, .directive-intel-view { grid-area: 1 / 1; min-width: 0; transition: transform .56s cubic-bezier(.22,.78,.16,1),opacity .34s ease; will-change: transform,opacity; }
.directive-main-view { opacity: 1; transform: translate3d(0,0,0); }
.directive-intel-view { align-self: start; max-height: min(390px,46vh); overflow-x: hidden; overflow-y: auto; opacity: 0; scrollbar-width: thin; pointer-events: none; transform: translate3d(112%,0,0); }
.directive-panel.show-intel .directive-main-view { opacity: 0; pointer-events: none; transform: translate3d(-112%,0,0); }
.directive-panel.show-intel .directive-intel-view { opacity: 1; pointer-events: auto; transform: translate3d(0,0,0); }
.directive-panel.is-decoding .directive-main-view { opacity: .58; }
.directive-intel-view .intel-card { grid-template-columns: 1fr; border: 0; background: transparent; box-shadow: none; animation: none; }
.directive-intel-view .intel-media { min-height: 142px; border-right: 0; border-bottom: 1px solid var(--line); }
.directive-intel-view .intel-media img { max-height: 132px; }
.directive-intel-view .intel-body { padding: 12px 3px 2px; }
.directive-intel-view .intel-kind { font-size: 6px; letter-spacing: 1.8px; }
.directive-intel-view .intel-title { font-size: 13px; }
.directive-intel-view .intel-skill-icons { min-height: 108px; padding: 10px 3px; }
.directive-intel-view .intel-skill-icon { min-height: 70px; }
.directive-intel-view .intel-mech-skill { grid-template-columns: 28px minmax(0,1fr); padding: 6px; }
.directive-intel-view .intel-mech-chip { padding: 4px 6px; font-size: 8px; }
.directive-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.directive-eyebrow { display: inline-flex; align-items: baseline; gap: 7px; color: rgba(var(--directive-tint-rgb),.62); font-size: 7px; font-weight: 700; letter-spacing: 2.5px; }
.directive-eyebrow i { color: var(--muted); font-family: var(--sans); font-size: 9px; font-style: normal; letter-spacing: 1.5px; }
.directive-state { color: var(--directive-state-color, var(--muted)); font-size: 8px; font-weight: 700; letter-spacing: 2px; transition: color .25s ease; }
.directive-panel[data-status="idle"] { --directive-state-color: var(--muted); }
.directive-panel[data-status="active"] { --directive-state-color: var(--directive-tint); }
.directive-panel[data-status="complete"], .directive-panel[data-status="revealed"] { --directive-state-color: var(--exact); }
.directive-panel[data-status="idle"] .directive-brief, .directive-panel[data-status="idle"] .directive-rule, .directive-panel[data-status="idle"] .directive-track { opacity: .5; }
.directive-brief { display: flex; align-items: center; gap: 11px; margin-top: 12px; }
.directive-sigil { position: relative; width: 30px; height: 30px; flex: none; border: 1px solid rgba(var(--directive-tint-rgb),.55); background: rgba(var(--directive-tint-rgb),.07); }
.directive-sigil::before { content: ""; position: absolute; inset: 9px; background: var(--directive-tint); box-shadow: 0 0 9px rgba(var(--directive-tint-rgb),.7); }
.directive-panel[data-family="skill"] .directive-sigil::before { transform: rotate(45deg); }
.directive-panel[data-family="battle"] .directive-sigil::before { inset: 8px; clip-path: polygon(32% 0, 68% 0, 68% 32%, 100% 32%, 100% 68%, 68% 68%, 68% 100%, 32% 100%, 32% 68%, 0 68%, 0 32%, 32% 32%); }
.directive-panel[data-family="identity"] .directive-sigil::before { inset: 7px 8px; clip-path: polygon(0 0, 68% 0, 100% 28%, 100% 100%, 0 100%); }
.directive-panel[data-family="logistics"] .directive-sigil::before { inset: 8px 6px; clip-path: polygon(0 0, 100% 0, 100% 20%, 0 20%, 0 40%, 100% 40%, 100% 60%, 0 60%, 0 80%, 100% 80%, 100% 100%, 0 100%); }
.directive-panel[data-family="visual"] .directive-sigil::before { border-radius: 50%; }
.directive-brief-text { min-width: 0; }
.directive-family { display: inline-block; padding: 2px 6px; border: 1px solid rgba(var(--directive-tint-rgb),.4); color: var(--directive-tint); background: rgba(var(--directive-tint-rgb),.07); font-family: var(--sans); font-size: 9px; letter-spacing: 1.5px; }
.directive-title { margin: 6px 0 0; overflow: hidden; font-family: var(--sans); font-size: 16px; letter-spacing: 1.5px; text-overflow: ellipsis; white-space: nowrap; }
.directive-rule { position: relative; margin-top: 11px; padding: 8px 10px 9px; overflow: hidden; border-left: 2px solid var(--directive-tint); background: linear-gradient(95deg, rgba(var(--directive-tint-rgb),.13), rgba(var(--directive-tint-rgb),.03) 62%, transparent); }
.directive-rule::after { content: ""; position: absolute; top: 0; bottom: 0; left: -30%; width: 22%; pointer-events: none; background: linear-gradient(90deg, transparent, rgba(var(--directive-tint-rgb),.1), transparent); transform: skewX(-14deg); animation: directive-rule-scan 3.6s ease-in-out infinite; }
@keyframes directive-rule-scan { 0%, 55% { left: -30%; } 90%, 100% { left: 118%; } }
.directive-rule-tag { display: inline-flex; align-items: baseline; gap: 6px; color: var(--directive-tint); font-family: var(--sans); font-size: 8.5px; font-weight: 700; letter-spacing: 2px; }
.directive-rule-tag i { color: rgba(var(--directive-tint-rgb),.55); font-family: var(--font); font-size: 7px; font-style: normal; letter-spacing: 1.5px; }
.directive-desc { margin: 4px 0 0; min-height: 0; color: #e9eff4; font-family: var(--sans); font-size: 12px; line-height: 1.6; letter-spacing: .3px; }
.directive-track { display: flex; align-items: center; gap: 14px; margin-top: 12px; padding-top: 11px; border-top: 1px solid var(--line); }
.directive-nodes { position: relative; display: flex; align-items: center; gap: 16px; padding: 2px 1px; }
.directive-nodes::before { content: ""; position: absolute; right: 7px; left: 7px; top: 50%; height: 1px; background: rgba(255,255,255,.13); }
.directive-nodes:empty::before { display: none; }
.directive-node { position: relative; z-index: 1; width: 11px; height: 11px; flex: none; border: 1px solid rgba(255,255,255,.32); background: #0c1219; transform: rotate(45deg); transition: border-color .25s ease, background .25s ease, box-shadow .25s ease; }
.directive-node.lit { border-color: var(--directive-tint); background: var(--directive-tint); box-shadow: 0 0 10px rgba(var(--directive-tint-rgb),.55); }
.directive-node.just-lit { animation: directive-node-lock .5s cubic-bezier(.2,.8,.24,1) both; }
@keyframes directive-node-lock { 0% { transform: rotate(45deg) scale(1.85); filter: brightness(1.9); } 60% { transform: rotate(45deg) scale(.9); } 100% { transform: rotate(45deg) scale(1); filter: none; } }
.directive-progress { margin-left: auto; color: var(--directive-tint); font-family: var(--font); font-size: 15px; font-weight: 700; letter-spacing: 1px; }
.directive-note { margin: 9px 0 0; color: var(--exact); font-family: var(--sans); font-size: 9.5px; letter-spacing: 1px; }
.directive-note:empty { display: none; }
.directive-scan { position: absolute; top: -8%; bottom: -8%; left: -20%; z-index: 11; width: 20%; pointer-events: none; background: linear-gradient(90deg,transparent 0 46%,rgba(238,252,255,.22) 48%,#eefcff 50%,rgba(238,252,255,.18) 52%,transparent 100%); filter: drop-shadow(0 0 9px rgba(var(--directive-tint-rgb),.34)); opacity: 0; transform: translate3d(0,0,0) skewX(-10deg); will-change: transform,opacity; }
.directive-panel.directive-flash .directive-scan { animation: directive-sweep .88s .04s cubic-bezier(.3,.02,.2,1) both; }
.directive-panel.directive-flash { animation: directive-panel-lock 1.06s cubic-bezier(.2,.7,.2,1) both; }
.directive-panel.directive-flash .directive-main-view { animation: directive-main-confirm 1.04s cubic-bezier(.2,.7,.2,1) both; }
.directive-panel.directive-flash .directive-state { animation: directive-state-lock 1.04s ease both; }
.directive-confirmation { position: absolute; top: 54px; right: -1px; left: 17px; z-index: 12; display: flex; min-height: 66px; align-items: center; gap: 12px; padding: 10px 13px 10px 16px; overflow: hidden; border-top: 1px solid rgba(235,246,250,.72); border-bottom: 1px solid rgba(var(--directive-tint-rgb),.62); color: #edf4f7; background: linear-gradient(96deg,rgba(6,10,14,.98),rgba(13,22,29,.96) 64%,rgba(var(--directive-tint-rgb),.2)); clip-path: polygon(13px 0,100% 0,100% 100%,0 100%,0 13px); box-shadow: 0 12px 26px rgba(0,0,0,.38); opacity: 0; pointer-events: none; transform: translateX(108%); will-change: transform,opacity; }
.directive-confirmation::before { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 3px; background: var(--directive-tint); box-shadow: 0 0 11px rgba(var(--directive-tint-rgb),.65); }
.directive-confirmation-mark { position: relative; width: 27px; height: 27px; flex: none; border: 1px solid rgba(var(--directive-tint-rgb),.75); transform: rotate(45deg); }
.directive-confirmation-mark::before, .directive-confirmation-mark::after { content: ""; position: absolute; background: var(--directive-tint); }
.directive-confirmation-mark::before { top: 12px; right: 5px; left: 5px; height: 2px; }
.directive-confirmation-mark::after { top: 5px; bottom: 5px; left: 12px; width: 2px; }
.directive-confirmation-mark b { position: absolute; inset: 8px; border: 1px solid #f3fbff; }
.directive-confirmation-copy { display: flex; min-width: 0; flex: 1; flex-direction: column; gap: 4px; }
.directive-confirmation-copy strong { font-family: var(--sans); font-size: 15px; letter-spacing: 3px; }
.directive-confirmation-copy small { overflow: hidden; color: rgba(var(--directive-tint-rgb),.78); font-size: 6px; font-weight: 700; letter-spacing: 1.45px; text-overflow: ellipsis; white-space: nowrap; }
.directive-confirmation em { align-self: flex-start; color: rgba(255,255,255,.3); font-size: 6px; font-style: normal; font-weight: 700; letter-spacing: 1.5px; }
.directive-panel.directive-flash .directive-confirmation { animation: directive-confirmation-slice 1.02s .06s cubic-bezier(.22,.78,.16,1) both; }
@keyframes directive-sweep { 0% { opacity: 0; transform: translate3d(0,0,0) skewX(-10deg); } 14% { opacity: .96; } 72% { opacity: .76; } 100% { opacity: 0; transform: translate3d(620%,0,0) skewX(-10deg); } }
@keyframes directive-panel-lock { 0%,100% { border-color: var(--line-strong); } 14% { border-color: rgba(245,252,255,.78); } 34%,72% { border-color: rgba(var(--directive-tint-rgb),.62); } }
@keyframes directive-main-confirm { 0%,12%,100% { opacity: 1; } 28%,76% { opacity: .32; } }
@keyframes directive-state-lock { 0%,14% { color: var(--directive-tint); } 24%,78% { color: #f1f7fa; letter-spacing: 2.8px; } 100% { color: var(--exact); } }
@keyframes directive-confirmation-slice { 0%,7% { opacity: 0; transform: translate3d(104%,0,0); } 26%,76% { opacity: 1; transform: translate3d(0,0,0); } 100% { opacity: 0; transform: translate3d(-8px,0,0); } }
@keyframes directive-round-enter { 0% { opacity: 0; clip-path: inset(0 100% 0 0); transform: translate3d(-44px,0,0); } 42% { opacity: 1; } 100% { opacity: 1; clip-path: inset(0); transform: translate3d(0,0,0); } }
.round-buffering .game-workspace { pointer-events: none; }
.round-content-exit .game-meta, .round-content-exit .guess-console, .round-content-exit .dossier-section { opacity: .72; transform: translate3d(0,-7px,0); transition: transform .18s cubic-bezier(.45,0,.8,.35),opacity .16s ease-in; }
.round-content-staged .game-meta, .round-content-staged .guess-console, .round-content-staged .dossier-section { transform: translate3d(0,12px,0); }
.round-content-staged.round-content-buffer-staged .game-meta, .round-content-staged.round-content-buffer-staged .guess-console, .round-content-staged.round-content-buffer-staged .dossier-section { opacity: .12; transform: translate3d(0,20px,0); }
.round-content-enter .game-meta { transition: transform .38s cubic-bezier(.2,.78,.2,1); }
.round-content-enter .guess-console { transition: transform .42s .07s cubic-bezier(.2,.78,.2,1); }
.round-content-enter .dossier-section { transition: transform .46s .14s cubic-bezier(.2,.78,.2,1); }
.round-content-enter.round-content-buffered .game-meta { transition: transform .5s .04s cubic-bezier(.14,.68,.16,1),opacity .32s .04s ease-out; }
.round-content-enter.round-content-buffered .guess-console { transition: transform .56s .11s cubic-bezier(.14,.68,.16,1),opacity .36s .11s ease-out; }
.round-content-enter.round-content-buffered .dossier-section { transition: transform .62s .18s cubic-bezier(.14,.68,.16,1),opacity .4s .18s ease-out; }
.round-content-enter .directive-panel.directive-round-enter { animation-delay: .18s; }
.directive-panel.directive-boot .directive-brief { animation: directive-boot-in .5s cubic-bezier(.16,.76,.18,1) both; }
.directive-panel.directive-boot .directive-rule { animation: directive-boot-in .5s .08s cubic-bezier(.16,.76,.18,1) both; }
.directive-panel.directive-boot .directive-track { animation: directive-boot-in .5s .16s cubic-bezier(.16,.76,.18,1) both; }
@keyframes directive-boot-in { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }
.directive-decode { position: relative; display: flex; width: 100%; margin-top: 13px; padding: 0; overflow: hidden; align-items: center; gap: 11px; min-height: 46px; border-color: rgba(var(--accent-rgb),.6); color: var(--accent); background: rgba(var(--accent-rgb),.08); text-align: left; transition: background .2s, border-color .2s; }
.directive-decode:hover, .directive-decode:focus-visible { outline: none; border-color: var(--accent); background: rgba(var(--accent-rgb),.16); box-shadow: 0 0 0 1px var(--accent); }
.directive-decode-ping { position: relative; flex: none; width: 9px; height: 9px; margin-left: 13px; background: var(--accent); transform: rotate(45deg); box-shadow: 0 0 12px var(--accent); }
.directive-decode-ping::after { content: ""; position: absolute; inset: -6px; border: 1px solid var(--accent); opacity: 0; animation: directive-ping 1.5s ease-out infinite; }
@keyframes directive-ping { 0% { transform: scale(.4); opacity: .9; } 100% { transform: scale(1.6); opacity: 0; } }
.directive-decode-text { display: flex; flex-direction: column; gap: 2px; padding: 9px 12px 9px 0; font-family: var(--sans); font-size: 11px; font-weight: 700; }
.directive-decode-text i { color: rgba(var(--accent-rgb),.62); font-family: var(--font); font-size: 7px; font-style: normal; letter-spacing: 2px; }
.mobile-directive-dock { display: none; }

/* --- 每条猜测记录上的指令吻合标记 --- */
.directive-match { display: flex; align-items: center; gap: 9px; padding: 7px 18px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.02); font-family: var(--sans); }
.directive-match .dm-sigil { width: 8px; height: 8px; flex: none; border: 1px solid currentColor; transform: rotate(45deg); }
.directive-match.is-match { color: var(--accent); background: rgba(var(--accent-rgb),.06); }
.directive-match.is-match .dm-sigil { background: var(--accent); box-shadow: 0 0 8px rgba(var(--accent-rgb),.6); }
.directive-match.is-miss { color: var(--muted); }
.directive-match .dm-text { font-size: 10px; letter-spacing: 1px; }
.directive-match .dm-text b { margin-left: 7px; font-family: var(--font); font-size: 8px; font-weight: 700; letter-spacing: 2px; opacity: .75; }
.directive-match .dm-side { margin-left: auto; color: var(--muted); font-family: var(--font); font-size: 9px; letter-spacing: 1px; }

.directive-match.is-match .dm-side { color: var(--accent); }

/* --- 读屏专用视觉隐藏 --- */
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }

/* --- V2 维度格：统一 12 格网格 --- */
.v2-clue-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1px; background: var(--line); }
.v2-clue-grid .clue { background-color: var(--surface-2); }

/* 数值方向箭头（higher/lower）与轮换日期（before/after） */
.clue .clue-direction { line-height: 1; }

/* --- 势力维度（紧凑单格） --- */
.power-clue .clue-value { display: flex; align-items: center; gap: 9px; margin-top: 10px; overflow: visible; }
.power-logo { position: relative; display: grid; width: 32px; height: 32px; flex: none; place-items: center; border: 1px solid var(--line-strong); background: #0a0f14; }
.power-logo::after { content: ""; position: absolute; inset: 3px; border: 1px solid rgba(var(--state-color, var(--unknown)),.28); pointer-events: none; }
.power-logo img { position: relative; z-index: 1; width: 24px; height: 24px; object-fit: contain; filter: drop-shadow(0 2px 5px rgba(0,0,0,.5)); }
.power-logo.logo-missing img { display: none; }
.power-logo.logo-missing::before { content: ""; position: absolute; z-index: 1; width: 14px; height: 14px; border: 1px solid rgba(var(--state-color, var(--unknown)),.6); transform: rotate(45deg); }
.power-id { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.power-name { overflow: hidden; color: #edf1f4; font-family: var(--sans); font-size: 12px; font-weight: 700; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.power-parent { display: inline-flex; align-items: center; gap: 4px; overflow: hidden; color: #93a0ab; font-family: var(--sans); font-size: 9px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.power-parent::before { content: ""; flex: none; width: 7px; height: 1px; background: rgba(var(--state-color, var(--unknown)),.6); }
.power-parent i { font-style: normal; opacity: .7; }

/* --- 全技能范围交集维度（S1–S3 逐槽比较） --- */
.range-clue .clue-value { width: 100%; margin-top: 9px; overflow: visible; }
.range-wrap { display: flex; width: 100%; flex-direction: column; align-items: stretch; gap: 7px; }
.range-grid { display: grid; gap: 2px; padding: 5px; border: 1px solid var(--line-strong); background: #0a0f14; direction: ltr; }
.range-grid .rcell { width: 11px; height: 11px; background: rgba(255,255,255,.05); box-shadow: inset 0 0 0 1px rgba(255,255,255,.03); }
.range-grid .rcell.rcell-origin { position: relative; background: #161e26; box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb),.85); }
.range-grid .rcell.rcell-origin::after { content: ""; position: absolute; inset: 3px; background: var(--accent); transform: rotate(45deg); box-shadow: 0 0 7px rgba(var(--accent-rgb),.8); }
.range-grid .rcell.rcell-overlap { background: var(--exact); box-shadow: inset 0 0 0 1px rgba(var(--exact-rgb),.6), 0 0 5px rgba(var(--exact-rgb),.35); }
.range-grid .rcell.rcell-guessOnly { background: rgba(var(--wrong-rgb),.34); box-shadow: inset 0 0 0 1px rgba(var(--wrong-rgb),.3); }
.range-meta { display: flex; flex-direction: column; gap: 3px; }
.range-count { color: #edf1f4; font-family: var(--sans); font-size: 11px; font-weight: 700; line-height: 1.2; }
.range-count b { color: var(--exact); font-family: var(--font); font-size: 13px; }
.range-sub { color: #8490a0; font-family: var(--sans); font-size: 8.5px; line-height: 1.3; }
.range-clue.cell-unknown .range-sub { color: var(--unknown); }
.skill-range-list { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0,1fr); gap: 4px; width: 100%; }
.skill-range-item { display: grid; min-width: 0; grid-template-rows: auto 1fr auto auto; justify-items: center; gap: 3px; padding: 4px 3px 3px; border: 1px solid rgba(255,255,255,.08); background: rgba(0,0,0,.2); }
.skill-range-head { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 3px; font-family: var(--font); line-height: 1; }
.skill-range-head b { color: #e9eef2; font-size: 8px; letter-spacing: 1px; }
.skill-range-head i { color: var(--slot-color,var(--muted)); font-size: 6px; font-style: normal; letter-spacing: .4px; }
.skill-range-item.slot-exact { --slot-color: var(--exact); }
.skill-range-item.slot-tip { --slot-color: var(--tip); }
.skill-range-item.slot-wrong { --slot-color: var(--wrong); }
.skill-range-item.slot-unknown { --slot-color: var(--unknown); }
.range-grid.skill-range-grid { align-self: center; gap: 1px; padding: 2px; max-width: 100%; }
.range-grid.skill-range-grid .rcell { width: 6px; height: 6px; }
.range-grid.skill-range-grid .rcell.rcell-origin::after { inset: 1px; }
.skill-range-count { color: #8e9aa5; font-family: var(--font); font-size: 7px; letter-spacing: .5px; }
.skill-range-mechanic { width: 100%; overflow: hidden; color: #8f9baa; font-family: var(--sans); font-size: 7px; line-height: 1.25; text-align: center; text-overflow: ellipsis; }

/* --- 轮换情报维度 --- */
.rotating-clue { position: relative; }
.rotating-clue::before { height: 3px; background: repeating-linear-gradient(90deg, var(--state-color, var(--unknown)) 0 8px, transparent 8px 13px); opacity: 1; }
.rotating-tag { position: absolute; top: 8px; right: 10px; color: rgba(var(--accent-rgb),.6); font-family: var(--font); font-size: 7px; font-weight: 700; letter-spacing: 1.5px; }
.rotating-clue .clue-label { padding-right: 66px; }
.rotating-clue .clue-value { margin-top: 12px; }
.rotating-clue.intel-loading .clue-value, .rotating-clue.intel-loading .clue-hint { opacity: .25; }
.rotating-clue.intel-loading::after { content: ""; top: -30%; bottom: -30%; left: -60%; right: auto; width: 40%; border-radius: 0; opacity: 1; filter: none; background: linear-gradient(90deg, transparent, rgba(var(--accent-rgb),.16), transparent); transform: skewX(-14deg); animation: intel-scan .9s ease both; }
@keyframes intel-scan { from { left: -60%; } to { left: 130%; } }

/* --- 待解码情报栏 --- */
.intel-rail { margin-bottom: 14px; }
.intel-rail:empty { display: none; }
.intel-card { position: relative; display: grid; grid-template-columns: minmax(120px, 150px) minmax(0,1fr); gap: 0; overflow: hidden; border: 1px solid rgba(var(--accent-rgb),.5); background: linear-gradient(120deg, rgba(var(--accent-rgb),.1), transparent 50%), #0d141b; box-shadow: 0 14px 40px rgba(0,0,0,.3), 0 0 26px rgba(var(--accent-rgb),.07); animation: card-in .4s cubic-bezier(.2,.85,.25,1) both; }
.intel-card.intel-multi-skill { grid-template-columns: minmax(210px,250px) minmax(0,1fr); }
.intel-card::before { content: ""; position: absolute; top: 0; left: 0; z-index: 2; width: 74px; height: 2px; background: var(--accent); box-shadow: 0 0 12px rgba(var(--accent-rgb),.6); }
.intel-media { position: relative; display: grid; min-height: 132px; place-items: center; overflow: hidden; border-right: 1px solid var(--line); background: radial-gradient(circle at 50% 40%, rgba(var(--accent-rgb),.14), transparent 62%), #090e13; }
.intel-silhouette .intel-media, .intel-artFragment .intel-media { background: radial-gradient(ellipse at 50% 46%,rgba(190,209,211,.58) 0,rgba(125,151,155,.4) 38%,rgba(51,70,77,.3) 58%,rgba(9,14,19,.96) 78%),#090e13; box-shadow: inset 0 0 42px rgba(0,0,0,.38),inset 0 0 0 1px rgba(190,216,218,.06); }
:is(.intel-silhouette,.intel-artFragment) .intel-media.intel-answer-revealed { background: radial-gradient(circle at 50% 34%,rgba(var(--accent-rgb),.2),transparent 54%),#090e13; box-shadow: inset 0 0 42px rgba(0,0,0,.32),inset 0 0 0 1px rgba(var(--accent-rgb),.12); }
.intel-media::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(to bottom, rgba(255,255,255,.03) 0 1px, transparent 1px 4px); pointer-events: none; }
.intel-media img { position: relative; z-index: 1; max-width: 86%; max-height: 118px; object-fit: contain; filter: drop-shadow(0 8px 16px rgba(0,0,0,.55)); animation: intel-image-in .5s .1s cubic-bezier(.16,.8,.2,1) both; }
.intel-card.intel-answer-revealing .intel-media img { animation: intel-image-in .5s .1s cubic-bezier(.16,.8,.2,1) both; }
.intel-media.intel-media-icon img { max-width: 64px; max-height: 64px; }
.intel-media.intel-skill-icons { display: grid; min-height: 132px; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; padding: 15px 10px; }
.intel-skill-icon { position: relative; z-index: 1; display: flex; min-width: 0; min-height: 76px; padding: 7px 4px 5px; align-items: center; flex-direction: column; justify-content: center; gap: 6px; border-color: rgba(var(--accent-rgb),.28); background: rgba(0,0,0,.2); }
.intel-skill-icon:hover, .intel-skill-icon:focus-visible { outline: none; border-color: var(--accent); background: rgba(var(--accent-rgb),.1); }
.intel-media.intel-skill-icons .intel-skill-icon img { width: 46px; height: 46px; max-width: 100%; object-fit: contain; }
.intel-skill-icon b { color: var(--accent); font-family: var(--font); font-size: 8px; letter-spacing: 1px; }
.intel-skill-icon-name { display: -webkit-box; max-width: 100%; overflow: hidden; color: #cbd3da; font-family: var(--sans); font-size: 8px; line-height: 1.25; text-align: center; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.intel-skill-icon.image-missing img { display: none; }
.intel-media.intel-media-missing img { display: none; }
.intel-media.intel-media-missing::before { content: "NO SIGNAL"; position: absolute; z-index: 1; color: rgba(var(--accent-rgb),.4); font-size: 8px; font-weight: 700; letter-spacing: 2.5px; }
.intel-media.intel-media-zoom { cursor: zoom-in; outline: none; transition: box-shadow .2s ease; }
.intel-media.intel-media-zoom:hover { box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb),.5); }
.intel-media.intel-media-zoom:focus-visible { box-shadow: inset 0 0 0 2px var(--accent); }
.intel-media.intel-media-zoom::before { content: "VIEW +"; position: absolute; z-index: 2; right: 6px; bottom: 6px; color: rgba(var(--accent-rgb),.7); font-family: var(--font); font-size: 7px; font-weight: 700; letter-spacing: 1.5px; pointer-events: none; }
.intel-media.intel-media-zoom.intel-media-missing { cursor: default; }
.intel-media.intel-media-zoom.intel-media-missing::before { content: "NO SIGNAL"; inset: 0; display: grid; place-items: center; color: rgba(var(--accent-rgb),.4); font-size: 8px; letter-spacing: 2.5px; }
.intel-slot { position: absolute; top: 8px; left: 8px; z-index: 2; padding: 3px 6px; color: var(--accent-ink); background: var(--accent); font-family: var(--font); font-size: 8px; font-weight: 800; letter-spacing: 1px; }
.intel-card.intel-no-media { grid-template-columns: minmax(0,1fr); }
.intel-card.intel-no-media .intel-slot-inline { position: static; justify-self: start; margin: 13px 0 0 18px; }
.intel-card .intel-slot-inline { z-index: 3; }
.intel-body { min-width: 0; padding: 15px 18px 14px; }
.intel-kind { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--accent); font-size: 7px; font-weight: 700; letter-spacing: 2.5px; }
.intel-kind i { color: rgba(var(--accent-rgb),.5); font-style: normal; letter-spacing: 1.5px; }
.intel-title { margin: 8px 0 0; font-family: var(--sans); font-size: 15px; font-weight: 700; letter-spacing: 1px; }
.intel-text { margin: 9px 0 0; color: #c3cbd3; font-family: var(--sans); font-size: 12px; line-height: 1.8; }
.intel-quote { margin: 9px 0 0; padding: 10px 13px; border-left: 2px solid var(--accent); color: #d7dee4; background: rgba(var(--accent-rgb),.05); font-family: var(--sans); font-size: 12.5px; line-height: 1.85; }
.intel-silhouette-note { color: var(--muted); font-family: var(--sans); font-size: 10px; }
.intel-skill-summary { margin: 8px 0 0; padding-bottom: 7px; border-bottom: 1px solid rgba(var(--accent-rgb),.2); color: rgba(var(--accent-rgb),.82); font-family: var(--sans); font-size: 9px; line-height: 1.5; letter-spacing: .5px; }
.intel-mech { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 11px; }
.intel-mech-list { display: grid; gap: 7px; margin-top: 11px; }
.intel-mech-skill { display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: 8px; padding: 7px 8px; border: 1px solid rgba(var(--accent-rgb),.2); background: rgba(0,0,0,.16); }
.intel-mech-skill .intel-mech { margin-top: 0; }
.intel-mech-slot { color: var(--accent); font-family: var(--font); font-size: 10px; letter-spacing: 1px; }
.intel-skill-details { min-width: 0; }
.intel-skill-name { margin: 0 0 6px; color: #d7dee4; font-family: var(--sans); font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.intel-skill-details .intel-mech:only-child { margin-top: 0; }
.intel-mech-chip { padding: 5px 9px; border: 1px solid var(--line-strong); color: #c7cfd6; background: rgba(255,255,255,.03); font-family: var(--sans); font-size: 10px; }
.intel-mech-chip b { color: var(--accent); font-weight: 700; }
.intel-mech-chip.charge { border-color: rgba(var(--exact-rgb),.35); color: var(--exact); }
.directive-intel-view .intel-card.intel-multi-skill { grid-template-columns: minmax(0,1fr); }
.directive-intel-view :is(.intel-skillIcon,.intel-skillBundle) .intel-media.intel-skill-icons { min-height: 94px; padding: 8px 2px; }
.directive-intel-view :is(.intel-skillIcon,.intel-skillBundle) .intel-skill-icon { min-height: 66px; padding: 5px 2px 4px; }
.directive-intel-view :is(.intel-skillIcon,.intel-skillBundle) .intel-skill-icon img { width: 38px; height: 38px; }
.directive-intel-view :is(.intel-skillIcon,.intel-skillBundle) .intel-body { padding-top: 9px; }
.directive-intel-view .intel-skill-summary { margin-top: 6px; padding-bottom: 5px; font-size: 8px; }
@keyframes intel-image-in { from { opacity: 0; transform: scale(.92); filter: blur(3px); } to { opacity: 1; transform: none; filter: blur(0); } }


/* --- V2 结算档案补充（势力 / 费用 / 全技能范围） --- */
.v2-archive-range { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px; }
.v2-archive-range-item { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.v2-archive-range-item > b { color: #3f4346; font-family: var(--font); font-size: 8px; letter-spacing: 1px; }
.v2-archive-range .range-grid { padding: 5px; border-color: rgba(42,45,47,.3); background: #c7c8c6; }
.v2-archive-range .range-grid .rcell { width: 13px; height: 13px; background: rgba(41,44,46,.1); box-shadow: none; }
.v2-archive-range .range-grid .rcell.rcell-origin { background: #b3b4b2; box-shadow: inset 0 0 0 1px rgba(41,44,46,.7); }
.v2-archive-range .range-grid .rcell.rcell-origin::after { background: #2e3133; box-shadow: none; }
.v2-archive-range .range-grid .rcell.rcell-overlap, .v2-archive-range .range-grid .rcell.rcell-guessOnly { background: #43464a; box-shadow: none; }
.v2-archive-range .range-sub { color: #5a5f62; }

/* --- 桌面：单个技能范围悬停放大 --- */
@media (min-width: 761px) {
  .range-clue { overflow: visible; }
  .skill-range-item .range-grid { position: relative; transition: transform .2s ease, box-shadow .2s ease; transform-origin: center; }
  .skill-range-item:hover .range-grid, .skill-range-item:focus-within .range-grid { transform: scale(1.45); z-index: 6; box-shadow: 0 12px 30px rgba(0,0,0,.5), 0 0 20px rgba(var(--state-color, var(--accent-rgb)),.2); }
  .guess-card:not(.is-final-record).card-entering .operator-record-data { animation: guess-record-drift 1.02s .12s cubic-bezier(.16,.76,.18,1) both; }
}

/* --- 移动端适配 --- */
@media (max-width: 1040px) {
  .v2-clue-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .mobile-data-sheet { position: fixed; z-index: 90; display: grid; grid-template-rows: minmax(0,1fr); overflow: hidden; }
  .mobile-data-sheet-backdrop { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(2,5,8,.76); backdrop-filter: blur(8px); }
  .mobile-data-sheet-panel { position: relative; z-index: 1; display: grid; width: 100%; max-height: min(82%,680px); align-self: end; grid-template-rows: auto minmax(0,1fr); overflow: hidden; border: 1px solid rgba(var(--accent-rgb),.52); border-bottom: 0; background: #0a1016; box-shadow: 0 -24px 70px rgba(0,0,0,.72),0 0 30px rgba(var(--accent-rgb),.08); animation: mobile-sheet-in .36s cubic-bezier(.18,.8,.2,1) both; }
  .mobile-data-sheet-head { display: flex; min-height: 54px; align-items: stretch; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); background: linear-gradient(100deg,rgba(var(--accent-rgb),.11),transparent 58%),#10171e; }
  .mobile-data-sheet-head > div { display: flex; min-width: 0; padding: 9px 12px; flex-direction: column; justify-content: center; gap: 3px; }
  .mobile-data-sheet-head span { overflow: hidden; color: rgba(var(--accent-rgb),.68); font-size: 6px; font-weight: 700; letter-spacing: 1.5px; text-overflow: ellipsis; white-space: nowrap; }
  .mobile-data-sheet-head h2 { overflow: hidden; font-family: var(--sans); font-size: 14px; letter-spacing: 1px; text-overflow: ellipsis; white-space: nowrap; }
  .mobile-data-sheet-head button { width: 60px; min-width: 60px; padding: 0 7px; border: 0; border-left: 1px solid var(--line); color: #c8d0d7; background: rgba(255,255,255,.025); font-size: 8px; }
  .mobile-data-sheet-head button i { position: relative; display: inline-block; width: 8px; height: 8px; margin-right: 5px; }
  .mobile-data-sheet-head button i::before, .mobile-data-sheet-head button i::after { content: ""; position: absolute; top: 4px; left: -1px; width: 11px; height: 1px; background: currentColor; transform: rotate(45deg); }
  .mobile-data-sheet-head button i::after { transform: rotate(-45deg); }
  .mobile-data-sheet-body { min-height: 0; padding: 12px; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }
  .mobile-data-sheet[data-kind="intel"] .intel-card { grid-template-columns: 1fr; margin: 0; box-shadow: none; }
  .mobile-data-sheet[data-kind="intel"] .intel-media { min-height: 154px; border-right: 0; border-bottom: 1px solid var(--line); }
  .mobile-data-sheet[data-kind="intel"] .intel-media img { max-height: 140px; }
  .mobile-data-sheet[data-kind="intel"] .intel-body { padding: 14px; }
  .mobile-data-sheet[data-kind="range"] .mobile-range-detail { gap: 10px; }
  .mobile-data-sheet[data-kind="range"] .skill-range-list { display: grid; grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: 1fr; gap: 8px; }
  .mobile-data-sheet[data-kind="range"] .skill-range-item { min-height: 86px; grid-template-columns: 52px minmax(0,1fr) 42px; grid-template-rows: 1fr auto; align-items: center; justify-items: start; gap: 6px 10px; padding: 9px 10px; }
  .mobile-data-sheet[data-kind="range"] .skill-range-head { grid-column: 1; grid-row: 1; flex-direction: column; align-items: flex-start; justify-content: center; gap: 7px; }
  .mobile-data-sheet[data-kind="range"] .skill-range-head b { font-size: 12px; }
  .mobile-data-sheet[data-kind="range"] .skill-range-head i { font-size: 8px; }
  .mobile-data-sheet[data-kind="range"] .range-grid.skill-range-grid { grid-column: 2; grid-row: 1 / 3; gap: 2px; padding: 5px; }
  .mobile-data-sheet[data-kind="range"] .range-grid.skill-range-grid .rcell { width: 11px; height: 11px; }
  .mobile-data-sheet[data-kind="range"] .range-grid.skill-range-grid .rcell.rcell-origin::after { inset: 3px; }
  .mobile-data-sheet[data-kind="range"] .skill-range-count { grid-column: 3; grid-row: 1; justify-self: end; font-size: 10px; }
  .mobile-data-sheet[data-kind="range"] .skill-range-mechanic { grid-column: 1 / -1; grid-row: 2; font-size: 8px; text-align: left; white-space: normal; }
  @keyframes mobile-sheet-in { from { opacity: 0; transform: translate3d(0,44px,0); } to { opacity: 1; transform: none; } }

  /* 情报解锁弹层入场更明显：大幅上滑回弹 + 亮度/饱和脉冲 + 扫描线自上而下扫过 */
  .mobile-data-sheet[data-kind="intel"] .mobile-data-sheet-panel { animation: mobile-intel-sheet-in .56s cubic-bezier(.16,.78,.18,1) both; }
  .mobile-data-sheet[data-kind="intel"] .mobile-data-sheet-panel::after { content: ""; position: absolute; z-index: 4; top: -36%; right: 0; left: 0; height: 36%; pointer-events: none; background: linear-gradient(to bottom,transparent,rgba(var(--accent-rgb),.26) 42%,rgba(255,255,255,.5) 55%,rgba(var(--accent-rgb),.26) 68%,transparent); animation: mobile-intel-sheet-scan .66s .08s cubic-bezier(.3,.02,.2,1) both; }
  @keyframes mobile-intel-sheet-in {
    0% { opacity: 0; transform: translate3d(0,130px,0) scale(.93); filter: brightness(.5) saturate(.6); }
    52% { opacity: 1; transform: translate3d(0,-9px,0) scale(1.018); filter: brightness(1.4) saturate(1.12); }
    76% { transform: translate3d(0,3px,0) scale(.999); filter: brightness(1.08); }
    100% { opacity: 1; transform: none; filter: none; }
  }
  @keyframes mobile-intel-sheet-scan { from { top: -36%; opacity: 0; } 16% { opacity: 1; } to { top: 116%; opacity: 0; } }

  .directive-panel { margin-top: 0; margin-bottom: 18px; }
  body[data-mode="sudden"] .game-sidebar { max-height: 540px; }
  body[data-mode="sudden"] #gameScreen.has-guesses .mobile-directive-dock { position: relative; display: grid; min-height: 39px; flex: none; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 8px; margin-bottom: 6px; padding: 6px 7px 6px 10px; overflow: hidden; border: 1px solid var(--line-strong); border-left: 2px solid var(--accent); background: linear-gradient(105deg,rgba(var(--accent-rgb),.1),transparent 55%),#0c1219; }
  body[data-mode="sudden"] #gameScreen.has-guesses .mobile-directive-dock.directive-flash::after { content: "◆  指令校验完成  //  ACCESS GRANTED"; position: absolute; inset: 0; z-index: 5; display: flex; align-items: center; padding-left: 13px; border-right: 2px solid var(--accent); color: #eff7fa; background: linear-gradient(98deg,#080e13 0 58%,rgba(var(--accent-rgb),.18)); font-size: 8px; font-weight: 800; letter-spacing: 1.4px; opacity: 0; transform: translate3d(105%,0,0); animation: directive-confirmation-slice 1.02s .06s cubic-bezier(.22,.78,.16,1) both; }
  /* 指令校验完成反馈更明显：整条指令栏亮度脉冲 + 主题色光晕扩散，进度数字放大定格 */
  body[data-mode="sudden"] #gameScreen.has-guesses .mobile-directive-dock.directive-flash { animation: mobile-directive-flash-pulse 1.12s cubic-bezier(.24,.6,.24,1) both; }
  body[data-mode="sudden"] #gameScreen.has-guesses .mobile-directive-dock.directive-flash .mobile-directive-progress { animation: mobile-directive-progress-pop 1.04s cubic-bezier(.2,.78,.2,1) both; }
  @keyframes mobile-directive-flash-pulse {
    0% { border-color: var(--line-strong); filter: brightness(1); box-shadow: 0 0 0 rgba(var(--accent-rgb),0), inset 0 0 0 rgba(var(--accent-rgb),0); }
    20% { border-color: var(--accent); filter: brightness(1.62); box-shadow: 0 0 30px rgba(var(--accent-rgb),.55), inset 0 0 20px rgba(var(--accent-rgb),.18); }
    48% { border-color: var(--accent); filter: brightness(1.24); box-shadow: 0 0 16px rgba(var(--accent-rgb),.34), inset 0 0 10px rgba(var(--accent-rgb),.1); }
    100% { border-color: var(--exact); filter: brightness(1); box-shadow: 0 0 0 rgba(var(--accent-rgb),0), inset 0 0 0 rgba(var(--accent-rgb),0); }
  }
  @keyframes mobile-directive-progress-pop {
    0%,18% { transform: scale(1); color: var(--accent); filter: brightness(1); }
    42% { transform: scale(1.55); color: var(--exact); filter: brightness(1.45); }
    100% { transform: scale(1); color: var(--exact); filter: brightness(1); }
  }
  .mobile-directive-code { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .mobile-directive-text { display: flex; min-width: 0; flex-direction: column; gap: 1px; }
  .mobile-directive-dock strong { min-width: 0; overflow: hidden; color: #d6dde4; font-family: var(--sans); font-size: 10.5px; letter-spacing: .6px; text-overflow: ellipsis; white-space: nowrap; }
  .mobile-directive-desc { overflow: hidden; color: var(--muted); font-family: var(--sans); font-size: 8.5px; text-overflow: ellipsis; white-space: nowrap; }
  .mobile-directive-progress { color: var(--accent); font-size: 11px; font-weight: 700; letter-spacing: 1px; }
  .mobile-directive-dock[data-status="complete"], .mobile-directive-dock[data-status="revealed"] { border-left-color: var(--exact); }
  .mobile-directive-dock[data-status="complete"] .mobile-directive-progress, .mobile-directive-dock[data-status="revealed"] .mobile-directive-progress { color: var(--exact); }
  .mobile-directive-dock button { min-height: 27px; padding: 0 9px; border-color: rgba(var(--accent-rgb),.72); color: var(--accent); background: rgba(var(--accent-rgb),.09); font-size: 9px; white-space: nowrap; }
  .directive-match { padding: 5px 9px; }
  .v2-clue-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .v2-clue-grid { min-height: 0; flex: none; align-content: start; grid-template-rows: none; grid-auto-rows: auto; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .range-clue .clue-value { display: none; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .range-clue .mobile-range-summary { display: flex; min-width: 0; margin-top: 2px; align-items: center; gap: 4px; overflow: hidden; color: #aeb9c2; font-family: var(--font); font-size: 6.5px; line-height: 1; white-space: nowrap; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .range-clue .mobile-range-summary span { min-width: 0; padding-right: 5px; border-right: 1px solid var(--line-strong); }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .range-clue .mobile-range-summary span:last-child { padding-right: 0; border-right: 0; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .range-clue .mobile-range-open { display: inline-flex; width: auto; min-height: 14px; align-items: center; margin-top: 2px; padding: 0 5px; border-color: rgba(var(--accent-rgb),.42); color: var(--accent); background: rgba(var(--accent-rgb),.07); font-size: 6.5px; line-height: 1; letter-spacing: .2px; white-space: nowrap; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .range-grid.skill-range-grid .rcell { width: 7px; height: 7px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .power-logo { width: 30px; height: 30px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .power-logo img { width: 22px; height: 22px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .power-name { font-size: 11.5px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .power-parent { font-size: 8.5px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .range-count { font-size: 11px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .range-sub { display: none; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .rotating-tag { top: 6px; right: 7px; font-size: 6px; }
  #gameScreen.has-guesses .guess-card:not(.is-final-record) .rotating-clue .clue-label { padding-right: 46px; }
  .intel-card { grid-template-columns: minmax(96px, 118px) minmax(0,1fr); }
  .intel-card.intel-multi-skill { grid-template-columns: 1fr; }
  .intel-multi-skill .intel-media { border-right: 0; border-bottom: 1px solid var(--line); }
  .intel-media { min-height: 108px; }
  .intel-media img { max-height: 92px; }
  .intel-media.intel-media-icon img { max-width: 52px; max-height: 52px; }
  .intel-body { padding: 12px 13px; }
  .intel-title { font-size: 13px; }
  .intel-text, .intel-quote { font-size: 11px; }
  #gameScreen.has-guesses.is-finished .intel-rail { flex: none; scroll-snap-align: start; }
}
@media (max-width: 460px) {
  .v2-clue-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .clue-wide-2 { grid-column: span 2; }
  .intel-card { grid-template-columns: 1fr; }
  .intel-media { min-height: 128px; border-right: 0; border-bottom: 1px solid var(--line); }
  .intel-media img { max-height: 112px; }
}

/* ===== 桌面端游戏内：左侧完全固定、只有右侧滚动 ===== */
/* 进入游戏画面后由 JS 给 body 加 .game-scroll-lock（仅桌面端生效） */
@media (min-width: 761px) {
  body[data-mode="sudden"] .intel-rail.v3-inline-intel { display: none !important; }
  body.game-scroll-lock { overflow: hidden; height: 100vh; display: flex; flex-direction: column; }
  body.game-scroll-lock .topbar { flex: none; }
  body.game-scroll-lock main { flex: 1 1 auto; min-height: 0; width: min(1380px, calc(100% - 80px)); display: flex; flex-direction: column; padding-top: 30px; padding-bottom: 0; }
  body.game-scroll-lock #gameScreen { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
  body.game-scroll-lock .game-layout { flex: 1 1 auto; min-height: 0; overflow: hidden; grid-template-rows: minmax(0, 1fr); }
  body.game-scroll-lock .game-sidebar { position: static; display: flex; flex-direction: column; height: 100%; min-height: 0; overflow: hidden; }
  /* 上方贴图固定并 flex 撑满剩余空间，消除底部空白 */
  body.game-scroll-lock .game-art { flex: 1 0 210px; min-height: 210px; height: auto; }
  body.game-scroll-lock .game-sidebar-copy { flex: none; margin-top: -34px; padding-top: 16px; }
  body.game-scroll-lock[data-mode="endless"] .game-art { height: 264px; min-height: 264px; flex: 0 0 264px; }
  body.game-scroll-lock[data-mode="endless"] .game-sidebar-copy { margin-top: -44px; }
  body.game-scroll-lock[data-mode="endless"] .game-art,
  body.game-scroll-lock[data-mode="endless"] .game-sidebar-copy { transition: height .28s ease,min-height .28s ease,flex-basis .28s ease,margin-top .28s ease,padding .28s ease; }
  body.game-scroll-lock[data-mode="endless"].endless-bubble-media-active .game-art { height: clamp(170px,25vh,210px); min-height: clamp(170px,25vh,210px); flex-basis: clamp(170px,25vh,210px); }
  body.game-scroll-lock[data-mode="endless"].endless-bubble-media-active .game-sidebar-copy { margin-top: -56px; padding: 12px 13px 10px; }
  body.game-scroll-lock[data-mode="endless"].endless-bubble-media-active .game-sidebar-copy h2 { margin: 8px 0 6px; font-size: 21px; }
  body.game-scroll-lock[data-mode="endless"].endless-bubble-media-active .game-sidebar-copy > #gameSidebarDesc { display: none; }
  body.game-scroll-lock[data-mode="endless"].endless-bubble-media-active .endless-telemetry { display: none; }
  body.game-scroll-lock[data-mode="endless"] .sidebar-callout { flex: none; }
  body.game-scroll-lock .game-sidebar-copy h2 { margin: 12px 0 10px; }
  body.game-scroll-lock .clue-legend { flex: none; margin-top: 14px; margin-bottom: 0; padding-top: 7px; gap: 2px; }
  body.game-scroll-lock[data-mode="endless"] .clue-legend { margin-top: 10px; }
  body.game-scroll-lock[data-mode="endless"] .endless-telemetry { position: relative; display: grid; min-height: 110px; flex: 1 1 auto; grid-template-rows: auto auto 1fr; gap: 12px; margin: 13px var(--sidebar-gutter) 14px; padding: 13px 3px 6px; overflow: hidden; border-top: 1px solid rgba(var(--accent-rgb),.22); color: rgba(var(--accent-rgb),.58); background-image: linear-gradient(rgba(var(--accent-rgb),.025) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--accent-rgb),.022) 1px,transparent 1px); background-position: 0 41px; background-size: 100% 26px,52px 100%; font-family: var(--font); }
  body.game-scroll-lock[data-mode="endless"] .endless-telemetry::before { content: ""; position: absolute; top: -1px; left: 0; width: 42px; height: 1px; background: var(--accent); box-shadow: 0 0 10px rgba(var(--accent-rgb),.65); }
  .endless-telemetry-code { font-size: 7px; font-weight: 700; letter-spacing: 2.2px; }
  .endless-telemetry-stats { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .endless-telemetry-stats p { display: flex; min-width: 0; align-items: center; gap: 9px; margin: 0; padding: 7px 8px; background: linear-gradient(90deg,rgba(var(--accent-rgb),.06),transparent); }
  .endless-telemetry-stats strong { color: rgba(var(--accent-rgb),.82); font-size: 20px; line-height: 1; letter-spacing: -1px; }
  .endless-telemetry-stats span { color: #697468; font-size: 6px; line-height: 1.45; letter-spacing: 1.2px; }
  .endless-telemetry small { display: flex; align-self: end; align-items: center; gap: 8px; color: #556155; font-size: 6px; letter-spacing: 1.5px; }
  .endless-telemetry small i { width: 5px; height: 5px; flex: none; border-radius: 50%; background: var(--accent); box-shadow: 0 0 8px rgba(var(--accent-rgb),.72); animation: telemetry-pulse 1.7s ease-in-out infinite; }
  body.game-scroll-lock .directive-panel { flex: none; margin-top: 14px; margin-bottom: 18px; }
  body.game-scroll-lock .game-workspace { min-height: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; }

  body.anomaly-scroll-lock { overflow: hidden; height: 100vh; display: flex; flex-direction: column; }
  body.anomaly-scroll-lock .topbar { flex: none; }
  body.anomaly-scroll-lock main { flex: 1 1 auto; min-height: 0; width: min(1380px, calc(100% - 80px)); display: flex; flex-direction: column; padding-top: 30px; padding-bottom: 0; }
  body.anomaly-scroll-lock #anomalyScreen { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
  body.anomaly-scroll-lock .anomaly-layout { flex: 1 1 auto; min-height: 0; overflow: hidden; grid-template-rows: minmax(0,1fr); }
  body.anomaly-scroll-lock .anomaly-sidebar { position: static; top: auto; height: 100%; min-height: 0; overflow: hidden; }
  body.anomaly-scroll-lock .anomaly-workspace { min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }
  body.game-scroll-lock .guess-console { transition: padding .42s cubic-bezier(.2,.72,.2,1),border-color .28s ease,background .32s ease,box-shadow .32s ease; }
  body.game-scroll-lock .console-heading { max-height: 72px; overflow: hidden; transition: max-height .4s cubic-bezier(.2,.72,.2,1),margin-bottom .4s cubic-bezier(.2,.72,.2,1),opacity .24s ease,transform .4s cubic-bezier(.2,.72,.2,1); }
  body.game-scroll-lock .input-wrap input { transition: height .36s cubic-bezier(.2,.72,.2,1),opacity .2s ease,border-color .2s,box-shadow .2s; }
  body.game-scroll-lock #guessBtn, body.game-scroll-lock .input-wrap .ghost { transition: min-height .36s cubic-bezier(.2,.72,.2,1),opacity .2s ease,filter .2s,transform .2s; }
  body.game-scroll-lock .status, body.game-scroll-lock .dossier-section { transition: min-height .34s ease,margin .42s cubic-bezier(.2,.72,.2,1),opacity .24s ease; }
  body.game-scroll-lock #gameScreen.has-guesses:not(.is-finished) .guess-console { position: relative; z-index: 5; flex: none; padding: 11px 13px 9px; border-color: rgba(var(--accent-rgb),.42); background: linear-gradient(105deg,rgba(var(--accent-rgb),.1),transparent 42%),rgba(12,18,24,.96); box-shadow: none; }
  body.game-scroll-lock #gameScreen.has-guesses:not(.is-finished) .guess-console::before { width: 58px; }
  body.game-scroll-lock #gameScreen.has-guesses:not(.is-finished) .console-heading { display: flex; max-height: 0; margin-bottom: 0; opacity: 0; pointer-events: none; transform: translate3d(0,-7px,0); }
  body.game-scroll-lock #gameScreen.has-guesses:not(.is-finished) .input-wrap input { height: 44px; }
  body.game-scroll-lock #gameScreen.has-guesses:not(.is-finished) #guessBtn, body.game-scroll-lock #gameScreen.has-guesses:not(.is-finished) .input-wrap .ghost { min-height: 44px; }
  body.game-scroll-lock #gameScreen.has-guesses:not(.is-finished) .status { min-height: 12px; margin-top: 5px; }
  body.game-scroll-lock #gameScreen.has-guesses .dossier-section { margin-top: 18px; }
  body.game-scroll-lock #gameScreen.has-guesses:not(.is-finished) .guess-card { scroll-margin-top: 10px; }
  body.game-scroll-lock #gameScreen.has-guesses.is-finished .guess-console { display: none; }
}
@keyframes telemetry-pulse { 50% { opacity: .35; box-shadow: 0 0 3px rgba(var(--accent-rgb),.28); } }
/* 桌面且视口偏矮：压缩文案与间距，确保侧栏内容不溢出 */
@media (min-width: 761px) and (max-height: 780px) {
  body.game-scroll-lock .game-art { flex-basis: 210px; min-height: 210px; }
  body.game-scroll-lock .game-sidebar-copy { margin-top: -50px; padding: 12px 13px 10px; }
  body.game-scroll-lock .game-sidebar-copy h2 { font-size: 21px; margin: 8px 0 6px; }
  body.game-scroll-lock .game-sidebar-copy > #gameSidebarDesc { display: none; }
  body.game-scroll-lock .clue-legend { margin: 7px 7px 0; padding-top: 5px; }
  body.game-scroll-lock .clue-legend span { min-height: 25px; padding: 0 7px; font-size: 9px; }
  body.game-scroll-lock .directive-panel { margin-top: 7px; margin-bottom: 8px; padding: 9px 12px; }
  body.game-scroll-lock .directive-brief { margin-top: 9px; }
  body.game-scroll-lock .directive-rule { margin-top: 8px; padding-top: 6px; padding-bottom: 7px; }
  body.game-scroll-lock .directive-track { margin-top: 8px; padding-top: 8px; }
  body.game-scroll-lock .directive-desc { min-height: 0; }
}

/* ============ ANOMALY 异类审查（莱茵生命生态科 · 缪尔赛思主题） ============ */
body[data-mode="anomaly"] { --accent: #48e0a4; --accent-rgb: 72,224,164; --accent-ink: #03231a; }
body[data-mode="anomaly"] .bg-layer { background: radial-gradient(circle at 82% 10%, rgba(72,224,164,.08), transparent 30%), linear-gradient(90deg, rgba(7,10,14,.97), rgba(7,10,14,.86) 52%, rgba(7,10,14,.94)), url("../img/operators/final/char_249_mlyss.webp") right -4% center / auto 88% fixed no-repeat, linear-gradient(145deg,#0b1210 0%,#070a0e 62%); }

/* --- 模式选择页：执棋者战术桌 + 错层协议组 --- */
.mode-stage { min-height: 1070px; padding: 556px clamp(24px,4.5vw,66px) 36px; border-color: transparent; background: radial-gradient(circle at 50% -14%,rgba(255,255,255,.07),transparent 42%),linear-gradient(135deg,#0b1117,#070a0e 72%); box-shadow: 0 34px 100px rgba(0,0,0,.42),inset 0 0 0 1px rgba(255,255,255,.018); }
.mode-stage::after { content: "P.R.T.S. // PROTOCOL MATRIX // 03 CHANNELS ONLINE"; position: absolute; right: 22px; bottom: 13px; z-index: 3; color: rgba(255,255,255,.18); font-size: 7px; font-weight: 700; letter-spacing: 2.4px; }
.chessmaster-scene { position: absolute; inset: 12px 16px 20px; z-index: 0; overflow: hidden; pointer-events: none; -webkit-mask-image: radial-gradient(ellipse 58% 60% at 50% 43%,#000 0 52%,rgba(0,0,0,.86) 65%,rgba(0,0,0,.34) 82%,transparent 100%); mask-image: radial-gradient(ellipse 58% 60% at 50% 43%,#000 0 52%,rgba(0,0,0,.86) 65%,rgba(0,0,0,.34) 82%,transparent 100%); }
.chessmaster-scene::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 50% 30%,transparent 0 19%,rgba(6,10,14,.15) 47%,rgba(6,10,14,.82) 100%),linear-gradient(to bottom,rgba(5,9,12,.2) 0,rgba(5,9,12,.04) 42%,rgba(5,9,12,.92) 91%); }
.chessmaster-scene img { width: 100%; height: 100%; object-fit: cover; object-position: center 43%; opacity: .8; filter: saturate(.72) contrast(1.08) brightness(.72); transform: scale(1.02); transition: opacity .72s ease,filter .7s ease,transform 1.1s cubic-bezier(.16,.78,.18,1); }
.chessmaster-scene .scene-scan { z-index: 1; opacity: .58; }
.mode-stage.preview-sudden .chessmaster-scene img { filter: saturate(.85) contrast(1.1) brightness(.76) sepia(.05) hue-rotate(156deg); transform: translateX(1.1%) scale(1.035); }
.mode-stage.preview-endless .chessmaster-scene img { filter: saturate(.9) contrast(1.1) brightness(.76) sepia(.08) hue-rotate(8deg); transform: translateX(-1.1%) scale(1.035); }
.mode-stage.preview-anomaly .chessmaster-scene img { opacity: .18; filter: saturate(.55) contrast(1.05) brightness(.48) sepia(.04) hue-rotate(76deg); transform: scale(1.025); }
.mode-projections { position: absolute; inset: 0; z-index: 2; overflow: hidden; pointer-events: none; }
.mode-projection { position: absolute; inset: 0; opacity: 0; transform: translateY(16px); transition: opacity .46s ease,transform .8s cubic-bezier(.16,.78,.18,1); }
.mode-projection::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom,rgba(7,11,15,.08),transparent 47%,rgba(7,11,15,.5)); }
.mode-projection img { position: absolute; pointer-events: none; }
.mode-projection > span { position: absolute; top: 116px; z-index: 2; display: flex; align-items: center; gap: 10px; color: rgba(var(--accent-rgb),.68); font-size: 7px; font-weight: 700; letter-spacing: 2.2px; }
.mode-projection > span::after { content: ""; width: 54px; height: 1px; background: currentColor; box-shadow: 0 0 9px currentColor; }
.mode-projection > span b { color: transparent; -webkit-text-stroke: 1px currentColor; font-size: 28px; line-height: 1; }
.mode-projection-sudden { --accent-rgb: 67,199,255; }
.mode-projection-sudden img { top: 0; left: 0; width: 47%; height: 100%; object-fit: cover; object-position: 34% center; opacity: .52; filter: saturate(.9) contrast(1.12) brightness(.72); -webkit-mask-image: linear-gradient(90deg,#000,rgba(0,0,0,.78) 52%,transparent 100%); mask-image: linear-gradient(90deg,#000,rgba(0,0,0,.78) 52%,transparent 100%); }
.mode-projection-sudden > span { left: 5%; }
.mode-projection-endless { --accent-rgb: 239,255,52; }
.mode-projection-endless { background: linear-gradient(90deg,transparent 62%,rgba(239,255,52,.018) 82%,rgba(239,255,52,.07)); -webkit-mask-image: linear-gradient(90deg,transparent 45%,#000 72%,#000 100%); mask-image: linear-gradient(90deg,transparent 45%,#000 72%,#000 100%); }
.mode-projection-endless::before { content: ""; position: absolute; top: 13%; right: 0; width: 41%; height: 58%; border-left: 1px solid rgba(239,255,52,.2); background: repeating-linear-gradient(90deg,transparent 0 44px,rgba(239,255,52,.04) 45px 46px),linear-gradient(112deg,transparent 20%,rgba(239,255,52,.065) 49%,transparent 73%); opacity: .58; transform: translateX(19%) skewX(-3deg); -webkit-mask-image: radial-gradient(ellipse 72% 68% at 54% 47%,#000 0 44%,rgba(0,0,0,.88) 57%,rgba(0,0,0,.42) 74%,transparent 100%); mask-image: radial-gradient(ellipse 72% 68% at 54% 47%,#000 0 44%,rgba(0,0,0,.88) 57%,rgba(0,0,0,.42) 74%,transparent 100%); transition: transform 1.05s cubic-bezier(.16,.78,.18,1),opacity .45s ease; }
.mode-projection-endless::after { content: "OPEN RETRIEVAL // SUBJECT LINKED"; position: absolute; top: 63%; right: 5%; width: clamp(240px,27vw,360px); padding-top: 8px; border-top: 1px solid rgba(239,255,52,.32); color: rgba(239,255,52,.58); background: transparent; font-size: 7px; font-weight: 700; letter-spacing: 2px; text-align: right; }
.mode-stage.preview-endless .mode-projection-endless::before { opacity: 1; transform: translateX(0) skewX(-3deg); }
.mode-projection-endless img { top: 16%; right: 1%; display: block; width: 42%; height: 46%; object-fit: contain; object-position: center; opacity: .48; mix-blend-mode: screen; filter: grayscale(1) sepia(1) hue-rotate(27deg) saturate(5.2) contrast(1.72) brightness(.43) drop-shadow(0 18px 34px rgba(239,255,52,.1)); transform: translateX(88px) scale(1.02); -webkit-mask-image: radial-gradient(ellipse 66% 61% at 50% 53%,#000 0 42%,rgba(0,0,0,.9) 55%,rgba(0,0,0,.54) 69%,rgba(0,0,0,.18) 82%,transparent 100%); mask-image: radial-gradient(ellipse 66% 61% at 50% 53%,#000 0 42%,rgba(0,0,0,.9) 55%,rgba(0,0,0,.54) 69%,rgba(0,0,0,.18) 82%,transparent 100%); transition: transform .95s cubic-bezier(.16,.78,.18,1),opacity .45s ease; }
.mode-stage.preview-endless .mode-projection-endless img { transform: translateX(0) scale(1); }
.mode-projection-endless > span { top: 132px; right: 28%; flex-direction: row-reverse; }
.mode-projection-anomaly { --accent-rgb: 72,224,164; transform: translateY(92px); }
.mode-projection-anomaly img { top: 9%; left: 50%; width: 43%; height: 76%; object-fit: contain; object-position: center top; opacity: .78; filter: saturate(.92) contrast(1.06) brightness(.84) drop-shadow(0 18px 28px rgba(0,0,0,.5)); transform: translateX(-50%); -webkit-mask-image: linear-gradient(to bottom,#000 0,#000 70%,transparent 100%); mask-image: linear-gradient(to bottom,#000 0,#000 70%,transparent 100%); }
.mode-projection-anomaly > span { top: 126px; right: 18%; flex-direction: row-reverse; }
.mode-stage.preview-sudden .mode-projection-sudden, .mode-stage.preview-endless .mode-projection-endless, .mode-stage.preview-anomaly .mode-projection-anomaly { opacity: 1; transform: none; }
.mode-stage.preview-anomaly .mode-projection-anomaly { transform: translateY(52px); }
.mode-cards { position: relative; inset: auto; display: block; min-height: 478px; }
.mode-cards::before { content: ""; position: absolute; top: 55%; right: 2%; left: 2%; height: 1px; opacity: .7; background: linear-gradient(90deg,transparent,rgba(67,199,255,.58) 18%,rgba(255,255,255,.2) 50%,rgba(239,255,52,.5) 82%,transparent); box-shadow: 0 0 15px rgba(255,255,255,.08); }
.mode-cards::after { content: ""; position: absolute; top: calc(55% - 5px); left: calc(50% - 5px); width: 10px; height: 10px; border: 1px solid rgba(72,224,164,.64); background: #091018; box-shadow: 0 0 14px rgba(72,224,164,.38); transform: rotate(45deg); }
.mode-card { --art-shift-x: 0px; --art-shift-y: 0px; --card-tilt: 0deg; --glow-x: 50%; --glow-y: 38%; position: absolute; top: 48px; display: flex; width: 36%; min-height: 364px; flex-direction: column; align-items: flex-start; padding: 174px 24px 22px; isolation: isolate; opacity: .9; backdrop-filter: blur(12px); transform: rotate(var(--card-tilt)); transform-origin: center bottom; transition: z-index 0s .18s,opacity .35s ease,filter .35s ease,transform .55s cubic-bezier(.16,.78,.18,1),border-color .3s ease,background .3s ease,box-shadow .35s ease; }
.mode-card::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(circle at var(--glow-x) var(--glow-y),rgba(var(--accent-rgb),.12),transparent 34%),linear-gradient(to bottom,rgba(9,14,20,.12) 0,rgba(9,14,20,.3) 34%,rgba(9,14,20,.98) 58%),linear-gradient(110deg,rgba(var(--accent-rgb),.08),transparent 58%); transition: opacity .3s ease,background .2s linear; }
.mode-card.mode-hover-armed:hover::before, .mode-card:focus-within::before { opacity: .82; }
.mode-sudden { --card-tilt: -1.35deg; left: 0; z-index: 3; padding-right: 42px; }
.mode-endless { --card-tilt: 1.35deg; right: 0; z-index: 3; padding-left: 48px; border-left-color: var(--line-strong); background: linear-gradient(135deg,rgba(239,255,52,.035),transparent 54%),rgba(9,14,20,.88); animation-delay: .08s; }
.mode-anomaly { --accent: #48e0a4; --accent-rgb: 72,224,164; --accent-ink: #03231a; top: 0; left: 32%; z-index: 10; min-height: 430px; padding-top: 216px; background: linear-gradient(132deg,rgba(72,224,164,.065),transparent 48%),#070d11; box-shadow: 10px 0 0 rgba(7,13,17,.96),18px 12px 34px rgba(0,0,0,.66),inset -1px 0 rgba(72,224,164,.34),inset 0 1px rgba(255,255,255,.06); backdrop-filter: none; animation-delay: .16s; }
.mode-anomaly.mode-hover-armed:hover, .mode-anomaly:focus-visible, .mode-anomaly:focus-within, .mode-stage.preview-anomaly .mode-anomaly { box-shadow: 12px 0 0 rgba(7,13,17,.98),22px 16px 42px rgba(0,0,0,.68),0 0 34px rgba(72,224,164,.16),inset -1px 0 rgba(72,224,164,.48),inset 0 1px rgba(255,255,255,.08); }
.mode-card.mode-hover-armed:hover, .mode-card:focus-visible, .mode-card:focus-within { z-index: 12; opacity: 1; transform: translateY(-16px) rotate(0) scale(1.025); transition-delay: 0s; }
#modeScreen.is-mode-sequencing .mode-card { visibility: hidden; opacity: 0; filter: blur(3px); pointer-events: none; transform: translateY(42px) rotate(var(--card-tilt)) scale(.965); }
#modeScreen.is-chessmaster-loading .chessmaster-scene img { will-change: opacity,filter,transform,clip-path; animation: chessmaster-terminal-load 1.25s cubic-bezier(.2,.72,.18,1) both; }
#modeScreen.is-chessmaster-loading .chessmaster-scene .scene-scan { animation: chessmaster-scanlines-load 1.25s ease both; }
#modeScreen.is-chessmaster-loading .chessmaster-scene .scene-scan::after { content: ""; position: absolute; top: 3%; right: 8%; left: 8%; height: 2px; opacity: 0; background: linear-gradient(90deg,transparent,rgba(255,255,255,.7),var(--accent),transparent); box-shadow: 0 0 18px rgba(255,255,255,.42),0 0 28px rgba(var(--accent-rgb),.28); animation: chessmaster-acquire-line 1.12s .08s cubic-bezier(.18,.72,.2,1) both; }
#modeScreen.is-chessmaster-loading .mode-heading { animation: mode-heading-acquire .78s .34s ease both; }
#modeScreen.is-mode-cards-revealing .mode-card { will-change: opacity,filter,transform; animation: mode-card-focus-reveal .52s cubic-bezier(.16,.78,.18,1) both; }
#modeScreen.is-mode-cards-revealing .mode-sudden { animation-delay: 0s; }
#modeScreen.is-mode-cards-revealing .mode-endless { animation-delay: .05s; }
#modeScreen.is-mode-cards-revealing .mode-anomaly { animation-delay: .1s; }
.mode-stage.preview-sudden .mode-card:not(.mode-sudden), .mode-stage.preview-endless .mode-card:not(.mode-endless), .mode-stage.preview-anomaly .mode-card:not(.mode-anomaly) { opacity: .55; filter: saturate(.72); }
.mode-stage.preview-sudden .mode-sudden, .mode-stage.preview-endless .mode-endless, .mode-stage.preview-anomaly .mode-anomaly { border-color: rgba(var(--accent-rgb),.88); box-shadow: 0 24px 56px rgba(0,0,0,.48),0 0 34px rgba(var(--accent-rgb),.18),inset 0 1px 0 rgba(255,255,255,.1); }
.mode-card .mode-en, .mode-card .mode-name, .mode-card .mode-desc, .mode-card .mode-config, .mode-card > .mode-go { position: relative; right: auto; bottom: auto; z-index: 2; }
.mode-card .mode-desc { max-width: none; min-height: 45px; }
.mode-card .mode-name { font-size: 28px; }
.mode-card .mode-desc { font-size: 12px; line-height: 1.8; }
.mode-card > .mode-go { display: inline-flex; min-height: 34px; align-items: center; margin-top: auto; padding-top: 14px; }
.mode-card .mode-config { position: relative; inset: auto; width: 100%; margin-top: auto; }
.mode-card .mode-index { top: 18px; right: 16px; z-index: 3; font-size: 52px; transform: none; }
.mode-card.mode-hover-armed:hover .mode-index, .mode-card:focus-visible .mode-index, .mode-card:focus-within .mode-index { transform: translateY(-5px) scale(1.04); }
.mode-card-sticker { top: 0; right: 0; width: 100%; height: 66%; opacity: .13; object-fit: contain; object-position: center top; filter: saturate(.54) contrast(.94) brightness(.62); transform: translate3d(var(--art-shift-x),var(--art-shift-y),0) scale(.985); -webkit-mask-image: linear-gradient(to bottom,#000 0,#000 65%,rgba(0,0,0,.65) 82%,transparent 100%); mask-image: linear-gradient(to bottom,#000 0,#000 65%,rgba(0,0,0,.65) 82%,transparent 100%); transition: opacity .38s ease,filter .38s ease,transform .62s cubic-bezier(.16,.78,.18,1); }
.mode-card.mode-hover-armed:hover .mode-card-sticker, .mode-card:focus-visible .mode-card-sticker, .mode-card:focus-within .mode-card-sticker { opacity: .94; filter: saturate(1) contrast(1.1) brightness(.94); transform: translate3d(var(--art-shift-x),var(--art-shift-y),0) scale(1.055); }
.mode-card-sticker-sudden { top: 0; right: 0; width: 100%; height: 65%; object-fit: cover; object-position: 50% center; }
.mode-card-sticker-endless { top: -4%; right: -8%; display: block; width: 106%; height: 70%; object-fit: cover; object-position: 50% 20%; opacity: .13; filter: grayscale(.48) sepia(.18) saturate(.84) contrast(1.2) brightness(.73); -webkit-mask-image: linear-gradient(to bottom,#000 0,#000 61%,rgba(0,0,0,.88) 72%,rgba(0,0,0,.42) 86%,transparent 100%); mask-image: linear-gradient(to bottom,#000 0,#000 61%,rgba(0,0,0,.88) 72%,rgba(0,0,0,.42) 86%,transparent 100%); }
.mode-endless.mode-hover-armed:hover .mode-card-sticker-endless, .mode-endless:focus-visible .mode-card-sticker-endless { opacity: .72; filter: grayscale(.24) sepia(.12) saturate(.94) contrast(1.18) brightness(.84); }
.mode-card-sticker-anomaly { top: 3%; right: -15%; width: 130%; height: 104%; object-fit: contain; object-position: center top; opacity: .11; mix-blend-mode: screen; filter: saturate(.88) contrast(1.08) brightness(.68); -webkit-mask-image: linear-gradient(to bottom,#000 0,#000 49%,rgba(0,0,0,.76) 65%,transparent 83%); mask-image: linear-gradient(to bottom,#000 0,#000 49%,rgba(0,0,0,.76) 65%,transparent 83%); }
.mode-anomaly.mode-hover-armed:hover .mode-card-sticker-anomaly, .mode-anomaly:focus-visible .mode-card-sticker-anomaly, .mode-anomaly:focus-within .mode-card-sticker-anomaly { opacity: .9; filter: saturate(1.05) contrast(1.13) brightness(.84); }
.mode-anomaly .anomaly-go { align-self: flex-start; border: 0; color: var(--accent); background: transparent; font-family: var(--font); font-size: 11px; font-weight: 700; letter-spacing: 2px; }

/* --- 审查主界面：侧栏（引导者 + 局内状态） --- */
.anomaly-layout { display: grid; grid-template-columns: minmax(250px,320px) minmax(0,1fr); min-height: calc(100vh - 176px); border: 1px solid var(--line); background: rgba(8,11,15,.78); box-shadow: 0 30px 100px rgba(0,0,0,.42); backdrop-filter: blur(16px); }
.anomaly-sidebar { position: sticky; top: 20px; align-self: start; display: flex; min-height: calc(100vh - 176px); flex-direction: column; overflow: hidden; border-right: 1px solid var(--line); background: linear-gradient(180deg,#0b1210,#080d12); box-shadow: inset 1px 0 rgba(var(--accent-rgb),.3), inset 0 1px rgba(var(--accent-rgb),.18), inset 0 -1px rgba(var(--accent-rgb),.18); }
.anomaly-art { position: relative; height: 322px; flex: none; overflow: hidden; }
.anomaly-art img { position: absolute; right: -18%; bottom: -15%; left: -18%; width: 136%; height: 116%; object-fit: contain; object-position: center bottom; opacity: .94; filter: saturate(.92) contrast(1.08) brightness(.95) drop-shadow(0 18px 26px rgba(0,0,0,.5)); }
.anomaly-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(11,16,22,0) 42%, #0b1016 98%); }
.anomaly-art-grid { position: absolute; inset: 0; opacity: .28; background-image: linear-gradient(rgba(var(--accent-rgb),.16) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--accent-rgb),.16) 1px,transparent 1px); background-size: 28px 28px; }
.anomaly-art-scan { position: absolute; top: -30%; bottom: -30%; left: -70%; width: 34%; pointer-events: none; opacity: 0; background: linear-gradient(90deg,transparent,rgba(var(--accent-rgb),.14),rgba(255,255,255,.4),transparent); transform: skewX(-12deg); animation: operator-scan 1.1s .5s ease both; }
.anomaly-sidebar-copy { position: relative; z-index: 2; margin: -38px 18px 0; padding: 17px 16px 16px; border: 1px solid var(--line-strong); border-top: 2px solid var(--accent); background: linear-gradient(135deg,rgba(var(--accent-rgb),.08),transparent 48%),rgba(10,15,20,.95); box-shadow: 0 18px 32px rgba(0,0,0,.28); }
.anomaly-sidebar-copy h2 { margin: 12px 0 10px; font-family: var(--sans); font-size: 24px; line-height: 1.27; letter-spacing: 1.5px; }
.anomaly-sidebar-copy #anomalySidebarDesc { margin: 0; color: #8e9aa5; font-family: var(--sans); font-size: 11.5px; line-height: 1.68; }
.anomaly-sidebar-index { position: absolute; top: 11px; right: 15px; margin: 0; color: rgba(var(--accent-rgb),.27); font-size: 32px; font-weight: 700; line-height: 1; }
.anomaly-side-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 16px 18px 0; }
.anomaly-side-stats p { display: flex; min-width: 0; flex-direction: column; gap: 7px; margin: 0; padding: 9px 10px 8px; border: 1px solid rgba(255,255,255,.07); background: linear-gradient(180deg,rgba(var(--accent-rgb),.06),transparent); }
.anomaly-side-stats span { color: rgba(var(--accent-rgb),.62); font-size: 7px; font-weight: 700; letter-spacing: 1.6px; }
.anomaly-side-stats strong { overflow: hidden; color: var(--text); font-size: 18px; line-height: 1; text-overflow: ellipsis; }
.anomaly-side-stats strong.is-used { color: var(--muted); }
.anomaly-rhine { display: flex; align-items: center; justify-content: center; gap: 10px; margin: auto 18px 0; padding: 20px 0 16px; }
.anomaly-rhine img { width: 30px; height: 30px; object-fit: contain; opacity: .48; filter: drop-shadow(0 0 8px rgba(var(--accent-rgb),.3)); }
.anomaly-rhine span { color: rgba(var(--accent-rgb),.5); font-size: 8px; font-weight: 700; letter-spacing: 3px; }

/* --- 审查主界面：工作区 --- */
.anomaly-workspace { position: relative; min-width: 0; padding: clamp(24px,3.5vw,48px); }
.anomaly-meta { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 26px; }
.anomaly-meta-protocol { display: flex; flex-direction: column; gap: 7px; }
.anomaly-meta-config { color: var(--muted); font-family: var(--sans); font-size: 11px; letter-spacing: 1px; }
.anomaly-meta-stats { color: rgba(var(--accent-rgb),.72); font-family: var(--sans); font-size: 10px; letter-spacing: 1px; }
.anomaly-meta-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.anomaly-round { color: rgba(var(--accent-rgb),.78); font-size: 11px; font-weight: 700; letter-spacing: 2.5px; }

#anomalyScreen.is-workspace-entering .anomaly-meta { animation: anomaly-workspace-enter .72s cubic-bezier(.16,.78,.18,1) both; }
#anomalyScreen.is-workspace-entering .anomaly-workspace > :not(.anomaly-meta) { animation: anomaly-workspace-enter .78s .1s cubic-bezier(.16,.78,.18,1) both; }
#anomalyScreen.is-workspace-entering .anomaly-workspace::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; z-index: 20; width: 24%; pointer-events: none; opacity: 0; background: linear-gradient(90deg,transparent,rgba(var(--accent-rgb),.08),rgba(255,255,255,.4),rgba(var(--accent-rgb),.12),transparent); transform: translateX(-130%) skewX(-10deg); animation: anomaly-workspace-scan .84s .08s cubic-bezier(.2,.72,.18,1) both; }
#anomalyScreen.is-workspace-staged .anomaly-workspace > * { visibility: hidden; opacity: 0; }

.anomaly-scope { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 12px 18px; margin: -8px 0 22px; padding: 10px 13px; overflow: hidden; border: 1px solid rgba(var(--accent-rgb),.22); background: linear-gradient(90deg,rgba(var(--accent-rgb),.08),rgba(var(--accent-rgb),.015) 52%,transparent); }
.anomaly-scope-head { display: flex; min-width: 132px; flex-direction: column; gap: 3px; padding-right: 15px; border-right: 1px solid rgba(var(--accent-rgb),.2); }
.anomaly-scope-head span { color: rgba(var(--accent-rgb),.62); font-size: 6px; font-weight: 700; letter-spacing: 1.7px; }
.anomaly-scope-head strong { color: #d9f8ea; font-family: var(--sans); font-size: 10px; letter-spacing: .8px; }
.anomaly-scope-items { display: flex; min-width: 0; flex-wrap: wrap; gap: 6px; }
.anomaly-scope-items > span { padding: 4px 8px; border-left: 2px solid rgba(var(--accent-rgb),.62); color: #aebdb5; background: rgba(var(--accent-rgb),.045); font-family: var(--sans); font-size: 9px; letter-spacing: .8px; animation: anomaly-scope-item-in .42s var(--d,0ms) ease both; }

/* --- 进入终端后的主题路由 --- */
.anomaly-theme-select { position: relative; padding: clamp(22px,3vw,34px); border: 1px solid var(--line-strong); background: linear-gradient(118deg,rgba(var(--accent-rgb),.09),transparent 38%),#0b1015; box-shadow: inset 0 1px rgba(255,255,255,.035); }
.anomaly-theme-select::before { content: ""; position: absolute; top: -1px; left: -1px; width: 116px; height: 2px; background: var(--accent); box-shadow: 0 0 18px rgba(var(--accent-rgb),.55); }
.anomaly-theme-head { max-width: 760px; }
.anomaly-theme-kicker { color: var(--accent); font-size: 8px; font-weight: 700; letter-spacing: 2.8px; }
.anomaly-theme-head h2 { margin: 10px 0 8px; font-family: var(--sans); font-size: clamp(22px,2.5vw,30px); letter-spacing: 2px; }
.anomaly-theme-head p { margin: 0; color: #99a69f; font-family: var(--sans); font-size: 11.5px; line-height: 1.75; }
.anomaly-theme-layout { display: grid; grid-template-columns: minmax(230px,.72fr) minmax(0,1.35fr); gap: 16px; margin-top: 24px; }
.anomaly-theme-grid { display: grid; align-content: start; gap: 7px; }
.anomaly-theme-card { position: relative; display: grid; min-width: 0; min-height: 58px; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 8px 11px; overflow: hidden; border: 1px solid rgba(255,255,255,.1); color: #c6d0cb; background: rgba(6,10,13,.64); text-align: left; transition: border-color .2s ease,background .2s ease,transform .2s ease; }
.anomaly-theme-card::after { content: ""; position: absolute; inset: 0 auto 0 0; width: 2px; opacity: 0; background: var(--accent); box-shadow: 0 0 12px rgba(var(--accent-rgb),.7); transition: opacity .2s ease; }
.anomaly-theme-card:hover { border-color: rgba(var(--accent-rgb),.52); background: rgba(var(--accent-rgb),.07); transform: translateX(3px); }
.anomaly-theme-card:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.anomaly-theme-card.is-selected { border-color: rgba(var(--accent-rgb),.8); color: #effff7; background: linear-gradient(90deg,rgba(var(--accent-rgb),.15),rgba(var(--accent-rgb),.035)); }
.anomaly-theme-card.is-selected::after { opacity: 1; }
.anomaly-theme-card-index { color: rgba(var(--accent-rgb),.54); font-size: 17px; font-weight: 700; }
.anomaly-theme-card-copy { min-width: 0; }
.anomaly-theme-card-copy strong { display: block; font-family: var(--sans); font-size: 12px; letter-spacing: 1px; }
.anomaly-theme-card-copy small { display: block; margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 7px; font-weight: 700; letter-spacing: 1.6px; text-overflow: ellipsis; white-space: nowrap; }
.anomaly-theme-card-count { display: inline-flex; align-items: center; gap: 6px; color: rgba(var(--accent-rgb),.7); font-family: var(--sans); font-size: 9px; white-space: nowrap; }
.anomaly-theme-card-count em { position: relative; padding: 3px 7px 3px 13px; overflow: hidden; border: 1px solid rgba(255,179,92,.72); color: #ffc783; background: linear-gradient(90deg,rgba(255,179,92,.17),rgba(255,179,92,.045)); box-shadow: inset 2px 0 #ffb35c,0 0 12px rgba(255,179,92,.08); clip-path: polygon(0 0,calc(100% - 5px) 0,100% 5px,100% 100%,5px 100%,0 calc(100% - 5px)); font-size: 8px; font-style: normal; font-weight: 700; letter-spacing: 1px; }
.anomaly-theme-card-count em::before { content: ""; position: absolute; top: 50%; left: 6px; width: 3px; height: 3px; background: currentColor; box-shadow: 0 0 7px currentColor; transform: translateY(-50%) rotate(45deg); }
.anomaly-theme-details { min-width: 0; height: 448px; padding: 18px 18px 14px; overflow: hidden; border: 1px solid rgba(var(--accent-rgb),.24); background: linear-gradient(145deg,rgba(var(--accent-rgb),.055),transparent 44%),rgba(5,9,12,.72); }
.anomaly-theme-details > header { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 2px 14px; padding-bottom: 13px; border-bottom: 1px solid rgba(255,255,255,.09); }
.anomaly-theme-detail-code { grid-column: 1 / -1; color: rgba(var(--accent-rgb),.72); font-size: 7px; font-weight: 700; letter-spacing: 2.4px; }
.anomaly-theme-details h3 { display: flex; min-width: 0; align-items: center; gap: 10px; margin: 5px 0 0; font-family: var(--sans); font-size: 19px; letter-spacing: 1.5px; }
.anomaly-theme-details h3 > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.anomaly-theme-risk-tag { position: relative; display: inline-flex; min-width: max-content; align-items: center; gap: 6px; padding: 4px 9px 4px 7px; overflow: hidden; border: 1px solid rgba(255,179,92,.78); color: #ffd09a; background: linear-gradient(105deg,rgba(255,179,92,.2),rgba(255,179,92,.055) 72%); box-shadow: inset 2px 0 #ffad4a,0 0 16px rgba(255,158,60,.12); clip-path: polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,7px 100%,0 calc(100% - 7px)); font-family: var(--font); }
.anomaly-theme-risk-tag::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(135deg,transparent 0 5px,rgba(255,195,128,.08) 5px 7px); }
.anomaly-theme-risk-tag i { position: relative; z-index: 1; width: 5px; height: 5px; flex: none; background: currentColor; box-shadow: 0 0 8px currentColor; transform: rotate(45deg); }
.anomaly-theme-risk-tag b { position: relative; z-index: 1; font-size: 7px; letter-spacing: 1.3px; line-height: 1; }
.anomaly-theme-details > header p { margin: 0; color: var(--muted); font-family: var(--sans); font-size: 9px; text-align: right; }
.anomaly-theme-detail-caption { margin: 13px 0 10px; color: #aeb9b3; font-family: var(--sans); font-size: 10px; letter-spacing: .5px; }
.anomaly-theme-detail-list { display: grid; max-height: 326px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin: 0; padding: 0 5px 4px 0; overflow: auto; scrollbar-color: rgba(var(--accent-rgb),.4) transparent; list-style: none; }
.anomaly-theme-detail-list li { position: relative; display: grid; min-width: 0; min-height: 82px; grid-template-columns: 27px minmax(0,1fr); align-content: start; gap: 8px; padding: 9px 9px 8px; overflow: hidden; border: 1px solid rgba(255,255,255,.07); background: linear-gradient(112deg,rgba(var(--accent-rgb),.035),transparent 62%),rgba(255,255,255,.018); }
.anomaly-theme-detail-list li::after { content: ""; position: absolute; right: 0; bottom: 0; width: 17px; height: 1px; background: rgba(var(--accent-rgb),.4); }
.anomaly-theme-detail-list li > span { color: rgba(var(--accent-rgb),.48); font-size: 10px; font-weight: 700; }
.anomaly-theme-detail-list strong { display: block; overflow: hidden; font-family: var(--sans); font-size: 10.5px; letter-spacing: .5px; text-overflow: ellipsis; white-space: nowrap; }
.anomaly-theme-detail-list small { display: block; margin-top: 4px; color: #84928b; font-family: var(--sans); font-size: 8.5px; line-height: 1.45; }
.anomaly-theme-detail-count { display: inline-flex; align-items: center; gap: 5px; margin-top: 7px; color: rgba(var(--accent-rgb),.72); font-size: 7.5px; font-weight: 700; letter-spacing: .8px; }
.anomaly-theme-detail-count::before { content: ""; width: 12px; height: 1px; background: currentColor; box-shadow: 0 0 6px rgba(var(--accent-rgb),.36); }
.anomaly-theme-actions { display: flex; align-items: center; gap: 16px; margin-top: 18px; }
.anomaly-theme-actions .status { flex: 1; margin: 0; text-align: left; }
.anomaly-theme-actions .anomaly-confirm { flex: none; }

.anomaly-console { position: relative; padding: clamp(22px,3vw,32px); border: 1px solid var(--line-strong); background: linear-gradient(115deg,rgba(var(--accent-rgb),.07),transparent 38%), var(--surface); }
.anomaly-console::before { content: ""; position: absolute; top: -1px; left: -1px; width: 90px; height: 2px; background: var(--accent); box-shadow: 0 0 18px rgba(var(--accent-rgb),.55); }
.anomaly-question-head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 15px; }
.anomaly-question-domain { min-width: 0; }
.anomaly-question-domain h2 { margin: 0; font-family: var(--sans); font-size: 18px; letter-spacing: 1px; }
.anomaly-question-domain span { color: var(--accent); font-size: 9px; font-weight: 700; letter-spacing: 2.5px; }
.anomaly-difficulty-badge { position: relative; display: inline-flex; min-width: max-content; align-items: center; gap: 7px; margin-left: auto; padding: 5px 9px 5px 15px; overflow: hidden; border: 1px solid rgba(var(--difficulty-rgb),.58); color: rgb(var(--difficulty-rgb)); background: linear-gradient(105deg,rgba(var(--difficulty-rgb),.14),rgba(var(--difficulty-rgb),.025)); box-shadow: inset 2px 0 rgb(var(--difficulty-rgb)),0 0 14px rgba(var(--difficulty-rgb),.08); clip-path: polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,6px 100%,0 calc(100% - 6px)); font-size: 7.5px; font-weight: 700; letter-spacing: 1.2px; }
.anomaly-difficulty-badge::before { content: ""; position: absolute; top: 50%; left: 7px; width: 4px; height: 4px; background: currentColor; box-shadow: 0 0 7px currentColor; transform: translateY(-50%) rotate(45deg); }
.anomaly-difficulty-badge[data-level="trainee"] { --difficulty-rgb: 91,194,255; }
.anomaly-difficulty-badge[data-level="standard"] { --difficulty-rgb: 72,224,164; }
.anomaly-difficulty-badge[data-level="hazard"] { --difficulty-rgb: 255,164,82; }
.anomaly-timer { margin: 0; color: rgba(var(--accent-rgb),.82); font-size: 13px; font-weight: 700; letter-spacing: 1.5px; font-variant-numeric: tabular-nums; }
.anomaly-question-tip { flex-basis: 100%; margin: 4px 0 0; color: var(--muted); font-family: var(--sans); font-size: 11px; line-height: 1.6; }

/* --- 扫描器提示 --- */
.anomaly-hint { display: flex; align-items: center; gap: 14px; margin-top: 16px; padding: 12px 16px; border: 1px solid rgba(var(--accent-rgb),.48); border-left: 3px solid var(--accent); background: linear-gradient(90deg,rgba(var(--accent-rgb),.12),rgba(var(--accent-rgb),.03) 72%); animation: fade-up .35s ease both; }
.anomaly-hint-tag { flex: none; color: var(--accent); font-size: 7px; font-weight: 700; letter-spacing: 1.8px; line-height: 1.6; }
.anomaly-hint-text { min-width: 0; flex: 1; }
.anomaly-hint-text strong { font-family: var(--sans); font-size: 13px; letter-spacing: 1px; }
.anomaly-hint-text p { margin: 4px 0 0; color: #b7c2bb; font-family: var(--sans); font-size: 11px; line-height: 1.6; }
.anomaly-hint-cost { flex: none; padding: 4px 8px; border: 1px solid rgba(var(--tip-rgb),.5); color: var(--tip); font-family: var(--sans); font-size: 9px; font-weight: 700; letter-spacing: 1px; white-space: nowrap; }

/* --- 四张候选干员卡 --- */
.anomaly-options { position: relative; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-top: 20px; }
.anomaly-options.is-resolving::after { content: ""; position: absolute; top: -8px; bottom: -8px; left: -6%; z-index: 5; width: 24%; pointer-events: none; background: linear-gradient(90deg,transparent,rgba(var(--accent-rgb),.14),rgba(255,255,255,.5),rgba(var(--accent-rgb),.14),transparent); transform: skewX(-12deg); animation: anomaly-options-scan .72s cubic-bezier(.4,0,.3,1) both; }
.anomaly-option { position: relative; display: flex; min-width: 0; flex-direction: column; padding: 0; overflow: hidden; border: 1px solid var(--line-strong); color: var(--text); background: #0d1218; text-align: left; cursor: pointer; transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease; animation: anomaly-card-in .52s cubic-bezier(.2,.8,.2,1) both; animation-delay: var(--d,0ms); }
.anomaly-option::after { content: ""; position: absolute; inset: 5px; pointer-events: none; opacity: 0; transition: opacity .22s ease; background: linear-gradient(var(--accent),var(--accent)) left top / 12px 1px, linear-gradient(var(--accent),var(--accent)) left top / 1px 12px, linear-gradient(var(--accent),var(--accent)) right top / 12px 1px, linear-gradient(var(--accent),var(--accent)) right top / 1px 12px, linear-gradient(var(--accent),var(--accent)) left bottom / 12px 1px, linear-gradient(var(--accent),var(--accent)) left bottom / 1px 12px, linear-gradient(var(--accent),var(--accent)) right bottom / 12px 1px, linear-gradient(var(--accent),var(--accent)) right bottom / 1px 12px; background-repeat: no-repeat; }
.anomaly-option:hover:not(:disabled) { border-color: rgba(var(--accent-rgb),.6); transform: translateY(-3px); }
.anomaly-option:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.anomaly-option.is-skeleton { min-height: 300px; border-color: var(--line); background: linear-gradient(100deg,#0d1218 30%,#131a21 48%,#0d1218 64%); background-size: 240% 100%; cursor: default; animation: anomaly-skeleton 1.15s linear infinite; animation-delay: var(--d,0ms); }
.anomaly-option-art { position: relative; height: 228px; overflow: hidden; border-bottom: 1px solid var(--line); background: radial-gradient(circle at 50% 20%, rgba(var(--accent-rgb),.1), transparent 42%), linear-gradient(160deg,#151d24,#090d12 75%); }
.anomaly-option-art img { position: absolute; inset: 6px -14% 0; width: 128%; height: calc(100% - 6px); object-fit: contain; object-position: center bottom; filter: drop-shadow(0 12px 16px rgba(0,0,0,.45)); }
.anomaly-option-art.image-missing img { display: none; }
.anomaly-option-art.image-missing::before { content: ""; position: absolute; top: 50%; left: 50%; width: 18px; height: 18px; border: 1px solid var(--muted); transform: translate(-50%,-50%) rotate(45deg); }
.anomaly-option-scan { position: absolute; top: -30%; bottom: -30%; left: -70%; width: 34%; pointer-events: none; opacity: 0; background: linear-gradient(90deg,transparent,rgba(var(--accent-rgb),.16),rgba(255,255,255,.42),transparent); transform: skewX(-12deg); }
.anomaly-option.is-selected .anomaly-option-scan { animation: operator-scan .6s ease both; }
.anomaly-option-foot { position: relative; display: flex; align-items: center; gap: 10px; padding: 11px 12px; }
.anomaly-option-index { display: inline-flex; width: 26px; height: 26px; flex: none; align-items: center; justify-content: center; border: 1px solid rgba(var(--accent-rgb),.4); color: var(--accent); font-size: 11px; font-weight: 700; transition: color .2s ease, background .2s ease, box-shadow .2s ease; }
.anomaly-option-name { min-width: 0; overflow: hidden; font-family: var(--sans); font-size: 15px; letter-spacing: 1px; text-overflow: ellipsis; white-space: nowrap; }
.anomaly-option-mark { position: absolute; top: 50%; right: 12px; margin-left: 0; padding: 2px 7px; color: var(--accent-ink); background: var(--accent); font-family: var(--sans); font-size: 9px; font-weight: 700; letter-spacing: 1px; opacity: 0; transform: translateY(-50%) translateX(6px); transition: opacity .2s ease, transform .2s ease; }
.anomaly-option.is-selected { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent), 0 0 22px rgba(var(--accent-rgb),.18); }
.anomaly-option.is-selected::after { opacity: 1; }
.anomaly-option.is-selected .anomaly-option-index { color: var(--accent-ink); background: var(--accent); box-shadow: 0 0 10px rgba(var(--accent-rgb),.6); }
.anomaly-option.is-selected .anomaly-option-mark { opacity: 1; transform: translateY(-50%); }
.anomaly-option-verdict:empty, .anomaly-option-evidence:empty { display: none; }
.anomaly-option-verdict { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 9px 12px 0; }
.anomaly-option-verdict b { padding: 2px 7px; font-family: var(--sans); font-size: 9px; font-weight: 700; letter-spacing: 1px; }
.anomaly-option-verdict i { font-family: var(--sans); font-size: 9px; font-style: normal; font-weight: 700; letter-spacing: 1px; }
.anomaly-option-evidence { margin: 8px 12px 11px; padding: 7px 9px; border: 1px dashed rgba(255,255,255,.14); color: #c3cdd4; background: rgba(255,255,255,.02); font-family: var(--sans); font-size: 10px; line-height: 1.5; animation: fade-up .4s ease both; animation-delay: var(--d,0ms); }
.anomaly-options.is-reviewed .anomaly-option { cursor: zoom-in; }
.anomaly-options.is-reviewed .anomaly-option:not(.is-odd):not(.is-chosen) { opacity: .82; }
.anomaly-option.is-common { border-color: rgba(var(--accent-rgb),.5); }
.anomaly-option.is-common .anomaly-option-verdict b { border: 1px solid rgba(var(--accent-rgb),.55); color: var(--accent); }
.anomaly-option.is-odd { border-color: rgba(74,168,255,.88); box-shadow: inset 0 0 0 1px rgba(74,168,255,.52),0 0 28px rgba(74,168,255,.17); }
.anomaly-option.is-odd .anomaly-option-index { border-color: rgba(74,168,255,.8); color: #77bdff; }
.anomaly-option.is-odd .anomaly-option-verdict b { border: 1px solid rgba(74,168,255,.7); color: #d8edff; background: rgba(74,168,255,.17); }
.anomaly-option.is-odd .anomaly-option-evidence { border-color: rgba(74,168,255,.48); color: #c9e5ff; }
.anomaly-option.is-hit .anomaly-option-verdict i { color: var(--accent); }
.anomaly-option.is-miss { border-color: rgba(var(--wrong-rgb),.5); }
.anomaly-option.is-miss .anomaly-option-verdict i { color: var(--wrong); }

/* --- 操作栏：扫描器 / 状态 / 确认 --- */
.anomaly-actionbar { display: flex; align-items: center; gap: 14px; margin-top: 20px; }
.anomaly-scan { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 3px; min-height: 46px; padding: 6px 14px; border: 1px solid rgba(var(--accent-rgb),.42); color: var(--accent); background: rgba(var(--accent-rgb),.05); text-align: left; transition: border-color .2s ease, background .2s ease, color .2s ease; }
.anomaly-scan:hover:not(:disabled) { border-color: var(--accent); background: rgba(var(--accent-rgb),.12); }
.anomaly-scan:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.anomaly-scan-name { font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 1px; }
.anomaly-scan-state { font-size: 7px; font-weight: 700; letter-spacing: 1.6px; opacity: .72; }
.anomaly-scan.is-used { border-style: dashed; border-color: var(--line-strong); color: var(--muted); background: transparent; }
.anomaly-status { flex: 1; margin: 0; text-align: center; }
.anomaly-confirm { display: inline-flex; min-width: 160px; min-height: 46px; align-items: center; justify-content: center; gap: 18px; padding: 0 20px; border-color: var(--accent); color: var(--accent-ink); background: var(--accent); font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: 1px; transition: filter .2s ease, transform .2s ease; }
.anomaly-confirm:hover:not(:disabled) { filter: brightness(1.1); transform: translateY(-2px); }
.anomaly-confirm:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.anomaly-confirm i { font-size: 16px; font-style: normal; }

/* --- 证据揭示与得分拆分 --- */
.anomaly-review { margin-top: 18px; padding: clamp(20px,2.6vw,30px); border: 1px solid var(--line-strong); background: linear-gradient(150deg,rgba(var(--accent-rgb),.05),transparent 40%), var(--surface); animation: fade-up .4s ease both; }
.anomaly-review:focus { outline: none; }
.anomaly-review-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.anomaly-verdict { padding: 5px 12px; font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: 2px; }
.anomaly-verdict.is-correct { color: var(--accent-ink); background: var(--accent); box-shadow: 0 0 20px rgba(var(--accent-rgb),.3); }
.anomaly-verdict.is-wrong { color: #fff; background: rgba(var(--wrong-rgb),.85); }
.anomaly-review-domain { color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: 2px; }
.anomaly-rule-tag { color: var(--accent); font-size: 8px; font-weight: 700; letter-spacing: 2.4px; }
.anomaly-review-rule h3 { margin: 8px 0; font-family: var(--sans); font-size: 20px; letter-spacing: 1px; }
.anomaly-review-rule p { margin: 0; color: #aeb8c2; font-family: var(--sans); font-size: 12.5px; line-height: 1.7; }
.anomaly-supporting { margin-top: 16px; padding-top: 14px; border-top: 1px dashed rgba(255,255,255,.12); }
.anomaly-supporting ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 0; padding: 0; list-style: none; }
.anomaly-supporting li { min-width: 0; max-width: 320px; padding: 8px 11px; border: 1px solid rgba(var(--accent-rgb),.3); background: rgba(var(--accent-rgb),.05); }
.anomaly-supporting strong { display: block; font-family: var(--sans); font-size: 11px; letter-spacing: 1px; }
.anomaly-supporting span { display: block; margin-top: 3px; color: var(--muted); font-family: var(--sans); font-size: 10px; line-height: 1.5; }
.anomaly-points { display: flex; flex-wrap: wrap; align-items: stretch; gap: 8px; margin-top: 18px; padding-top: 15px; border-top: 1px dashed rgba(255,255,255,.12); }
.anomaly-point { display: flex; flex-direction: column; gap: 4px; padding: 8px 12px; border: 1px solid rgba(255,255,255,.09); background: rgba(255,255,255,.02); }
.anomaly-point i { color: var(--muted); font-size: 7px; font-style: normal; font-weight: 700; letter-spacing: 1.8px; }
.anomaly-point b { font-size: 15px; font-weight: 700; }
.anomaly-point.is-total { margin-left: auto; border-color: rgba(var(--accent-rgb),.55); background: rgba(var(--accent-rgb),.08); }
.anomaly-point.is-total b { color: var(--accent); font-size: 19px; }
.anomaly-point.is-reward { border-color: rgba(255,179,92,.5); background: rgba(255,179,92,.07); }
.anomaly-point.is-reward i, .anomaly-point.is-reward b { color: #ffc783; }
.anomaly-point.is-level-down { border-color: rgba(91,194,255,.42); background: rgba(91,194,255,.055); }
.anomaly-point.is-level-down i, .anomaly-point.is-level-down b { color: #83d3ff; }
.anomaly-review.is-wrong-result .anomaly-point b { color: var(--muted); }
.anomaly-review.is-wrong-result .anomaly-point.is-total b { color: var(--wrong); }
.anomaly-review.is-wrong-result .anomaly-point.is-level-down i, .anomaly-review.is-wrong-result .anomaly-point.is-level-down b { color: #83d3ff; }
.anomaly-next { display: inline-flex; min-width: 168px; min-height: 46px; align-items: center; justify-content: center; gap: 18px; margin-top: 20px; padding: 0 20px; border-color: var(--accent); color: var(--accent-ink); background: var(--accent); font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: 1px; transition: filter .2s ease, transform .2s ease; }
.anomaly-next:hover:not(:disabled) { filter: brightness(1.1); transform: translateY(-2px); }
.anomaly-next:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.anomaly-next i { font-size: 16px; font-style: normal; }

/* --- 审查结算 --- */
.anomaly-summary { position: relative; margin-top: 18px; overflow: hidden; border: 1px solid rgba(var(--accent-rgb),.4); background: linear-gradient(120deg,rgba(var(--accent-rgb),.08),transparent 46%), var(--surface); animation: fade-up .45s ease both; }
.anomaly-summary:focus { outline: none; }
.anomaly-summary-art { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.anomaly-summary-mlyss { position: absolute; right: -6%; bottom: 0; height: 112%; object-fit: contain; opacity: .42; filter: saturate(.9) brightness(.8) contrast(1.06); -webkit-mask-image: linear-gradient(90deg,transparent 4%,#000 52%); mask-image: linear-gradient(90deg,transparent 4%,#000 52%); }
.anomaly-summary-rhine { position: absolute; top: 18px; right: 20px; width: 60px; opacity: .3; }
.anomaly-summary-inner { position: relative; z-index: 1; max-width: 600px; padding: clamp(26px,4vw,44px); }
.anomaly-summary-en { color: var(--accent); font-size: 9px; font-weight: 700; letter-spacing: 3px; }
.anomaly-rating { display: flex; align-items: center; gap: 20px; margin-top: 14px; }
.anomaly-rating-letter { display: inline-flex; width: 92px; height: 92px; flex: none; align-items: center; justify-content: center; border: 1px solid var(--accent); color: var(--accent); font-size: 54px; font-weight: 700; text-shadow: 0 0 18px rgba(var(--accent-rgb),.7); box-shadow: 0 0 30px rgba(var(--accent-rgb),.25), inset 0 0 22px rgba(var(--accent-rgb),.12); }
.anomaly-rating-text strong { display: block; font-family: var(--sans); font-size: 24px; letter-spacing: 2px; }
.anomaly-rating-text small { display: block; margin-top: 6px; color: var(--muted); font-family: var(--sans); font-size: 11px; letter-spacing: 1px; }
.anomaly-summary-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin-top: 22px; }
.anomaly-stat { min-width: 0; padding: 10px 12px; border: 1px solid rgba(255,255,255,.09); background: rgba(8,12,16,.72); }
.anomaly-stat span { display: block; color: var(--muted); font-family: var(--sans); font-size: 9px; letter-spacing: 1.5px; }
.anomaly-stat strong { display: block; margin-top: 6px; overflow: hidden; font-size: 19px; text-overflow: ellipsis; }
.anomaly-summary-domains { margin-top: 24px; }
.anomaly-summary-domains h3 { margin: 0 0 12px; color: var(--accent); font-size: 9px; font-weight: 700; letter-spacing: 2.6px; }
.anomaly-summary-domains ul { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.anomaly-summary-domains li { display: grid; grid-template-columns: 74px minmax(0,1fr) 92px; align-items: center; gap: 12px; font-family: var(--sans); font-size: 11px; }
.anomaly-summary-domains li > span { color: #c3cdd4; letter-spacing: 1px; }
.anomaly-summary-domains li > i { display: block; height: 4px; overflow: hidden; background: rgba(255,255,255,.07); }
.anomaly-summary-domains li > i > b { display: block; height: 100%; background: var(--accent); box-shadow: 0 0 8px rgba(var(--accent-rgb),.6); }
.anomaly-summary-domains li > strong { font-family: var(--font); font-size: 11px; letter-spacing: 1px; text-align: right; }
.anomaly-summary-difficulties { padding-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,.08); }
.anomaly-summary-actions { display: flex; gap: 10px; margin-top: 26px; }
.anomaly-again { display: inline-flex; min-width: 148px; min-height: 44px; align-items: center; justify-content: center; padding: 0 18px; border-color: var(--accent); color: var(--accent-ink); background: var(--accent); font-family: var(--sans); font-size: 12px; font-weight: 700; transition: filter .2s ease, transform .2s ease; }
.anomaly-again:hover { filter: brightness(1.12); transform: translateY(-2px); }

/* --- 启动 / 链路错误面板 --- */
.anomaly-error-panel { padding: clamp(28px,4vw,44px); border: 1px solid rgba(var(--wrong-rgb),.45); background: linear-gradient(120deg,rgba(var(--wrong-rgb),.07),transparent 46%), var(--surface); text-align: center; }
.anomaly-error-tag { color: var(--wrong); font-size: 9px; font-weight: 700; letter-spacing: 3px; }
.anomaly-error-panel strong { display: block; margin-top: 12px; font-family: var(--sans); font-size: 16px; letter-spacing: 1px; }
.anomaly-error-actions { display: flex; justify-content: center; gap: 10px; margin-top: 20px; }
.anomaly-error-actions button:first-child { display: inline-flex; min-width: 148px; min-height: 44px; align-items: center; justify-content: center; gap: 16px; padding: 0 18px; border-color: var(--accent); color: var(--accent-ink); background: var(--accent); font-family: var(--sans); font-size: 12px; font-weight: 700; }

@keyframes anomaly-card-in { 0% { opacity: 0; transform: translateY(18px); clip-path: inset(0 0 16% 0); } 55% { opacity: 1; } 100% { opacity: 1; transform: none; clip-path: inset(0); } }
@keyframes anomaly-options-scan { from { left: -26%; } to { left: 110%; } }
@keyframes anomaly-skeleton { from { background-position: 130% 0; } to { background-position: -40% 0; } }
@keyframes anomaly-workspace-enter { from { opacity: 0; clip-path: inset(0 0 0 17%); transform: translate3d(56px,0,0); } 58% { opacity: 1; } to { opacity: 1; clip-path: inset(0); transform: none; } }
@keyframes anomaly-workspace-scan { 0% { opacity: 0; transform: translateX(-130%) skewX(-10deg); } 18% { opacity: .82; } 78% { opacity: .48; } 100% { opacity: 0; transform: translateX(520%) skewX(-10deg); } }
@keyframes anomaly-scope-item-in { from { opacity: 0; transform: translateX(8px); } to { opacity: 1; transform: none; } }

/* --- 异类审查响应式 --- */
@media (max-width: 1299px) {
  .anomaly-options { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .anomaly-option-art { height: 208px; }
}
@media (max-width: 1040px) {
  .mode-stage { min-height: 0; padding: 176px clamp(20px,3vw,34px) 36px; }
  .mode-cards { display: grid; min-height: 0; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
  .mode-cards::before, .mode-cards::after { display: none; }
  .mode-card { position: relative; top: auto; right: auto; left: auto; width: auto; min-height: 298px; padding-top: 142px; transform: rotate(0); }
  .mode-sudden { grid-row: 2; grid-column: 1; }
  .mode-endless { grid-row: 2; grid-column: 2; border-left-color: var(--accent); }
  .mode-anomaly { width: 68%; min-height: 328px; grid-row: 1; grid-column: 1 / -1; justify-self: center; padding-top: 158px; }
  .anomaly-layout { grid-template-columns: 230px minmax(0,1fr); }
  .anomaly-theme-layout { grid-template-columns: minmax(210px,.7fr) minmax(0,1.2fr); }
  .anomaly-theme-detail-list { grid-template-columns: 1fr; }
  .anomaly-summary-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .mode-stage { min-height: 0; padding: 112px 18px 28px; }
  .mode-stage::after { display: none; }
  .chessmaster-scene img { object-position: center top; opacity: .48; }
  .mode-projections { display: none; }
  .mode-cards { grid-template-columns: 1fr; gap: 10px; }
  .mode-card, .mode-anomaly { position: relative; top: auto; right: auto; left: auto; width: auto; min-height: 238px; grid-row: auto; grid-column: auto; justify-self: stretch; padding: 24px 46% 21px 21px; transform: none; }
  .mode-card.mode-hover-armed:hover, .mode-card:focus-visible, .mode-card:focus-within { transform: translateY(-5px); }
  .mode-card::before { background: linear-gradient(90deg,rgba(9,14,20,.99) 0,rgba(9,14,20,.94) 45%,rgba(9,14,20,.28) 72%,transparent),linear-gradient(to bottom,transparent 46%,rgba(9,14,20,.7)); }
  .mode-card .mode-index { top: 16px; right: 12px; font-size: 44px; }
  .mode-card .mode-desc { min-height: 0; font-size: 10.5px; }
  .mode-card .mode-config { width: 100%; }
  .mode-card-sticker, .mode-card-sticker-endless, .mode-card-sticker-anomaly { top: -2%; right: -5%; width: 58%; height: 104%; opacity: .78; object-fit: contain; object-position: center top; filter: saturate(.85) contrast(1.05) brightness(.86); -webkit-mask-image: linear-gradient(90deg,transparent 0,#000 28%,#000 100%); mask-image: linear-gradient(90deg,transparent 0,#000 28%,#000 100%); }
  .mode-card-sticker-sudden { top: 0; right: 0; width: 60%; height: 100%; object-fit: cover; object-position: 52% center; }
  .mode-card-sticker-anomaly { top: 0; right: -8%; width: 62%; height: 110%; object-position: center top; }
  .anomaly-layout { display: block; }
  .anomaly-sidebar { position: relative; top: auto; min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .anomaly-art { height: 150px; }
  .anomaly-art img { right: -12%; left: -12%; width: 124%; height: 132%; }
  .anomaly-sidebar-copy { margin: -30px 14px 0; padding: 13px 14px 12px; }
  .anomaly-sidebar-copy h2 { margin: 10px 0 8px; font-size: 22px; }
  .anomaly-sidebar-copy #anomalySidebarDesc { display: none; }
  .anomaly-sidebar-index { font-size: 29px; }
  .anomaly-side-stats { margin: 12px 14px 0; }
  .anomaly-side-stats strong { font-size: 16px; }
  .anomaly-rhine { margin-top: 0; padding: 12px 0; }
  /* 移动端侧栏始终紧凑：主题选择如此，开战后亦如此——否则完整侧栏会把题目与选项压到首屏之外。 */
  #anomalyScreen .anomaly-sidebar { display: grid; min-height: 0; grid-template-columns: 118px minmax(0,1fr); align-items: center; overflow: hidden; }
  #anomalyScreen .anomaly-art { height: 146px; }
  #anomalyScreen .anomaly-art img { top: 0; right: -40%; bottom: auto; left: -40%; width: 180%; height: 142%; object-position: center top; }
  #anomalyScreen .anomaly-sidebar-copy { align-self: center; margin: 12px 12px 12px -16px; padding: 12px 13px; }
  #anomalyScreen .anomaly-sidebar-copy .eyebrow { font-size: 6px; letter-spacing: 1.7px; }
  #anomalyScreen .anomaly-sidebar-copy h2 { margin: 8px 0 0; font-size: 19px; }
  #anomalyScreen .anomaly-sidebar-copy h2 br { display: none; }
  #anomalyScreen .anomaly-sidebar-index { display: none; }
  #anomalyScreen .anomaly-side-stats, #anomalyScreen .anomaly-rhine { display: none; }
  .anomaly-workspace { padding: 22px; }
  .anomaly-meta { align-items: center; margin-bottom: 12px; }
  /* 移动端操作按钮去英文副标、收窄，避免两行文字撑高元信息行 */
  .anomaly-meta .protocol-switch { min-height: 32px; padding: 0 10px; }
  .anomaly-meta .protocol-switch i { display: none; }
  .anomaly-meta .protocol-switch span { white-space: nowrap; }
  /* 首屏紧凑化：让第一个候选干员完整落入首屏 */
  .anomaly-scope { margin-bottom: 12px; padding: 8px 11px; gap: 8px 12px; }
  .anomaly-scope-head { padding-bottom: 5px; }
  .anomaly-options { margin-top: 14px; }
  .anomaly-question-head { gap: 3px 12px; }
  .anomaly-scope { grid-template-columns: 1fr; margin-top: -4px; }
  .anomaly-scope-head { min-width: 0; padding: 0 0 8px; border-right: 0; border-bottom: 1px solid rgba(var(--accent-rgb),.2); }
  .anomaly-theme-layout { grid-template-columns: 1fr; }
  .anomaly-theme-details { height: 420px; }
  .anomaly-theme-detail-list { max-height: 300px; }
  .anomaly-theme-actions { align-items: stretch; flex-direction: column; }
  .anomaly-theme-actions .anomaly-confirm { width: 100%; }
  .anomaly-actionbar { flex-wrap: wrap; }
  .anomaly-difficulty-badge { margin-left: 0; }
  .anomaly-timer { margin-left: auto; }
  .anomaly-status { flex-basis: 100%; order: 3; min-height: 16px; text-align: left; }
  .anomaly-scan { flex: 1 1 46%; }
  .anomaly-confirm { flex: 1 1 46%; min-width: 0; }
  .anomaly-option-art { height: 176px; }
  .anomaly-review-head { align-items: flex-start; flex-direction: column; }
  .anomaly-summary-inner { max-width: none; }
  .anomaly-summary-mlyss { right: -26%; opacity: .3; }
  .anomaly-summary-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .anomaly-summary-domains li { grid-template-columns: 64px minmax(0,1fr) 84px; gap: 9px; }
  .anomaly-summary-actions { flex-direction: column; }
  .anomaly-summary-actions button { width: 100%; }
  .anomaly-error-actions { flex-direction: column; }
}
@media (max-width: 560px) {
  .mode-card, .mode-anomaly { padding-right: 42%; }
  .anomaly-options { grid-template-columns: 1fr; }
  .anomaly-theme-select { padding: 20px 14px; }
  .anomaly-theme-card { min-height: 54px; }
  .anomaly-theme-details { height: auto; max-height: 430px; }
  .anomaly-theme-detail-list { max-height: 304px; }
  .anomaly-option { display: grid; grid-template-columns: 100px minmax(0,1fr); align-items: stretch; }
  .anomaly-option-art { grid-row: 1 / -1; height: auto; min-height: 100px; border-right: 1px solid var(--line); border-bottom: 0; }
  .anomaly-option-art img { inset: 4px -22% 0; width: 144%; }
}
@media (max-width: 460px) {
  .anomaly-workspace { padding: 18px 14px; }
  .anomaly-console { padding: 18px 14px; }
  .anomaly-hint { align-items: flex-start; flex-direction: column; gap: 8px; }
  .anomaly-actionbar { flex-direction: column; align-items: stretch; }
  .anomaly-scan, .anomaly-confirm { width: 100%; }
  .anomaly-rating { gap: 14px; }
  .anomaly-rating-letter { width: 72px; height: 72px; font-size: 40px; }
  .anomaly-point.is-total { margin-left: 0; flex: 1; }
  .anomaly-side-stats { gap: 6px; }
  .anomaly-side-stats p { padding: 8px 7px; }
}
