@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Instrument+Serif:ital@0;1&family=Manrope:wght@400;600;700&display=swap');
.dream-veil.dream-archivist{background:radial-gradient(circle at 50% 31%,rgba(160,137,91,.24),transparent 21%),linear-gradient(180deg,#090907 0 54%,#14110c 100%)}.dream-veil.dream-archivist::before{background:repeating-linear-gradient(90deg,transparent 0 83px,rgba(205,183,130,.035) 84px,transparent 86px 168px);animation-duration:28s}.dream-veil.dream-archivist::after{border-radius:3%;background:radial-gradient(ellipse at center,rgba(117,95,52,.14),rgba(8,8,6,.97) 64%)}.dream-veil.dream-archivist .dream-moon{border-radius:4px;background:linear-gradient(145deg,#d2c6aa,#81765e 58%,#312d25);box-shadow:0 0 76px rgba(209,185,126,.12);opacity:.52}.dream-veil.dream-archivist .dream-water{border-radius:2%;border-color:rgba(205,183,130,.2);box-shadow:0 0 0 24px rgba(150,124,72,.025),0 0 0 58px rgba(150,124,72,.018)}
.dialogue.archivist-speaker{border-color:rgba(190,165,106,.52);box-shadow:0 24px 80px #000,0 0 0 1px rgba(190,165,106,.08)}.dialogue.archivist-speaker #speaker{color:#c8ad70;font-family:DM Mono,monospace;letter-spacing:.25em}.dialogue.archivist-speaker .line{font-family:DM Mono,monospace;font-size:clamp(1rem,1.65vw,1.3rem);line-height:1.55;color:#ddd4c1}.dialogue.archivist-speaker .portrait{background:radial-gradient(circle at 50% 35%,#5a513e 0 10%,#292720 33%,#0c0d0c 72%);border-right-color:rgba(190,165,106,.4)}
.dialogue.animal-speaker{border-color:rgba(177,102,72,.58);box-shadow:0 24px 80px #000,0 0 0 1px rgba(177,102,72,.12)}.dialogue.animal-speaker #speaker{color:#d08a69;font-family:Manrope,sans-serif;font-weight:700;letter-spacing:.2em}.dialogue.animal-speaker .line{font-family:Manrope,sans-serif;font-size:clamp(1rem,1.7vw,1.3rem);font-weight:600;line-height:1.45;color:#ead8cc}.dialogue.animal-speaker .portrait{background:radial-gradient(circle at 50% 42%,#6d382c 0 7%,#291916 28%,#090707 72%);border-right-color:rgba(177,102,72,.46);color:#d08a69;text-shadow:0 0 28px rgba(208,138,105,.5)}
.voice-list [data-voice="archivist"] b{font-family:DM Mono,monospace;letter-spacing:.19em}.voice-list [data-voice="archivist"].active{border-color:rgba(190,165,106,.55);background:rgba(190,165,106,.07)}.voice-list [data-voice="archivist"].active em{color:#c8ad70}
.voice-list [data-voice="animal"] b{font-family:Manrope,sans-serif;font-weight:700;letter-spacing:.16em}.voice-list [data-voice="animal"].active{border-color:rgba(177,102,72,.6);background:rgba(177,102,72,.08)}.voice-list [data-voice="animal"].active em{color:#d08a69}
:root{--ink:#07131b;--paper:#e8e2d2;--amber:#e9a95b;--rust:#9b4038;--teal:#5b9ba0;--panel:rgba(5,15,22,.9);--line:rgba(232,226,210,.2)}
*{box-sizing:border-box}html,body{height:100%;margin:0;background:#03090e;color:var(--paper);font-family:Manrope,system-ui,sans-serif;overflow:hidden}button{font:inherit;color:inherit}button:focus-visible{outline:2px solid #fff;outline-offset:4px}kbd{font:500 .68rem DM Mono,monospace;background:#d6d3c8;color:#07131b;border-radius:3px;padding:3px 7px;box-shadow:0 2px 0 #777}
.title-screen{position:fixed;z-index:100;inset:0;width:100%;height:100%;padding:0;border:0;overflow:hidden;background:#010407;cursor:pointer;isolation:isolate;transition:opacity 4.2s ease}.title-screen[hidden]{display:none}.title-screen.menu-reveal{transition-duration:.8s}.title-screen-fill{position:absolute;z-index:-2;inset:-5%;background:#03080e url('assets/title/a-certain-kind-of-drowning-title.png') center/cover no-repeat;filter:blur(22px) brightness(.32) saturate(.72);transform:scale(1.08);transition:opacity .65s ease}.title-screen::after{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 50% 42%,transparent 18%,rgba(0,4,8,.38) 67%,rgba(0,2,5,.82));transition:background .65s ease}.title-screen>img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;filter:saturate(.88) contrast(1.04);transition:opacity .65s ease,transform 5s ease;transform:scale(1.002)}.title-continue{position:absolute;z-index:2;left:50%;bottom:max(4.5vh,28px);transform:translateX(-50%);padding:10px 18px;border:1px solid rgba(232,226,210,.42);background:rgba(2,8,13,.74);box-shadow:0 10px 40px #000;color:#f0e8d5;text-transform:uppercase;white-space:nowrap;font:500 clamp(.62rem,1vw,.78rem) DM Mono,monospace;letter-spacing:.22em;text-shadow:0 2px 12px #000;animation:title-prompt 2.2s ease-in-out infinite;transition:opacity .4s ease,color .35s ease,border-color .35s ease}.title-screen:hover .title-continue,.title-screen:focus-visible .title-continue,.title-screen.theme-playing .title-continue{border-color:var(--amber);color:var(--amber)}.title-screen.theme-playing>img{transform:scale(1.012)}.title-screen.to-black>img,.title-screen.to-black .title-screen-fill,.title-screen.to-black .title-continue{opacity:0}.title-screen.to-black::after{background:#000}.title-screen.reveal-room{opacity:0;pointer-events:none}@keyframes title-prompt{50%{opacity:.55;transform:translateX(-50%) translateY(2px)}}
#game{height:100%;position:relative;background:var(--ink);isolation:isolate}.scene{--local-light-opacity:.05;--interior-light-opacity:.04;height:100%;position:relative;overflow:hidden;cursor:crosshair}.backdrop,.occluder{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;user-select:none;pointer-events:none}.backdrop{z-index:0;filter:saturate(.9) contrast(1.025) brightness(1);transition:opacity .18s ease,filter .8s ease}.scene.transitioning .backdrop,.scene.transitioning .player,.scene.transitioning .companion{opacity:0}.scene.indoors .weather{opacity:.045;animation-play-state:paused}.scene.indoors .visibility-mask,.scene.indoors .area-occlusion-shade{opacity:var(--interior-light-opacity)}.scene.multi-area .occluder{display:none}.scene.phase-morning{--local-light-opacity:.1;--interior-light-opacity:.08}.scene.phase-midday{--local-light-opacity:.035;--interior-light-opacity:.025}.scene.phase-evening{--local-light-opacity:.5;--interior-light-opacity:.36}.scene.phase-night{--local-light-opacity:1;--interior-light-opacity:.76}.scene.phase-evening .backdrop,.scene.phase-evening .area-occlusion{filter:saturate(.86) contrast(1.035) brightness(.94)}.scene.phase-night .backdrop,.scene.phase-night .area-occlusion{filter:saturate(.8) contrast(1.055) brightness(.86)}.scene::after{content:"";position:absolute;z-index:70;inset:0;background:#000;opacity:0;pointer-events:none;transition:opacity 1.05s ease}.scene.sleep-transition::after{opacity:1}
.weather{position:absolute;z-index:1;inset:-24%;overflow:hidden;background-image:repeating-linear-gradient(108deg,transparent 0 25px,rgba(181,215,224,.1) 26px,transparent 27px 51px);animation:rain-far .8s linear infinite;opacity:.16;pointer-events:none;mix-blend-mode:screen;will-change:transform;contain:layout style paint}.weather::before,.weather::after{content:"";position:absolute;inset:-12%;pointer-events:none;will-change:transform}.weather::before{background-image:repeating-linear-gradient(108deg,transparent 0 53px,rgba(199,227,233,.16) 54px,rgba(199,227,233,.04) 55px,transparent 57px 96px);animation:rain-mid .56s linear infinite;opacity:.74}.weather::after{background-image:repeating-linear-gradient(108deg,transparent 0 101px,rgba(218,239,242,.28) 102px,rgba(218,239,242,.08) 104px,transparent 106px 173px);animation:rain-near .39s linear infinite;opacity:.48;filter:blur(.25px)}.scene[data-area="blackwaterHarbor"] .weather,.scene[data-area="blackwaterPier"] .weather,.scene[data-area="blackwaterPierEnd"] .weather{opacity:.23}.scene[data-area="blackwaterHarbor"] .weather::after,.scene[data-area="blackwaterPier"] .weather::after,.scene[data-area="blackwaterPierEnd"] .weather::after{opacity:.62}@keyframes rain-far{to{transform:translate3d(-22px,38px,0)}}@keyframes rain-mid{to{transform:translate3d(-31px,55px,0)}}@keyframes rain-near{to{transform:translate3d(-43px,76px,0)}}
.visibility-mask{position:absolute;z-index:2;left:0;top:0;width:36vmin;height:36vmin;border-radius:50%;pointer-events:none;opacity:var(--local-light-opacity);transition:opacity .8s ease;transform:translate3d(var(--light-x,47vw),var(--light-y,65vh),0) translate(-50%,-50%);background:radial-gradient(circle,rgba(0,0,0,.01) 0 38%,rgba(1,7,11,.1) 55%,rgba(1,6,10,.34) 77%,rgba(1,6,10,.62) 100%);box-shadow:0 0 0 100vmax rgba(1,6,10,.62);will-change:transform;contain:layout style}
.topbar{position:absolute;z-index:20;left:0;right:0;top:0;height:82px;display:flex;align-items:center;padding:0 32px;background:linear-gradient(180deg,rgba(3,9,14,.97),rgba(3,9,14,.68),transparent);gap:18px;pointer-events:none}.topbar button{pointer-events:auto}.brand{display:grid;grid-template-columns:12px auto;column-gap:12px}.brand i{width:9px;height:9px;background:var(--rust);border-radius:50%;grid-row:1/3;margin-top:5px;box-shadow:0 0 18px var(--rust)}.brand span,.eyebrow{font:500 .72rem DM Mono,monospace;letter-spacing:.16em;color:var(--amber)}.brand strong{font:400 1.3rem Instrument Serif,serif;letter-spacing:.02em}.meters{margin-left:auto;display:flex;gap:24px}.meters label,.health-meter{font:500 .68rem DM Mono,monospace;text-transform:uppercase;letter-spacing:.12em;color:#b9c4c4}.meters label>span,.health-meter>span{color:#fff;margin-left:6px}.meters i,.health-meter i{display:block;width:92px;height:2px;margin-top:6px;background:rgba(255,255,255,.18)}.meters b,.health-meter b{display:block;height:2px;background:var(--teal);transition:width .4s}.health-meter{pointer-events:none}.health-meter i{width:104px}.health-meter b{background:linear-gradient(90deg,#8f3937,#d76f63)}.text-button{border:1px solid var(--line);background:rgba(8,23,31,.62);padding:9px 13px;text-transform:uppercase;font:500 .7rem DM Mono,monospace;letter-spacing:.12em;cursor:pointer}.text-button:hover,.sound-button[aria-pressed="true"]{border-color:var(--amber)}.sound-button[aria-pressed="true"]{color:var(--amber)}.audio-controls{display:flex;align-items:center;gap:9px;pointer-events:auto}.volume-control{display:grid;grid-template-columns:auto 82px 34px;align-items:center;gap:7px;color:#b9c4c4;font:500 .6rem DM Mono,monospace;letter-spacing:.08em;text-transform:uppercase}.volume-control input{width:82px;accent-color:var(--amber);cursor:pointer}.volume-control output{color:var(--paper);font-variant-numeric:tabular-nums}
.cravings{position:absolute;z-index:19;left:50%;top:86px;transform:translateX(-50%);display:flex;gap:10px;padding:9px 11px;background:rgba(3,12,18,.76);border:1px solid var(--line);backdrop-filter:blur(10px);pointer-events:none}.craving{width:144px}.craving>span{display:flex;justify-content:space-between;gap:12px;color:#b9c4c4;font:500 .62rem DM Mono,monospace;letter-spacing:.1em;text-transform:uppercase}.craving>span b{font-weight:500}.craving output{color:#fff;font:inherit;font-variant-numeric:tabular-nums}.craving>i{display:block;height:4px;margin-top:6px;background:rgba(255,255,255,.13);overflow:hidden}.craving>i>b{display:block;width:0;height:100%;transition:width .35s ease}.craving-alcohol>i>b{background:linear-gradient(90deg,#b27a43,var(--amber))}.craving-nicotine>i>b{background:linear-gradient(90deg,#718589,#b9c4c4)}
.scene-title{position:absolute;z-index:7;left:32px;bottom:34px;display:flex;flex-direction:column;text-shadow:0 2px 18px #000;pointer-events:none}.scene-title small{font:500 .65rem DM Mono,monospace;letter-spacing:.2em;color:var(--amber)}.scene-title strong{font:400 clamp(2rem,5vw,5rem) Instrument Serif,serif;letter-spacing:.04em}.controls{position:absolute;z-index:8;right:28px;bottom:28px;display:grid;grid-template-columns:repeat(8,auto);align-items:center;gap:8px;color:#cad1cf;font:500 .65rem DM Mono,monospace;text-transform:uppercase;letter-spacing:.09em;background:rgba(4,13,19,.72);padding:10px 12px;border:1px solid var(--line)}
.player{position:absolute;z-index:5;left:0;top:0;width:clamp(66px,5.5vw,100px);height:clamp(88px,8vw,132px);transform:translate3d(var(--player-x,0px),var(--player-y,0px),0) translate(-50%,-100%) scale(var(--scale,1));transform-origin:50% 100%;pointer-events:none;filter:drop-shadow(0 9px 5px rgba(0,0,0,.8));will-change:transform;backface-visibility:hidden;contain:layout style}.player .sprite{position:absolute;inset:0;background-image:url('assets/detective-idle-v3.png');background-repeat:no-repeat;background-size:auto 200%;background-position:var(--frame-x,0%) var(--frame-y,0%);filter:contrast(1.08) saturate(.85);transform:translateZ(0);backface-visibility:hidden;will-change:transform}.player.walking .sprite{background-size:auto 100%;background-position:center bottom}.player.uncoated .sprite,.player.uncoated.walking .sprite{background-size:contain;background-position:center bottom}.player.facing-left .sprite{transform:scaleX(-1) translateZ(0)}.player>i{position:absolute;z-index:-1;left:19%;right:19%;bottom:0;height:10%;border-radius:50%;background:rgba(0,0,0,.75);filter:blur(3px)}
.player.withdrawal-crisis .sprite{left:17%;right:17%;background-image:url('assets/effects/withdrawal-crisis/barry-withdrawal-crisis-spread-v1.png')!important;background-size:600% 100%!important;background-position:0 100%!important;filter:contrast(1.08) saturate(.68) brightness(1.03) drop-shadow(0 0 5px rgba(167,205,202,.18));animation:withdrawal-crisis-frames 1.8s steps(5,end) infinite alternate,withdrawal-crisis-tremor .22s steps(2,end) infinite}.scene.withdrawal-crisis .visibility-mask{animation:withdrawal-light-pulse 2.8s ease-in-out infinite}@keyframes withdrawal-crisis-frames{to{background-position:100% 100%}}@keyframes withdrawal-crisis-tremor{0%{transform:translate3d(-.7px,0,0)}100%{transform:translate3d(.7px,-.4px,0)}}@keyframes withdrawal-light-pulse{0%,100%{filter:none}50%{filter:saturate(.72) contrast(1.04)}}
.companion{position:absolute;z-index:4;left:0;top:0;width:clamp(50px,4.4vw,76px);height:clamp(50px,4.4vw,76px);transform:translate3d(var(--dog-x,0px),var(--dog-y,0px),0) translate(-50%,-100%) scale(var(--dog-scale,1));transform-origin:50% 100%;pointer-events:none;filter:drop-shadow(0 7px 4px rgba(0,0,0,.72));will-change:transform;backface-visibility:hidden;contain:layout style}.companion-sprite{position:absolute;inset:0;background:url('assets/laika/idle-stand.png') center bottom/contain no-repeat;filter:contrast(1.05) saturate(.84);transform:translateZ(0);backface-visibility:hidden;will-change:transform}.companion.facing-left .companion-sprite{transform:scaleX(-1) translateZ(0)}.companion>i{position:absolute;z-index:-1;left:22%;right:22%;bottom:4%;height:9%;border-radius:50%;background:rgba(0,0,0,.7);filter:blur(3px)}
.pet-interaction{position:absolute;z-index:5;left:0;top:0;height:clamp(88px,8vw,132px);aspect-ratio:362/724;transform:translate3d(var(--pet-x,0px),var(--pet-y,0px),0) translate(-50%,-100%) scale(var(--pet-scale,1));transform-origin:50% 100%;pointer-events:none;filter:drop-shadow(0 9px 5px rgba(0,0,0,.8));will-change:transform}.pet-interaction.mode-pet-uncoated{aspect-ratio:420/724}.pet-interaction[hidden]{display:none}.pet-interaction img{display:block;width:100%;height:100%;object-fit:contain}.pet-interaction.mode-pet-coated{aspect-ratio:440/725}.scene.petting .player,.scene.petting .companion,.scene.smoking .player{opacity:0}
.walk-target{position:absolute;z-index:4;width:24px;height:12px;border:1px solid rgba(233,169,91,.75);border-radius:50%;transform:translate(-50%,-50%);opacity:0;pointer-events:none}.walk-target.show{animation:target .7s ease-out}@keyframes target{0%{opacity:1;transform:translate(-50%,-50%) scale(.4)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.5)}}
.hotspot{position:absolute;z-index:4;left:var(--x);top:var(--y);transform:translate(-50%,-50%) scale(.7);border:0;background:transparent;cursor:default;display:flex;align-items:center;gap:7px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}.hotspot[hidden]{display:none}.hotspot.visible{opacity:.56;transform:translate(-50%,-50%) scale(1)}.hotspot.near{opacity:1;pointer-events:auto;cursor:pointer}.hotspot span{width:30px;height:30px;border:1px solid rgba(255,255,255,.75);background:rgba(3,12,18,.8);border-radius:50%;display:grid;place-items:center;font:500 .78rem DM Mono,monospace;box-shadow:0 0 0 6px rgba(3,12,18,.22),0 0 24px rgba(233,169,91,.3)}.hotspot b{background:rgba(4,13,19,.9);padding:6px 9px;font:500 .68rem DM Mono,monospace;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.hotspot small{display:none}.hotspot.visible:not(.near) small{display:block;position:absolute;top:36px;left:36px;white-space:nowrap;color:#a8b4b4;font:500 .56rem DM Mono,monospace;text-transform:uppercase}.hotspot.near span{background:var(--amber);color:var(--ink);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{50%{box-shadow:0 0 0 9px rgba(233,169,91,.08),0 0 30px rgba(233,169,91,.6)}}
.area-triggers{position:absolute;z-index:13;inset:0;overflow:hidden;pointer-events:none}.area-trigger{position:absolute;left:var(--x);top:var(--y);max-width:calc(100% - 28px);transform:translate(-50%,-50%) scale(.82);display:flex;align-items:center;gap:7px;border:0;background:transparent;opacity:0;pointer-events:none;transition:opacity .22s,transform .22s;cursor:default}.area-trigger.visible{opacity:.58;transform:translate(-50%,-50%) scale(1)}.area-trigger.available{pointer-events:auto;cursor:pointer}.area-trigger.near{opacity:1}.area-trigger span{width:28px;height:28px;min-width:28px;border:1px solid rgba(255,255,255,.72);background:rgba(3,12,18,.82);border-radius:50%;display:grid;place-items:center;font:500 .72rem DM Mono,monospace;box-shadow:0 0 0 5px rgba(3,12,18,.2)}.area-trigger b{min-width:0;overflow:hidden;text-overflow:ellipsis;padding:6px 9px;background:rgba(4,13,19,.9);font:500 .65rem DM Mono,monospace;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.area-trigger.near span{border-color:var(--amber);color:var(--amber);box-shadow:0 0 20px rgba(233,169,91,.35)}
.npc:focus,.companion:focus,.hotspot:focus,.area-trigger:focus,.scene-prop:focus{outline:none}
.npc{position:absolute;z-index:3;left:var(--npc-x);top:var(--npc-y);width:clamp(78px,7.4vw,132px);padding:0;border:0;background:transparent;transform:translate(-50%,-100%);filter:drop-shadow(0 8px 6px rgba(0,0,0,.72));cursor:pointer}.npc[hidden]{display:none}.npc img{display:block;width:100%;height:auto;pointer-events:none;transition:filter .2s,transform .2s}.npc>span{position:absolute;left:50%;bottom:-26px;min-width:150px;padding:6px 9px;background:rgba(4,13,19,.92);border:1px solid var(--line);transform:translateX(-50%) translateY(5px);opacity:0;transition:.2s;pointer-events:none;text-align:center}.npc>span b,.npc>span small{display:block;white-space:nowrap}.npc>span b{font:500 .66rem DM Mono,monospace;letter-spacing:.1em;text-transform:uppercase}.npc>span small{margin-top:2px;color:#aab5b5;font-size:.58rem}.npc:hover img,.npc:focus-visible img,.npc.near img{filter:brightness(1.14) drop-shadow(0 0 10px rgba(233,169,91,.36));transform:translateY(-2px)}.npc:hover>span,.npc:focus-visible>span,.npc.near>span{opacity:1;transform:translateX(-50%) translateY(0)}.npc-mara{--npc-x:57%;--npc-y:42%}
.npc-felix{--npc-x:14%;--npc-y:46%;width:auto;height:var(--npc-height,clamp(165px,15vw,250px));z-index:4}
.npc-felix img{width:auto;height:100%;margin:auto}
.npc-messenger{width:auto;height:var(--npc-height,clamp(185px,15.5vw,285px));z-index:4}.npc-messenger.approaching{transition:left 1.12s ease-in-out,top 1.12s ease-in-out}.npc-messenger img{width:auto;height:100%;margin:auto}
.npc-ward{--npc-x:27%;--npc-y:49%;width:auto;height:var(--npc-height,clamp(220px,18vw,300px));z-index:4;transition:left 1.45s ease-in-out,top 1.45s ease-in-out}.npc-ward.arrival-start{transition:none!important}.npc-ward img{width:auto;height:100%;margin:auto}.npc-ward.arriving img{animation:ward-arrival-step .34s ease-in-out infinite alternate}@keyframes ward-arrival-step{to{transform:translateY(-3px)}}
.npc-maeve{width:auto;height:var(--npc-height,clamp(210px,19vw,320px));z-index:4}.npc-maeve img{width:auto;height:100%;margin:auto}
.npc-voss{width:auto;height:var(--npc-height,clamp(245px,22vw,390px));z-index:4}.npc-voss img{width:auto;height:100%;margin:auto}
.npc-pawnkeeper{width:auto;height:var(--npc-height,clamp(205px,18vw,320px));z-index:4}.npc-pawnkeeper img{width:auto;height:100%;margin:auto}
.npc-rusk{width:auto;height:var(--npc-height,clamp(170px,14.5vw,250px));z-index:4}.npc-rusk img{width:auto;height:100%;margin:auto}
.npc-judith{width:auto;height:var(--npc-height,clamp(210px,18vw,310px));z-index:4}.npc-judith img{width:auto;height:100%;margin:auto}.npc-judith.arriving{transition:left 1.7s ease-in-out,top 1.7s ease-in-out}.npc-judith.arriving img{animation:judith-arrival-step .34s ease-in-out infinite alternate}@keyframes judith-arrival-step{to{transform:translateY(-3px)}}
.npc-tommy,.npc-mina,.npc-bookie,.npc-della,.npc-clara,.npc-victor{width:auto;height:var(--npc-height,clamp(220px,19vw,330px));z-index:4}.npc-tommy img,.npc-mina img,.npc-bookie img,.npc-della img,.npc-clara img,.npc-victor img{width:auto;height:100%;margin:auto}.npc-mina{height:var(--npc-height,clamp(230px,20vw,350px))}.npc-bookie{height:var(--npc-height,clamp(190px,16vw,280px))}.npc-della{height:var(--npc-height,clamp(190px,16.5vw,285px))}.npc-clara{height:var(--npc-height,clamp(230px,20vw,350px))}.npc-victor{height:var(--npc-height,clamp(245px,21vw,370px))}
.npc-moss{width:auto;height:var(--npc-height,clamp(235px,20vw,355px));z-index:4}.npc-moss img{width:auto;height:100%;margin:auto}
.npc-solomon{width:auto;height:var(--npc-height,180px);z-index:4}.npc-solomon img{width:auto;height:100%;margin:auto}.prop-harbor-bicycle{left:43%;top:72%;width:clamp(145px,13vw,250px);height:auto;transform:rotate(-4deg)}.prop-harbor-bicycle:hover,.prop-harbor-bicycle:focus-visible,.prop-harbor-bicycle.near{transform:rotate(-4deg) translateY(-2px)}
.bike-race{position:absolute;z-index:18;inset:0;overflow:hidden;pointer-events:none;background:linear-gradient(180deg,rgba(2,8,13,.08),rgba(2,8,13,.28));isolation:isolate}.bike-race[hidden]{display:none}.bike-race-banner{position:absolute;z-index:3;left:50%;top:12%;transform:translateX(-50%);padding:9px 18px;border:1px solid rgba(232,226,210,.28);background:rgba(4,13,19,.8);text-align:center;box-shadow:0 12px 40px #000}.bike-race-banner small,.bike-race-banner strong{display:block}.bike-race-banner small{font:500 .58rem DM Mono,monospace;letter-spacing:.18em;color:var(--amber)}.bike-race-banner strong{margin-top:3px;font:400 1.25rem Instrument Serif,serif;letter-spacing:.05em}.race-rider,.race-laika{position:absolute;left:9%;top:76%;transform-origin:50% 100%;will-change:transform;animation:race-up-pier var(--race-duration,4.2s) cubic-bezier(.18,.68,.26,1) var(--race-delay,0s) both}.race-rider img{display:block;filter:drop-shadow(0 8px 7px rgba(0,0,0,.75))}.race-solomon{z-index:2;left:8%;top:72%;width:clamp(190px,20vw,360px)}.race-solomon img{width:100%;height:auto}.race-barry{z-index:2;left:6%;top:79%;width:clamp(190px,19vw,340px);height:clamp(120px,13vw,230px)}.race-bike{position:absolute;left:0;bottom:0;width:100%;height:auto}.race-barry-body{position:absolute;z-index:1;left:36%;bottom:31%;width:29%;height:72%;object-fit:contain;transform:rotate(-13deg);transform-origin:50% 88%;filter:drop-shadow(0 6px 6px rgba(0,0,0,.7))}.race-laika{z-index:1;left:4%;top:84%;width:clamp(76px,7vw,126px);--race-delay:.2s}.race-laika img{width:100%;height:auto;filter:drop-shadow(0 5px 5px rgba(0,0,0,.75))}.bike-race.win .race-barry{--race-duration:3.7s}.bike-race.win .race-solomon{--race-duration:4.35s}.bike-race.win .race-laika{--race-duration:4s}.bike-race.lose .race-barry{--race-duration:4.35s}.bike-race.lose .race-solomon{--race-duration:3.65s}.bike-race.lose .race-laika{--race-duration:4.05s}.bike-race button{position:absolute;z-index:4;right:22px;bottom:22px;pointer-events:auto;padding:9px 13px;border:1px solid var(--line);background:rgba(4,13,19,.86);text-transform:uppercase;font:500 .62rem DM Mono,monospace;letter-spacing:.12em;cursor:pointer}.bike-race button:hover,.bike-race button:focus-visible{border-color:var(--amber);color:var(--amber)}.scene.race-running>.player,.scene.race-running>.companion,.scene.race-running>.npc,.scene.race-running>.npc-character-plane,.scene.race-running>.scene-prop,.scene.race-running>.area-triggers{opacity:0;pointer-events:none}@keyframes race-up-pier{0%{transform:translate3d(0,0,0) scale(1)}18%{transform:translate3d(10vw,-7vh,0) scale(.88) rotate(-1deg)}52%{transform:translate3d(32vw,-26vh,0) scale(.63) rotate(1deg)}100%{transform:translate3d(67vw,-57vh,0) scale(.34)}}
@media(max-width:800px){.bike-race-banner{top:16%}.race-solomon{width:230px}.race-barry{width:220px}.race-laika{width:82px}}
.race-barry{top:77%;width:clamp(210px,21vw,390px);height:auto}.race-barry-rider{width:100%;height:auto}
@media(prefers-reduced-motion:reduce){.race-rider,.race-laika{animation-duration:.8s!important}}
.scene button:focus-visible{outline:none}.scene button{-webkit-tap-highlight-color:transparent}.scene-prop{position:absolute;z-index:4;padding:0;border:0;background:transparent;cursor:pointer;opacity:1;visibility:visible;filter:brightness(1.08) drop-shadow(0 5px 5px rgba(0,0,0,.78)) drop-shadow(0 0 3px rgba(233,169,91,.22));transition:filter .2s,transform .2s}.scene-prop[hidden]{display:none}.scene-prop img{display:block;width:100%;height:100%;object-fit:contain}.scene-prop:hover,.scene-prop:focus-visible{filter:brightness(1.48) drop-shadow(0 0 3px rgba(255,246,217,.96)) drop-shadow(0 0 13px rgba(233,169,91,.9));transform:translateY(-2px)}.scene-prop.near{filter:brightness(1.25) drop-shadow(0 0 9px rgba(233,169,91,.6));transform:translateY(-2px)}.prop-bottle{left:24.8%;top:49.4%;width:clamp(50px,4vw,76px);height:clamp(110px,10.4vw,184px)}.prop-ledger{left:70.7%;top:34%;width:clamp(58px,5.1vw,88px);height:clamp(48px,4.3vw,75px);transform:rotate(-6deg)}.prop-ledger:hover,.prop-ledger:focus-visible,.prop-ledger.near{transform:rotate(-6deg) translateY(-2px)}.prop-coat{left:6.71875%;top:37.4074%;width:4.375%;height:18.5185%;min-width:0;min-height:0;filter:none;transform:none}.prop-coat img{opacity:0;transition:opacity .16s,filter .16s}.prop-coat:hover,.prop-coat:focus-visible,.prop-coat.near{filter:none;transform:none}.prop-coat:hover img,.prop-coat:focus-visible img{opacity:.82;filter:brightness(1.58) saturate(.78) drop-shadow(0 0 3px rgba(255,246,217,.98)) drop-shadow(0 0 12px rgba(233,169,91,.92))}
.prop-satchel{left:30%;top:54%;width:clamp(90px,8.5vw,155px);height:clamp(70px,6.5vw,120px);transform:rotate(-7deg)}.prop-satchel:hover,.prop-satchel:focus-visible,.prop-satchel.near{transform:rotate(-7deg) translateY(-2px)}
.prop-pier-whiskey{left:35.2%;top:48.5%;width:clamp(34px,3vw,58px);height:clamp(76px,7vw,126px);transform:rotate(7deg)}.prop-pier-whiskey:hover,.prop-pier-whiskey:focus-visible,.prop-pier-whiskey.near{transform:rotate(7deg) translateY(-2px)}
.objective{position:absolute;z-index:12;left:26px;top:92px;display:grid;max-width:min(360px,40vw);padding:11px 14px;border-left:2px solid var(--amber);background:rgba(4,13,19,.84);box-shadow:0 10px 30px rgba(0,0,0,.28);transition:opacity .25s,transform .25s}.objective[hidden]{display:none}.objective small{color:var(--amber);font:500 .56rem DM Mono,monospace;letter-spacing:.14em}.objective strong{margin-top:3px;font:400 1.16rem Instrument Serif,serif}.objective span{margin-top:2px;color:#aab5b5;font-size:.68rem}
.objective-update{position:absolute;z-index:42;left:50%;top:20%;display:grid;width:min(540px,calc(100vw - 36px));padding:18px 22px 20px;transform:translate(-50%,-18px);border:1px solid rgba(206,153,73,.72);border-left:4px solid var(--amber);background:linear-gradient(100deg,rgba(3,11,16,.97),rgba(8,24,29,.94));box-shadow:0 18px 70px rgba(0,0,0,.62),0 0 32px rgba(206,153,73,.12);opacity:0;pointer-events:none}.objective-update[hidden]{display:none}.objective-update.show{animation:objective-reveal 4.2s ease both}.objective-update small{color:var(--amber);font:600 .62rem DM Mono,monospace;letter-spacing:.22em}.objective-update strong{margin-top:5px;color:#f0eadc;font:400 clamp(1.45rem,3vw,2.05rem) Instrument Serif,serif}.objective-update span{margin-top:5px;color:#bac5c3;font-size:.78rem;line-height:1.45}#caseButton.casebook-discovery{border-color:var(--amber);color:var(--amber);animation:casebook-discovery 1.65s ease-in-out infinite}@keyframes objective-reveal{0%{opacity:0;transform:translate(-50%,-22px)}10%,76%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,10px)}}@keyframes casebook-discovery{50%{box-shadow:0 0 18px rgba(233,169,91,.42);background:rgba(233,169,91,.11)}}
.companion.interactable{pointer-events:auto;cursor:pointer;border:0;background:transparent;padding:0}.companion.interactable:hover .companion-sprite,.companion.interactable:focus-visible .companion-sprite,.companion.interactable.near .companion-sprite{filter:brightness(1.16) contrast(1.05) saturate(.84) drop-shadow(0 0 7px rgba(233,169,91,.48))}
.interact-prompt{position:absolute;z-index:15;left:50%;bottom:80px;transform:translateX(-50%);min-height:30px;padding:7px 12px;background:rgba(4,13,19,.84);border:1px solid var(--line);opacity:0;font:500 .7rem DM Mono,monospace;letter-spacing:.1em;text-transform:uppercase;pointer-events:none;transition:.2s}.interact-prompt.show{opacity:1}.interact-prompt kbd{margin-right:8px}
.occluder{z-index:6;filter:saturate(.8) contrast(1.08) brightness(.88);-webkit-mask-image:radial-gradient(circle 16vmin at var(--px) var(--py),#000 0 55%,transparent 100%);mask-image:radial-gradient(circle 16vmin at var(--px) var(--py),#000 0 55%,transparent 100%)}.occ-tree{clip-path:polygon(0 0,25% 0,24% 48%,17% 65%,0 72%)}.occ-lamp{clip-path:polygon(41% 49%,42.4% 49%,42.4% 84%,41% 84%,41% 62%,38.5% 62%,38.5% 55%,41% 55%)}.occ-foreground{clip-path:polygon(0 68%,31% 66%,49% 100%,0 100%)}
.area-occlusion{position:absolute;z-index:5;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;user-select:none;filter:saturate(.9) contrast(1.025) brightness(1);transition:filter .8s ease}
.area-occlusion-shade{position:absolute;z-index:5;inset:0;pointer-events:none;overflow:hidden;opacity:var(--local-light-opacity);transition:opacity .8s ease;-webkit-mask-image:var(--occlusion-mask);mask-image:var(--occlusion-mask);-webkit-mask-size:cover;mask-size:cover;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.area-occlusion-shade::before{content:"";position:absolute;left:0;top:0;width:36vmin;height:36vmin;border-radius:50%;transform:translate3d(var(--light-x,47vw),var(--light-y,65vh),0) translate(-50%,-50%);background:radial-gradient(circle,rgba(0,0,0,.01) 0 38%,rgba(1,7,11,.1) 55%,rgba(1,6,10,.34) 77%,rgba(1,6,10,.62) 100%);box-shadow:0 0 0 100vmax rgba(1,6,10,.62);will-change:transform;contain:layout style}.area-occlusion-shade[hidden]{display:none}
.effect-definitions{position:absolute;inset:0;pointer-events:none}
.psychedelic-afterglow{--psych-opacity:0;--psych-backdrop:none;position:absolute;z-index:7;inset:0;overflow:hidden;opacity:0;pointer-events:none;transition:opacity 2.6s ease;isolation:isolate}.psychedelic-afterglow.active{opacity:var(--psych-opacity)}.psychedelic-afterglow.active .psych-scene-echo{will-change:transform}.psychedelic-afterglow.active .psych-lens,.psychedelic-afterglow.active .psych-spectrum-seams{will-change:transform}.psychedelic-afterglow:not(.active) .psych-scene-echo,.psychedelic-afterglow:not(.active) .psych-lens,.psychedelic-afterglow:not(.active) .psych-spectrum-seams{animation-play-state:paused}.psych-scene-echo,.psych-lens,.psych-spectrum-seams{position:absolute;inset:-1.5%;display:block;pointer-events:none}.psych-scene-echo{background-image:var(--psych-backdrop);background-position:center;background-size:cover;background-repeat:no-repeat;filter:saturate(1.7) contrast(1.06)}.psych-echo-a{opacity:.16;mix-blend-mode:screen;animation:psych-echo-a 15s ease-in-out infinite alternate}.psych-echo-b{opacity:.11;mix-blend-mode:color-burn;filter:saturate(2.1) hue-rotate(105deg) contrast(1.08) brightness(1.05);animation:psych-echo-b 19s ease-in-out infinite alternate}.psych-lens{inset:-20%;opacity:.28;mix-blend-mode:soft-light;filter:blur(10px) saturate(1.35);background:radial-gradient(circle at 50% 50%,transparent 0 13%,rgba(75,230,214,.38) 22%,rgba(192,85,227,.3) 29%,rgba(238,175,70,.22) 35%,transparent 47%)}.psych-lens-a{animation:psych-lens-a 27s ease-in-out infinite alternate}.psych-lens-b{opacity:.2;animation:psych-lens-b 34s ease-in-out infinite alternate-reverse}.psych-spectrum-seams{inset:0;opacity:.13;mix-blend-mode:color-dodge;background:repeating-linear-gradient(116deg,transparent 0 43px,rgba(70,225,211,.17) 44px,transparent 45px 91px,rgba(209,83,225,.14) 92px,transparent 94px 141px,rgba(233,162,63,.12) 142px,transparent 144px);filter:blur(.45px);animation:psych-spectrum-drift 21s linear infinite}@keyframes psych-echo-a{0%{transform:translate3d(-1px,0,0) scale(1.003)}50%{transform:translate3d(1.4px,-.7px,0) scale(1.006)}100%{transform:translate3d(-.4px,1px,0) scale(1.004)}}@keyframes psych-echo-b{0%{transform:translate3d(1px,.3px,0) scale(1.004)}100%{transform:translate3d(-1.2px,-.8px,0) scale(1.007)}}@keyframes psych-lens-a{0%{transform:translate3d(-28%,-13%,0) scale(.78) rotate(-7deg)}45%{transform:translate3d(18%,6%,0) scale(1.08) rotate(9deg)}100%{transform:translate3d(-4%,22%,0) scale(.9) rotate(-2deg)}}@keyframes psych-lens-b{0%{transform:translate3d(24%,18%,0) scale(.72) rotate(14deg)}55%{transform:translate3d(-17%,-2%,0) scale(1) rotate(-11deg)}100%{transform:translate3d(9%,-24%,0) scale(.84) rotate(5deg)}}@keyframes psych-spectrum-drift{to{transform:translate3d(48px,-18px,0);filter:blur(.45px) hue-rotate(150deg)}}
.psychedelic-overlay{position:absolute;z-index:18;inset:0;overflow:hidden;opacity:0;pointer-events:none;transition:opacity 1.8s ease}.psychedelic-overlay.active{opacity:.075}.psychedelic-overlay.active img{will-change:opacity,transform}.psychedelic-overlay:not(.active) img{animation-play-state:paused}.psychedelic-overlay img{display:block;width:100%;height:100%;object-fit:cover;mix-blend-mode:screen;filter:saturate(.72) contrast(.88);transform:scale(1.012);animation:psych-breathe 3.4s ease-in-out infinite alternate}@keyframes psych-breathe{from{transform:scale(1.012);opacity:.38}to{transform:scale(1.025);opacity:.54}}
.thoughts{position:absolute;z-index:10;right:28px;top:106px;width:min(260px,26vw);pointer-events:none}.thoughts>.eyebrow{margin:0 0 8px;text-align:right;color:#8da9aa}.thoughts article{border-right:2px solid var(--teal);padding:8px 14px 8px 0;text-align:right;background:linear-gradient(270deg,rgba(4,13,20,.68),transparent)}.thoughts article.speaking{animation:inner-voice .45s ease-out}.thoughts article span{font:500 .72rem DM Mono,monospace;color:var(--teal);letter-spacing:.14em}.thoughts article p{font:italic 1.05rem/1.35 Instrument Serif,serif;margin:7px 0;color:#d1d8d4}@keyframes inner-voice{from{opacity:0;transform:translateX(12px);filter:blur(2px)}to{opacity:1;transform:none;filter:none}}
.dialogue,.casebook{position:absolute;z-index:30;left:50%;bottom:5vh;transform:translateX(-50%);width:min(920px,90vw);background:var(--panel);border:1px solid var(--line);box-shadow:0 24px 80px #000;backdrop-filter:blur(16px);transition:.25s}.dialogue{display:grid;grid-template-columns:220px 1fr;min-height:300px}.hidden{opacity:0!important;pointer-events:none!important;transform:translate(-50%,24px)!important}.portrait{position:relative;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 35%,#31434a 0 10%,#19252b 11% 32%,#081016 33%);border-right:1px solid var(--line);font:italic 6rem Instrument Serif,serif;color:rgba(232,226,210,.25)}.portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:var(--portrait-fit,cover);object-position:var(--portrait-position,50% 18%);filter:saturate(.9) contrast(1.04);animation:portrait-in .24s ease-out}.portrait img[hidden]{display:none}@keyframes portrait-in{from{opacity:0;transform:scale(1.035)}to{opacity:1;transform:none}}.conversation{padding:30px 36px}.conversation .eyebrow{margin:0}.line{font:400 clamp(1.3rem,2.2vw,1.8rem)/1.35 Instrument Serif,serif;min-height:74px}.choices{display:grid;gap:7px}.choices button{border:0;border-left:2px solid #50636a;background:rgba(255,255,255,.035);text-align:left;padding:10px 14px;cursor:pointer;font-size:.86rem;line-height:1.35}.choices button:hover,.choices button:focus-visible{border-color:var(--amber);background:rgba(233,169,91,.09);padding-left:18px}.choices small{display:block;font:500 .64rem DM Mono,monospace;color:var(--amber);letter-spacing:.1em;margin-bottom:3px}.close{position:absolute;right:14px;top:10px;border:0;background:none;font-size:1.6rem;color:#8d999b;cursor:pointer;z-index:2}.close:hover{color:#fff}
.casebook{top:50%;bottom:auto;transform:translate(-50%,-50%);padding:38px 46px;max-height:82vh;overflow:auto}.casebook.hidden{transform:translate(-50%,-45%)!important}.casebook h1{font:400 3rem Instrument Serif,serif;margin:.2rem 0}.case-summary{max-width:650px;color:#b8c1c0;line-height:1.6}.casebook h2{font:500 .74rem DM Mono,monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--amber);margin-top:28px}.clues{display:block}.case-file{margin-top:11px;border:1px solid var(--line);background:rgba(4,13,19,.42)}.case-file>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 15px;cursor:pointer;list-style-position:inside;color:#e8e2d2}.case-file>summary::marker{color:var(--amber)}.case-file>summary span{font:400 1.18rem Instrument Serif,serif;letter-spacing:.03em}.case-file>summary small{color:#829294;font:500 .55rem DM Mono,monospace;letter-spacing:.1em}.case-file[open]>summary{border-bottom:1px solid var(--line);background:rgba(233,169,91,.035)}.case-file-body{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px}.case-file-body .clue-group{grid-column:1/-1;margin:7px 2px 0;color:var(--amber);font:500 .59rem DM Mono,monospace;letter-spacing:.14em;text-transform:uppercase}.clue{padding:14px 16px;border:1px solid var(--line);min-height:78px}.clue.locked{opacity:.35}.clue b{font:400 1.15rem Instrument Serif,serif}.clue p{font-size:.76rem;color:#aeb9b8;margin:6px 0 0;line-height:1.45}.case-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}.case-actions button{padding:10px 15px;border:1px solid var(--line);background:#0a1820;cursor:pointer}.case-actions button:last-child{border-color:var(--amber)}
.clue-group{grid-column:1/-1;margin:14px 0 0;padding-bottom:7px;border-bottom:1px solid var(--line);font:500 .64rem DM Mono,monospace;letter-spacing:.15em;text-transform:uppercase}.clue-group-established{color:var(--teal)}.clue-group-lead{color:var(--amber)}.clue-group-provisional{color:#b88ba7}.clue-established{border-left:2px solid var(--teal)}.clue-lead{border-left:2px solid var(--amber)}.clue-provisional{border-left:2px solid #a56f91}.clue .clue-kind{display:block;margin-bottom:6px;color:#7f9294;font:500 .56rem DM Mono,monospace;letter-spacing:.12em;text-transform:uppercase}.clue .clue-source{color:#789092;font:500 .58rem/1.5 DM Mono,monospace;letter-spacing:.04em;text-transform:uppercase}.clue .clue-annotation{color:#d6ccb7;font:italic .88rem/1.35 Instrument Serif,serif}
.clue-resolved{opacity:.62;border-left-color:#64797b}.clue-resolved b{text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:rgba(203,214,210,.45)}
.inventory{position:absolute;z-index:32;left:50%;top:50%;transform:translate(-50%,-50%);width:min(980px,92vw);max-height:84vh;overflow:auto;padding:38px 42px;background:linear-gradient(145deg,rgba(7,19,27,.98),rgba(11,25,31,.96));border:1px solid rgba(232,226,210,.26);box-shadow:0 28px 100px #000;backdrop-filter:blur(18px)}.inventory[hidden]{display:none}.inventory-heading{padding-right:42px}.inventory-heading h1{font:400 clamp(2.5rem,5vw,4.5rem) Instrument Serif,serif;margin:.1rem 0}.inventory-heading>p:last-child{margin:.2rem 0 24px;color:#aeb9b8;font-size:.9rem}.inventory-layout{display:grid;grid-template-columns:minmax(300px,1.05fr) minmax(280px,.95fr);gap:22px}.inventory-list{display:grid;grid-template-columns:1fr 1fr;gap:9px;align-content:start}.inventory-list>[role="listitem"]{display:flex}.inventory-item{width:100%;min-height:116px;padding:16px;border:1px solid var(--line);background:rgba(255,255,255,.025);text-align:left;cursor:pointer;display:grid;align-content:space-between;gap:18px}.inventory-item:hover,.inventory-item:focus-visible,.inventory-item[aria-pressed="true"]{border-color:var(--amber);background:rgba(233,169,91,.08)}.inventory-item small{font:500 .64rem DM Mono,monospace;letter-spacing:.13em;color:#8fa5a7}.inventory-item strong{font:400 1.35rem Instrument Serif,serif}.inventory-item span{justify-self:end;font:500 .68rem DM Mono,monospace;color:var(--amber)}.inventory-detail{min-height:242px;padding:24px 26px;border-left:2px solid var(--amber);background:rgba(0,0,0,.22)}.inventory-detail .eyebrow{margin:0 0 10px}.inventory-detail h2{font:400 2rem Instrument Serif,serif;margin:0 0 14px}.inventory-detail p{color:#c1cac8;line-height:1.65;margin:.6rem 0}.inventory-detail .item-note{font:italic 1.12rem/1.45 Instrument Serif,serif;color:#e1d9c8}.inventory-resume{display:block;margin:24px 0 0 auto;padding:10px 16px;border:1px solid var(--amber);background:#0a1820;cursor:pointer}.inventory-resume:hover,.inventory-resume:focus-visible{background:rgba(233,169,91,.1)}
.inventory-layout{grid-template-columns:minmax(340px,1.08fr) minmax(300px,.92fr)}.inventory-item{min-height:218px;padding:12px 14px 14px;grid-template-columns:1fr auto;grid-template-rows:112px auto auto;align-content:space-between;gap:5px 10px;overflow:hidden}.inventory-art{grid-column:1/-1;align-self:stretch;justify-self:stretch!important;display:grid;place-items:center;min-width:0;overflow:hidden;background:radial-gradient(circle,rgba(233,169,91,.09),transparent 68%)}.inventory-art img{display:block;width:100%;height:108px;object-fit:contain;filter:drop-shadow(0 9px 8px rgba(0,0,0,.65))}.ammo-mark{font:400 3.2rem Instrument Serif,serif;color:#b7844d;letter-spacing:.12em;text-shadow:0 6px 10px #000}.inventory-item small{grid-column:1/-1;font-size:.6rem;letter-spacing:.11em}.inventory-item strong{font-size:1.22rem}.inventory-item .inventory-quantity{justify-self:end;align-self:end;font:500 .62rem DM Mono,monospace;color:var(--amber);white-space:nowrap}.inventory-detail{min-height:300px;padding:22px 24px;display:grid;grid-template-rows:138px auto;gap:10px}.inventory-detail-art{display:block;width:100%;height:138px;object-fit:contain;filter:drop-shadow(0 10px 9px rgba(0,0,0,.7))}.inventory-detail-art.ammo-mark{display:grid;place-items:center}.inventory-detail-copy{min-width:0}.inventory-detail p{line-height:1.55;margin:.55rem 0}.inventory-detail .item-note{font-size:1.05rem;line-height:1.4}.inventory-use{margin-top:10px;padding:10px 15px;border:1px solid var(--amber);background:rgba(233,169,91,.1);cursor:pointer;text-transform:uppercase;font:500 .68rem DM Mono,monospace;letter-spacing:.1em}.inventory-use:hover,.inventory-use:focus-visible{background:rgba(233,169,91,.2)}.inventory-use:disabled{opacity:.42;cursor:not-allowed;border-color:var(--line)}
.inventory{padding:26px 32px}.inventory-heading h1{font-size:clamp(2.5rem,4vw,3.7rem)}.inventory-heading>p:last-child{margin-bottom:14px}.inventory-layout{grid-template-columns:minmax(340px,1.08fr) minmax(300px,.92fr)}.inventory-item{min-height:184px;padding:10px 14px 12px;grid-template-columns:1fr auto;grid-template-rows:82px auto auto;align-content:space-between;gap:4px 10px;overflow:hidden}.inventory-art{grid-column:1/-1;align-self:stretch;justify-self:stretch!important;display:grid;place-items:center;min-width:0;overflow:hidden;background:radial-gradient(circle,rgba(233,169,91,.09),transparent 68%)}.inventory-art img{display:block;width:100%;height:80px;object-fit:contain;filter:drop-shadow(0 9px 8px rgba(0,0,0,.65))}.ammo-mark{font:400 3.2rem Instrument Serif,serif;color:#b7844d;letter-spacing:.12em;text-shadow:0 6px 10px #000}.inventory-item small{grid-column:1/-1;font-size:.6rem;letter-spacing:.11em}.inventory-item strong{font-size:1.22rem}.inventory-item .inventory-quantity{justify-self:end;align-self:end;font:500 .62rem DM Mono,monospace;color:var(--amber);white-space:nowrap}.inventory-detail{min-height:300px;padding:18px 22px;display:grid;grid-template-rows:108px auto;gap:8px}.inventory-detail-art{display:block;width:100%;height:108px;object-fit:contain;filter:drop-shadow(0 10px 9px rgba(0,0,0,.7))}.inventory-detail-art.ammo-mark{display:grid;place-items:center}.inventory-detail-copy{min-width:0}.inventory-detail p{line-height:1.48;margin:.45rem 0}.inventory-detail .item-note{font-size:1.02rem;line-height:1.35}.inventory-use{margin-top:7px;padding:9px 14px;border:1px solid var(--amber);background:rgba(233,169,91,.1);cursor:pointer;text-transform:uppercase;font:500 .68rem DM Mono,monospace;letter-spacing:.1em}.inventory-use:hover,.inventory-use:focus-visible{background:rgba(233,169,91,.2)}.inventory-use:disabled{opacity:.42;cursor:not-allowed;border-color:var(--line)}.inventory-resume{margin-top:14px}
.inventory-title-row{display:flex;align-items:end;justify-content:space-between;gap:24px}.inventory-title-row>p{margin:0 0 9px;color:#9eaeae;font:500 .65rem DM Mono,monospace;letter-spacing:.12em}.inventory-title-row strong{display:block;margin-top:3px;color:var(--amber);font:400 1.8rem Instrument Serif,serif;letter-spacing:0}
.profile{position:absolute;z-index:32;left:50%;top:50%;transform:translate(-50%,-50%);width:min(1100px,94vw);max-height:86vh;overflow:auto;padding:34px 38px;background:linear-gradient(145deg,rgba(7,19,27,.985),rgba(13,24,30,.97));border:1px solid rgba(232,226,210,.26);box-shadow:0 28px 100px #000;backdrop-filter:blur(18px)}.profile[hidden]{display:none}.profile h1{font:400 clamp(2.5rem,5vw,4.2rem) Instrument Serif,serif;margin:.1rem 0 18px}.profile h2{font:400 1.5rem Instrument Serif,serif;margin:0 0 10px}.profile-columns{display:grid;grid-template-columns:1fr 1fr 1.16fr;gap:20px}.profile-columns>section{min-width:0}.stat-list,.voice-list{display:grid;gap:7px}.stat-list article,.voice-list article{padding:10px 12px;border:1px solid var(--line);background:rgba(255,255,255,.025)}.stat-list span,.voice-list span{display:flex;align-items:center;justify-content:space-between;gap:12px}.stat-list b,.voice-list b{font:500 .7rem DM Mono,monospace;letter-spacing:.09em;text-transform:uppercase}.stat-list strong{font:400 1.45rem Instrument Serif,serif;color:var(--amber)}.stat-list small,.voice-list small{display:block;margin-top:5px;color:#9eaeae;font-size:.74rem;line-height:1.35}.voice-list em{font:500 .56rem DM Mono,monospace;letter-spacing:.1em;color:#657578;font-style:normal}.voice-list .active{border-color:rgba(91,155,160,.55);background:rgba(91,155,160,.07)}.voice-list .active em{color:var(--teal)}.profile-note{margin:16px 0 0;color:#879899;font-size:.76rem}
.game-menu{position:absolute;z-index:50;inset:0;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 50% 42%,rgba(11,31,39,.62),rgba(2,7,11,.93) 70%);backdrop-filter:blur(8px)}.game-menu[hidden]{display:none}.game-menu-card{width:min(570px,92vw);padding:44px 48px;background:linear-gradient(145deg,rgba(7,19,27,.98),rgba(11,25,31,.96));border:1px solid rgba(232,226,210,.25);border-top:2px solid var(--amber);box-shadow:0 28px 100px #000}.game-menu h1{font:400 clamp(3.1rem,7vw,5.4rem)/.95 Instrument Serif,serif;margin:.35rem 0 18px}.game-menu-copy{color:#b6c0be;font:italic 1.12rem/1.5 Instrument Serif,serif;max-width:420px}.game-menu-actions{display:grid;gap:9px;margin-top:28px}.game-menu button{min-height:46px;padding:11px 16px;border:1px solid var(--line);background:rgba(255,255,255,.025);text-align:left;text-transform:uppercase;font:500 .72rem DM Mono,monospace;letter-spacing:.12em;cursor:pointer}.game-menu button:hover,.game-menu button:focus-visible{border-color:var(--amber);background:rgba(233,169,91,.09)}.game-menu button.primary{border-color:var(--amber);color:var(--amber)}.game-menu button:disabled{opacity:.34;cursor:not-allowed;border-color:var(--line)}.new-game-confirm{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;padding:14px;border:1px solid rgba(155,64,56,.7);background:rgba(155,64,56,.08)}.new-game-confirm[hidden]{display:none}.new-game-confirm p{grid-column:1/-1;margin:0 0 4px}.new-game-confirm strong,.new-game-confirm span{display:block}.new-game-confirm strong{font:500 .72rem DM Mono,monospace;letter-spacing:.08em;text-transform:uppercase}.new-game-confirm span{margin-top:4px;color:#aeb9b8;font-size:.8rem}.game-menu .danger{border-color:var(--rust);color:#e6aaa4}.save-summary{min-height:1.2rem;margin:18px 0 0;color:#859698;font:500 .65rem/1.45 DM Mono,monospace;letter-spacing:.06em;text-transform:uppercase}
.combat{position:absolute;z-index:60;inset:0;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 28% 42%,rgba(115,48,38,.18),rgba(2,7,11,.94) 62%);backdrop-filter:blur(9px)}.combat[hidden]{display:none}.combat-card{width:min(1020px,95vw);max-height:94vh;overflow:auto;padding:28px 34px;background:linear-gradient(145deg,rgba(7,17,23,.99),rgba(17,20,22,.98));border:1px solid rgba(232,226,210,.25);border-top:2px solid var(--rust);box-shadow:0 30px 110px #000}.combat-heading{display:grid;grid-template-columns:1fr auto;align-items:end}.combat-heading .eyebrow{grid-column:1/-1;margin:0}.combat-heading h1{font:400 clamp(2.5rem,5vw,4.6rem)/1 Instrument Serif,serif;margin:.15rem 0 10px}.combat-heading>p:last-child{color:var(--amber);font:500 .68rem DM Mono,monospace;letter-spacing:.1em;text-transform:uppercase}.combatants{display:grid;grid-template-columns:1fr 52px 1fr;align-items:center;gap:12px}.combatant{display:grid;grid-template-columns:150px 1fr;align-items:center;min-height:170px;border:1px solid var(--line);background:rgba(255,255,255,.025);overflow:hidden}.combatant img{width:150px;height:170px;object-fit:cover;object-position:50% 18%;filter:saturate(.82) contrast(1.05)}.combatant>div:last-child{padding:18px}.combatant span{display:block;font:500 .68rem DM Mono,monospace;letter-spacing:.11em;color:#b9c4c4}.combatant strong{display:block;margin:7px 0;font:400 1.6rem Instrument Serif,serif}.combatant i{display:block;height:5px;background:rgba(255,255,255,.12)}.combatant i b{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--rust),#d77667);transition:width .35s}.player-combatant{grid-template-columns:120px 1fr}.player-combatant i b{background:linear-gradient(90deg,#477e83,var(--teal))}.barry-combat-mark{display:grid;place-items:center;height:170px!important;padding:0!important;background:radial-gradient(circle,#2a3c42,#07131b 67%);font:italic 3.5rem Instrument Serif,serif;color:rgba(232,226,210,.55)}.combat-vs{text-align:center;font:italic 1.7rem Instrument Serif,serif;color:#68787a}.combat-status{display:flex;justify-content:space-between;gap:20px;margin:12px 0;padding:10px 13px;border:1px solid var(--line);color:#9fadae;font:500 .63rem DM Mono,monospace;letter-spacing:.1em}.combat-status b{color:var(--amber);font-weight:500}.combat-log{min-height:72px;max-height:100px;overflow:auto;padding:12px 14px;border-left:2px solid var(--teal);background:rgba(0,0,0,.22);font:italic 1rem/1.45 Instrument Serif,serif}.combat-log p{margin:0 0 3px}.combat-log p:last-child{color:#fff}.combat-actions{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-top:12px}.combat-actions button,.combat-finish{min-height:60px;padding:10px 12px;border:1px solid var(--line);background:rgba(255,255,255,.025);text-align:left;cursor:pointer}.combat-actions button:hover,.combat-actions button:focus-visible,.combat-finish:hover,.combat-finish:focus-visible{border-color:var(--amber);background:rgba(233,169,91,.09)}.combat-actions button:disabled{opacity:.3;cursor:not-allowed}.combat-actions b,.combat-actions small{display:block}.combat-actions b{font:500 .68rem DM Mono,monospace;letter-spacing:.08em;text-transform:uppercase}.combat-actions small{margin-top:4px;color:#95a4a5;font-size:.62rem}.combat-finish{display:block;margin:14px 0 0 auto;border-color:var(--amber);text-transform:uppercase;font:500 .68rem DM Mono,monospace;letter-spacing:.1em}.combat-finish[hidden]{display:none}
@media(max-width:1400px){.meters{display:none}.health-meter{margin-left:auto}}
.toast{position:absolute;z-index:40;left:50%;top:96px;transform:translate(-50%,-20px);opacity:0;background:#e8e2d2;color:#07131b;padding:10px 16px;font:500 .72rem DM Mono,monospace;letter-spacing:.08em;transition:.25s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:800px){.topbar{height:70px;padding:0 14px;gap:8px}.brand strong{font-size:1.05rem}.brand span,.meters,#profileButton{display:none}.health-meter{margin-left:auto;font-size:.58rem;letter-spacing:.08em}.health-meter i{width:72px}.audio-controls{margin-left:0}.volume-control{grid-template-columns:60px 30px}.volume-control>span{display:none}.volume-control input{width:60px}.sound-button+.text-button{margin-left:0}.thoughts{top:82px;right:14px;width:190px}.thoughts article p{font-size:.88rem}.scene-title{left:16px;bottom:24px}.controls{display:none}.dialogue{grid-template-columns:84px 1fr;width:94vw}.portrait{font-size:3rem}.conversation{padding:26px 18px}.casebook{width:94vw;padding:30px 20px}.case-file-body{grid-template-columns:1fr}.inventory{width:94vw;padding:30px 20px}.inventory-layout{grid-template-columns:1fr}.inventory-list{grid-template-columns:1fr 1fr}.inventory-detail{min-height:0}.profile{width:94vw;padding:30px 20px}.profile-columns{grid-template-columns:1fr}.game-menu{padding:14px}.game-menu-card{padding:32px 24px}.hotspot b,.hotspot small{display:none!important}}
@media(max-width:520px){.topbar #inventoryButton{display:none}.inventory-list{grid-template-columns:1fr}}
@media(max-width:800px){.cravings{left:auto;right:14px;top:72px;transform:none}.craving{width:118px}.thoughts{top:128px}.inventory-layout{grid-template-columns:1fr}.inventory-detail{min-height:0}}
@media(max-width:800px){.combat-card{padding:22px}.combatants{grid-template-columns:1fr}.combat-vs{display:none}.combatant{grid-template-columns:100px 1fr;min-height:120px}.combatant img,.barry-combat-mark{width:100px;height:120px!important}.combat-actions{grid-template-columns:1fr 1fr}.inventory-title-row{align-items:start}}
@media(max-width:520px){.cravings{right:14px}.craving{width:auto;flex:1}.inventory-item{min-height:174px;grid-template-rows:78px auto auto}.inventory-art img{height:76px}}
@media(prefers-reduced-motion:reduce){.weather,.weather::before,.weather::after,.hotspot.near span,.thoughts article.speaking,.title-continue,.psych-scene-echo,.psych-lens,.psych-spectrum-seams,.psychedelic-overlay img,#caseButton.casebook-discovery{animation:none}.psych-scene-echo{filter:saturate(1.2)}.dialogue,.casebook,.inventory,.profile,.toast,.hotspot{transition:none}.objective-update.show{animation:none;opacity:1;transform:translate(-50%,0)}.title-screen{transition:opacity .8s}.title-screen>img,.title-screen-fill,.title-screen::after{transition:opacity .25s}}

.scene.indoors .weather::before,.scene.indoors .weather::after{animation-play-state:paused}
.barry-combat-portrait{width:120px!important;height:170px!important;object-fit:cover!important;object-position:50% 17%!important;filter:saturate(.82) contrast(1.05)}
.prop-dog-food{z-index:8;left:69.5%;top:72%;width:clamp(76px,7vw,132px);height:clamp(54px,4.8vw,90px);filter:brightness(.92) saturate(.82) drop-shadow(0 5px 4px rgba(0,0,0,.74))}.prop-dog-food:hover,.prop-dog-food:focus-visible,.prop-dog-food.near{filter:brightness(1.34) saturate(.96) drop-shadow(0 0 3px rgba(255,246,217,.9)) drop-shadow(0 0 11px rgba(233,169,91,.82))}

@media(max-width:800px){.barry-combat-portrait{width:100px!important;height:120px!important}}

/* Live-3D Barry pilot: intentionally enabled only for the Aster exterior. */
.barry-3d-host{position:absolute;z-index:1;left:-24%;bottom:-1%;width:148%;height:108%;overflow:visible;pointer-events:none;transform:translateZ(0)}
.barry-3d-host[hidden]{display:none}
.barry-3d-host canvas{display:block;width:100%;height:100%;filter:contrast(1.05) saturate(.84) drop-shadow(0 9px 5px rgba(0,0,0,.72))}
.player.live-3d-pilot.barry-3d-ready .sprite{opacity:0}
.player.live-3d-pilot.barry-3d-ready>i{opacity:.72}
.build-version{padding:4px 7px;border:1px solid rgba(232,226,210,.18);color:#849496;background:rgba(4,13,19,.54);font:500 .56rem DM Mono,monospace;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;pointer-events:none}
.npc-mara{width:auto;height:var(--npc-height,clamp(180px,15vw,270px))}.npc-mara img{width:auto;height:100%;margin:auto}
.npc-chapter-two{width:auto;height:var(--npc-height,clamp(220px,19vw,340px));z-index:4}.npc-chapter-two img{display:block;width:auto;height:100%;margin:auto}.npc-harrow,.npc-leonard{height:var(--npc-height,clamp(230px,20vw,350px))}.npc-mason{height:var(--npc-height,clamp(235px,20vw,360px))}.npc-collector,.npc-courier{height:var(--npc-height,clamp(215px,18vw,325px))}
@media(max-width:800px))){.build-version{padding:3px 5px;font-size:.5rem;letter-spacing:.04em}}
.npc-character-plane{position:absolute;z-index:3;inset:0;pointer-events:none}.npc-character-plane[hidden]{display:none}.npc-character-plane .npc{z-index:1;pointer-events:auto}.character-occlusion{position:absolute;z-index:2;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;user-select:none}.npc>span,.npc-plane-label{display:none!important}.npc-label-overlay{position:absolute;z-index:15;inset:0;pointer-events:none}.npc-overlay-label{position:absolute;min-width:150px;padding:6px 9px;background:rgba(4,13,19,.92);border:1px solid var(--line);transform:translateX(-50%) translateY(5px);opacity:0;transition:.2s;text-align:center}.npc-overlay-label b,.npc-overlay-label small{display:block;white-space:nowrap}.npc-overlay-label b{font:500 .66rem DM Mono,monospace;letter-spacing:.1em;text-transform:uppercase}.npc-overlay-label small{margin-top:2px;color:#aab5b5;font-size:.58rem}.npc-overlay-label.hover,.npc-overlay-label.near{opacity:1;transform:translateX(-50%) translateY(0)}
.dream-veil{position:absolute;z-index:24;inset:0;overflow:hidden;background:radial-gradient(circle at 50% 34%,rgba(21,58,72,.4),transparent 18%),linear-gradient(180deg,#010509 0 56%,#03131b 100%);opacity:1;transition:opacity 3.2s ease;isolation:isolate}.dream-veil[hidden]{display:none}.dream-veil.releasing{opacity:0;pointer-events:none}.dream-visual{position:absolute;z-index:0;inset:-2%;width:104%;height:104%;object-fit:cover;object-position:center;opacity:.78;filter:saturate(.76) contrast(1.06) brightness(.68);animation:dream-breathe 18s ease-in-out infinite;will-change:transform}.dream-veil::before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,rgba(0,3,7,.18),rgba(0,4,8,.08) 42%,rgba(0,3,7,.62)),repeating-linear-gradient(174deg,transparent 0 45px,rgba(112,177,183,.028) 47px,transparent 49px 92px);animation:dream-drift 18s linear infinite}.dream-veil::after{content:"";position:absolute;z-index:2;inset:0;background:radial-gradient(ellipse at 50% 45%,transparent 5%,rgba(2,10,15,.18) 54%,rgba(2,8,12,.72) 100%)}.dream-veil>span{position:absolute;z-index:3;left:50%;top:12%;transform:translateX(-50%);color:rgba(220,228,218,.7);font:500 .58rem DM Mono,monospace;letter-spacing:.25em;white-space:nowrap;text-shadow:0 2px 14px #000}.dream-moon{position:absolute;z-index:1;left:50%;top:24%;width:clamp(90px,13vw,190px);aspect-ratio:1;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle at 42% 38%,#b8c4bd,#667d83 45%,#1b3844 72%);box-shadow:0 0 70px rgba(118,176,183,.16);opacity:.63}.dream-water{position:absolute;z-index:2;left:50%;top:55%;width:72vw;height:24vh;transform:translateX(-50%) perspective(420px) rotateX(67deg);border:1px solid rgba(108,177,185,.28);border-radius:50%;box-shadow:0 0 0 24px rgba(70,144,155,.035),0 0 0 58px rgba(70,144,155,.025);animation:dream-ripple 5s ease-in-out infinite}.dream-water-b{width:42vw;height:13vh;animation-delay:-2.4s;opacity:.55}.dream-veil.has-image .dream-moon,.dream-veil.has-image .dream-water{opacity:0}.dream-veil.dream-opening .dream-visual{object-position:center 58%;filter:saturate(.7) contrast(1.08) brightness(.62)}.dream-veil.dream-waterline .dream-visual{object-position:center 45%;filter:saturate(.72) contrast(1.04) brightness(.66)}.dream-veil.dream-archivist .dream-visual{object-position:center 52%;filter:saturate(.66) sepia(.12) contrast(1.07) brightness(.65)}@keyframes dream-breathe{0%,100%{transform:scale(1.015)}50%{transform:scale(1.045) translate3d(0,-.35%,0)}}@keyframes dream-ripple{0%,100%{scale:.72;opacity:.16}50%{scale:1.12;opacity:.52}}@keyframes dream-drift{to{transform:translate3d(80px,-22px,0)}}.dreaming .topbar,.dreaming .objective,.dreaming .controls,.dreaming .scene-title,.dreaming .thoughts{opacity:0!important}.dreaming .dialogue .close{display:none}
.playtest-entry{position:fixed;z-index:102;right:22px;bottom:22px;padding:9px 12px;border:1px solid rgba(232,226,210,.25);background:rgba(2,8,13,.82);color:#9caaaa;text-transform:uppercase;font:500 .58rem DM Mono,monospace;letter-spacing:.12em;cursor:pointer}.playtest-entry:hover,.playtest-entry:focus-visible{border-color:var(--amber);color:var(--amber)}.playtest-entry[hidden]{display:none}.playtest-gate{position:fixed;z-index:110;inset:0;display:grid;place-items:center;padding:24px;background:rgba(0,4,8,.86);backdrop-filter:blur(12px)}.playtest-gate[hidden]{display:none}.playtest-card{width:min(560px,94vw);padding:34px 38px;border:1px solid rgba(232,226,210,.28);border-top:2px solid var(--amber);background:linear-gradient(145deg,rgba(7,19,27,.99),rgba(11,25,31,.98));box-shadow:0 28px 100px #000}.playtest-card h1{margin:.25rem 0 14px;font:400 2.8rem Instrument Serif,serif}.playtest-card p{color:#aeb9b8;line-height:1.5}.playtest-card label{display:block;margin:18px 0 7px;color:var(--amber);text-transform:uppercase;font:500 .6rem DM Mono,monospace;letter-spacing:.13em}.playtest-card input{width:100%;padding:12px 14px;border:1px solid var(--line);background:#061118;color:#edf0e9;font:500 1rem DM Mono,monospace;letter-spacing:.18em;outline:none}.playtest-card input:focus{border-color:var(--amber)}.playtest-error{min-height:1.25rem;margin:7px 0;color:#e0a19b!important;font-size:.74rem}.playtest-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.playtest-card button{min-height:43px;padding:10px 13px;border:1px solid var(--line);background:rgba(255,255,255,.025);text-align:left;color:#e8e2d2;text-transform:uppercase;font:500 .66rem DM Mono,monospace;letter-spacing:.1em;cursor:pointer}.playtest-card button:hover,.playtest-card button:focus-visible,.playtest-card button.primary{border-color:var(--amber);color:var(--amber)}.playtest-checkpoints{display:grid;gap:9px}.playtest-checkpoints[hidden]{display:none}.playtest-checkpoints button strong,.playtest-checkpoints button span{display:block}.playtest-checkpoints button span{margin-top:4px;color:#8ea0a1;font-size:.6rem;letter-spacing:.04em;text-transform:none}.playtest-checkpoints #playtestClose{margin-top:8px;text-align:center}@media(max-width:600px){.playtest-entry{right:12px;bottom:12px}.playtest-card{padding:28px 22px}}
.dialogue{max-height:90vh;overflow:hidden}.dialogue .conversation{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}

.npc-fisherman{width:auto;height:var(--npc-height,clamp(125px,12vw,205px));z-index:4}.npc-fisherman img{width:auto;height:100%;margin:auto}

.npc-boardwalk{width:auto;height:var(--npc-height,220px)}.npc-boardwalk>img{width:auto;height:100%;margin:auto}.npc-boardwalk-atlas{width:calc(var(--npc-height,220px)*.5)}.boardwalk-sprite-frame{width:100%;height:100%;overflow:hidden}.npc-boardwalk-atlas .boardwalk-sprite-frame img{width:400%;height:100%;max-width:none}
.psychedelic-spectrum{--psych-spectrum-opacity:0;position:absolute;z-index:8;inset:0;overflow:hidden;contain:paint;pointer-events:none;mix-blend-mode:screen;opacity:0;transition:opacity 2.6s ease;mask-image:radial-gradient(ellipse at 50% 53%,rgba(0,0,0,.6) 0 18%,rgba(0,0,0,.85) 46%,#000 78%)}.psychedelic-spectrum.active{opacity:var(--psych-spectrum-opacity)}.scene[data-area="underBoardwalk"] .psychedelic-spectrum.active{opacity:calc(var(--psych-spectrum-opacity)*.35)}.psychedelic-spectrum i{position:absolute;display:block;pointer-events:none;animation-play-state:paused}.psychedelic-spectrum.active i{animation-play-state:running}.psych-color-orbit{left:-25%;top:-55%;width:150%;aspect-ratio:1;background:conic-gradient(from 16deg,transparent 0deg,rgba(88,255,67,.95) 36deg,transparent 69deg,rgba(42,217,255,.9) 109deg,transparent 145deg,rgba(188,85,255,.9) 187deg,transparent 217deg,rgba(255,73,177,.9) 253deg,transparent 283deg,rgba(255,213,76,.85) 322deg,transparent 360deg);mask-image:radial-gradient(circle,#000 0 43%,transparent 70%);filter:blur(20px);animation:psych-color-orbit 24s linear infinite}.psych-color-ribbons{inset:-12%;background:radial-gradient(ellipse at 23% 48%,transparent 27%,rgba(51,244,143,.85) 34%,transparent 44%),radial-gradient(ellipse at 75% 62%,transparent 24%,rgba(137,109,255,.85) 33%,rgba(252,81,184,.7) 39%,transparent 49%),radial-gradient(ellipse at 46% 22%,transparent 28%,rgba(53,205,255,.75) 36%,transparent 47%);filter:blur(13px);animation:psych-color-ribbons 12s ease-in-out infinite alternate}@keyframes psych-color-orbit{to{transform:rotate(360deg)}}@keyframes psych-color-ribbons{from{transform:translate(-3%,1%) rotate(-7deg) scale(.96)}to{transform:translate(3%,-2%) rotate(9deg) scale(1.06)}}@media(prefers-reduced-motion:reduce){.psychedelic-spectrum{transition:none}.psychedelic-spectrum i{animation:none;transform:none}}
.boardwalk-lights,.boardwalk-trip-lights{position:absolute;inset:auto;left:0;top:0;width:100%;height:100%;overflow:hidden;pointer-events:none;contain:paint;mix-blend-mode:screen;transition:opacity 1.2s}.boardwalk-lights{z-index:6;opacity:.48}.boardwalk-trip-lights{z-index:8;opacity:.52}.boardwalk-lights[hidden],.boardwalk-trip-lights[hidden]{display:none}.boardwalk-light-source{position:absolute;left:var(--lamp-x);top:var(--lamp-y);width:var(--beam-span);aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none}.boardwalk-light-source>i{position:absolute;display:block;inset:0;border-radius:50%;transform-origin:50% 50%;pointer-events:none}.boardwalk-light-rotor{background:conic-gradient(from 20deg,transparent 0deg 18deg,rgba(169,66,238,.55) 26deg,transparent 46deg 92deg,rgba(41,215,212,.6) 107deg,transparent 130deg 197deg,rgba(242,127,39,.45) 215deg,transparent 237deg 291deg,rgba(217,60,152,.5) 309deg,transparent 330deg);mask-image:radial-gradient(circle,#000 0 45%,transparent 70%);filter:blur(9px);animation:boardwalk-light-spin 3.75s linear infinite}.boardwalk-light-rotor-secondary{opacity:.65;animation-direction:reverse;animation-duration:7.5s}.scene[data-boardwalk-mood="altered"] .boardwalk-lights{opacity:.58}.scene[data-boardwalk-mood="quiet"] .boardwalk-lights{opacity:.12}.scene[data-boardwalk-mood="quiet"] .boardwalk-light-rotor{animation-play-state:paused}@keyframes boardwalk-light-spin{to{transform:rotate(360deg)}}
.boardwalk-trip-prism{background:repeating-conic-gradient(from 12deg,rgba(91,255,0,.92) 0deg,rgba(0,236,112,.8) 5deg,transparent 9deg,rgba(255,34,168,.7) 12deg,rgba(121,40,255,.72) 16deg,transparent 19deg,rgba(12,217,255,.78) 23deg,rgba(209,255,13,.85) 27deg,transparent 30deg);mask-image:radial-gradient(circle,#000 0 48%,transparent 72%);filter:blur(4px);animation:boardwalk-trip-prism 7.5s linear infinite}.boardwalk-trip-prism-secondary{background:repeating-conic-gradient(from 7deg,rgba(0,255,94,.85) 0deg,transparent 6deg,rgba(242,57,255,.7) 10deg,rgba(255,176,12,.75) 14deg,transparent 19deg,rgba(50,245,227,.76) 24deg,rgba(145,255,0,.9) 28deg,transparent 36deg);animation-direction:reverse;animation-duration:11.25s;opacity:.7}.boardwalk-trip-rings{background:repeating-radial-gradient(circle,transparent 0 3%,rgba(111,255,0,.72) 3.4% 4%,transparent 4.5% 8%,rgba(0,255,139,.62) 8.4% 9%,transparent 9.5% 13%,rgba(241,70,255,.55) 13.4% 14%,transparent 14.5% 18%);mask-image:radial-gradient(circle,#000 0 52%,transparent 72%);filter:blur(1.2px);animation:boardwalk-trip-breathe 3.75s ease-in-out infinite alternate;opacity:.65}.boardwalk-trip-ribbons,.boardwalk-trip-lattice{position:absolute;display:block;inset:-8%;pointer-events:none}.boardwalk-trip-ribbons{background:radial-gradient(ellipse at 29% 58%,transparent 22%,rgba(87,255,0,.7) 26%,rgba(0,240,131,.5) 29%,transparent 34%),radial-gradient(ellipse at 74% 61%,transparent 17%,rgba(255,28,211,.56) 23%,rgba(48,208,255,.48) 27%,transparent 32%),radial-gradient(ellipse at 54% 38%,transparent 27%,rgba(217,255,15,.54) 31%,transparent 37%);filter:blur(7px);animation:boardwalk-trip-trails 5.625s ease-in-out infinite alternate}.boardwalk-trip-lattice{background:repeating-linear-gradient(64deg,transparent 0 67px,rgba(120,255,0,.48) 68px 70px,transparent 72px 139px),repeating-linear-gradient(-64deg,transparent 0 89px,rgba(0,255,143,.4) 90px 92px,transparent 94px 179px);mask-image:linear-gradient(transparent 24%,#000 62%,transparent);filter:blur(1px);opacity:.55;animation:boardwalk-trip-lattice 11.25s ease-in-out infinite alternate}.scene.psychedelic-residual .boardwalk-trip-lights{opacity:.4}.scene[data-boardwalk-mood="quiet"] .boardwalk-trip-lights{opacity:.2}.scene[data-boardwalk-mood="quiet"] .boardwalk-trip-lights i{animation-play-state:paused}@keyframes boardwalk-trip-prism{to{transform:rotate(-360deg)}}@keyframes boardwalk-trip-trails{from{transform:translate(-5%,2%) skew(-7deg) scale(.9)}to{transform:translate(6%,-4%) skew(8deg) scale(1.12)}}@keyframes boardwalk-trip-breathe{from{transform:scale(.7)}to{transform:scale(1.2)}}@keyframes boardwalk-trip-lattice{from{transform:translate(-20px,-12px) skew(-3deg)}to{transform:translate(28px,16px) skew(3deg)}}@media(prefers-reduced-motion:reduce){.boardwalk-light-rotor,.boardwalk-trip-lights i{animation:none;transform:none}.boardwalk-lights,.boardwalk-trip-lights{transition:none}.boardwalk-trip-lights{opacity:.28}}
.scene.boardwalk-dance .player .sprite{animation:boardwalk-step .5s ease-in-out 8 alternate}@keyframes boardwalk-step{from{transform:rotate(-3deg) translateY(0)}to{transform:rotate(3deg) translateY(-3px)}}@keyframes boardwalk-lamps{to{opacity:.35}}@media(prefers-reduced-motion:reduce){.scene[data-area="underBoardwalk"]::after,.scene.boardwalk-dance .player .sprite{animation:none}}

/* A non-interactive title card: the world and dialogue remain playable. */
.quest-title-reveal{position:absolute;z-index:24;left:0;top:50%;width:100%;transform:translateY(-50%);padding:2.5rem 4%;box-sizing:border-box;text-align:center;pointer-events:none;background:radial-gradient(ellipse at center,rgba(0,0,0,.48),transparent 72%);opacity:0}
.island-time{position:fixed;z-index:120;top:88px;left:24px;display:flex;align-items:baseline;gap:10px;padding:8px 12px;border:1px solid rgba(216,190,137,.4);background:rgba(5,13,19,.94);box-shadow:0 2px 10px rgba(0,0,0,.35);color:#eadcc0;pointer-events:none;font-variant-numeric:tabular-nums}.island-time[hidden]{display:none}.island-time strong{font:400 1.15rem 'Instrument Serif',Georgia,serif;white-space:nowrap}.island-time span{font:500 .6rem 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.1em;color:#b7c5ca}.island-time[data-period="night"]{border-color:rgba(132,169,202,.5)}
@media(max-width:800px){.island-time{top:88px;left:10px;padding:6px 8px;gap:7px}.island-time strong{font-size:1rem}.island-time span{font-size:.52rem}}
.quest-title-reveal[data-kind="time"]{padding:1.8rem 4%;background:radial-gradient(ellipse at center,rgba(0,0,0,.34),transparent 65%)}.quest-title-reveal[data-kind="time"] strong{font-size:clamp(2.4rem,6vw,5.5rem)}.quest-title-reveal[data-kind="time"].show{animation:time-title-fade 3.8s linear both}@keyframes time-title-fade{0%,100%{opacity:0}16%,48%{opacity:1}75%{opacity:.55}}
.quest-title-reveal[hidden]{display:none}.quest-title-reveal.show{animation:quest-title-fade 7.2s linear both}
.quest-title-reveal small{display:block;margin-bottom:.7rem;font:500 .75rem 'DM Mono',monospace;letter-spacing:.42em;color:#ddc9a2;text-shadow:0 2px 5px #000}
.quest-title-reveal strong{display:block;font:400 clamp(2.6rem,7.4vw,7rem)/1.08 'Instrument Serif',Georgia,serif;letter-spacing:.025em;color:#eadcc0;text-wrap:balance;text-shadow:0 -1px 0 #fff7dd,1px 1px 0 #a3916e,2px 2px 0 #62523e,3px 3px 0 #2e261e,0 5px 7px #000,0 12px 24px #000,0 0 35px rgba(0,0,0,.85)}
@keyframes quest-title-fade{0%{opacity:0;transform:translateY(-50%) scale(.97)}10%,30%{opacity:1;transform:translateY(-50%) scale(1)}60%{opacity:.72}85%{opacity:.27}100%{opacity:0;transform:translateY(-50%) scale(1.025)}}
@media(prefers-reduced-motion:reduce){.quest-title-reveal.show{animation-name:quest-title-fade-still}@keyframes quest-title-fade-still{0%,100%{opacity:0}10%,30%{opacity:1}60%{opacity:.72}85%{opacity:.27}}}

.secondary-objective{margin-top:10px;padding-top:9px;border-top:1px solid rgba(190,205,205,.2);display:grid}.secondary-objective[hidden]{display:none}.secondary-objective strong{font-size:1.03rem}.secondary-objective small{color:#9aafab}.objective{max-width:min(340px,44vw)}
.quest-tracker{margin:20px 0;padding:16px;border:1px solid #455656;background:rgba(0,0,0,.17)}.quest-tracker h2{margin:0 0 8px}.quest-tracker p{font-size:.8rem;color:#afbfbc;line-height:1.5}.quest-track-controls{display:grid;grid-template-columns:1fr 1fr;gap:14px}.quest-track-controls label{display:grid;gap:7px;font-size:.76rem;color:#eadcc0}.quest-track-controls select{width:100%;padding:9px;background:#132025;color:#eadcc0;border:1px solid #566966;font:inherit}.quest-track-status p{margin:10px 0 0}.casebook{max-height:88vh;overflow-y:auto}@media(max-width:600px){.quest-track-controls{grid-template-columns:1fr}.objective{max-width:46vw}.objective span{font-size:.62rem}}

.npc-bell{width:auto;height:var(--npc-height,220px)}.npc-bell>img{width:auto;height:100%;margin:auto}.dream-veil.blackout-veil{z-index:70;background:#000}.dream-veil.blackout-veil>*{display:none}.dream-veil.blackout-veil::before,.dream-veil.blackout-veil::after{display:none}

.npc-pension-collector{width:auto;height:var(--npc-height,220px)}.npc-pension-collector>img{width:auto;height:100%;margin:auto}

.dialogue.advocate-speaker #speaker{color:#b8d9c1}.dialogue.advocate-speaker #portraitGlyph{color:#b8d9c1}.dialogue.commander-speaker #speaker{color:#d4b584}.dialogue.commander-speaker #portraitGlyph{color:#d4b584}

.quest-title-reveal[data-kind="chapter"]{padding:3.4rem 4%;background:radial-gradient(ellipse at center,rgba(0,0,0,.64),transparent 77%)}
.quest-title-reveal[data-kind="chapter"] small{font:400 clamp(.95rem,1.7vw,1.4rem)/1.3 'Instrument Serif',Georgia,serif;letter-spacing:.34em;color:#e7d6b3;margin-bottom:1.25rem}
.quest-title-reveal[data-kind="chapter"] strong{font-size:clamp(3rem,8.2vw,8rem);color:#eee3ce;text-shadow:0 -1px 0 #fff9ea,1px 1px 0 #b5a27c,2px 2px 0 #7e6b4c,3px 3px 0 #403524,0 7px 10px #000,0 15px 32px #000}
.quest-title-reveal[data-kind="chapter"]::before,.quest-title-reveal[data-kind="chapter"]::after{content:"";display:block;width:min(46%,560px);height:1px;margin:0 auto 1.2rem;background:linear-gradient(90deg,transparent,#b9a47c,transparent);box-shadow:0 1px 2px #000}
.quest-title-reveal[data-kind="chapter"]::after{margin:1.5rem auto 0}
.quest-title-reveal[data-kind="chapter"].show{animation:chapter-title-fade 9.5s linear both}
@keyframes chapter-title-fade{0%{opacity:0;transform:translateY(-50%) scale(.985)}12%,42%{opacity:1;transform:translateY(-50%) scale(1)}70%{opacity:.65}90%{opacity:.18}100%{opacity:0;transform:translateY(-50%) scale(1.015)}}
@media(prefers-reduced-motion:reduce){.quest-title-reveal[data-kind="chapter"].show{animation-name:chapter-title-fade-still}@keyframes chapter-title-fade-still{0%,100%{opacity:0}12%,42%{opacity:1}70%{opacity:.65}90%{opacity:.18}}}

.npc-ambrose{width:auto;height:var(--npc-height,220px)}.npc-ambrose>img{width:auto;height:100%;margin:auto}

.night-area-occlusion{background-size:cover;background-position:center;background-repeat:no-repeat;-webkit-mask-image:var(--night-occlusion-mask);mask-image:var(--night-occlusion-mask);-webkit-mask-size:cover;mask-size:cover;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.night-area-occlusion[hidden]{display:none}
.scene.phase-night.authored-night .backdrop,.scene.phase-night.authored-night .area-occlusion{filter:saturate(.9) contrast(1.025) brightness(1)}

.npc-relief-clerk{width:auto;height:var(--npc-height,220px)}.npc-relief-clerk>img{width:auto;height:100%;margin:auto}

.harmonica-sprite{display:none;position:absolute;inset:0;transform-origin:50% 100%;background-repeat:no-repeat;background-size:200% 200%;background-position:0 0;filter:contrast(1.08) saturate(.85)}
.player.harmonica-playing .sprite,.player.harmonica-playing .barry-3d-host{opacity:0!important}
.player.harmonica-playing .harmonica-sprite{display:block;animation:barry-harmonica-poses var(--harmonica-duration,6.2s) steps(1,end) 1 both}
@keyframes barry-harmonica-poses{0%{background-position:0 0;transform:translate(var(--harmonica-x0),var(--harmonica-y0)) scale(var(--harmonica-scale0))}10%{background-position:100% 0;transform:translate(var(--harmonica-x1),var(--harmonica-y1)) scale(var(--harmonica-scale1))}25%{background-position:0 100%;transform:translate(var(--harmonica-x2),var(--harmonica-y2)) scale(var(--harmonica-scale2))}36%{background-position:100% 0;transform:translate(var(--harmonica-x1),var(--harmonica-y1)) scale(var(--harmonica-scale1))}49%{background-position:0 100%;transform:translate(var(--harmonica-x2),var(--harmonica-y2)) scale(var(--harmonica-scale2))}61%{background-position:100% 0;transform:translate(var(--harmonica-x1),var(--harmonica-y1)) scale(var(--harmonica-scale1))}75%{background-position:0 100%;transform:translate(var(--harmonica-x2),var(--harmonica-y2)) scale(var(--harmonica-scale2))}85%{background-position:100% 0;transform:translate(var(--harmonica-x1),var(--harmonica-y1)) scale(var(--harmonica-scale1))}93%,100%{background-position:100% 100%;transform:translate(var(--harmonica-x3),var(--harmonica-y3)) scale(var(--harmonica-scale3))}}
@media(prefers-reduced-motion:reduce){.player.harmonica-playing .harmonica-sprite{animation:none;background-position:100% 0;transform:translate(var(--harmonica-x1),var(--harmonica-y1)) scale(var(--harmonica-scale1))}}

.npc-relief-administrator,.npc-julian-vale{width:auto;height:var(--npc-height,220px)}.npc-relief-administrator>img,.npc-julian-vale>img{width:auto;height:100%;margin:auto}

.npc-evelyn-cross{width:auto;height:var(--npc-height,220px)}.npc-evelyn-cross>img{width:auto;height:100%;margin:auto}

/* Live backdrop sampling across psychedelic blend surfaces can corrupt dialogue
   compositing. Keep UI opaque and independent while the scene keeps moving. */
#game:has(#scene.psychedelic-active) :is(.dialogue,.casebook,.inventory,.profile,.game-menu,.combat,.cravings){backdrop-filter:none}
#game:has(#scene.psychedelic-active) :is(.dialogue,.casebook){background:#09151d;isolation:isolate}
.dialogue,.casebook{transition:opacity .25s,transform .25s}

/* Keep the growing checkpoint selector inside the viewport. */
.playtest-card{max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.playtest-card:has(.playtest-checkpoints:not([hidden])){width:min(1120px,calc(100vw - 48px));padding:22px 26px}
.playtest-card:has(.playtest-checkpoints:not([hidden])) h1{font-size:2.4rem;line-height:1.1;margin:4px 0 12px}.playtest-card:has(.playtest-checkpoints:not([hidden]))>.eyebrow{margin:8px 0 12px}
.playtest-checkpoints{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.playtest-checkpoints>p,.playtest-checkpoints>#playtestClose{grid-column:1/-1}
.playtest-checkpoints>p{margin:0 0 5px}.playtest-checkpoints button{min-width:0;padding:6px 10px;overflow-wrap:anywhere}
@media(max-width:1000px){.playtest-checkpoints{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.playtest-gate{padding:12px}.playtest-card{max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:22px 18px}.playtest-card:has(.playtest-checkpoints:not([hidden])){width:calc(100vw - 24px)}.playtest-checkpoints{grid-template-columns:minmax(0,1fr)}}

.npc-c4{height:var(--npc-height,clamp(180px,18vw,280px));width:auto}.npc-c4 img{height:100%;width:auto}
.objective{top:140px}

/* Keep chorus names readable at dialogue scale, including voices using glyphs. */
.chorus-portrait-name{display:none}
.dialogue.inner-chorus-speaker #speaker{font-size:.95rem;line-height:1.3;letter-spacing:.16em}
.dialogue.inner-chorus-speaker .portrait img{object-position:50% 100%}
.dialogue.inner-chorus-speaker .portrait::after{content:"";position:absolute;z-index:1;left:0;right:0;bottom:0;height:54px;background:linear-gradient(transparent,#081016 32%);pointer-events:none}
.dialogue.inner-chorus-speaker .chorus-portrait-name{position:absolute;z-index:2;display:grid;place-items:center;left:12px;right:12px;bottom:12px;min-height:30px;padding:3px 5px;border-top:1px solid #9b8153;border-bottom:1px solid #9b8153;background:linear-gradient(90deg,transparent,#111a1e 12%,#111a1e 88%,transparent);color:#eee0b8;font:400 20px/1.2 Georgia,serif;letter-spacing:.12em;text-shadow:0 1px 2px #000;pointer-events:none}
@media(max-width:800px){.dialogue.inner-chorus-speaker #speaker{font-size:.88rem}.dialogue.inner-chorus-speaker .chorus-portrait-name{left:3px;right:3px;bottom:10px;min-height:26px;padding:3px 1px;font-size:12px;letter-spacing:.03em}}
.thoughts article span{font-size:.88rem;letter-spacing:.12em}

/* Get Rolled: both men share Barry's world height and walking perspective. */
.npc-cart-road{width:auto;height:var(--npc-height,100px);z-index:4}.npc-cart-road>img{width:auto;height:100%;margin:auto}

.actor-depth-plane{position:absolute;inset:0;z-index:6;pointer-events:none;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat}.actor-depth-plane>.player,.actor-depth-plane>.companion,.actor-depth-plane>.pet-interaction{z-index:1!important}

/* Keep masked actors in one stable paint surface while atlas frames change. */
.actor-depth-plane{isolation:isolate;contain:layout paint;transform:translateZ(0)}
.actor-depth-plane>.player,.actor-depth-plane>.companion{backface-visibility:visible;will-change:auto}
.actor-depth-plane .player .sprite,.actor-depth-plane .companion-sprite{backface-visibility:visible;will-change:auto;transform:none}
.actor-depth-plane .player.facing-left .sprite,.actor-depth-plane .companion.facing-left .companion-sprite{transform:scaleX(-1)}
