@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/font-0.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/font-1.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/font-2.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/font-3.ttf) format('truetype');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/font-4.ttf) format('truetype');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/font-5.ttf) format('truetype');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/font-6.ttf) format('truetype');
}

:root{--gold:#c6a66c;--muted:#939b85;--text:#eee8d9}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#10150f;color:var(--text);font:12px Inter,Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button:disabled{opacity:.5;cursor:wait}#world,.shade{position:fixed;inset:0}#world canvas{display:block;width:100%;height:100%;touch-action:none}.shade{pointer-events:none;background:linear-gradient(180deg,#07100899,transparent 26%,transparent 76%,#071008a6);box-shadow:inset 0 0 150px #0004}header{position:fixed;top:0;left:0;right:0;height:90px;padding:0 35px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff0e;z-index:4;background:linear-gradient(#0f150f66,transparent);pointer-events:none}header a,header button{pointer-events:auto}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--text);font:600 20px 'Cormorant Garamond',Georgia;letter-spacing:2px}.brand>span{color:var(--gold);font-size:38px}.brand small{display:block;font:7px Inter,Arial;letter-spacing:2.6px;margin-top:8px;color:#b9baa5}nav{display:flex;gap:25px;align-items:center}nav button{font-size:10px;color:#d2d3bf}kbd{font:9px Inter,Arial;border:1px solid #d7d1ac55;padding:4px 6px;display:inline-block;margin:0 2px;color:#dfdbc2;border-radius:2px}nav b{font-weight:400;color:var(--gold);padding-left:8px}.location{position:fixed;top:130px;left:40px;pointer-events:none}.eyebrow{font-size:8px;font-weight:500;color:var(--gold);letter-spacing:2.5px}h1{font:400 38px 'Cormorant Garamond',Georgia;margin:11px 0}.location p{font:italic 14px Georgia;color:#b3b8a3}.compass{position:fixed;top:134px;right:42px;color:#c4b58b;font-size:10px;letter-spacing:3px;border-top:1px solid #c4b58b66;padding-top:10px;width:60px;text-align:center;pointer-events:none}#crosshair{position:fixed;left:50%;top:50%;width:14px;height:14px;transform:translate(-50%,-50%);border:1px solid #e3d4ac55;border-radius:50%;pointer-events:none;display:grid;place-items:center}#crosshair i{width:3px;height:3px;background:#f3e9d1;border-radius:50%}body.target #crosshair{border-color:var(--gold);box-shadow:0 0 14px #c6a66c44}#interaction{position:fixed;left:50%;top:calc(50% + 30px);transform:translateX(-50%);text-align:center;pointer-events:none;font:22px 'Cormorant Garamond',Georgia;text-shadow:0 2px 7px #000;width:300px}#interaction small{display:block;font:9px Inter;margin-top:9px;color:#c7c4af}footer{position:fixed;bottom:0;left:0;right:0;padding:24px 35px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;font-size:9px;color:#c1c5b0}footer i{font-style:normal;margin:0 12px;color:#9e9677}footer>span:last-child{font-size:7px;letter-spacing:1.5px}footer b{color:#a2b37a;margin-left:8px;font-size:7px}.overlay{position:fixed;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;background:#0b120e77;backdrop-filter:blur(3px)}.menu-card{text-align:center;padding:40px;width:min(640px,100%)}.menu-card h2{font:500 clamp(65px,9vw,110px)/.85 'Cormorant Garamond',Georgia;margin:35px 0;color:#eee6d2;text-shadow:0 4px 30px #0009}.menu-card em{font-weight:400;color:#d2b980}.menu-card p{font:17px/1.7 'Cormorant Garamond',Georgia;color:#d2d3be}.gold{background:var(--gold);color:#1b2419;font-weight:600;font-size:11px;letter-spacing:.6px;padding:16px 35px;margin:15px 0 25px;border:1px solid #e2cca0}.gold:hover{background:#dec28e}.instructions{display:flex;justify-content:center;gap:20px;font-size:9px;color:#d3d2bb;align-items:center}.instructions kbd{margin-right:7px}.menu-card>small{display:block;color:#a5ae94;font-size:9px;line-height:1.8;margin-top:25px}.text-button{font-size:9px;color:#baa97e;margin-top:15px;text-decoration:underline}#error{font:12px/1.7 Inter;color:#e7bd8d}body.playing .overlay{display:none}body:not(.playing) #crosshair,body:not(.playing) #interaction{display:none}dialog{width:min(620px,92vw);max-height:83vh;overflow:auto;border:1px solid #c3a76e55;background:#1e251bcf;backdrop-filter:blur(20px);color:var(--text);padding:40px;box-shadow:0 30px 100px #000b}dialog::backdrop{background:#080e09a6;backdrop-filter:blur(4px)}#close{position:absolute;right:14px;top:10px;font:28px Georgia;color:#a8af97}dialog h2{font:500 40px 'Cormorant Garamond',Georgia;margin:15px 0 20px}dialog p{font:19px/1.65 'Cormorant Garamond',Georgia;color:#d0d4bf}dialog .quote{font:italic 19px/1.65 Georgia;border-left:2px solid var(--gold);padding-left:20px}.actions{display:flex;flex-direction:column;gap:9px;margin-top:20px}.actions button,.card{border:1px solid #baa56933;padding:14px 17px;text-align:left;background:#baa56908;font-size:11px;color:#e1d0a6}.actions button:hover,.card:hover{background:#baa56922}.tag{display:inline-block;border:1px solid #baa56955;color:#d4ba80;padding:9px 12px;font-size:10px}.journal-tabs{display:flex;border-bottom:1px solid #baa56933;gap:25px;margin-bottom:20px}.journal-tabs button{font-size:11px;padding:10px 0;color:#a4ad94}.journal-tabs button.active{color:var(--gold);border-bottom:2px solid var(--gold)}.cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}.card{display:block;width:100%}.card strong{font:22px 'Cormorant Garamond',Georgia;display:block}.card small{display:block;font-size:9px;color:#a5ae94;line-height:1.7;margin-top:7px}.actions label{font-size:11px;color:#b9c1a7;margin-top:10px}select{padding:12px;background:#121b12;border:1px solid #baa56955;color:var(--text);font:12px Inter;width:100%}#toast{position:fixed;bottom:85px;left:50%;transform:translateX(-50%);background:#c6a66c;color:#1c2519;padding:13px 22px;font-size:11px;z-index:10;opacity:0;pointer-events:none;transition:opacity .3s;text-align:center}#toast.show{opacity:1}#touch{display:none}.hidden{display:none!important}@media(max-width:750px){header{height:74px;padding:0 18px}.brand{font-size:15px;letter-spacing:1px}.brand>span{font-size:28px}.brand small{font-size:5px;letter-spacing:1.5px}nav{gap:10px}nav button{font-size:9px}nav kbd{display:none}#sound{display:none}.location{left:20px;top:100px}h1{font-size:29px}.compass{right:20px;top:106px}footer{padding:20px;font-size:8px}footer>span:last-child{display:none}footer i{margin:0 4px}.menu-card{padding:25px 20px}.menu-card .eyebrow{font-size:7px}.instructions{gap:8px;font-size:8px}.instructions kbd{margin-right:0;font-size:8px}dialog{padding:30px 24px}.cards{grid-template-columns:1fr 1fr}.card{padding:12px}.card strong{font-size:19px}}@media(pointer:coarse){body.playing #touch{display:flex;position:fixed;left:20px;right:20px;bottom:65px;justify-content:space-between;align-items:end;pointer-events:none}#touch button{pointer-events:auto;width:48px;height:48px;border:1px solid #d5c18c66;background:#151f15aa;margin:3px;border-radius:5px;touch-action:none}#pad{text-align:center}#touch #touchInteract{border-radius:50%;width:60px;height:60px;font-size:20px}footer{display:none}}
.portrait{float:right;width:115px;height:150px;background-image:url('assets/characters.png');background-size:400% auto;background-repeat:no-repeat;margin:0 0 12px 20px;filter:drop-shadow(0 8px 15px #0008)}
.resolve-case{position:fixed;right:35px;bottom:80px;z-index:4;background:#c6a66c;color:#182017;padding:15px 20px;font-size:12px;font-weight:600;border:1px solid #e8ce99;box-shadow:0 6px 30px #0006}.resolve-case kbd{border-color:#403d2866;color:#292d1e;margin-left:12px}.completion-callout{margin-top:25px;border-top:1px solid #c6a66c66;padding-top:15px}.completion-callout h3{font:28px 'Cormorant Garamond',Georgia;margin:8px 0}.completion-callout .gold{margin-bottom:0}.evidence-review{border:1px solid #bba36b44;padding:15px;color:#c5bc9f}.evidence-review summary{cursor:pointer;font-size:12px}.evidence-review article,.case-timeline article{padding:12px 0;border-bottom:1px solid #bba36b22}.evidence-review b,.case-timeline b{font-size:11px;letter-spacing:1px;color:#cdb17b}.evidence-review p,.case-timeline p{font-size:16px;margin:7px 0}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:25px 0;padding:20px 0;border-block:1px solid #bba36b44;text-align:center}.result-stats strong{display:block;font:34px Georgia;color:#cdb17b;margin-bottom:10px}.result-stats span{font-size:9px;color:#abb19c}#verdict:empty{display:none}@media(max-width:750px){.resolve-case{right:18px;bottom:75px;padding:12px 14px}}
#caseIntro{max-width:540px}#caseIntro p{font-size:15px;line-height:1.55;margin:12px 0}.menu-card{max-height:90vh;overflow:auto}

body.playing #world canvas{cursor:none}

/* Touch HUD stays clear of browser chrome and the movement controls. */
body{overscroll-behavior:none}button{touch-action:manipulation}
.overlay{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
.menu-card{max-height:90dvh;overscroll-behavior:contain}
#close{min-width:44px;min-height:44px}nav button,.journal-tabs button{min-height:44px}
dialog{max-height:85dvh}body.touch-mode footer,body.touch-mode .instructions,body.touch-mode kbd{display:none}
body.touch-mode.playing #touch{display:flex;position:fixed;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));justify-content:space-between;align-items:end;pointer-events:none;z-index:3;user-select:none;-webkit-user-select:none}
body.touch-mode #touch button{pointer-events:auto;width:48px;height:48px;border:1px solid #d5c18c88;background:#151f15cc;margin:3px;border-radius:6px;touch-action:none}
body.touch-mode #pad{text-align:center}body.touch-mode #touch #touchInteract{border-radius:50%;width:64px;height:64px;font-size:28px}
body.touch-mode .resolve-case{bottom:calc(max(12px,env(safe-area-inset-bottom)) + 82px);right:max(15px,env(safe-area-inset-right));min-height:44px;padding:10px;font-size:10px}
body.touch-mode #toast{bottom:150px;max-width:85vw;width:max-content}
body.touch-mode header{padding-left:max(15px,env(safe-area-inset-left));padding-right:max(15px,env(safe-area-inset-right));top:env(safe-area-inset-top)}
@media(max-width:450px){.brand{font-size:12px;gap:6px}.brand small{display:none}nav{gap:5px}nav button{min-width:44px}.menu-card h2{font-size:64px;margin:20px 0}.location{top:85px}.location .eyebrow{font-size:6px}.compass{top:90px}#interaction{width:220px}}
@media(max-height:500px){.menu-card{max-height:96dvh}.menu-card h2{font-size:52px;margin:15px 0}body.touch-mode header{height:48px}body.touch-mode .location{top:50px;left:max(20px,env(safe-area-inset-left))}body.touch-mode .location .eyebrow,body.touch-mode .location p,body.touch-mode .compass{display:none}body.touch-mode h1{font-size:24px;margin:5px 0}body.touch-mode #interaction{top:calc(50% + 12px)}}

#touchMode{min-height:44px;display:block;margin:8px auto}body.touch-mode #touchMode{display:none}
