   :root {
      --primary-color: #39FF14;
      --secondary-color: #EE4B2B;
      --tertiary-color: rgba(252, 246, 217, 0.6);
      --text-color: white;
      --background-color: rgba(0, 0, 0, 0.8);
      --modal-bg: #1e1e1e;
      --font-main: monospace;
    }
    
    body { 
      margin: 0;
      overflow-x: hidden;
      font-family: var(--font-main);
    } 
    
    #globeViz {
      position: fixed; 
      top: 0; 
      left: 0; 
      width: 100vw;
      height: 100vh;
      cursor: pointer;
      transition: filter 0.3s ease;
      z-index: 1; 
    }

    /* Text Elements */
    .text-element {
      position: absolute;
      color: var(--text-color); 
      font-family: var(--font-main);
      pointer-events: none;
      padding: 1vh 1.5vw;
      border-radius: 1vh;
      max-width: 90%;
      left: 2vw;
      z-index: 10; 
    }

    .titleTop {
      top: 3vh;
      font-size: clamp(1.5rem, 5vw, 3.5rem);
      max-width: 20vw;
    }

    .titleBottom {
      top: 15vh;
      font-size: clamp(1.2rem, 4vw, 2.5rem);
      max-width: 20vw;
    }

    .intro-text {
      top: 30vh;
      font-size: clamp(0.5rem, 1vw, 1rem);
/*       font-size: clamp(0.7rem, 2vw, 1rem); */
      max-width: 15vw;
    }

    .intro-text-2 {
      top: 45vh;
/*       font-size: clamp(0.7rem, 2vw, 1rem); */
      font-size: clamp(0.5rem, 1vw, 1rem);
      max-width: 15vw;
    }
      .intro-text-3 {
      top: 60vh;
/*       font-size: clamp(0.7rem, 2vw, 1rem); */
      font-size: clamp(0.5rem, 1vw, 1rem);
      max-width: 15vw;
    }

    /* BUTTONS AND CONTROLS */
    .control-button {
      position: absolute;
      padding: 1vh 1.5vw;
      font-family: var(--font-main);
      background: var(--background-color);
      color: var(--text-color);
      border: 1px solid var(--text-color);
      border-radius: 0.5vh;
      cursor: pointer;
      z-index: 10; 
      font-size: clamp(0.8rem, 2vw, 1rem);
    }

    .info-button {
      bottom: 3vh;
      left: 2vw;
    }

    #resumeSpinBtn {
      bottom: 3vh;
      right: 2vw;
    }

    /* CONTINENT MENU */
    #continentMenu {
      position: absolute;
      top: 3vh;
      right: 2vw;
      font-family: var(--font-main);
      font-size: clamp(0.8rem, 2vw, 1rem);
      padding: 0.5vh 1vw;
      border-radius: 0.5vh;
      background: var(--background-color);
      color: var(--text-color);
      border: 1px solid var(--text-color);
      z-index: 10; 
    }

    /* LEGEND */
    .legend {
      position: absolute; 
      top: 10vh; 
      right: 2vw; 
      color: var(--text-color); 
      font-family: var(--font-main); 
      padding: 10px; 
      background: var(--background-color);
      border-radius: 5px;
      width: clamp(120px, 15vw, 160px);
      z-index: 10;
    }

    .legend-title {
      font-size: clamp(0.7rem, 1.5vw, 0.9rem); 
      margin-bottom: 8px; 
      padding-bottom: 4px;
    }

    .legend-item {
      display: flex; 
      align-items: center;
      margin-bottom: 5px;
      font-size: clamp(0.6rem, 1.2vw, 0.8rem);
    }

    .legend-color {
      width: 12px;
      height: 12px;
      margin-right: 8px;
      flex-shrink: 0;
    }

    /* MODAL OVERLAY */
    .modal-overlay {
      position: fixed; 
      top: 0; 
      left: 0; 
      width: 100vw; 
      height: 100vh; 
      background: rgba(0, 0, 0, 0.8); 
      display: none; 
      justify-content: center; 
      align-items: center; 
      z-index: 1000; 
      font-family: var(--font-main); 
    }

    .modal {
      background: var(--modal-bg); 
      padding: 20px; 
      border-radius: 10px; 
      max-width: 90vw; 
      width: min(700px, 90%);
      max-height: 90vh; 
      overflow-y: auto;
      box-shadow: 0 0 30px rgba(0, 0, 0, 0.7); 
    }

    .modal h2 {
      color: var(--primary-color); 
      font-size: clamp(1.2rem, 3vw, 1.5rem); 
      margin-bottom: 1rem; 
      border-bottom: 1px solid var(--primary-color);
      padding-bottom: 0.5rem; 
    }

    .modal h3 {
      color: var(--primary-color); 
      font-size: clamp(1rem, 2.5vw, 1.2rem); 
      margin-top: 1.2rem; 
      border-bottom: 0.75px solid var(--primary-color);
    }

    .modal h4 {
      color: var(--primary-color); 
      font-size: clamp(0.9rem, 2vw, 1rem); 
      margin-top: 1rem; 
    }
    .modal h5 {
      color: var(--tertiary-color); 
      font-size: clamp(0.8rem, 1.75vw, 0.8rem); 
      margin-top: 0.8rem; 
    }

    .modal p, .modal li {
      color: rgba(255, 255, 255, 0.7); 
      font-size: clamp(0.8rem, 1.5vw, 0.9rem); 
      line-height: 1.5;
      margin-bottom: 0.75rem;
    }

    .modal strong {
      color: rgb(225, 228, 69); 
    }

    .modal a {
      color: #d4e884; 
      cursor: pointer; 
    }

    .modal a:hover {
      color: #eaf4c2;
      text-decoration: underline dotted;
    }

    .modal button {
      background: #333; 
      color: #fff; 
      border: none; 
      padding: 8px 16px; 
      margin-top: 1rem; 
      cursor: pointer; 
      font-family: var(--font-main);
      border-radius: 4px; 
      font-size: clamp(0.8rem, 1.5vw, 0.9rem);
    }

    .modal button:hover {
      background: var(--primary-color);
      color: black;
    }

    /* Game Label */
    .game-label {
      position: fixed;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: min(90vw, 1080px);
      height: min(80vh, 540px);
      background: rgba(0, 0, 0, 0.95);
      border: 2px solid #fff;
      border-radius: 10px;
      padding: 15px;
      color: white;
      font-family: var(--font-main);
      z-index: 1001; 
      display: none;
      box-shadow: 0 0 20px rgba(255, 255, 255, 0.3);
      overflow: auto;
    }

    .label-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 10px;
      border-bottom: 1px solid #fff;
      padding-bottom: 5px;
    }

    .label-title {
      font-size: clamp(1rem, 2vw, 1.2rem);
      font-weight: bold;
    }

    .close-btn {
      background: #ff0000;
      color: white;
      border: none;
      border-radius: 50%;
      width: 25px;
      height: 25px;
      font-size: 1rem;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .label-content {
      display: flex; 
      flex-direction: column;
      gap: 15px;
    }

    @media (min-width: 768px) {
      .label-content {
        flex-direction: row;
      }
    }

    .label-left {
      flex: 1; 
    }

    .label-description {
      font-size: clamp(0.8rem, 1.5vw, 0.9rem);
      line-height: 1.6; 
      margin: 1rem 0; 
    }

    .label-coords {
      margin-bottom: 15px;
      font-size: clamp(0.7rem, 1.2vw, 0.8rem);
      color: #ccc;
    }

    .citation-source {
      margin-bottom: 15px;
      font-size: clamp(0.6rem, 1vw, 0.7rem);
      color: rgba(251, 251, 251, 0.6);
    }

    /* VIDEO CONTENT */
    .label-video {
      width: 100%;
      height: auto;
      max-width: 480px;
      aspect-ratio: 1/1;
      background-color: #333333; 
      display: flex; 
      align-items: center;
      justify-content: center; 
      border-radius: 5px; 
      overflow: hidden; 
      margin-top: 15px;
    }

    @media (min-width: 768px) {
      .label-video {
        margin-top: 0;
      }
    }

    .label-video-placeholder {
      color: #aaa; 
      font-size: 1rem; 
      padding: 20px;
      text-align: center;
    }

    .label-video video {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    /* COLORS */
    .color-palette {
      margin-top: 10px; 
    }

    .color-palette-title {
      font-size: clamp(0.7rem, 1.5vw, 0.9rem); 
      font-weight: lighter;
      margin-bottom: 10px; 
      color: #ccc; 
    }
    
    .palette-row {
      display: flex; 
      align-items: center; 
      margin-bottom: 3px; 
    }

    .color-swatch {
      width: 15px; 
      height: 15px; 
      border-radius: 0; 
      border: 0.75px solid #fff; 
      margin-right: 8px;
      margin-bottom: 6px;  
      flex-shrink: 0;
    }
    
    .color-label {
      font-size: clamp(0.7rem, 1.2vw, 0.8rem); 
      color: #ddd; 
      margin-bottom: 6px;  
    }
    .audio-reminder {
      font-size: clamp(0.7rem, 1.2vw, 0.8rem);
      color: var(--primary-color);
      margin: 1rem 0 0.5rem 0;
      padding: 0.5rem;
      background: rgba(57, 255, 20, 0.1);
      border-left: 2px solid var(--primary-color);
      display: flex;
      align-items: center;
      gap: 0.5rem;
      width: 100%;
    }

.headphone-icon {
      font-size: 1.2em;
      flex-shrink: 0;
    }

    /* OVERLAY EFFECTS */
    .overlay {
      position: fixed; 
      top: 0; 
      left: 0; 
      width: 100%; 
      height: 100%; 
      background:rgba(0, 0, 0, 0.7);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      z-index: 999; 
      display: none;
      pointer-events: auto; 
    }

    .globe-blur {
      filter: blur(8px) brightness(0.7);
      transition: filter 0.3s ease; 
    }

    /* RESPONSIVE ADJUSTMENTS */
    @media (max-width: 768px) {
      .text-element {
        max-width: 80vw;
      }
      
      .intro-text, .intro-text-2 {
        max-width: 70vw;
      }
      
      .legend {
        width: 120px;
        top: 8vh;
      }
      
      .game-label {
        width: 95vw;
        height: 90vh;
      }
      
      .label-content {
        flex-direction: column;
      }
      
      .label-video {
        width: 100%;
        max-width: none;
      }
    }

    @media (max-width: 480px) {
      .titleTop {
        top: 2vh;
      }
      
      .titleBottom {
        top: 10vh;
      }
      
      .intro-text {
        top: 25vh;
      }
      
      .intro-text-2 {
        top: 35vh;
      }
      
      .control-button, #continentMenu {
        padding: 0.5vh 1vw;
        font-size: 0.8rem;
      }
    }