*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* Viewer wrapper — fills the space between header and viewport bottom */
#ajax-content-wrap {
  position: relative;
    height: calc(100vh - var(--viewer-offset, 122px));
      overflow: visible !important;
      }
      
      /* All viewer UI uses fixed positioning so it fills the viewport below the header */
      #viewer,
      #loading,
      #fade {
        position: fixed;
          top: var(--viewer-offset, 122px);
            left: 0;
              right: 0;
                bottom: 0;
                }
                
                #viewer {
                  cursor: grab;
                    touch-action: none;
                      z-index: 1;
                      }
                      #viewer.grabbing { cursor: grabbing; }
                      #viewer canvas { display: block; }
                      
                      /* Loading overlay */
                      #loading {
                        display: flex; flex-direction: column; align-items: center; justify-content: center;
                          background: #000; z-index: 100;
                            transition: opacity 0.6s ease;
                            }
                            #loading.hidden { opacity: 0; pointer-events: none; }
                            .spinner {
                              width: 56px; height: 56px;
                                border: 3px solid rgba(255,255,255,0.15);
                                  border-top-color: #fff;
                                    border-radius: 50%;
                                      animation: spin 1s linear infinite;
                                        margin-bottom: 18px;
                                        }
                                        @keyframes spin { to { transform: rotate(360deg); } }
                                        #loading-text { font-size: 14px; letter-spacing: 0.5px; opacity: 0.85; color: #fff; }
                                        
                                        /* Top bar */
                                        #topbar {
                                          position: fixed;
                                            top: calc(var(--viewer-offset, 122px) + 16px);
                                              left: 50%; transform: translateX(-50%);
                                                background: rgba(0,0,0,0.55);
                                                  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
                                                    padding: 10px 18px; border-radius: 999px;
                                                      display: flex; align-items: center; gap: 12px;
                                                        font-size: 13px; letter-spacing: 0.3px;
                                                          z-index: 10;
                                                            border: 1px solid rgba(255,255,255,0.08);
                                                              color: #fff;
                                                              }
                                                              #scene-title { font-weight: 500; }
                                                              .badge {
                                                                background: rgba(255,255,255,0.12);
                                                                  padding: 3px 9px; border-radius: 999px;
                                                                    font-size: 11px; font-weight: 600;
                                                                      letter-spacing: 0.5px;
                                                                      }
                                                                      
                                                                      /* Right toolbar */
                                                                      #toolbar {
                                                                        position: fixed;
                                                                          right: 16px;
                                                                            top: 50%;
                                                                              transform: translateY(-50%);
                                                                                display: flex; flex-direction: column; gap: 8px;
                                                                                  z-index: 10;
                                                                                  }
                                                                                  .tool-btn {
                                                                                    width: 44px; height: 44px;
                                                                                      background: rgba(0,0,0,0.55);
                                                                                        backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
                                                                                          border: 1px solid rgba(255,255,255,0.08);
                                                                                            color: #fff;
                                                                                              border-radius: 12px;
                                                                                                cursor: pointer;
                                                                                                  display: flex; align-items: center; justify-content: center;
                                                                                                    transition: background 0.2s, transform 0.15s;
                                                                                                    }
                                                                                                    .tool-btn:hover { background: rgba(255,255,255,0.18); }
                                                                                                    .tool-btn:active { transform: scale(0.94); }
                                                                                                    .tool-btn.active { background: rgba(255,255,255,0.22); }
                                                                                                    .tool-btn svg { width: 20px; height: 20px; fill: currentColor; }
                                                                                                    
                                                                                                    /* Bottom thumbnails */
                                                                                                    #thumbs {
                                                                                                      position: fixed;
                                                                                                        bottom: 18px;
                                                                                                          left: 50%; transform: translateX(-50%);
                                                                                                            display: flex; gap: 10px;
                                                                                                              background: rgba(0,0,0,0.55);
                                                                                                                backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
                                                                                                                  padding: 10px;
                                                                                                                    border-radius: 14px;
                                                                                                                      z-index: 10;
                                                                                                                        border: 1px solid rgba(255,255,255,0.08);
                                                                                                                          max-width: calc(100% - 32px);
                                                                                                                            overflow-x: auto;
                                                                                                                            }
                                                                                                                            .thumb {
                                                                                                                              position: relative;
                                                                                                                                width: 110px; height: 62px;
                                                                                                                                  border-radius: 8px;
                                                                                                                                    overflow: hidden;
                                                                                                                                      cursor: pointer;
                                                                                                                                        flex-shrink: 0;
                                                                                                                                          border: 2px solid transparent;
                                                                                                                                            transition: border-color 0.2s, transform 0.15s;
                                                                                                                                              background-size: cover; background-position: center;
                                                                                                                                              }
                                                                                                                                              .thumb:hover { transform: translateY(-2px); }
                                                                                                                                              .thumb.active { border-color: #fff; }
                                                                                                                                              .thumb-label {
                                                                                                                                                position: absolute; bottom: 0; left: 0; right: 0;
                                                                                                                                                  background: linear-gradient(to top, rgba(0,0,0,0.85), transparent);
                                                                                                                                                    color: #fff; font-size: 11px; font-weight: 500;
                                                                                                                                                      padding: 12px 8px 5px;
                                                                                                                                                        text-align: center;
                                                                                                                                                          letter-spacing: 0.3px;
                                                                                                                                                          }
                                                                                                                                                          
                                                                                                                                                          /* Help hint */
                                                                                                                                                          #hint {
                                                                                                                                                            position: fixed; left: 16px; bottom: 18px;
                                                                                                                                                              background: rgba(0,0,0,0.55);
                                                                                                                                                                backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
                                                                                                                                                                  padding: 9px 14px;
                                                                                                                                                                    border-radius: 999px;
                                                                                                                                                                      font-size: 12px;
                                                                                                                                                                        z-index: 10;
                                                                                                                                                                          border: 1px solid rgba(255,255,255,0.08);
                                                                                                                                                                            opacity: 0.9;
                                                                                                                                                                              color: #fff;
                                                                                                                                                                                transition: opacity 0.4s ease;
                                                                                                                                                                                }
                                                                                                                                                                                #hint.fade { opacity: 0; pointer-events: none; }
                                                                                                                                                                                
                                                                                                                                                                                /* Fade overlay for scene transitions */
                                                                                                                                                                                #fade {
                                                                                                                                                                                  background: #000; pointer-events: none;
                                                                                                                                                                                    opacity: 0; z-index: 5;
                                                                                                                                                                                      transition: opacity 0.35s ease;
                                                                                                                                                                                      }
                                                                                                                                                                                      #fade.show { opacity: 1; }
                                                                                                                                                                                      
                                                                                                                                                                                      @media (max-width: 600px) {
                                                                                                                                                                                        .thumb { width: 84px; height: 48px; }
                                                                                                                                                                                          #toolbar { right: 10px; gap: 6px; }
                                                                                                                                                                                            .tool-btn { width: 38px; height: 38px; }
                                                                                                                                                                                              #hint { font-size: 11px; padding: 7px 11px; }
                                                                                                                                                                                                #topbar { font-size: 12px; padding: 8px 14px; }
                                                                                                                                                                                                }