@font-face{font-family:Cormorant;src:url('assets/fonts/cormorant.ttf')}
@font-face{font-family:Cormorant;src:url('assets/fonts/cormorant-italic.ttf');font-style:italic}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden}
body{--cream:#fff2eb;--muted:#c7b8ad;--gold:#f4984f;--orange:#f4984f;background:#090606;color:var(--cream);font:16px Helvetica,Arial,sans-serif;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
button,a{color:inherit;font:inherit}
button{cursor:pointer;border:0}
a{text-decoration:none}
button:focus-visible,a:focus-visible{outline:2px solid #edd6a6;outline-offset:5px}
button:disabled{cursor:wait;opacity:.6}
[hidden]{display:none!important}
h1,h2,p{margin:0}
canvas#scene{position:fixed;inset:0;width:100%;height:100%;touch-action:none}
.grain{position:fixed;inset:0;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.topbar{position:fixed;top:27px;left:4%;right:4%;display:flex;align-items:center;justify-content:space-between;gap:20px;z-index:3}
.brand{display:block;text-align:center;line-height:1;transform:rotate(-4deg);text-shadow:0 2px 8px #0008}
.brand small{display:block;font-size:9px;letter-spacing:2.4px}
.brand strong{display:block;font:italic 35px Cormorant,serif;margin:1px 0 2px;font-size:42px}
.brand span{display:block;font-size:8px;letter-spacing:1.8px}
#edition{margin-left:auto;font-size:11px;letter-spacing:2px;color:#aaa48f}
#edition i{font-style:normal;margin:0 12px;color:var(--orange)}
.tools{display:flex;gap:10px}
.icon-btn{width:44px;height:44px;border:1px solid #bda77940;background:#250f0ec9;backdrop-filter:blur(5px);border-radius:50%;display:grid;place-items:center}
.icon-btn svg{width:21px;height:21px}
svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.icon-btn:hover{border-color:#eed6a680}
.home{position:absolute;z-index:2;left:8%;top:clamp(126px,19vh,210px);width:54%;max-width:730px}
.eyebrow{font-size:12px;letter-spacing:2.2px;font-weight:500;color:var(--gold)}
.home .eyebrow{display:flex;align-items:center;gap:12px}
h1{font:600 clamp(56px,5.7vw,93px)/.98 Cormorant,Georgia,serif;letter-spacing:-1.5px;margin:20px 0 24px;text-shadow:0 2px 40px #000;font-size:clamp(64px,6vw,96px)}
h1 em{color:var(--orange);font-size:1.21em;font-weight:600}
.story{font-size:18px;color:#c0c8bb;line-height:1.65;text-shadow:0 2px 10px #000}
.story strong{color:#ddcbae;font-weight:400}
.primary{display:flex;align-items:center;justify-content:space-between;gap:30px;background:linear-gradient(115deg,#d7b17c,#be8d57);border:1px solid #d6b483;min-width:310px;padding:16px 22px;color:#1c2020;box-shadow:0 3px 0 #674f32,0 10px 35px #0009;clip-path:polygon(1px 0,100% 2px,calc(100% - 1px) 100%,0 calc(100% - 2px));font-size:16px;letter-spacing:.4px;font-weight:600;transition:filter .15s,transform .15s;min-height:58px}
.primary b{font-size:22px;font-weight:400;line-height:1}
.primary:hover{filter:brightness(1.15);transform:translateY(-1px)}
.home .primary{margin-top:26px}
.text-btn{background:none;font-size:14px;color:#cdbb9d;letter-spacing:.4px;padding:12px 0;min-height:44px}
.text-btn span{margin-left:12px}
.home>.text-btn{margin-top:4px}
.home-spec{display:flex;gap:16px;align-items:center;color:#aab5a5;font-size:12px;letter-spacing:.6px;margin-top:18px}
.home-spec i{color:#a88758;font-size:10px}
#challenge-banner{font-size:14px;color:#d5b386;line-height:1.5;max-width:440px;margin-top:12px}
#home-aside{position:fixed;right:10%;bottom:20%;font:21px/1.25 Cormorant,serif;color:#c5c5aa;text-align:center;transform:rotate(-6deg);font-size:28px}
#home-aside em{font-size:40px;color:#e3b782}
.small-rule{display:block;height:30px;width:1px;background:linear-gradient(transparent,#ae9464);margin:0 auto 14px}
footer{position:fixed;bottom:22px;left:4%;right:4%;display:flex;justify-content:space-between;gap:20px;color:#a0ada4;font-size:11px;letter-spacing:.4px;z-index:3}
footer b{color:#c9ab7e;font-size:15px}
footer i{font-style:normal;margin:0 8px}
footer button{padding:0;background:none;color:inherit;font-size:12px}
#hud{position:fixed;inset:0;pointer-events:none;z-index:2}
.location{position:absolute;left:4%;top:145px;text-shadow:0 2px 12px #000;max-width:min(42vw,490px)}
.location .eyebrow{font-size:11px;letter-spacing:2px;color:#b1bfb5}
.location h2{font:28px Cormorant,serif;letter-spacing:.2px;margin:9px 0 10px;font-size:38px;line-height:1.05}
.location>span:last-child{font-size:14px;color:#b5c1b6}
.inventory{position:absolute;right:4%;top:137px;text-align:right}
.inventory .eyebrow{font-size:11px;letter-spacing:2px}
.inventory>div{display:flex;gap:8px;align-items:baseline;justify-content:end}
.inventory strong{font:52px Cormorant,serif;color:#e7d4ac;font-size:68px}
.inventory div>span{font:22px Cormorant,serif;color:#a7b6a8;font-size:30px}
#clock{font-size:15px;font-variant-numeric:tabular-nums;letter-spacing:1px;color:#b4c0b3}
.nerve{position:absolute;right:4%;bottom:158px;text-align:right}
.nerve>span{font-size:11px;letter-spacing:1.7px;color:#b4c3b5}
.nerve>div{display:flex;justify-content:end;gap:10px;margin-top:12px}
.nerve i{width:10px;height:10px;border:1px solid #cbb381;background:#cbb381;transform:rotate(45deg);box-shadow:0 0 10px #daba8d33}
.nerve i.lost{background:none;border-color:#56665e;box-shadow:none}
#objective{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);font-size:14px;letter-spacing:.5px;color:#b6c2b5;white-space:nowrap}
#controls{position:fixed;inset:0;z-index:3;pointer-events:none}
.desktop-controls{position:absolute;left:4%;bottom:68px;display:flex;flex-direction:column;gap:10px;color:#a8b8aa;font-size:13px;pointer-events:none}
kbd{display:inline-block;font:8px Helvetica;padding:4px 6px;border:1px solid #9aab902e;border-radius:2px;color:#aeb8a5;margin-right:3px;font-size:12px}
#joystick{display:none;position:absolute;left:27px;bottom:43px;width:115px;height:115px;border:1px solid #b4bc9344;border-radius:50%;background:radial-gradient(#91a37b05,#4a675b18);pointer-events:auto;touch-action:none}
#joystick:after{content:'';position:absolute;inset:14px;border:1px dashed #b4bc9319;border-radius:50%}
.stick-guides:before,.stick-guides:after{content:'';position:absolute;background:#b4bc9323}
.stick-guides:before{width:1px;height:70%;top:15%;left:50%}
.stick-guides:after{height:1px;width:70%;left:15%;top:50%}
#stick{position:absolute;left:35px;top:35px;width:43px;height:43px;border:1px solid #c3cfa477;border-radius:50%;background:radial-gradient(#b6c69938,#7a907821);box-shadow:0 1px 15px #000c;z-index:1}
#joystick small{position:absolute;top:calc(100% + 11px);width:100%;text-align:center;font-size:11px;letter-spacing:2px;color:#b1c1ab}
#threat{position:absolute;top:29%;left:50%;transform:translateX(-50%);text-align:center;z-index:4;pointer-events:none;text-shadow:0 2px 30px #000;background:radial-gradient(ellipse,#0008,transparent 70%);min-width:300px;width:min(88%,640px)}
#threat-icon{font-size:19px;display:block;color:#c87857;margin-bottom:8px}
#threat-title{font:italic 32px Cormorant,serif;color:#e0bda0;display:block;font-size:42px}
#threat-sub{display:block;font-size:13px;letter-spacing:1.4px;color:#c6b99f;margin-top:9px}
#toast{position:absolute;top:70%;left:50%;transform:translateX(-50%);text-align:center;font:italic 22px Cormorant,serif;color:#e4cfa3;z-index:4;opacity:0;transition:opacity .25s;pointer-events:none;text-shadow:0 2px 10px #000;width:80%;max-width:550px;font-size:28px}
#toast.visible{opacity:1}
#pickup{position:fixed;left:50%;top:50%;width:38px;height:38px;transform:translate(-50%,-50%);z-index:2;pointer-events:none}
#pickup svg{width:38px;height:38px;stroke:#e8c57e;transform:rotate(-90deg)}
#pickup span{position:absolute;inset:0;text-align:center;line-height:38px;color:#e8c57e}
#damage-flash{position:fixed;inset:0;pointer-events:none;z-index:6;opacity:0;background:radial-gradient(ellipse,transparent 15%,#722b25ab);transition:opacity .18s}
.result{position:absolute;z-index:7;top:50%;left:50%;transform:translate(-50%,-50%);width:520px;padding:32px 38px;background:linear-gradient(130deg,#301916f5,#190d0bf5);border:1px solid #c6a97442;box-shadow:0 10px 150px #000;backdrop-filter:blur(15px);text-align:center;max-height:calc(100dvh - 36px);overflow-y:auto}
.result h2{font:42px/1.05 Cormorant,serif;margin:22px 0;font-size:50px}
.result h2 em{color:var(--orange)}
.result-number{display:flex;flex-direction:column;gap:5px}
.result-number strong{font:78px/.95 Cormorant,serif;color:#dbb277;font-size:86px}
.result-number span{font-size:15px;color:#b7bfab}
.result>p{font-size:15px;line-height:1.7;color:#b2bda8;margin:18px 0}
.result-stats{display:flex;justify-content:space-between;gap:10px;font-size:14px;color:#b3c0ad;margin:23px 0}
.result-stats b{color:#d9c7a2;font-weight:500}
.result .primary{width:100%;margin-top:22px}
.result-actions{display:flex;gap:10px;margin-top:13px}
.secondary{flex:1;border:1px solid #bdac7a3f;background:#a6b29005;padding:12px 5px;color:#c8cbb4;font-size:14px;min-height:48px}
.secondary:hover{background:#a6b29014}
.result .text-btn{margin-top:14px}
#share-status{font-size:13px;color:#a6b299;margin-top:12px;line-height:1.5}
#share-status input{display:block;width:100%;background:#08110c;border:1px solid #a6b29055;color:#cecca8;padding:10px;margin-bottom:8px;font:9px Helvetica;user-select:text;font-size:14px}
dialog{color:var(--cream);background:linear-gradient(135deg,#301915,#190e0c);border:1px solid #c4ae794f;max-width:620px;width:calc(100% - 34px);padding:36px 42px;max-height:calc(100dvh - 35px);box-shadow:0 20px 100px #000a;scrollbar-width:thin;overflow-y:auto}
dialog::backdrop{background:#0c0605e8;backdrop-filter:blur(9px)}
dialog h2{font:41px/1.02 Cormorant,serif;letter-spacing:-.4px;margin:21px 0;font-size:48px}
dialog h2 em{color:var(--orange)}
dialog p{font-size:16px;line-height:1.7;color:#bec8b6;margin:15px 0}
dialog .close{position:absolute;top:5px;right:7px;font-size:30px;background:none;color:#8e9f8e;width:44px;height:44px}
.close:hover{color:#eddbc1}
dialog .primary{width:100%;margin-top:24px}
dialog ol{list-style:none;counter-reset:rule;margin:25px 0;padding:0}
dialog li{position:relative;counter-increment:rule;padding-left:42px;margin:20px 0}
dialog li:before{content:'0' counter(rule);position:absolute;left:0;top:0;font:italic 22px Cormorant,serif;color:#dcb27b;font-size:29px}
dialog li b{display:block;font-size:17px;font-weight:500;margin-bottom:6px}
dialog li span{display:block;font-size:15px;color:#b9c5ae;line-height:1.65}
.input-instructions{border-top:1px solid #f4984f30;padding-top:15px;font-size:14px!important}
#pause-dialog{text-align:center}
#pause-dialog .text-btn{margin-top:13px}
#room-list>div{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid #f4984f24;font-size:16px;color:#d2d0b7;gap:18px}
#room-list>div.unknown{color:#98aa93}
#room-list b{color:#cfa973;font-weight:500;white-space:nowrap}
body[data-mode="playing"] #edition,body[data-mode="playing"] footer{display:none}
body[data-mode="result"] #edition,body[data-mode="result"] footer{display:none}
body[data-mode="home"] #scene{opacity:.84}


/* Small screens keep readable type; home content may scroll on short displays. */
@media(pointer:coarse){
  #joystick{display:block}
  .desktop-controls{display:none}
}
@media(max-width:760px){
  .topbar{top:max(18px,env(safe-area-inset-top));left:22px;right:22px}
  .brand strong{font-size:36px}
  .brand small{font-size:8px}
  .brand span{font-size:7px}
  .tools{gap:9px}
  #edition{display:none}
  body[data-mode="home"] main{position:fixed;inset:110px 0 55px;overflow-y:auto;scrollbar-width:thin;padding:22px 22px 16px}
  .home{position:relative;top:auto;left:auto;width:100%;max-width:440px;text-align:center;margin:0 auto}
  .home .eyebrow{justify-content:center;font-size:11px;letter-spacing:1.7px}
  h1{font-size:clamp(45px,12.4vw,68px);letter-spacing:-1.2px;margin:20px 0}
  h1 em{font-size:1.17em}
  .story{font-size:16px;line-height:1.65;max-width:420px;margin:0 auto}
  .home .primary{margin:22px auto 0;width:100%;max-width:350px;min-width:0}
  .home>.text-btn{margin-top:7px}
  .home-spec{justify-content:center;flex-wrap:wrap;font-size:11px;gap:10px;margin-top:15px}
  #home-aside{position:static;font-size:21px;transform:none;pointer-events:none;margin-top:20px;color:#c7cbb6}
  #home-aside br{display:none}
  #home-aside em{font-size:26px}
  .small-rule{display:none}
  #challenge-banner{font-size:14px;margin:12px auto 0}
  footer{left:22px;right:22px;bottom:max(16px,env(safe-area-inset-bottom));font-size:10px;gap:12px}
  footer>span:first-child{display:none}
  footer b{font-size:13px}
  footer i{margin:0 4px}
  footer button{font-size:11px}
  .location{left:22px;top:115px;max-width:calc(100% - 144px)}
  .location h2{font-size:30px;line-height:1.02;margin:8px 0 10px}
  .location .eyebrow{font-size:11px;letter-spacing:1.4px}
  .location>span:last-child{display:block;max-width:180px;font-size:13px;line-height:1.5}
  .inventory{right:22px;top:113px}
  .inventory .eyebrow{font-size:11px;letter-spacing:1.3px}
  .inventory>div{gap:5px}
  .inventory strong{font-size:54px}
  .inventory div>span{font-size:25px}
  #clock{font-size:14px}
  .nerve{right:24px;bottom:170px}
  .nerve>span{font-size:11px;letter-spacing:1.3px}
  #objective{bottom:16px;font-size:12px;line-height:1.45;text-align:center;white-space:normal;width:90%;letter-spacing:0}
  #joystick{display:block;width:108px;height:108px;left:24px;bottom:64px}
  #stick{left:31px;top:31px;width:44px;height:44px}
  #joystick small{font-size:10px;letter-spacing:1.5px;top:calc(100% + 9px)}
  .desktop-controls{display:none}
  #toast{top:auto;bottom:205px;font-size:24px;width:88%;line-height:1.15}
  #threat{top:30%;width:88%;min-width:0}
  #threat-title{font-size:32px;line-height:1.05}
  #threat-sub{font-size:12px;letter-spacing:1px;line-height:1.5}
  #threat-icon{font-size:20px;margin-bottom:7px}
  dialog{padding:32px 24px;max-height:calc(100dvh - 30px)}
  dialog h2{font-size:40px;margin:22px 0}
  dialog .eyebrow{font-size:11px;letter-spacing:1.5px;max-width:250px}
  dialog li{padding-left:35px;margin:20px 0}
  dialog li b{font-size:16px}
  dialog li span{font-size:15px}
  dialog .primary{min-width:0;font-size:15px;gap:12px;padding:16px}
  #room-list>div{font-size:15px}
  .result{width:calc(100% - 30px);padding:29px 24px;max-width:470px}
  .result h2{font-size:43px}
  .result .eyebrow{font-size:11px;letter-spacing:1.7px}
  .result-number strong{font-size:76px}
  .result-stats{font-size:13px;gap:7px}
  .result .primary{min-width:0;font-size:15px;padding:16px;gap:14px}
  .result-actions{gap:8px}
  .secondary{font-size:13px}
}
@media(max-height:720px) and (max-width:760px){
  body[data-mode="home"] main{inset:96px 0 49px;padding-top:10px}
  h1{font-size:45px;margin:14px 0}
  .home .primary{margin-top:17px}
  #home-aside{margin-top:13px;font-size:20px}
  .home-spec{margin-top:8px}
  .location{top:105px}
  .inventory{top:103px}
  #threat{top:35%}
  #threat-title{font-size:30px}
  #joystick{bottom:60px;height:98px;width:98px}
  #stick{left:26px;top:26px}
  .nerve{bottom:162px}
  #toast{bottom:200px;font-size:23px}
  .result h2{margin:15px 0}
  .result-number strong{font-size:68px}
  .result-stats{margin:18px 0}
}
@media(max-height:760px) and (min-width:761px){
  .home{top:128px}
  h1{font-size:68px;margin:16px 0 20px}
  .story{font-size:17px}
  .home .primary{margin-top:22px}
  .home-spec{margin-top:12px}
}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation:none!important;transition:none!important}
}

/* An old pocket-torch switch: an aged metal plate and a ribbed bakelite slider. */
.torch{position:absolute;right:4%;bottom:56px;width:208px;padding:0;border:0;background:transparent;pointer-events:auto;touch-action:manipulation;text-align:center;color:#e4d6b3}
.torch-plate{position:relative;display:block;width:184px;height:110px;margin:0 auto;border:2px solid #776d58;border-radius:27px;background:linear-gradient(104deg,#242c27 0%,#7b7965 5%,#393f32 10%,#555749 28%,#32392e 60%,#636757 89%,#262d26 98%);box-shadow:inset 0 2px 1px #c3ba967a,inset 0 -4px 3px #141b18,0 0 0 2px #151c19,0 4px 0 #101610,0 9px 17px #000b}
.torch-plate:after{content:'';position:absolute;inset:5px;border:1px solid #a8a18538;border-radius:21px;pointer-events:none;background:repeating-linear-gradient(96deg,transparent 0 16px,#d4c99a09 17px,transparent 18px 39px)}
.torch-stamp{position:absolute;top:13px;left:0;right:0;font:600 10px Helvetica,sans-serif;letter-spacing:1.5px;color:#c5bc97;text-shadow:0 1px #11180d}
.torch-positions{position:absolute;top:32px;left:43px;right:43px;display:flex;justify-content:space-between;color:#c3b796;font:13px Helvetica,sans-serif;text-shadow:0 1px 2px #000}
.torch-positions b{font-weight:500;width:20px}
.torch-track{position:absolute;left:35px;top:54px;width:110px;height:33px;border-radius:9px;background:linear-gradient(#070a08,#1a211b);border:1px solid #141a13;box-shadow:inset 0 3px 5px #000,0 1px 1px #ada78b80}
.torch-slider{position:absolute;top:-5px;left:54px;width:48px;height:40px;border:1px solid #4a4538;border-radius:7px;background:linear-gradient(90deg,#1c2019,#4b483b 10%,#39392f 88%,#191d17);box-shadow:inset 0 2px 1px #aba28777,inset 0 -3px 2px #14170f,2px 4px 5px #000b;transform:translateX(0);transition:transform .13s ease-out}
.torch-slider:before{content:'';position:absolute;inset:8px 9px;background:repeating-linear-gradient(90deg,#161b1480 0 2px,#a29b7344 2px 3px,transparent 3px 6px);border-top:1px solid #1c2118;border-bottom:1px solid #7f78574d}
.torch-slider:after{content:'';position:absolute;left:18px;right:18px;top:3px;height:2px;background:#ecd895;box-shadow:0 0 7px #f3cb6399}
.torch-screw{position:absolute;top:58px;width:12px;height:12px;border-radius:50%;background:linear-gradient(145deg,#a9a18a,#373f31 75%);border:1px solid #1e291e;box-shadow:0 1px 1px #a5a28655}
.torch-screw:after{content:'';position:absolute;left:2px;right:2px;top:4px;height:1px;background:#111810;transform:rotate(-28deg)}
.screw-left{left:12px}.screw-right{right:12px}
.torch-caption{display:block;margin-top:13px;text-shadow:0 2px 6px #000}
.torch strong{display:block;font-size:13px;font-weight:500;letter-spacing:1.6px}
.torch small{display:block;font-size:11px;color:#acb7a4;margin-top:5px;line-height:1.3}
.torch.off .torch-slider{transform:translateX(-47px)}
.torch.off .torch-slider:after{background:#5d6150;box-shadow:none}
.torch.off .torch-plate{filter:brightness(.83)}
.torch:hover .torch-plate{border-color:#a59c7e}
.torch:active .torch-plate{box-shadow:inset 0 2px 1px #c3ba967a,inset 0 -4px 3px #141b18,0 0 0 2px #151c19,0 2px 0 #101610,0 5px 10px #000b}
body[data-threat="warning"] .torch:not(.off) .torch-slider:after{animation:switch-warning .5s ease infinite}
body[data-threat="hunt"] .torch:not(.off) .torch-slider:after{background:#ee8968;box-shadow:0 0 10px #fa653e}
@keyframes switch-warning{50%{background:#f2825b;box-shadow:0 0 12px #ed7644}}
.nerve{bottom:248px}
#pickup{width:48px;height:48px}
#pickup svg{width:48px;height:48px}
#pickup span{line-height:48px}
@media(max-width:760px){
  .torch{right:16px;bottom:60px;width:166px}
  .torch-plate{width:158px;height:98px;border-radius:23px}
  .torch-stamp{font-size:9px;top:11px;letter-spacing:1.2px}
  .torch-positions{left:35px;right:35px;top:27px}
  .torch-track{left:26px;top:48px;width:102px}
  .torch-slider{left:49px;width:45px}
  .torch.off .torch-slider{transform:translateX(-44px)}
  .torch-screw{top:58px;width:10px;height:10px}
  .torch-screw:after{top:3px}
  .screw-left{left:8px}.screw-right{right:8px}
  .torch-caption{margin-top:11px}
  .torch strong{font-size:12px}
  .torch small{font-size:11px}
  .nerve{bottom:229px;right:27px}
  #toast{bottom:280px}
  footer{justify-content:center}
}
@media(max-height:720px) and (max-width:760px){
  .torch{bottom:59px}
  .nerve{bottom:222px}
  #toast{bottom:266px;font-size:22px}
}
@media(prefers-reduced-motion:reduce){.torch-slider{transition:none}}

/* Jeannette's official site palette: chocolate #250f0e, orange #f4984f, cream #fff2eb. */
body{--chocolate:#250f0e;--brand-orange:#f4984f;--brand-cream:#fff2eb;font-family:Helvetica,Arial,sans-serif}
.brand{display:block;width:234px;padding:13px 19px 12px;background:var(--brand-cream);border:1px solid #fff8f1;box-shadow:0 7px 25px #0005;transform:none;line-height:0;text-shadow:none}
.brand img{display:block;width:100%;height:auto}
.topbar{top:23px}
#edition{color:#d8b6a0;font-size:11px;letter-spacing:1.7px}
#edition i{color:var(--brand-orange)}
.home{top:clamp(156px,23vh,230px);max-width:660px}
.home .eyebrow{color:var(--brand-orange);letter-spacing:2.3px;font-weight:600}
.story{color:#d4c8be}
.story strong{color:var(--brand-cream)}
.primary{background:var(--brand-orange);color:var(--chocolate);border:1px solid #ffae70;clip-path:none;box-shadow:0 3px 0 #863f23,0 10px 30px #0007;font-weight:600}
.primary:hover{filter:brightness(1.09)}
.text-btn{color:#edc9ae}
.home-spec{color:#c0aca0}
.home-spec i{color:var(--brand-orange)}
#home-aside{position:fixed;right:5%;top:19%;bottom:auto;width:42%;max-width:590px;transform:none;display:flex;flex-direction:column;align-items:center;text-align:center;font-size:27px;color:#ecd5c1;pointer-events:none}
.product-tag{font:600 11px Helvetica,Arial,sans-serif;letter-spacing:2.3px;color:var(--brand-orange);margin-bottom:8px}
.halloween-pack{display:block;width:100%;height:auto;aspect-ratio:1.35;object-fit:cover;filter:drop-shadow(0 22px 24px #000b)}
#home-aside p{margin-top:6px;transform:rotate(-3deg)}
#home-aside em{color:var(--brand-orange);font-size:37px}
.result-brand{width:184px;background:var(--brand-cream);padding:10px 15px;margin:0 auto 24px;line-height:0}
.result-brand img{width:100%;height:auto}
.result-number strong,.result-stats b,#room-list b{color:var(--brand-orange)}
.result>p,dialog p,dialog li span{color:#d0beb1}
dialog li:before{color:var(--brand-orange)}
.result-stats{color:#c2b4a7}
.result-number span{color:#d5c6b7}
.secondary{border-color:#f4984f66;background:#fff2eb05;color:#f4ddce}
.location .eyebrow,.location>span:last-child,#clock,.nerve>span,#objective,.desktop-controls{color:#c8b9ac}
.location h2,.inventory strong{color:var(--brand-cream)}
.inventory .eyebrow{color:var(--brand-orange)}
.inventory div>span{color:#c9aa90}
.nerve i{background:var(--brand-orange);border-color:#ffc28b;box-shadow:0 0 10px #f4984f22}
.nerve i.lost{background:none;border-color:#866757}
#toast{color:#ffe2c6}
#threat-title{color:#ffcfad}
#threat-sub{color:#dfb497}
#joystick{border-color:#e8b68955;background:radial-gradient(#f4984f05,#79513718)}
#joystick small{color:#c5ab94}
#stick{border-color:#eacba77d;background:radial-gradient(#c8a57945,#8c6b4821)}
kbd{color:#e6cdb9;border-color:#f4984f44}
footer{color:#b4a396}
footer b{color:var(--brand-orange)}
#room-list>div{color:#eeded1}
#room-list>div.unknown{color:#aa9382}
@media(min-width:761px) and (max-height:760px){
 .home{top:151px}
 h1{font-size:66px;margin:16px 0 20px}
 #home-aside{top:19%;width:41%}
 .halloween-pack{max-height:370px}
}
@media(max-width:760px){
 .topbar{top:max(15px,env(safe-area-inset-top));left:20px;right:20px}
 .brand{width:186px;padding:10px 14px}
 body[data-mode="playing"] .brand,body[data-mode="result"] .brand{width:155px;padding:9px 12px}
 .tools{gap:8px}
 .home{position:relative;top:auto;max-width:440px}
 #home-aside{position:static;display:grid;grid-template-columns:112px 1fr;grid-template-rows:auto auto;column-gap:10px;row-gap:4px;width:100%;max-width:350px;margin:13px auto 0;text-align:left;align-items:center;font-size:20px}
 .halloween-pack{grid-column:1;grid-row:1 / 3;width:112px;height:91px;object-fit:cover;filter:drop-shadow(0 8px 10px #0007)}
 .product-tag{grid-column:2;align-self:end;font-size:9px;letter-spacing:1.1px;line-height:1.4;margin:0}
 #home-aside p{grid-column:2;align-self:start;transform:none;margin:0}
 #home-aside em{font-size:24px}
 .home .primary{margin-top:18px}
 .result-brand{width:163px;margin-bottom:20px}
 #edition{display:none}
}
@media(max-width:760px) and (max-height:720px){
 .brand{width:174px;padding:9px 13px}
 #home-aside{grid-template-columns:96px 1fr;margin-top:10px;font-size:19px}
 .halloween-pack{width:96px;height:76px}
 .product-tag{font-size:9px}
 .home .primary{margin-top:13px}
}

/* Keep the longer ghost title readable without squeezing the lettering. */
h1 .title-place{display:block;font-size:.66em;line-height:1.04;margin-top:2px}

#footer a{color:inherit;text-underline-offset:3px}
