*{box-sizing:border-box;margin:0;padding:0}html,body{background:#000;width:100%;height:100%;overflow:hidden}#viewer-container{width:100%;height:100%;position:relative}canvas{display:block}.fade-overlay{opacity:0;pointer-events:none;z-index:10;background:#000;transition:opacity .4s;position:absolute;inset:0}.fade-overlay.active{opacity:1}.hotspot{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;transition:transform .15s;display:flex}.hotspot:hover{transform:scale(1.15)}.hotspot-icon{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.hotspot-nav .hotspot-icon{color:#fff;background:#ffffff40;border:2px solid #ffffffb3}.hotspot-nav:hover .hotspot-icon{background:#ffffff73}.hotspot-label{color:#fff;text-shadow:0 1px 4px #000000b3;white-space:nowrap;font:600 13px/1 system-ui,sans-serif}.hotspot-annotation .hotspot-icon{color:#fff;background:#3b82f64d;border:2px solid #3b82f6cc;width:34px;height:34px;animation:2s ease-in-out infinite hotspot-pulse}.hotspot-annotation:hover .hotspot-icon{background:#3b82f680}@keyframes hotspot-pulse{0%,to{box-shadow:0 0 #3b82f666}50%{box-shadow:0 0 0 8px #3b82f600}}.annotation-popup{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;z-index:20;background:#0f0f0feb;border:1px solid #ffffff26;border-radius:12px;width:90%;max-width:380px;padding:20px;animation:.2s ease-out popup-in;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes popup-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.95)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.annotation-popup-header{justify-content:space-between;align-items:flex-start;margin-bottom:10px;display:flex}.annotation-popup h3{margin:0;font:600 16px/1.3 system-ui,sans-serif}.annotation-popup-close{color:#fff9;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.annotation-popup-close:hover{color:#fff}.annotation-popup p{color:#fffc;margin:0 0 12px;font:400 14px/1.5 system-ui,sans-serif}.annotation-popup img{border-radius:8px;width:100%;margin-top:4px}.minimap{z-index:15;flex-direction:column;align-items:flex-start;gap:8px;display:flex;position:absolute;bottom:20px;left:20px}.minimap-toggle{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;cursor:pointer;background:#0f0f0fb3;border:1px solid #fff3;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;transition:background .2s;display:none}.minimap-toggle:hover{background:#0f0f0fe6}.minimap-body{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f0f0fcc;border:1px solid #ffffff26;border-radius:10px;padding:10px;transition:opacity .25s,transform .25s;overflow:hidden}.minimap-body.collapsed{opacity:0;pointer-events:none;transform:scale(.9)translateY(8px)}.minimap-image-wrapper{width:180px;height:140px;position:relative}.minimap-image{object-fit:contain;opacity:.85;border-radius:6px;width:100%;height:100%}.minimap-dots{position:absolute;inset:0}.minimap-dot{cursor:pointer;background:#ffffff80;border:2px solid #fff;border-radius:50%;width:14px;height:14px;padding:0;transition:all .2s;position:absolute;transform:translate(-50%,-50%)}.minimap-dot:hover{background:#fffc;transform:translate(-50%,-50%)scale(1.3)}.minimap-dot.active{background:#3b82f6;border-color:#fff;box-shadow:0 0 0 3px #3b82f666}@media (width<=640px){.minimap{bottom:12px;left:12px}.minimap-toggle{display:flex}.minimap-image-wrapper{width:150px;height:110px}}.loading-screen{z-index:25;opacity:0;pointer-events:none;background:#000;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:absolute;inset:0}.loading-screen.active{opacity:1;pointer-events:auto}.loading-content{flex-direction:column;align-items:center;gap:16px;display:flex}.loading-spinner{border:3px solid #ffffff26;border-top-color:#fff;border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-bar-track{background:#ffffff1a;border-radius:2px;width:200px;height:3px;overflow:hidden}.loading-bar-fill{background:#fff;border-radius:2px;width:0%;height:100%;transition:width .15s}.loading-text{color:#ffffff80;font:400 13px/1 system-ui,sans-serif}.scene-label{color:#fff;text-shadow:0 1px 6px #0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:15;opacity:0;pointer-events:none;white-space:nowrap;background:#0f0f0f8c;border:1px solid #ffffff1f;border-radius:8px;padding:8px 16px;font:600 15px/1 system-ui,sans-serif;transition:opacity .4s;position:absolute;top:24px;left:50%;transform:translate(-50%)}.scene-label.visible{opacity:1}.fullscreen-toggle{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;cursor:pointer;z-index:15;background:#0f0f0fb3;border:1px solid #fff3;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;transition:background .2s;display:flex;position:absolute;top:16px;right:16px}.fullscreen-toggle:hover{background:#0f0f0fe6}body.embed-mode .minimap{display:none}
