:root{
  --bg:#101412;--bg-deep:#0c100e;--panel:#171c19;--panel-soft:#1d231f;--paper:#e0dacb;
  --text:#e9e7df;--muted:#a0a69e;--subtle:#858e83;--line:#303830;--line-soft:#242c25;
  --accent:#d16b55;--accent-hover:#e78068;--accent-wash:rgba(209,107,85,.1);--green:#a5b79b;
  --font-body:'Noto Sans CJK KR','NanumSquare','Apple SD Gothic Neo','Malgun Gothic',sans-serif;
  --font-serif:'Noto Serif CJK KR','NanumMyeongjo','Batang',serif;
  --font-mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace;
  --text-scale:1;--rail-width:80px;--radius:3px;
}
html{font-size:calc(16px * var(--text-scale));background:var(--bg);scrollbar-gutter:stable;scroll-behavior:smooth}
body{min-height:100vh;color:var(--text);font-family:var(--font-body);line-height:1.65;-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:break-word}
body.overlay-open{overflow:hidden}::selection{background:var(--accent);color:var(--bg-deep)}
button{background:none}button,a,input,select,summary{touch-action:manipulation}button{transition:background .18s,color .18s,border-color .18s,transform .18s}button:disabled{opacity:.42}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent-hover);outline-offset:4px}
.icon{width:20px;height:20px;flex-shrink:0}.mono{font-family:var(--font-mono);font-weight:400}.serif{font-family:var(--font-serif);letter-spacing:-.05em;font-weight:600}.accent{color:var(--accent)}
.eyebrow{display:block;font-size:.625rem;letter-spacing:.19em;font-family:var(--font-mono);line-height:1.7;color:var(--muted);font-weight:400}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{visibility:hidden;position:fixed;top:-100px;left:20px;padding:12px 24px;background:var(--paper);color:var(--bg);z-index:200}.skip-link:focus{visibility:visible;top:12px}
#game-root{min-height:100svh;outline:none}#ui-root{position:fixed;inset:0;z-index:100;pointer-events:none}#ui-root.is-active{pointer-events:auto}
.brand{display:inline-flex;align-items:center;gap:13px;text-align:left}.brand-mark{display:grid;place-items:center;width:45px;height:45px;border:1px solid var(--accent);font-family:var(--font-serif);font-size:1.5rem;color:var(--text);line-height:1;position:relative}
.brand-mark:after{content:'';position:absolute;inset:4px;border:1px solid rgba(209,107,85,.23)}.brand-copy{display:flex;flex-direction:column;gap:4px}.brand-copy strong{font-size:.875rem;letter-spacing:.08em;font-weight:500}.brand-copy small{font-size:.5rem;color:var(--muted);font-family:var(--font-mono);letter-spacing:.16em}
.icon-button{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);border:1px solid transparent;border-radius:var(--radius)}.icon-button:hover{color:var(--text);border-color:var(--line);background:rgba(255,255,255,.025)}
.primary-button,.secondary-button,.ghost-button,.action-button{min-height:46px;padding:13px 19px;display:inline-flex;align-items:center;justify-content:center;gap:16px;line-height:1.5;border:1px solid var(--line);border-radius:var(--radius);font-size:.875rem;text-align:left;letter-spacing:.005em}
.primary-button{background:var(--accent);border-color:var(--accent);color:#121710;font-weight:700}.primary-button:not(:disabled):hover{background:var(--accent-hover);border-color:var(--accent-hover);transform:translateY(-1px)}
.secondary-button{background:transparent;color:var(--text)}.secondary-button:not(:disabled):hover,.ghost-button:not(:disabled):hover,.action-button:not(:disabled):hover{background:var(--panel-soft);border-color:#69705e}
.ghost-button{color:var(--muted)}.action-button{justify-content:space-between;color:var(--text);background:transparent;width:100%}.primary-button:has(.button-copy){justify-content:space-between}.button-copy{display:flex;flex-direction:column;gap:4px}.button-copy strong{font-size:.8125rem;line-height:1.5;font-weight:600}.button-copy small{font-size:.625rem;line-height:1.65;color:var(--muted);font-weight:400}.primary-button .button-copy small{color:#293425}.primary-button .icon{width:18px;height:18px}
.text-button{padding:9px 1px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);font-size:.8125rem;gap:10px}.text-button:not(:disabled):hover{color:var(--accent-hover)}
.status-dot{display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 4px rgba(209,107,85,.1);flex-shrink:0}
kbd{font-family:var(--font-mono);font-size:.625rem;padding:3px 6px;line-height:1;border:1px solid var(--line);border-radius:3px;color:#b1b8aa;background:rgba(255,255,255,.025)}
/* Title — the hallway remains the central artwork. */
.title-screen{position:relative;isolation:isolate;min-height:100svh;padding:30px clamp(28px,5.2vw,90px) 18px;overflow:hidden;background:#0e1310}
.title-scenery,.title-scenery:after{position:absolute;inset:0;z-index:-2}.title-scenery img{width:100%;height:100%;object-fit:cover;object-position:64% 52%;filter:brightness(.69) saturate(.68);animation:reveal-hall 1.6s ease both}
.title-scenery:after{content:'';z-index:1;background:linear-gradient(90deg,rgba(10,15,11,.95) 0%,rgba(10,15,11,.88) 29%,rgba(10,15,11,.24) 66%,rgba(10,15,11,.53) 100%),linear-gradient(0deg,#0d120f 0%,transparent 28%,transparent 75%,rgba(12,17,14,.5) 100%)}
.title-header{display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;z-index:1}.title-header__right{display:flex;align-items:center;gap:12px}.edition-label{font-size:.56rem;font-family:var(--font-mono);letter-spacing:.19em;color:#b2b7a6;margin-right:20px}
.title-content{max-width:1460px;margin:auto;min-height:calc(100svh - 212px);display:grid;grid-template-columns:1fr 330px;gap:8vw;align-items:center;padding:40px 0 56px}
.title-hero{max-width:600px;animation:fade-rise .65s .12s ease both}.title-kicker{display:flex;align-items:center;gap:12px;color:#b3b9ab;font-size:.6875rem;letter-spacing:.13em;margin-bottom:22px}
.title-wordmark{font-family:var(--font-serif);font-weight:500;letter-spacing:-.085em;line-height:1.05;font-size:clamp(5.5rem,9.6vw,9rem);display:flex;flex-direction:column;gap:5px;text-shadow:0 3px 30px #0b120e}
.title-wordmark>span{font-weight:500}.title-wordmark strong{font-weight:500;color:var(--accent)}
.title-tagline{font-family:var(--font-serif);font-size:1.25rem;letter-spacing:.01em;margin-top:28px}.title-description{font-size:.875rem;color:#a7afa0;white-space:pre-line;line-height:1.95;margin-top:18px;font-weight:400}
.title-controls{display:flex;align-items:center;gap:26px;margin-top:30px}.title-controls .primary-button{min-width:248px;min-height:62px;padding:15px 22px}.title-controls .button-copy strong{font-size:.875rem;letter-spacing:.015em}.title-controls .button-copy small{font-size:.625rem}.title-controls>.text-button{white-space:nowrap}
.title-save-note{display:flex;align-items:center;gap:8px;margin-top:18px;font-size:.625rem;color:#919e8d}.title-save-note .icon{width:14px;height:14px}
.case-dossier{background:rgba(13,19,14,.71);backdrop-filter:blur(7px);padding:28px 27px;border:1px solid #4a4c39;align-self:center;margin-top:150px;position:relative;max-width:350px;animation:fade-rise .7s .3s ease both}
.case-dossier:before,.case-dossier:after{content:'';position:absolute;width:9px;height:9px;border-color:var(--accent);border-style:solid;pointer-events:none}.case-dossier:before{left:-1px;top:-1px;border-width:1px 0 0 1px}.case-dossier:after{right:-1px;bottom:-1px;border-width:0 1px 1px 0}
.case-dossier__top{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:23px}.case-dossier__top .eyebrow{font-size:.5625rem;letter-spacing:.12em}.restricted-stamp{font-size:.5625rem;border:1px solid #906851;color:#d49272;padding:3px 7px;letter-spacing:.12em}
.case-dossier h2{font-family:var(--font-serif);font-size:2rem;white-space:pre-line;line-height:1.65;font-weight:500;letter-spacing:-.035em}.case-dossier__intro{font-size:.6875rem;color:#aeb4a4;white-space:pre-line;line-height:1.9;margin-top:18px}
.case-facts{border-top:1px solid #394331;border-bottom:1px solid #394331;margin:24px 0 21px;padding:17px 0;display:flex;flex-direction:column;gap:11px}.case-facts>div{display:flex;justify-content:space-between;gap:12px;font-size:.625rem}.case-facts dt{color:#8e9a87}.case-facts dd{margin:0;color:#c6cbbc}
.case-discrepancy{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.case-discrepancy>span{font-size:.5625rem;color:#a6ae9b}.case-discrepancy strong{font-family:var(--font-mono);font-size:1.7rem;font-weight:400}.case-discrepancy i{font-size:1.2rem;color:#69715e;font-style:normal}.case-question{font-size:.6875rem;color:#c3c8b9;padding-top:10px;text-align:center}
.title-footer{border-top:1px solid rgba(172,181,155,.24);padding:23px 0;display:flex;align-items:center;justify-content:space-between;gap:20px}.title-phases{display:flex;align-items:center;gap:48px}.title-phases>div{display:flex;align-items:center;gap:12px;font-size:.6875rem;color:#b3bba8}.title-phases .mono{color:var(--accent);font-size:.625rem}.headphone-tip{display:flex;align-items:center;gap:12px;color:#a7b09d;font-size:.625rem;text-align:left;min-height:34px}.headphone-tip .icon{width:17px;height:17px}.headphone-tip .icon:last-child{width:13px;height:13px;color:#77816e}.headphone-tip:hover{color:var(--text)}.title-colophon{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.5rem;letter-spacing:.14em;color:#819076}
/* Intro */
.chapter-intro{min-height:100svh;padding:30px clamp(24px,5.2vw,90px);background:radial-gradient(ellipse at 70% 50%,#27322370,transparent 55%),var(--bg-deep)}
.intro-card{display:grid;grid-template-columns:1fr 1fr;max-width:1150px;margin:65px auto 28px;border:1px solid var(--line);background:#131914;overflow:hidden}.intro-copy{padding:44px clamp(24px,4vw,62px);position:relative}.intro-copy>.eyebrow{color:var(--accent);font-size:.625rem}.intro-number{font-family:var(--font-serif);font-size:5.5rem;color:#72755b33;line-height:1;display:block;padding-top:36px}.intro-copy h1{font-size:3.4rem;line-height:1.3;margin:6px 0 28px}.intro-description{font-size:.9375rem;color:#bbc1b0;line-height:2}.intro-meta{margin:30px 0;display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0}.intro-meta>div{display:flex;justify-content:space-between;gap:20px;font-size:.75rem}.intro-meta span{color:var(--muted)}.intro-meta strong{font-weight:400}.intro-guide{display:flex;gap:12px;align-items:flex-start;font-size:.6875rem;color:var(--muted);line-height:1.8;padding-bottom:28px}.intro-guide>.icon{width:18px;height:18px;color:var(--accent);margin-top:3px}.intro-copy .primary-button{width:100%;min-height:58px}.intro-photo{position:relative;min-height:100%;overflow:hidden}.intro-photo img{width:100%;height:100%;object-fit:cover;position:absolute;filter:saturate(.67) brightness(.84)}.intro-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#101811 0%,transparent 60%)}.intro-photo__caption{position:absolute;bottom:40px;left:36px;right:36px;z-index:1}.intro-photo__caption .eyebrow{color:#a8b69e}.intro-photo__caption p{font-size:1.0625rem;line-height:1.9;white-space:pre-line;font-family:var(--font-serif);margin-top:18px}.intro-footnote{font-size:.6875rem;color:var(--subtle);text-align:center;padding-bottom:15px}
/* In-game application shell */
.game-screen{min-height:100svh;background:var(--bg)}.game-rail{position:fixed;inset:0 auto 0 0;width:var(--rail-width);display:flex;flex-direction:column;align-items:center;padding:23px 0 16px;border-right:1px solid var(--line-soft);background:var(--bg-deep);z-index:20}.brand--compact .brand-mark{width:39px;height:43px;font-size:1.3rem}.rail-navigation{display:flex;flex-direction:column;align-items:center;gap:17px;margin-top:65px;width:100%}.rail-button{width:100%;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;position:relative;color:var(--subtle);font-size:.5625rem;letter-spacing:.02em;border-left:2px solid transparent}.rail-button>.icon{width:19px;height:19px}.rail-button:hover{color:var(--text);background:#ffffff04}.rail-button.is-active{color:var(--accent);border-left-color:var(--accent);background:linear-gradient(90deg,var(--accent-wash),transparent)}.rail-badge{position:absolute;top:5px;right:14px;min-width:15px;height:15px;display:grid;place-items:center;border:1px solid #485141;border-radius:50%;background:#192217;color:#bdc8b1;font-size:8px;line-height:1}.rail-footer{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}
.game-main{margin-left:var(--rail-width);min-height:100svh;display:flex;flex-direction:column}.game-topbar{display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:0 36px;border-bottom:1px solid var(--line-soft);gap:24px}.game-breadcrumb{display:flex;align-items:center;gap:17px;font-size:.75rem}.game-breadcrumb>.mono{font-size:.625rem;letter-spacing:.12em;color:var(--muted)}.game-breadcrumb strong{font-weight:400;color:#cbd0c2}.breadcrumb-slash{color:#606e58}.game-meta{display:flex;align-items:center;gap:26px;font-size:.6875rem}.mode-indicator,.game-clock{display:flex;align-items:center;gap:10px;color:#b7c0ac}.mode-indicator .status-dot{width:5px;height:5px;background:#a3b494;box-shadow:none}.game-clock{padding-left:23px;border-left:1px solid var(--line)}.game-clock .icon{width:17px;height:17px;color:#889780}.game-clock>.mono{color:#d2d8c6;font-size:.8125rem;letter-spacing:.1em}.mobile-settings{display:none!important}.game-content{padding:27px 36px 10px;width:100%;max-width:1780px;margin:auto;flex:1}
.scene-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}.scene-heading .eyebrow{font-size:.5625rem;letter-spacing:.14em}.scene-title{font-family:var(--font-serif);font-weight:600;font-size:1.9rem;letter-spacing:-.025em;line-height:1.5;margin-top:8px}.scene-subtitle{color:var(--muted);font-size:.6875rem;margin-top:5px}.scene-tools{display:flex;gap:8px;align-items:center}.scene-tools .icon-button{border:1px solid var(--line);width:38px;height:38px}.scene-tools .icon-button[aria-pressed=false]{color:#64715c;background:var(--bg-deep)}
.scene-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:stretch}.scene-main{min-width:0;display:flex;flex-direction:column}.scene-visual{height:clamp(440px,60vh,660px);position:relative;overflow:hidden;border:1px solid #394132;background:#1a2118;isolation:isolate;flex:1;min-height:440px;outline:none}.scene-visual:before{content:'';position:absolute;inset:-30px;background-image:var(--scene-bg);background-position:center;background-size:cover;filter:blur(17px) brightness(.35) saturate(.5);z-index:-1}.scene-image-plane{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%}.scene-bg-image{width:100%;height:100%;object-fit:contain;user-select:none}.scene-frame-top,.scene-frame-bottom{display:flex;justify-content:space-between;align-items:center;position:absolute;left:0;right:0;padding:20px 22px;gap:15px;pointer-events:none;z-index:3;text-shadow:0 1px 5px #000;color:#e0e4d6;font-size:.625rem}.scene-frame-top{top:0;background:linear-gradient(#0c130dc9,transparent)}.scene-frame-top>.mono{font-size:.5625rem;letter-spacing:.12em}.scene-location{display:flex;gap:7px;align-items:center}.scene-location>.icon{width:13px;height:13px}.scene-frame-bottom{bottom:0;padding-top:48px;background:linear-gradient(transparent,#0c130df2);color:#b6c2a9;font-size:.5625rem}.scene-frame-bottom>.mono{letter-spacing:.1em;white-space:nowrap}.scene-frame-bottom>span:last-child{text-align:right}.image-fallback{position:absolute;inset:40% 20px auto;text-align:center;color:var(--muted);font-size:.875rem;background:var(--bg);padding:20px;z-index:2}
.hotspots{position:absolute;inset:0;pointer-events:none}.hotspot{position:absolute;pointer-events:auto;display:flex;align-items:center;width:max-content;max-width:235px;min-height:44px;gap:8px;transform:translate(-22px,-22px);padding:0;z-index:4;text-align:left;filter:drop-shadow(0 2px 8px #0007)}.hotspot--left{flex-direction:row-reverse;transform:translate(calc(-100% + 22px),-22px);text-align:right}.hotspot__marker{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border:1px solid #eadfc08f;background:#14190fd4;box-shadow:0 0 0 5px #1b211759;color:#e4e4d3;border-radius:50%;font-family:var(--font-mono);font-size:.6875rem;backdrop-filter:blur(4px);transition:background .18s,border-color .18s}.hotspot__marker .icon{width:15px;height:15px}.hotspot__text{background:#0f170ecf;backdrop-filter:blur(5px);border:1px solid #a8b08c45;padding:7px 10px;border-radius:2px;display:flex;flex-direction:column;gap:1px}.hotspot__text strong{font-size:.6875rem;font-weight:500;color:#eceddf;white-space:nowrap}.hotspot__text small{font-size:.5rem;color:#afbba1}.hotspot:hover .hotspot__marker,.hotspot:focus-visible .hotspot__marker{border-color:var(--accent-hover);background:#764234cc;color:#fff4df}.hotspot.is-done .hotspot__marker{border-color:#a9b994b0;color:#c7d8b1;background:#243220cf}.hotspot:hover{z-index:6}.hotspot.is-done .hotspot__text{opacity:.84}
html[data-show-hotspots=false] .hotspots{visibility:hidden}
.scene-narrative{display:grid;grid-template-columns:90px 1fr;gap:16px;padding:22px 0 14px;min-height:90px;align-items:baseline}.narrative-label{color:var(--accent);font-size:.625rem;letter-spacing:.03em;display:flex;align-items:center;gap:9px}.narrative-label:before{content:'';width:14px;height:1px;background:var(--accent)}.scene-narrative p{font-size:.75rem;color:#aab59d;line-height:1.9}
.field-notes{border:1px solid var(--line);padding:21px 21px 14px;background:linear-gradient(130deg,#1a211a80,transparent);display:flex;flex-direction:column;min-width:0}.field-notes__top{display:flex;align-items:center;justify-content:space-between;font-size:.5625rem;color:var(--subtle)}.field-notes__top .eyebrow{color:var(--accent);font-size:.5rem;letter-spacing:.14em}.field-notes__title{display:flex;justify-content:space-between;align-items:center;margin-top:12px;margin-bottom:23px;padding-bottom:18px;border-bottom:1px solid var(--line)}.field-notes__title h2{font-size:1rem;letter-spacing:.025em;font-weight:500}.field-notes__title .icon{color:#879278;width:17px;height:17px}.objective>.eyebrow{font-size:.5625rem;color:var(--subtle);font-family:var(--font-body);letter-spacing:.015em}.objective>p{font-size:.8125rem;line-height:1.8;color:#dce0d0;margin-top:9px;padding-left:12px;border-left:2px solid var(--accent)}.investigation-progress{margin-top:24px}.investigation-progress>div:first-child{display:flex;justify-content:space-between;font-size:.5625rem;color:var(--muted);margin-bottom:9px}.investigation-progress strong{color:#bec9b0;font-size:.5625rem}.progress-track{height:2px;background:#333d2e}.progress-track>div{height:100%;background:var(--accent);transition:width .3s}
.investigation-list{margin:13px -9px 20px;display:flex;flex-direction:column;gap:2px}.investigation-item{display:flex;align-items:center;gap:10px;text-align:left;min-height:57px;width:100%;padding:9px;border:1px solid transparent;border-radius:2px}.investigation-item:hover{background:#222b20;border-color:#3d4a34}.investigation-item__number{display:grid;place-items:center;width:23px;flex:0 0 23px;color:var(--accent);font-family:var(--font-mono);font-size:.5625rem}.investigation-item__number>.icon{width:14px;height:14px;color:#b3c39f}.investigation-item__text{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}.investigation-item__text strong{font-size:.6875rem;font-weight:500}.investigation-item__text small{font-size:.5625rem;color:var(--subtle)}.investigation-item>.icon{width:13px;height:13px;color:#819272}.investigation-item.is-done .investigation-item__text strong{color:#a1b591}
.scene-actions{display:flex;flex-direction:column;gap:9px;margin-top:auto}.scene-actions>.eyebrow{margin-bottom:2px;font-size:.5625rem;color:var(--subtle);font-family:var(--font-body);letter-spacing:.02em}.scene-actions .primary-button,.scene-actions .action-button{padding:12px;min-height:58px;gap:10px}.scene-actions .button-copy strong{font-size:.6875rem}.scene-actions .button-copy small{font-size:.5625rem}.scene-actions .icon{width:15px;height:15px}.scene-actions .is-gated{background:#232b20;border-color:#48513c;color:#d5d9c6}.scene-actions .is-gated .button-copy small{color:#9ba990}.scene-actions .is-gated:hover{background:#303c29}.field-notes__foot{display:flex;align-items:center;gap:7px;margin-top:15px;font-size:.5rem;color:#93a183}.field-notes__foot>.icon{width:12px;height:12px}
.journey-track{display:flex;align-items:center;gap:32px;padding:21px 0 13px;border-top:1px solid var(--line-soft);margin-top:14px}.journey-step{display:flex;align-items:center;gap:10px;color:#8b987f;font-size:.625rem}.journey-step:not(:nth-child(3)):after{content:'';display:block;background:#384432;width:35px;height:1px;margin-left:15px}.journey-step .mono{font-size:.5625rem}.journey-step.is-current{color:#d8decf}.journey-step.is-current .mono{color:var(--accent)}.journey-count{margin-left:auto;color:#a4b397;font-size:.625rem}
.game-footer{display:flex;align-items:center;gap:20px;justify-content:space-between;min-height:58px;padding:16px 36px;border-top:1px solid var(--line-soft);color:#89987d;font-size:.5625rem}.save-status{display:flex;gap:7px;align-items:center;white-space:nowrap}.save-status>.icon{width:13px;height:13px}.save-status.has-error{color:var(--accent-hover)}.keyboard-hints{display:flex;align-items:center;gap:7px}.keyboard-hints>span{margin:0 6px;color:#475a3b}.footer-case{letter-spacing:.1em;color:#7f9071}.game-toast{position:fixed;bottom:78px;left:calc(var(--rail-width) + 36px);max-width:min(600px,calc(100vw - 145px));background:#273020f5;border:1px solid #627552;padding:13px 18px;display:flex;align-items:flex-start;gap:11px;font-size:.75rem;box-shadow:0 5px 30px #0006;z-index:15;backdrop-filter:blur(12px);pointer-events:none;animation:fade-rise .2s ease}.game-toast .icon{color:var(--accent);width:16px;height:16px;margin-top:2px}.save-error-banner{padding:12px 36px;display:flex;align-items:center;gap:16px;background:#3c261f;color:#f0b394;font-size:.75rem}.save-error-banner p{flex:1}
.is-night{--accent:#bd8263;--accent-hover:#db9f7c;--accent-wash:rgba(189,130,99,.1);--panel:#181c19}.is-night .mode-indicator .status-dot{background:var(--accent)}.is-night .game-topbar{background:#161912}.is-night .scene-frame-top{color:#ded7c6}
/* Investigation ending */
.ending-screen{min-height:100svh;position:relative;isolation:isolate;padding:30px clamp(24px,5.2vw,90px);background:var(--bg-deep);overflow:hidden}.ending-scenery{position:absolute;inset:0;z-index:-1;background-size:cover;background-position:center;opacity:.1;filter:blur(4px)}.ending-card{width:min(720px,100%);margin:45px auto 25px;padding:40px clamp(24px,4.2vw,58px);background:#121a13ed;border:1px solid #3a4833;text-align:center}.ending-seal{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 20px;border:1px solid #7e9970;border-radius:50%;color:#b5caa5}.ending-seal .icon{width:23px;height:23px}.ending-card>.eyebrow{color:var(--accent)}.ending-card h1{font-size:2.3rem;margin:18px 0 22px}.ending-summary{font-size:.8125rem;color:#b5c0aa;line-height:1.9}.ending-stats{display:grid;grid-template-columns:repeat(3,1fr);padding:26px 0;margin:30px 0 22px;border-top:1px solid #3d4a35;border-bottom:1px solid #3d4a35}.ending-stats>div{display:flex;flex-direction:column;align-items:center;gap:7px}.ending-stats>div+div{border-left:1px solid #3d4a35}.ending-stats strong{font-size:2.1rem;line-height:1;font-family:var(--font-mono);font-weight:400}.ending-stats small{font-size:.6875rem;color:#8d9e80}.ending-stats>div>span{font-size:.625rem;color:#a9b59e}.ending-checklist{display:grid;grid-template-columns:1fr 1fr;gap:13px;text-align:left;padding:0 0 25px}.ending-checklist>div{display:flex;gap:9px;align-items:center;font-size:.6875rem;color:#b4c1a6}.ending-checklist .icon{width:14px;height:14px;color:#97b480}.ending-lead{text-align:left;border-left:2px solid var(--accent);padding:14px 17px;background:#a7784210}.ending-lead .eyebrow{font-size:.5625rem;color:var(--accent)}.ending-lead h2{font-size:.9375rem;line-height:1.7;font-weight:500;margin:10px 0}.ending-lead p{font-size:.625rem;color:#a6b398;line-height:1.8}.ending-actions{display:flex;flex-direction:column;gap:10px;margin-top:28px}.ending-links{display:flex;justify-content:center;gap:30px;margin-top:15px}.ending-links .text-button{font-size:.6875rem}.ending-colophon{text-align:center;font-family:var(--font-serif);font-size:.8125rem;color:#93a17f;padding-bottom:20px}
.boot-screen{min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:22px;padding:32px}.boot-mark{font-family:var(--font-serif);font-size:4rem;color:var(--accent)}.boot-screen h1{font-family:var(--font-serif);font-weight:400;font-size:1.5rem}.boot-screen p{font-size:.8125rem;color:var(--muted);text-align:center;max-width:650px;line-height:1.8}.boot-error{color:var(--accent-hover)!important}
@keyframes fade-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes reveal-hall{from{opacity:0;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}
@media(min-width:1700px){.scene-layout{grid-template-columns:minmax(0,1fr) 330px}.scene-visual{min-height:560px}.title-content{gap:14vw;grid-template-columns:1fr 350px}.title-wordmark{font-size:10rem}}
@media(max-width:1190px){.title-content{grid-template-columns:1fr 295px;gap:5vw}.case-dossier{padding:24px 22px}.scene-layout{gap:18px;grid-template-columns:minmax(0,1fr) 280px}.game-content{padding:24px}.game-topbar,.game-footer{padding-left:24px;padding-right:24px}.scene-narrative{grid-template-columns:1fr;gap:9px;padding-top:18px}.scene-visual{min-height:460px}.hotspot__text{padding:6px 8px}.hotspot__text strong{font-size:.625rem}.journey-track{gap:14px}.journey-step:not(:nth-child(3)):after{width:20px;margin-left:4px}.keyboard-hints{gap:5px}.keyboard-hints>span{margin:0 2px}.footer-case{display:none}}
@media(max-width:960px){:root{--rail-width:68px}.title-screen{padding-left:32px;padding-right:32px}.title-content{grid-template-columns:1fr 265px;gap:30px}.title-wordmark{font-size:7rem}.title-kicker{font-size:.5625rem}.case-dossier{margin-top:90px;padding:22px 18px}.case-dossier h2{font-size:1.8rem}.title-phases{gap:25px}.headphone-tip{font-size:.5625rem;gap:8px}.title-controls{gap:20px;flex-wrap:wrap}.title-controls .primary-button{min-width:230px}.intro-card{margin-top:35px}.intro-copy{padding:30px}.intro-copy h1{font-size:2.6rem}.intro-number{font-size:4.5rem}.intro-photo__caption{left:24px;right:24px}.scene-layout{grid-template-columns:minmax(0,1fr) 252px;gap:16px}.field-notes{padding:17px 15px 13px}.game-content{padding:23px 20px 12px}.game-topbar,.game-footer{padding-left:20px;padding-right:20px}.scene-visual{min-height:440px}.hotspot__text{display:none}.hotspot:hover .hotspot__text,.hotspot:focus-visible .hotspot__text{display:flex}.scene-frame-top,.scene-frame-bottom{padding:16px 14px}.scene-frame-bottom{padding-top:40px}.scene-frame-bottom>span:last-child{max-width:210px}.journey-track{gap:10px}.journey-step:not(:nth-child(3)):after{display:none}.journey-count{font-size:.5625rem}.game-meta{gap:18px}.game-clock{padding-left:15px}.game-breadcrumb{gap:12px}.scene-title{font-size:1.6rem}.keyboard-hints{font-size:.5rem}.keyboard-hints kbd{font-size:.5rem}.rail-badge{right:10px}}
@media(max-width:760px){.title-header{gap:14px}.title-screen{padding:23px 24px 18px}.title-header__right{gap:4px}.edition-label{display:none}.title-content{grid-template-columns:1fr;gap:40px;min-height:0;padding:50px 0 34px}.title-hero{max-width:520px}.title-wordmark{font-size:clamp(6.2rem,19vw,8rem);letter-spacing:-.07em}.title-kicker{margin-bottom:20px}.title-tagline{font-size:1.125rem;margin-top:23px}.title-description{font-size:.8125rem;margin-top:16px;line-height:1.9}.title-controls{margin-top:25px;gap:22px;flex-wrap:nowrap}.title-controls .primary-button{min-width:215px;flex:1;max-width:330px}.title-controls .text-button{font-size:.6875rem}.title-save-note{font-size:.5625rem;line-height:1.8;align-items:flex-start}.title-save-note .icon{margin-top:3px}.title-scenery img{object-position:62% 0;object-fit:cover;max-height:980px}.title-scenery:after{background:linear-gradient(90deg,#0b110deb 0%,#0b110d8c 63%,#0b110d66 100%),linear-gradient(0deg,#0d120f 10%,transparent 65%)}.case-dossier{margin:0;max-width:none;width:100%;padding:20px 22px;display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.case-dossier__top{grid-column:1/-1;padding-bottom:16px}.case-dossier h2{font-size:1.65rem}.case-dossier__intro{margin-top:6px;align-self:center;font-size:.625rem}.case-facts{grid-column:1/-1;margin:20px 0 15px;padding:15px 0;gap:9px}.case-discrepancy{grid-column:1/-1;justify-content:center;gap:24px}.case-question{grid-column:1/-1;font-size:.625rem}.title-footer{flex-direction:column;align-items:flex-start;padding:20px 0 17px;gap:20px}.title-phases{gap:22px;width:100%;justify-content:space-between}.title-phases>div{gap:8px;font-size:.625rem}.title-colophon{font-size:.45rem;gap:15px}.headphone-tip{font-size:.625rem}.chapter-intro{padding:23px 24px}.intro-card{grid-template-columns:1fr;margin-top:36px}.intro-copy{padding:28px}.intro-photo{min-height:290px;grid-row:1}.intro-photo img{object-position:center 52%}.intro-photo__caption{bottom:20px;left:26px}.intro-photo__caption p{font-size:.9375rem;margin-top:8px}.intro-number{font-size:3.5rem;padding-top:23px}.intro-copy h1{font-size:2.7rem;margin-bottom:18px}.intro-description{font-size:.8125rem}.intro-meta{margin:24px 0;padding:21px 0}.intro-guide{font-size:.6875rem}.intro-footnote{font-size:.625rem}
  :root{--rail-width:0px}.game-rail{inset:auto 0 0;width:100%;height:68px;height:calc(68px + env(safe-area-inset-bottom));padding:0 18px env(safe-area-inset-bottom);border-right:0;border-top:1px solid var(--line);background:#0e140ff5;backdrop-filter:blur(12px);display:flex;flex-direction:row;z-index:40}.game-rail>.brand,.rail-footer{display:none}.rail-navigation{flex-direction:row;width:100%;margin:0;gap:0;justify-content:space-around}.rail-button{min-height:62px;border-left:0;border-top:2px solid transparent;width:25%;padding-top:7px;gap:6px;font-size:.5625rem}.rail-button.is-active{border-top-color:var(--accent);background:linear-gradient(180deg,var(--accent-wash),transparent)}.rail-badge{right:calc(50% - 23px);top:7px}.game-main{margin-left:0;padding-bottom:calc(68px + env(safe-area-inset-bottom))}.game-topbar{min-height:66px;padding:10px 20px;gap:12px}.game-breadcrumb{gap:10px;font-size:.6875rem}.game-breadcrumb>.mono{font-size:.5625rem;letter-spacing:.05em}.game-meta{gap:10px}.game-meta .mode-indicator{display:none}.game-clock{border:0;padding:0;gap:7px}.game-clock>.mono{font-size:.6875rem}.game-clock>.icon{width:16px;height:16px}.mobile-settings{display:inline-flex!important;width:34px;height:34px}.game-content{padding:22px 20px 10px}.scene-heading{margin-bottom:17px;gap:10px}.scene-heading .eyebrow{font-size:.5rem;letter-spacing:.09em}.scene-title{font-size:1.65rem;margin-top:7px}.scene-subtitle{font-size:.625rem;max-width:235px}.scene-tools{gap:6px;align-self:center}.scene-tools .icon-button{width:32px;height:36px}.scene-tools .icon{width:17px;height:17px}.scene-layout{grid-template-columns:1fr;gap:8px}.scene-visual{min-height:350px;height:54vh;max-height:550px;flex:auto}.scene-main{min-height:0}.hotspot__text{display:none!important}.hotspot__marker{background:#151c13de;width:44px;height:44px}.scene-frame-bottom>span:last-child{font-size:.5rem;max-width:230px}.scene-narrative{padding:18px 0 22px;gap:10px;min-height:0}.scene-narrative p{font-size:.75rem;line-height:1.85}.field-notes{padding:21px;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.field-notes__top,.field-notes__title,.objective{grid-column:1/-1}.field-notes__title{margin-bottom:18px;padding-bottom:15px}.field-notes__title h2{font-size:1.0625rem}.objective p{font-size:.875rem;max-width:560px}.investigation-progress{grid-column:1/-1;margin-top:24px}.investigation-progress>div:first-child,.investigation-progress strong{font-size:.625rem}.investigation-list{margin:13px -9px 12px;grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:3px 8px}.investigation-item{min-height:63px;gap:8px;padding:8px 6px}.investigation-item__text strong{font-size:.75rem}.investigation-item__text small{font-size:.625rem}.investigation-item__number{font-size:.625rem;width:22px;flex-basis:22px}.scene-actions{grid-column:1/-1;margin-top:8px;gap:10px}.scene-actions>.eyebrow{font-size:.625rem}.scene-actions .primary-button,.scene-actions .action-button{padding:15px 16px;min-height:61px}.scene-actions .button-copy strong{font-size:.8125rem}.scene-actions .button-copy small{font-size:.625rem}.field-notes__foot{grid-column:1/-1;font-size:.5625rem;margin-top:17px}.journey-track{padding:20px 0;gap:16px;flex-wrap:wrap;margin-top:20px}.journey-step{font-size:.5625rem;gap:7px}.journey-count{font-size:.5625rem;white-space:nowrap}.game-footer{min-height:48px;padding:14px 20px}.keyboard-hints{display:none}.game-toast{bottom:calc(84px + env(safe-area-inset-bottom));left:16px;right:16px;max-width:none;padding:13px 15px;font-size:.75rem}.save-error-banner{padding:12px 20px;font-size:.6875rem}.ending-screen{padding:23px 24px}.ending-screen .title-header>.eyebrow{font-size:.45rem;max-width:130px}.ending-card{margin-top:34px;padding:30px 23px}.ending-card h1{font-size:1.9rem}.ending-summary{font-size:.75rem}.ending-stats strong{font-size:1.75rem}.ending-stats>div>span{font-size:.5625rem}.ending-checklist{grid-template-columns:1fr;gap:12px}.ending-links{gap:22px}.ending-links .text-button{font-size:.625rem}.ending-colophon{font-size:.75rem}}
@media(max-width:430px){.brand-copy strong{font-size:.8125rem}.brand-mark{width:39px;height:41px;font-size:1.35rem}.brand{gap:11px}.title-header__right .icon-button{width:35px;height:37px}.title-content{padding-top:44px}.title-controls .primary-button{min-width:0}.title-controls{gap:19px}.title-controls .button-copy strong{font-size:.8125rem}.title-controls .button-copy small{font-size:.5625rem}.title-tagline{font-size:1.0625rem}.title-description{font-size:.75rem}.title-phases{gap:12px}.title-phases>div{gap:7px;font-size:.5625rem}.case-dossier{padding:18px;gap:0 16px}.case-discrepancy{gap:20px}.game-topbar{padding-left:16px;padding-right:13px;gap:7px}.game-breadcrumb{gap:8px}.game-breadcrumb>.mono{font-size:.5rem}.game-breadcrumb strong{font-size:.625rem}.game-clock .icon{display:none}.game-content{padding:19px 16px 6px}.scene-heading .eyebrow{font-size:.45rem}.scene-title{font-size:1.45rem}.scene-subtitle{font-size:.5625rem;max-width:230px}.scene-tools{gap:5px}.scene-tools .icon-button{width:30px;height:33px}.scene-visual{height:420px;min-height:340px}.scene-frame-top{padding:14px 12px}.scene-location{font-size:.5625rem}.scene-frame-top>.mono{font-size:.45rem}.scene-frame-bottom{padding-left:12px;padding-right:12px;font-size:.5rem}.scene-frame-bottom>span:last-child{max-width:175px}.field-notes{padding:19px 17px;gap:0 15px}.investigation-list{grid-template-columns:1fr}.investigation-item{padding:10px 8px;min-height:62px}.investigation-item__text strong{font-size:.8125rem}.investigation-item__text small{font-size:.625rem}.journey-track{gap:15px;justify-content:space-between}.journey-count{flex-basis:100%;text-align:right}.chapter-intro,.ending-screen{padding-left:18px;padding-right:18px}.intro-copy{padding:26px 23px}.intro-photo{min-height:250px}.intro-copy h1{font-size:2.4rem}.intro-description{font-size:.8125rem}.ending-card{padding:29px 21px}.ending-stats{gap:8px}.ending-stats strong{font-size:1.7rem}.ending-stats small{font-size:.6rem}.ending-stats>div>span{font-size:.5625rem}.ending-lead{padding-left:14px;padding-right:14px}}
@media(max-height:620px) and (min-width:761px){.title-content{min-height:630px}.title-wordmark{font-size:6.5rem}.scene-visual{height:420px;min-height:420px}.rail-navigation{margin-top:25px;gap:8px}.rail-footer{gap:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
html[data-reduced-motion=true]{scroll-behavior:auto}html[data-reduced-motion=true] *,html[data-reduced-motion=true] *:before,html[data-reduced-motion=true] *:after{animation:none!important;transition:none!important}

/* Touch targets stay usable on narrow screens, including at enlarged type. */
@media(max-width:760px){
  .scene-tools .icon-button,.mobile-settings,.title-header__right .icon-button{min-width:44px;min-height:44px}
  .scene-heading>div:first-child{min-width:0}.scene-tools{flex-shrink:0}
  .title-header__right .icon-button{width:44px;height:44px}
}
