:root{color:#333;font-synthesis:none;text-rendering:optimizelegibility;background:#fff;font-family:Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #66a0cb}.viewer-app,.viewer-canvas{width:100%;height:100%;position:fixed;inset:0}.viewer-canvas canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.viewer-canvas canvas:active{cursor:grabbing}.menu-standalone{top:max(10px, env(safe-area-inset-top));z-index:150;position:fixed;left:10px}.menu-button{color:#333;background:#f3f3f3;border:1px solid #e2e2e2;border-radius:9px;flex:none;justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:flex;transform:translateY(1.5px)}.menu-button:hover{background:#e9e9e9}.menu-icon{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;width:16px;height:16px}.menu-scrim{z-index:140;background:#0003;position:fixed;inset:0}.scene-menu{top:calc(max(10px, env(safe-area-inset-top)) + 65px);z-index:151;scrollbar-width:none;background:#fff;border-radius:15px;width:280px;max-height:calc(100dvh - 90px);padding:16px;position:fixed;left:10px;overflow:auto;box-shadow:0 8px 32px #0003}.scene-menu::-webkit-scrollbar{display:none}.menu-heading{color:#888;letter-spacing:1px;margin:6px 8px 10px;font-size:11px}.scene-menu a{color:#444;border-radius:9px;margin-bottom:6px;padding:13px 12px;font-size:14px;text-decoration:none;display:block}.scene-menu a:hover{background:#f5f5f5}.scene-menu a[aria-current],.segmented a[aria-current]{color:#fff;background:#333}.control-panel{top:max(10px, env(safe-area-inset-top));width:300px;max-height:calc(100dvh - max(10px, env(safe-area-inset-top)) - 35px);overscroll-behavior:contain;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);scrollbar-width:none;background:#fffffff2;border:1px solid #fff5;border-radius:15px;padding:15px 15px 24px;position:absolute;left:10px;overflow-y:auto;box-shadow:0 8px 32px #0002}.control-panel::-webkit-scrollbar{display:none}.control-panel.collapsed{padding-bottom:15px}.panel-bar{align-items:center;gap:8px;display:flex}.panel-header{text-align:left;background:0 0;border:0;flex:1;justify-content:space-between;align-items:center;min-width:0;padding:0;display:flex}.panel-header h1{color:#333;margin:0;font-size:17px;font-weight:800}.panel-header span{color:#777;background:#f3f3f3;border-radius:15px;padding:5px 9px;font-size:11px}.description{color:#666;margin:14px 0;font-size:12px;line-height:1.7}.hint-text{color:#888;font-size:10px;line-height:1.5}.person-card{background:#fff4e8;border-left:4px solid #fc9;border-radius:10px;margin-bottom:12px;padding:12px}.person-b{background:#fff0e0;border-left-color:#ffad60}.person-heading{justify-content:space-between;align-items:center;height:20px;margin-bottom:9px;font-size:13px;display:flex}.remove-person{color:#999;background:0 0;border:none;width:28px;height:28px;font-size:20px}.field-row{gap:8px;margin-top:8px;display:flex}.field{color:#777;flex-direction:column;flex:1;gap:4px;min-width:0;font-size:10px;display:flex}.field.narrow{flex:.6}.field input:not([type=color]),.field select{color:#333;background:#fff;border:1px solid #ddd;border-radius:6px;width:100%;min-width:0;height:auto;min-height:34px;padding:8px 6px;font-size:12px}.field.color-field{flex:.35}.field input[type=number]{appearance:textfield}.field input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.field input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.field input[type=color]{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:6px;width:100%;height:34px;padding:1px}.action-button{color:#fff;background:#333;border:0;border-radius:9px;width:100%;margin:10px 0;padding:11px 8px;font-size:12px;font-weight:700;display:block}.action-button:hover{background:#111}.action-button.secondary{color:#555;background:#eee}.segmented{flex-wrap:wrap;gap:6px;margin:15px 0;display:flex}.segmented a{color:#555;text-align:center;background:#eee;border-radius:7px;flex:1;padding:10px 4px;font-size:12px;text-decoration:none}.distance-field{color:#555;margin:18px 0;font-size:12px;display:block}.distance-field input{accent-color:#333;width:100%;margin:12px 0 5px}.distance-limits{color:#999;text-align:right;font-size:10px;display:block}.info-box{background:#f8f9fa;border-radius:10px;margin:16px 0 12px;padding:10px}.info-box>div{justify-content:space-between;align-items:center;gap:4px;padding:5px 0;font-size:11px;display:flex}.info-box>div+div{border-top:1px dashed #ddd}.info-box strong{color:#2c3e50;font-variant-numeric:tabular-nums;font-size:18px}.info-box small{font-size:10px;font-weight:400}.info-box .above{color:#e74c3c}.info-box .below{color:#2980b9}.share-button{background:#000;border-radius:24px}.usage-notes{text-align:center;color:#999;margin:14px 0 0;font-size:10px;line-height:1.7}.usage-notes a{color:inherit}.crosshair{pointer-events:none;border:2px solid #0002;border-radius:50%;width:20px;height:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.viewer-message{z-index:160;text-align:center;background:#fffffff2;border-radius:10px;max-width:90%;padding:12px 18px;font-size:12px;position:absolute;top:24px;left:50%;transform:translate(-50%);box-shadow:0 3px 20px #0001}.viewer-message.error{color:#9b4138;border:1px solid #edc5c0;top:45%}.viewer-message button{color:#fff;background:#333;border:0;border-radius:6px;margin:10px auto 0;padding:8px 12px;display:block}.not-found{text-align:center;background:#fff;flex-direction:column;justify-content:center;align-items:center;padding:25px;display:flex;position:absolute;inset:0}.not-found h1{font-size:22px}.not-found p{color:#777;font-size:13px}.not-found a{color:#333}.app-placeholder{padding:40px}@media (width<=600px){.control-panel{width:min(280px,100vw - 20px);max-height:calc(100dvh - 85px)}.field input:not([type=color]),.field select{font-size:16px}.viewer-message{top:auto;bottom:65px}.viewer-message.error{top:40%;bottom:auto}}.segmented button{color:#333;cursor:pointer;background:#f0eee9;border:0;border-radius:8px;flex:1;padding:10px}.distance-field select{background:#fff;border:1px solid #ddd;border-radius:6px;width:100%;margin-top:6px;padding:8px}.photo-preview{z-index:200;color:#fff;background:#111;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px;display:flex;position:fixed;inset:0}.photo-preview img{object-fit:contain;width:auto;max-width:90vw;height:auto;max-height:65vh}.photo-preview p{text-align:center;max-width:36rem}.explore-controls{z-index:8;background:#fffe;border-radius:12px;flex-wrap:wrap;gap:6px;max-width:320px;padding:8px;display:flex;position:fixed;bottom:36px;right:12px;box-shadow:0 2px 16px #0002}.explore-controls button{touch-action:none;background:#fff;border:1px solid #ddd;border-radius:8px;min-height:44px;padding:8px 12px}.explore-controls span{text-align:center;width:100%}.photo-preview .action-button{text-align:center;width:min(360px,90vw);margin:0;text-decoration:none}.distance-field input[type=checkbox]{width:auto;margin-right:8px}
