:root{color-scheme:dark;--ink:#f7e6bf;--muted:#c4b296;--gold:#f4bd58;--red:#a7442b;--panel:#302319;--line:#6b5137}*{box-sizing:border-box}body{margin:0;background:#1b1611;color:var(--ink);font:16px/1.5 Georgia,serif}body:before{content:'';position:fixed;inset:0;pointer-events:none;opacity:.05;background:url('assets/town.jpg') center/cover;z-index:-1}button,a{touch-action:manipulation}button{font:600 14px/1.3 system-ui,sans-serif;cursor:pointer;background:#443021;border:1px solid #8c6843;color:var(--ink);padding:12px 17px;border-radius:6px;transition:background .2s,transform .2s}button:hover{background:#61452e}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible{outline:3px solid #ffdd8a;outline-offset:4px}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--gold);color:#2c1c0e;border-color:var(--gold);font-size:16px}a{color:var(--gold);text-decoration:none}[hidden]{display:none!important}header{height:68px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);background:#17120ee8}header>a{font:bold 13px system-ui;letter-spacing:.12em}.wordmark{font:bold 12px system-ui;letter-spacing:.15em;color:var(--muted)}.tools{display:flex;gap:8px}.tools button{padding:9px 13px}main{max-width:1500px;margin:auto;padding:28px 4vw}.eyebrow{font:bold 11px/1.5 system-ui;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}#title-screen{display:grid;grid-template-columns:minmax(280px, .9fr) 1.1fr;gap:6vw;align-items:center;max-width:1120px;margin:auto;padding:14px 0 40px}.cover-wrap{transform:rotate(-2deg);box-shadow:0 25px 70px #0009;border:5px solid #d8bc85}.cover-wrap img{width:100%;display:block;max-height:720px;object-fit:cover}.title-copy h1{font-size:clamp(48px,6vw,90px);line-height:.96;letter-spacing:-.05em;margin:22px 0}.title-copy h1 em{color:var(--gold);font-style:normal}.title-copy>p:not(.eyebrow){max-width:470px;font-size:19px}.title-actions{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0}.features{display:flex;gap:25px;border-top:1px solid var(--line);padding-top:22px;margin-top:30px;font:11px system-ui;letter-spacing:.12em}.muted{font:12px/1.6 system-ui;color:var(--muted)}.chapterbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 20px}.chapterbar h1{font-size:clamp(23px,3vw,36px);margin:3px 0;line-height:1.2}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px}.scene{position:relative;isolation:isolate;width:100%;aspect-ratio:3/2;min-height:320px;overflow:hidden;border:2px solid #8a6842;border-radius:10px;background:#99724e center/cover;box-shadow:0 16px 38px #0004}.scene-shade{position:absolute;inset:0;background:linear-gradient(#0005,transparent 25%,transparent 55%,#000a);pointer-events:none;z-index:1}.scene-label{position:absolute;top:15px;left:18px;right:18px;display:flex;justify-content:space-between;gap:10px;font:600 12px system-ui;letter-spacing:.06em;text-shadow:0 1px 4px #000;z-index:4}.scene-label span:first-child{background:#1c1711d9;padding:7px 10px;border-radius:4px}.scene-label span:last-child{align-self:center}.character{position:absolute;bottom:1%;width:27%;aspect-ratio:1;filter:drop-shadow(0 10px 8px #0007);background-size:400% 200%;border-radius:48% 48% 15% 15%;border:2px solid #d2af6655;animation:breathe 4s ease-in-out infinite;z-index:2}.character:after{content:attr(data-name);position:absolute;bottom:0;left:0;right:0;text-align:center;padding:4px;background:#22170ce8;font:11px system-ui;border-radius:0 0 8px 8px}.hotspot{position:absolute;transform:translate(-50%,-50%);z-index:3;max-width:190px;padding:8px 12px;background:#21170fe8;border-color:#f0c77d;color:#fff1ce;box-shadow:0 3px 10px #0007;font-size:12px;display:flex;gap:7px;align-items:center}.hotspot:before{content:'✦';color:var(--gold)}.hotspot:hover{background:#a44425;transform:translate(-50%,-50%) scale(1.04)}#speech{position:absolute;bottom:13px;left:4%;right:4%;z-index:5;text-align:center;padding:10px 15px;background:#17110be8;border:1px solid #a87a44;border-radius:6px;font-size:15px;pointer-events:none;opacity:0;transition:opacity .2s}#speech.show{opacity:1}.travel{display:flex;gap:8px;flex-wrap:wrap;padding:12px 0}.travel button{font-size:12px;padding:9px 12px}.travel button.active{background:#78603a;border-color:#f4bd58}.companions{display:flex;align-items:center;gap:18px;border-top:1px solid var(--line);padding-top:15px}#heroes{display:flex;gap:8px}.hero{display:flex;align-items:center;gap:7px;padding:5px 10px 5px 5px;white-space:nowrap}.hero[aria-pressed=true]{border-color:var(--gold);background:#785431}.portrait{display:inline-block;width:43px;height:43px;background-size:400% 200%;border-radius:50%;flex-shrink:0}#hero-help{font:12px/1.5 system-ui;color:var(--muted);margin:0}aside{background:linear-gradient(#39281c,#231b14);border:1px solid var(--line);border-radius:9px;padding:23px;display:flex;flex-direction:column;gap:20px;align-self:start}aside p{margin:0}aside h2{font-size:24px;line-height:1.25;margin:8px 0 12px}#objective-detail{font-size:14px;color:var(--muted)}.inventory{border-top:1px solid var(--line);padding-top:17px}#items{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}#items button{font-size:12px;padding:8px 10px}.aside-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.aside-actions button{font-size:12px;padding:10px 5px}#progress{display:flex;gap:5px}#progress span{height:5px;flex:1;background:#63503b}#progress span.done{background:#edb654}dialog{width:min(650px,94vw);max-height:88dvh;overflow:auto;background:#f6e9c8;color:#33251a;border:2px solid #ac8044;border-radius:12px;padding:27px 32px;box-shadow:0 25px 100px #0009;color-scheme:light}dialog::backdrop{background:#100d09cb;backdrop-filter:blur(4px)}.dialog-top{display:flex;align-items:center;justify-content:space-between}.dialog-top .eyebrow{color:#8e4c28}.dialog-top button{background:transparent;color:#513621;border:0;font-size:28px;padding:0 5px}dialog h2{font-size:30px;line-height:1.15;margin:15px 0}dialog p{line-height:1.65}#dialog-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}dialog button{background:#523923;color:#fff1d3;border-color:#8e6b3e}dialog .note{border-left:3px solid #ad733b;padding:10px 15px;background:#e7d8b6;font:14px/1.65 system-ui}.dialog-face{float:left;width:90px;height:90px;margin:4px 18px 10px 0;border-radius:50%;background-size:400% 200%;border:3px solid #c49d62}.puzzle-row{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin:20px 0}.puzzle-row button.selected{background:#a34629;box-shadow:0 0 0 3px #bf9b56}.puzzle-feedback{min-height:26px;font:bold 14px/1.5 system-ui;color:#8b3823}.card{position:relative;min-width:66px;height:100px;background:#fffaf0!important;color:#25201b!important;border:2px solid #947b54;border-radius:8px;display:flex;align-items:center;justify-content:center;font:bold 25px Georgia;box-shadow:0 5px 0 #c7ad7e}.card.red{color:#b7382d!important}.card.held{border:3px solid #9d3f22;transform:translateY(-7px)}.card.held:after{content:'✓';position:absolute;bottom:3px;right:6px;font:12px system-ui;color:#84381e}.poker-stats{display:flex;justify-content:space-between;border-block:1px solid #bfa77d;padding:10px;font:13px system-ui}.logic-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.logic-grid button{padding:18px 10px}.clue-list{padding-left:20px;line-height:1.7}.photo-inset{width:100%;max-height:420px;object-fit:contain;background:#251d15;border:7px solid #77502d;box-shadow:0 6px 15px #0003}.seq-tile{min-width:105px}.timing-track{height:40px;background:linear-gradient(90deg,#a98153 0 35%,#88a05d 35% 65%,#a98153 65%);position:relative;border-radius:5px;overflow:hidden;margin:25px 0}.timing-pointer{height:100%;width:5px;background:#4a1c16;position:absolute;left:50%}.chapter-list{display:grid;gap:10px}.chapter-list button{text-align:left;padding:15px}.chapter-list .current{border:3px solid #b87a2e}.credits{font:13px/1.6 system-ui}.ending-photo{width:min(100%,350px);display:block;margin:20px auto;border:7px solid #7d5936;transform:rotate(-2deg)}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);background:#f5dfaa;color:#322317;padding:12px 22px;border-radius:6px;box-shadow:0 7px 30px #0008;z-index:20;opacity:0;pointer-events:none;font:14px system-ui;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}footer{max-width:1400px;margin:10px auto 25px;padding:0 4vw;color:#9f8c72;font:11px/1.6 system-ui;text-align:center}@keyframes breathe{50%{transform:translateY(-3px)}}@media(min-width:1500px){.scene{max-height:700px}}@media(max-width:1000px){.game-layout{grid-template-columns:minmax(0,1fr) 240px}aside{padding:16px}.wordmark{display:none}.hotspot{font-size:11px;padding:7px 9px}.companions{flex-wrap:wrap;gap:9px}}@media(max-width:750px){header{height:58px;padding:0 16px}main{padding:18px 12px}.game-layout{grid-template-columns:1fr;gap:15px}aside{display:grid;grid-template-columns:1fr 1fr;gap:15px}.objective{grid-column:1/-1}.objective h2{font-size:22px}.inventory{border:0;padding:0}.aside-actions{align-self:center}#progress,#save-status{grid-column:1/-1}.chapterbar{margin-bottom:12px}.chapterbar button{font-size:12px}.scene{min-height:330px}.character{width:25%}.scene-label{top:10px;left:10px;right:10px;font-size:10px}.hotspot{font-size:10px;padding:7px;max-width:145px}.title-copy h1{font-size:48px}#title-screen{gap:25px;grid-template-columns:.85fr 1fr}.title-copy>p:not(.eyebrow){font-size:15px}.features{gap:10px;font-size:9px}.title-actions button{width:100%}dialog{padding:20px}.card{min-width:49px;height:78px;font-size:21px}.puzzle-row{gap:6px}}@media(max-width:480px){#title-screen{grid-template-columns:1fr}.cover-wrap{max-width:280px;margin:10px auto}.title-copy{text-align:center}.title-copy h1{font-size:50px;margin-top:10px}.title-copy .title-actions,.features{justify-content:center}.title-copy>p{margin-inline:auto}.scene{aspect-ratio:1.1;min-height:340px}.hotspot{max-width:115px;font-size:10px}.scene-label span:last-child{display:none}aside{padding:15px}.companions{justify-content:space-between}#hero-help{width:100%}.hero{font-size:12px}.portrait{width:34px;height:34px}.tools{gap:4px}.tools button{padding:8px 11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.wall-photo{position:absolute;right:12%;top:12%;width:14%;height:22%;object-fit:cover;border:4px solid #bc9051;box-shadow:0 2px 7px #0008;z-index:1;transform:rotate(-2deg)}
