html,body{margin:0;height:100%;overflow:hidden;background:#111}#scene{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;cursor:grab;touch-action:none}#scene.dragging{cursor:grabbing}.vignette{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.45) 100%)}#hud{position:fixed;right:16px;bottom:16px;left:16px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none;font-family:system-ui,Noto Sans Thai,sans-serif;color:#fff}#hud>*{pointer-events:auto}#bar{display:flex;align-items:center;gap:8px}#status{background:#0000008c;padding:6px 12px;border-radius:999px;font-size:13px;white-space:nowrap}#bar button{width:44px;height:44px;border-radius:50%;border:0;font-size:20px;cursor:pointer;background:#ffffffe6;color:#222}#bar button.on{background:#2f9e5b;color:#fff}#pop{background:#141414d9;border-radius:14px;padding:14px 16px;max-width:280px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}#pop p{margin:0 0 6px;font-size:14px}#pop .small{font-size:12px;opacity:.8}#pop .row{display:flex;gap:8px;margin-top:10px}#pop button{border:0;border-radius:999px;padding:8px 16px;font-weight:600;cursor:pointer;background:#fff;color:#222}#pop button.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5)}#msg{background:#0009;color:#ffd37a;padding:6px 12px;border-radius:10px;font-size:13px;max-width:320px}#hotspots{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.hotspot{position:absolute;left:0;top:0;width:56px;height:56px;padding:0;border:0;background:none;pointer-events:auto;cursor:pointer}.hotspot .ring{position:absolute;top:8px;right:8px;bottom:8px;left:8px;border-radius:50%;background:#ffffff47;border:3px solid #fff;box-shadow:0 0 #ffffffb3;animation:pulse 2s infinite}.hotspot .tip{position:absolute;left:50%;top:100%;transform:translate(-50%);white-space:nowrap;color:#fff;font:600 13px system-ui,Noto Sans Thai,sans-serif;background:#0009;padding:3px 10px;border-radius:999px;opacity:0;transition:opacity .15s;pointer-events:none}.hotspot:hover .tip,.hotspot:focus-visible .tip{opacity:1}@keyframes pulse{70%{box-shadow:0 0 0 16px #fff0}to{box-shadow:0 0 #fff0}}#fade{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;opacity:0;pointer-events:none;transition:opacity .4s}#fade.on{opacity:1;pointer-events:auto}#roomname{position:fixed;left:16px;top:16px;color:#fff;font:700 18px system-ui,Noto Sans Thai,sans-serif;text-shadow:0 1px 6px rgba(0,0,0,.7);pointer-events:none}#links{position:fixed;left:16px;bottom:16px;display:flex;flex-wrap:wrap;gap:6px;max-width:calc(100% - 200px)}.chip{border:0;border-radius:999px;padding:8px 14px;background:#ffffffe6;color:#222;cursor:pointer;font:600 14px system-ui,Noto Sans Thai,sans-serif}.chip.sel{background:#2f9e5b;color:#fff}#menu{position:fixed;right:16px;bottom:76px;max-height:60vh;overflow:auto;background:#141414e0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:14px;padding:8px;display:flex;flex-direction:column;gap:2px;min-width:220px;font-family:system-ui,Noto Sans Thai,sans-serif;color:#fff}#menu[hidden],#edit[hidden]{display:none}#menu .floor{font-size:12px;opacity:.6;padding:8px 8px 2px}#menu button{text-align:left;border:0;background:transparent;color:#fff;padding:8px 10px;border-radius:8px;font-size:14px;cursor:pointer}#menu button:hover{background:#ffffff26}#edit{position:fixed;left:16px;top:56px;width:260px;background:#141414e0;color:#fff;border-radius:14px;padding:12px 14px;font:14px system-ui,Noto Sans Thai,sans-serif;display:flex;flex-direction:column;gap:8px}#edit p{margin:0;font-size:13px;opacity:.85}#edit button{border:0;border-radius:999px;padding:8px 14px;font-weight:600;cursor:pointer;background:#fff;color:#222}#edit button.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5)}#wm{position:fixed;left:50%;top:72%;transform:translate(-50%,-50%);width:max-content;max-width:92vw;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;pointer-events:none;-webkit-user-select:none;user-select:none;color:#ffffffe0;font-family:system-ui,Noto Sans Thai,sans-serif;text-shadow:0 0 3px rgba(0,0,0,.9),0 2px 10px rgba(0,0,0,.7)}#wm .wm-name{font-size:clamp(9px,1vw,11px);font-weight:600;letter-spacing:.04em}#wm .wm-tel{font-size:clamp(14px,2.5vw,26px);font-weight:800;letter-spacing:.08em;line-height:1.1}#contact{position:fixed;top:12px;right:12px;display:flex;gap:8px;z-index:5}#contact a{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;border-radius:999px;color:#4a2511;text-decoration:none;font:600 15px system-ui,Noto Sans Thai,sans-serif;background:linear-gradient(180deg,#ffffff42,#ffffff12);border:1px solid rgba(74,37,17,.85);-webkit-backdrop-filter:blur(12px) saturate(1.5);backdrop-filter:blur(12px) saturate(1.5);box-shadow:inset 0 1px #fff9,0 4px 16px #0000001f}#contact a svg{flex:none}@media (hover: hover) and (pointer: fine){#btn-call{display:none}}
