:root{--ink:#0a0705;--gold:#d6a65e;--paper:#d8c7a2;--blood:#a01417;--line:#55402b;--hud:rgba(7,5,4,.82);--text:#eee7dc;--muted:#b8ac9c}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#020202;color:var(--text);font-family:Georgia,'Times New Roman',serif}button,input{font:inherit}.skip{position:fixed;left:-9999px;top:8px;z-index:9999;background:#fff;color:#000;padding:8px}.skip:focus{left:8px}.boot{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 30%,rgba(74,36,16,.22),transparent 35%),#030302}.boot.hidden{display:none}.boot-card{max-width:760px;text-align:center;padding:48px 34px;border:1px solid #4e3925;background:linear-gradient(180deg,rgba(25,16,10,.94),rgba(5,4,3,.98));box-shadow:0 40px 120px #000}.eyebrow,.label{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.22em;font-size:.73rem;color:#caa675;text-transform:uppercase}.boot h1{font-size:clamp(2rem,7vw,5rem);margin:.2em 0;color:#dfb774;letter-spacing:.04em}.boot p{line-height:1.65}.boot-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:28px 0 10px}.primary,.ghost,.hudbtn,.talk,.menu-grid button{border:1px solid #81613c;background:#16100b;color:#ead8ba;padding:12px 16px;cursor:pointer}.primary:hover,.hudbtn:hover,.talk:hover,.menu-grid button:hover{border-color:#d4a45d;background:#24170d}.ghost{background:transparent}.fine{font-size:.82rem;color:#958979}.experience{min-height:100dvh;overflow:hidden}.scene{position:relative;min-height:100dvh;background-size:cover;background-position:center;isolation:isolate;transition:background-image .8s ease,filter .5s ease}.scene:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 50% 45%,transparent 20%,rgba(0,0,0,.22) 57%,rgba(0,0,0,.8) 100%),linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.28))}.scene-threshold{background-image:url('/assets/images/storefront_lit.webp')}.scene-counter{background-image:url('/assets/images/scene_counter.webp')}.scene-aisle{background-image:url('/assets/images/scene_aisle.webp')}.scene-relics{background-image:url('/assets/images/scene_relics.webp')}.scene-records{background-image:url('/assets/images/scene_records.webp')}.scene-backroom{background-image:url('/assets/images/scene_backroom.webp')}.film{position:absolute;inset:0;pointer-events:none;opacity:.09;background-image:url('/assets/images/film_noise.webp');background-size:420px;mix-blend-mode:screen;animation:grain .7s steps(2) infinite}.hud{position:absolute;border:1px solid rgba(209,168,104,.34);background:var(--hud);backdrop-filter:blur(8px);box-shadow:0 10px 40px rgba(0,0,0,.4)}.topbar{left:18px;right:18px;top:16px;min-height:58px;display:flex;align-items:center;gap:24px;padding:10px 14px}.brand{display:flex;align-items:baseline;gap:8px}.brand span{font-size:.58rem;letter-spacing:.3em}.brand strong{font-size:1.15rem;color:#d9af70;letter-spacing:.06em}.case{display:flex;gap:14px;align-items:baseline;font-family:ui-monospace,monospace;font-size:.72rem;letter-spacing:.15em}.case b{color:#d8bea0}.controls{margin-left:auto;display:flex;gap:8px}.hudbtn{padding:8px 10px;background:transparent;font-size:.72rem;letter-spacing:.1em}.objective-card{top:92px;left:18px;width:min(330px,calc(100vw - 36px));padding:16px}.objective-card strong{display:block;font-size:1.25rem;margin:6px 0}.objective-card p{margin:0 0 12px;line-height:1.45;color:#d2c7b8}.progress{height:4px;background:#251b13}.progress i{display:block;height:100%;width:0;background:#ad702e;transition:width .5s}.objective-card small{display:block;margin-top:7px;color:#9f927e}.inventory{left:18px;bottom:18px;padding:12px}.slots{display:flex;gap:8px;margin-top:8px}.slot{width:52px;height:52px;border:1px solid #5b4b39;background:rgba(0,0,0,.45);display:grid;place-items:center;font-family:ui-monospace,monospace;font-size:.65rem;text-align:center;padding:4px}.slot.filled{border-color:#b78649;color:#e5c99b;background:#20160d}.vendor-bar{left:50%;transform:translateX(-50%);bottom:18px;width:min(620px,calc(100vw - 410px));padding:13px 150px 13px 16px;min-height:88px}.speaker{color:#d33b36;font-size:.9rem}.vendor-bar p{margin:5px 0 8px;line-height:1.4}.talk{position:absolute;right:12px;top:12px;font-size:.7rem;letter-spacing:.1em}.wave{display:flex;gap:3px;height:12px;align-items:center}.wave i{width:2px;background:#9c1b19;height:4px;animation:wave 1.2s ease-in-out infinite}.wave i:nth-child(2n){animation-delay:.1s}.wave i:nth-child(3n){animation-delay:.22s}.room-label{position:absolute;right:18px;bottom:18px;padding:8px 12px;background:rgba(0,0,0,.68);font:11px ui-monospace,monospace;letter-spacing:.18em;color:#b8a48c}.scene-nav{position:absolute;left:50%;bottom:128px;transform:translateX(-50%);display:flex;gap:10px;z-index:10}.scene-nav button{border:1px solid rgba(215,169,99,.5);background:rgba(5,4,3,.78);color:#e8d3b1;padding:10px 14px;cursor:pointer}.hotspots{position:absolute;inset:0}.hotspot{position:absolute;width:54px;height:54px;border:1px solid rgba(230,190,120,.75);border-radius:50%;background:rgba(14,8,4,.26);box-shadow:0 0 0 7px rgba(194,136,60,.08),0 0 24px rgba(187,113,42,.28);cursor:pointer;animation:pulse 2.3s ease-in-out infinite}.hotspot:before{content:'';position:absolute;inset:20px;border-radius:50%;background:#d8aa69}.hotspot span{position:absolute;top:62px;left:50%;transform:translateX(-50%);white-space:nowrap;background:rgba(4,3,2,.8);padding:6px 8px;color:#dec6a1;font-size:.75rem;letter-spacing:.07em}.hotspot.found{opacity:.36;filter:grayscale(1)}.panel{border:1px solid #695038;background:#090705;color:#eadfce;width:min(860px,94vw);max-height:90dvh;padding:0;box-shadow:0 40px 140px #000}.panel::backdrop{background:rgba(0,0,0,.84);backdrop-filter:blur(7px)}.panel-inner{position:relative;padding:28px}.panel h2{font-size:2rem;margin:.25em 0}.close{position:absolute;right:14px;top:10px;background:transparent;color:#c9b99e;border:0;font-size:2rem;cursor:pointer}.ledger-panel{background:linear-gradient(90deg,#17100a 0,#2a1d11 48%,#21160e 52%,#110c08 100%);color:#e7d7b7}.ledger-pages{min-height:230px;max-height:350px;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px 36px;padding:22px 24px;margin:20px 0;background:linear-gradient(90deg,rgba(210,187,143,.11),rgba(177,149,106,.08));border:1px solid #5b442b;font-family:'Brush Script MT','Segoe Script',cursive;font-size:1.05rem}.ledger-entry{display:flex;justify-content:space-between;border-bottom:1px dotted rgba(202,173,127,.2);padding:4px 0}.ledger-entry time{font-family:ui-monospace,monospace;font-size:.58rem;color:#8f7c61}.sign-label{display:block;font:11px ui-monospace,monospace;letter-spacing:.18em;margin:12px 0 6px}.sign-row{display:flex;gap:10px}.sign-row input{flex:1;background:#100d09;color:#f1dfbe;border:1px solid #73593a;padding:12px;font-size:1.15rem}.status{min-height:1.4em;color:#cda76b}.talk-choices,.menu-grid{display:grid;gap:10px;margin-top:18px}.talk-choices button{padding:14px;text-align:left;border:1px solid #5c432c;background:#120d09;color:#e7d5bb;cursor:pointer}.talk-choices button:hover{border-color:#b67f3c}.inspect-panel p{font-size:1.08rem;line-height:1.65;color:#d2c6b7}.toast{position:fixed;left:50%;top:90px;transform:translateX(-50%) translateY(-20px);z-index:1200;opacity:0;pointer-events:none;padding:10px 14px;background:#100b07;border:1px solid #6d4b2d;color:#ecd6b3;transition:.3s}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.blackout{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none;z-index:30}.blackout.on{animation:blackout .9s ease}.impact-flash{position:absolute;inset:0;background:#d9d7c9;opacity:0;pointer-events:none;z-index:31}.impact-flash.on{animation:flash .28s ease}.passing-shadow{position:absolute;top:15%;bottom:12%;width:18%;left:-25%;background:linear-gradient(90deg,transparent,rgba(0,0,0,.9),transparent);filter:blur(12px);opacity:0;z-index:8;pointer-events:none}.passing-shadow.on{animation:shadowpass 1.1s ease}.shards{position:absolute;inset:0;pointer-events:none;z-index:32;opacity:0;background:repeating-linear-gradient(35deg,transparent 0 8%,rgba(255,255,255,.12) 8.2% 8.4%,transparent 8.6% 17%)}.shards.on{animation:shards .5s ease}.scene.shake{animation:shake .35s linear}.scene.dim{filter:brightness(.56) saturate(.8)}
@keyframes grain{50%{transform:translate(1%,-1%)}}@keyframes wave{50%{height:11px}}@keyframes pulse{50%{transform:scale(1.08);box-shadow:0 0 0 12px rgba(194,136,60,.03),0 0 30px rgba(187,113,42,.45)}}@keyframes blackout{0%,100%{opacity:0}15%,45%{opacity:.98}65%{opacity:.2}}@keyframes flash{0%,100%{opacity:0}40%{opacity:.75}}@keyframes shadowpass{0%{left:-25%;opacity:0}20%{opacity:.7}80%{opacity:.5}100%{left:110%;opacity:0}}@keyframes shards{0%{opacity:.8}100%{opacity:0}}@keyframes shake{0%,100%{transform:translate(0)}20%{transform:translate(-5px,2px)}40%{transform:translate(6px,-2px)}60%{transform:translate(-3px,1px)}80%{transform:translate(3px,-1px)}}
@media(max-width:900px){.topbar{left:8px;right:8px;top:8px}.brand strong{font-size:.9rem}.case{display:none}.controls .hudbtn{font-size:.62rem;padding:7px}.objective-card{top:80px;left:8px;width:270px}.objective-card p{font-size:.83rem}.inventory{left:8px;bottom:8px}.slot{width:38px;height:38px}.vendor-bar{left:8px;right:8px;bottom:66px;transform:none;width:auto;padding-right:118px}.talk{font-size:.62rem}.room-label{right:8px;bottom:8px}.scene-nav{bottom:170px}.hotspot{width:46px;height:46px}.hotspot span{font-size:.64rem}.ledger-pages{grid-template-columns:1fr}.sign-row{flex-direction:column}}
@media(max-width:560px){.brand span{display:none}.objective-card{top:72px;width:calc(100vw - 16px);max-width:none}.objective-card p{display:none}.inventory{display:none}.scene-nav{bottom:185px;width:calc(100% - 16px);overflow:auto;justify-content:center}.scene-nav button{font-size:.72rem;padding:9px}.vendor-bar{bottom:48px;min-height:100px}.room-label{display:none}.hotspot span{display:none}.panel-inner{padding:22px 18px}.ledger-pages{min-height:180px}.controls{gap:4px}.hudbtn{letter-spacing:0}.brand strong{font-size:.72rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.film{animation:none}.hotspot{animation:none}}
body.reduce-motion *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition:none!important}
.older-pages{grid-column:1/-1;margin:12px auto 0;border:1px solid #73593a;background:#120d08;color:#d7b98b;padding:10px 14px;cursor:pointer;letter-spacing:.08em;font:11px ui-monospace,monospace}.older-pages:hover{border-color:#c99b5b}

.falling-object{position:absolute;right:12%;top:-22%;width:150px;height:100px;border:10px solid #2b1a0e;background:rgba(18,10,5,.85);box-shadow:0 10px 30px #000;opacity:0;z-index:34;pointer-events:none;transform:rotate(8deg)}.falling-object.on{animation:objectfall .72s cubic-bezier(.2,.8,.25,1)}@keyframes objectfall{0%{top:-22%;opacity:0;transform:rotate(8deg)}18%{opacity:1}70%{top:58%;transform:rotate(67deg)}100%{top:66%;opacity:0;transform:rotate(91deg)}}

/* Interaction + global responsive rescue */
.hotspots{z-index:12;pointer-events:none}
.hotspot{pointer-events:auto;z-index:13;min-width:54px;min-height:54px}
.hotspot.portal{width:68px;height:68px;border-width:2px;background:rgba(41,24,10,.28)}
.hotspot.portal:before{inset:25px}
.topbar{z-index:70}.objective-card{z-index:64}.scene-nav{z-index:72}.inventory{z-index:66}.vendor-bar{z-index:74}.room-label{z-index:65}
.guide-copy{display:block;margin-top:8px;color:#d5ae6f;line-height:1.35}
.hotspot.guided,.scene-nav button.guided{border-color:#ffe2a1;box-shadow:0 0 0 8px rgba(255,201,106,.11),0 0 22px rgba(255,186,72,.72),0 0 58px rgba(255,144,25,.34);animation:guidePulse 1.55s ease-in-out infinite}
.hotspot.guided:after{content:'';position:absolute;inset:-17px;border:1px solid rgba(255,215,142,.56);border-radius:50%;animation:guideRing 1.55s ease-out infinite}
.hotspot.guided span{color:#fff1cf;border:1px solid rgba(255,207,128,.36);box-shadow:0 0 18px rgba(255,151,30,.22)}
.scene-nav{align-items:center;background:rgba(5,3,2,.62);border:1px solid rgba(209,168,104,.28);padding:7px 9px;backdrop-filter:blur(8px);max-width:calc(100vw - 24px)}
.scene-nav .nav-kicker{font:10px ui-monospace,monospace;letter-spacing:.19em;color:#cfab76;padding:0 5px 0 2px;white-space:nowrap}
.scene-nav button{min-height:44px;border-color:rgba(215,169,99,.66);font-weight:650;letter-spacing:.05em}
.scene-nav button:hover,.scene-nav button:focus-visible{border-color:#f0c27e;background:rgba(53,31,15,.92)}
.hotspot:focus-visible,.hudbtn:focus-visible,.talk:focus-visible,.scene-nav button:focus-visible,.primary:focus-visible,.close:focus-visible{outline:3px solid #ffd58d;outline-offset:4px}
#guideBeacon{display:none}
@keyframes guidePulse{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.08);filter:brightness(1.32)}}
@keyframes guideRing{0%{transform:scale(.8);opacity:.9}100%{transform:scale(1.28);opacity:0}}

/* prevent any interaction overlay from swallowing HUD clicks */
.film,.blackout,.impact-flash,.passing-shadow,.shards,.falling-object{pointer-events:none!important}

/* touch and mobile layout: story text, movement and controls never overlap */
@media (max-width:900px), (pointer:coarse){
  .experience,.scene{min-height:100svh}
  .topbar{left:8px;right:8px;top:max(8px,env(safe-area-inset-top));min-height:56px;padding:8px 10px;gap:8px;flex-wrap:nowrap}
  .brand{min-width:0;flex:0 1 auto}.brand strong{font-size:clamp(.74rem,2.8vw,1rem);white-space:nowrap}.brand span{display:none}
  .case{display:none}
  .controls{gap:5px;min-width:0}.hudbtn{min-height:40px;padding:7px 9px;font-size:clamp(.64rem,2.4vw,.78rem);white-space:nowrap}
  .objective-card{top:calc(max(8px,env(safe-area-inset-top)) + 64px);left:8px;width:min(360px,calc(100vw - 16px));padding:12px 14px;max-height:27svh;overflow:auto}
  .objective-card .label{font-size:.62rem}.objective-card strong{font-size:clamp(1rem,4.6vw,1.25rem);line-height:1.15}.objective-card p{display:block;font-size:clamp(.76rem,3vw,.9rem);line-height:1.35;margin-bottom:8px}.guide-copy{font-size:.68rem}
  .hotspot{width:58px;height:58px;min-width:58px;min-height:58px}
  .hotspot:before{inset:22px}.hotspot.portal{width:72px;height:72px}.hotspot.portal:before{inset:28px}
  .hotspot span{display:block;top:64px;font-size:.62rem;max-width:150px;white-space:normal;text-align:center;line-height:1.15}
  .hotspot.portal span{top:78px;font-size:.68rem;font-weight:700}
  .vendor-bar{left:8px;right:8px;bottom:calc(10px + env(safe-area-inset-bottom));transform:none;width:auto;min-height:0;max-height:31svh;padding:12px 12px 10px;overflow:auto}
  .vendor-bar p{font-size:clamp(.88rem,3.6vw,1.05rem);line-height:1.42;margin-right:0;padding-right:0}
  .talk{position:static;width:100%;min-height:44px;margin-top:9px;font-size:.72rem}
  .wave{margin-top:4px}
  .scene-nav{left:8px;right:8px;bottom:calc(31svh + 22px + env(safe-area-inset-bottom));transform:none;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;width:auto;max-width:none;scrollbar-width:none}
  .scene-nav::-webkit-scrollbar{display:none}
  .scene-nav button{flex:0 0 auto;min-height:46px;padding:10px 13px;font-size:.72rem}
  .inventory{display:none}.room-label{display:none}
  .panel{width:calc(100vw - 16px);max-height:calc(100svh - 24px)}.panel-inner{padding:24px 16px}.panel h2{font-size:1.55rem}.sign-row{flex-direction:column}.sign-row input,.sign-row button{min-height:48px}
  .ledger-pages{grid-template-columns:1fr;min-height:160px;max-height:42svh}
}

/* phones: keep objective and story compact enough to preserve a large playable scene */
@media (max-width:560px){
  .topbar{min-height:52px}.hudbtn{padding:7px 8px}.controls{margin-left:auto}
  .objective-card{top:68px;max-height:24svh}.objective-card p{font-size:.78rem}.guide-copy{font-size:.64rem}
  .scene-nav{bottom:calc(29svh + 18px + env(safe-area-inset-bottom));padding:5px 6px}.scene-nav .nav-kicker{font-size:9px}.scene-nav button{min-height:42px;padding:8px 10px;font-size:.68rem}
  .vendor-bar{max-height:29svh}.vendor-bar p{font-size:.94rem}
  .hotspot span{font-size:.58rem;max-width:112px}
}

/* Android Chrome 'desktop site' still has coarse touch: make controls physically readable */
.coarse-desktop body{font-size:19px}
.coarse-desktop .topbar{min-height:74px;padding:12px 16px}
.coarse-desktop .brand strong{font-size:1.15rem}
.coarse-desktop .hudbtn{font-size:.9rem;min-height:48px;padding:10px 13px}
.coarse-desktop .objective-card{top:94px;width:390px;padding:18px}.coarse-desktop .objective-card strong{font-size:1.42rem}.coarse-desktop .objective-card p{font-size:1rem}
.coarse-desktop .hotspot{width:76px;height:76px}.coarse-desktop .hotspot:before{inset:30px}.coarse-desktop .hotspot span{top:84px;font-size:.82rem}
.coarse-desktop .hotspot.portal{width:90px;height:90px}.coarse-desktop .hotspot.portal:before{inset:36px}.coarse-desktop .hotspot.portal span{top:98px;font-size:.9rem}
.coarse-desktop .scene-nav{bottom:250px;padding:10px}.coarse-desktop .scene-nav button{font-size:.9rem;min-height:54px;padding:12px 16px}
.coarse-desktop .vendor-bar{max-height:220px;bottom:16px}.coarse-desktop .vendor-bar p{font-size:1.08rem}.coarse-desktop .talk{min-height:52px;font-size:.86rem}

@media(prefers-reduced-motion:reduce){.hotspot.guided,.scene-nav button.guided,.hotspot.guided:after{animation:none!important}.hotspot.guided{box-shadow:0 0 0 7px rgba(255,201,106,.13),0 0 25px rgba(255,186,72,.62)}}

/* V16 expanded shop */
.scene-listening{background-image:url('/assets/images/scene_listening.webp')}
.scene-archive{background-image:url('/assets/images/scene_archive.webp')}
.scene-understore{background-image:url('/assets/images/scene_understore.webp')}
.scene-ledgerannex{background-image:url('/assets/images/scene_ledgerannex.webp')}
.scene-sealed{background-image:url('/assets/images/scene_sealed.webp')}
.phase-2:before{background:radial-gradient(circle at 50% 45%,transparent 14%,rgba(0,0,0,.34) 58%,rgba(0,0,0,.86) 100%),linear-gradient(180deg,rgba(25,8,0,.12),rgba(0,0,0,.36))}
.phase-3:before,.phase-4:before{background:radial-gradient(circle at 50% 45%,transparent 9%,rgba(0,0,0,.43) 54%,rgba(0,0,0,.92) 100%),linear-gradient(180deg,rgba(35,0,0,.14),rgba(0,0,0,.44))}
.secret-hotspot{opacity:.72;border-style:dashed;box-shadow:0 0 0 6px rgba(120,103,83,.06),0 0 18px rgba(116,98,78,.16)}
.secret-hotspot:before{background:#a78f6d}.secret-hotspot:not(.guided) span{color:#ad9a7c}
.slots{max-width:390px;flex-wrap:wrap}.slot{width:44px;height:44px}.inventory{max-width:430px}
.map-rooms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.map-room{border:1px solid #60462d;background:#110c08;color:#ead6b8;padding:16px;text-align:left;cursor:pointer}.map-room:hover,.map-room:focus-visible{border-color:#c7924d;background:#20150c}.map-room.current{border-color:#e2b46d;box-shadow:0 0 24px rgba(211,148,62,.18)}.map-room strong{display:block;font-size:.95rem;letter-spacing:.08em}.map-room small{display:block;margin-top:6px;color:#9c8b73;font:9px ui-monospace,monospace;letter-spacing:.16em}
.journal-body{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:18px}.journal-body section{border:1px solid #4f3a27;background:#100b07;padding:16px}.journal-body h3{margin-top:0;color:#d8ad70}.journal-body li{margin:.5em 0;line-height:1.35;color:#d7c9b6}.journal-body p{color:#a99a86;line-height:1.5}
.objective-card strong:before{content:''}.scene-nav{max-width:min(980px,calc(100vw - 24px));flex-wrap:wrap;justify-content:center}.scene-nav button{white-space:nowrap}.hotspot.found.secret-hotspot{opacity:.28}
@media(max-width:900px),(pointer:coarse){.inventory{display:none}.scene-nav{flex-wrap:nowrap;justify-content:flex-start}.map-rooms,.journal-body{grid-template-columns:1fr}.map-room{min-height:58px}.scene-listening,.scene-archive,.scene-understore,.scene-ledgerannex,.scene-sealed{background-position:center center}}
@media(max-width:560px){.objective-card{max-height:26svh}.objective-card p{display:block}.scene-nav{bottom:calc(31svh + 20px + env(safe-area-inset-bottom))}.vendor-bar{max-height:31svh}}
