*{box-sizing:border-box}body{margin:0;background:#e6e7e2;color:#263b36;font:14px/1.6 "Segoe UI","Microsoft JhengHei",sans-serif}#viewport{position:fixed;inset:0}canvas{display:block;touch-action:none}header{position:fixed;top:26px;left:28px;right:28px;display:flex;align-items:center;gap:18px;pointer-events:none}h1{font-size:21px;letter-spacing:4px;margin:0}header p{margin:0;font-size:11px;letter-spacing:2px}.brand{font:42px Georgia,serif;position:relative}.dot{font-size:8px;color:#a18151;position:absolute;right:-6px;top:2px}.badge{margin-left:auto;font-size:12px;padding:7px 12px;background:#ffffffbb;border:1px solid #fff;border-radius:30px}aside{position:fixed;left:28px;top:115px;width:260px;max-height:calc(100dvh - 200px);overflow:auto;border-radius:18px;background:#fcfcf6ed;box-shadow:0 14px 50px #23383114;padding:23px;scrollbar-width:thin;backdrop-filter:blur(12px)}.eyebrow{font-size:9px;letter-spacing:2px;color:#8b957f}h2{font-size:24px;letter-spacing:2px;font-weight:500;margin:9px 0}p.intro{font-size:12px;color:#77817a;margin:0 0 22px}h3{font-size:11px;letter-spacing:1px;margin:20px 0 9px;color:#7f887c}button{font:inherit;cursor:pointer;border:1px solid #dde2d8;color:#374b40;background:transparent;border-radius:7px;padding:9px 10px;transition:background .15s}button:hover{background:#e5ebde}button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid #8a6b41;outline-offset:3px}.modes{display:flex;gap:4px}.modes button{flex:1;font-size:12px}.modes .active{color:#fff;background:#324c42;border-color:#324c42}.rooms{display:grid;grid-template-columns:1fr 1fr;gap:6px}.rooms button{font-size:12px;text-align:left}label{display:block;font-size:12px;margin:8px 0}input[type=checkbox]{accent-color:#324c42;margin-right:9px}.colorline{display:flex;align-items:center;justify-content:space-between}input[type=color]{border:0;padding:0;width:32px;height:22px;background:transparent}details{font-size:11px;color:#717a6c;border-top:1px solid #e5e7dd;padding-top:13px;margin-top:12px}summary{cursor:pointer}details p{margin:9px 0}input[type=range]{width:100%;accent-color:#324c42}output{float:right}.plain{display:block;border:0;padding:9px 0;font-size:11px;width:100%;text-align:left}footer{position:fixed;left:315px;right:28px;bottom:25px;display:flex;align-items:center;justify-content:space-between;font-size:12px;background:#fcfcf6df;padding:13px 18px;border-radius:12px}#status{font-weight:600}#hint{color:#788071}#loading{position:fixed;inset:0;background:#eeeee9;display:grid;place-items:center;font-size:18px}#touch{display:none;position:fixed;right:26px;bottom:95px;text-align:center}#touch button{width:48px;height:48px;background:#fcfcf6df;font-size:24px;margin:2px}dialog{border:0;border-radius:18px;padding:24px;max-width:95vw;max-height:90dvh;color:#324c42}dialog::backdrop{background:#1a3026aa}dialog img{display:block;max-width:100%;max-height:70dvh}dialog p{text-align:center;font-size:12px}#closeplan{float:right;border:0}@media(max-width:800px){header{top:15px;left:18px;right:18px}aside{left:15px;top:auto;bottom:70px;width:210px;max-height:40dvh;padding:16px}h2{font-size:20px}.intro,.eyebrow{display:none}footer{left:15px;right:15px;bottom:15px;font-size:10px;padding:10px}#hint{max-width:65%;text-align:right}.badge{font-size:10px}#touch{right:15px;bottom:80px}}
#mobileMenuToggle,#mobileMove{display:none}
#moveJoystick{position:relative;width:126px;height:126px;border:1px solid #fff9;border-radius:50%;background:#fcfcf62b;box-shadow:inset 0 0 0 21px #ffffff15;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#joystickKnob{position:absolute;left:42px;top:42px;width:42px;height:42px;border-radius:50%;background:#f4f4ebc9;border:1px solid #ffffffaa;box-shadow:0 3px 14px #1c312433;pointer-events:none}
.joystickDirections{position:absolute;inset:6px;line-height:35px;text-align:center;font-size:18px;color:#365044a6;pointer-events:none}
.joystickCaption{display:block;text-align:center;font-size:11px;color:#324c42;background:#fcfcf6bb;border-radius:20px;margin:5px 7px 0;padding:1px 6px;pointer-events:none}
#moveJoystick[data-active=true]{border-color:#3e6558;background:#ffffff55}
@media(max-width:800px),(pointer:coarse){
 .baked-viewer header{top:max(14px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));right:140px;gap:12px}
 .baked-viewer header .brand{font-size:32px}
 .baked-viewer header h1{font-size:16px;letter-spacing:2px}
 .baked-viewer header p{font-size:9px;letter-spacing:1px}
 .baked-viewer .badge{display:none}
 #mobileMenuToggle{display:block;position:fixed;z-index:3;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));background:#fcfcf6ed;min-height:44px;padding:8px 14px;box-shadow:0 3px 20px #20392b16}
 .baked-viewer aside{display:none;z-index:2;top:78px;bottom:auto;left:max(15px,env(safe-area-inset-left));width:240px;max-height:calc(100dvh - 130px);padding:17px}
 .baked-viewer.menu-open aside{display:block}
 .baked-viewer aside .intro,.baked-viewer aside .eyebrow{display:none}
 .baked-viewer #touch{display:none!important}
 .baked-viewer[data-mode=walk] #mobileMove{display:block;position:fixed;left:max(20px,env(safe-area-inset-left));bottom:calc(66px + env(safe-area-inset-bottom));z-index:1}
 .baked-viewer.menu-open #mobileMove{visibility:hidden}
 .baked-viewer footer{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));padding:10px 12px;font-size:10px;gap:8px;pointer-events:none}
 .baked-viewer #status{white-space:nowrap}
 .baked-viewer #hint{max-width:60%;text-align:right}
}
