*{box-sizing:border-box}body{margin:0;font:16px/1.5 system-ui,sans-serif;color:#183542;background:#dce6eb;overflow:hidden}button,select{font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #e68a36;outline-offset:3px}#view{position:fixed;inset:0}#view canvas{display:block;width:100%;height:100%;touch-action:none}#loading{position:absolute;inset:45% 0;text-align:center}header{position:absolute;left:30px;right:30px;top:24px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.brand{display:flex;align-items:center;gap:12px}.mark{background:#193f51;color:white;font:32px Georgia;padding:4px 14px;border-radius:3px}.brand strong{font-size:20px;letter-spacing:4px}.brand div span{display:block;font-size:12px;letter-spacing:.8px}.badge{font-size:12px;letter-spacing:1.4px;background:#ffffffca;padding:8px 12px;border-radius:4px}.panel{position:absolute;left:30px;top:108px;width:290px;background:#ffffffed;padding:24px;border:1px solid #ffffff;border-radius:10px;box-shadow:0 12px 50px #1635450e;max-height:calc(100dvh - 190px);overflow-y:auto}.eyebrow{font-size:11px;letter-spacing:1.3px;color:#637d88}h1{font:28px/1.2 Georgia,serif;margin:12px 0}.intro{font-size:14px;color:#617682;margin:0 0 24px}label{display:block;font-size:14px;margin-bottom:8px}select{width:100%;padding:12px 8px;border:1px solid #ccd7dc;background:#f7f9fa;color:#183542;border-radius:5px;font-size:14px}.modes{display:flex;gap:6px;margin-top:14px}button{border:1px solid #cbd8de;border-radius:5px;background:#fff;color:#234351;padding:10px 12px;font-size:14px}.modes button{flex:1;padding:10px 4px}.active{background:#194a5e;color:white;border-color:#194a5e}.wide{width:100%;margin-top:8px}.divider{border-top:1px solid #e0e7ea;margin:22px 0}.check{display:flex;align-items:center;gap:6px}.check input{accent-color:#195569;width:16px;height:16px}#hint,details p{font-size:13px;color:#617682}details{font-size:14px;margin-top:18px}summary{cursor:pointer}a{color:#166784}.mapbox{position:absolute;right:28px;bottom:88px;width:264px;background:#fffffff0;padding:12px;border-radius:8px;box-shadow:0 5px 30px #18354212}.maphead{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px}.maphead span{color:#748791}#map{position:relative;cursor:crosshair}#mapimg{display:block;width:100%;aspect-ratio:62/52}#dot{display:none;position:absolute;width:10px;height:10px;background:#e87725;border:2px solid white;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #e8772540;pointer-events:none}.bottom{position:absolute;bottom:24px;left:30px;right:30px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}#status{font-size:13px;background:#ffffffbd;padding:8px 12px;border-radius:4px}.bottom button{pointer-events:auto}#cross{display:none;position:absolute;top:50%;left:50%;color:#183542;font-size:24px;transform:translate(-50%,-50%);pointer-events:none}#touch{display:none;position:absolute;bottom:85px;left:36px;text-align:center;user-select:none}#touch button{width:46px;height:46px;font-size:22px;margin:3px;touch-action:none;background:#ffffffe6}#panelToggle{display:none}body.walking #cross{display:block}body.walking #touch{display:block}@media(max-width:760px){header{left:16px;right:16px;top:16px}.badge{display:none}.panel{left:16px;top:86px;width:260px;display:none;max-height:calc(100dvh - 170px);padding:18px}.panel.open{display:block}.mapbox{width:170px;right:16px;bottom:80px}.maphead{font-size:12px}.bottom{left:16px;right:16px;bottom:18px}.bottom button{font-size:12px}#panelToggle{display:block;position:absolute;right:16px;top:22px}.brand strong{font-size:16px}.brand div span{font-size:11px}#touch{left:12px}}@media(max-height:620px){.panel{top:88px;max-height:calc(100dvh - 154px)}.mapbox{width:190px}}

#startWalk{background:#194a5e;color:white;border-color:#194a5e;font-weight:600;padding:12px 18px;box-shadow:0 4px 18px #193f5122}body.walking #cross{display:none}.bottom{gap:8px}@media(max-width:760px){.bottom #status{display:none}#startWalk{font-size:13px;padding:11px;flex:1}body.walking .mapbox{width:145px}}

@media(max-width:760px){.bottom #reset{font-size:0;padding:8px 11px}.bottom #reset::after{content:"↺";font-size:20px}.bottom #startWalk{min-width:0}}

/* Let the architecture fill the first view; controls remain one click away. */
header{top:24px;left:26px;right:26px}.brand{background:#fffffff0;border:1px solid #ffffffb3;border-radius:12px;padding:9px 15px 9px 10px;box-shadow:0 6px 30px #23362915}.mark{background:#283f38;border-radius:6px;font-size:26px;padding:3px 11px}.brand strong{font-size:18px;letter-spacing:3.5px}.brand div span{font-size:12px}.badge{display:none}
button,select{border-radius:8px}.active,#startWalk{background:#2b4b3e;border-color:#2b4b3e}.check input{accent-color:#2b4b3e}.panel{display:none;top:107px;left:26px;width:306px;padding:25px;border-radius:14px;box-shadow:0 16px 60px #18271e30;background:#fffffff5;max-height:calc(100dvh - 205px)}.panel.open{display:block}.panel .eyebrow{font-size:12px;letter-spacing:1.4px}.panel h1{font-size:27px}.panel .intro{margin-bottom:17px}.panel label[for="floor"]{margin-top:16px}.panel-close{position:absolute;right:12px;top:10px;border:0;background:transparent;font-size:25px;padding:0 8px}.panel #hint,.panel details p{font-size:14px;line-height:1.55}.panel .modes button{font-size:14px}
#panelToggle{display:block;position:absolute;right:26px;top:32px;padding:12px 16px;background:#ffffffed;box-shadow:0 5px 25px #18271e12;border-color:#ffffffba;font-weight:600}
.view-shortcuts{position:absolute;top:32px;left:50%;transform:translateX(-50%);display:flex;gap:4px;padding:4px;background:#ffffffeb;border:1px solid #ffffffb0;border-radius:12px;box-shadow:0 6px 25px #18271e16;white-space:nowrap}.view-shortcuts button{border:0;background:transparent;padding:8px 13px;font-size:14px;font-weight:550}.view-shortcuts button:hover{background:#e3eae5}
.mapbox{display:none;border:1px solid #ffffff99;border-radius:12px;box-shadow:0 10px 32px #14251b20}body.has-floor .mapbox{display:block}.bottom{bottom:23px;left:26px;right:26px;justify-content:flex-end}.bottom #status{margin-right:auto;background:#ffffffe0;border-radius:8px;font-size:14px}.bottom button{border-color:#ffffff99;box-shadow:0 6px 20px #16281d15}.bottom #reset{background:#ffffffe8}#startWalk{box-shadow:0 6px 24px #16281d30}#loading{inset:0;display:flex;justify-content:center;align-items:center;background:#e9ede6;color:#294336;z-index:20;font-size:17px}
@media(max-width:1100px){.view-shortcuts{top:103px}.panel{top:162px;max-height:calc(100dvh - 252px)}}
@media(max-width:760px){header{left:14px;right:14px;top:15px}.brand{padding:7px 10px 7px 7px;border-radius:9px}.brand strong{font-size:15px;letter-spacing:2.5px}.brand div span{font-size:11px}.mark{font-size:23px}.view-shortcuts{top:91px;max-width:calc(100vw - 24px);gap:0}.view-shortcuts button{font-size:13px;padding:8px 11px}#panelToggle{top:23px;right:14px;padding:10px;font-size:13px;max-width:135px}.panel{left:12px;top:147px;width:min(306px,calc(100vw - 24px));max-height:calc(100dvh - 232px);padding:21px}.bottom{left:12px;right:12px;bottom:16px}.bottom #status{display:none}.bottom #startWalk{font-size:13px;padding:12px 9px}.mapbox{bottom:87px}.panel .intro{font-size:14px}}
@media(prefers-reduced-motion:no-preference){button{transition:background .16s,box-shadow .16s}.panel.open{animation:panel-appear .18s ease-out}@keyframes panel-appear{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}}

@media(max-width:380px){#panelToggle{max-width:118px;padding:8px;font-size:12px}.brand div span{display:none}.view-shortcuts button{padding:8px 9px}}
