:root{
  --void:#04050c;--glass:rgba(9,11,28,.66);--line:rgba(120,126,200,.24);
  --dust:#e2dff7;--dim:#9a97c2;--ice:#8fd0ff;--sun:#ffb454;
  --f-disp:"Unbounded",system-ui,sans-serif;--f-text:"Golos Text",system-ui,sans-serif;--f-mono:"JetBrains Mono",ui-monospace,monospace;
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;height:100%;overflow:hidden;background:var(--void);color:var(--dust);font:400 15px/1.5 var(--f-text);-webkit-tap-highlight-color:transparent;overscroll-behavior:none}
#gl{position:fixed;inset:0;width:100vw;height:100vh;display:block;touch-action:none}
#labels{position:fixed;inset:0;pointer-events:none;overflow:hidden}
.lbl{position:absolute;left:0;top:0;font:500 12px var(--f-mono);letter-spacing:.04em;color:var(--dust);white-space:nowrap;pointer-events:auto;cursor:pointer;padding:4px 6px;text-shadow:0 1px 6px #000;will-change:transform}
.lbl::before{content:"";position:absolute;left:-7px;top:50%;width:5px;height:5px;margin-top:-2.5px;border:1px solid currentColor;border-radius:50%}
.lbl.target{color:var(--sun)}
button{font:inherit;color:inherit}
.btn{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:99px;border:1px solid var(--sun);background:var(--sun);color:#1a1006;font:600 15px var(--f-text);cursor:pointer}
.btn.ghost{background:rgba(9,11,28,.7);color:var(--dust);border-color:var(--line)}
.hud{position:fixed;top:calc(12px + env(safe-area-inset-top,0px));left:16px;right:120px;display:grid;gap:8px;pointer-events:none}
.h-row{display:flex;gap:22px;flex-wrap:wrap}
.h-stat{display:grid;gap:1px}
.h-stat span{font:500 10.5px var(--f-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}
.h-stat b{font:600 17px var(--f-text);font-variant-numeric:tabular-nums;text-shadow:0 1px 8px #000}
.h-auto{pointer-events:auto;font:500 12.5px var(--f-mono);color:var(--sun)}
.h-auto button{background:none;border:0;color:var(--dim);text-decoration:underline;cursor:pointer;padding:6px}
.langs{position:fixed;top:calc(12px + env(safe-area-inset-top,0px));right:16px;display:flex;gap:4px;background:rgba(8,10,26,.7);border:1px solid var(--line);border-radius:99px;padding:3px;z-index:5}
.langs button{border:0;background:none;color:var(--dim);font:500 12px var(--f-mono);padding:6px 10px;border-radius:99px;cursor:pointer}
.langs button[aria-pressed=true]{background:var(--sun);color:#1a1006}
.ctl{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom,0px));display:flex;gap:10px;z-index:4}
.throttle{position:fixed;right:16px;bottom:calc(84px + env(safe-area-inset-bottom,0px));display:grid;justify-items:center;gap:6px;font:500 10.5px var(--f-mono);text-transform:uppercase;color:var(--dim);z-index:4;touch-action:none}
.th-track{position:relative;width:46px;height:110px;border-radius:99px;background:rgba(9,11,28,.7);border:1px solid var(--line);overflow:hidden;touch-action:none}
.th-track i{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(to top,rgba(255,180,84,.55),rgba(255,180,84,.15))}
.th-track b{position:absolute;left:5px;right:5px;height:6px;border-radius:9px;background:var(--sun)}
.stick{position:fixed;width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:50%;border:1px solid var(--line);background:rgba(9,11,28,.35);pointer-events:none;z-index:3}
.stick i{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:rgba(143,208,255,.35);border:1px solid var(--ice)}
.card{position:fixed;left:16px;bottom:calc(80px + env(safe-area-inset-bottom,0px));width:min(360px,calc(100% - 96px));background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:18px;padding:16px 16px 12px;z-index:3}
.card h2{margin:0 0 8px;font:700 20px var(--f-disp)}
.card dl{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:0 0 8px;font-size:13px}
.card dt{color:var(--dim)}
.card dd{margin:0}
.card p{margin:0;font-size:13.5px;color:var(--dust)}
.menu{position:fixed;inset:0;background:rgba(3,4,12,.6);display:grid;place-items:center;z-index:10}
.menu-in{width:min(420px,calc(100% - 32px));max-height:calc(100% - 32px);overflow:auto;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:20px;padding:18px}
.menu h2{margin:0 0 12px;font:700 20px var(--f-disp)}
.menu-list{display:grid;gap:6px}
.menu-list button{display:flex;justify-content:space-between;gap:12px;align-items:center;min-height:46px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.03);cursor:pointer;text-align:start}
.menu-list button span{font:500 12px var(--f-mono);color:var(--dim)}
.intro{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 60%,rgba(4,5,12,.35),rgba(4,5,12,.85));z-index:20;padding:16px}
.intro-in{width:min(520px,100%);background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:22px;padding:24px 22px}
.intro h1{margin:0 0 10px;font:700 clamp(26px,7vw,38px)/1.1 var(--f-disp)}
.intro p{margin:0 0 12px;color:var(--dust)}
.intro .how{color:var(--dim);font-size:14px}
.intro .credits{margin:16px 0 0;font-size:11.5px;color:var(--dim)}
.intro .btn{margin-top:6px;min-width:160px}
@media (max-width:640px){
  .card{top:calc(112px + env(safe-area-inset-top,0px));bottom:auto;left:16px;right:16px;width:auto;padding:10px 14px;cursor:pointer}
  .card h2{font-size:16px;margin:0 0 4px}
  .card dl{display:none;font-size:12px}
  .card.open dl{display:grid}
  .card p{font-size:12.5px}
}
.h-stat.hot b{color:#ff8a5c}
.heatfx{position:fixed;inset:0;pointer-events:none;opacity:0;z-index:2;background:radial-gradient(ellipse at center,rgba(255,90,0,0) 35%,rgba(255,70,0,.35) 70%,rgba(255,40,0,.75) 100%)}
.flash{position:fixed;inset:0;background:#fff4dc;opacity:0;pointer-events:none;z-index:7;transition:opacity 1.8s ease-out}
.alert{position:fixed;left:16px;right:16px;top:24%;display:grid;justify-items:center;gap:6px;text-align:center;z-index:6;pointer-events:none}
.alert b{font:700 clamp(30px,8vw,64px)/1 var(--f-disp);letter-spacing:.03em;color:#ff5a3c;text-shadow:0 0 28px rgba(255,60,0,.65)}
.alert span{font:600 15px var(--f-text);color:#ffe2d0;text-shadow:0 1px 8px #000;max-width:520px}
.alert.warn b{font-size:clamp(18px,4.6vw,26px);color:var(--sun);text-shadow:0 1px 10px #000}
.alert.danger b{animation:alarm .7s steps(2) infinite}
@keyframes alarm{50%{opacity:.25}}
.dead{position:fixed;inset:0;display:grid;place-items:center;z-index:20;padding:16px;background:radial-gradient(ellipse at center,rgba(40,10,0,.35),rgba(8,2,0,.85))}
.dead p{color:var(--dust)}
.edge{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;gap:3px;font:500 11.5px var(--f-mono);color:var(--dust);pointer-events:auto;cursor:pointer;padding:8px;text-shadow:0 1px 6px #000;white-space:nowrap;will-change:transform}
.edge i{display:block;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:14px solid currentColor;filter:drop-shadow(0 1px 4px #000)}
.edge.sun{color:var(--sun)}
.edge.aim{color:var(--ice)}
@media (max-width:640px){.ctl{gap:6px}.ctl .btn{padding:0 13px;font-size:14px}}
.tbtn{display:grid;justify-items:center;align-content:center;gap:1px;width:64px;height:64px;border-radius:18px;border:1px solid var(--line);background:rgba(9,11,28,.75);color:var(--dust);font:600 11.5px var(--f-text);cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.tbtn i{font-style:normal;font-size:18px;line-height:1}
.tbtn.on{background:var(--sun);border-color:var(--sun);color:#1a1006}
#bBrake.on{background:var(--ice);border-color:var(--ice)}
.throttle{gap:8px}
/* back to the main site */
.home{position:fixed;top:calc(52px + env(safe-area-inset-top,0px));right:16px;z-index:5;font:500 12px var(--f-mono);color:var(--dim);text-decoration:none;background:rgba(8,10,26,.7);border:1px solid var(--line);border-radius:99px;padding:6px 12px}
/* подпись: на телефоне поднята над рядом кнопок полёта; прячется, пока открыта панель знаков */
@media (max-width:640px){made-by-tomer{bottom:calc(60px + env(safe-area-inset-bottom,0px))}body:has(#signs:not([hidden])) made-by-tomer{display:none}}
.home:hover{color:var(--dust);border-color:var(--dim)}
.intro-home{display:inline-block;margin:6px 0 0 14px;color:var(--dim);font-size:14px}
/* black hole */
.h-stat.slow b{color:var(--ice)}
.menu-list button.jump{border-color:rgba(143,208,255,.45);background:rgba(143,208,255,.07)}
.menu-list button.jump span{color:var(--ice)}
.warp{position:fixed;inset:0;z-index:15;display:grid;place-items:center;pointer-events:none;opacity:0;transition:opacity .9s ease;
  background:radial-gradient(ellipse at center,rgba(220,235,255,.95) 0,rgba(120,150,255,.55) 22%,rgba(10,12,40,.92) 60%,#02030a 100%)}
.warp.on{opacity:1}
.warp b{font:700 clamp(18px,4.4vw,30px)/1.2 var(--f-disp);color:#06081a;text-align:center;padding:0 24px;max-width:640px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom,0px));width:min(440px,calc(100% - 32px));z-index:8;background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--ice);border-radius:16px;padding:12px 14px;font-size:14px;cursor:pointer}
@media (max-width:640px){.at-hole .hud .h-row{gap:6px 18px}.at-hole .card{top:calc(158px + env(safe-area-inset-top,0px))}.toast{bottom:auto;top:calc(214px + env(safe-area-inset-top,0px))}}

/* online */
.h-stat.net b{color:#b9f5c8}
.lbl.ship::before{border-radius:2px;transform:rotate(45deg)}
.menu-list h3{margin:10px 2px 2px;font:500 11px var(--f-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}
.menu-list button.ship span{color:#b9f5c8}
.signs{position:fixed;left:16px;bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:4;display:grid;gap:6px;font:500 11px var(--f-mono);color:var(--dim)}
.sign-row{display:flex;gap:6px}
.sign-row button{display:grid;justify-items:center;gap:2px;width:62px;padding:7px 2px;border-radius:14px;border:1px solid var(--line);background:rgba(9,11,28,.75);cursor:pointer;font:500 11px var(--f-text)}
.sign-row button i{font-style:normal;font-size:16px;line-height:1;color:#b9f5c8}
.sign-row button:active{background:rgba(185,245,200,.2)}
.toast .btn{margin-top:10px;min-height:38px;width:100%}
.bday{display:grid;gap:6px;margin:4px 0 10px;font-size:13px;color:var(--dim)}
.bday input{font:500 16px var(--f-mono);background:rgba(10,12,32,.7);color:var(--dust);border:1px solid var(--line);border-radius:12px;padding:10px 12px;max-width:220px;color-scheme:dark}
.star-hint{color:var(--ice)!important;font-size:14px}
@media (max-width:640px){.signs{bottom:calc(70px + env(safe-area-inset-bottom,0px));left:12px}.sign-row button{width:54px}.card{z-index:3}}

/* my sky */
.me-btn i{font-style:normal;color:var(--sun);margin-inline-end:6px}
@media (max-width:640px){.me-btn span{display:none}.me-btn i{margin:0}.me-btn{padding:0 14px}}
.con{position:absolute;left:0;top:0;font:500 11px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:#8fb4ff;opacity:0;pointer-events:none;text-shadow:0 1px 6px #000;white-space:nowrap}
.con.mine{color:var(--sun);font-size:13px}
.time-bar{position:fixed;left:50%;transform:translateX(-50%);top:calc(64px + env(safe-area-inset-top,0px));z-index:6;display:flex;gap:10px;align-items:center;max-width:calc(100% - 32px);background:rgba(40,26,6,.85);border:1px solid var(--sun);border-radius:99px;padding:6px 6px 6px 14px;font:500 13px var(--f-text);color:#ffe2b8}
.time-bar button{border:0;background:var(--sun);color:#1a1006;border-radius:99px;padding:6px 12px;font:600 12.5px var(--f-text);cursor:pointer;white-space:nowrap}
@media (max-width:640px){.time-bar{top:auto;bottom:calc(150px + env(safe-area-inset-bottom,0px));font-size:12px}}
.me-in{width:min(560px,calc(100% - 24px));max-height:calc(100% - 24px)}
.me-head{display:flex;justify-content:space-between;align-items:center}
.me-x{border:0;background:none;color:var(--dim);font-size:18px;cursor:pointer;padding:6px 8px}
.me-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:6px}
.me-form label{display:grid;gap:4px;font-size:12px;color:var(--dim);position:relative}
.me-form .wide{grid-column:1/-1}
.me-form input{font:500 15px var(--f-text);background:rgba(10,12,32,.7);color:var(--dust);border:1px solid var(--line);border-radius:10px;padding:9px 11px;color-scheme:dark;min-width:0}
.cities{display:grid;gap:2px;position:absolute;top:100%;left:0;right:0;z-index:2;background:#0b0d22;border-radius:10px}
.cities button{text-align:start;border:1px solid var(--line);background:#0b0d22;border-radius:8px;padding:8px 10px;cursor:pointer;font-size:13px}
.dim{color:var(--dim)!important;font-size:12.5px}
#meBody section{border-top:1px solid var(--line);padding:14px 0 6px}
#meBody h3,#meNow h3{margin:0 0 8px;font:500 11px var(--f-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}
#meBody p,#meNow p{margin:0 0 8px;font-size:14.5px}
#meBody .big{font:700 24px var(--f-disp);color:var(--sun)}
#meBody .btn{margin:4px 0 6px}
.me-empty{color:var(--dim)}
.wheel{display:flex;justify-content:center;margin:4px 0 10px}
.wheel svg{max-width:100%;height:auto}
.pl{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:7px;font-size:14px}
.pl b{font-weight:600}
.pl span{display:block;color:var(--dim);font-size:12.5px}
.bd{width:100%;border-collapse:collapse;font-size:13.5px}
.bd th{font:500 10.5px var(--f-mono);text-transform:uppercase;color:var(--dim);text-align:start;padding:4px 0}
.bd td{padding:5px 0;border-top:1px solid rgba(120,126,200,.12);font-variant-numeric:tabular-nums}
.card dt.bd{color:var(--sun)}
#meBody .btn{white-space:normal;text-align:center;height:auto;min-height:44px;padding:10px 18px;line-height:1.25}

/* constellations */
.con{pointer-events:auto;cursor:pointer;padding:4px 6px;color:rgba(143,180,255,.75);font-size:10px}
.con.zod{color:#8fb4ff;font-size:11px}
.con.sel{color:#fff;font-size:13px}
.con-card{position:fixed;left:16px;top:calc(110px + env(safe-area-inset-top,0px));width:min(340px,calc(100% - 32px));z-index:8;background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:18px;padding:14px 16px}
.con-card h2{margin:0;font:700 20px var(--f-disp)}
.con-card .lat{margin:0 0 8px;font:500 11px var(--f-mono);color:var(--dim);text-transform:uppercase;letter-spacing:.08em}
.con-card p{margin:0 0 8px;font-size:14px}
.con-card .now{color:var(--sun)}
.row{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
.now-list a{color:#8fb4ff}
/* overview */
.ov{position:fixed;inset:0;z-index:9;pointer-events:none}
.ov>*{pointer-events:auto}
.ov-top{position:absolute;left:16px;right:16px;top:calc(12px + env(safe-area-inset-top,0px));display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.ov-date{display:grid;gap:2px;text-shadow:0 1px 8px #000}
.ov-date span{font:500 11px var(--f-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}
.ov-date b{font:700 clamp(20px,5vw,30px) var(--f-disp)}
.ov-bar{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(14px + env(safe-area-inset-bottom,0px));width:min(620px,calc(100% - 24px));background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:18px;padding:10px 12px;display:grid;gap:8px}
.ov-play,.ov-jump{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ov-bar button{min-height:40px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.04);cursor:pointer;font:600 14px var(--f-text)}
#ovPlay{background:var(--sun);color:#1a1006;border-color:var(--sun);min-width:56px}
#ovSpeed{font:500 12px var(--f-mono);color:var(--dim);margin-inline-start:6px}
.ov-bar input{font:500 14px var(--f-text);background:rgba(10,12,32,.7);color:var(--dust);border:1px solid var(--line);border-radius:12px;padding:8px 10px;color-scheme:dark;min-height:40px}
.ov-hint{margin:0;font-size:11.5px;color:var(--dim)}
.ov-card{position:absolute;right:16px;top:calc(70px + env(safe-area-inset-top,0px));width:min(320px,calc(100% - 32px));background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:18px;padding:14px 16px}
.ov-card h2{margin:0 0 6px;font:700 20px var(--f-disp)}
.ov-card p{margin:0 0 6px;font-size:14px}
#ovLabels{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:8}
.ov-lbl{position:absolute;left:0;top:0;font:500 12px var(--f-mono);color:var(--dust);text-shadow:0 1px 6px #000;white-space:nowrap;pointer-events:auto;cursor:pointer;padding:6px}
.ov-con{position:absolute;left:0;top:0;font:500 11px var(--f-mono);text-transform:uppercase;letter-spacing:.06em;color:#8fb4ff;white-space:nowrap;text-shadow:0 1px 6px #000}
.ov-con.sun,.ov-sign.sun{color:var(--sun);font-size:13px}
.ov-sign{position:absolute;left:0;top:0;font-size:16px;color:rgba(255,180,84,.55)}
.ov-suntag{position:absolute;left:0;top:0;font:600 12px var(--f-text);color:var(--sun);background:rgba(20,14,4,.75);border:1px solid rgba(255,180,84,.5);border-radius:99px;padding:4px 10px;white-space:nowrap}
@media (max-width:640px){.ov-card{top:auto;bottom:calc(170px + env(safe-area-inset-bottom,0px));left:12px;right:12px;width:auto}.con-card{top:auto;bottom:calc(150px + env(safe-area-inset-bottom,0px))}.ov-hint{display:none}}
.ov-on .langs,.ov-on .home{display:none}
.ov-date em{font:600 13px var(--f-text);font-style:normal;color:var(--sun)}
.me-h{margin:14px 0 8px;padding-top:14px;border-top:1px solid var(--line);font:500 11px var(--f-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--dim)}
#meNow section{border-top:0;padding-top:4px}
