* { margin:0; padding:0; box-sizing:border-box; }
html,body { width:100%; height:100%; overflow:hidden; background:#0e1420; font-family: "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif; }
#app, canvas.webgl { position:fixed; inset:0; width:100%; height:100%; display:block; }

#hud-top { position:fixed; top:12px; left:12px; right:12px; display:flex; justify-content:space-between; align-items:flex-start; pointer-events:none; z-index:5; }
#title { background:rgba(10,14,22,.72); border:1px solid rgba(255,255,255,.14); backdrop-filter: blur(6px); color:#fff; padding:8px 12px; border-radius:10px; line-height:1.2; }
#title-main { display:block; font-weight:800; letter-spacing:.14em; font-size:15px; }
#title-sub { display:block; font-size:11.5px; opacity:.75; letter-spacing:.04em; }
#minimap { width:150px; height:150px; border-radius:12px; border:1px solid rgba(255,255,255,.2); background:rgba(10,14,22,.72); }

#hud-info { position:fixed; left:50%; bottom:64px; transform:translateX(-50%); text-align:center; pointer-events:none; z-index:5; }
#look-at { display:inline-block; background:rgba(10,14,22,.78); color:#ffd98a; border:1px solid rgba(255,217,138,.35); padding:6px 14px; border-radius:999px; font-size:14px; font-weight:600; opacity:0; transition:opacity .15s; max-width:80vw; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#coords { margin-top:6px; color:rgba(255,255,255,.65); font-size:11px; letter-spacing:.08em; text-shadow:0 1px 4px #000; }

#help { position:fixed; bottom:12px; left:50%; transform:translateX(-50%); background:rgba(10,14,22,.65); color:#e8ecf3; font-size:12px; padding:7px 14px; border-radius:999px; border:1px solid rgba(255,255,255,.12); z-index:5; white-space:nowrap; }
#help-touch { display:none; text-align:center; margin-top:2px; opacity:.8; }
@media (pointer:coarse){ #help-touch{ display:block; } #help{ white-space:normal; text-align:center; border-radius:14px; } }

#overlay { position:fixed; inset:0; display:flex; align-items:center; justify-content:center; background:radial-gradient(ellipse at center, rgba(8,12,20,.45), rgba(8,12,20,.82)); z-index:10; padding:20px; }
#overlay.hidden { display:none; }
#card { max-width:440px; background:#111826; color:#eef2f8; border:1px solid rgba(255,255,255,.14); border-radius:16px; padding:26px 26px 20px; box-shadow:0 24px 80px rgba(0,0,0,.5); }
#card h1 { font-size:30px; letter-spacing:.02em; }
#card .sub { color:#ffbe55; font-weight:700; font-size:13px; letter-spacing:.12em; text-transform:uppercase; margin:4px 0 12px; }
#card p { font-size:14px; line-height:1.5; opacity:.9; }
#card ul { margin:12px 0 16px 18px; font-size:13.5px; line-height:1.7; }
#card button { width:100%; padding:12px; font-size:16px; font-weight:800; letter-spacing:.04em; border:0; border-radius:10px; cursor:pointer; background:#ffb43a; color:#231303; }
#card button:hover { background:#ffc65e; }
#card .hint { margin-top:10px; font-size:11.5px; text-align:center; opacity:.6; }

#touch-ui { position:fixed; inset:0; pointer-events:none; z-index:6; display:none; }
@media (pointer:coarse){ #touch-ui{ display:block; } }
#stick { position:absolute; left:22px; bottom:70px; width:110px; height:110px; border-radius:50%; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); pointer-events:auto; touch-action:none; }
#nub { position:absolute; left:50%; top:50%; width:48px; height:48px; border-radius:50%; background:rgba(255,255,255,.55); transform:translate(-50%,-50%); }
