.starship{max-width:1100px;margin:0 auto;padding:.6rem .7rem 3rem}.top{display:flex;align-items:center;gap:.6rem}.top .title{flex:1;text-align:center;font-size:1.1rem;margin:0}.top-controls{display:flex;gap:.4rem}.back{text-decoration:none;font-size:.9rem;white-space:nowrap}button.ghost{background:var(--panel);color:var(--text);padding:.4em .7em;font-size:.85rem;border:1px solid #2c3546}.battlefield{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:.7rem;margin-top:.7rem}@media (orientation: portrait) and (max-width: 719px){.battlefield{grid-template-columns:1fr}}.ship-panel{background:var(--panel);border-radius:14px;border:1px solid #2c3546;padding:.7rem .8rem}.ship-panel.enemy{border-color:#5b2b33;background:linear-gradient(180deg,#221a20,var(--panel))}.ship-panel.player{border-color:#23414d;background:linear-gradient(180deg,#16222a,var(--panel))}.panel-body{display:flex;flex-direction:column;gap:.55rem}.ship-head{display:flex;align-items:baseline;justify-content:space-between}.ship-name{font-weight:700;font-size:1.05rem}.ship-evasion{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}.stat-row{display:flex;align-items:center;gap:.5rem}.stat-label{width:3.6rem;font-size:.8rem;color:var(--muted)}.stat-num{font-size:.8rem;font-variant-numeric:tabular-nums;min-width:3rem;text-align:right}.bar{flex:1;height:14px;background:#0d1219;border-radius:7px;overflow:hidden;border:1px solid #2c3546}.bar-fill{height:100%;width:100%;background:linear-gradient(90deg,var(--accent-2),#4caf50);transition:width .2s ease}.bar-fill.low{background:linear-gradient(90deg,var(--danger),#c62828)}.bar.hull.flash-hull{animation:hullflash .3s}.bar.o2{height:10px}.o2-fill{background:linear-gradient(90deg,#4fc3f7,#b3e5fc)}.o2-fill.low{background:linear-gradient(90deg,var(--danger),#ff8a80);animation:o2blink .8s steps(2,start) infinite}@keyframes o2blink{50%{opacity:.55}}.shield-pips{display:flex;gap:5px;flex-wrap:wrap}.pip{width:15px;height:15px;border-radius:50%;border:2px solid #34506b;background:#0d1219}.pip.on{border-color:var(--accent);background:radial-gradient(circle,#bde9ff,var(--accent));box-shadow:0 0 6px #4fc3f7b3}.pip.charging{border-color:#34506b;background:var(--accent);opacity:calc(.25 + var(--charge, 0) * .5)}.target-label{font-size:.78rem;color:var(--danger);min-height:1em;font-weight:600}.deck-wrap{display:flex;justify-content:center;padding:.2rem 0}.deck{position:relative;background:#0a0f16;border-radius:10px;transition:box-shadow .4s ease}.deck.no-air{box-shadow:inset 0 0 26px #4f8cd28c;animation:gasp 1.6s ease-in-out infinite}@keyframes gasp{50%{box-shadow:inset 0 0 34px #4f8cd2cc}}.cell{position:absolute;box-sizing:border-box;border:1px solid #2c3546;border-radius:7px;background:#0f1622;display:grid;place-items:center;transition:border-color .12s ease,box-shadow .12s ease}.cell-empty{background:#0c121b;border-style:dashed;border-color:#232c3a}.cell-air{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:radial-gradient(circle at 50% 50%,#5a96dc59,#3c6ebebf);opacity:0;pointer-events:none;transition:opacity .25s ease}.cell-fire{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:radial-gradient(ellipse at 50% 100%,#ffd65af2,#ff6e1e99 55%,#b4280a00 80%);opacity:0;pointer-events:none;z-index:1}.cell.burning .cell-fire{animation:flicker .28s steps(2,end) infinite}.cell.burning{border-color:#ff7a1a}@keyframes flicker{50%{transform:translateY(1px) scaleY(.92)}}.cell-icon{font-size:1.35rem;opacity:.9;position:relative;z-index:1}.cell.manned{border-color:var(--accent);box-shadow:inset 0 0 9px #4fc3f74d}.cell.medbay-live{border-color:#66bb6a;box-shadow:inset 0 0 10px #66bb6a80}.cell.damaged{background:repeating-linear-gradient(45deg,#26141a,#26141a 4px,#0f1622 4px,#0f1622 8px);border-color:#5b2b33}.cell.disabled{opacity:.55}.cell.targetable{cursor:pointer}.cell.targetable:active{transform:scale(.95)}.cell.aiming{border-color:var(--danger);border-style:dashed}.cell.targeted{border-style:solid;border-color:var(--danger);box-shadow:0 0 0 1px var(--danger),0 0 10px #e5737373}.cell.flash-hull{animation:hullflash .3s}.cell.flash-shield{animation:shieldflash .3s}.cell.assignable{cursor:pointer;border-color:var(--accent-2);box-shadow:inset 0 0 0 1px #81c78480}.cell.boardable{cursor:pointer;border-style:dashed;border-color:var(--accent-2);box-shadow:inset 0 0 8px #81c78459}.cell-aim{position:absolute;bottom:1px;right:2px;display:flex;gap:1px}.door{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;pointer-events:none;z-index:3}.door.controllable{pointer-events:auto;cursor:pointer}.door-v{width:16px;height:26px}.door-h{width:26px;height:16px}.door-bar{background:var(--accent);border-radius:2px;opacity:.7;box-shadow:0 0 4px #4fc3f780;transition:background .12s ease,width .12s ease,height .12s ease}.door-v .door-bar{width:4px;height:15px}.door-h .door-bar{width:15px;height:4px}.door.closed .door-bar{background:#e07a7a;opacity:1;box-shadow:0 0 6px #e57373b3}.door.closed.door-v .door-bar{width:6px;height:22px}.door.closed.door-h .door-bar{width:22px;height:6px}.door.locked{cursor:default}.door.locked .door-bar{background:#566072;opacity:.35;box-shadow:none}.door.breaching.closed .door-bar{background:#ffce54;box-shadow:0 0 7px #ffce54f2;animation:doorshake .14s linear infinite}@keyframes doorshake{0%,to{transform:translate(-1px)}50%{transform:translate(1px)}}.airlock{position:absolute;transform:translate(-50%,-50%);width:18px;height:10px;display:grid;place-items:center;pointer-events:none;z-index:3}.airlock.controllable{pointer-events:auto;cursor:pointer}.airlock-mark{width:14px;height:5px;border-radius:2px;background:#46536a;border:1px solid #2c3546;transition:background .15s ease}.airlock.open .airlock-mark{background:#0a0f16;border-color:#7ea6d8;box-shadow:inset 0 0 3px #7ea6d8e6}.airlock.venting .airlock-mark{background:linear-gradient(#b3e5fc,#4fc3f7);animation:vent .5s linear infinite}.airlock-top.venting .airlock-mark{box-shadow:0 -6px 6px #b3e5fccc}.airlock-bottom.venting .airlock-mark{box-shadow:0 6px 6px #b3e5fccc}@keyframes vent{50%{opacity:.5}}.airlock.locked{cursor:default}.crew-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.crew-token{position:absolute;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#bde9ff,var(--accent));color:#04121b;font-size:.64rem;font-weight:700;display:grid;place-items:center;border:1px solid #04121b;box-shadow:0 0 5px #4fc3f7b3;transition:left .12s linear,top .12s linear;z-index:2}.crew-token.mine{pointer-events:auto;cursor:pointer}.crew-token.walking{opacity:.85}.crew-token.selected{outline:2px solid var(--accent-2);outline-offset:1px}.crew-token.repairing{background:radial-gradient(circle at 40% 35%,#ffe08a,#d4a72c);box-shadow:0 0 5px #d4a72ccc;animation:wrench .9s linear infinite}.crew-token.fighting{outline:2px solid var(--danger);outline-offset:1px}.crew-token.healing{background:radial-gradient(circle at 40% 35%,#c8f7c8,#66bb6a);box-shadow:0 0 6px #66bb6ae6;animation:heartbeat .9s ease-in-out infinite}@keyframes heartbeat{50%{box-shadow:0 0 10px #66bb6a}}.crew-token.choking{filter:saturate(.5) brightness(.85);opacity:.8}.crew-token.hostile{background:radial-gradient(circle at 40% 35%,#ff9d9d,var(--danger));box-shadow:0 0 6px #e57373d9;animation:intruder .8s ease-in-out infinite}@keyframes intruder{0%,to{box-shadow:0 0 5px #e57373b3}50%{box-shadow:0 0 10px #e57373}}.tok-label{line-height:1}.tok-hpbar{position:absolute;bottom:-5px;left:1px;right:1px;height:3px;border-radius:2px;background:#0d1219;overflow:hidden;display:none}.crew-token.hurt .tok-hpbar{display:block}.tok-hp{display:block;height:100%;background:var(--accent-2)}.crew-token.hostile .tok-hp{background:#ffce54}.sys-console{display:flex;flex-direction:column;gap:.35rem}.sys-row{display:flex;align-items:center;gap:.5rem;padding:.25rem .45rem;background:#0f1622;border:1px solid #2c3546;border-radius:8px}.sys-row.manned{border-color:var(--accent)}.sys-row.disabled{opacity:.55}.sys-icon{font-size:1rem;width:1.2rem;text-align:center}.sys-row .power-pips{flex:1}.door-cmd{padding:.2em .5em;font-size:.72rem;border-radius:6px;background:var(--panel);color:var(--text);border:1px solid #34506b;line-height:1.1}.door-cmd:active{background:var(--accent);color:#04121b}.power-pips{display:flex;gap:3px}.pp{width:9px;height:14px;border-radius:2px;background:#1a2430;border:1px solid #2c3546}.pp.on{background:var(--accent-2);border-color:var(--accent-2);box-shadow:0 0 4px #81c78499}.pp.dmg{background:repeating-linear-gradient(45deg,#4a2027,#4a2027 2px,#2c3546 2px,#2c3546 4px);border-color:#5b2b33}@keyframes wrench{0%,to{transform:rotate(-12deg)}50%{transform:rotate(12deg)}}.crew-roster{display:flex;flex-wrap:wrap;gap:.4rem}.crew-chip{display:flex;align-items:center;gap:.35rem;background:#0f1622;border:1px solid #2c3546;border-radius:10px;padding:.35rem .55rem;color:var(--text);font-size:.8rem;cursor:pointer}.crew-chip.selected{border-color:var(--accent-2);box-shadow:0 0 8px #81c78466}.crew-icon{font-size:1rem}.crew-name{font-weight:600}.crew-station{color:var(--muted);font-size:.72rem;font-variant-numeric:tabular-nums}.crew-chip.repairing .crew-station{color:#ffce54}.crew-chip.fighting{border-color:var(--danger)}.crew-chip.fighting .crew-station{color:var(--danger);font-weight:700}.room-ctrls{display:flex;gap:.3rem}.pw-btn{width:26px;height:26px;padding:0;border-radius:7px;background:var(--panel);color:var(--text);border:1px solid #34506b;font-size:1rem;line-height:1;display:grid;place-items:center}.pw-btn:active{background:var(--accent);color:#04121b}.reactor{display:flex;align-items:center;gap:.5rem}.reactor-label{font-size:.8rem;color:var(--muted);width:3.6rem}.reactor-pips{display:flex;gap:3px;flex:1;flex-wrap:wrap}.rp{width:10px;height:16px;border-radius:2px;background:#1a2430;border:1px solid #2c3546}.rp.free{background:#d4a72c;border-color:#d4a72c;box-shadow:0 0 5px #d4a72c99}.reactor-num{font-size:.75rem;color:var(--muted);white-space:nowrap}.weapons-heading{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:.1rem}.weapons-list{display:flex;flex-direction:column;gap:.4rem}.weapon{background:#0f1622;border:1px solid #2c3546;border-radius:10px;padding:.4rem .5rem;display:flex;flex-direction:column;gap:.35rem}.weapon.selectable{cursor:pointer}.weapon.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 10px #4fc3f766}.weapon.disarmed{opacity:.45}.weapon.inactive{border-color:#5b4a2b}.weapon.ready{border-color:var(--accent-2);box-shadow:0 0 8px #81c78459}.weapon-info{display:flex;align-items:center;gap:.45rem}.weapon-icon{font-size:1rem}.weapon-name{font-weight:600;font-size:.85rem;flex:1}.weapon-tag{font-size:.7rem;color:var(--muted);font-variant-numeric:tabular-nums}.weapon-target{font-size:.72rem;color:var(--accent);white-space:nowrap}.arm-btn{width:24px;height:24px;padding:0;border-radius:7px;background:var(--panel);color:var(--muted);border:1px solid #34506b;font-size:.85rem;line-height:1;display:grid;place-items:center;flex:0 0 auto}.arm-btn.on{color:var(--accent-2);border-color:var(--accent-2)}.aim-icon{font-size:.62rem;line-height:1}.charge{height:8px;background:#0d1219;border-radius:4px;overflow:hidden;border:1px solid #2c3546}.charge-fill{height:100%;width:0;background:linear-gradient(90deg,#d4a72c,#ffce54)}.weapon.ready .charge-fill{background:linear-gradient(90deg,var(--accent-2),#a5d6a7);box-shadow:0 0 8px #81c78499}.log-wrap{margin-top:.7rem}.log{list-style:none;margin:0;padding:.5rem .7rem;background:#0d1219;border:1px solid #2c3546;border-radius:10px;height:8.5rem;overflow-y:auto;font-size:.78rem;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;line-height:1.5}.log-line{color:var(--muted);white-space:pre-wrap}.log-line.friendly{color:var(--accent-2)}.log-line.hostile{color:var(--danger)}.fx-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:20}.proj{position:fixed;left:0;top:0}.proj-laser{width:18px;height:3px;border-radius:2px;background:#ff5a5a;box-shadow:0 0 8px #ff5a5a}.proj-missile{width:12px;height:5px;border-radius:3px;background:#ffce54;box-shadow:0 0 8px #ffb300}@keyframes hullflash{0%,to{filter:none}40%{filter:brightness(2.2) drop-shadow(0 0 6px #ff5a5a)}}@keyframes shieldflash{0%,to{filter:none}40%{filter:brightness(1.8) drop-shadow(0 0 6px var(--accent))}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#090c12e6;display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;gap:.8rem;z-index:30}.overlay.show{display:flex}.overlay p{max-width:30rem;color:var(--muted)}
