:root{--bg: #14110e;--panel: #1c1814;--ink: #e8e0d4;--muted: #a89880;--accent: #c45c26;--line: #3a3228;--shield: #6ec6ff;--hull: #d45c4a;--boost: #c9a227;color:var(--ink);background:radial-gradient(1200px 700px at 50% -10%,#2a2218 0%,var(--bg) 55%);font-family:IBM Plex Sans,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px}html.touch-play,html.touch-play body{overflow:hidden;overscroll-behavior:none;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}html.touch-play #app{overflow:hidden;height:100dvh;max-height:100dvh;padding:max(.65rem,env(safe-area-inset-top)) max(.65rem,env(safe-area-inset-right)) max(.65rem,env(safe-area-inset-bottom)) max(.65rem,env(safe-area-inset-left))}html.touch-play .help,html.touch-play .inventory{display:none}html.touch-play #game-shell{touch-action:none;-webkit-user-select:none;user-select:none;min-height:0}#app{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto;gap:.65rem;max-width:1200px;height:100dvh;margin:0 auto;padding:1rem 1.15rem 1.25rem}.hud{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.progression{display:flex;align-items:center;gap:.65rem;flex:1;min-width:200px;max-width:520px}.level-badge{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.85rem;font-weight:600;color:var(--boost);letter-spacing:.06em;white-space:nowrap}.xp-bar{position:relative;flex:1;height:.55rem;background:var(--line);border-radius:2px;overflow:hidden;min-width:80px}.xp-bar:before{content:"";display:block;height:100%;width:var(--xp, 0%);background:linear-gradient(90deg,#6a8a4a,var(--boost));transition:width .15s ease-out}.xp-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.62rem;color:var(--ink);text-shadow:0 0 4px var(--bg);pointer-events:none}.score{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.85rem;color:var(--ink);white-space:nowrap}.score:before{content:"SC ";color:var(--muted)}.streak{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.78rem;color:var(--accent);white-space:nowrap}.hud h1,.hud p,.help,.inventory,.message{margin:0}.hud h1{font-family:IBM Plex Mono,SF Mono,ui-monospace,monospace;font-size:clamp(1.35rem,3vw,2rem);letter-spacing:.04em;text-transform:uppercase}#band{color:var(--accent);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.95rem}#band[data-danger="1"]{color:#8a9a6a}#band[data-danger="2"]{color:#c45c26}#band[data-danger="3"]{color:#e04830}.help,.inventory{color:var(--muted);font-size:.92rem}#game-shell{position:relative;min-height:min(70vh,760px);height:100%;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;border:1px solid var(--line);background:linear-gradient(180deg,#1a1612,#0f0d0b)}#game{display:block;position:absolute;inset:0;width:100%;height:100%;touch-action:none}.altitude-tape{position:absolute;top:1rem;right:.85rem;width:18px;height:min(48%,280px);border:1px solid var(--line);background:#00000059;pointer-events:none}.altitude-tape .altitude-fill{position:absolute;left:0;right:0;bottom:var(--alt, 20%);height:4px;background:var(--accent);box-shadow:0 0 8px #c45c268c;transform:translateY(50%)}.altitude-tape span{position:absolute;right:22px;font-size:.65rem;color:var(--muted);font-family:IBM Plex Mono,ui-monospace,monospace}.altitude-tape .nap{bottom:8%}.altitude-tape .combat{bottom:42%}.altitude-tape .high{bottom:78%}.vitals{position:absolute;left:.85rem;bottom:.85rem;display:grid;gap:.35rem;width:min(42%,220px);pointer-events:none}.bar{position:relative;height:12px;background:#00000073;border:1px solid var(--line)}.bar:after{content:"";position:absolute;inset:0;width:var(--v, 0%);background:var(--shield)}.bar.hull:after{background:var(--hull)}.bar.armor:after{background:#8a7a6a}.bar.boost:after{background:var(--boost)}.bar span{position:absolute;left:.35rem;top:-.05rem;font-size:.62rem;letter-spacing:.08em;z-index:1}.jammer-indicator{position:absolute;left:50%;top:3.2rem;transform:translate(-50%);padding:.25rem .55rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem;letter-spacing:.12em;color:#6ec6ff;background:#141e28bf;border:1px solid rgb(110 198 255 / 45%);animation:jammer-pulse 1.2s ease-in-out infinite;pointer-events:none;z-index:2}.jammer-indicator[hidden]{display:none}@keyframes jammer-pulse{0%,to{opacity:.65}50%{opacity:1}}.hit-vignette{position:absolute;inset:0;pointer-events:none;opacity:0;z-index:1;background:conic-gradient(from var(--bearing, 0deg) at 50% 50%,rgb(212 92 74 / 55%) 0deg 70deg,transparent 70deg 360deg);mix-blend-mode:multiply;transition:opacity .05s linear}.hit-vignette[data-active]{opacity:var(--intensity, .5)}.message{position:absolute;left:50%;top:.85rem;transform:translate(-50%);max-width:min(80%,520px);padding:.35rem .7rem;background:#14110eb8;border:1px solid var(--line);color:var(--ink);font-size:.88rem;text-align:center;pointer-events:none}.status{position:absolute;inset:0;display:grid;place-items:center;padding:2rem;background:#0e0c0ac7;color:#fff;font-size:1.1rem;font-weight:650;text-align:center}.status[hidden]{display:none}.carrier-bay{position:absolute;top:.6rem;left:.6rem;z-index:3;width:min(340px,calc(100% - 1.2rem));max-height:calc(100% - 1.2rem);overflow:auto;color:var(--ink);font-size:.8rem;background:#14110eeb;border:1px solid var(--line);padding:.55rem .65rem .7rem}.carrier-bay[hidden]{display:none}.carrier-bay header{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.45rem;font-family:IBM Plex Mono,ui-monospace,monospace}.bay-section{margin-top:.55rem}.bay-section h3{margin:0 0 .3rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.chip-row{display:flex;flex-wrap:wrap;gap:.3rem}.chip,.recipe-row button,.launch-btn{appearance:none;border:1px solid var(--line);background:#241f1a;color:var(--ink);font:inherit;font-size:.72rem;padding:.35rem .45rem;cursor:pointer}.chip[data-selected=true]{border-color:var(--accent);color:#fff}.chip:disabled,.recipe-row button:disabled,.launch-btn:disabled{opacity:.45;cursor:not-allowed}.recipe-list{display:grid;gap:.35rem}.recipe-row{display:grid;grid-template-columns:1fr auto;gap:.4rem;align-items:center;padding:.3rem 0;border-top:1px solid rgb(58 50 40 / 70%)}.recipe-row strong,.recipe-row span,.recipe-row em{display:block}.recipe-row span,.recipe-row em{color:var(--muted);font-style:normal;font-size:.68rem}.bay-actions{display:grid;gap:.35rem}.launch-btn{background:var(--accent);border-color:#8a3c14;color:#fff;font-weight:650;padding:.55rem .6rem}.bay-actions .inline{display:flex;align-items:center;gap:.35rem;color:var(--muted)}.bay-msg{margin:.45rem 0 0;color:var(--muted)}.ship-status{font-size:.72rem;line-height:1.35}.ship-status h4{margin:.4rem 0 .15rem;font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.ship-status ul{margin:0;padding:0 0 0 .9rem}.ship-status li span,.ship-status .muted,.ship-status .status-banked,.ship-status .status-trail{color:var(--muted)}.ship-status .status-row strong,.ship-status .status-row span,.ship-status .status-row em{display:block}.ship-status .status-row em{color:var(--muted);font-style:normal;font-size:.68rem}.pause-status{position:absolute;top:50%;left:50%;z-index:4;width:min(380px,calc(100% - 1.5rem));max-height:min(78%,520px);overflow:auto;transform:translate(-50%,-50%);color:var(--ink);font-size:.8rem;background:#14110ef0;border:1px solid var(--line);padding:.7rem .8rem .85rem;box-shadow:0 12px 40px #00000073}.pause-status[hidden]{display:none}.pause-status header{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.45rem;font-family:IBM Plex Mono,ui-monospace,monospace}.pause-hint{color:var(--muted);font-size:.7rem}.pause-zone{margin-bottom:.45rem;padding-bottom:.4rem;border-bottom:1px solid rgb(58 50 40 / 70%)}.pause-zone span,.pause-zone em{display:block}.pause-zone em{color:var(--muted);font-style:normal;font-size:.7rem}.pause-zone span[data-danger="1"]{color:#8a9a6a}.pause-zone span[data-danger="2"]{color:#c45c26}.pause-zone span[data-danger="3"]{color:#e04830}.bar.extract:after{background:#7dba6a}.touch-controls{position:absolute;inset:0;pointer-events:none;touch-action:none;z-index:2}.touch-controls[hidden]{display:none}.touch-controls .stick{pointer-events:auto;touch-action:none;position:absolute;bottom:max(1.2rem,env(safe-area-inset-bottom));width:128px;height:128px;border:2px solid rgb(196 92 38 / 65%);border-radius:999px;background:#00000059}.touch-controls .stick.move{left:max(1rem,env(safe-area-inset-left))}.touch-controls .stick.aim{right:max(1rem,env(safe-area-inset-right))}.touch-buttons{pointer-events:auto;position:absolute;right:1rem;bottom:9rem;display:grid;grid-template-columns:repeat(2,minmax(64px,1fr));gap:.35rem}.touch-buttons button{appearance:none;border:1px solid var(--line);background:#1c1814d9;color:var(--ink);padding:.45rem .35rem;font:inherit;font-size:.75rem;touch-action:none;min-height:44px;min-width:44px}@media(max-width:768px),(pointer:coarse){.touch-controls .stick{width:140px;height:140px}.touch-controls .stick.move:after,.touch-controls .stick.aim:after{content:attr(aria-label);position:absolute;inset:auto 0 -1.35rem;text-align:center;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:#e8e0d4b8;pointer-events:none}.touch-buttons{bottom:8.5rem;grid-template-columns:repeat(2,minmax(72px,1fr));gap:.45rem}.touch-buttons button{font-size:.8rem;padding:.55rem .4rem}}@media(max-width:640px){#app{padding:.65rem}#game-shell{min-height:64vh}.help{font-size:.8rem}}.skill-pick[hidden]{display:none!important}.skill-pick{pointer-events:auto;position:fixed;inset:0;z-index:2147483000;display:grid;place-items:start center;padding:max(.75rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) max(.75rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left));background:#0a0806f0;touch-action:manipulation;overflow-y:auto;-webkit-overflow-scrolling:touch}.skill-pick-panel,.skill-pick-choices,.skill-install-btn,.skill-pick-skip{pointer-events:auto;touch-action:manipulation}.skill-pick-panel{width:min(920px,100%);display:grid;gap:.85rem;padding-bottom:.5rem}.skill-pick-header{text-align:center;color:var(--ink)}.skill-pick-header strong{display:block;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:1.1rem;letter-spacing:.06em;text-transform:uppercase;color:var(--boost)}.skill-pick-hint{display:block;color:var(--muted);font-size:.88rem;margin:.35rem 0 .65rem;line-height:1.35}.skill-pick-choices{display:grid;gap:.65rem;width:100%;margin-top:.5rem}.skill-install-btn{appearance:none;-webkit-appearance:none;display:block;width:100%;min-height:56px;padding:.85rem 1rem;border:2px solid var(--accent);background:#c45c2666;color:var(--ink);font:inherit;font-size:1.05rem;font-weight:600;line-height:1.25;text-align:center;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:rgb(196 92 38 / 45%)}.skill-install-btn:active{transform:scale(.98);background:#c45c268c}.skill-pick-skip{appearance:none;-webkit-appearance:none;margin:.75rem auto 0;display:block;width:100%;max-width:420px;padding:.65rem .85rem;border:1px solid var(--line);background:#1c1814cc;color:var(--ink);font:inherit;font-size:.92rem;min-height:48px;cursor:pointer;touch-action:manipulation}.skill-pick-skip:active{color:var(--ink);border-color:var(--muted)}.skill-pick-error{margin:0;text-align:center;color:var(--muted);font-size:.85rem}.skill-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.skill-action{appearance:none;border:1px solid var(--line);background:#1c1814eb;color:var(--ink);font:inherit;font-size:.85rem;padding:.55rem .85rem;min-height:44px;cursor:pointer;touch-action:manipulation}.skill-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;width:100%}.skill-card{text-align:left;border:2px solid var(--branch, var(--line));background:#1c1814eb;color:var(--ink);padding:.85rem .9rem .75rem;touch-action:manipulation;width:100%}.skill-card.keystone{box-shadow:0 0 0 1px #c45c2659}.skill-banish-btn{appearance:none;display:block;margin-top:.55rem;padding:.45rem .65rem;font:inherit;font-size:.78rem;color:var(--muted);border:1px solid var(--line);background:transparent;cursor:pointer;touch-action:manipulation;min-height:40px;width:100%}.skill-banish-btn:active{color:#e04830;border-color:#e04830}@media(max-width:1024px),(pointer:coarse),(hover:none){.skill-pick{padding-top:max(1rem,env(safe-area-inset-top))}.skill-cards{display:none}.skill-install-btn{min-height:58px;font-size:1.08rem}}.skill-key{display:inline-block;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem;color:var(--branch, var(--accent));border:1px solid currentColor;padding:.1rem .35rem;margin-bottom:.35rem}.skill-card strong{display:block;font-size:1rem;margin-bottom:.2rem}.skill-card em{display:block;font-style:normal;font-size:.68rem;color:var(--muted);margin-bottom:.45rem}.skill-card p{margin:0;font-size:.82rem;color:var(--muted);line-height:1.35}.status-last-run{margin:.35rem 0 .65rem;padding:.45rem .55rem;background:#00000040;border-left:3px solid var(--accent);font-size:.82rem;color:var(--muted)}.combo-meter{position:relative;display:flex;align-items:center;gap:.35rem}.combo-meter:before{content:"";position:absolute;inset:-4px -6px;border-radius:4px;border:2px solid transparent;opacity:0;pointer-events:none}.combo-meter[data-active=true]:before{opacity:1;border-color:#c45c268c;background:conic-gradient(rgb(196 92 38 / 35%) 0 var(--drain, 0%),transparent var(--drain, 0%) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.combo-tag{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.68rem;color:var(--accent);white-space:nowrap}.score-feed{position:absolute;top:.85rem;right:.85rem;width:min(200px,38%);display:grid;gap:.25rem;z-index:2;pointer-events:none}.feed-row{display:flex;justify-content:space-between;gap:.5rem;padding:.2rem .45rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.68rem;background:#0e0c0ac7;border:1px solid var(--line)}.feed-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.feed-points{color:var(--boost)}.feed-multi .feed-label,.feed-chain .feed-label{color:var(--accent)}.score-popups{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2}.score-popup{position:absolute;display:flex;flex-direction:column;align-items:center;font-family:IBM Plex Mono,ui-monospace,monospace;text-shadow:0 1px 4px rgb(0 0 0 / 80%)}.score-popup em{font-style:normal;font-size:.72rem;color:var(--accent);letter-spacing:.06em}.score-popup strong{font-size:.85rem;color:var(--boost)}.run-summary{position:fixed;inset:0;z-index:10002;display:grid;place-items:center;background:#0a0806e0;padding:max(.75rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) max(.75rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left));touch-action:manipulation}.run-summary[hidden]{display:none}.run-summary-panel{width:min(480px,100%);max-height:min(88%,640px);overflow:auto;background:var(--panel);border:1px solid var(--line);padding:1rem 1.1rem .85rem}.run-summary-panel header h2{margin:0;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:1.1rem;letter-spacing:.06em;text-transform:uppercase}.run-summary-sub{margin:.35rem 0 0;color:var(--muted);font-size:.88rem}.run-summary-tabs{display:flex;gap:.35rem;margin:.85rem 0 .65rem;flex-wrap:wrap}.summary-tab{appearance:none;border:1px solid var(--line);background:#00000040;color:var(--muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem;padding:.3rem .55rem;cursor:pointer}.summary-tab.active{color:var(--ink);border-color:var(--accent);background:#c45c2626}.run-summary-body{min-height:180px}.run-summary-panel footer,.run-summary-footer{margin-top:.75rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.65rem;color:var(--muted);font-size:.78rem}.run-summary-relaunch{appearance:none;border:1px solid var(--accent);background:#c45c262e;color:var(--ink);font:inherit;font-size:.95rem;padding:.65rem 1.2rem;min-height:44px;cursor:pointer;touch-action:manipulation}.run-summary-relaunch:active{transform:scale(.98)}.run-summary-hint-keyboard{color:var(--muted)}@media(max-width:768px),(pointer:coarse){.run-summary-relaunch{flex:1 1 100%;font-size:1rem}}.grade-badge{display:inline-grid;place-items:center;width:3rem;height:3rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:1.6rem;font-weight:700;border:2px solid var(--line);margin-bottom:.5rem}.grade-S{color:gold;border-color:gold}.grade-A{color:#6ec6ff;border-color:#6ec6ff}.grade-B{color:#8a9a6a;border-color:#8a9a6a}.grade-C{color:var(--accent);border-color:var(--accent)}.grade-D{color:var(--hull);border-color:var(--hull)}.summary-score{margin:0 0 .75rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:1.35rem}.breakdown-table{width:100%;border-collapse:collapse;font-size:.85rem}.breakdown-table td,.breakdown-table th{padding:.3rem .15rem;border-bottom:1px solid var(--line)}.breakdown-table td:last-child,.breakdown-table th:last-child{text-align:right;font-family:IBM Plex Mono,ui-monospace,monospace}.summary-stats{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin:0}.summary-stats div{padding:.45rem .5rem;background:#00000038;border:1px solid var(--line)}.summary-stats dt{margin:0;font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.summary-stats dd{margin:.15rem 0 0;font-family:IBM Plex Mono,ui-monospace,monospace}.summary-list{margin:0;padding-left:1.1rem;font-size:.88rem}.summary-empty,.summary-hint{color:var(--muted);font-size:.88rem}.skill-preview{display:grid;gap:.25rem}.skill-branch-row{display:flex;justify-content:space-between;gap:.5rem;font-size:.72rem}.incursion-banner{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);z-index:4;padding:.45rem 1rem;background:#b4281ee0;border:1px solid #ff6655;font-family:IBM Plex Mono,ui-monospace,monospace;font-weight:700;letter-spacing:.12em;pointer-events:none}.incursion-banner[hidden]{display:none}.leaderboard-panel{position:absolute;right:.6rem;bottom:.6rem;z-index:3;width:min(220px,calc(100% - 1.2rem));background:#14110eeb;border:1px solid var(--line);padding:.5rem .6rem;font-size:.72rem}.leaderboard-panel[hidden]{display:none}.lb-row{display:grid;grid-template-columns:1.5rem 1fr auto;gap:.35rem;align-items:center;padding:.15rem 0}.tier-scrap{color:#888}.tier-bronze{color:#cd7f32}.tier-silver{color:#aaa}.tier-gold{color:gold}.tier-velocity{color:#6ec6ff}
