*{box-sizing:border-box;margin:0;padding:0}html,body,#root{touch-action:none;width:100%;height:100%;overflow:hidden}body{background:#000;font-family:system-ui,sans-serif}.compass-overlay{z-index:10;pointer-events:none;padding-top:env(safe-area-inset-top,12px);flex-direction:column;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.compass-direction{color:#fff;text-shadow:0 1px 4px #000c;margin-top:8px;font-size:22px;font-weight:700}.compass-degrees{color:#ffffffb3;text-shadow:0 1px 3px #000c;margin-bottom:6px;font-size:13px}.compass-bar{width:240px;position:relative;overflow:hidden}.compass-bar:after{content:"";background:#f44;width:2px;height:100%;position:absolute;top:0;left:50%;transform:translate(-50%)}.compass-bar-inner{justify-content:space-between;width:200%;transition:transform .1s ease-out;display:flex}.compass-bar-label{color:#ffffff80;text-shadow:0 1px 2px #000c;text-align:center;flex-shrink:0;width:11.1111%;font-size:12px;font-weight:600}.compass-bar-label.is-north{color:#f44}.toggle-button{z-index:10;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);touch-action:manipulation;background:#00000080;border:1px solid #fff6;border-radius:24px;padding:10px 28px;font-size:16px;font-weight:600;position:fixed;bottom:30px;left:50%;transform:translate(-50%)}.toggle-button:active{background:#fff3}.threed-mode-toggle{z-index:10;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);touch-action:manipulation;background:#00000080;border:1px solid #fff6;border-radius:24px;padding:10px 20px;font-size:15px;font-weight:600;position:fixed;bottom:30px;left:24px}.threed-mode-toggle:active{background:#fff3}.threed-return-button{z-index:20;pointer-events:auto;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);touch-action:manipulation;background:#00000080;border:1px solid #fff6;border-radius:24px;padding:10px 20px;font-size:15px;font-weight:600;position:fixed;bottom:30px;right:24px}.threed-return-button:active{background:#fff3}.threed-placement-hint{z-index:10;color:#fff;pointer-events:none;-webkit-backdrop-filter:blur(8px);background:#0009;border:1px solid #ffffff59;border-radius:12px;padding:10px 20px;font-size:14px;font-weight:600;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.orientation-mode-toggle{top:calc(env(safe-area-inset-top,0px) + 12px);right:calc(env(safe-area-inset-right,0px) + 12px);z-index:11;color:#fff;letter-spacing:.02em;cursor:pointer;-webkit-backdrop-filter:blur(8px);touch-action:manipulation;background:#00000073;border:1px solid #ffffff73;border-radius:17px;min-width:58px;height:34px;font-size:12px;font-weight:700;position:fixed}.orientation-mode-toggle:active{background:#ffffff40}.orientation-mode-toggle:disabled{opacity:.55;cursor:default}.permission-screen{z-index:100;background:#000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.permission-content{text-align:center;color:#fff;max-width:340px;padding:24px}.permission-content h1{color:#fff;margin-bottom:16px;font-size:28px}.permission-content p{color:#ffffffb3;margin-bottom:28px;font-size:15px;line-height:1.6}.permission-content button{color:#000;cursor:pointer;touch-action:manipulation;background:#fff;border:none;border-radius:28px;padding:14px 32px;font-size:16px;font-weight:600}.permission-content button:active{background:#ddd}.pins-layer{z-index:12;pointer-events:none;position:fixed;inset:0}.pin-button{color:#fff;cursor:pointer;pointer-events:auto;text-shadow:0 1px 4px #000000d9;width:14px;height:14px;font:inherit;white-space:nowrap;background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex;position:relative;overflow:visible}.pin-button-anchored{transform-origin:50%;position:relative}.pin-dot{background:#ff4d4d;border:2px solid #fff;border-radius:999px;width:14px;height:14px;box-shadow:0 0 0 3px #ff4d4d4d}.pin-button.is-selected .pin-dot{background:#ffd84d;box-shadow:0 0 0 4px #ffd84d59}.pin-label{white-space:nowrap;z-index:1;background:#0000009e;border:1px solid #ffffff5c;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.pins-status-banner{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 86px);z-index:30;color:#fff;background:#00000094;border:1px solid #ffffff47;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:600;position:fixed;transform:translate(-50%)}.pins-status-banner.is-error{background:#820c0cb8;border-color:#ffa0a073}.mode-switch-fade{z-index:40;pointer-events:none;opacity:0;background:#000;transition:opacity .13s;position:fixed;inset:0}.mode-switch-fade.is-visible{opacity:.35}.pin-detail-panel-root{top:calc(env(safe-area-inset-top,0px) + 10px);right:calc(env(safe-area-inset-right,0px) + 10px);bottom:calc(env(safe-area-inset-bottom,0px) + 10px);z-index:25;pointer-events:none;position:fixed}.pin-detail-panel{width:min(420px, calc(100vw - 20px - env(safe-area-inset-left,0px)));color:#fff;pointer-events:auto;-webkit-backdrop-filter:blur(8px);background:#101218f0;border:1px solid #ffffff26;border-radius:14px;flex-direction:column;height:100%;display:flex;overflow:hidden}.pin-detail-panel-header{border-bottom:1px solid #ffffff26;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.pin-detail-panel-content{flex:1;padding:12px 14px 16px;overflow-y:auto}.pin-debug-panel{top:calc(env(safe-area-inset-top,0px) + 10px);left:calc(env(safe-area-inset-left,0px) + 10px);z-index:200;width:min(500px,100vw - 20px);height:min(480px, calc(100vh - 20px - env(safe-area-inset-top,0px)));color:#fff;-webkit-backdrop-filter:blur(12px);background:#0a0c10eb;border:1px solid #fff3;border-radius:14px;flex-direction:column;font-size:12px;display:flex;position:fixed;overflow:hidden}.pin-debug-header{border-bottom:1px solid #ffffff1f;flex-shrink:0;align-items:center;gap:8px;padding:8px 10px;display:flex}.pin-debug-title{letter-spacing:.05em;color:#ffffffe6;flex:1;font-size:13px;font-weight:600}.pin-debug-toolbar{gap:4px;display:flex}.pin-debug-toolbar button{color:#fff;cursor:pointer;background:#ffffff12;border:1px solid #ffffff40;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;font-size:15px;transition:background .15s;display:flex}.pin-debug-toolbar button:hover:not(:disabled){background:#ffffff26}.pin-debug-toolbar button:disabled{opacity:.35;cursor:default}.pin-debug-error{color:#ffb7b7;flex-shrink:0;padding:4px 10px;font-size:12px}.pin-debug-body{flex:1;min-height:0;display:flex}.pin-layer-list{border-right:1px solid #ffffff1a;flex-shrink:0;width:150px;padding:4px 0;overflow-y:auto}.pin-layer-empty{color:#fff6;padding:12px 8px;font-size:11px}.pin-layer-item{color:#ffffffb3;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:0;align-items:center;gap:7px;width:100%;padding:7px 10px;font-size:12px;transition:background .12s;display:flex}.pin-layer-item:hover{color:#fff;background:#ffffff12}.pin-layer-item.is-selected{color:#fff;background:#63b3ff2e}.pin-layer-dot{background:#ffffff73;border-radius:50%;flex-shrink:0;width:7px;height:7px;transition:background .12s}.pin-layer-item.is-selected .pin-layer-dot{background:#63b3ff}.pin-layer-dot.is-moving{background:#fe0;box-shadow:0 0 5px #fe09}.pin-layer-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.pin-edit-pane{flex:1;min-width:0;padding:10px;overflow-y:auto}.pin-debug-empty{color:#fff6;padding-top:8px;font-size:12px}.pin-move-btn{color:#fff;cursor:pointer;background:#ffffff12;border:1px solid #ffffff40;border-radius:8px;width:100%;height:30px;margin-bottom:10px;font-size:12px;transition:background .15s}.pin-move-btn:hover{background:#ffffff24}.pin-move-btn.is-active{color:#fe0;background:#fe03;border-color:#fe09}.pin-debug-field{color:#fff9;flex-direction:column;gap:3px;margin-bottom:8px;display:flex}.pin-debug-field input,.pin-debug-field textarea,.pin-debug-array-item input{color:#fff;box-sizing:border-box;background:#0000004d;border:1px solid #fff3;border-radius:7px;width:100%;padding:5px 8px;font-size:12px}.pin-debug-xyz{grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:8px;display:grid}.pin-debug-xyz .pin-debug-field{margin-bottom:0}.pin-debug-section{margin-top:10px}.pin-debug-section-header{color:#fff9;text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:11px;display:flex}.pin-debug-section-header button{color:#fff;cursor:pointer;background:#ffffff12;border:1px solid #ffffff40;border-radius:6px;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;display:flex}.pin-debug-array-item{background:#ffffff0d;border-radius:8px;grid-template-columns:1fr;gap:5px;margin-bottom:8px;padding:8px;display:grid}.pin-debug-array-item button{color:#f99;cursor:pointer;background:#ff50501a;border:1px solid #ff505066;border-radius:6px;width:100%;height:26px;font-size:13px}@media (width<=640px){.pin-debug-panel{width:calc(100vw - 12px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));left:calc(env(safe-area-inset-left,0px) + 6px);top:calc(env(safe-area-inset-top,0px) + 6px);height:min(400px,60vh)}.pin-layer-list{width:120px}.pins-status-banner{bottom:calc(env(safe-area-inset-bottom,0px) + 74px)}.pin-detail-panel-root{top:auto;left:calc(env(safe-area-inset-left,0px) + 8px);right:calc(env(safe-area-inset-right,0px) + 8px);bottom:calc(env(safe-area-inset-bottom,0px) + 8px)}.pin-detail-panel{width:100%;height:min(56vh,420px)}}
