:root{color:#243538;font-synthesis:none;-webkit-font-smoothing:antialiased;--panel:#f7faf8f0;--edge:#ffffffb8;--accent:#3b625d;background:#e5e9e8;font-family:Avenir Next,Avenir,Segoe UI,sans-serif;font-weight:500}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{overscroll-behavior:none}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:wait;opacity:.45}button:focus-visible{outline-offset:4px;outline:3px solid #417e82}button svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}button[hidden]{display:none}#viewport{touch-action:none;position:absolute;inset:0}#viewport canvas{touch-action:none;cursor:grab;outline:none;width:100%;height:100%;display:block}#viewport canvas.looking{cursor:grabbing}.toolbar{top:max(22px,env(safe-area-inset-top));left:max(24px,env(safe-area-inset-left));right:max(24px,env(safe-area-inset-right));pointer-events:none;align-items:center;gap:20px;display:flex;position:absolute}.toolbar>*{pointer-events:auto}.identity{background:var(--panel);border:1px solid var(--edge);white-space:nowrap;border-radius:8px;align-items:baseline;gap:9px;padding:12px 16px;display:flex;box-shadow:0 2px 14px #223d3710}.apartment-label{letter-spacing:-.9px;font-size:20px;font-weight:600}.room-nav{background:var(--panel);border:1px solid var(--edge);border-radius:9px;gap:3px;margin:0 auto;padding:5px;display:flex;box-shadow:0 2px 14px #223d3710}.room-nav button{white-space:nowrap;background:0 0;border:0;border-radius:5px;padding:10px 19px;font-size:13px;line-height:1.4;transition:background .15s,color .15s}.room-nav button:hover{background:#dde7e3}.room-nav button[aria-pressed=true]{background:var(--accent);color:#fff}.overview-button{border:1px solid var(--edge);background:var(--panel);border-radius:8px;align-items:center;gap:9px;padding:14px 17px;font-size:13px;line-height:1.4;display:flex;box-shadow:0 2px 14px #223d3710}.overview-button[aria-pressed=true]{background:var(--accent);color:#fff;border-color:#62887c}.bottom-bar{left:max(24px,env(safe-area-inset-left));right:max(24px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));pointer-events:none;grid-template-columns:1fr auto 1fr;align-items:end;gap:20px;display:grid;position:absolute}.bottom-bar>*{pointer-events:auto}.controls-hint{background:var(--panel);border:1px solid var(--edge);border-radius:7px;flex-direction:column;justify-self:start;gap:3px;padding:10px 13px;font-size:12px;line-height:1.5;display:flex;box-shadow:0 2px 14px #223d3710}.desktop-hint{color:#566865;font-size:11px}.movement-buttons{border:1px solid var(--edge);background:var(--panel);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:10px;gap:3px;padding:4px;display:flex;box-shadow:0 3px 16px #223d3718}.movement-buttons button{touch-action:none;background:0 0;border:0;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-width:65px;min-height:54px;padding:4px 11px;line-height:1.2;display:flex}.movement-buttons button span:first-child{font-family:Arial,sans-serif;font-size:25px;line-height:27px}.movement-buttons button span:last-child{font-size:11px}.movement-buttons button:hover{background:#dde7e3}.movement-buttons button.pressed,.movement-buttons button:active{background:var(--accent);color:#fff}.view-tools{justify-self:end;gap:7px;display:flex}.view-tools button{background:var(--panel);border:1px solid var(--edge);border-radius:7px;place-items:center;width:44px;height:44px;display:grid}.view-tools button:hover{background:#e1ebe5}#stop-walk{background:var(--accent);color:#fff;border:1px solid #698b7f;border-radius:7px;min-height:44px;padding:10px 17px;font-size:12px;position:absolute;bottom:80px;left:50%;transform:translate(-50%)}.view-caption{color:#fff;pointer-events:none;text-align:center;opacity:0;background:#172923e6;border-radius:6px;width:max-content;max-width:calc(100% - 32px);padding:8px 13px;font-size:12px;line-height:1.5;transition:opacity .2s;position:absolute;bottom:106px;left:50%;transform:translate(-50%)}.view-caption.visible{opacity:1}body.overview .movement-buttons{display:none}body.overview .bottom-bar{grid-template-columns:1fr auto}.loading-screen{z-index:4;pointer-events:auto;background:#e5e9e8;place-items:center;transition:opacity .45s;display:grid;position:absolute;inset:0}.loading-screen.complete{opacity:0;pointer-events:none}.loading-content{text-align:center;flex-direction:column;align-items:center;max-width:300px;display:flex}.loading-mark{letter-spacing:-1.8px;font-size:33px;font-weight:600}.loading-content p{color:#5f716e;margin:16px 0 0;font-size:13px;line-height:1.6}.loading-line{background:#b5c6be;width:90px;height:2px;margin-top:22px;overflow:hidden}.loading-line:after{content:"";background:#3b625d;width:40px;height:2px;animation:1.3s ease-in-out infinite alternate loading;display:block}.loading-screen.error .loading-line{display:none}#retry{background:#f2f7f1;border:1px solid #a8bbb3;border-radius:5px;margin-top:17px;padding:9px 15px;font-size:13px}@keyframes loading{0%{transform:translate(-30px)}to{transform:translate(80px)}}@media (hover:none),(pointer:coarse){.desktop-hint{display:none}}body.touch-device .desktop-hint{display:none}@media (width<=720px){.toolbar{top:max(14px,env(safe-area-inset-top));flex-wrap:wrap;justify-content:space-between;gap:10px;left:14px;right:14px}.identity{padding:10px 13px}.apartment-label{font-size:18px}.room-nav{flex-basis:100%;order:3;justify-content:center;margin:0;padding:4px}.room-nav button{flex:1;padding:9px 8px;font-size:12px}.overview-button{padding:11px 13px;font-size:12px}.overview-button svg{width:18px;height:18px}.bottom-bar{left:14px;right:14px;bottom:max(14px,env(safe-area-inset-bottom));grid-template-columns:1fr auto;grid-template-areas:"hint tools""move move";gap:9px 12px}.controls-hint{grid-area:hint;align-self:center;padding:8px 11px;font-size:11px}.desktop-hint{display:none}.view-tools{grid-area:tools}.movement-buttons{grid-area:move;width:100%}.movement-buttons button{flex:1;min-width:0;min-height:52px;padding:4px 7px}.movement-buttons button span:last-child{font-size:12px}#stop-walk{bottom:128px}.view-caption{font-size:12px;bottom:154px}body.overview .bottom-bar{grid-template-areas:"hint tools"}body.overview .view-caption{bottom:82px}}@media (height<=500px) and (orientation:landscape){.toolbar{flex-wrap:nowrap;gap:10px;top:10px}.room-nav{flex-basis:auto;order:0;margin:auto}.room-nav button{padding:8px 12px}.identity{padding:9px 12px}.overview-button{padding:10px 12px}.bottom-bar{bottom:max(10px,env(safe-area-inset-bottom));grid-template-columns:1fr auto auto;grid-template-areas:"hint move tools";gap:10px}.controls-hint{grid-area:hint;max-width:210px;font-size:11px}.movement-buttons{grid-area:move;width:auto}.movement-buttons button{min-width:55px;min-height:46px}.view-tools{grid-area:tools}.desktop-hint{display:none}.view-caption{bottom:88px}#stop-walk{bottom:70px}body.overview .bottom-bar{grid-template-columns:1fr auto;grid-template-areas:"hint tools"}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
