* { margin:0; padding:0; box-sizing:border-box; }
/* ── Info / Manual Overlay ── */
#infoOverlay{display:none;position:fixed;inset:0;background:rgba(0,4,20,0.88);backdrop-filter:blur(6px);align-items:center;justify-content:center;z-index:200;}
#infoOverlay.show{display:flex;}
#infoBox{background:linear-gradient(160deg,#000e2a,#000618);border:1.5px solid #0055aa;border-radius:14px;padding:0;width:min(420px,94vw);max-height:80vh;display:flex;flex-direction:column;box-shadow:0 0 50px #002266aa,inset 0 0 24px #00112244;}
#infoHeader{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 14px;border-bottom:1px solid #0a2040;}
#infoTitle{color:#00aaff;font-family:monospace;font-size:15px;font-weight:bold;letter-spacing:.1em;text-shadow:0 0 10px #0088ff;}
#infoClose{background:transparent;border:1px solid #1a3050;color:#445566;width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:14px;transition:all .15s;display:flex;align-items:center;justify-content:center;}
#infoClose:hover{border-color:#ff4422;color:#ff6644;background:rgba(255,50,20,.1);}
#infoContent{flex:1;overflow-y:auto;padding:14px 20px 20px;scrollbar-width:thin;scrollbar-color:#0a2040 transparent;}
.infoSection{margin-bottom:14px;}
.infoLabel{font-family:monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:#0055aa;border-bottom:1px solid #0a2040;padding-bottom:5px;margin-bottom:7px;}
.infoRow{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-bottom:1px solid rgba(10,30,60,.4);}
.infoKey{font-family:monospace;font-size:11px;color:#4488aa;letter-spacing:.05em;}
.infoVal{font-family:monospace;font-size:11px;color:#668899;text-align:right;}

/* ── Leaderboard Overlay ── */
#lbOverlay {
  display:none; position:fixed; inset:0;
  background:rgba(0,4,20,0.88); backdrop-filter:blur(6px);
  align-items:center; justify-content:center; z-index:200;
}
#lbOverlay.show { display:flex; }
#lbBox {
  background:linear-gradient(160deg,#000e2a,#000618);
  border:1.5px solid #0055aa; border-radius:14px;
  padding:0; width:min(420px,94vw); max-height:80vh;
  display:flex; flex-direction:column;
  box-shadow:0 0 50px #002266aa, inset 0 0 24px #00112244;
}
#lbHeader {
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 22px 14px; border-bottom:1px solid #0a2040;
}
#lbTitle {
  color:#00aaff; font-family:monospace; font-size:16px;
  font-weight:bold; letter-spacing:.1em; text-shadow:0 0 10px #0088ff;
}
#lbClose {
  background:transparent; border:1px solid #1a3050; color:#445566;
  width:28px; height:28px; border-radius:6px; cursor:pointer;
  font-size:14px; transition:all .15s; display:flex; align-items:center; justify-content:center;
}
#lbClose:hover { border-color:#ff4422; color:#ff6644; background:rgba(255,50,20,.1); }
#lbTabs {
  display:flex; gap:4px; padding:10px 16px 8px;
  border-bottom:1px solid #0a2040;
}
.lbtab {
  flex:1; padding:6px 4px; background:transparent;
  border:1px solid #0f2238; border-radius:4px; color:#335566;
  font-family:monospace; font-size:10px; letter-spacing:.12em;
  cursor:pointer; text-transform:uppercase; transition:all .15s;
}
.lbtab:hover { border-color:#1a4466; color:#558899; }
.lbtab.active { background:rgba(0,140,255,.12); border-color:#0077cc; color:#00aaff; }
#lbList {
  flex:1; overflow-y:auto; padding:10px 16px 18px;
  scrollbar-width:thin; scrollbar-color:#0a2040 transparent;
}
.lbRow {
  display:flex; align-items:center; gap:10px;
  padding:8px 10px; border-radius:6px; margin-bottom:4px;
  background:rgba(0,16,40,.5); border:1px solid #0a1a30;
}
.lbRow:first-child { border-color:#aa8800; background:rgba(80,60,0,.25); }
.lbRow:nth-child(2) { border-color:#557777; background:rgba(20,50,60,.25); }
.lbRow:nth-child(3) { border-color:#663322; background:rgba(50,20,0,.2); }
.lbRank { width:22px; font-family:monospace; font-size:13px; text-align:center; flex-shrink:0; }
.lbName { flex:1; font-family:monospace; font-size:13px; color:#99bbdd; letter-spacing:.08em; }
.lbScore { font-family:monospace; font-size:13px; color:#ffdd00; font-weight:bold; letter-spacing:.04em; }
.lbDate { font-family:monospace; font-size:10px; color:#2a4460; margin-left:6px; }
.lbMe{border-color:#1a4a30 !important;background:rgba(0,30,15,.4) !important;}
.lbMe .lbName{color:#448866 !important;}
.lbLive{border-color:#00ff88 !important;border-width:1.5px !important;background:rgba(0,60,30,.45) !important;}
.lbLive .lbName{color:#00ff88 !important;}
.lbLiveTag{font-family:monospace;font-size:8px;color:#00ff88;letter-spacing:.1em;margin:0 4px;opacity:.9;}
.lbLoading { text-align:center; color:#2a4460; font-family:monospace; font-size:12px; padding:24px; }
.lbEmpty { text-align:center; color:#2a4460; font-family:monospace; font-size:12px; padding:24px; }
#lbFooter { padding:10px 16px 14px; border-top:1px solid #0a2040; text-align:center; }
#lbHubLink { font-family:monospace; font-size:11px; color:#447755; letter-spacing:.1em; padding:5px 14px; border:1px solid #224433; border-radius:5px; cursor:pointer; background:transparent; transition:all .15s; }
#lbHubLink:hover { color:#66cc88; border-color:#448855; background:rgba(0,40,20,.3); }
html, body { width:100%; height:100%; overflow:hidden; background:#000; touch-action:none; }
#g3d { position:fixed; top:0; left:0; width:100%; height:100%; }
#g2d { position:fixed; top:0; left:0; width:100%; height:100%; pointer-events:none; }
#nameModal {
  display:none; position:fixed; inset:0;
  background:rgba(0,4,20,0.85); backdrop-filter:blur(4px);
  align-items:center; justify-content:center; z-index:100;
}
#nameModal.show { display:flex; }
#nameBox {
  background:linear-gradient(160deg,#001233,#000820);
  border:2px solid #0066cc; border-radius:16px;
  padding:36px 40px; text-align:center; color:#fff;
  box-shadow:0 0 40px #0044aa88, inset 0 0 20px #00224488;
}
#nameBox h2 {
  color:#00aaff; margin-bottom:20px; font-size:22px;
  font-family:monospace; text-shadow:0 0 12px #00aaff;
}
#nameIn {
  background:#001844; border:1.5px solid #0066aa; color:#fff;
  padding:12px 20px; font-size:22px; font-family:monospace;
  border-radius:8px; width:220px; text-align:center;
  text-transform:uppercase; outline:none; letter-spacing:4px;
  box-shadow:0 0 12px #004488 inset;
}
#nameBtn {
  display:block; width:100%; margin-top:18px;
  background:linear-gradient(180deg,#006633,#004422);
  border:1.5px solid #00bb55; color:#00ff88;
  padding:12px; font-size:18px; font-family:monospace;
  border-radius:8px; cursor:pointer; pointer-events:all;
  letter-spacing:2px; text-shadow:0 0 8px #00ff88;
  transition:all .2s;
}
#nameBtn:hover { background:linear-gradient(180deg,#008844,#005533); box-shadow:0 0 20px #00ff8844; }
