:root{--bg-primary: #E7E2D2;--panel-bg: rgba(0, 0, 0, .05);--panel-border: rgba(0, 0, 0, .1);--text-primary: #1a1a1a;--text-secondary: #5c5a52;--text-tertiary: #8a877d;--border-radius: 8px;--transition: all .2s ease;--font-body: "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Newsreader", Georgia, serif;--font-mono: "IBM Plex Mono", "Monaco", monospace;--shadow-soft: 0 2px 8px rgba(0, 0, 0, .06);--shadow-medium: 0 4px 16px rgba(0, 0, 0, .1)}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;padding:0;background:var(--bg-primary);overflow:hidden;font-family:var(--font-body);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#video{width:100vw;height:100vh;object-fit:cover;display:block}#canvas{display:none}#arOverlay{position:absolute;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:5}#overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:10}.glass-panel{background:var(--panel-bg);backdrop-filter:blur(40px) saturate(100%);-webkit-backdrop-filter:blur(40px) saturate(100%);border:1px solid var(--panel-border);border-radius:var(--border-radius);box-shadow:var(--shadow-soft);transition:var(--transition);pointer-events:all}.glass-panel:hover{border-color:#0000001f;box-shadow:var(--shadow-medium)}#status{position:absolute;top:24px;left:50%;transform:translate(-50%);padding:10px 18px;display:flex;align-items:center;gap:10px;font-weight:500;font-size:14px}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;transition:var(--transition)}.dot-connected{background:var(--text-primary);animation:pulse 3s ease-in-out infinite}.dot-connecting{background:var(--text-secondary);animation:blink 1s ease-in-out infinite}.dot-disconnected{background:var(--text-tertiary)}.dot-error{background:#f44}#fpsText{color:var(--text-tertiary);font-size:12px;font-family:IBM Plex Mono,monospace}.mode-badge{position:absolute;top:24px;right:16px;z-index:20;padding:8px 12px;border-radius:999px;background:#0e7c8a24;border:1px solid rgba(14,124,138,.5);color:#0a5560;font-size:11px;font-weight:700;letter-spacing:.04em;pointer-events:none}#controls{position:absolute;bottom:24px;left:50%;transform:translate(-50%);padding:14px 20px;display:flex;gap:10px;align-items:center}button{background:#0000000a;border:1px solid rgba(0,0,0,.1);color:var(--text-primary);padding:12px 24px;border-radius:var(--border-radius);font-size:15px;font-weight:500;cursor:pointer;transition:var(--transition);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);white-space:nowrap;font-family:var(--font-body)}button:hover:not(:disabled){background:#00000014;border-color:#00000029;transform:translateY(-1px);box-shadow:var(--shadow-soft)}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.3;cursor:not-allowed}button.primary{background:var(--text-primary);color:var(--bg-primary);border-color:var(--text-primary)}button.primary:hover:not(:disabled){background:#3a3a3a;border-color:#3a3a3a;box-shadow:var(--shadow-medium)}#viewerLink{color:var(--text-secondary);text-decoration:none;font-size:13px;font-weight:500;padding:12px 16px;border-radius:var(--border-radius);transition:var(--transition)}#viewerLink:hover{color:var(--text-primary);background:#0000000a}#minimap-container{position:absolute;top:70px;right:16px;width:200px;padding:0;overflow:hidden;border-radius:10px;opacity:.85;transition:all .3s ease;cursor:pointer}#minimap-container:hover{opacity:1}#minimap-container.minimized{width:36px;height:36px!important;border-radius:8px}#minimap-container.minimized #minimapCanvas{display:none}.minimap-toggle{position:absolute;top:4px;left:4px;width:28px;height:28px;padding:0;font-size:16px;line-height:28px;text-align:center;background:#ffffffd9;border:1px solid rgba(0,0,0,.15);color:var(--text-secondary);border-radius:6px;cursor:pointer;z-index:5;pointer-events:all;-webkit-backdrop-filter:none;backdrop-filter:none;transition:var(--transition)}.minimap-toggle:hover{background:#0000001a;color:var(--text-primary);transform:none;box-shadow:none}#minimapCanvas{width:100%;height:100%;display:block}#beacon-controls{position:absolute;top:24px;left:16px;padding:10px 14px;display:flex;flex-direction:column;gap:8px;font-size:13px;min-width:160px}#beacon-mode-toggle{display:flex;flex-direction:column;gap:3px}.mode-btn{padding:4px 8px;font-size:11px;border-radius:5px;background:#0000000a;border:1px solid rgba(0,0,0,.08);color:var(--text-secondary);cursor:pointer;transition:var(--transition);white-space:nowrap;text-align:left}.mode-btn:hover{transform:none;box-shadow:none}.mode-btn.active{background:#0000001f;color:var(--text-primary);border-color:#0003}.beacon-btn{padding:8px 14px;font-size:13px;border-radius:6px;background:#ffc83226;border:1px solid rgba(255,200,50,.3);color:#fc4;cursor:pointer;transition:var(--transition)}.beacon-btn:hover:not(:disabled){background:#ffc83240;transform:none;box-shadow:none}.clear-btn{background:#ff50501f;border-color:#ff505040;color:#ff6b6b;font-size:11px;padding:5px 10px}.clear-btn:hover:not(:disabled){background:#ff505040}.beacon-status{font-size:11px;color:var(--text-tertiary);font-family:IBM Plex Mono,monospace}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}@media(max-width:480px){#controls{flex-direction:column;max-width:calc(100vw - 40px)}button{width:100%;justify-content:center}}
