:root{
  --c1:#22e6ff;
  --c2:#ff3df0;
  --bg:#070a1c;
  --panel:rgba(10,14,40,.72);
  --line:rgba(90,220,255,.35);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
html,body{margin:0;padding:0;height:100%;overflow:hidden;background:var(--bg)}
body{font-family:'Rajdhani',system-ui,sans-serif;color:#dff6ff;touch-action:none;overscroll-behavior:none}
canvas#game{position:fixed;inset:0;width:100%;height:100%;display:block}

.hidden{display:none !important}

/* ---------- HUD ---------- */
#hud{position:fixed;inset:0;pointer-events:none;z-index:5;font-family:'Orbitron',monospace}
.hud-tl{position:absolute;top:max(10px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left))}
#hud-score{font-size:clamp(20px,3.2vw,34px);font-weight:900;letter-spacing:2px;text-shadow:0 0 12px var(--c1)}
#hud-mult{font-size:clamp(12px,1.8vw,18px);color:var(--c2);text-shadow:0 0 10px var(--c2);font-weight:700}
.hud-tc{position:absolute;top:max(12px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(38vw,340px);text-align:center}
#res-outer{height:10px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:rgba(0,0,0,.45)}
#res-bar{height:100%;width:0%;background:linear-gradient(90deg,var(--c1),var(--c2));box-shadow:0 0 14px var(--c1);transition:width .12s linear}
#res-label{font-size:9px;letter-spacing:5px;margin-top:4px;opacity:.75}
.hud-tr{position:absolute;top:max(10px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));display:flex;gap:14px;align-items:center}
#hud-orbs{font-size:clamp(13px,2vw,19px);font-weight:700;color:#ffe066;text-shadow:0 0 10px #ffb703;display:flex;align-items:center;gap:7px}
.orb-ico{display:inline-block;width:.55em;height:.55em;background:#ffe066;transform:rotate(45deg);box-shadow:0 0 8px #ffb703}
#btn-pause{pointer-events:auto;background:rgba(0,0,0,.4);border:1px solid var(--line);color:#dff6ff;border-radius:8px;
  font-size:14px;padding:6px 12px;cursor:pointer}
#hud-world{position:absolute;bottom:max(10px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);
  font-size:10px;letter-spacing:6px;opacity:.55}

/* ---------- SCREENS ---------- */
#screens{position:fixed;inset:0;z-index:10;pointer-events:none}
.screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:22px;pointer-events:auto;padding:24px;padding-top:max(24px,env(safe-area-inset-top))}
.screen.overlay{background:rgba(4,6,18,.72);backdrop-filter:blur(6px)}
#screen-title{justify-content:center}

.title-wrap{text-align:center;animation:floaty 4s ease-in-out infinite}
.logo-top{font-family:'Orbitron',monospace;font-weight:900;font-size:clamp(44px,9vw,110px);letter-spacing:.12em;
  background:linear-gradient(180deg,#fff 10%,var(--c1) 55%,#0b57d0 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 24px rgba(34,230,255,.55))}
.logo-sub{font-family:'Orbitron',monospace;font-weight:700;font-size:clamp(14px,2.6vw,26px);letter-spacing:.85em;
  margin-left:.85em;color:var(--c2);text-shadow:0 0 18px var(--c2);margin-top:6px}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.title-foot{font-size:11px;letter-spacing:3px;opacity:.55}

.menu{display:flex;flex-direction:column;gap:12px;align-items:center}
.mbtn{font-family:'Orbitron',monospace;font-weight:700;font-size:clamp(14px,2vw,19px);letter-spacing:3px;
  color:#eafcff;background:linear-gradient(180deg,rgba(24,40,90,.55),rgba(10,16,48,.75));
  border:1px solid var(--line);border-radius:12px;padding:14px 44px;min-width:min(78vw,360px);cursor:pointer;
  transition:transform .12s,box-shadow .12s}
.mbtn:hover,.mbtn:focus-visible{transform:translateY(-2px);box-shadow:0 0 22px rgba(34,230,255,.45);outline:none}
.mbtn.small{font-size:clamp(11px,1.5vw,14px);padding:10px 30px;opacity:.85}
.mbtn:disabled{opacity:.35;cursor:default;transform:none;box-shadow:none}

.scr-head{display:flex;align-items:center;gap:16px;width:min(92vw,860px)}
.scr-head h2{flex:1;text-align:center;font-family:'Orbitron',monospace;letter-spacing:8px;font-size:clamp(15px,2.4vw,24px);
  text-shadow:0 0 16px var(--c1);margin:0}
.head-spacer{width:72px}
.back{background:none;border:1px solid var(--line);color:#dff6ff;border-radius:8px;padding:8px 14px;cursor:pointer;
  font-family:'Rajdhani',sans-serif;font-weight:600;letter-spacing:1px;width:72px}
.big{font-family:'Orbitron',monospace;font-size:clamp(26px,5vw,52px);letter-spacing:10px;margin:0;
  text-shadow:0 0 26px var(--c1)}

/* ---------- WORLD GRID ---------- */
#world-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;width:min(94vw,980px);
  max-height:70vh;overflow-y:auto;padding:4px}
.wcard{border:1px solid var(--line);border-radius:14px;padding:16px;cursor:pointer;text-align:left;
  background:linear-gradient(160deg,rgba(16,24,64,.75),rgba(6,8,24,.85));color:#eafcff;
  transition:transform .12s,box-shadow .12s;font-family:'Rajdhani',sans-serif}
.wcard:hover:not(.locked){transform:translateY(-3px);box-shadow:0 0 22px rgba(34,230,255,.35)}
.wcard .wnum{font-size:10px;letter-spacing:4px;opacity:.6}
.wcard .wname{font-family:'Orbitron',monospace;font-weight:700;font-size:17px;letter-spacing:2px;margin:6px 0}
.wcard .wdesc{font-size:13px;opacity:.75;min-height:34px}
.wcard .wbest{font-size:12px;margin-top:8px;color:#ffe066}
.wcard.locked{opacity:.45;cursor:default;filter:grayscale(.7)}
.wcard.cleared{border-color:rgba(120,255,190,.5)}

/* ---------- PANELS / FORMS ---------- */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px 26px;
  width:min(92vw,520px);display:flex;flex-direction:column;gap:16px;max-height:70vh;overflow-y:auto}
.panel.help p{margin:0;font-size:15px;line-height:1.5}
.panel.help .c1{color:var(--c1)} .panel.help .c2{color:var(--c2)}
.fld{display:flex;flex-direction:column;gap:6px;font-family:'Orbitron',monospace;font-size:11px;letter-spacing:3px}
.fld input[type=range]{accent-color:var(--c1)}
.fld select{background:#0b1030;color:#eafcff;border:1px solid var(--line);border-radius:8px;padding:8px;
  font-family:'Rajdhani',sans-serif;font-size:14px}
.chk{display:flex;gap:10px;align-items:center;font-size:14px;letter-spacing:1px;cursor:pointer}
.chk input{accent-color:var(--c2);width:17px;height:17px}
.mods{display:flex;flex-direction:column;gap:10px}

.cont-sub{font-size:15px;letter-spacing:2px;opacity:.8;margin:0;text-align:center}

.stats{font-family:'Orbitron',monospace;font-size:14px;letter-spacing:2px;gap:10px}
.stats .row{display:flex;justify-content:space-between}
.stats .row b{color:var(--c1)}
.stats .row.gold b{color:#ffe066}

/* ---------- TOASTS ---------- */
#toasts{position:fixed;right:16px;bottom:16px;z-index:20;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{background:rgba(8,12,34,.92);border:1px solid var(--c2);border-radius:10px;padding:10px 16px;
  font-family:'Orbitron',monospace;font-size:11px;letter-spacing:2px;color:#ffe6fb;
  box-shadow:0 0 18px rgba(255,61,240,.4);animation:toastin .3s ease-out}
.toast b{color:var(--c2);display:block;font-size:12px;margin-bottom:2px}
@keyframes toastin{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}

@media (max-height:520px){
  .logo-top{font-size:40px}
  .menu{gap:7px}
  .mbtn{padding:9px 30px}
}
