:root{--bg: #05080d;--panel: rgba(10, 16, 24, .82);--panel-2: rgba(16, 26, 38, .9);--line: rgba(120, 200, 230, .22);--line-strong: rgba(120, 220, 240, .55);--text: #dfe8ee;--dim: #8a9aa8;--teal: #5fe0d0;--amber: #f0a848;--red: #ff6a5a;--good: #7ae0a0;--font: "Segoe UI", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", "Yu Gothic UI", Meiryo, sans-serif;--mono: "Consolas", "SFMono-Regular", "Menlo", monospace}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:var(--font);overflow:hidden;user-select:none}canvas#gl{position:fixed;inset:0;width:100vw;height:100vh;display:block}#ui{position:fixed;inset:0;pointer-events:none}#ui>*{pointer-events:auto}.pass{pointer-events:none!important}.pass *{pointer-events:auto}button{font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 18px;min-height:38px;border:1px solid var(--line-strong);background:#14283499;color:var(--text);font-size:14px;letter-spacing:.04em;cursor:pointer;transition:background .15s,border-color .15s,transform .08s;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}.btn:hover{background:#3c8ca073;border-color:var(--teal)}.btn:active{transform:translateY(1px)}.btn.primary{background:#f0a84838;border-color:var(--amber);color:#ffe6c0}.btn.primary:hover{background:#f0a84866}.btn.danger{border-color:#ff6a5ab3}.btn:disabled,.btn.disabled{opacity:.38;cursor:not-allowed}.btn .k{font-family:var(--mono);font-size:11px;color:var(--teal);border:1px solid var(--line);padding:0 5px}.btn.small{padding:5px 10px;min-height:28px;font-size:12px}.panel{background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(6px);position:relative}.panel:before{content:"";position:absolute;left:-1px;top:-1px;width:14px;height:14px;border-left:2px solid var(--teal);border-top:2px solid var(--teal)}.panel:after{content:"";position:absolute;right:-1px;bottom:-1px;width:14px;height:14px;border-right:2px solid var(--teal);border-bottom:2px solid var(--teal)}.panel h2{margin:0;padding:12px 16px 8px;font-size:13px;letter-spacing:.3em;color:var(--teal);font-weight:600;text-transform:uppercase;border-bottom:1px solid var(--line)}.panel .body{padding:12px 16px}.label{font-size:11px;color:var(--dim);letter-spacing:.14em}.mono{font-family:var(--mono)}.dim{color:var(--dim)}.good{color:var(--good)}.bad{color:var(--red)}.amber{color:var(--amber)}.teal{color:var(--teal)}.title-screen{position:fixed;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:0 7vw 9vh;background:linear-gradient(90deg,#03060ad9,#03060a59 45%,#03060a00 70%)}.logo{font-size:clamp(42px,7vw,96px);font-weight:200;letter-spacing:.32em;margin:0;line-height:1;color:#eef6fa;text-shadow:0 0 40px rgba(120,200,255,.35)}.logo b{font-weight:600}.tagline{margin:18px 0 34px;font-size:clamp(14px,1.4vw,19px);letter-spacing:.24em;color:#b8cad6}.menu{display:flex;flex-direction:column;gap:10px;width:300px}.menu .btn{justify-content:flex-start;padding-left:22px;font-size:15px}.version{position:fixed;right:18px;bottom:12px;font-size:11px;color:var(--dim);font-family:var(--mono)}.cut{position:fixed;inset:0;background:#000;display:flex;align-items:flex-end;justify-content:center;cursor:pointer}.cut img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:kenburns 14s ease-out forwards}@keyframes kenburns{0%{transform:scale(1)}to{transform:scale(1.09)}}.cut .fade{position:absolute;inset:0;background:linear-gradient(0deg,#000000eb,#00000040 38%,#0000 60%)}.cut .caption{position:relative;max-width:980px;padding:0 40px 8vh;font-size:clamp(16px,1.6vw,22px);line-height:2;letter-spacing:.06em;text-align:center;text-shadow:0 2px 10px #000;white-space:pre-line}.cut .skip{position:absolute;right:24px;top:18px;font-size:12px;color:var(--dim)}.cut .caption .who{display:block;font-size:13px;letter-spacing:.3em;color:var(--amber)}.topbar{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;gap:18px;padding:10px 18px;background:linear-gradient(180deg,#04080ce6,#04080c00)}.topbar .loc{font-size:15px;letter-spacing:.08em}.topbar .loc small{display:block;font-size:11px;color:var(--dim);letter-spacing:.2em}.res{display:flex;gap:12px;flex-wrap:wrap;font-size:12px}.res span{display:inline-flex;gap:5px;align-items:baseline}.res b{font-family:var(--mono);font-size:14px;color:#fff;font-weight:500}.spacer{flex:1}.keys{display:flex;gap:4px}.keys i{width:12px;height:18px;border:1px solid var(--line-strong);transform:skew(-12deg)}.keys i.on{background:var(--amber);box-shadow:0 0 10px var(--amber);border-color:var(--amber)}.crewbar{position:fixed;left:14px;bottom:14px;display:flex;gap:8px}.crewcard{width:148px;background:var(--panel);border:1px solid var(--line);cursor:pointer;position:relative;overflow:hidden;transition:border-color .15s,transform .15s}.crewcard:hover{border-color:var(--teal)}.crewcard.sel{border-color:var(--amber);box-shadow:0 0 0 1px var(--amber),0 0 18px #f0a84859;transform:translateY(-4px)}.crewcard.dead{filter:grayscale(1) brightness(.5)}.crewcard img{width:100%;height:96px;object-fit:cover;object-position:50% 12%;display:block}.crewcard .nm{padding:4px 8px 0;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crewcard .echo{position:absolute;top:4px;right:4px;font-family:var(--mono);font-size:10px;padding:1px 5px;background:#0009;color:var(--teal);border:1px solid var(--line)}.bar{height:6px;background:#ffffff14;margin:4px 8px;position:relative}.bar>i{position:absolute;left:0;top:0;bottom:0;background:var(--good);transition:width .25s}.bar.sh>i{background:#6ab8ff}.bar.hull>i{background:var(--amber)}.crewcard .ap{display:flex;gap:4px;padding:2px 8px 6px}.crewcard .ap i{width:16px;height:5px;background:#ffffff1f}.crewcard .ap i.on{background:var(--teal);box-shadow:0 0 6px var(--teal)}.dialog{position:fixed;left:50%;bottom:190px;transform:translate(-50%);width:min(980px,94vw);display:flex;gap:0;z-index:20;animation:rise .25s ease-out}@keyframes rise{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}.dialog .por{width:210px;flex:none;border:1px solid var(--line);border-right:none;background:#000;overflow:hidden}.dialog .por img{width:100%;height:100%;object-fit:cover;object-position:50% 15%;display:block}.dialog .txt{flex:1;padding:18px 24px 16px}.dialog .who{font-size:12px;letter-spacing:.3em;color:var(--amber);margin-bottom:8px}.dialog .line{font-size:16px;line-height:1.9;white-space:pre-line;min-height:90px}.dialog .choices{display:flex;flex-direction:column;gap:6px;margin-top:12px}.dialog .choices .btn{justify-content:flex-start;text-align:left}.dialog .choices .why{font-size:11px;color:var(--red);margin-left:8px}.toasts{position:fixed;top:64px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;z-index:30;pointer-events:none}.toast{padding:8px 18px;background:#080e14e6;border:1px solid var(--line-strong);font-size:14px;animation:toast 3.2s forwards}.toast.good{border-color:var(--good);color:#d8ffe6}.toast.bad{border-color:var(--red);color:#ffd8d0}@keyframes toast{0%{opacity:0;transform:translateY(-8px)}8%{opacity:1;transform:none}85%{opacity:1}to{opacity:0}}.floater{position:fixed;font-family:var(--mono);font-weight:700;font-size:18px;pointer-events:none;text-shadow:0 0 6px #000,0 0 2px #000;animation:floatUp 1.1s ease-out forwards;z-index:15;white-space:nowrap}@keyframes floatUp{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-46px)}}.combatlog{position:fixed;right:14px;bottom:14px;width:330px;max-height:170px;overflow:hidden;font-size:12px;line-height:1.6;color:#b8c8d4;display:flex;flex-direction:column;justify-content:flex-end;pointer-events:none;text-shadow:0 1px 3px #000}.base-wrap{position:fixed;inset:56px 14px 14px;display:grid;grid-template-columns:220px 1fr;gap:14px}.tabs{display:flex;flex-direction:column;gap:6px}.tabs .btn{justify-content:flex-start}.tabs .btn.on{border-color:var(--amber);background:#f0a8482e}.base-main{overflow:auto}.grid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}.card{background:var(--panel-2);border:1px solid var(--line);padding:12px 14px;display:flex;flex-direction:column;gap:6px}.card .t{font-size:15px}.card .d{font-size:12px;color:var(--dim);line-height:1.6}.card .cost{font-size:12px;font-family:var(--mono)}.card .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.statgrid{display:grid;grid-template-columns:auto 1fr auto;gap:3px 10px;font-size:13px;align-items:center}.statgrid .sb{height:5px;background:#ffffff14;position:relative}.statgrid .sb i{position:absolute;left:0;top:0;bottom:0;background:var(--teal)}.drift-up{color:var(--good)}.drift-down{color:var(--red)}.crew-detail{display:grid;grid-template-columns:260px 1fr;gap:16px}.crew-detail img{width:100%;border:1px solid var(--line)}.scar{display:inline-block;padding:2px 8px;margin:2px;border:1px solid rgba(255,106,90,.5);color:#ffc8c0;font-size:12px}.array{display:flex;gap:14px;align-items:center;justify-content:center;padding:18px 0;flex-wrap:wrap}.slot{width:92px;height:120px;border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:11px;text-align:center;color:var(--dim)}.slot.on{border-color:var(--amber);color:#ffe0b0;box-shadow:inset 0 0 24px #f0a84840}.slot .gem{width:26px;height:40px;transform:skew(-12deg);border:1px solid var(--line-strong)}.slot.on .gem{background:linear-gradient(180deg,#ffd890,#f08830);box-shadow:0 0 16px var(--amber)}.galaxy-info{position:fixed;right:14px;top:62px;width:340px}.galaxy-help{position:fixed;left:14px;bottom:14px;font-size:12px;color:var(--dim)}.sys-label{position:fixed;transform:translate(-50%,14px);font-size:12px;color:#cfe;text-shadow:0 0 4px #000,0 0 8px #000;pointer-events:none;white-space:nowrap}.sys-label.locked{color:#887}.sys-label.here{color:var(--amber)}.sec-label{position:fixed;transform:translate(-50%,-50%);font-size:13px;letter-spacing:.3em;color:#c8dcf066;pointer-events:none;white-space:nowrap}.hud-ship{position:fixed;left:14px;bottom:14px;width:300px}.abil{position:fixed;left:50%;bottom:16px;transform:translate(-50%);display:flex;gap:8px}.ab{width:120px;padding:8px;background:var(--panel);border:1px solid var(--line);position:relative;overflow:hidden}.ab .nm{font-size:12px}.ab .who{font-size:10px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ab .key{position:absolute;right:6px;top:6px;font-family:var(--mono);font-size:11px;color:var(--teal)}.ab .cdv{position:absolute;left:0;bottom:0;height:3px;background:var(--teal)}.ab.off{opacity:.35}.ab.active{border-color:var(--amber)}.prompt{position:fixed;left:50%;top:62%;transform:translate(-50%);padding:8px 16px;background:#060c12d9;border:1px solid var(--line-strong);font-size:14px}.orbit-menu{position:fixed;right:14px;top:62px;width:360px}.alert-banner{position:fixed;top:70px;left:50%;transform:translate(-50%);padding:10px 26px;font-size:16px;letter-spacing:.3em;color:#ffd0c0;border:1px solid var(--red);background:#3c0a0899;animation:blink 1s infinite;pointer-events:none}@keyframes blink{50%{opacity:.55}}.minimap{position:fixed;right:14px;bottom:14px;width:190px;height:190px;border-radius:50%;overflow:hidden}.ground-top{position:fixed;top:54px;left:50%;transform:translate(-50%);text-align:center;pointer-events:none}.ground-top .obj{font-size:13px;color:#cfe0ea;padding:6px 16px;background:#04080c99;border:1px solid var(--line)}.ground-top .turn{font-size:12px;letter-spacing:.3em;color:var(--amber);margin-bottom:6px}.ground-actions{position:fixed;right:14px;bottom:196px;display:flex;flex-direction:column;gap:6px;align-items:flex-end}.tip{position:fixed;padding:6px 10px;background:#04080ceb;border:1px solid var(--line-strong);font-size:12px;pointer-events:none;z-index:40;white-space:nowrap;transform:translate(14px,14px)}.tip b{font-family:var(--mono);color:var(--amber);font-size:15px}.unitlabel{position:fixed;transform:translate(-50%,-100%);font-size:11px;pointer-events:none;text-align:center;text-shadow:0 0 4px #000}.unitlabel .hpb{width:46px;height:4px;background:#0009;margin:2px auto 0;position:relative}.unitlabel .hpb i{position:absolute;left:0;top:0;bottom:0;background:var(--red)}.unitlabel.crew .hpb i{background:var(--good)}.modal-bg{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:50}.modal{width:min(560px,92vw)}.modal .body{font-size:14px;line-height:1.9;white-space:pre-line}.modal .acts{display:flex;gap:8px;justify-content:flex-end;padding:0 16px 14px;flex-wrap:wrap}.settings-row{display:grid;grid-template-columns:160px 1fr 50px;gap:10px;align-items:center;margin:8px 0;font-size:13px}input[type=range]{accent-color:var(--teal)}.loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;font-size:13px;letter-spacing:.4em;color:var(--dim)}.ending-credits{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;text-align:center;background:#0000008c;font-size:16px;line-height:2;white-space:pre-line}
