:root{--ink:#e6f4f1;--muted:#8fb3ad;--accent:#1fffc8;--bg:#050809;--panel:#060c0eb8;--font:"Chakra Petch", "Segoe UI", Roboto, system-ui, sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--font);margin:0;overflow:hidden}#game{cursor:crosshair;width:100%;height:100%;display:block;position:fixed;inset:0}#hud{pointer-events:none;opacity:0;z-index:5;transition:opacity .2s;position:fixed;inset:0}body.playing #hud{opacity:1}#crosshair{--gap:6px;transition:opacity .1s;position:absolute;top:50%;left:50%}#crosshair i{background:#ebfffaeb;position:absolute;box-shadow:0 0 0 1px #00000073}#crosshair .t,#crosshair .b{width:2px;height:8px;left:-1px}#crosshair .l,#crosshair .r{width:8px;height:2px;top:-1px}#crosshair .t{bottom:var(--gap)}#crosshair .b{top:var(--gap)}#crosshair .l{right:var(--gap)}#crosshair .r{left:var(--gap)}#crosshair b{background:#ebfffae6;width:2px;height:2px;position:absolute;top:-1px;left:-1px}#hitmarker{opacity:0;--c:#fff;--s:1;position:absolute;top:50%;left:50%}#hitmarker i{background:var(--c);width:2px;height:9px;position:absolute;top:-4.5px;left:-1px;box-shadow:0 0 3px #0009}#hitmarker i:first-child{transform:rotate(45deg) translateY(calc(-10px * var(--s)))}#hitmarker i:nth-child(2){transform:rotate(135deg) translateY(calc(-10px * var(--s)))}#hitmarker i:nth-child(3){transform:rotate(225deg) translateY(calc(-10px * var(--s)))}#hitmarker i:nth-child(4){transform:rotate(315deg) translateY(calc(-10px * var(--s)))}#ammo{text-shadow:0 1px 6px #000000b3;align-items:baseline;gap:8px;display:flex;position:absolute;bottom:28px;right:32px}#ammo-name{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-right:6px;font-size:12px}#ammo-count{font-variant-numeric:tabular-nums;font-size:40px;font-weight:700;line-height:1}#ammo-count.low{color:#ff8a5c}#ammo-reserve{color:var(--muted);font-size:16px}#reload{opacity:0;background:#ffffff26;width:90px;height:3px;margin-left:-45px;position:absolute;top:calc(50% + 40px);left:50%}#reload.on{opacity:1}#reload-bar{background:var(--accent);width:0;height:100%}#overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10;background:radial-gradient(#05080959,#050809d9);place-items:center;padding:16px;transition:opacity .25s;display:grid;position:fixed;inset:0;overflow-y:auto}#overlay.hidden{opacity:0;pointer-events:none}.panel{background:var(--panel);border:1px solid #1fffc838;border-radius:6px;width:min(460px,100%);padding:32px 32px 26px;box-shadow:0 20px 60px #0009,inset 0 0 40px #1fffc80a}.kicker{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:12px}h1{letter-spacing:.06em;text-transform:uppercase;text-shadow:0 0 24px #1fffc859;margin:0;font-size:clamp(40px,9vw,60px);font-weight:700;line-height:1}.sub{color:var(--muted);margin:10px 0 24px;font-size:14px}#start{width:100%;font:600 18px var(--font);letter-spacing:.18em;text-transform:uppercase;color:#021410;background:var(--accent);cursor:pointer;border:0;border-radius:4px;padding:14px;transition:transform .1s,box-shadow .2s;box-shadow:0 0 24px #1fffc859}#start:disabled{opacity:.6;cursor:progress}#start:hover{box-shadow:0 0 36px #1fffc899}#start:active{transform:scale(.98)}#start:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.controls{grid-template-columns:repeat(2,1fr);gap:8px 20px;margin:22px 0 0;font-size:13px;display:grid}.controls div{border-bottom:1px solid #8fb3ad26;justify-content:space-between;gap:8px;padding-bottom:4px;display:flex}.controls dt{color:var(--ink);font-weight:600}.controls dd{color:var(--muted);margin:0}#fatal{z-index:20;background:#3a0d0d;border:1px solid #ff6b6b;border-radius:4px;padding:12px 16px;position:fixed;inset:auto 16px 16px}.hint{color:var(--muted);margin:16px 0 0;font-size:12px;line-height:1.5}.settings{border-top:1px solid #8fb3ad33;margin-top:16px;padding-top:12px}.settings summary{cursor:pointer;letter-spacing:.12em;text-transform:uppercase;font-size:13px;font-weight:600}.settings label{color:var(--muted);grid-template-columns:1fr 1.3fr 3.2em;align-items:center;gap:10px;margin-top:12px;font-size:13px;display:grid}.settings label.check{gap:10px;display:flex}.settings output{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}.settings input[type=range]{width:100%;accent-color:var(--accent)}.settings input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}#damage{pointer-events:none;z-index:4;opacity:0;mix-blend-mode:normal;background:radial-gradient(#0000 45%,#8c060a8c 80%,#5a0004e6 100%);position:fixed;inset:0}#dmg-dir{position:absolute;top:50%;left:50%}#dmg-dir i{filter:drop-shadow(0 0 6px #ff1e14cc);opacity:0;border:4px solid #0000;border-top-color:#ff3228f2;border-radius:50%;width:140px;height:140px;position:absolute;top:-70px;left:-70px}#health{text-shadow:0 1px 6px #000000b3;align-items:center;gap:12px;display:flex;position:absolute;bottom:28px;left:32px}#health-num{font-variant-numeric:tabular-nums;text-align:right;min-width:2.2em;font-size:28px;font-weight:700}#health-track{background:#ffffff1f;border-radius:1px;width:180px;height:6px;position:relative;overflow:hidden}#health-bar,#health-trail{width:100%;position:absolute;top:0;bottom:0;left:0}#health-trail{z-index:0;background:#ff5a46b3}#health-bar{background:var(--ink);z-index:1}#health.low #health-num{color:#ff6a5a}#health.low #health-bar{background:#ff6a5a}#wave{text-shadow:0 1px 6px #000c;align-items:baseline;gap:14px;display:flex;position:absolute;top:22px;left:50%;transform:translate(-50%)}#wave-label{letter-spacing:.24em;text-transform:uppercase;color:var(--accent);font-size:13px;font-weight:600}#wave-info{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:13px}#banner{text-align:center;letter-spacing:.3em;text-transform:uppercase;color:var(--ink);text-shadow:0 0 28px #1fffc873,0 2px 8px #000c;opacity:0;font-size:48px;font-weight:700;position:absolute;top:26%;left:0;right:0}#banner.show{animation:3.4s ease-out forwards banner}#banner.cleared{color:var(--accent)}@keyframes banner{0%{opacity:0;letter-spacing:.6em}12%{opacity:1;letter-spacing:.3em}84%{opacity:1}to{opacity:0}}#prompt{text-align:center;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);text-shadow:0 1px 6px #000000e6;opacity:.9;font-size:15px;position:absolute;top:calc(50% + 70px);left:0;right:0}#prompt b{color:var(--accent)}#death{z-index:9;opacity:0;pointer-events:none;background:radial-gradient(#28000459,#050000e0);place-items:center;padding:16px;transition:opacity .9s;display:grid;position:fixed;inset:0}#death.show{opacity:1}.death-panel{text-align:center}.death-panel h2{letter-spacing:.12em;text-transform:uppercase;color:#ffd8d2;text-shadow:0 0 30px #ff281e80;margin:0;font-size:clamp(40px,8vw,72px)}#death-stats{color:var(--muted);letter-spacing:.08em;font-size:16px}.death-hint{letter-spacing:.16em;text-transform:uppercase;font-size:14px}.death-hint b{color:var(--accent)}#alt-mode,.ghost{width:100%;font:600 13px var(--font);letter-spacing:.18em;text-transform:uppercase;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #8fb3ad59;border-radius:4px;margin-top:10px;padding:10px}#alt-mode:hover,.ghost:hover{border-color:var(--accent);color:var(--accent)}#alt-mode:disabled{opacity:.5;cursor:progress}#alt-mode:focus-visible{outline:2px solid var(--ink);outline-offset:3px}#fade{opacity:0;pointer-events:none;z-index:8;background:#000;position:fixed;inset:0}#runmap{pointer-events:none;opacity:0;z-index:7;place-items:center;transition:opacity .12s;display:grid;position:fixed;inset:0}#runmap.show{opacity:1}.rm-panel{background:#04090adb;border:1px solid #1fffc840;border-radius:6px;max-height:96vh;padding:18px 22px 14px;box-shadow:0 20px 60px #0009}.rm-head{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:12px}.rm-chart{position:relative}.rm-chart svg{position:absolute;inset:0}.rm-chart line{stroke:#8fb3ad47;stroke-width:2px;stroke-dasharray:3 5}.rm-chart line.walked{stroke:var(--ink);stroke-dasharray:none}.rm-chart line.offered{stroke:var(--accent);stroke-dasharray:none}.rm-node,.rm-key{width:26px;height:26px;color:var(--muted);background:#0a1012;border:2px solid #8fb3ad8c;border-radius:50%;place-items:center;font-size:15px;font-weight:700;line-height:1;display:grid}.rm-node{position:absolute;transform:translate(-50%,-50%)}.rm-node.elite,.rm-key.elite{color:#ff6a4a;border-color:#ff6a4a}.rm-node.cache,.rm-key.cache{color:#ffd24a;border-color:#ffd24a;border-radius:5px}.rm-node.fabricator,.rm-key.fabricator{color:#6fc8ff;border-color:#6fc8ff;border-radius:5px}.rm-node.final,.rm-key.final{border-color:#c08cff;border-radius:4px;width:30px;height:30px;transform:translate(-50%,-50%)rotate(45deg)}.rm-key.final{transform:rotate(45deg)scale(.6)}.rm-node.visited{border-color:var(--ink);color:#06100e;background:#e6f4f1d9}.rm-node.current{background:var(--accent);border-color:var(--accent);color:#021410;box-shadow:0 0 0 5px #1fffc838,0 0 22px #1fffc8b3}.rm-node.option{border-color:var(--accent);box-shadow:0 0 0 4px #1fffc840}.rm-legend{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;font-size:11px;display:flex}.rm-key{border-width:1.5px;width:16px;height:16px;margin-left:10px;font-size:10px}.rm-key:first-child{margin-left:0}.rm-ev{background:#0b1412;border:1.5px solid;border-radius:50%;place-items:center;width:15px;height:15px;font-size:10px;line-height:1;display:inline-grid}.rm-node .rm-ev{position:absolute;top:-9px;right:-9px}.rm-node.final .rm-ev{transform:rotate(-45deg)}.rm-legend .rm-ev{margin-left:10px}.rm-legend .rm-ev:first-child{margin-left:0}.rm-ev.swarm{color:#ff9a4a}.rm-ev.mutation{color:#ff5ab0}.rm-ev.blackout{color:#b9c4c2}.rm-ev.clock{color:#ffe066}.rm-ev.armory{color:#9dffe0}#death.win{background:radial-gradient(#00282059,#000605e6)}#death.win h2{color:#d8fff5;text-shadow:0 0 30px #1fffc880}.menu{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:18px;width:100%;margin:auto;display:flex}.ghost[hidden]{display:none}.ghost:focus-visible{outline:2px solid var(--ink);outline-offset:3px}#wallet{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-shadow:0 1px 6px #000c;align-items:baseline;gap:18px;font-size:13px;display:flex;position:absolute;top:22px;right:32px}#wallet.off{display:none}#wallet b{color:var(--ink);font-variant-numeric:tabular-nums;margin-right:5px;font-size:18px}#wallet i{background:#ffb347;width:9px;height:9px;margin-right:7px;display:inline-block;transform:rotate(45deg);box-shadow:0 0 8px #ffb347b3}#wallet .w-salvage i{background:var(--accent);border-radius:50%;box-shadow:0 0 8px #1fffc8b3}#wallet-gain{color:#ffcf8a;opacity:0;white-space:nowrap;font-weight:600;position:absolute;top:26px;right:0}#wallet-gain.show{animation:1.4s ease-out forwards gain}@keyframes gain{0%{opacity:0;transform:translateY(6px)}15%{opacity:1;transform:none}70%{opacity:1}to{opacity:0;transform:translateY(-6px)}}#offer{flex-direction:column;align-items:center;gap:10px;display:none;position:absolute;bottom:96px;left:0;right:0}#offer.show{animation:.25s ease-out offer-in;display:flex}@keyframes offer-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.of-title,.of-hint{background:#04090ac7;border-radius:4px;padding:5px 14px}.of-title{letter-spacing:.24em;text-transform:uppercase;color:var(--accent);text-shadow:0 1px 6px #000000e6;font-size:13px;font-weight:600}.of-title span{color:var(--muted);margin-left:12px}.of-cards{justify-content:center;gap:12px;display:flex}.of-card{background:#04090ae0;border:1px solid #8fb3ad66;border-radius:6px;width:232px;padding:14px 16px 12px;position:relative;box-shadow:0 14px 40px #0000008c}.of-card.rare{border-color:#c08cff;box-shadow:0 14px 40px #0000008c,inset 0 0 26px #c08cff1f}.of-card.sold,.of-card.poor{opacity:.45}.of-key{background:var(--accent);color:#021410;border-radius:6px 0;place-items:center;width:26px;height:26px;font-size:15px;font-weight:700;display:grid;position:absolute;top:-1px;left:-1px}.of-card.rare .of-key{background:#c08cff}.of-tag{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-left:32px;font-size:10px}.of-card.rare .of-tag{color:#c08cff}.of-name{letter-spacing:.04em;margin-top:8px;font-size:18px;font-weight:700}.of-text{color:#bcd6d1;min-height:2.8em;margin-top:4px;font-size:13px;line-height:1.4}.of-foot{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);justify-content:space-between;margin-top:8px;font-size:11px;display:flex}.of-price{color:#ffcf8a;font-weight:600}.of-card.poor .of-price{color:#ff6a5a}.of-hint{letter-spacing:.16em;text-transform:uppercase;color:var(--ink);text-shadow:0 1px 6px #000000e6;font-size:12px}.of-hint b{color:var(--accent)}#loadout{opacity:0;background:#04090adb;border:1px solid #1fffc840;border-radius:6px;width:250px;padding:14px 16px;transition:opacity .12s;position:absolute;top:64px;right:32px}#loadout.show{opacity:1}.lo-head{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:12px}.lo-row{border-bottom:1px solid #8fb3ad24;justify-content:space-between;gap:10px;padding:4px 0;font-size:13px;display:flex}.lo-row.rare span:first-child{color:#d3b0ff}.lo-row b{color:var(--accent);font-variant-numeric:tabular-nums}.lo-empty{color:var(--muted);font-size:13px}.lo-head~.lo-head{margin-top:12px}.lo-row.syn{flex-direction:column;gap:2px}.lo-row.syn span{color:#ffd36a}.lo-row.syn small{color:var(--muted);font-size:11px}.of-syn{color:var(--muted);letter-spacing:.02em;margin-top:8px;font-size:11px}.of-syn.on,.of-syn b{color:#ffd36a}.of-card.synergy{border-color:#ffd36a;box-shadow:0 14px 40px #0000008c,inset 0 0 26px #ffd36a1f}#death-salvage{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;min-height:1.2em;font-size:15px}.hub{width:min(430px,100%);padding:26px 26px 20px}.hub h2{letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:22px}.hub-salvage{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;align-items:baseline;gap:8px;margin:10px 0 4px;font-size:13px;display:flex}.hub-salvage b{color:var(--accent);font-variant-numeric:tabular-nums;text-shadow:0 0 18px #1fffc866;font-size:30px}.hub h3{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:16px 0 6px;font-size:12px;font-weight:600}.hub-row{border-bottom:1px solid #8fb3ad26;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:8px 0;display:grid}.hub-name{font-size:14px;font-weight:600}.hub-name small{color:var(--accent);letter-spacing:.1em;margin-left:8px;font-weight:600}.hub-text{color:var(--muted);grid-column:1;font-size:12px;line-height:1.35}.hub-buy{min-width:84px;font:600 13px var(--font);letter-spacing:.1em;color:#021410;background:var(--accent);cursor:pointer;border:0;border-radius:4px;grid-area:1/2/span 2;padding:8px 10px}.hub-buy:disabled{color:var(--muted);cursor:default;background:0 0;border:1px solid #8fb3ad4d}.hub-buy:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.hub-stats{color:var(--muted);letter-spacing:.06em;margin-top:14px;font-size:12px;line-height:1.6}.hub-note{color:#ffcf8a;margin-top:10px;font-size:12px}#boss{text-shadow:0 1px 6px #000c;flex-direction:column;align-items:center;gap:6px;width:min(560px,60vw);display:none;position:absolute;top:54px;left:50%;transform:translate(-50%)}#boss.on{display:flex}#boss-name{letter-spacing:.32em;text-transform:uppercase;color:#ff8fb3;font-size:13px;font-weight:600}#boss-track{background:#0a060ab3;border:1px solid #ff8fb359;border-radius:2px;width:100%;height:8px;position:relative;overflow:hidden}#boss-bar{background:linear-gradient(90deg,#ff3d7f,#ff8fb3);width:100%;height:100%;transition:width .15s linear;box-shadow:0 0 12px #ff4f8bcc}#boss-track i{background:#0a060ae6;width:2px;position:absolute;top:0;bottom:0}#boss-track i:first-of-type{left:33.33%}#boss-track i:nth-of-type(2){left:66.66%}#boss-note{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);min-height:14px;font-size:12px}#boss.open #boss-note{color:#fff}#boss.open #boss-track{border-color:#fff}#ammo.dry #ammo-reserve{color:#ff8a5c}.panel{scrollbar-width:thin;scrollbar-color:#1fffc84d transparent;max-height:calc(100vh - 32px);overflow-y:auto}.sub{margin:10px 0 20px;line-height:1.45}#overlay.paused h1{font-size:clamp(32px,7vw,46px)}.tabs{border-bottom:1px solid #8fb3ad40;gap:4px;margin-top:22px;display:flex}.tabs button{font:600 12px var(--font);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:9px 4px}.tabs button:hover{color:var(--ink)}.tabs button[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.tabs button:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.tab{min-height:196px;padding-top:4px}.tab[hidden]{display:none}.tab.settings{border-top:0;margin-top:0;padding-top:4px}.brief{color:var(--muted);margin:14px 0 0;padding:0;font-size:13px;line-height:1.5;list-style:none}.brief li{border-left:2px solid #1fffc84d;margin-bottom:6px;padding:7px 0 7px 14px}.brief b{color:var(--ink)}.settings h3{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:16px 0 0;font-size:11px;font-weight:600}.seg{border:1px solid #8fb3ad59;border-radius:4px;grid-template-columns:repeat(4,1fr);gap:0;margin-top:10px;display:grid;overflow:hidden}.seg button{font:600 12px var(--font);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);cursor:pointer;background:0 0;border:0;border-right:1px solid #8fb3ad40;padding:9px 4px}.seg button:last-child{border-right:0}.seg button:hover{color:var(--ink)}.seg button[aria-checked=true]{background:var(--accent);color:#021410}.seg button:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}#set-quality-note{min-height:2.6em;margin-top:8px}.ghost.small{width:auto;margin-top:18px;padding:7px 12px;font-size:11px}#tutorial.suggest{border-color:var(--accent);color:var(--accent);box-shadow:inset 0 0 18px #1fffc814}#tutorial:disabled{opacity:.5;cursor:progress}#tutorial[hidden]{display:none}#fade{place-items:center;display:grid}#loading{text-align:center;max-width:520px;padding:0 24px}#loading h2{letter-spacing:.16em;text-transform:uppercase;text-shadow:0 0 26px #1fffc866;margin:0;font-size:clamp(28px,5vw,44px)}#loading-tip{color:var(--muted);min-height:3em;margin:18px 0 0;font-size:14px;line-height:1.5}#loading:empty{display:none}#fps{font-variant-numeric:tabular-nums;letter-spacing:.08em;color:var(--muted);text-shadow:0 1px 4px #000000e6;font-size:12px;display:none;position:absolute;top:10px;left:12px}#fps.on{display:block}#slots{text-shadow:0 1px 6px #000c;flex-direction:column;align-items:flex-end;gap:4px;display:flex;position:absolute;bottom:82px;right:32px}.slot{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);opacity:.55;align-items:center;gap:8px;font-size:11px;transition:opacity .15s;display:flex}.slot kbd{width:18px;height:18px;font:700 11px var(--font);color:var(--muted);border:1px solid #8fb3ad80;border-radius:3px;place-items:center;display:grid}.slot.on{opacity:1;color:var(--ink)}.slot.on kbd{background:var(--accent);border-color:var(--accent);color:#021410}.slot.dry span{color:#ff8a5c}#objective{border:1px solid #1fffc84d;border-left:3px solid var(--accent);background:#04090ad1;border-radius:4px;width:300px;padding:12px 14px 10px;display:none;position:absolute;top:60px;left:32px}#objective.on{display:block}#objective.done{animation:.5s ease-out objective-done}@keyframes objective-done{0%{background:#1fffc859}to{background:#04090ad1}}#objective-step{letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-size:11px;font-weight:600}#objective-text{margin:6px 0 8px;font-size:15px;line-height:1.4}#objective-text b{color:var(--accent)}#objective-track{background:#ffffff1f;height:3px}#objective-bar{background:var(--accent);width:0;height:100%;transition:width .3s}#health.low #health-num{animation:.9s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}@media (prefers-reduced-motion:reduce){#offer.show,#health.low #health-num,#objective.done{animation-duration:10ms}#banner.show{animation-name:banner-still}@keyframes banner-still{0%{opacity:0}6%{opacity:1}84%{opacity:1}to{opacity:0}}}
