@font-face{font-family:CaseSerif;src:url('../fonts/case.woff2') format('woff2');font-display:swap;font-weight:100 900}
:root{color-scheme:dark;--ink:#e7ede4;--muted:#a5b7b5;--paper:#182c31;--line:#496168;--accent:#d9b784;--red:#d18471;--safe:#b5d2b4;--ui:clamp(16px,1.25vw,20px);font-family:CaseSerif,"Microsoft YaHei",serif;font-size:var(--ui);background:#0b151c;color:var(--ink)}
*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid #6b8488;background:#213c42;padding:9px 16px;min-height:40px;line-height:1.3;border-radius:3px;touch-action:manipulation}button:hover{background:#34535a}button:disabled{opacity:.43;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:2px}button.primary{background:#bf9e6b;color:#14232b;border-color:#e0c28e;font-weight:700}button.selected{background:#59746a;border-color:#d1e0c6;box-shadow:inset 0 -3px #d1e0c6}button.complete{border-color:#8dae92;color:#badaad}button.danger{border-color:#b17566}
[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}p{line-height:1.75;margin-bottom:1em}h2{font-size:1.4rem;line-height:1.35}h3{font-size:1.08rem;line-height:1.4}small,.small{font-size:.85rem;color:var(--muted)}.eyebrow{font:11px/1.4 system-ui;letter-spacing:3px;color:#aabfbb}.tag{font-size:.75rem;letter-spacing:.12em;color:var(--accent)}
#app{height:100dvh;width:100vw;position:relative;isolation:isolate}#title-screen{position:absolute;inset:0;background:linear-gradient(90deg,#09151cf5 5%,#12262bba 48%,#08141c33),url('../assets/scenes/front.webp') center/cover;display:flex;flex-direction:column;justify-content:center;padding:6vh 8vw}.title-kicker{color:var(--accent);letter-spacing:.35em;font-size:14px}.title-title{font-size:clamp(32px,5.7vw,84px);line-height:1.4;letter-spacing:.09em;margin:16px 0 4px;max-width:900px;text-shadow:0 3px 20px #000}.title-subtitle{font-size:clamp(20px,2.4vw,34px);letter-spacing:.45em;color:#b8cebf}.title-desc{max-width:560px;color:#c0cdca;font-size:.93rem;line-height:1.8}.title-menu{display:grid;grid-template-columns:repeat(2,minmax(140px,240px));gap:12px;margin:16px 0}.title-foot{font-size:.75rem;max-width:650px;color:#9fb2b4}.save-warning{border-left:3px solid var(--red);padding:8px 12px;max-width:650px;color:#f1bdad}
#game-screen{height:100%;display:grid;grid-template-rows:60px minmax(0,1fr) auto auto;position:relative}.hud{display:flex;gap:20px;align-items:center;padding:8px 22px;background:#10252be8;border-bottom:1px solid #496168;z-index:3}.hud strong{display:block;font-size:1rem}.hud-actions{display:flex;gap:8px;align-items:center;margin-left:auto;white-space:nowrap}.hud-actions button{padding:7px 12px}#time-label{color:var(--muted);font-size:.8rem}#focus-meter{font-family:system-ui;color:var(--accent);font-size:15px;letter-spacing:3px}
#play-layout{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 300px;background:#0b171f}#scene-frame{position:relative;overflow:hidden;min-height:0}#scene-image{position:absolute;inset:0;background-position:center;background-size:contain;background-repeat:no-repeat;transition:filter .5s}#scene-vignette{position:absolute;inset:0;background:linear-gradient(0deg,#07151e90,transparent 35%);pointer-events:none}#scene-caption{position:absolute;left:20px;bottom:14px;background:#10242cb3;padding:7px 12px;font-size:.75rem;letter-spacing:.1em;pointer-events:none}#actor{position:absolute;bottom:0;right:2%;height:96%;width:38%;pointer-events:none;filter:drop-shadow(0 10px 15px #0007)}#actor img{height:100%;width:100%;object-fit:contain;object-position:bottom}#hotspots{position:absolute;inset:0}.hotspot{position:absolute;background:transparent;border:1px solid transparent;min-height:0;padding:0;display:flex;align-items:center;justify-content:center;border-radius:5px}.hotspot:hover,.hotspot:focus-visible{background:#b6d5c018;border-color:#bad6bd}.hotspot .pin{width:18px;height:18px;border:2px solid #e9edce;border-radius:50%;box-shadow:0 0 0 6px #a8c9b04d,0 0 20px #000;background:#324f48}.hotspot.seen .pin{width:12px;height:12px;background:#73857b;box-shadow:none;border-color:#a1b2a9}.hotspot .spot-label{position:absolute;top:calc(50% + 18px);white-space:nowrap;background:#0b202ae8;padding:5px 9px;font-size:14px;border:1px solid #759291;pointer-events:none}
#investigation-panel{overflow:auto;border-left:1px solid #496168;background:linear-gradient(#20373c,#12282e);padding:22px 18px;overscroll-behavior:contain}.investigation-heading{font-size:1.15rem;margin-bottom:10px}.investigation-note{font-size:.87rem;color:#b8c7c2;line-height:1.8}.spot-list,.task-list{display:flex;flex-direction:column;gap:8px}.spot-list button,.task-list button{text-align:left}.spot-list button small,.task-list button small{display:block;margin-top:4px}.task-list{margin-top:18px}
#dialogue{position:absolute;z-index:4;bottom:74px;left:4%;right:4%;padding:16px 22px;background:#11242df5;border:1px solid #7c958e;box-shadow:0 8px 30px #0007;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 20px;max-height:40vh}#speaker{grid-column:1/-1;font-size:.93rem;color:var(--accent);font-weight:700}#dialogue-text{font-size:1.08rem;line-height:1.8;white-space:pre-wrap;overflow:auto;min-height:3.4em;max-height:24vh}#dialogue-next{align-self:end;min-width:100px}#dialogue-next span{margin-left:16px}#area-nav{display:flex;gap:8px;overflow:auto;padding:8px 18px;background:#10252b;border-top:1px solid #3a5358;min-height:0}#area-nav:empty{display:none}#area-nav button{white-space:nowrap;flex:0 0 auto;font-size:.87rem;padding:7px 14px}#progress-footer{display:flex;gap:16px;align-items:center;padding:9px 20px;background:#0d2027;min-height:58px;border-top:1px solid #334d54}#objective{font-size:.85rem;color:#b9c8c4;flex:1}#next-button{flex:0 0 auto}
dialog.modal{margin:auto;padding:0;border:1px solid #78918e;max-width:calc(100vw - 32px);width:min(1080px,94vw);max-height:calc(100dvh - 28px);background:#152b32;color:var(--ink);box-shadow:0 25px 90px #0009;border-radius:5px;overflow:hidden}dialog.modal::backdrop{background:#020b12d9;backdrop-filter:blur(5px)}.modal-card{display:flex;flex-direction:column;max-height:calc(100dvh - 30px)}.modal-head{display:flex;gap:15px;align-items:start;padding:18px 24px 12px;border-bottom:1px solid #435d61;flex-shrink:0}.modal-head h2{flex:1;margin:0}.modal-head .close{min-width:44px;padding:5px;font-size:24px;line-height:1}.modal-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:20px 24px;flex:1}.modal-footer{padding:12px 24px;border-top:1px solid #435d61;display:flex;gap:10px;align-items:center;flex-wrap:wrap;flex-shrink:0;background:#142b32}.modal-feedback{color:#e3baa7;font-size:.9rem;line-height:1.55;min-height:1.5em;margin:10px 0 0}.modal-feedback.good{color:#bfd8ae}.modal-sub{color:#aebfba;line-height:1.65;font-size:.9rem}.source-line{font-size:.82rem;color:#b4b8a0;border-left:2px solid #b4b8a0;padding-left:10px}.evidence-text{white-space:pre-wrap;line-height:1.85}.puzzle-actions{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}
.book-layout{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.4fr);gap:20px;min-height:200px}.book-list{display:flex;flex-direction:column;gap:6px;max-height:53vh;overflow:auto;padding:2px 5px 5px 2px}.book-list button{text-align:left;font-size:.9rem}.book-detail{min-width:0}.book-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.book-tabs button{font-size:.8rem;padding:7px 10px}.book-count{color:#a4bab0;font-size:.85rem}.conclusion{border-left:3px solid #a6cda8;padding:10px 15px;margin:10px 0;background:#49625733}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.paper{padding:16px;border:1px solid #58716f;background:#28403c66}.paper p:last-child{margin-bottom:0}.token-tray{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.token{padding:10px 14px;min-height:46px}.slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.slot{min-height:75px;text-align:left;background:#0f252c;border:1px dashed #6b8581;padding:12px}.slot small{display:block;margin-bottom:5px}.slot-label{display:block;color:#e0c899}.board-note{font-size:.85rem;color:#a9bcb6}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.choice-grid button{text-align:left}.field{display:flex;flex-direction:column;gap:7px;margin:14px 0}.field input,.field select{width:100%;min-height:44px;background:#0e252c;border:1px solid #78918e;padding:9px 12px;border-radius:3px}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check-label{display:flex;gap:10px;align-items:center;padding:10px;background:#263e4299;border:1px solid #52696b;cursor:pointer;min-height:44px;font-size:.87rem}.check-label input{width:22px;height:22px;flex:0 0 auto;accent-color:#adbd9f}.statement-list{display:flex;flex-direction:column;gap:9px}.statement{text-align:left;padding:13px 16px;line-height:1.7}.statement::before{content:attr(data-number);color:#d1b991;margin-right:14px}.evidence-section{border-top:1px solid #466367;margin-top:18px;padding-top:14px}.waveform{height:46px;background:repeating-linear-gradient(90deg,transparent 0 3px,#91ad9b55 3px 5px,transparent 5px 9px);clip-path:polygon(0 45%,5% 30%,10% 38%,15% 6%,20% 40%,25% 18%,30% 42%,35% 2%,40% 40%,45% 18%,50% 30%,55% 5%,60% 40%,65% 20%,70% 46%,75% 8%,80% 38%,85% 18%,90% 36%,95% 25%,100% 48%,100% 55%,90% 70%,80% 62%,70% 92%,60% 60%,50% 80%,40% 70%,30% 95%,20% 58%,10% 80%,0 55%)}.audio-clip{display:flex;gap:10px;align-items:center;border:1px solid #466468;padding:12px;margin:9px 0}.audio-clip p{margin:0;flex:1;font-size:.9rem}.timeline-board{display:grid;grid-template-columns:repeat(5,minmax(115px,1fr));gap:10px;overflow:auto;padding:3px 3px 12px}.timeline-board .slot{min-height:90px}.light-diagram{width:100%;height:170px;background:#10272c;border:1px solid #53706e}.light-diagram text{font:18px CaseSerif;fill:#dde4d6}.case-group{padding:16px;border:1px solid #526d6e;margin:12px 0}.ending-copy{max-width:780px;margin:auto}.ending-copy p{line-height:1.95}.achievement{padding:14px;border:1px solid #435c5e;margin:8px 0}.achievement.locked{opacity:.55}#toast{position:fixed;z-index:1000;left:50%;bottom:18px;transform:translate(-50%,20px);max-width:min(660px,92vw);background:#d7dcc4;color:#163237;padding:11px 20px;border:1px solid #78918b;box-shadow:0 5px 20px #0007;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;font-size:15px}#toast.show{opacity:1;transform:translate(-50%,0)}#portrait-tip{display:none}
@media(min-width:1600px){#play-layout{grid-template-columns:minmax(0,1fr) 360px}.hud{height:72px}#game-screen{grid-template-rows:72px minmax(0,1fr) auto auto}.modal{width:min(1200px,90vw)}}
@media(max-height:500px),(max-width:900px){
 :root{--ui:16px}#game-screen{grid-template-rows:46px minmax(0,1fr) auto auto}.hud{padding:3px 10px;gap:10px}.hud .eyebrow,#time-label{display:none}.hud strong{font-size:15px}.hud-actions{gap:5px}.hud-actions button{font-size:14px;padding:6px 9px;min-height:40px}#focus-meter{font-size:11px;letter-spacing:1px}
 #play-layout{grid-template-columns:minmax(0,1fr) 205px}#investigation-panel{padding:12px 10px}.investigation-heading{font-size:16px}.investigation-note{font-size:14px;line-height:1.6}.spot-list button,.task-list button{font-size:14px;min-height:40px;padding:8px 10px}.spot-list button small{font-size:12px}.task-list{margin-top:10px}#scene-caption{font-size:12px;left:8px;bottom:6px;padding:4px 6px}.hotspot .spot-label{font-size:12px;padding:3px 6px}.hotspot .pin{width:14px;height:14px}
 #area-nav{padding:4px 10px;gap:5px}#area-nav button{font-size:14px;min-height:40px;padding:6px 11px}#progress-footer{min-height:48px;padding:4px 10px;gap:10px}#objective{font-size:13px;line-height:1.35}#next-button{font-size:14px;min-height:40px;padding:7px 11px}
 #dialogue{left:2%;right:2%;bottom:54px;padding:10px 14px;max-height:42vh;gap:3px 10px}#speaker{font-size:14px}#dialogue-text{font-size:16px;line-height:1.65;max-height:27vh;min-height:2.8em}#dialogue-next{font-size:14px;min-width:78px;padding:8px}#dialogue-next span{margin-left:4px}
 dialog.modal{max-width:calc(100vw - 16px);width:calc(100vw - 20px);max-height:calc(100dvh - 12px)}.modal-card{max-height:calc(100dvh - 14px)}.modal-head{padding:10px 14px 7px;align-items:center}.modal-head h2{font-size:18px}.modal-head .close{font-size:22px;min-height:40px}.modal-body{padding:12px 14px}.modal-footer{padding:6px 14px;gap:8px}.modal-footer button{font-size:14px;min-height:40px;padding:7px 11px}.modal-sub{font-size:14px;margin-bottom:10px}.modal-feedback{font-size:14px;min-height:0;line-height:1.5;margin-top:7px}.two-columns{gap:10px}.paper{padding:10px}.paper p{font-size:16px}.book-layout{gap:12px;grid-template-columns:minmax(160px,.8fr) minmax(0,1.5fr)}.book-list{max-height:50vh}.book-list button{font-size:14px}.book-tabs{gap:5px;margin-bottom:10px}.book-tabs button{font-size:13px;min-height:40px}.book-detail h3{font-size:18px}.evidence-text{font-size:16px;line-height:1.7}
 .slot-grid{gap:8px}.slot{min-height:65px;font-size:15px;padding:10px}.token-tray{gap:7px;margin:10px 0}.token{font-size:14px;min-height:40px;padding:8px 11px}.check-grid{gap:6px}.check-label{font-size:14px;padding:8px;min-height:40px}.statement{font-size:16px;padding:10px 13px}.field{margin:10px 0}.field label{font-size:15px}.field input,.field select{font-size:16px}.case-group{padding:10px}.audio-clip{padding:9px;gap:8px}.audio-clip p{font-size:15px}.audio-clip button{min-height:40px;padding:7px 9px}.light-diagram{height:140px}
 #title-screen{padding:4vh 7vw}.title-title{font-size:36px;margin-top:7px}.title-subtitle{font-size:20px;margin-bottom:12px}.title-desc{font-size:14px;line-height:1.6;margin-bottom:8px;max-width:520px}.title-menu{gap:8px;margin:8px 0}.title-menu button{font-size:15px;min-height:40px;padding:8px 12px}.title-foot{font-size:11px}.title-kicker{font-size:11px}.title-menu{grid-template-columns:repeat(2,minmax(140px,200px))}
}
@media(max-height:260px){
 .modal-head{padding:4px 12px}.modal-head h2{font-size:16px}.modal-head .close{min-height:40px}.modal-body{padding:8px 12px}.modal-footer{padding:4px 12px}.modal-card{max-height:calc(100dvh - 8px)}dialog.modal{max-height:calc(100dvh - 6px);max-width:calc(100vw - 12px)}.modal-footer .modal-feedback{display:none}.modal-sub{font-size:14px}.hud{padding:2px 8px}#dialogue{max-height:60vh}#dialogue-text{max-height:30vh}.title-desc,.title-foot,.title-kicker{display:none}.title-title{font-size:25px}.title-subtitle{font-size:16px;margin-bottom:5px}
}
@media(orientation:portrait) and (max-width:600px){#portrait-tip{display:flex;position:fixed;z-index:1500;bottom:0;left:0;right:0;background:#d7dcc4;color:#163237;padding:12px;gap:8px;font-size:14px;align-items:center}#play-layout{grid-template-columns:1fr}#investigation-panel{position:absolute;right:8px;top:55px;width:45%;max-height:40vh;background:#10282ee8}#focus-meter{display:none}.hud strong{font-size:12px}.hud-actions button{font-size:12px;padding:6px}.book-layout,.two-columns,.check-grid{grid-template-columns:1fr}.title-menu{grid-template-columns:1fr}.slot-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Reading surfaces retain physical text size on short landscape displays. */
@media(max-height:500px),(max-width:900px){
 .investigation-note,.modal-sub,.check-label,.token,.slot,.book-list button,.board-note,.modal-feedback,.audio-clip p{font-size:16px}
 .modal-body{scroll-padding-block:10px}
}
.hotspot .spot-label{opacity:0;transition:opacity .15s}.hotspot:hover .spot-label,.hotspot:focus-visible .spot-label{opacity:1}
