@font-face{font-family:IdolSans;src:url('assets/idol-sans-v1.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:IdolSerif;src:url('assets/idol-serif-v1.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{--ink:#203331;--deep:#142a29;--paper:#eee7d7;--paper-light:#f6f0e4;--muted:#777768;--gold:#c3a65e;--gold-light:#e4ce91;--red:#9e4936;--line:rgba(47,64,55,.19);--top:64px;--bottom:56px;--sans:IdolSans,'Noto Sans SC','Microsoft YaHei',sans-serif;--serif:IdolSerif,'Noto Serif SC','Songti SC',serif}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0}html{background:var(--deep);color:var(--ink);font-family:var(--sans);font-size:16px}body{overflow:hidden}button,a,input{font:inherit}button{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;border:0;border-radius:0}button:disabled{cursor:default}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #d9b859;outline-offset:4px}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}h1,h2,h3,p{margin:0}button,button span,a{touch-action:manipulation}img{max-width:100%;display:block}em{font-style:normal}::selection{background:#d9c28a;color:var(--deep)}#app{height:100%;height:100dvh;min-height:240px;position:relative;overflow:hidden;isolation:isolate}.eyebrow{display:block;font-size:10px;letter-spacing:.23em;line-height:1.5;font-weight:650}
/* The picture remains one fixed moment; only the camera can move. */
#scene{position:absolute;inset:var(--top) 0 var(--bottom);overflow:hidden;background:#152624}#scene-viewport{position:absolute;inset:0;overflow:hidden;touch-action:pan-y;cursor:grab}#scene-viewport:active{cursor:grabbing}#scene-world{position:absolute;inset:0 auto auto 0;will-change:left;width:100%;height:100%}#scene-image{width:100%;height:100%;max-width:none;object-fit:fill;user-select:none;-webkit-user-drag:none;pointer-events:none}#hotspots{position:absolute;inset:0}.lamp-glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 49% 10%,rgba(255,206,115,.07),transparent 34%);mix-blend-mode:screen}.scene-caption{position:absolute;z-index:2;left:24px;top:22px;pointer-events:none;color:#ede5d5;text-shadow:0 2px 7px #112321}.scene-caption .eyebrow{color:#dccb9e;font-size:10px}.scene-caption p{font-family:var(--serif);font-size:14px;letter-spacing:.035em;margin-top:6px}.scene-caption button{pointer-events:auto;margin-top:12px;background:rgba(19,38,36,.76);color:#d9d8c7;padding:9px 12px;border:1px solid rgba(218,205,166,.28);font-size:11px;min-height:36px}.scene-caption button span{margin-left:12px;font-size:9px;color:#c5b891;border:1px solid #736f54;padding:2px 5px}#pan-hint{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);z-index:3;white-space:nowrap;color:#e5dcc3;background:rgba(19,38,36,.88);font-size:11px;letter-spacing:.08em;padding:10px 16px;pointer-events:none}
.hotspot{position:absolute;z-index:2;min-width:44px;min-height:44px;padding:0;background:none;border:1px solid transparent;border-radius:3px;display:flex;align-items:center;justify-content:center;touch-action:manipulation}.hotspot:hover,.hotspot:focus-visible{background:rgba(236,216,155,.06);border-color:rgba(232,202,122,.45)}.spot-dot{position:absolute;width:13px;height:13px;border:1px solid #ead69d;border-radius:50%;background:#283c34;box-shadow:0 0 0 3px rgba(24,42,36,.45),0 1px 8px #17221a;opacity:.78;transition:opacity .18s,box-shadow .18s}.spot-dot:after{content:'';position:absolute;inset:3px;background:#d9bd74;border-radius:50%}.spot-label{position:absolute;left:50%;top:calc(50% + 16px);transform:translateX(-50%);background:rgba(20,39,35,.94);border:1px solid rgba(225,197,124,.55);color:#f1e6c8;padding:7px 12px;font-size:12px;line-height:1.35;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .16s;box-shadow:0 3px 10px #132a2966}.hotspot:hover .spot-label,.hotspot:focus-visible .spot-label,.is-revealed .spot-label,.reveal-hotspots .spot-label{opacity:1}.is-revealed .spot-dot,.reveal-hotspots .spot-dot,.hotspot:hover .spot-dot{opacity:1;box-shadow:0 0 0 5px rgba(234,214,157,.15),0 1px 8px #17221a}.hotspot.visited .spot-dot:after,.hotspot.is-visited .spot-dot:after{background:#a6b9a1}.hotspot.visited .spot-dot,.hotspot.is-visited .spot-dot{border-color:#b2c2aa}.hotspot.visited .spot-label:after,.hotspot.is-visited .spot-label:after{content:' · 已查';font-size:10px;color:#b6c2a8}
/* Quiet, compact frame around the investigation. */
#topbar{position:absolute;inset:0 0 auto;z-index:20;height:var(--top);background:var(--deep);border-bottom:1px solid #4b5140;color:#e9e3d2;display:flex;align-items:center;justify-content:space-between;padding:0 22px;gap:20px}.case-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;min-width:186px}.seal{display:grid;place-items:center;flex:none;width:31px;height:34px;color:#dbb99c;border:1px solid #ac6e52;font-family:var(--serif);font-size:22px;box-shadow:inset 0 0 0 3px var(--deep),inset 0 0 0 4px #ac6e5266}.case-brand small{font-size:9px;letter-spacing:.13em;display:block;color:#b2b9a7;line-height:1.5}.case-brand strong{display:block;font-family:var(--serif);font-size:17px;font-weight:650;letter-spacing:.08em;line-height:1.55}.mode-tabs{height:100%;display:flex;align-items:stretch;gap:8px}.mode-tabs button{position:relative;min-height:44px;padding:0 23px;font-size:13px;letter-spacing:.04em;background:transparent;color:#aeb9aa;white-space:nowrap}.mode-tabs button:after{content:'';position:absolute;height:2px;bottom:0;left:14px;right:14px;background:transparent}.mode-tabs button.active{color:#eddbab;background:linear-gradient(0deg,rgba(201,175,108,.08),transparent)}.mode-tabs button.active:after{background:var(--gold)}.mode-tabs button:hover{color:#e8dbb8}.mode-tabs i{font-style:normal;font-size:9px;margin-left:9px;letter-spacing:.03em;color:#abb89e;white-space:nowrap}.top-tools{display:flex;gap:3px;align-items:center}.top-tools button{width:40px;height:44px;background:transparent;color:#c6c9b7;font-size:19px}.top-tools button:hover{background:#ffffff0c;color:#eddbab}#hint-btn{font-family:var(--serif);font-weight:600}#menu-btn{font-size:18px}.top-tools button[aria-pressed=true]{color:var(--gold-light)}#bottom-bar{position:absolute;inset:auto 0 0;z-index:20;height:var(--bottom);background:var(--deep);border-top:1px solid #4b5140;color:#d2d5c3;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 24px;font-size:11px}.investigation-status{display:flex;align-items:center;gap:14px;white-space:nowrap}.investigation-status b{font-weight:500;color:#d8bd7f}.footer-divider{color:#727e68}#footer-tip{color:#a4af9d;line-height:1.5;font-size:11px;text-align:center}#notebook-btn{background:transparent;color:#dfc88f;min-height:44px;padding:0 0 0 10px;font-size:12px;white-space:nowrap}#notebook-btn span{margin-left:17px;font-size:17px}
/* A narrow ink card opens onto the whole room. */
.on-title #scene{inset:0}.on-title #scene-viewport{cursor:default}.on-title #hotspots{pointer-events:none;opacity:0}#title-screen{position:absolute;inset:0;z-index:10;display:flex;align-items:center;padding:5.5vh 5.5vw;pointer-events:none;background:linear-gradient(90deg,rgba(12,29,27,.32),transparent 65%)}.title-panel{pointer-events:auto;width:min(350px,31vw);min-width:284px;padding:34px 34px 29px;background:rgba(18,40,37,.96);border:1px solid #9a8a5a;border-top:3px solid #b89c5b;box-shadow:0 20px 55px #101a174d;color:#ede7d8;position:relative}.title-panel:after{content:'';position:absolute;inset:9px;pointer-events:none;border:1px solid rgba(183,161,100,.2)}.title-panel>.eyebrow{color:#c5b783;font-size:10px;letter-spacing:.19em}.title-panel h1{font-family:var(--serif);font-size:clamp(43px,4.9vw,73px);line-height:1.23;letter-spacing:.09em;font-weight:650;margin:23px 0 22px}.title-panel h1 em{color:#d8bb75}.title-hook{font-family:var(--serif);font-size:14px;line-height:2;color:#c7cebc;letter-spacing:.07em}.primary{background:#d2b874;color:#1d322a;min-height:48px;padding:12px 18px;font-size:13px;font-weight:650;border:1px solid #dbc48f}.primary:hover{background:#e3ca8b}.title-panel .primary{display:flex;justify-content:space-between;align-items:center;width:100%;margin:27px 0 12px;position:relative;z-index:1}.title-panel .primary span{font-size:20px}.text-button{min-height:44px;background:transparent;color:var(--gold-light);font-size:12px}.title-panel .text-button{display:block;width:100%;margin-top:-6px}.title-note{display:block;font-size:10px;line-height:1.9;color:#99aa99;letter-spacing:.03em}.title-number{position:absolute;bottom:40px;right:40px;font-family:var(--serif);color:#e4d6b8;font-size:58px;font-weight:400;line-height:1;text-align:center;text-shadow:0 2px 12px #142522}.title-number span{display:block;font-family:var(--sans);font-size:9px;letter-spacing:.3em;margin-top:12px}
/* Evidence is a readable paper card at the edge of the scene. */
#inspection{position:absolute;z-index:25;right:22px;top:calc(var(--top) + 20px);bottom:calc(var(--bottom) + 20px);width:min(420px,42vw);display:flex;flex-direction:column;background:var(--paper);border:1px solid #a99e7c;box-shadow:0 14px 45px #0b17186b;isolation:isolate}.inspection-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 20px 15px;border-bottom:1px solid var(--line);flex:none;background:#f4eddf}.inspection-header .eyebrow{color:#877b57;font-size:9px;margin-bottom:4px}.inspection-header h2,.inspection-header h3{font-family:var(--serif);font-size:22px;letter-spacing:.06em;line-height:1.4;font-weight:650}.close-btn{width:44px;height:44px;flex:none;display:grid;place-items:center;background:transparent;color:#64715d;border:1px solid #c5c0a9;font-size:24px;font-weight:300}.close-btn:hover{background:#e4ddc9;color:var(--ink)}.inspection-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:20px;scrollbar-width:thin;scrollbar-color:#a4ab93 transparent}.exhibit-zoom{position:relative;overflow:hidden;aspect-ratio:16/10;min-height:130px;max-height:260px;background-color:#34443a;background-repeat:no-repeat;border:1px solid #67715c;margin:0 0 17px;box-shadow:0 2px 6px #283c251c}.exhibit-zoom img{width:100%;height:100%;object-fit:cover}.exhibit-zoom:after{content:'';position:absolute;inset:5px;border:1px solid #ebe0ae40;pointer-events:none}.clue-text{font-family:var(--sans);font-size:16px;line-height:1.95;color:#344137}.clue-text+p,.clue-text+.clue-text{margin-top:14px}.clue-text p+p{margin-top:12px}.keyword{font-family:inherit;font-size:inherit;font-weight:600;line-height:1.55;display:inline;background:#d8bf7b30;color:#7d551d;border-bottom:1px solid #aa813d;padding:2px 4px;margin:0 1px;box-decoration-break:clone;-webkit-box-decoration-break:clone;cursor:pointer}.keyword:hover{background:#d8bf7b69}.keyword.collected,.keyword[data-collected=true]{color:#3b6648;background:#c2cfb849;border-bottom-color:#8d9d7b}.keyword.collected:after{content:'✓';font-family:var(--sans);font-size:10px;margin-left:3px;color:#617c4b}.document{background:#f8f1df;border:1px solid #c8bb99;padding:20px 18px;margin:16px 0;box-shadow:2px 3px 0 #cfc4a666;font-family:var(--serif);font-size:16px;line-height:2;background-image:repeating-linear-gradient(transparent,transparent 31px,rgba(130,123,91,.09) 32px);background-position:0 10px}.document h3,.document h4{font-size:17px;font-weight:650;letter-spacing:.18em;text-align:center;margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid #a7946855}.document p+p{margin-top:12px}.document small{color:#7d7965;font-size:12px}.source-note{font-size:11px;line-height:1.8;color:#85826e;border-top:1px solid var(--line);padding-top:12px;margin-top:18px}.inspection-actions{flex:none;border-top:1px solid var(--line);padding:13px 20px;background:#e5decd;display:flex;align-items:center;justify-content:space-between;gap:12px}.inspection-actions button{min-height:44px;padding:10px 16px;background:var(--deep);color:#e8dec4;font-size:12px}.inspection-actions small,.inspection-actions p{font-size:11px;line-height:1.6;color:#727964}.inspection-actions .text-button{background:transparent;color:#67715d;padding:8px}.drawer{margin:16px 0}.drawer-handle{width:100%;min-height:62px;background:linear-gradient(#805a34,#533c28);border:1px solid #3a3026;border-bottom:4px solid #392e21;color:#e7cba1;font-family:var(--serif);font-size:16px;letter-spacing:.15em;box-shadow:inset 0 0 0 6px #30261b22;position:relative}.drawer-handle:after{content:'↓';float:right;margin-right:6px;color:#d2b57c}.drawer.open .drawer-handle:after{content:'↑'}.drawer-contents{display:none;padding:12px;background:#3a3428;box-shadow:inset 0 8px 12px #201b1766;border:1px solid #3a3026}.drawer.open .drawer-contents{display:block}.drawer-contents img{width:100%;max-height:210px;object-fit:contain}.drawer-contents p{color:#e4d6b8;line-height:1.8;font-size:14px;margin-top:10px}.cloth-compare{display:flex;gap:10px;min-height:125px;margin:16px 0;padding:18px 14px;background:#d1ccb9;border:1px solid #a8ac93}.cloth-half{flex:1;display:grid;place-items:center;background:#3a4b42;color:#d8d8bb;min-height:105px;font-size:12px;background-image:repeating-linear-gradient(0deg,transparent,transparent 3px,#e5dbad0a 4px),repeating-linear-gradient(90deg,transparent,transparent 3px,#e5dbad09 4px)}.cloth-half.torn{clip-path:polygon(0 0,95% 0,87% 12%,100% 20%,84% 32%,97% 42%,85% 54%,98% 67%,86% 80%,96% 91%,88% 100%,0 100%)}.cloth-half+.cloth-half.torn{clip-path:polygon(10% 0,100% 0,100% 100%,3% 100%,12% 91%,1% 80%,14% 67%,2% 54%,15% 42%,3% 32%,16% 20%,3% 12%)}
/* The deduction surface is a dossier, with its word slips in normal flow. */
#deduction{position:absolute;inset:var(--top) 0 var(--bottom);z-index:12;overflow-y:auto;overscroll-behavior:contain;padding:30px clamp(22px,4.2vw,76px) 25px;background-color:#dedcc9;background-image:radial-gradient(ellipse at 50% 0,#f1ead9a6,transparent 70%),repeating-linear-gradient(0deg,transparent,transparent 3px,#50644a03 4px);scrollbar-color:#919d82 #d5d8c5;scrollbar-width:thin}.deduction-heading{max-width:1270px;margin:0 auto 25px;position:relative;padding-left:18px;border-left:3px solid #a15a41}.deduction-heading .eyebrow{font-size:9px;color:#8c784d}.deduction-heading h2{font-family:var(--serif);font-size:clamp(22px,2.2vw,31px);letter-spacing:.05em;font-weight:650;margin:5px 0 7px;line-height:1.4}.deduction-heading p{font-size:11px;color:#78816a;line-height:1.7}.board-content{max-width:1270px;margin:auto;display:grid;grid-template-columns:minmax(340px,.96fr) minmax(420px,1.13fr);align-items:stretch;gap:24px}.deduction-group{min-width:0;position:relative}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px;min-height:44px}.section-heading h3{font-family:var(--serif);font-size:18px;font-weight:650;letter-spacing:.075em;display:flex;align-items:center;gap:10px;white-space:nowrap}.section-heading h3 span{display:inline-grid;place-items:center;width:27px;height:29px;color:#9a4f3a;border:1px solid #a2634b;font-size:17px;line-height:1}.check-btn{min-height:38px;padding:8px 13px;background:transparent;border:1px solid #7e8c72;color:#3f5a42;font-size:11px;white-space:nowrap}.check-btn:hover{background:#c4ceb666}.solved .check-btn{background:#45654d;color:#f3edd5;border-color:#45654d}.solved .section-heading h3 span{border-color:#557854;color:#446a49}.group-feedback{font-size:11px;line-height:1.7;color:#926045;min-height:24px;margin:9px 0 0}.solved .group-feedback{color:#496c43}#identity-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.identity-card{background:#eee7d5;padding:6px 6px 12px;border:1px solid #b5b39a;box-shadow:2px 3px 0 #abb19640;min-width:0}.identity-card:nth-child(2){transform:rotate(-1deg)}.identity-card:first-child{transform:rotate(.5deg)}.identity-card:nth-child(3){transform:rotate(.7deg)}.portrait{width:100%;aspect-ratio:4/4.5;background-color:#65715c;background-image:url('assets/scene-v1.webp');background-repeat:no-repeat;border:1px solid #818b72;filter:saturate(.76);position:relative;overflow:hidden}.portrait:after{content:'';position:absolute;inset:5px;border:1px solid #d9d3a533;pointer-events:none}.portrait.woman{background-size:430%;background-position:10% 40%}.portrait.victim{background-size:430%;background-position:53% 65%}.portrait.clerk{background-size:430%;background-position:86% 38%}.identity-caption{text-align:center;padding:11px 2px 0}.identity-caption p,.identity-caption>small{font-size:10px;color:#7b826d;line-height:1.6;display:block;margin-bottom:7px}.identity-caption h4{margin:0 0 8px;font-family:var(--serif);font-size:13px;font-weight:500}.slot{display:inline-flex;align-items:center;justify-content:center;vertical-align:baseline;position:relative;background:#f5f0df;border:0;border-bottom:1px dashed #728565;color:#92977d;padding:5px 9px;min-height:41px;min-width:80px;font-family:var(--serif);font-size:16px;line-height:1.3;white-space:nowrap;margin:3px 3px;box-shadow:inset 0 -4px 0 #d1d8bf44}.slot:hover{background:#e9e4c7;color:#4a5f3c}.slot.selected{background:#e6d59f;border-bottom:2px solid #9b6d2d;box-shadow:0 0 0 2px #bb965e33;color:#76501e}.slot.filled{color:#34553b;background:#e5e8d4;border-bottom-style:solid;font-weight:600}.slot.filled.selected{color:#76501e;background:#e6d59f}.slot.locked{background:#d3dfc8;color:#355f3c;border-bottom:1px solid #718b66;cursor:default}.slot.locked:after{content:'✓';font-family:var(--sans);font-size:9px;margin-left:5px}.slot.drag-over{outline:2px solid #a27d32;background:#e9dcae}.identity-caption .slot{width:calc(100% - 6px);min-width:0;font-size:15px;min-height:44px;padding:6px}.event-paper{position:relative;background:#f0eada;border:1px solid #c0bba3;padding:23px 24px 24px;box-shadow:3px 4px 0 #abb19640;min-height:245px;background-image:repeating-linear-gradient(transparent,transparent 45px,#aba8851c 46px);background-position:0 51px}.event-paper:before{content:'';position:absolute;top:-1px;right:20px;width:39px;height:10px;background:#b7a97b5e;border-bottom:1px solid #a5986b44}.case-number{display:block;color:#8b8267;font-size:9px;letter-spacing:.14em;margin-bottom:17px}#event-sentence{font-family:var(--serif);font-size:17px;line-height:2.85;letter-spacing:.015em}#event-sentence p+p{margin-top:12px}#word-bank{max-width:1270px;margin:17px auto 0;position:relative;border-top:1px solid #a5ab92;padding:18px 0 2px}.bank-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:11px}.bank-heading b{font-size:12px;letter-spacing:.06em;font-weight:600}.bank-heading b span{font-size:10px;color:#7f845f;margin-left:7px}#slot-help{font-size:11px;color:#7d8269}.bank-heading:before{content:'';display:none}#bank-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}.bank-filter{font-size:10px;padding:7px 12px;min-height:33px;color:#7a836b;background:transparent;border:1px solid transparent}.bank-filter.active{color:#314d37;border-color:#9aa789;background:#c8d1b662}.bank-filter:hover{background:#cad2b662}#bank-words{display:flex;align-items:center;flex-wrap:wrap;gap:9px;min-height:46px}.bank-word{position:relative;min-height:42px;padding:9px 17px;color:#42583d;background:#f0ead9;border:1px solid #bdbea4;box-shadow:1px 2px 0 #a8ad912e;font-family:var(--serif);font-size:15px;cursor:grab;white-space:nowrap}.bank-word:hover{border-color:#7a8c65;background:#f7f1df}.bank-word:active{cursor:grabbing}.bank-word.selected{background:#dfca90;border-color:#a88942;color:#614a1e;box-shadow:0 0 0 2px #b58a3130}.bank-word.used{color:#7c876d;border-color:#c2c6ad}.bank-word small{font-family:var(--sans);font-size:9px;margin-left:7px;color:#7e886b}#bank-words>p,.bank-empty{font-size:12px;line-height:1.8;color:#879076;padding:10px 0}#word-source{font-size:11px;line-height:1.7;color:#697b5b;padding:12px 0 0}#word-source button{background:transparent;color:#926c2a;border-bottom:1px solid #b2945c;padding:4px;min-height:36px}.on-board #notebook-btn{color:#a4ae98}.on-board #scene{visibility:hidden}
/* Modals share the evidence paper, without overpowering the room. */
#modal-layer{position:absolute;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:24px}#modal-backdrop{position:absolute;inset:0;background:#0c201cba;backdrop-filter:blur(3px)}#modal{position:relative;width:min(540px,100%);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;background:var(--paper);border:1px solid #b7a575;box-shadow:0 24px 80px #08181288;outline:none}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 24px 16px;border-bottom:1px solid var(--line)}.modal-header h2{font-family:var(--serif);font-size:24px;letter-spacing:.06em;line-height:1.4;font-weight:650}.modal-header .eyebrow{color:#887b54;margin-bottom:5px}.modal-body{overflow-y:auto;min-height:0;padding:24px;font-size:15px;line-height:1.9;scrollbar-width:thin;scrollbar-color:#a4ab93 transparent}.modal-body>p+p{margin-top:14px}.modal-body h3{font-family:var(--serif);font-size:19px;line-height:1.6;margin:17px 0 9px}.modal-body small{color:#7f846e;font-size:11px}.modal-actions{border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px;align-items:center;padding:14px 24px;flex:none}.modal-actions button{min-height:44px;padding:10px 17px;font-size:12px;background:#dcdac7;color:#415840}.modal-actions .primary{background:var(--deep);color:#e7d7ab;border-color:#27463e}.modal-actions .text-button{background:transparent;color:#6b755c}.tutorial-steps{display:grid;gap:15px;list-style:none;counter-reset:steps;padding:0;margin:0}.tutorial-steps li{counter-increment:steps;position:relative;padding-left:40px;font-size:14px;line-height:1.8}.tutorial-steps li:before{content:counter(steps,decimal-leading-zero);position:absolute;left:0;top:2px;color:#9d6545;font-size:12px;font-family:var(--serif);border-bottom:1px solid #b89c6a;width:25px;text-align:center}.tutorial-steps strong{display:block;color:#314b36;font-size:15px;font-weight:600}.tutorial-steps p{color:#7b816c;font-size:12px}.hint-card,.source-card{background:#e6dfcd;border:1px solid #bfb99d;padding:17px 19px;margin:14px 0;font-size:14px;line-height:1.85}.hint-card{border-left:3px solid #ac8955}.hint-card .eyebrow,.source-card .eyebrow{color:#8b794f;margin-bottom:8px}.source-card h3{margin-top:0}.source-card button,.hint-card button{min-height:44px;padding:10px 14px;margin-top:10px;background:var(--deep);color:#e7d7ab;font-size:12px}.ending-title{font-family:var(--serif);color:#36553b;text-align:center;font-size:30px;letter-spacing:.13em;line-height:1.5;margin:6px 0 17px}.ending-title:before{content:'案情已明';display:block;width:max-content;margin:0 auto 17px;border:1px solid #a35b43;color:#9e4936;padding:5px 12px;font-family:var(--serif);font-size:12px;letter-spacing:.19em;transform:rotate(-4deg)}.ending-chain{display:grid;gap:10px;border-left:1px solid #a1ab8b;margin:22px 0 8px 8px;padding-left:20px}.ending-chain>div,.ending-chain>p,.ending-chain>li{position:relative;font-size:14px;line-height:1.9}.ending-chain>div:before,.ending-chain>p:before,.ending-chain>li:before{content:'';position:absolute;width:7px;height:7px;left:-24px;top:10px;background:#6e855e;border:2px solid var(--paper);outline:1px solid #7e916b}.ending-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:21px}.ending-actions button{min-height:44px;padding:10px 16px;background:var(--deep);color:#e5d7b6;font-size:12px}.ending-actions button+button{background:#d7d9c4;color:#4c6346}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--line)}.setting-row button{min-height:44px;min-width:65px;background:#cbd4bb;color:#36593e;font-size:12px}.danger-btn{background:transparent!important;color:#9b513b!important;border:1px solid #ba977c!important}.modal-body a{color:#82632e;text-underline-offset:4px}#toast{position:absolute;z-index:80;bottom:calc(var(--bottom) + 19px);left:50%;transform:translate(-50%,8px);max-width:calc(100% - 32px);padding:11px 20px;background:#172e28f2;color:#f0dfaf;border:1px solid #b29a5d;font-size:12px;line-height:1.6;box-shadow:0 8px 24px #0c1d1a40;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;text-align:center}#toast.show,#toast.visible,#toast.is-visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1500px){.title-panel{width:370px;padding:39px 40px 34px}.scene-caption{left:32px;top:27px}.portrait{aspect-ratio:1/1.05}.event-paper{min-height:280px}#deduction{padding-top:37px}.board-content{gap:33px}.modal-body{font-size:16px}}
@media(max-width:1050px){#topbar{padding:0 16px;gap:12px}.case-brand{min-width:165px}.mode-tabs{gap:0}.mode-tabs button{padding:0 15px}.top-tools{gap:0}#bottom-bar{padding:0 18px;gap:14px}#footer-tip{font-size:10px}.board-content{grid-template-columns:minmax(300px,.95fr) minmax(340px,1.1fr);gap:19px}#deduction{padding:23px 25px 22px}.event-paper{padding:20px 18px}#event-sentence{font-size:16px}.identity-caption .slot{font-size:14px}.scene-caption p{font-size:12px}.title-panel{min-width:270px;padding:28px 29px 24px}.title-panel h1{font-size:55px;margin:20px 0 17px}.title-hook{font-size:13px}.title-panel .primary{margin-top:23px}}
@media(max-width:760px) and (min-height:501px){:root{--top:104px;--bottom:56px}#topbar{display:grid;grid-template-columns:1fr auto;grid-template-rows:56px 48px;gap:0;padding:0 16px}.case-brand{min-width:0;align-self:center;gap:8px}.case-brand small{font-size:8px}.case-brand strong{font-size:16px}.seal{width:28px;height:31px;font-size:20px}.mode-tabs{grid-column:1/-1;grid-row:2;height:48px;justify-content:center;gap:0;border-top:1px solid #ffffff0b}.mode-tabs button{flex:1;font-size:12px;padding:0 15px}.mode-tabs button:after{left:0;right:0}.top-tools{grid-column:2;grid-row:1}.top-tools button{width:39px}.scene-caption{top:18px;left:17px;right:17px}.scene-caption p{font-size:12px}.scene-caption button{font-size:10px;min-height:34px;margin-top:10px}.scene-caption button span{display:none}#bottom-bar{padding:0 16px;gap:10px}.investigation-status{gap:9px;font-size:10px}#footer-tip{display:none}#notebook-btn{font-size:11px}#notebook-btn span{margin-left:8px}#inspection{left:0;right:0;top:auto;bottom:var(--bottom);width:100%;max-height:min(75dvh,calc(100dvh - var(--top) - var(--bottom) - 12px));border-bottom:0;border-left:0;border-right:0;box-shadow:0 -8px 34px #10261f66}.inspection-header{padding:12px 19px}.inspection-header h2,.inspection-header h3{font-size:21px}.inspection-body{padding:17px 20px}.inspection-actions{padding:10px 20px}.exhibit-zoom{max-height:200px;aspect-ratio:16/8}.title-panel{width:280px;min-width:0;padding:27px 27px 24px;margin-top:0}.title-panel h1{font-size:58px}.title-hook{font-size:13px}.title-panel .primary{margin:24px 0 12px}#title-screen{padding:6vh 7vw;align-items:center}.title-number{font-size:43px;bottom:24px;right:24px}.title-number span{font-size:8px}.board-content{grid-template-columns:1fr;gap:20px;max-width:540px}#deduction{padding:21px 18px 28px}.deduction-heading{max-width:540px;margin-bottom:17px;padding-left:13px}.deduction-heading h2{font-size:23px}.deduction-heading p{font-size:10px}.section-heading{margin-bottom:10px}.section-heading h3{font-size:17px}.check-btn{min-height:40px;font-size:10px}#identity-cards{gap:9px}.identity-card{padding:5px 5px 9px}.portrait{aspect-ratio:4/4.2}.identity-caption{padding:9px 0 0}.identity-caption .slot{font-size:14px}.identity-caption p,.identity-caption>small{font-size:9px}.group-feedback{margin-top:8px;min-height:18px}.event-paper{min-height:0;padding:19px 16px 23px}#event-sentence{font-size:16px;line-height:2.8}.slot{min-width:73px;min-height:42px;padding:5px 8px;font-size:16px;margin:2px}.case-number{margin-bottom:10px}#word-bank{max-width:540px;margin-top:20px;padding-top:18px}.bank-heading{align-items:flex-start;gap:8px;flex-wrap:wrap}.bank-heading b{font-size:11px}#slot-help{font-size:10px}#bank-tabs{gap:2px;margin-bottom:9px}.bank-filter{min-height:38px;font-size:10px;padding:8px 10px}#bank-words{gap:8px}.bank-word{min-height:44px;padding:10px 13px;font-size:14px}#modal-layer{padding:18px}#modal{max-height:calc(100dvh - 36px)}.modal-header{padding:15px 19px}.modal-header h2{font-size:22px}.modal-body{padding:19px;font-size:15px}.modal-actions{padding:12px 19px}.ending-title{font-size:26px}#toast{bottom:calc(var(--bottom) + 12px);font-size:11px;min-width:190px}}
/* Landscape phones scroll within each paper surface; no fixed word bag covers clues. */
@media(max-height:500px){:root{--top:54px;--bottom:46px}#topbar{padding:0 15px;gap:12px}.case-brand{min-width:153px;gap:8px}.seal{width:25px;height:29px;font-size:20px}.case-brand small{font-size:8px}.case-brand strong{font-size:15px}.mode-tabs{gap:0}.mode-tabs button{padding:0 15px;font-size:11px}.mode-tabs i{font-size:8px;margin-left:7px}.top-tools button{width:35px;height:44px;font-size:18px}#bottom-bar{padding:0 17px;gap:15px;font-size:10px}#footer-tip{font-size:9px}#notebook-btn{font-size:10px;min-height:44px}#notebook-btn span{margin-left:10px;font-size:15px}.investigation-status{gap:9px}.scene-caption{top:13px;left:17px;max-width:44vw}.scene-caption .eyebrow{font-size:8px}.scene-caption p{font-size:10px;margin-top:4px}.scene-caption button{font-size:9px;padding:6px 9px;margin-top:8px;min-height:30px}.scene-caption button span{font-size:8px;padding:1px 4px;margin-left:7px}#pan-hint{font-size:9px;padding:7px 12px;bottom:9px}.spot-label{font-size:11px;padding:6px 9px}.title-panel{width:256px;min-width:0;padding:18px 22px 16px}.title-panel>.eyebrow{font-size:8px;letter-spacing:.15em}.title-panel h1{font-size:42px;line-height:1.15;margin:12px 0 11px}.title-hook{font-size:10px;line-height:1.8}.title-panel .primary{min-height:42px;margin:15px 0 9px;padding:9px 12px;font-size:11px}.title-panel .text-button{font-size:10px;min-height:31px;margin-top:-7px}.title-note{font-size:8px;line-height:1.7}#title-screen{padding:14px 5vw}.title-number{font-size:40px;right:23px;bottom:21px}.title-number span{font-size:8px;margin-top:8px}#inspection{top:calc(var(--top) + 10px);bottom:calc(var(--bottom) + 10px);right:12px;left:auto;width:min(430px,55vw);max-height:none}.inspection-header{padding:8px 13px;gap:10px}.inspection-header h2,.inspection-header h3{font-size:19px}.inspection-header .eyebrow{font-size:8px;margin-bottom:2px}.close-btn{width:44px;height:44px;font-size:22px}.inspection-body{padding:14px 16px}.clue-text{font-size:16px;line-height:1.85}.exhibit-zoom{aspect-ratio:16/7;max-height:170px;min-height:120px;margin-bottom:12px}.document{font-size:16px;padding:15px;margin:13px 0}.inspection-actions{padding:6px 13px;min-height:48px;gap:9px}.inspection-actions button{min-height:38px;padding:7px 12px;font-size:10px}.inspection-actions small,.inspection-actions p{font-size:9px}.source-note{font-size:10px}.drawer-handle{min-height:48px;font-size:14px}#deduction{padding:15px 23px 20px}.deduction-heading{padding-left:11px;margin-bottom:11px}.deduction-heading .eyebrow{font-size:8px}.deduction-heading h2{font-size:22px;margin:3px 0}.deduction-heading p{font-size:10px}.board-content{grid-template-columns:minmax(285px,.92fr) minmax(340px,1.1fr);gap:20px}.section-heading{min-height:39px;margin-bottom:8px}.section-heading h3{font-size:16px;gap:8px}.section-heading h3 span{width:23px;height:25px;font-size:15px}.check-btn{min-height:36px;font-size:10px;padding:8px 11px}#identity-cards{gap:8px}.identity-card{padding:4px 4px 8px}.portrait{aspect-ratio:1/.95;max-height:125px}.identity-caption{padding:7px 0 0}.identity-caption p,.identity-caption>small{font-size:9px;margin-bottom:3px}.identity-caption h4{font-size:11px;margin-bottom:4px}.identity-caption .slot{font-size:13px;min-height:40px}.event-paper{min-height:188px;padding:16px 14px}.case-number{font-size:8px;margin-bottom:7px}#event-sentence{font-size:15px;line-height:2.5}.slot{font-size:15px;min-height:39px;min-width:67px;padding:4px 7px;margin:2px}.group-feedback{font-size:10px;min-height:19px;margin-top:5px}#word-bank{margin-top:12px;padding-top:13px}.bank-heading{margin-bottom:8px}.bank-heading b{font-size:11px}#slot-help{font-size:10px}#bank-tabs{gap:2px;margin-bottom:8px}.bank-filter{min-height:34px;font-size:10px;padding:6px 10px}#bank-words{gap:7px}.bank-word{font-size:14px;min-height:40px;padding:8px 13px}#modal-layer{padding:13px}#modal{max-height:calc(100dvh - 26px);width:min(560px,100%)}.modal-header{padding:9px 18px}.modal-header h2{font-size:21px}.modal-header .eyebrow{font-size:8px}.modal-body{padding:16px 20px;font-size:15px}.modal-actions{padding:7px 18px}.modal-actions button{min-height:40px;font-size:11px}.tutorial-steps{gap:11px}.tutorial-steps li{font-size:13px}.ending-title{font-size:25px}.ending-title:before{margin-bottom:11px}#toast{bottom:calc(var(--bottom) + 10px);font-size:11px;padding:8px 15px}}
@media(max-width:680px) and (max-height:500px){#topbar{padding:0 10px;gap:6px}.case-brand{min-width:120px}.case-brand strong{font-size:13px}.case-brand small{font-size:7px}.seal{width:22px;height:26px;font-size:17px}.mode-tabs button{font-size:10px;padding:0 10px}.mode-tabs i{display:none}.top-tools button{width:32px}#footer-tip{display:none}#inspection{width:55vw}.board-content{grid-template-columns:1fr;max-width:520px}.portrait{aspect-ratio:1/.82;max-height:140px}.deduction-heading,#word-bank{max-width:520px}.title-panel{width:232px;padding:16px 19px}.title-panel h1{font-size:37px}.title-note{font-size:7px}.title-hook{font-size:9px}}
@media(max-width:350px) and (min-height:501px){#topbar{padding:0 11px}.top-tools button{width:33px}.case-brand strong{font-size:14px}.case-brand{gap:7px}.title-panel{width:255px;padding:23px}.title-panel h1{font-size:52px}.title-number{display:none}.deduction-heading h2{font-size:20px}#deduction{padding:18px 12px}.identity-caption .slot{font-size:12px}.bank-word{font-size:13px;padding:8px 11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}#scene-world{will-change:auto}}

/* Three case files, kept on the same dark green reading desk. */
#case-hub{position:absolute;inset:0;z-index:30;overflow:auto;overscroll-behavior:contain;padding:52px max(25px,5vw) 30px;color:#e8e3d3;background-color:#142b29;background-image:radial-gradient(ellipse at 50% 0,#38534577,transparent 65%),repeating-linear-gradient(0deg,transparent,transparent 3px,#e7d7a303 4px);scrollbar-width:thin;scrollbar-color:#7b8664 #142b29}
.hub-header{max-width:1260px;margin:0 auto 33px;position:relative;padding-right:170px}.hub-header>.eyebrow{color:#d0b674;font-size:12px;letter-spacing:.2em}.hub-header h1{font-family:var(--serif);font-weight:650;font-size:clamp(32px,3.6vw,52px);letter-spacing:.12em;line-height:1.45;margin:11px 0}.hub-header p{max-width:760px;font-size:16px;line-height:1.85;color:#b7c2ae}.hub-tools{position:absolute;right:0;top:4px;display:flex;gap:9px}.hub-tools button{min-width:44px;min-height:44px;padding:10px 14px;border:1px solid #8a906c;background:#203b34;color:#e2d1a1;font-size:14px}.hub-tools button:hover{background:#314c3c;border-color:#c4ac70}.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px;max-width:1260px;margin:0 auto}.case-card{position:relative;min-width:0;display:flex;flex-direction:column;border:1px solid #a59b72;background:#e9e3d1;color:var(--ink);box-shadow:0 12px 32px #071b1933}.case-card>img{width:100%;aspect-ratio:16/9;object-fit:cover;flex:none;border-bottom:1px solid #787c5c;filter:saturate(.84)}.case-card-body{position:relative;display:flex;flex-direction:column;flex:1;padding:25px 25px 23px;isolation:isolate}.case-num{position:absolute;z-index:-1;top:10px;right:20px;color:#76866b24;font-family:var(--serif);font-size:79px;line-height:1;letter-spacing:-.04em;pointer-events:none}.case-card-body>.eyebrow{font-size:12px;color:#927b4a;letter-spacing:.13em;margin-bottom:9px}.case-card h2{font-family:var(--serif);font-weight:650;font-size:27px;line-height:1.5;letter-spacing:.08em;margin-bottom:14px;position:relative}.case-card p{font-size:16px;line-height:1.9;color:#64725c;position:relative;flex:1}.case-progress{font-size:12px;color:#627454;border-top:1px solid #b3b99c;padding-top:15px;margin:21px 0 16px;letter-spacing:.03em;line-height:1.75}.case-card button.primary{width:100%;display:flex;align-items:center;justify-content:space-between;min-height:48px;background:#294b3b;border:1px solid #355941;color:#f0e4bc;font-size:14px;text-align:left;gap:12px}.case-card button.primary:hover{background:#365d44}.case-card button.primary:disabled{background:#9fa58a;color:#ebe9d9;border-color:#959d80}.case-card.completed{border-color:#bda665}.case-card.completed .case-progress{color:#3e6944}.hub-footer{max-width:1260px;margin:28px auto 0;padding-top:19px;border-top:1px solid #8f967c44;display:flex;justify-content:space-between;align-items:center;gap:14px;color:#97aa95;font-size:12px;line-height:1.8}.hub-footer small{font-size:12px}.hub-footer button{min-height:44px;background:transparent;color:#d7c492;font-size:14px;padding:8px 0}

/* Portrait poses change only when the player asks a question. */
.witness-block{display:grid;grid-template-columns:minmax(90px,118px) minmax(0,1fr);gap:14px;align-items:end;margin:2px 0 21px;padding-bottom:18px;border-bottom:1px solid var(--line)}.witness-portrait{--frame:0;aspect-ratio:508.25/773;width:100%;background-image:url('assets/portraits-v1.webp');background-size:400% 100%;background-position:calc(var(--frame) * 100% / 3) center;background-repeat:no-repeat;align-self:end;position:relative;opacity:1;transition:opacity .16s ease;pointer-events:none}.witness-portrait[data-frame="0"]{--frame:0}.witness-portrait[data-frame="1"]{--frame:1}.witness-portrait[data-frame="2"]{--frame:2}.witness-portrait[data-frame="3"]{--frame:3}.witness-portrait.state-change,.witness-portrait.is-changing,.witness-block.state-change .witness-portrait{opacity:.5}.speech-card{position:relative;min-width:0;align-self:center;background:#f7f0df;border:1px solid #c8bd9c;padding:15px 15px 13px;box-shadow:2px 3px 0 #c0b89933}.speech-card:before{content:'';position:absolute;left:-6px;top:33px;width:10px;height:10px;background:#f7f0df;border-left:1px solid #c8bd9c;border-bottom:1px solid #c8bd9c;transform:rotate(45deg)}.speech-card .eyebrow,.speech-card small{font-size:12px;color:#8a7c57}.speech-card h3{font-family:var(--serif);font-size:19px;line-height:1.5;margin:0 0 9px;font-weight:650}.speech-card p{font-size:16px;line-height:1.85;color:#40543e}.speech-card p+p{margin-top:10px}.speech-card button{min-height:44px;font-size:14px;margin-top:14px;padding:9px 11px;background:#345540;color:#eee1b9;border:1px solid #48654a;line-height:1.5;text-align:left}.speech-card button:hover{background:#42694a}.speech-card button:disabled{color:#839176;background:#e2e5cf;border-color:#b3bea0}
.evidence-sprite{width:100%;height:clamp(150px,23vh,230px);background-position:center;background-repeat:no-repeat;background-size:contain;display:block;position:relative}.evidence-sprite.lion{background-image:url('assets/lion-v1.webp')}.evidence-sprite.cuff{background-image:url('assets/cuff-v1.webp')}.evidence-sprite.scrap{background-image:url('assets/scrap-v1.webp')}.evidence-sprite:after{content:'';position:absolute;inset:auto 15% 3%;height:8px;background:#18251815;border-radius:50%;filter:blur(4px);z-index:-1}.cloth-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:14px;padding:15px 13px}.cloth-compare .evidence-sprite{height:160px;min-width:0}.cloth-compare .cloth-half{min-width:0;display:flex;flex-direction:column;justify-content:center;padding:8px;gap:8px;font-size:14px}.cloth-compare .cloth-half p,.cloth-compare figcaption{font-size:12px;line-height:1.7;text-align:center;color:#d8dcc5;margin:0}.cloth-compare .cloth-half:has(.evidence-sprite){background:#c5c7b1;clip-path:none}.cloth-compare .cloth-half:has(.evidence-sprite) p{color:#5c6d51}.drawer{display:flex;flex-direction:column;overflow:visible}.drawer-handle{order:0;transition:transform .18s ease,box-shadow .18s ease;position:relative;z-index:2;flex:none;min-height:52px;font-size:16px}.drawer-contents{order:1;position:relative;overflow:visible;background:#4c4432;padding:15px}.drawer.open .drawer-handle{order:2;transform:translateY(4px);box-shadow:0 5px 0 #30291e,0 9px 14px #24301e33;margin-bottom:9px}.drawer.open .drawer-contents{display:block;order:1;min-height:170px;border-bottom:0}.drawer-contents .evidence-sprite{height:190px}.drawer-contents img{max-height:220px;object-fit:contain}.drawer-contents .clue-text,.drawer-contents p{font-size:16px;line-height:1.9;color:#f0e6ca}.drawer-contents .keyword{color:#f0d88d;background:#dac18320;border-color:#c8ae64}.drawer-contents .keyword.collected{color:#d2deb9;background:#8ba27038;border-color:#a2b584}

/* Word origins remain available beside the collected slip. */
#word-source,.word-source{font-size:14px;line-height:1.85;color:#5d7051;border:1px solid #aeb99b;border-left:3px solid #8b9e75;background:#e8e8d3;padding:13px 16px;margin-top:14px}.word-source h3,#word-source h3{font-family:var(--serif);font-size:19px;margin:0 0 8px;color:#3c593b}.word-source p,#word-source p{font-size:16px;line-height:1.85}.word-source small,#word-source small{font-size:12px;color:#7f886c}.word-source strong,#word-source strong{color:#3d603d;font-weight:600}.word-source button,#word-source button{display:inline-flex;align-items:center;min-height:44px;font-size:14px;background:transparent;color:#846024;border:0;border-bottom:1px solid #ad955d;padding:8px 4px;margin-top:8px}.word-source .source-label,#word-source .source-label{display:block;font-size:12px;letter-spacing:.06em;color:#7f886c;margin-bottom:5px}

/* Readable type and comfortable targets apply after all viewport overrides. */
.primary,.text-button,.mode-tabs button,.check-btn,.bank-filter,.inspection-actions button,.modal-actions button,.ending-actions button,.source-card button,.hint-card button,.setting-row button,.scene-caption button,#notebook-btn,#word-source button{font-size:14px;min-height:44px}.top-tools button{min-width:44px;min-height:44px}.hotspot{min-width:44px;min-height:44px}.spot-label{font-size:13px;line-height:1.5}.clue-text,.document,.modal-body,.hint-card,.source-card,.tutorial-steps li,.tutorial-steps strong,.ending-chain>div,.ending-chain>p,.ending-chain>li,#event-sentence{font-size:16px}.slot,.identity-caption .slot,.bank-word{font-size:16px;min-height:44px}.title-hook{font-size:16px;line-height:1.9}.title-panel .primary,.title-panel .text-button{font-size:14px;min-height:44px}.title-note,.title-panel>.eyebrow,.eyebrow,.case-brand small,.mode-tabs i,.scene-caption .eyebrow,.scene-caption p,.scene-caption button span,#pan-hint,.source-note,.inspection-actions small,.inspection-actions p,.inspection-header .eyebrow,.deduction-heading .eyebrow,.deduction-heading p,.group-feedback,.identity-caption p,.identity-caption>small,.case-number,.bank-heading b,.bank-heading b span,#slot-help,.bank-word small,#bank-words>p,.bank-empty,.modal-body small,.modal-header .eyebrow,.tutorial-steps p,.ending-title:before,#footer-tip,#bottom-bar,.investigation-status,#toast{font-size:12px}.identity-caption h4{font-size:14px}.keyword.collected:after,.slot.locked:after{font-size:11px}.inspection-header h2,.inspection-header h3{font-size:23px}.section-heading h3{font-size:20px}.deduction-heading h2{font-size:clamp(25px,2.4vw,33px)}.modal-header h2{font-size:25px}.title-number span{font-size:12px}.bank-heading{gap:12px}.group-feedback{line-height:1.8}.identity-caption p,.identity-caption>small{line-height:1.6}.identity-caption .slot{padding-left:3px;padding-right:3px}.check-btn{padding:8px 12px}.scene-caption button span{padding:1px 4px}.scene-caption p{line-height:1.8}.title-panel{max-height:calc(100dvh - 40px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#7a8769 transparent}.on-hub #topbar,.on-hub #bottom-bar{visibility:hidden}
@media(max-width:1000px){#case-hub{padding-top:36px}.case-grid{gap:17px}.case-card-body{padding:21px 19px}.case-card h2{font-size:24px}.case-card p{font-size:16px}.case-num{font-size:66px;right:14px}.hub-header{margin-bottom:27px}.hub-header h1{font-size:39px}.mode-tabs button{padding-left:13px;padding-right:13px}.mode-tabs i{margin-left:6px}.top-tools button{width:44px}.case-brand{min-width:162px}}
@media(max-width:760px) and (min-height:501px){#case-hub{padding:29px 21px 25px}.hub-header{padding-right:0;margin-bottom:24px;padding-top:57px}.hub-header h1{font-size:37px;margin:9px 0 12px}.hub-header p{font-size:16px}.hub-tools{top:0;right:0}.case-grid{grid-template-columns:1fr;gap:24px;max-width:500px}.hub-header,.hub-footer{max-width:500px}.case-card-body{padding:25px}.case-card h2{font-size:28px}.case-num{font-size:83px;right:22px}.case-progress{margin-top:20px}.hub-footer{align-items:flex-start;flex-direction:column;gap:8px}.witness-block{grid-template-columns:112px minmax(0,1fr);gap:13px}.speech-card{padding:14px}.speech-card button{width:100%}.top-tools button{min-width:40px;width:40px}.case-brand{min-width:0}.mode-tabs button{font-size:14px}.mode-tabs i{font-size:12px}.deduction-heading h2{font-size:25px}.deduction-heading p{font-size:12px}.identity-caption p,.identity-caption>small{font-size:12px}.section-heading h3{font-size:19px}.identity-caption .slot{font-size:15px}.title-panel{width:290px}.title-panel h1{font-size:54px}.title-note{font-size:12px}.title-hook{font-size:16px}.inspection-header h2,.inspection-header h3{font-size:23px}.scene-caption button{font-size:14px}.bank-filter{padding:7px 9px}.bank-heading{align-items:center}#slot-help{line-height:1.7}.title-number{bottom:20px;right:17px}}
@media(max-height:500px){#case-hub{padding:22px 25px 22px}.hub-header{margin-bottom:22px;padding-right:150px}.hub-header h1{font-size:32px;margin:5px 0 7px}.hub-header p{font-size:16px;line-height:1.75}.hub-header>.eyebrow{font-size:12px}.case-grid{gap:17px}.case-card-body{padding:18px 16px}.case-card h2{font-size:23px;margin-bottom:10px}.case-card p{font-size:16px;line-height:1.8}.case-num{font-size:62px;right:12px;top:10px}.case-progress{font-size:12px;margin:17px 0 13px;padding-top:12px}.case-card button.primary{font-size:14px;min-height:44px;padding:9px 12px}.hub-footer{margin-top:23px;font-size:12px}.hub-tools button{font-size:14px}.witness-block{grid-template-columns:92px minmax(0,1fr);gap:13px;margin-bottom:17px}.speech-card{padding:13px}.speech-card p{font-size:16px}.speech-card h3{font-size:19px}.speech-card button{font-size:14px;min-height:44px;margin-top:10px}.witness-portrait{align-self:center}.evidence-sprite{height:170px}.drawer-contents .evidence-sprite{height:175px}.cloth-compare .evidence-sprite{height:140px}.mode-tabs button{font-size:14px;padding:0 13px}.mode-tabs i{font-size:12px}.case-brand strong{font-size:16px}.case-brand small{font-size:12px}.case-brand{min-width:158px}.top-tools button{width:44px;min-width:44px}.scene-caption p{font-size:12px}.scene-caption button{font-size:14px;min-height:44px;padding:7px 10px}.scene-caption button span{display:none}.scene-caption .eyebrow{font-size:12px}#notebook-btn{font-size:14px}#bottom-bar,.investigation-status{font-size:12px}#footer-tip{display:none}.inspection-header h2,.inspection-header h3{font-size:23px}.inspection-header .eyebrow{font-size:12px}.inspection-actions button{min-height:44px;font-size:14px}.inspection-actions small,.inspection-actions p{font-size:12px}.source-note{font-size:12px}.document,.clue-text{font-size:16px}.deduction-heading h2{font-size:25px}.deduction-heading .eyebrow,.deduction-heading p{font-size:12px}.section-heading h3{font-size:19px}.check-btn{min-height:44px;font-size:14px}.identity-caption p,.identity-caption>small{font-size:12px}.identity-caption h4{font-size:14px}.identity-caption .slot{min-height:44px;font-size:16px}.slot,#event-sentence{font-size:16px;min-height:44px}.case-number,.group-feedback{font-size:12px}.bank-heading b,.bank-heading b span,#slot-help{font-size:12px}.bank-filter{font-size:14px;min-height:44px}.bank-word{font-size:16px;min-height:44px}.modal-header h2{font-size:25px}.modal-body{font-size:16px}.modal-actions button{font-size:14px;min-height:44px}.tutorial-steps li{font-size:16px}.title-panel{width:286px;padding:17px 23px;max-height:calc(100dvh - 28px)}.title-panel>.eyebrow{font-size:12px}.title-panel h1{font-size:39px;margin:10px 0;line-height:1.15}.title-hook{font-size:16px;line-height:1.7}.title-panel .primary{font-size:14px;min-height:44px;margin:15px 0 10px}.title-panel .text-button{font-size:14px;min-height:44px}.title-note{font-size:12px;line-height:1.7}.spot-label{font-size:13px}#pan-hint,#toast{font-size:12px}}
@media(max-width:680px){.case-grid{grid-template-columns:1fr;max-width:500px}.hub-header,.hub-footer{max-width:500px}.hub-header{padding-right:0;padding-top:57px}.hub-tools{top:0}.case-card-body{padding:23px}.case-card h2{font-size:27px}.case-num{font-size:78px;right:20px}.hub-header h1{font-size:34px}.top-tools button{width:40px;min-width:40px}.mode-tabs button{padding-left:10px;padding-right:10px}.case-brand{min-width:130px}.case-brand strong{font-size:15px}.case-brand small{font-size:11px}.mode-tabs i{display:none}}
@media(max-width:370px) and (min-height:501px){.witness-block{grid-template-columns:85px minmax(0,1fr);gap:10px}.speech-card{padding:12px 11px}.top-tools button{width:37px;min-width:37px}.case-brand{min-width:0}.case-brand strong{font-size:14px}.case-brand small{font-size:11px}.identity-caption .slot{font-size:14px}.identity-caption p,.identity-caption>small{font-size:12px}.title-panel{width:274px;padding:24px}.title-panel h1{font-size:49px}.hub-header h1{font-size:31px}.case-card-body{padding:21px}.case-card h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){.witness-portrait,.drawer-handle{transition:none!important}.witness-portrait.state-change,.witness-portrait.is-changing,.witness-block.state-change .witness-portrait{opacity:1}}
.top-tools button{width:44px;min-width:44px;min-height:44px}.case-brand small{font-size:12px}

/* Screenshot review: clear hierarchy, readable prose, and an unobstructed cast. */
.hub-header{padding-right:340px}.hub-header h1 span{display:block;font-family:var(--serif);font-size:20px;line-height:1.7;letter-spacing:.08em;font-weight:500;color:#d2d8c3;margin-top:9px}.hub-header>div>.eyebrow{color:#d0b674;font-size:12px;letter-spacing:.17em}.case-num{position:static;display:block;inset:auto;z-index:auto;font-family:var(--sans);font-size:12px;line-height:1.7;letter-spacing:.09em;color:#8b7548;margin:0 0 11px;pointer-events:none}.case-card[data-number]:after{content:attr(data-number);position:absolute;bottom:117px;right:20px;font-family:var(--serif);font-size:93px;line-height:1;font-weight:500;color:#6e7e6312;pointer-events:none;z-index:0}.case-card-body{z-index:1}.case-card-body h2{margin-bottom:12px}.case-card-body p{font-family:var(--sans);font-weight:400;color:#59694e}.clue-text,.clue-text p,.document,.document p,.slot,.identity-caption .slot,.bank-word,#event-sentence,#event-sentence p,.speech-card p,.identity-caption p,.identity-caption small,.source-note,.source-card p,.hint-card p,.modal-body>p,.ending-chain,.ending-chain p,.ending-chain div{font-family:var(--sans);font-weight:400}.slot.filled,.slot.locked{font-weight:550}.clue-text,.speech-card p,.document,#event-sentence,.bank-word{color:#2f4735}.keyword{font-family:var(--sans);font-weight:600}.scene-caption{display:flex;align-items:center;gap:12px;left:18px;right:auto;top:8px;max-width:calc(100% - 36px);text-shadow:0 1px 3px #14221c;line-height:1.5}.scene-caption>.eyebrow{font-family:var(--sans);font-size:12px;letter-spacing:.06em;line-height:1.5;white-space:nowrap;color:#e5d8b6}.scene-caption>p{display:none}.scene-caption button{font-family:var(--sans);font-size:14px;line-height:1.4;min-height:44px;margin:0;padding:8px 11px;background:#182e27ad;border-color:#b7aa7c66;color:#e0d9bf;box-shadow:none;white-space:nowrap}.scene-caption button span{font-family:var(--sans);font-size:12px;margin-left:9px}.archive-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:15px;margin-top:21px}.archive-grid .source-card{margin:0;padding:19px 20px;background:#f0e9d8;border:1px solid #b7ba9e;border-left:3px solid #9c8c59}.archive-grid .source-card .eyebrow{font-size:12px;line-height:1.6;color:#8b7950;letter-spacing:.1em}.archive-grid .source-card h3{font-family:var(--serif);font-size:22px;line-height:1.5;margin:7px 0 9px;letter-spacing:.05em}.archive-grid .source-card p{font-family:var(--sans);font-size:16px;line-height:1.85;color:#52674a}.archive-grid .source-card button{display:inline-flex;align-items:center;min-height:44px;font-family:var(--sans);font-size:14px;margin-top:14px;padding:9px 15px;background:#345540;border:1px solid #48654a;color:#eee1b9}.archive-grid .source-card button:hover{background:#456a4a}#title-home,.title-home{display:block;position:relative;z-index:2;min-height:44px;width:100%;margin:6px 0 9px;padding:9px 12px;background:transparent;border:1px solid #7b886666;color:#c6d1b8;text-align:center;font-family:var(--sans);font-size:14px;line-height:1.5}#title-home:hover,.title-home:hover{background:#d5e1bb0c;border-color:#b09c64;color:#eee0b4}.reduced,.reduced *,.reduced:before,.reduced:after,.reduced *:before,.reduced *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reduced .witness-portrait.state-change,.reduced .witness-portrait.is-changing,.reduced .witness-block.state-change .witness-portrait{opacity:1}
@media(max-width:1000px){.hub-header{padding-right:0;padding-top:57px}.hub-tools{top:0;right:0}.hub-header h1 span{font-size:20px}.case-num{font-size:12px;right:auto}.scene-caption{top:7px;left:16px;max-width:calc(100% - 32px);gap:10px}}
@media(max-width:760px) and (min-height:501px){.hub-header h1 span{font-size:20px;letter-spacing:.04em;margin-top:7px}.case-num{font-size:12px}.scene-caption{gap:8px;left:12px;max-width:calc(100% - 24px)}.scene-caption>.eyebrow{font-size:12px;letter-spacing:0}.scene-caption button{font-size:14px;padding-left:8px;padding-right:8px}.scene-caption button span{display:none}.archive-grid{gap:13px}.archive-grid .source-card{padding:17px}.archive-grid .source-card h3{font-size:21px}}
@media(max-height:500px){.hub-header{padding-right:0;padding-top:52px}.hub-header h1 span{font-size:20px;margin-top:5px}.case-num{font-size:12px;line-height:1.7;inset:auto;margin-bottom:9px}.scene-caption{top:5px;left:14px;max-width:calc(100% - 28px);gap:10px}.scene-caption>.eyebrow{font-size:12px;letter-spacing:0}.scene-caption button{font-size:14px;min-height:44px;margin-top:0;padding:7px 10px}.scene-caption button span{display:none}.archive-grid{gap:13px;margin-top:17px}.archive-grid .source-card{padding:17px 18px}.archive-grid .source-card h3{font-size:21px}.archive-grid .source-card p{font-size:16px}.archive-grid .source-card button{font-size:14px;min-height:44px}.title-home,#title-home{font-size:14px;min-height:44px}}
@media(max-width:370px) and (min-height:501px){.scene-caption{gap:6px;left:10px;max-width:calc(100% - 20px)}.scene-caption>.eyebrow{max-width:130px;white-space:normal;line-height:1.45}.scene-caption button{font-size:14px;padding-left:7px;padding-right:7px}.hub-tools{gap:6px}.hub-tools button{font-size:14px;padding-left:10px;padding-right:10px}.case-num{font-size:12px}}
