:root{
  --bg:#070a0d;--panel:#10161be8;--panel2:#0b1014;--line:#ffffff1d;--text:#e8e4dc;--muted:#a9aaa7;
  --warn:#c8a16d;--danger:#a44d47;--accent:#97a6a6;--safe:#819a83;--paper:#d8d2c4;
}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;background:#050709;color:var(--text);font-family:"Noto Serif SC","Songti SC","Microsoft YaHei",serif;overflow:hidden}
button{font:inherit;color:inherit}.hidden{display:none!important}button:focus-visible{outline:1px solid #b8ad96;outline-offset:2px}
#app{width:100%;height:100%}.title-screen{position:relative;width:100%;height:100%;background:url('assets/img/hallway.webp') center/cover no-repeat;display:grid;place-items:center}
.title-shade{position:absolute;inset:0;background:linear-gradient(90deg,#030507f2 0%,#05080bd5 48%,#070b0e64 100%),linear-gradient(0deg,#020305c7,#0000 60%)}
.title-card{position:relative;width:min(650px,88vw);margin-right:min(40vw,500px);padding:40px 40px 34px;border-left:1px solid #ffffff2e;background:#070b0fc9;backdrop-filter:blur(8px);box-shadow:0 28px 90px #0008}
.eyebrow{font-size:12px;letter-spacing:.22em;color:#bbb7ae}.title-card h1{font-size:clamp(44px,6vw,82px);line-height:1.03;margin:15px 0 24px;font-weight:500;letter-spacing:.05em}.title-card h1 span{color:#c0b39c}.lead{line-height:2;color:#d6d2ca;font-size:15px}.small{font-size:11px;color:#888d8e;margin-top:19px;line-height:1.8}.title-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.primary,.ghost{border:1px solid #ffffff45;background:#d6d0c11a;padding:12px 20px;cursor:pointer}.primary:hover,.ghost:hover{background:#d6d0c12e}
.game{height:100%;display:flex;flex-direction:column;background:#050709}.topbar{height:60px;flex:0 0 60px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#080d11;z-index:10}.scene-meta{display:flex;align-items:baseline;min-width:0}.topbar strong{font-size:15px;font-weight:500;white-space:nowrap}.topbar #clock{font-family:ui-monospace,monospace;font-size:12px;color:#8c9293;margin-left:12px}.stage-label{font-size:10px;color:#7f8788;margin-left:14px;padding-left:14px;border-left:1px solid #ffffff16;white-space:nowrap}.top-actions{display:flex;gap:6px}.top-actions button{border:1px solid #ffffff19;background:#ffffff08;padding:7px 11px;border-radius:2px;cursor:pointer;font-size:12px}.top-actions button:hover{background:#ffffff10}
.play-area{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:12px;padding:12px;background:#070a0d}.scene-frame{position:relative;min-height:0;width:100%;aspect-ratio:16/9;align-self:center;overflow:hidden;background:#0b0f12;border:1px solid #ffffff18;box-shadow:0 20px 70px #0007;outline:none}.scene-frame img{width:100%;height:100%;display:block;object-fit:cover;user-select:none;-webkit-user-drag:none;filter:saturate(.72) contrast(1.04) brightness(.9);transition:filter .5s ease}.scene-tint{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 32%,#0008 100%),linear-gradient(0deg,#05080962,#0000 36%);mix-blend-mode:multiply}.film-grain{position:absolute;inset:0;pointer-events:none;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.84' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");mix-blend-mode:soft-light}.hotspots{position:absolute;inset:0}.hotspot{position:absolute;border:0;background:transparent;outline:0;padding:0;margin:0;cursor:default}.hotspot:focus-visible{outline:1px dashed #ffffff35;background:#ffffff03}.event-layer{position:absolute;inset:0;pointer-events:none}.event-text{position:absolute;right:3.5%;top:5%;width:min(390px,48%);background:#080c10eb;border:1px solid #ffffff2b;border-left:3px solid #8e826d;padding:14px 16px;box-shadow:0 14px 50px #0009;font-size:13px;line-height:1.85;animation:fadeIn .3s ease}.scene-caption{position:absolute;left:0;right:0;bottom:0;padding:34px 18px 14px;background:linear-gradient(0deg,#030507e8,#03050700);pointer-events:none}.scene-caption p{margin:0 0 5px;font-size:13px}.scene-caption span{font-size:10px;color:#9ba0a0}
.desktop-sidebar{display:flex;flex-direction:column;gap:10px}.sidebar-card{border:1px solid #ffffff17;background:#0c1115;padding:15px;min-height:100px}.label{font-size:10px;letter-spacing:.15em;color:#858c8e}.sidebar-card p{line-height:1.65;font-size:13px;margin:9px 0}.sidebar-card b{font-family:ui-monospace,monospace;font-size:24px;font-weight:400}.sidebar-card small{color:#929899;line-height:1.6}.progress-track{height:3px;background:#ffffff0c;margin:16px 0 10px;overflow:hidden}.progress-track i{display:block;height:100%;width:0;background:#8e826d;transition:width .35s ease}.quick-nav{flex:0 0 auto;display:flex;gap:6px;overflow:auto;padding:0 12px 10px;background:#070a0d}.quick-nav button{white-space:nowrap;border:1px solid #ffffff16;background:#0b1014;padding:8px 12px;color:#aeb3b3;cursor:pointer;font-size:11px}.quick-nav button.current{border-color:#9a907850;color:#ddd8cd}.quick-nav button.locked{opacity:.28;cursor:default}
.modal{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#010203d2;padding:20px;backdrop-filter:blur(5px)}.modal-card{position:relative;width:min(780px,95vw);max-height:90vh;overflow:auto;border:1px solid #ffffff27;background:#0c1115;padding:30px;box-shadow:0 25px 90px #000c}.modal-card.wide{width:min(980px,96vw)}.modal-close{position:absolute;right:11px;top:8px;background:transparent;border:0;color:#9da3a3;font-size:26px;cursor:pointer}.modal h2{font-size:23px;font-weight:500;margin:0 0 20px}.modal h3{font-size:14px;color:#c9c4b8;margin:18px 0 8px}.modal p,.modal li{font-size:13px;line-height:1.9;color:#d1d1cd}.modal .muted{color:#8b9294}.modal .divider{border-top:1px solid #ffffff17;margin:18px 0}.modal-note{border-left:2px solid #7f7561;background:#ffffff05;padding:10px 13px;color:#bcb8af;font-size:12px;line-height:1.8}.choice-grid{display:grid;gap:8px;margin-top:16px}.choice-grid.two{grid-template-columns:1fr 1fr}.choice-grid button,.modal-action,.evidence-btn,.tab-btn{border:1px solid #ffffff25;background:#ffffff08;text-align:left;padding:12px 14px;cursor:pointer}.choice-grid button:hover,.modal-action:hover,.evidence-btn:hover,.tab-btn:hover{background:#ffffff12}.choice-grid button.selected,.evidence-btn.selected{border-color:#9a8f74;background:#8f826b1d}.modal-action{display:inline-block;margin-top:12px}.modal-action:disabled,.evidence-btn:disabled{opacity:.35;cursor:default}.clue-list{display:grid;gap:8px}.clue{padding:10px 12px;background:#ffffff06;border-left:2px solid #766f61}.clue.optional{border-left-color:#64707b}.clue small{display:block;color:#858c8d;margin-top:4px}.phone-screen{background:#090e11;border:1px solid #ffffff24;padding:14px 16px}.message{padding:9px 11px;margin:8px 0;border-radius:7px;max-width:84%;font-family:"Microsoft YaHei",sans-serif;font-size:12px;line-height:1.75}.message.them{background:#20272b}.message.me{background:#45504a;margin-left:auto}.message.old{opacity:.82}.phone-tabs{display:flex;gap:6px;margin-bottom:12px;overflow:auto}.tab-btn{padding:8px 12px;font-size:11px;white-space:nowrap}.tab-btn.active{border-color:#8f846d;background:#8f846d1d}.unread-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#9e6c5f;margin-left:6px}.photo-card{border:8px solid #e2ded2;background:#d9d3c5;padding:4px;box-shadow:0 10px 30px #0008;margin:14px auto;width:min(560px,92%);transform:rotate(-.35deg)}.photo-card img{width:100%;display:block;filter:sepia(.12) contrast(.93) brightness(.84)}.compare-layout{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.compare-shot{background:#080c0f;border:1px solid #ffffff20;padding:8px}.compare-shot img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;filter:saturate(.62) brightness(.86)}.shot-label{font-size:10px;letter-spacing:.12em;color:#8b9294;margin-top:7px}.hint-box{padding:13px;background:#6f654b17;border:1px solid #907f5f40}.hint-step{border-left:2px solid #8b8067;background:#ffffff04;padding:9px 11px;margin:7px 0}.hint-history{margin-top:18px}.hint-history details{border-top:1px solid #ffffff13;padding:9px 0}.hint-history summary{cursor:pointer;color:#aaa69c;font-size:12px}.map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.map-room{border:1px solid #ffffff1c;padding:14px 8px;text-align:center;background:#ffffff05;font-size:12px}.map-room.open{border-color:#8b826855}.floor-plan{margin:18px 0;padding:16px;border:1px solid #ffffff19;background:#080d11}.floor-line{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:5px}.floor-line div{padding:14px 8px;border:1px solid #ffffff18;text-align:center;font-size:12px}.floor-line .you{border-color:#8e826d;color:#d8d1c2}.floor-line .empty{border-style:dashed}.route-arrow{font-family:ui-monospace,monospace;text-align:center;color:#887f6d;margin:9px 0;font-size:12px}.timeline-records{display:grid;gap:7px;margin:14px 0}.timeline-row{display:grid;grid-template-columns:64px 1fr;gap:12px;border-bottom:1px solid #ffffff12;padding:8px 0}.timeline-row time{font-family:ui-monospace,monospace;color:#b2a78f}.sequence-tray{min-height:54px;border:1px dashed #ffffff24;padding:9px;margin:12px 0;display:flex;gap:6px;flex-wrap:wrap}.sequence-chip{padding:7px 9px;background:#ffffff09;border:1px solid #ffffff17;font-size:11px}.fact-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.evidence-btn{font-size:12px;line-height:1.65}.gap-board{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0}.gap-item{border:1px solid #ffffff20;background:#090e11;padding:13px;min-height:92px;text-align:left;cursor:pointer;color:var(--text)}.gap-item b{font-size:13px;font-weight:500}.gap-item p{font-size:11px!important;color:#909698!important;margin:6px 0}.gap-item.done{border-color:#756e5e;background:#756e5e12}.identity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.person-card{border:1px solid #ffffff1f;background:#ffffff05;padding:12px;cursor:pointer;text-align:left}.person-card.selected{border-color:#9a8c70;background:#9a8c7014}.person-card b{display:block;font-size:14px}.person-card span{font-size:11px;color:#8d9495}.evidence-board{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.result-ok{border-left:3px solid #7e957d;background:#7e957d12;padding:12px}.result-warn{border-left:3px solid #a77d61;background:#a77d6112;padding:12px}.archive-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.archive-card{border:1px solid #ffffff1b;background:#ffffff04;padding:14px}.archive-card.locked{opacity:.42}.archive-code{font-size:9px;letter-spacing:.18em;color:#8e9495}.credits{font-size:11px!important;color:#858b8d!important}.toast{position:fixed;left:50%;bottom:24px;z-index:40;transform:translateX(-50%);background:#10161bea;border:1px solid #ffffff24;padding:10px 16px;font-size:12px;box-shadow:0 10px 40px #0009}.ending{padding:8px 0}.ending-title{font-size:28px!important;color:#ddd7ca!important}.ending-code{letter-spacing:.2em;color:#848b8c!important;font-size:11px!important}
@keyframes fadeIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
@media(max-width:1000px){.play-area{grid-template-columns:1fr;grid-template-rows:auto auto;align-content:center;padding:8px}.desktop-sidebar{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.scene-caption{padding-bottom:16px}.topbar{height:56px;flex-basis:56px;padding:0 10px}.top-actions button{padding:7px 9px}.quick-nav{padding:0 8px 8px}.title-card{margin-right:0;width:min(650px,90vw)}}
@media(max-width:760px){.play-area{flex:0 0 auto;display:block;align-content:start;padding:8px}.scene-frame{margin-top:6px}.quick-nav{padding-top:2px}.topbar strong{font-size:13px}.stage-label{display:none}.top-actions{gap:3px}.top-actions button{font-size:0;width:38px;height:34px;padding:0}.top-actions button[data-panel="phone"]::after{content:"☎";font-size:16px}.top-actions button[data-panel="notes"]::after{content:"记";font-size:13px}.top-actions button[data-panel="map"]::after{content:"图";font-size:13px}.top-actions button[data-panel="hint"]::after{content:"?";font-size:16px}.top-actions button[data-panel="settings"]::after{content:"⚙";font-size:15px}.desktop-sidebar{display:none}.scene-frame{aspect-ratio:16/9;height:auto;align-self:center}.play-area{align-content:center}.title-card{padding:26px}.title-card h1{font-size:44px}.event-text{width:78%;right:4%;font-size:12px}.modal{padding:8px}.modal-card{padding:25px 16px;max-height:92vh}.map-grid,.fact-grid,.evidence-board,.compare-layout,.choice-grid.two,.archive-grid{grid-template-columns:1fr}.identity-grid{grid-template-columns:1fr}.gap-board{grid-template-columns:1fr}.timeline-row{grid-template-columns:55px 1fr}}
@media(max-width:430px){.title-card{width:92vw;padding:24px 20px}.title-card h1{font-size:38px}.title-actions{display:grid}.title-actions button{width:100%}.scene-caption span{display:none}.scene-caption{padding:28px 12px 10px}.quick-nav button{font-size:10px;padding:7px 9px}.modal h2{font-size:20px}.message{max-width:92%}}
@media(orientation:portrait) and (min-width:700px) and (max-width:1100px){.scene-frame{aspect-ratio:16/9;height:auto;max-height:none}.play-area{align-content:center}.title-card{width:76vw}.title-card h1{font-size:64px}.quick-nav button{font-size:13px;padding:10px 15px}}

/* 2026-08 refinement: stronger physical-world feel, less dashboard symmetry */
.game[data-scene="entry"] .scene-frame img{filter:saturate(.76) contrast(1.035) brightness(.93) sepia(.025)}
.game[data-scene="living"] .scene-frame img{filter:saturate(.72) contrast(1.045) brightness(.91) sepia(.035)}
.game[data-scene="bedroom"] .scene-frame img{filter:saturate(.70) contrast(1.055) brightness(.89) sepia(.025)}
.game[data-scene="bathroom"] .scene-frame img{filter:saturate(.66) contrast(1.05) brightness(.91)}
.game[data-scene="hallway"] .scene-frame img{filter:saturate(.58) contrast(1.08) brightness(.86)}
.sidebar-card{position:relative;overflow:hidden;background:linear-gradient(165deg,#0d1216 0%,#0a0f13 100%);border-left-width:3px}
.sidebar-card::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,#fff0 0 62%,#ffffff05 100%)}
.objective-card{border-left-color:#7b715e}.evidence-card{border-left-color:#5e6d70}.progress-card{border-left-color:#705b54}
.modal-card{background:linear-gradient(160deg,#0d1216 0%,#090d11 100%);box-shadow:0 28px 100px #000d}
.message{border-radius:3px}.message.them{border-left:2px solid #596164}.message.me{border-right:2px solid #69766b}
.clue-group{margin:0 0 18px}.clue-group-title{display:flex;align-items:center;justify-content:space-between;padding:0 2px 8px;border-bottom:1px solid #ffffff16;color:#c4bdae;font-size:11px;letter-spacing:.12em}.clue-group-title span{font-family:ui-monospace,monospace;color:#7e8585;letter-spacing:0}.clue-group-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.clue-group .clue{background:linear-gradient(110deg,#ffffff06,#ffffff025);border-left-width:2px;min-height:52px}.optional-group .clue-group-title{color:#9eaaa9}.optional-group .clue{background:#56636a0e}
.phone-screen{box-shadow:inset 0 0 30px #0007}.choice-grid button,.evidence-btn,.gap-item,.person-card{transition:background .15s ease,border-color .15s ease,transform .15s ease}.choice-grid button:hover,.evidence-btn:hover,.gap-item:hover,.person-card:hover{transform:translateY(-1px)}
.floor-plan{background:linear-gradient(180deg,#0a0f12,#080c0f)}
@media(max-width:760px){.clue-group-grid{grid-template-columns:1fr}.sidebar-card{border-left-width:2px}}
