:root{color-scheme:dark;--bg:#222922;--ink:#ede0bd;--muted:#acac93;--gold:#ddbd78;--border:#7f785a;--panel:#30382e}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 30%,#354137 0,#202620 75%);color:var(--ink);font-family:Georgia,'Times New Roman',serif;min-height:100svh}button{font:inherit;cursor:pointer;color:inherit;touch-action:manipulation}button:disabled{opacity:.5;cursor:wait}button:focus-visible,canvas:focus-visible{outline:2px solid #f2ce7e;outline-offset:4px}button{transition:background .15s,border-color .15s}button:hover{background-color:#fff1c010}main{width:min(1240px,calc((100svh - 280px)*1.73));min-width:min(780px,calc(100% - 36px));max-width:calc(100% - 36px);margin:0 auto}.masthead{display:flex;align-items:center;justify-content:space-between;padding:20px 0 14px}.eyebrow{font-family:system-ui,sans-serif;letter-spacing:.19em;font-size:10px;line-height:1.5;margin:0;color:var(--gold);font-weight:600}.eyebrow span{padding:0 9px}h1{font-size:clamp(29px,4vw,45px);font-weight:normal;line-height:1;margin:6px 0 0;letter-spacing:-.025em}.header-actions{display:flex;align-items:center;gap:22px}.edition{font-style:italic;font-size:15px;color:#c4c4ac}.quiet{border:1px solid #8a876455;background:transparent;padding:9px 13px;font-size:13px}.game-shell{border:1px solid #aba0758c;background:#282e26;box-shadow:0 14px 60px #0004;position:relative}.game-bar{height:43px;display:flex;align-items:center;justify-content:space-between;padding:0 17px;border-bottom:1px solid var(--border);font-size:14px}.game-bar p{font-style:italic;font-size:13px;color:#c9c5ae;margin:0}.game-bar p.alert{color:#edc05d}#key-count{display:flex;align-items:center;gap:7px;font-size:14px}.key-emblem{font-size:23px;color:var(--gold);line-height:1}.muted{color:var(--muted)}#key-lights{display:flex;gap:5px;margin-left:8px}#key-lights i{width:6px;height:6px;border:1px solid #b59863;transform:rotate(45deg)}#key-lights i.found{background:var(--gold);box-shadow:0 0 8px #e8bd5e77}.bar-actions{display:flex;gap:9px;align-items:center}.bar-actions button{background:transparent;border:0;padding:4px;color:#c0c5ad;font-size:15px}#sound{font-size:11px;font-family:system-ui,sans-serif}.stage{position:relative;background:#c8b795;aspect-ratio:1280/740;overflow:hidden}#maze{display:block;width:100%;height:100%;outline-offset:-4px;touch-action:none}#loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#d9c8a7;color:#463924;z-index:5}#loading[hidden],#start-card[hidden]{display:none}.loading-mark{font-size:38px;color:#78603b}#loading p{font-size:24px;margin:12px}#loading small{font-size:13px;color:#6f624b}#start-card{position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);width:350px;padding:28px 28px 24px;text-align:center;background:#252b24f5;border:1px solid #c8a86b;box-shadow:0 12px 45px #0006,0 0 0 5px #252b24aa}h2{font-weight:normal;font-size:32px;line-height:1.1;margin:12px 0;color:#f4e3bc}#start-card .eyebrow{font-size:8px}#start-card p:not(.eyebrow){font-size:16px;color:#d6d2bc;line-height:1.5;margin:13px 0 22px}.primary{background:#d8ba7a;color:#2b2c22;border:1px solid #e8c98a;padding:13px 20px;font-weight:bold;font-size:16px;display:flex;justify-content:space-between;gap:23px;align-items:center}.primary:hover{background:#efcf8e}#start-card .primary{width:100%}#start-card small{display:block;font:10px system-ui,sans-serif;color:#abae97;margin-top:14px}.traveller-bar{display:flex;justify-content:space-between;align-items:center;padding:0 16px;height:77px;border-top:1px solid var(--border);gap:12px}.travellers{display:flex;gap:6px;align-items:center;height:100%}.traveller-label{font:9px/1.6 system-ui,sans-serif;letter-spacing:.16em;color:#a8ad95;margin-right:10px}.traveller{position:relative;display:flex;align-items:center;border:1px solid transparent;background:transparent;text-align:left;gap:8px;height:64px;min-width:140px;padding:3px 13px 3px 3px}.traveller canvas{width:52px;height:58px;object-fit:contain}.traveller span{font-size:15px}.traveller small{display:block;font-size:10px;color:#aab197;margin-top:4px}.traveller.active{border-color:#b8a26d;background:#b8a26d12}.traveller.active span{color:#f5dba1}#restart{border:0;color:#bfc4af;white-space:nowrap}footer{display:flex;align-items:center;justify-content:space-between;gap:10px;font:10px/1.8 system-ui,sans-serif;color:#aaaF99;padding:12px 0}footer p{margin:0}footer span{padding:0 6px;color:#787d67}kbd{font:10px system-ui,sans-serif;border:1px solid #8d90724a;border-radius:2px;padding:2px 4px;color:#d1d2bc}.studio-credit{font:italic 11px Georgia,serif;color:#949d87}dialog{color:var(--ink);border:1px solid #b29b63;background:#293027;width:min(480px,calc(100% - 28px));padding:0;box-shadow:0 24px 90px #000a}dialog::backdrop{background:#10180fbb;backdrop-filter:blur(3px)}.dialog-body{padding:30px}#dialog-copy{color:#cbd0b7;line-height:1.6;font-size:16px;margin:16px 0 24px}.dialog-body h2{font-size:35px}#dialog-actions{display:grid;gap:9px}#dialog-actions button{width:100%;padding:12px 15px;text-align:left;border:1px solid #8c8d6b66;background:#ffffff06}#dialog-actions button:first-child{background:#d8ba7a;color:#2b2c22;border-color:#e8c98a}#dialog-actions button:focus-visible{outline-offset:1px}.dialog-hint{display:block;margin-top:18px;color:#a6ad94;font:10px system-ui,sans-serif}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.touch-pad{display:none;position:absolute;bottom:12px;left:12px;grid-template-columns:repeat(3,42px);gap:4px}.touch-pad button{height:42px;background:#293027d9;border:1px solid #dbbc78;color:#eed19b;font-size:23px;touch-action:none;user-select:none}.touch-pad button:first-child{grid-column:2}.touch-pad button:nth-child(2){grid-column:1}.game-shell:fullscreen{width:100%;height:100%;display:flex;flex-direction:column;align-items:stretch;justify-content:center;background:#202620}.game-shell:fullscreen .stage{height:calc(100% - 120px);width:100%;aspect-ratio:auto}.game-shell:fullscreen canvas#maze{object-fit:contain}.game-shell:fullscreen .game-bar,.game-shell:fullscreen .traveller-bar{flex-shrink:0}@media(pointer:coarse){.touch-pad{display:grid}}@media(max-width:750px){main{min-width:0;max-width:calc(100% - 20px);width:100%}.masthead{padding-top:15px}.edition{display:none}.header-actions{gap:0}.game-bar{padding:0 9px}.game-bar p{display:none}.traveller-label{display:none}.traveller-bar{padding:0 7px;height:70px}.traveller{min-width:0;gap:0;padding:0 7px 0 0;height:58px}.traveller canvas{width:37px;height:51px}.traveller span{font-size:12px}.traveller small{display:none}#restart span{display:none}#restart{font-size:21px;padding:3px}footer{display:block;text-align:center;font-size:9px}.studio-credit{margin-top:5px}.stage{aspect-ratio:1.5}#maze{object-fit:contain}#start-card{width:280px;padding:18px;top:50%}#start-card h2{font-size:26px}#start-card p:not(.eyebrow){font-size:14px;margin:10px 0}#start-card .eyebrow{display:none}#start-card small{font-size:9px}h1{font-size:32px}.eyebrow{font-size:8px}.quiet{font-size:11px;padding:8px}.touch-pad{transform:scale(.85);transform-origin:bottom left}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.level-selector{color:#dac18c;font-size:12px;white-space:nowrap}.header-actions{gap:12px}@media(max-width:750px){.masthead{gap:8px;flex-wrap:wrap}.header-actions{gap:6px;margin-left:auto}.level-selector{font-size:10px}#help span{display:none}}

.game-bar{gap:12px}#key-count,.bar-actions{flex-shrink:0}
#objective-status{display:flex;align-items:center;gap:6px;color:#e9d2a0;font-size:13px}
#objective-status.found{color:#b9d8ad}.objective-mark{font-size:16px;line-height:1}
#beast-status{text-align:center}
@media(max-width:750px){#objective-status{font-size:12px}}
@media(max-width:480px){
  .game-bar{display:grid;grid-template-columns:1fr auto;height:auto;min-height:58px;gap:0 8px;padding:3px 9px 5px}
  .bar-actions{grid-column:2;grid-row:1}.game-bar #objective-status{grid-column:1/-1;grid-row:2}
  .game-shell:fullscreen .stage{height:calc(100% - 130px)}
}


/* Keep on-screen movement available on smaller displays and touch tablets. */
@media(max-width:900px){.touch-pad{display:grid}}
