*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:#cbd4da;color:#f7f3e9;font:15px system-ui}canvas{position:fixed;inset:0;width:100%;height:100%;touch-action:none}header,aside,footer,#pad{position:fixed;background:#182624e8;border-radius:12px;padding:12px}header{top:12px;left:12px;pointer-events:none;max-width:calc(100% - 360px)}h1{font-size:24px;margin:4px 0}h2{font-size:22px;margin:0}h3{margin:12px 0 5px}p{line-height:1.45;margin:6px 0}aside{top:12px;right:12px;width:330px;max-height:calc(100dvh - 280px);overflow:auto}.view-buttons{display:flex;gap:4px}.view-buttons button{flex:1}button{min-height:44px;min-width:44px;border:1px solid #91aaa1;border-radius:7px;background:#f4eddd;color:#182624;padding:9px;margin:2px;touch-action:none;font:inherit;cursor:pointer}button:disabled{opacity:.5;cursor:wait}button[aria-pressed="true"]{background:#f9d994}button:focus-visible,canvas:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #dcaa45;outline-offset:3px}label{display:flex;align-items:center;gap:9px;min-height:44px}input[type="checkbox"]{width:21px;height:21px;flex-shrink:0;accent-color:#a67c33}select{min-height:44px;font:inherit;margin-left:auto;max-width:55%}.quiet{font-size:12px;opacity:.85;display:block}.global-option{margin-top:4px}#advanced{width:100%;margin-top:8px}footer{bottom:10px;left:12px;max-width:calc(100% - 240px);font-size:13px}#pad{bottom:55px;right:12px;text-align:center;user-select:none}#pace{font-weight:600;font-size:13px}dialog{border:1px solid #aeb9b3;border-radius:16px;background:#f6f1e7;color:#243a32;padding:20px;width:min(580px,calc(100% - 24px));max-height:calc(100dvh - 32px);overflow:auto}dialog::backdrop{background:#0b1718a6}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:-20px;background:#f6f1e7;padding:10px 0;z-index:1}.options-content section{padding:8px 0;border-top:1px solid #d3d7cb}.options-content p{font-size:13px}.options-content details{padding:16px 0}.options-content fieldset{border:1px solid #c0c9bd}#diagnostics{position:fixed;left:12px;bottom:56px;max-width:600px;max-height:45vh;overflow:auto;background:#101c22ef;padding:12px;font:12px monospace;z-index:5}#furnishingsNotice,#modernNotice{display:none}
@media(max-width:700px){header{max-width:none;right:12px;padding:8px 12px}h1{font-size:20px}header p{font-size:12px}aside{top:92px;width:220px;padding:8px;font-size:13px;max-height:calc(100dvh - 370px)}footer{max-width:calc(100% - 24px);font-size:11px}button{padding:7px}#pad{bottom:55px}}
@media(max-height:550px){header{max-width:calc(100% - 360px)}header p{font-size:12px}h1{font-size:20px}aside{top:12px;max-height:calc(100dvh - 250px)}#pad{bottom:42px;padding:8px}#pad p{margin:0}footer{font-size:11px}}
/* Warm paper and restrained italic headings keep the controls readable. */
body{font-family:Georgia,'Times New Roman',serif;color:#3f3020}
header,aside,footer,#pad,dialog{background:radial-gradient(ellipse at 4% 8%,#b78c4930,transparent 55%),radial-gradient(ellipse at 96% 90%,#a97b3533,transparent 55%),#f0e3c3ed;border:1px solid #a88a59;border-radius:7px;box-shadow:0 3px 12px #231b2433,inset 0 0 15px #ac854526;color:#3f3020}
h1,h2,h3{font-style:italic;font-weight:600;letter-spacing:.015em}header p{font-size:14px}button{font-family:Georgia,'Times New Roman',serif;border-color:#ad905e;background:#faf1dc;color:#40311e;border-radius:5px}button:hover{background:#f1dfb7}button[aria-pressed="true"]{background:#dbc18b;border-color:#806332}input[type="checkbox"]{accent-color:#85632e}select{color:#40311e;background:#fff8e8;border:1px solid #ad905e;border-radius:4px}dialog{background-color:#f0e3c3}dialog::backdrop{background:#251e17a6}.dialog-heading{background:#f0e3c3}.options-content section{border-color:#c1aa7d}.options-content fieldset{border-color:#c1aa7d}.quiet{opacity:1;color:#6b5538}#diagnostics{color:#fff}#resumePointer{width:100%;margin-top:7px}.direction-buttons{display:none}
#joystickPad{position:fixed;left:24px;bottom:60px;display:none;text-align:center;user-select:none;z-index:2}#joystick{position:relative;display:block;width:128px;height:128px;padding:0;border-radius:50%;background:#f5e7c14d;border:2px solid #fff4d180;box-shadow:0 2px 10px #0003;touch-action:none;opacity:.8}#joystickKnob{position:absolute;left:40px;top:40px;width:44px;height:44px;border-radius:50%;border:1px solid #fff5ddc0;background:#f6e9c599;pointer-events:none}.joystick-arrows{position:absolute;inset:0;display:grid;place-items:center;font:64px Georgia;color:#fff8e199;pointer-events:none}.joystick-caption{display:inline-block;color:#3f3020;background:#f0e3c3c0;border-radius:4px;padding:3px 12px;font-size:13px;margin-top:5px}#pad{bottom:64px}#pad button{min-height:54px;min-width:100px}#pad p{margin:0 0 4px}
@media(pointer:fine){#pad{display:none}}
@media(pointer:coarse),(max-width:700px){#joystickPad{display:block}#pad{display:block}#resumePointer{display:none}}
@media(max-height:550px){#joystickPad{left:20px;bottom:44px}#joystick{width:108px;height:108px}#joystickKnob{left:30px;top:30px}#pad{bottom:52px}aside{max-height:calc(100dvh - 160px)}footer{max-width:calc(100% - 190px)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
.visit-help{position:fixed;left:12px;bottom:60px;width:350px;max-height:calc(100dvh - 180px);overflow:auto;padding:16px;background:#f6e9cbed;color:#40311e;border:1px solid #a88a59;border-radius:7px;box-shadow:0 3px 16px #231b2433;z-index:6}.visit-help h2{font-size:22px}.visit-help p{font-size:14px;line-height:1.45}.help-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px}.help-actions button{font-size:13px;flex:1;white-space:nowrap}.help-actions #helpNever{flex-basis:100%;background:transparent}.help-target{position:relative;outline:3px solid #b58332!important;outline-offset:3px}.help-target:not(canvas)::after{content:'↓';position:absolute;right:3px;top:-4px;font:24px Georgia;color:#754b13;pointer-events:none;animation:help-point 1.4s ease-in-out infinite}@keyframes help-point{0%,100%{transform:translateY(-3px)}50%{transform:translateY(3px)}}
@media(max-width:700px) and (min-height:551px){.visit-help{left:12px;right:12px;bottom:230px;width:auto;max-height:calc(100dvh - 520px)}}
@media(min-width:701px) and (max-height:550px){.visit-help{left:150px;bottom:48px;width:calc(100% - 520px);max-height:calc(100dvh - 160px)}}
@media(max-width:700px) and (max-height:550px){.visit-help{left:150px;bottom:48px;width:calc(100% - 390px);max-height:calc(100dvh - 160px)}}
@media(prefers-reduced-motion:reduce){.help-target::after{animation:none!important}}
@media(max-height:550px){.visit-help{padding:10px}.visit-help h2{font-size:18px}.visit-help p{font-size:12px;line-height:1.3;margin:3px 0}.help-actions{margin-top:5px;gap:2px}.help-actions button{padding:5px;font-size:12px;margin:0}}
header,aside,footer{transition:opacity .24s ease,transform .24s ease}#pad,#joystickPad{transition:opacity .24s ease}.hud-quiet header,.hud-quiet aside,.hud-quiet footer{opacity:0;transform:translateY(-6px);pointer-events:none}.hud-quiet #pad,.hud-quiet #joystickPad{opacity:.4}.hud-quiet #pad:has([aria-pressed="true"]),.hud-quiet #joystickPad:has([aria-pressed="true"]){opacity:.72}
#showMenu{position:fixed;top:12px;right:12px;z-index:7;min-width:68px;background:#f3e3bec9;box-shadow:0 2px 8px #39281433}
dialog,.visit-help{opacity:0;transform:translateY(10px);transition:opacity .2s ease,transform .24s ease,display .24s allow-discrete,overlay .24s allow-discrete}dialog[open],.visit-help:not([hidden]){opacity:1;transform:translateY(0)}dialog:not([open]),.visit-help[hidden]{pointer-events:none}dialog::backdrop{opacity:0;transition:opacity .2s ease,display .24s allow-discrete,overlay .24s allow-discrete}dialog[open]::backdrop{opacity:1}
@starting-style{dialog[open],.visit-help:not([hidden]){opacity:0;transform:translateY(10px)}dialog[open]::backdrop{opacity:0}}
@media(prefers-reduced-motion:reduce){header,aside,footer,#pad,#joystickPad,dialog,.visit-help,dialog::backdrop{transition:none!important;transform:none!important}}

/* Contextual interaction is independent of the fading HUD. */
#doorAction{position:fixed;left:50%;top:59%;transform:translateX(-50%);z-index:8;display:flex;align-items:center;justify-content:center;gap:.55rem;min-height:44px;min-width:0;max-width:calc(100vw - 24px);padding:6px 10px;margin:0;border:0;border-radius:4px;background:#17201b85;box-shadow:none;color:#fff8e7;text-shadow:0 1px 3px #000;font:14px system-ui;white-space:nowrap}
#doorAction:hover{background:#17201bb0}.door-icon{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;flex:none}#doorKey{font:600 12px system-ui;border:1px solid #fff8e790;border-radius:3px;padding:2px 5px;line-height:1.2}
#doorAction[data-input="touch"]{top:auto;bottom:calc(240px + env(safe-area-inset-bottom,0px));min-height:48px;padding:9px 16px;background:#17201bc9}
.door-transition{position:fixed;left:50%;top:69%;transform:translateX(-50%);z-index:9;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;max-width:calc(100vw - 24px);width:max-content;padding:6px 12px;border:0;border-radius:4px;background:#17201bbd;color:#fff8e7;font:13px system-ui;pointer-events:auto}
.door-transition p{margin:0;max-width:260px}.door-transition button{min-height:44px;padding:4px 8px;margin:0;font:12px system-ui;color:inherit;border:0;background:transparent;text-decoration:underline}#doorCancelKey{opacity:.8;font-size:11px}
.door-spinner{width:13px;height:13px;border:1.5px solid #fff8e74d;border-top-color:#fff8e7;border-radius:50%;animation:door-wait .8s linear infinite;flex:none}
@keyframes door-wait{to{transform:rotate(360deg)}}
@media(pointer:coarse){.door-transition{top:auto;bottom:calc(240px + env(safe-area-inset-bottom,0px))}}
@media(max-height:550px){#doorAction[data-input="touch"],.door-transition{top:48%;bottom:auto}}
@media(prefers-reduced-motion:reduce){.door-spinner{animation:none}}

.door-transition[data-state="motion"]{background:transparent;padding:0;text-shadow:0 1px 3px #000}
/* v0.4.14: compact touch controls, independent menu disclosure. */
#boundaryToast{position:fixed;top:calc(94px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);z-index:10;max-width:calc(100vw - 32px);width:max-content;padding:12px 16px;border:2px solid #b68b32;border-radius:7px;background:#332817f2;color:#fff5d8;box-shadow:0 3px 16px #0005;font:600 15px/1.4 system-ui;text-align:center;pointer-events:none}
@media(pointer:coarse){
 .pc-only{display:none!important}
 header{top:calc(8px + env(safe-area-inset-top,0px));left:calc(12px + env(safe-area-inset-left,0px));right:auto;max-width:calc(100% - 114px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));padding:8px 10px}
 header h1{font-size:19px}header p{font-size:12px;margin:3px 0}
 #showMenu{top:calc(8px + env(safe-area-inset-top,0px));right:calc(12px + env(safe-area-inset-right,0px));min-width:68px;min-height:44px;margin:0;background:#f3e3bef5;opacity:1}
 body:not(.mobile-menu-open) aside{display:none}
 aside{top:calc(60px + env(safe-area-inset-top,0px));right:calc(12px + env(safe-area-inset-right,0px));width:min(280px,calc(100vw - 24px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)));max-height:calc(100dvh - 218px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overflow:auto;overscroll-behavior:contain;touch-action:pan-y;padding:10px;z-index:7;font-size:14px}
 aside button,aside label{min-height:44px}aside #visitZoneHint{display:none}
 dialog{width:min(580px,calc(100vw - 24px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)));max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));padding:14px;overscroll-behavior:contain;touch-action:pan-y}
 dialog .dialog-heading{top:-14px}dialog button,dialog label{min-height:44px}
 .visit-help{top:calc(86px + env(safe-area-inset-top,0px));left:calc(12px + env(safe-area-inset-left,0px));right:calc(12px + env(safe-area-inset-right,0px));bottom:auto;width:auto;max-width:430px;max-height:calc(100dvh - 235px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));padding:6px 8px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px;overflow:auto}
 #helpTitle,#helpStep,#helpStorageHint{display:none}.visit-help #helpCopy{font-size:14px;line-height:1.35;margin:0}
 .help-actions{display:flex;flex-wrap:nowrap;gap:2px;margin:0}.help-actions button,.help-actions #helpNever{flex:0 0 auto;flex-basis:auto;min-width:44px;min-height:44px;padding:6px;margin:0;font-size:13px}.help-actions #helpSkip{order:3;font:24px system-ui}
 #joystickPad{display:block;left:calc(16px + env(safe-area-inset-left,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px))}
 #joystick{width:108px;height:108px;opacity:1;background:#f5e7c17d}#joystickKnob{left:30px;top:30px}.joystick-caption{display:none}
 #pad{display:block;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(28px + env(safe-area-inset-bottom,0px));background:none;border:0;box-shadow:none;padding:0}#pace{display:none}#pad #sprint{min-height:48px;min-width:112px;margin:0;background:#f0e3c3ee}#pad #sprint[aria-pressed="true"]{background:#d4b46c;border:2px solid #70521d}
 .hud-quiet #pad,.hud-quiet #joystickPad{opacity:.8}
 footer:not([data-notice="true"]){display:none}body[data-viewer-state="error"] footer{display:block}
 #doorAction[data-input="touch"]{bottom:calc(145px + env(safe-area-inset-bottom,0px))}
}
@media(pointer:coarse) and (max-height:550px){
 header p{display:none}.visit-help{top:calc(60px + env(safe-area-inset-top,0px));max-width:360px;max-height:calc(100dvh - 200px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}
 aside{max-height:calc(100dvh - 130px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}
 #boundaryToast{top:calc(60px + env(safe-area-inset-top,0px));max-width:calc(100vw - 210px)}
 #doorAction[data-input="touch"]{top:48%;bottom:auto}
}
@media(pointer:fine){#joystickPad,#pad{display:none}}
/* v0.4.15: mobile action icon, stable target and shape feedback. */
.sprint-icon{display:none;pointer-events:none}.sprint-speed{display:none}.sprint-label{pointer-events:none}
@media(pointer:coarse){
 #pad #sprint{display:grid;place-items:center;min-width:60px;min-height:60px;width:60px;height:60px;padding:10px;border:1px solid #fff4d19c;border-radius:50%;background:#30281b73;color:#fff4d8;box-shadow:0 2px 8px #0003;touch-action:none}
 #pad #sprint .sprint-label{display:none}#pad #sprint .sprint-icon{display:block;filter:drop-shadow(0 1px 2px #0008)}
 #pad #sprint[aria-pressed="true"]{background:#30281b9c;border:3px double #fff4d8;padding:8px;box-shadow:0 0 0 2px #fff4d140,0 2px 8px #0003}
 #pad #sprint[aria-pressed="true"] .sprint-speed{display:block}
}

#batteryControls{border-top:1px solid #c1aa7d;margin-top:8px;padding-top:2px}.battery-buttons{display:grid;grid-template-columns:1fr 1fr;gap:4px}.battery-buttons button{min-height:44px;margin:0;font-size:13px}#batteryControls h3{font-size:16px;margin:8px 0}
