:root{--bg: #05060a;--bg2: #0a0d16;--ink: #e9e6dc;--dim: #7c8499;--line: rgba(160, 170, 200, .14);--gold: #e8c372;--gold-dim: #9c8348;--cyan: #5fd6d0;--hab: #7fe07a;--serif: "Instrument Serif", Georgia, serif;--mono: "IBM Plex Mono", monospace}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font-family:var(--mono);-webkit-font-smoothing:antialiased;touch-action:manipulation}#app{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.scene{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none;transition:opacity .8s ease}.scene.on{opacity:1;pointer-events:auto}.topbar{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:18px 22px;z-index:30}.brand{font-family:var(--serif);font-size:24px;letter-spacing:.5px}.brand b{font-style:italic;color:var(--gold);font-weight:400}.tag{font-size:10px;letter-spacing:3px;color:var(--dim);text-transform:uppercase}.topbar-right{display:flex;align-items:center;gap:14px}.auth-btn{background:none;border:1px solid var(--line);color:var(--dim);font-family:var(--mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;padding:7px 14px;border-radius:20px;cursor:pointer;transition:all .2s}.auth-btn:hover{border-color:var(--cyan);color:var(--cyan)}.user-name{font-size:11px;color:var(--gold);letter-spacing:.5px}#mapHud{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;pointer-events:none}.map-title{position:absolute;left:24px;bottom:26px;max-width:420px;pointer-events:none}.map-title h1{font-family:var(--serif);font-weight:400;font-size:clamp(34px,7vw,58px);line-height:.95;letter-spacing:-.5px}.map-title h1 i{color:var(--gold)}.map-title p{margin-top:10px;font-size:12px;line-height:1.6;color:var(--dim);max-width:330px}.scalebar{position:absolute;right:22px;bottom:28px;text-align:right;font-size:10px;letter-spacing:2px;color:var(--dim);text-transform:uppercase;pointer-events:none}.scalebar .now{color:var(--cyan)}.tip{position:absolute;transform:translate(-50%,-145%);background:#080a12eb;border:1px solid var(--line);padding:9px 12px;border-radius:8px;font-size:11px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;z-index:25;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.tip.on{opacity:1}.tip .nm{font-family:var(--serif);font-size:16px;color:var(--ink);letter-spacing:.3px}.tip .dist{color:var(--dim);font-size:10px;margin-top:2px}.tip .badge{display:inline-block;margin-top:5px;font-size:9px;letter-spacing:1.5px;padding:2px 7px;border-radius:20px;text-transform:uppercase}.tip .b-hab{background:#7fe07a24;color:var(--hab);border:1px solid rgba(127,224,122,.3)}.tip .b-claim{background:#e8c3721f;color:var(--gold);border:1px solid rgba(232,195,114,.3)}.tip .b-open{background:#5fd6d01a;color:var(--cyan);border:1px solid rgba(95,214,208,.25)}#planetHud{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;pointer-events:none}.pdata{position:absolute;top:0;right:0;bottom:0;width:min(420px,86vw);background:linear-gradient(270deg,#06080ef5 60%,#06080e00);padding:84px 30px 30px;display:flex;flex-direction:column;pointer-events:auto;overflow-y:auto}.pdata::-webkit-scrollbar{width:0}.ptype{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--cyan)}.pname{font-family:var(--serif);font-size:clamp(40px,9vw,62px);font-weight:400;line-height:.92;letter-spacing:-1px;margin:6px 0 2px}.psub{font-size:11px;color:var(--dim);letter-spacing:1px}.specs{margin-top:24px;border-top:1px solid var(--line)}.spec{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line);font-size:12px}.spec span:first-child{color:var(--dim);letter-spacing:.5px}.spec span:last-child{color:var(--ink);text-align:right}.src{margin-top:12px;font-size:9px;color:var(--gold-dim);letter-spacing:1px;line-height:1.5}.imagined{margin-top:6px;font-size:9px;color:var(--dim);font-style:italic;font-family:var(--serif);line-height:1.4}.colony{margin-top:auto;padding-top:24px}.founder-tag{display:flex;align-items:center;gap:10px;padding:14px;border:1px solid rgba(232,195,114,.3);border-radius:12px;background:linear-gradient(135deg,rgba(232,195,114,.08),transparent)}.founder-tag .ico{font-family:var(--serif);font-size:30px;color:var(--gold);line-height:1}.founder-tag .txt{font-size:11px;line-height:1.4}.founder-tag .txt b{color:var(--gold);font-weight:500;letter-spacing:.5px}.founder-tag .txt span{color:var(--dim)}.colonists{display:flex;align-items:center;gap:8px;margin:16px 0 4px;font-size:11px;color:var(--dim)}.dots{display:flex;margin-right:4px}.dots i{width:22px;height:22px;border-radius:50%;margin-left:-7px;border:1.5px solid var(--bg);font-style:normal;display:grid;place-items:center;font-size:9px;color:#05060a;font-weight:600}.btn{display:block;width:100%;margin-top:14px;padding:15px;border:none;border-radius:12px;cursor:pointer;font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;transition:transform .15s,filter .15s}.btn:active{transform:scale(.98)}.btn-gold{background:linear-gradient(135deg,var(--gold),#caa253);color:#1a1405}.btn-gold:hover{filter:brightness(1.08)}.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}.btn-ghost:hover{border-color:var(--cyan);color:var(--cyan)}.price{font-size:10px;color:var(--dim);text-transform:none;letter-spacing:0;font-weight:400;margin-top:3px}.back{position:absolute;top:74px;left:24px;z-index:25;pointer-events:auto;cursor:pointer;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--dim);background:none;border:none;font-family:var(--mono)}.back:hover{color:var(--cyan)}.surf-hud{position:absolute;left:24px;bottom:30px;z-index:22;pointer-events:none;max-width:60%}.surf-name{font-family:var(--serif);font-size:clamp(28px,6vw,46px);line-height:.95;letter-spacing:-.5px}.surf-note{margin-top:8px;font-size:10px;letter-spacing:1px;color:var(--dim);line-height:1.6;text-transform:uppercase}.surf-note i{color:var(--gold-dim);font-family:var(--serif);font-style:italic;text-transform:none;font-size:12px;letter-spacing:0}.compass{position:absolute;top:74px;right:24px;z-index:22;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:13px;color:var(--cyan);pointer-events:none;background:#080a1280;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.surf-wall{position:absolute;right:24px;bottom:30px;z-index:23;pointer-events:auto;cursor:pointer;padding:13px 18px;border-radius:30px;border:1px solid rgba(232,195,114,.35);background:#e8c3721a;color:var(--gold);font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.5px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.surf-wall:hover{background:#e8c37233}#cSurf{cursor:grab}#cSurf:active{cursor:grabbing}.sheet{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;background:#02030699;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .35s}.sheet.on{opacity:1;pointer-events:auto}.sheet-card{width:min(540px,100%);max-height:84vh;background:var(--bg2);border:1px solid var(--line);border-bottom:none;border-radius:20px 20px 0 0;padding:26px 24px 30px;transform:translateY(30px);transition:transform .35s;display:flex;flex-direction:column}.sheet.on .sheet-card{transform:translateY(0)}.sheet h2{font-family:var(--serif);font-weight:400;font-size:30px;letter-spacing:-.3px}.sheet .sub{font-size:11px;color:var(--dim);margin:3px 0 18px;letter-spacing:.5px}.wall{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-right:4px}.wall::-webkit-scrollbar{width:3px}.wall::-webkit-scrollbar-thumb{background:var(--line)}.mark{padding:12px 14px;border-radius:12px;background:#ffffff06;border:1px solid var(--line)}.mark.founder{border-color:#e8c3724d;background:linear-gradient(135deg,rgba(232,195,114,.06),transparent)}.mark .who{font-size:10px;letter-spacing:1px;color:var(--gold);text-transform:uppercase;display:flex;justify-content:space-between}.mark .who .when{color:var(--dim)}.mark .msg{font-family:var(--serif);font-size:17px;line-height:1.3;margin-top:5px;color:var(--ink)}.composer{margin-top:14px;display:flex;gap:8px}.composer input{flex:1;background:#ffffff08;border:1px solid var(--line);border-radius:10px;padding:13px 14px;color:var(--ink);font-family:var(--serif);font-size:16px;outline:none}.composer input:focus{border-color:var(--cyan)}.composer button{padding:0 18px;border:none;border-radius:10px;background:var(--cyan);color:#03110f;font-weight:600;cursor:pointer;font-family:var(--mono);font-size:12px}.sheet-close{position:absolute;top:18px;right:20px;cursor:pointer;color:var(--dim);font-size:20px;background:none;border:none}.claimflow .field{margin-top:14px}.claimflow label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--dim);display:block;margin-bottom:6px}.claimflow input{width:100%;background:#ffffff08;border:1px solid var(--line);border-radius:10px;padding:13px 14px;color:var(--ink);font-family:var(--serif);font-size:18px;outline:none}.claimflow input:focus{border-color:var(--gold)}.flags{display:flex;gap:8px;margin-top:8px}.flag{flex:1;aspect-ratio:1;border-radius:10px;cursor:pointer;border:2px solid transparent;font-size:22px;display:grid;place-items:center;background:#ffffff08}.flag.sel{border-color:var(--gold)}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-form .field{display:flex;flex-direction:column;gap:6px}.auth-form label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--dim)}.auth-form input{background:#ffffff08;border:1px solid var(--line);border-radius:10px;padding:13px 14px;color:var(--ink);font-family:var(--mono);font-size:14px;outline:none}.auth-form input:focus{border-color:var(--cyan)}.auth-toggle{font-size:11px;color:var(--cyan);cursor:pointer;text-align:center;margin-top:8px}.auth-error{font-size:11px;color:#ff5a5a;text-align:center}#jumpcap{position:absolute;left:0;right:0;bottom:18%;text-align:center;z-index:40;opacity:0;transition:opacity .4s;pointer-events:none}#jumpcap .d{font-family:var(--serif);font-size:clamp(30px,8vw,52px);color:var(--ink);letter-spacing:-.5px}#jumpcap .l{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--cyan);margin-top:6px}.hint{position:absolute;bottom:24px;left:50%;transform:translate(-50%);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--dim);z-index:22;pointer-events:none;animation:pulse 2.4s infinite}@keyframes pulse{0%,to{opacity:.4}50%{opacity:.9}}.toast{position:absolute;top:24px;left:50%;transform:translate(-50%) translateY(-20px);z-index:60;background:#e8c372f2;color:#1a1405;padding:11px 20px;border-radius:30px;font-size:12px;font-weight:600;letter-spacing:.5px;opacity:0;transition:all .4s;pointer-events:none}.toast.on{opacity:1;transform:translate(-50%) translateY(0)}.registry-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:45;background:var(--bg);overflow-y:auto;padding:80px 24px 40px;opacity:0;pointer-events:none;transition:opacity .4s}.registry-overlay.on{opacity:1;pointer-events:auto}.registry-overlay h2{font-family:var(--serif);font-size:36px;font-weight:400;margin-bottom:6px}.registry-overlay .rsub{font-size:12px;color:var(--dim);margin-bottom:24px}.registry-list{display:flex;flex-direction:column;gap:12px;max-width:600px}.registry-item{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#ffffff05;cursor:pointer;transition:border-color .2s}.registry-item:hover{border-color:var(--gold-dim)}.registry-item .ri-flag{font-size:28px;color:var(--gold)}.registry-item .ri-info{flex:1}.registry-item .ri-name{font-family:var(--serif);font-size:18px}.registry-item .ri-planet{font-size:11px;color:var(--dim);margin-top:2px}.registry-item .ri-date{font-size:10px;color:var(--dim)}
