:root{--bg:#07080a;--panel:#0c1016db;--panel-solid:#0f141b;--line:#dcaa6e47;--line-strong:#ffc8788c;--text:#dfe8f1;--muted:#8da0b3;--accent:#ffbe4a;--good:#46e05a;--warn:#f2c94c;--bad:#ff5a4a;--btn:52px;--mini:190px;--gap:6px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}button{color:inherit;font-family:inherit}#app{position:fixed;inset:0}canvas.world{touch-action:none;cursor:default;display:block;position:absolute;inset:0}canvas.world.targeting{cursor:crosshair}.hud{pointer-events:none;font-size:13px;position:absolute;inset:0}.hud>*{pointer-events:auto}.panel{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(4px);border-radius:8px;box-shadow:0 6px 24px #00000073}.hud-top{top:calc(env(safe-area-inset-top) + 6px);right:calc(env(safe-area-inset-right) + 8px);font-variant-numeric:tabular-nums;align-items:center;gap:14px;padding:5px 12px;font-weight:600;display:flex;position:absolute}.hud-top .res{align-items:center;gap:6px;min-width:52px;display:flex}.ico{width:14px;height:14px;display:inline-block}.ico.min{clip-path:polygon(50% 0,100% 40%,75% 100%,25% 100%,0 40%);background:linear-gradient(135deg,#b8f1ff,#2b9fd6)}.ico.gas{background:radial-gradient(circle at 35% 35%,#c7ffc7,#2fb04a 70%);border-radius:50%}.ico.sup{clip-path:polygon(50% 0,100% 45%,85% 45%,85% 100%,15% 100%,15% 45%,0 45%);background:linear-gradient(#ffe39a,#d89a2a)}.res.blocked b{color:var(--bad)}.clock{color:var(--muted);text-align:right;min-width:40px}.hud-menu{top:calc(env(safe-area-inset-top) + 6px);left:calc(var(--mini) + env(safe-area-inset-left) + 16px);cursor:pointer;place-items:center;width:36px;height:32px;display:grid;position:absolute}.hud-minimap{left:calc(env(safe-area-inset-left) + 6px);top:calc(env(safe-area-inset-top) + 6px);padding:4px;line-height:0;position:absolute}.hud-minimap canvas{touch-action:none;cursor:pointer;border-radius:4px}.hud-bottom{left:calc(env(safe-area-inset-left) + 6px);right:calc(env(safe-area-inset-right) + 6px);bottom:calc(env(safe-area-inset-bottom) + 6px);align-items:flex-end;gap:var(--gap);pointer-events:none;display:flex;position:absolute}.hud-bottom>*{pointer-events:auto}.hud-left{gap:var(--gap);pointer-events:none;flex-direction:column-reverse;flex:1;align-items:flex-start;min-width:0;display:flex}.hud-left>*{pointer-events:auto}.hud-groups{flex-wrap:wrap;gap:4px;display:flex}.qbtn{background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;gap:4px;min-width:38px;height:34px;padding:0 7px;font-size:12px;font-weight:700;display:inline-flex;position:relative}.qbtn.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;color:var(--accent)}.qbtn .n{color:var(--muted);font-size:9px;position:absolute;bottom:0;right:2px}.qbtn.empty{opacity:.45}.hud-sel{align-items:stretch;gap:10px;width:100%;max-width:560px;min-height:92px;padding:8px;display:flex}.hud-sel.empty{visibility:hidden}.sel-portrait{border:1px solid var(--line);background:radial-gradient(circle at 50% 40%,#233142,#0b0f15);border-radius:6px;flex:none;place-items:center;width:76px;height:76px;display:grid;overflow:hidden}.sel-portrait canvas,.sel-portrait img{width:72px;height:72px}.sel-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.sel-name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.sel-name small{color:var(--muted);margin-left:6px;font-weight:500}.bars{flex-direction:column;gap:3px;max-width:260px;display:flex}.bar{background:#0000008c;border-radius:3px;height:12px;font-size:10px;line-height:12px;position:relative;overflow:hidden}.bar>i{background:var(--good);position:absolute;inset:0 auto 0 0}.bar>span{text-shadow:0 1px 1px #000;font-variant-numeric:tabular-nums;padding-left:4px;font-weight:700;position:relative}.bar.sh>i{background:#4fb7ff}.bar.en>i{background:#b06cff}.bar.pr>i{background:#d8e6f2}.sel-stats{color:var(--muted);flex-wrap:wrap;gap:10px;font-size:11px;display:flex}.queue,.cargo{gap:4px;margin-top:2px;display:flex}.qslot{border:1px solid var(--line);cursor:pointer;width:34px;height:34px;color:var(--muted);background:#00000059;border-radius:5px;place-items:center;display:grid;position:relative;overflow:hidden}.qslot img,.qslot canvas,.qslot svg{width:28px;height:28px}.qslot .prog{background:var(--accent);height:3px;position:absolute;bottom:0;left:0}.sel-grid{flex-wrap:wrap;align-content:flex-start;gap:3px;max-height:110px;display:flex;overflow:hidden}.sel-grid .cell{border:1px solid var(--line);cursor:pointer;background:#00000059;border-radius:5px;place-items:center;width:34px;height:34px;display:grid;position:relative}.sel-grid .cell.active{border-color:var(--accent)}.sel-grid .cell img{width:28px;height:28px}.sel-grid .cell .hp{background:var(--good);border-radius:2px;height:3px;position:absolute;bottom:2px;left:2px;right:2px}.hud-card.none{visibility:hidden}@media (max-height:520px),(max-width:760px){.hud-card.none{display:none}}.hud-card{grid-template-columns:repeat(4, var(--btn));grid-template-rows:repeat(3, var(--btn));flex:none;gap:4px;padding:6px;display:grid}.cbtn>*,.sel-grid .cell>*,.qslot>*{pointer-events:none}.cbtn{width:var(--btn);height:var(--btn);border:1px solid var(--line);cursor:pointer;color:#cfe6ff;touch-action:manipulation;background:linear-gradient(#28384ae6,#10161ef2);border-radius:7px;place-items:center;padding:0;display:grid;position:relative;overflow:hidden}.cbtn:hover{border-color:var(--line-strong)}.cbtn:active{transform:translateY(1px)}.cbtn.empty{cursor:default;background:#0000002e;border-style:dashed;border-color:#78aadc1a}.cbtn.disabled{filter:grayscale()brightness(.55)}.cbtn.poor .cost{color:var(--bad)}.cbtn.armed{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset, 0 0 14px #ffbe4a80}.cbtn img{object-fit:contain;width:80%;height:80%}.cbtn svg{width:56%;height:56%}.cbtn .hk{color:#ffe08a;text-shadow:0 1px 2px #000;font-size:10px;font-weight:800;position:absolute;top:2px;left:4px}.cbtn .badge{color:#fff;text-shadow:0 1px 2px #000;font-size:10px;font-weight:800;position:absolute;bottom:2px;right:3px}.hud-msgs{pointer-events:none;text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;top:22%;left:50%;transform:translate(-50%)}.msg{text-shadow:0 2px 4px #000,0 0 2px #000;font-size:15px;font-weight:700;animation:3s forwards msgfade}.msg.error{color:#ffd166}.msg.alert{color:#ff6a5a}.msg.info{color:#bfe6ff}@keyframes msgfade{0%,75%{opacity:1}to{opacity:0}}.hud-status{text-align:center;padding:14px 22px;font-size:16px;font-weight:700;display:none;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.hud-status.show{display:block}.hud-tip{pointer-events:none;z-index:5;max-width:300px;padding:8px 10px;font-size:12px;line-height:1.4;display:none;position:absolute}.hud-tip.show{display:block}.hud-tip b{font-size:13px}.hud-tip .cost{font-variant-numeric:tabular-nums;gap:10px;margin:3px 0;font-weight:700;display:flex}.hud-tip .cost span{align-items:center;gap:4px;display:inline-flex}.hud-tip .why{color:var(--bad);font-weight:700}.hud-tip p{color:#b9c9d8;margin:3px 0 0}.hud-place{left:50%;bottom:calc(env(safe-area-inset-bottom) + 160px);gap:10px;display:none;position:absolute;transform:translate(-50%)}.hud-place.show{display:flex}.hud-place button{border:1px solid var(--line-strong);background:var(--panel);cursor:pointer;border-radius:10px;min-width:96px;height:44px;font-size:15px;font-weight:800}.hud-place .ok{color:var(--good)}.hud-place .no{color:var(--bad)}.hud-hint{left:50%;bottom:calc(env(safe-area-inset-bottom) + 160px);color:var(--accent);pointer-events:none;padding:6px 14px;font-weight:700;display:none;position:absolute;transform:translate(-50%)}.hud-hint.show{display:block}@media (max-height:520px),(max-width:760px){:root{--btn:44px;--mini:112px}.hud{font-size:12px}.hud-top{gap:9px;padding:4px 8px;font-size:12px}.hud-top .res{min-width:40px}.hud-sel{gap:6px;min-height:64px;padding:5px}.sel-portrait{width:52px;height:52px}.sel-portrait canvas,.sel-portrait img{width:48px;height:48px}.sel-stats{display:none}.qslot,.sel-grid .cell{width:28px;height:28px}.qslot img,.sel-grid .cell img{width:22px;height:22px}.sel-grid{max-height:60px}.qbtn{min-width:34px;height:32px;padding:0 5px}.hud-place{bottom:calc(env(safe-area-inset-bottom) + 150px)}}@media (max-height:420px){.hud-sel{max-width:380px;min-height:0;padding:4px 6px}.sel-portrait{width:42px;height:42px}.sel-portrait canvas,.sel-portrait img{width:38px;height:38px}.sel-name{font-size:12px}.bars{gap:2px}.bar{height:10px;font-size:9px;line-height:10px}.queue{margin-top:0}.qslot{width:24px;height:24px}.qslot img,.qslot svg{width:20px;height:20px}.sel-grid .cell{width:26px;height:26px}.sel-grid .cell img{width:20px;height:20px}.sel-grid{max-height:56px}.qbtn{min-width:32px;height:30px}}.screen{-webkit-overflow-scrolling:touch;-webkit-user-select:none;user-select:none;z-index:10;background:radial-gradient(at 20% 10%,#c882322e,#0000 50%),radial-gradient(at 80% 90%,#5a96461f,#0000 55%),linear-gradient(#06080c,#0b1018);position:fixed;inset:0;overflow-y:auto}.screen.overlay{-webkit-backdrop-filter:blur(3px);background:#030509c7}.fs-btn{top:calc(env(safe-area-inset-top) + 12px);right:calc(env(safe-area-inset-right) + 12px);font-size:18px;position:absolute}.attract .hud-menu{display:none}.menu{max-width:760px;padding:calc(env(safe-area-inset-top) + 24px) 18px calc(env(safe-area-inset-bottom) + 28px);flex-direction:column;gap:14px;margin:0 auto;display:flex}.title{text-align:center;margin:10px 0 4px}.title h1{letter-spacing:.18em;text-transform:uppercase;background:linear-gradient(#fff3cf,#ffbe4a 60%,#b06a1c);color:#0000;text-shadow:0 0 40px #50a0ff40;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(34px,8vw,64px);font-weight:800}.title p{color:var(--muted);letter-spacing:.08em;margin:6px 0 0}.mbtn{border:1px solid var(--line);letter-spacing:.04em;text-align:left;cursor:pointer;background:linear-gradient(#243448e6,#0e141cf2);border-radius:10px;width:100%;padding:14px 18px;font-size:16px;font-weight:700;display:block}.mbtn:hover{border-color:var(--line-strong)}.mbtn small{color:var(--muted);letter-spacing:0;margin-top:3px;font-size:12px;font-weight:500;display:block}.mbtn.primary{background:linear-gradient(#a0601ee6,#4a280cf2);border-color:#ffbe4a99}.mbtn.danger{border-color:#ff5a4a80}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row>*{flex:1}.card{border:1px solid var(--line);background:#0c1016cc;border-radius:12px;padding:14px}.card h2,.card h3{letter-spacing:.06em;text-transform:uppercase;color:#a9cbea;margin:0 0 10px;font-size:15px}label.field{color:var(--muted);flex-direction:column;gap:5px;font-size:12px;display:flex}select,input[type=text],input[type=url]{font:inherit;color:var(--text);border:1px solid var(--line);background:#0b1118;border-radius:8px;width:100%;padding:9px 10px;font-size:15px}input[type=range]{width:100%}.slot{grid-template-columns:minmax(70px,1fr) minmax(90px,1fr) minmax(90px,1fr) minmax(86px,.8fr) 34px;align-items:center;gap:6px;margin-bottom:8px;display:grid}.slot .who{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.swatch{vertical-align:middle;border-radius:4px;width:18px;height:18px;display:inline-block}.races{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.race{border:1px solid var(--line);cursor:pointer;text-align:center;background:#0a0e14cc;border-radius:10px;padding:12px}.race.sel{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.race b{margin-top:6px;display:block}.race small{color:var(--muted);margin-top:4px;font-size:11px;line-height:1.35;display:block}.race canvas{width:64px;height:64px}.muted{color:var(--muted)}.small{font-size:12px}.chat{border:1px solid var(--line);-webkit-user-select:text;user-select:text;background:#0a0f15;border-radius:8px;height:140px;padding:6px 8px;font-size:13px;overflow-y:auto}.chat div{margin:2px 0}.stats-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.stats-table th,.stats-table td{border-bottom:1px solid var(--line);text-align:right;padding:6px 8px}.stats-table th:first-child,.stats-table td:first-child{text-align:left}.banner{text-align:center;letter-spacing:.12em;margin:20px 0 10px;font-size:clamp(36px,9vw,72px);font-weight:900}.banner.win{color:#7dffa0;text-shadow:0 0 30px #50ff8c59}.banner.lose{color:#ff7a6a;text-shadow:0 0 30px #ff503c59}.rotate-hint{display:none}@media (orientation:portrait) and (max-width:600px){.rotate-hint.ingame{top:calc(env(safe-area-inset-top) + 124px);color:var(--muted);pointer-events:none;padding:4px 8px;font-size:11px;display:block;position:absolute;left:8px;right:auto}}.help{color:#c9d7e4;font-size:14px;line-height:1.55}.help h3{margin-top:14px}.help kbd{font-family:var(--mono);border:1px solid var(--line);background:#0b1118;border-bottom-width:2px;border-radius:4px;padding:0 5px;font-size:12px}a{color:var(--accent)}.toggle{justify-content:space-between;align-items:center;gap:12px;padding:6px 0;display:flex}.toggle input{width:20px;height:20px}.hud-spec{top:calc(env(safe-area-inset-top) + 6px);right:calc(env(safe-area-inset-right) + 8px);font-variant-numeric:tabular-nums;flex-direction:column;gap:3px;padding:6px 10px;font-size:12px;display:flex;position:absolute}.spec-ctrl{gap:4px;margin-bottom:4px;display:flex}.spec-ctrl .qbtn{min-width:34px;height:26px}.spec-speed{width:auto;height:26px;padding:0 6px;font-size:12px;font-weight:700}.spec-row{font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;grid-template-columns:14px minmax(70px,1fr) 64px 56px 64px;align-items:center;gap:6px;padding:2px 4px;display:grid}.spec-row:hover{border-color:var(--line)}.spec-row.on{border-color:var(--accent)}.spec-row .swatch{width:12px;height:12px}.spec-row b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.spec-row .m{color:#8fe3ff}.spec-row .gs{color:#7be68a}.spec-row.dead{opacity:.4;text-decoration:line-through}.hud-chat{left:50%;bottom:calc(env(safe-area-inset-bottom) + 170px);width:min(520px,90vw);font:inherit;color:var(--text);z-index:6;padding:10px 12px;font-size:15px;position:absolute;transform:translate(-50%)}.qbtn.alert .n{color:var(--warn);font-weight:800}@media (max-width:480px){.hud-menu{left:calc(env(safe-area-inset-left) + 6px);top:calc(env(safe-area-inset-top) + var(--mini) + 18px)}.hud-top{gap:7px;padding:4px 7px;font-size:11px}.hud-top .res{gap:4px;min-width:0}.clock{min-width:0}}@media (max-width:520px){.slot{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) 34px;padding-bottom:8px}.slot .who{grid-column:1/-1}.slot select{padding:8px 4px 8px 6px;font-size:14px}.races{grid-template-columns:1fr}.race{text-align:left;grid-template-columns:56px 1fr;align-items:center;gap:2px 10px;display:grid}.race canvas{grid-row:span 2;width:52px;height:52px}.race b{margin-top:0}}.map-row{align-items:center;gap:12px;margin-top:10px;display:flex}.map-preview{border:1px solid var(--line);image-rendering:auto;border-radius:8px;flex:none}
