:root{ --primary-color:#46e3ff; --secondary-color:#ff8fb6; --border-color:rgba(255,255,255,.85); }
    *{box-sizing:border-box;margin:0;padding:0}
    html,body{height:100%}
    body{background:#000;color:var(--border-color);font:14px 'Segoe UI','Arial',sans-serif;line-height:1.4;text-align:center;overflow:hidden}
    #scene{cursor:crosshair;width:100vw;height:100vh;pointer-events:auto}
    #scene canvas{display:block;border:0;outline:0;touch-action:none}
    #error{position:fixed;top:25px;left:50%;transform:translateX(-50%);color:#ff7675;background:rgba(255,255,255,.1);border:1px solid rgba(255,118,117,.45);padding:.8rem 1.2rem;border-radius:.6rem;font-size:1rem;display:none;z-index:1002; backdrop-filter: blur(5px);}

    #tech-title {
      position: fixed;
      top: 25px; 
      left: 50%;
      transform: translateX(-50%);
      font-family: 'Segoe UI', 'Microsoft JhengHei', 'Arial', sans-serif;
      font-size: 1.8rem; 
      font-weight: 700; 
      color: #fff; 
      letter-spacing: 0.15em; 
      text-shadow:
        -2px -2px 0 #000,  
         2px -2px 0 #000,
        -2px  2px 0 #000,
         2px  2px 0 #000,
        -2px  0   0 #000,
         2px  0   0 #000,
         0   -2px 0 #000,
         0    2px 0 #000;
      z-index: 1006; 
      display: block; 
      pointer-events: none; 
      white-space: nowrap; 
    }

    .dialog-overlay {
      position: fixed; top: 0; left: 0; width: 100%; height: 100%;
      background: rgba(0, 0, 0, 0.6);
      display: none;
      align-items: center;
      justify-content: center;
      z-index: 1001;
      backdrop-filter: blur(5px);
    }
    .dialog-box {
      background: rgba(10, 25, 47, 0.85);
      border: 1px solid var(--primary-color);
      box-shadow: 0 0 20px rgba(70, 227, 255, 0.3);
      border-radius: 12px;
      padding: 2rem;
      width: 90%;
      max-width: 450px;
      text-align: center;
      color: #fff;
      font-size: 1.1rem;
    }
    .dialog-button {
      font-family: 'Segoe UI', 'Microsoft JhengHei', sans-serif;
      font-size: 1rem;
      font-weight: bold;
      padding: 0.75rem 1.5rem;
      border: 1px solid transparent;
      border-radius: 8px;
      cursor: pointer;
      transition: all 0.3s ease;
      flex: 1;
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }

    #confirm-message {
      margin-bottom: 1.5rem;
      line-height: 1.6;
    }
    #confirm-buttons {
      display: flex;
      justify-content: space-around;
      gap: 1rem;
    }
    #confirm-yes {
      background-color: var(--primary-color);
      color: #000;
      border-color: var(--primary-color);
    }
    #confirm-yes:hover {
      background-color: #fff;
      box-shadow: 0 0 15px var(--primary-color);
    }
    #confirm-no {
      background-color: transparent;
      color: var(--secondary-color);
      border-color: var(--secondary-color);
    }
    #confirm-no:hover {
      background-color: var(--secondary-color);
      color: #000;
      box-shadow: 0 0 15px var(--secondary-color);
    }

    .round-button {
      position: fixed;
      right: 25px;
      width: 70px;
      height: 70px;
      background: rgba(255, 255, 255, 0.15);
      border: 1px solid rgba(255, 255, 255, 0.4);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      color: white;
      font-size: 1rem;
      font-weight: bold;
      cursor: pointer;
      z-index: 1005;
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      transition: all 0.3s ease;
      user-select: none;
    }
    .round-button:hover {
      background: rgba(255, 255, 255, 0.3);
      transform: scale(1.05);
    }
    #preview-button {
      top: 75px; 
    }
    #world-button {
      top: 160px;
    }