:root{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#29392f;background:#f4f1e9;font-synthesis:none}*{box-sizing:border-box}html,body,#app{height:100%;margin:0;overflow:hidden}button{font:inherit;cursor:pointer;border:1px solid #d7ddd3;color:#3e5143;background:#ffffffcf;border-radius:8px;padding:10px 15px;transition:background .2s,box-shadow .2s;touch-action:manipulation}button:hover{background:#e7eee5;box-shadow:0 3px 10px #21372212}button:focus-visible{outline:3px solid #8fb09a;outline-offset:3px}button:disabled{opacity:.45;cursor:default}canvas{display:block;touch-action:none;width:100%;height:100%}header{position:absolute;top:27px;left:32px;right:30px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.identity{background:linear-gradient(100deg,#f4f1e9ee,#f4f1e900);padding:5px 35px 18px 0}.eyebrow{font-size:11px;letter-spacing:2.3px;color:#758576}h1{font-size:27px;font-weight:500;letter-spacing:1px;margin:12px 0 7px}header p{font-size:12px;letter-spacing:.3px;color:#7a8276;margin:0}.top-actions{display:flex;gap:8px;pointer-events:auto}.top-actions button{font-size:12px}.modebar{position:absolute;top:143px;left:32px;display:flex;padding:5px;gap:4px;background:#fffffff2;border:1px solid #e6e5db;border-radius:11px;box-shadow:0 4px 20px #162f2610}.modebar button{border:0;background:transparent;font-size:12px;padding:9px 13px}.modebar button.active{background:#385b47;color:#fff}.modebar span{width:1px;background:#e4e6df;margin:7px 3px}.modebar button[aria-pressed=true]{background:#e9ede4}.room-panel{position:absolute;top:220px;left:32px;width:190px;padding:18px;background:#fffffff0;border:1px solid #e3e6dc;border-radius:12px;box-shadow:0 8px 30px #243b2a0a}.panel-title{font-size:12px;margin-bottom:15px;display:flex;justify-content:space-between}.panel-title span{color:#839585;font-size:11px}#rooms{display:grid;grid-template-columns:1fr 1fr;gap:7px}#rooms button{font-size:11px;padding:8px 2px;border-color:#e5e7df;background:#f9faf6}#rooms button.active{color:#fff;background:#41664f;border-color:#41664f}#mini-map{margin-top:18px;border-top:1px solid #eaede4;padding-top:14px}#mini-map svg{display:block;width:100%;height:145px}#mini-map polygon{cursor:pointer;transition:fill .2s}#mini-map polygon:hover{fill:#b4c9b2}.bottom{position:absolute;bottom:22px;left:32px;right:30px;display:flex;align-items:center;justify-content:space-between;gap:15px}#hint{font-size:11px;color:#61705f;background:#ffffffe0;padding:10px 15px;border-radius:8px}.bottom-actions{display:flex;gap:7px}.bottom-actions button{font-size:11px;padding:10px 13px}#status{position:absolute;bottom:78px;right:30px;display:flex;gap:7px;align-items:center;font-size:10px;color:#6d7c6d}.dot{width:6px;height:6px;border-radius:50%;background:#6d967b}#walk-pad{position:absolute;right:30px;bottom:135px;text-align:center;-webkit-user-select:none;user-select:none}#walk-pad button{width:44px;height:42px;padding:0;margin:3px;background:#f8faf5e8;font-size:20px}#loading{position:absolute;inset:0;display:grid;place-items:center;background:#f4f1e9;z-index:20}.loading-card{text-align:center;width:min(360px,85%)}.loading-card h2{font-size:23px;font-weight:400;margin:20px 0}.loading-card p{font-size:12px;color:#74826f}.progress{height:3px;background:#dfe5d8;margin-top:25px;border-radius:3px;overflow:hidden}.progress i{display:block;width:8%;height:100%;background:#5d7e61;transition:width .3s}#toast{position:absolute;bottom:120px;left:50%;transform:translate(-50%);background:#233d30e8;color:#fff;font-size:12px;padding:12px 20px;border-radius:8px;opacity:0;pointer-events:none;transition:opacity .3s;max-width:80%}dialog{border:1px solid #dfe5d9;border-radius:16px;max-width:min(650px,94vw);max-height:88vh;overflow:auto;padding:32px;color:#364838;background:#fafaf5;box-shadow:0 20px 100px #18382544}dialog::backdrop{background:#172b2266;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#close-dialog{position:absolute;right:12px;top:10px;border:0;background:none;font-size:22px}dialog h2{font-weight:500}dialog p{line-height:1.9;font-size:14px;color:#61715f}dialog svg{width:100%;max-height:60vh}body.walk .identity h1{font-size:22px}body.walk .identity{padding-bottom:10px}select{font:inherit;background:#fff;color:#385b47;border:1px solid #d7ddd3;border-radius:8px;padding:9px;font-size:12px;min-height:42px}#mobile-dock,#close-rooms{display:none}[hidden]{display:none!important}body{overscroll-behavior:none}button,select{-webkit-tap-highlight-color:transparent}body.mobile header{top:max(12px,env(safe-area-inset-top));left:14px;right:14px;align-items:center}body.mobile .identity{padding:0;background:none}body.mobile .eyebrow{font-size:10px;letter-spacing:1px}body.mobile h1,body.mobile header p{display:none}body.mobile .top-actions{gap:6px}body.mobile .top-actions button{padding:9px;min-height:44px}body.mobile #fullscreen{display:none}body.mobile select{max-width:104px;min-height:44px}body.mobile .modebar{top:calc(68px + env(safe-area-inset-top));left:14px;right:14px;justify-content:center;gap:2px;padding:4px}body.mobile .modebar button{min-height:44px;padding:8px;font-size:12px;flex:1;white-space:nowrap}body.mobile .modebar span{margin:7px 0}body.mobile #mobile-dock{position:absolute;display:flex;gap:8px;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));padding:8px;border-radius:16px;background:#fffffff5;box-shadow:0 5px 25px #19382420}body.mobile #mobile-dock button{min-height:48px;flex:1;padding:8px 4px;font-size:13px}body.mobile #mobile-rooms{background:#385b47;color:#fff;border-color:#385b47}body.mobile .room-panel{display:none;top:auto;left:12px;right:12px;bottom:calc(88px + env(safe-area-inset-bottom));width:auto;padding:16px;background:#fafcf8;z-index:5;max-height:55dvh;overflow:auto;box-shadow:0 8px 35px #23392433}body.mobile.rooms-open .room-panel{display:block}body.mobile #close-rooms{display:block;float:right;min-height:44px;padding:8px 12px}body.mobile .panel-title{min-height:44px;align-items:center;justify-content:flex-start;gap:12px;margin:0 0 10px}body.mobile #rooms{grid-template-columns:repeat(3,1fr);gap:8px}body.mobile #rooms button{min-height:48px;font-size:14px;padding:10px 4px}body.mobile #mini-map{display:none}body.mobile .bottom{left:12px;right:12px;bottom:calc(86px + env(safe-area-inset-bottom));display:block;pointer-events:none}body.mobile #hint{font-size:11px;text-align:center;width:fit-content;max-width:100%;margin:auto;padding:8px 12px;background:#ffffffe8}body.mobile .bottom-actions{display:none;pointer-events:auto;padding:12px;background:#fafcf8;border-radius:12px;box-shadow:0 8px 35px #23392433}body.mobile.more-open .bottom-actions{display:flex;flex-direction:column}body.mobile.more-open #hint,body.mobile.rooms-open #hint{display:none}body.mobile .bottom-actions button{min-height:46px;font-size:14px}body.mobile #status{display:none}body.mobile #walk-pad{bottom:calc(139px + env(safe-area-inset-bottom));right:12px}body.mobile #walk-pad button{width:48px;height:48px;margin:2px;background:#fffffff0}body.mobile.rooms-open #walk-pad,body.mobile.more-open #walk-pad{display:none}body.mobile #toast{bottom:calc(125px + env(safe-area-inset-bottom));max-width:90%;width:max-content}body.mobile dialog{padding:24px 18px;max-width:94vw}body.mobile #close-dialog{min-width:44px;min-height:44px}@media(max-height:500px){body.mobile .modebar{top:68px;right:auto;width:330px}body.mobile #mobile-dock{left:auto;width:330px}body.mobile .room-panel{left:auto;width:350px;max-height:65dvh}body.mobile .bottom{right:auto;width:330px;bottom:14px}body.mobile #walk-pad{bottom:88px}body.mobile .bottom-actions{max-height:60dvh;overflow:auto}}body.mobile .top-actions{flex-shrink:0}body.mobile .top-actions button{white-space:nowrap}@media(max-width:360px){body.mobile .eyebrow{font-size:0}body.mobile .eyebrow:after{content:"栖居";font-size:13px}}#app,#app button,#scene{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#walk-pad,#walk-pad button{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#dialog-content{-webkit-user-select:text;user-select:text}.quality-label{display:flex;gap:8px;align-items:center;font-size:12px;background:#fffffff0;border-radius:8px;padding:0 8px}.quality-label select{min-height:44px}body.mobile .quality-label{justify-content:space-between}
