*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;background:#0b0f17;color:#e3e8ef;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overscroll-behavior:none;touch-action:manipulation}body{position:fixed;inset:0;overflow:hidden;user-select:none;-webkit-user-select:none}#app{position:absolute;inset:0;display:grid;grid-template-rows:auto 1fr auto;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}#hud{min-width:0;display:flex;justify-content:space-between;align-items:center;padding:6px 10px;gap:10px;background:#111723;border-bottom:1px solid #1f2937;min-height:44px}.hud-left,.hud-right{display:flex;align-items:center;gap:12px}.stat{display:flex;align-items:center;gap:6px}.lbl{font-size:10px;letter-spacing:.12em;color:#8b98a8;font-weight:700}.num{font-weight:800;font-variant-numeric:tabular-nums;font-size:14px}.bar{width:110px;height:12px;background:#1f2937;border-radius:3px;overflow:hidden}.bar .fill{height:100%;background:#66bb6a;width:100%;transition:width .2s}.bar .fill.low{background:#ef5350}.icon-btn{background:#1f2937;border:0;color:#e3e8ef;font-size:16px;width:36px;height:36px;border-radius:8px}.pause-btn{background:#ffd54f;color:#111;border:0;font-weight:900;letter-spacing:.08em;padding:0 18px;height:36px;border-radius:8px;font-size:14px;min-width:96px}.pause-btn.on{background:#ef5350;color:#fff}#stage-wrap{position:relative;min-height:0;min-width:0;overflow:hidden}#stage{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}#power-panel{display:flex;align-items:stretch;gap:8px;padding:6px 8px;background:#111723;border-top:1px solid #1f2937;overflow-x:auto}.reactor{display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px 6px;border-right:1px solid #1f2937}.rbars{display:flex;gap:3px;flex-wrap:wrap;max-width:90px;justify-content:center}.rbars i{display:block;width:10px;height:18px;background:#2a3444;border-radius:2px;border:1px solid #3b4351}.rbars i.used{background:#ffd54f;border-color:#ffd54f}.systems{display:flex;gap:6px}.sysbtn{display:flex;flex-direction:column;align-items:center;gap:3px;background:#182031;border:1px solid #263042;border-radius:10px;padding:4px 6px;min-width:58px;color:inherit}.sysbtn .name{font-size:10px;font-weight:800;letter-spacing:.06em;display:flex;align-items:center;gap:4px}.sysbtn .glyph{font-style:normal;font-weight:900;font-size:12px}.sysbtn .pips{display:flex;flex-direction:column-reverse;gap:2px}.sysbtn .pips i{display:block;width:38px;height:15px;background:#2a3444;border-radius:3px}.sysbtn .pips i.on{background:#ffd54f}.sysbtn .pips i.dmg{background:#ef5350}.sysbtn .pips i.ion{background:#4fc3f7}.sysbtn.piloting .pips i.on{background:#8bc34a}.sysbtn .sub{font-size:11px;color:#8b98a8;min-height:13px}.weapons{display:flex;gap:6px;margin-left:auto}#weapons:has(>:nth-child(3)){display:grid;grid-template-columns:1fr 1fr;gap:4px;align-content:start}#weapons:has(>:nth-child(3)) .wbtn{min-width:84px;padding:3px 6px;gap:2px}.wbtn{display:flex;flex-direction:column;gap:3px;background:#182031;border:1px solid #263042;border-radius:10px;padding:5px 8px;min-width:96px;color:inherit;text-align:left}.wbtn .name{font-size:11px;font-weight:800}.wbtn .charge{height:8px;background:#2a3444;border-radius:2px;overflow:hidden}.wbtn .charge b{display:block;height:100%;background:#ef5350;width:0}.wbtn .charge b.ready{background:#66bb6a}.wbtn.off{opacity:.45}.wbtn.manual{opacity:.7;border-color:#ef5350;border-style:dashed}.wbtn.manual .name:after{content:" · OFF";color:#ef5350}.wbtn .sub{font-size:11px;color:#8b98a8}.tip{position:absolute;left:50%;transform:translate(-50%);bottom:10px;z-index:3;background:#ffd54f;color:#111;font-weight:700;padding:8px 14px;border-radius:10px;font-size:14px;box-shadow:0 4px 20px #00000080;pointer-events:none;max-width:90vw;text-align:center}.hidden{display:none!important}.overlay{position:absolute;inset:0;background:#05080edb;display:flex;align-items:center;justify-content:center;padding:20px;z-index:10}.card{background:#111723;border:1px solid #263042;border-radius:16px;padding:22px;max-width:440px;width:100%;max-height:100%;overflow-y:auto}.card h1{margin:0 0 6px;font-size:26px;letter-spacing:.04em}.card h2{margin:0 0 10px;font-size:18px}.card p{margin:8px 0;line-height:1.4;color:#c3ccd8}.card .muted{color:#8b98a8;font-size:13px}.card ul{padding-left:18px;margin:8px 0}.card li{margin:4px 0}.btn{display:inline-block;background:#ffd54f;color:#111;border:0;font-weight:900;letter-spacing:.06em;padding:12px 20px;border-radius:10px;font-size:15px;margin-top:12px;cursor:pointer}.btn.secondary{background:#263042;color:#e3e8ef}.dead{color:#ef5350;font-weight:700}.alive{color:#66bb6a;font-weight:700}@media (max-width: 480px){.bar{width:70px}.pause-btn{min-width:76px;padding:0 10px}.wbtn{min-width:84px}.sysbtn{min-width:50px}.sysbtn .pips i{width:32px}}@media (max-width: 900px) and (orientation: landscape){.sysbtn{min-width:50px;padding:4px 3px}.sysbtn .pips i{width:32px}.sysbtn .name{font-size:10px;letter-spacing:.03em}.wbtn{min-width:84px}.rbars{max-width:70px}#power-panel{gap:6px;padding:5px 6px}}@media (orientation: portrait){#power-panel{flex-wrap:wrap;overflow-x:hidden;row-gap:6px}.reactor{border-right:0;flex-direction:row;gap:8px}.rbars{max-width:none}.systems{flex:1 1 auto;justify-content:space-between;gap:4px;min-width:0}.weapons{margin-left:0;width:100%;justify-content:space-between;flex-wrap:wrap}.wbtn{flex:1 1 40%;min-width:0}.sysbtn{flex:1 1 0;min-width:0;padding:4px 2px;overflow:hidden}.sysbtn .name{font-size:10px;letter-spacing:.02em}.sysbtn .pips i{width:30px}}.screen{position:absolute;inset:0;display:grid;grid-template-rows:auto 1fr auto;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}#screen-title{place-items:center;grid-template-rows:1fr;background:radial-gradient(ellipse at 50% 30%,#182031,#0b0f17 70%)}.title-wrap{text-align:center;padding:24px;max-width:420px}.logo{font-size:clamp(56px,14vw,96px);line-height:.9;letter-spacing:.04em;margin:0 0 14px;color:#ffd54f;font-weight:900;text-shadow:0 6px 0 #6b4f00}.tag{color:#c3ccd8;font-size:16px;margin:0 0 22px}.title-btns{display:flex;flex-direction:column;gap:10px;align-items:center}.title-btns .btn{min-width:220px;margin:0}.btn.daily{background:#12283a;color:#bfe9ff;border:2px solid #4fc3f7}.btn.daily.done{background:#1a2a1f;color:#7ef0b0;border-color:#66bb6a}.linkbtn{background:none;border:0;color:#8b98a8;text-decoration:underline;font-size:13px;cursor:pointer;padding:4px}.lastrun{background:#111723;border:1px solid #263042;border-radius:12px;padding:10px 14px;margin:12px auto 0;max-width:420px;text-align:left;font-size:13px;line-height:1.4}.lastrun b{color:#ffd54f}.board{width:100%;border-collapse:collapse;font-size:14px;margin:8px 0}.board td{padding:5px 6px;border-bottom:1px solid #1f2937}.board tr.you td{color:#ffd54f;font-weight:800}.board td.r{text-align:right}.ach{display:flex;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid #1f2937;font-size:14px}.ach .dot{width:14px;height:14px;border-radius:50%;background:#263042;flex:none}.ach.done .dot{background:#66bb6a}.ach.done{color:#e3e8ef}.ach{color:#8b98a8}.evart{display:block;width:calc(100% + 44px);margin:-22px -22px 14px;border-radius:16px 16px 0 0;aspect-ratio:3/2;object-fit:cover;background:#0b0f17}.shipimg{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:8px;background:#0b0f17;margin-bottom:4px}.crewpic{width:22px;height:22px;border-radius:50%;object-fit:cover;vertical-align:middle;margin-right:6px;border:2px solid #263042;background:#0b0f17}.card ul{list-style:none;padding:0}.card li{padding:3px 0}body.has-hero #screen-title{background:radial-gradient(ellipse at center,#0b0f178c,#0b0f17f2 70%),url(art/hero_title.jpg) center / cover no-repeat #0b0f17}@keyframes readypulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.6)}}.wbtn .charge b.ready{animation:readypulse .9s ease-in-out infinite}@keyframes hullblink{0%,to{color:#ef5350}50%{color:#fff}}#hull-num.low{animation:hullblink .8s infinite}.sharecard{max-height:34vh;object-fit:contain;width:100%;border-radius:10px;border:1px solid #263042;margin:8px 0;display:block}.share-row{display:flex;gap:8px;flex-wrap:wrap;position:sticky;bottom:-22px;background:#111723;padding:10px 0 22px;margin-bottom:-22px}.share-row .btn{flex:1 1 auto}.small{font-size:12px}.muted{color:#8b98a8}.topbar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#111723;border-bottom:1px solid #1f2937;gap:8px;flex-wrap:wrap;font-size:14px}.topbar b{font-variant-numeric:tabular-nums}.tb-right{display:flex;gap:8px;align-items:center}.icon-btn.small{width:30px;height:30px;font-size:14px}#map-wrap{position:relative;min-height:0;padding:6px}#map-svg{width:100%;height:100%;display:block}.map-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;background:#111723;border-top:1px solid #1f2937;font-size:13px;color:#c3ccd8}.btn.small{padding:8px 12px;font-size:13px;margin:0}.beacon{cursor:pointer}.beacon circle.core{fill:#3b4351;stroke:#8b98a8;stroke-width:2}.beacon.visited circle.core{fill:#1f2937;stroke:#4b5563}.beacon.here circle.core{fill:#ffd54f;stroke:#fff}.beacon.reach circle.core{stroke:#ffd54f;stroke-width:3}.beacon.reach circle.ring{animation:pulse 1.2s infinite}.beacon.exit circle.core{stroke:#66bb6a;stroke-width:3}.beacon.fleet circle.core{fill:#4a1d1d;stroke:#ef5350}.beacon text{fill:#e3e8ef;font-size:15px;font-weight:800;text-anchor:middle;dominant-baseline:central;pointer-events:none}.beacon.exit text{fill:#66bb6a}.link{stroke:#2a3444;stroke-width:2}.link.reach{stroke:#ffd54f;stroke-width:3;opacity:.8}@keyframes pulse{0%{r:14;opacity:.8}to{r:26;opacity:0}}.escape-btn{background:#263042;color:#8b98a8;border:0;font-weight:800;height:36px;padding:0 12px;border-radius:8px;font-size:12px;min-width:84px}.escape-btn.ready{background:#66bb6a;color:#0b0f17}.choice{display:block;width:100%;text-align:left;background:#182031;border:1px solid #263042;color:#e3e8ef;border-radius:10px;padding:12px 14px;margin:8px 0;font-size:15px;line-height:1.3;cursor:pointer}.choice.blue{border-color:#4fc3f7;background:#12283a;color:#bfe9ff}.choice:disabled{opacity:.45}.notes{color:#ffd54f;font-weight:700}.store-head{position:sticky;top:-22px;margin:-22px -22px 0;padding:14px 22px 6px;background:#111723;z-index:3}.how{padding-left:18px;font-size:14px;line-height:1.4}.how li{margin:6px 0}.store-msg{position:sticky;top:28px;margin:0 -22px;padding:6px 22px;background:#111723;z-index:2;min-height:18px}.row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #1f2937}.row .btn{margin:0;padding:8px 12px;font-size:13px}.row .btn:disabled{opacity:.4}.card h3{margin:14px 0 4px;font-size:13px;letter-spacing:.1em;color:#8b98a8}.card .price{color:#ffd54f;font-weight:800;min-width:44px;text-align:right}.card .sectorpick{margin-top:10px}@media (max-width: 480px){#hud{padding:6px 5px;gap:4px}.hud-left,.hud-right{gap:4px}.bar{display:none}.escape-btn{min-width:56px;padding:0 6px;font-size:11px}.pause-btn{width:76px;min-width:76px;padding:0;font-size:12px}.icon-btn{width:30px}.bar{width:52px}.stat .lbl{font-size:9px}}.ship-select{display:flex;gap:8px;justify-content:center;margin:0 0 16px;flex-wrap:wrap}.shipcard{background:#182031;border:2px solid #263042;color:#e3e8ef;border-radius:12px;padding:10px 12px;width:150px;text-align:left;display:flex;flex-direction:column;gap:4px;font-size:12px;cursor:pointer}.shipcard b{font-size:14px}.shipcard.sel{border-color:#ffd54f;background:#2a2a1a}.shipcard.locked{opacity:.55}.toast{position:absolute;top:12px;left:50%;transform:translate(-50%);background:#66bb6a;color:#0b0f17;font-weight:700;padding:10px 16px;border-radius:10px;z-index:20;max-width:90vw;font-size:14px;box-shadow:0 4px 20px #00000080;pointer-events:none}#o2-num.low{color:#ce93d8}@media (max-width: 480px){.shipcard{width:100%}.title-wrap{padding:12px}.logo,.ship-select{margin-bottom:8px}}#screen-title{overflow-y:auto;align-content:start;place-items:start center}.title-wrap{padding:16px 16px 24px;max-width:560px}.logo{font-size:clamp(40px,9vw,72px)}@media (max-height: 480px){.logo{font-size:34px;line-height:.95;margin-bottom:6px}.tag{font-size:13px;margin-bottom:8px}.ship-select{margin-bottom:8px}.shipcard{width:160px;padding:6px 8px;font-size:11px}.shipcard:not(.locked) .small{display:none}.shipcard.locked .small{font-size:10px}.shipimg{display:none}.card.with-art{display:grid;grid-template-columns:220px 1fr;column-gap:18px;max-width:760px;align-content:start}.card.with-art>*{grid-column:2;min-width:0}.card.with-art>.evart{grid-column:1;grid-row:1 / span 30;width:calc(100% + 22px);height:calc(100% + 44px);margin:-22px 0 -22px -22px;border-radius:16px 0 0 16px;aspect-ratio:auto;align-self:stretch}.card.with-art .choice{margin:6px 0;padding:9px 12px;font-size:14px}.card.with-art p{margin:4px 0 8px}.title-btns .btn{padding:8px 16px;font-size:14px;margin-top:0}#title-foot{margin:6px 0 0}}#btn-drift{white-space:nowrap}.lbl .narrow{display:none}@media (max-width: 600px){.lbl .wide{display:none}.lbl .narrow{display:inline}}.store-head{display:flex;align-items:center;gap:10px}.store-head .muted{margin-left:auto}.store-head .btn.small{margin:0;padding:6px 12px}.store-head{flex-wrap:wrap}.store-msg{position:static;flex-basis:100%;margin:0;padding:2px 0 0;font-size:14px;min-height:0}.store-msg:empty{display:none}.card .warn{color:#ffb74d}.row .muted.small{line-height:1.25}@media (max-height: 480px){.shipcard.sel .small{display:block}.lastrun{padding:6px 10px;margin-top:6px;font-size:12px}.card.store{max-width:760px}.card.store .rows{display:grid;grid-template-columns:1fr 1fr;column-gap:18px;align-items:start}.card.store .rows h3{grid-column:1 / -1;margin:8px 0 0}.card.store .row{padding:5px 0}.card.store .share-row{display:none}}@media (hover: hover) and (pointer: fine){.btn:hover:not(:disabled),.choice:hover:not(:disabled),.sysbtn:hover,.wbtn:hover,.shipcard:hover{filter:brightness(1.18)}.beacon.reach:hover circle.core{fill:#4b5563}.sysbtn,.wbtn,#btn-pause,#btn-escape,.shipcard{cursor:pointer}.beacon:not(.reach){cursor:default}}@media (min-width: 900px) and (min-height: 481px){.card.store{max-width:760px}.card.store .rows{display:grid;grid-template-columns:1fr 1fr;column-gap:18px;align-items:start}.card.store .rows h3{grid-column:1 / -1;margin:8px 0 0}.card.store .row{padding:5px 0}.toast{top:auto;bottom:18px}}#map-fuel.low,#map-hull.low{color:#ef5350;animation:hullblink 1.2s infinite}#map-hint.warn{color:#ffb74d}.beacon.store-pulse .core{animation:storepulse 1.4s infinite}@keyframes storepulse{0%,to{stroke-width:3}50%{stroke-width:6}}
