:root{color-scheme:dark;--lime:#dbfb70;--muted:#93a2a6;--ink:#10171b}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:var(--ink);color:#f3f5ee;font-family:Arial,Helvetica,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;font:700 11px Arial;letter-spacing:1.4px}button:focus-visible,a:focus-visible{outline:2px solid white;outline-offset:5px}#game{display:block;width:100vw;height:100vh}.grain{position:fixed;inset:0;pointer-events:none;opacity:.045;background:repeating-linear-gradient(0deg,transparent 0 3px,#000 4px);z-index:2}header{position:fixed;left:42px;right:42px;top:30px;display:flex;align-items:center;justify-content:space-between;z-index:5}.brand{font-size:30px;font-weight:950;letter-spacing:-2px;color:#fff;text-decoration:none;line-height:1}.brand>span{font-size:12px;vertical-align:top;letter-spacing:0}.brand small{display:block;font-size:8px;letter-spacing:2.7px;margin-top:7px}.district{font:10px monospace;letter-spacing:2px;color:#b8c7c8;display:flex;align-items:center;gap:12px}i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 12px #dbfb7066}#sound{background:#10171bcc;border:1px solid #ffffff25;color:#c7d0d1;padding:12px 18px}#overlay{position:fixed;inset:0;z-index:3;background:linear-gradient(90deg,#0b1219f7 0%,#0b1219e8 29%,#0b12193b 67%,#0b121930)}.intro{position:absolute;left:8%;top:23%;}.eyebrow{font:10px monospace;letter-spacing:2px;color:var(--lime)}.intro .eyebrow{display:flex;align-items:center;gap:10px}h1{font-size:clamp(66px,8.5vw,136px);letter-spacing:-7px;line-height:.83;margin:29px 0 25px;font-weight:950}h1 span{color:var(--lime)}.tagline{font-size:21px;line-height:1.4;color:#ecede8}.brief{font-size:12px;line-height:1.9;color:var(--muted);margin:20px 0 28px}.primary{border:0;background:var(--lime);color:#19221c;padding:19px 23px;min-width:245px;text-align:left}.primary span{float:right;font-size:20px;line-height:10px}.primary:hover{background:#eaffaa}.introkeys{font:10px monospace;color:#88989e;margin-top:20px}.introkeys b{color:#566468;padding:0 7px}.sidecaption{position:absolute;right:6%;bottom:19%;font:11px monospace;line-height:1.7;letter-spacing:2px;color:#c7d6d7}.sidecaption>span{display:block;font-size:85px;font-weight:bold;line-height:1;color:#dbfb7044;letter-spacing:-5px;margin-bottom:15px}.sidecaption small{display:block;font-size:8px;color:#8a9d9f;margin-top:25px}footer{position:absolute;bottom:30px;left:42px;right:42px;display:flex;justify-content:space-between;font:8px monospace;letter-spacing:1.5px;color:#849296}.hidden{display:none!important}#hud{position:fixed;inset:0;pointer-events:none;z-index:3}.mission,.stats{position:absolute;top:108px;background:#10171beb;border:1px solid #ffffff12;padding:20px}.mission{left:30px;width:290px;border-left:3px solid var(--lime)}.eyebrow span{float:right;color:#839094}.mission h2{font-size:19px;margin:15px 0 8px}.mission p{font-size:11px;color:#b6c1bf;line-height:1.6;margin:0}#packages{color:var(--lime);margin-top:12px;font-size:22px;letter-spacing:12px}.stats{right:30px;width:225px}.stats .eyebrow{color:#bcc6c5;letter-spacing:1px}#wanted{color:#ffbe70;letter-spacing:2px;font-size:15px}.health{height:5px;background:#ffffff15;margin-top:19px}.health>span{height:100%;display:block;background:var(--lime);transition:width .15s}.statline{display:flex;justify-content:space-between;font:11px monospace;color:#b5c3c3;margin-top:9px}#cash{display:block;margin-top:18px;font:25px monospace;color:var(--lime)}.mapframe{position:absolute;bottom:32px;left:30px;padding:9px;background:#10171beb;border:1px solid #ffffff20}.mapframe span{display:block;font:8px monospace;letter-spacing:1px;color:#aab8b8;margin-top:7px}.mapframe b{float:right;color:var(--lime)}.controls{position:absolute;bottom:32px;right:30px;display:flex;gap:17px;font-size:9px;color:#a0b3b4}.controls span{display:flex;flex-direction:column;gap:9px}kbd{font:9px monospace;color:#e0e7dd}#toast{position:absolute;top:30%;left:50%;transform:translateX(-50%);font:12px monospace;color:var(--lime);text-align:center;background:#10171bdd;padding:13px 20px;opacity:0;transition:opacity .3s}#interaction{position:absolute;bottom:20%;left:50%;transform:translateX(-50%);font:12px monospace;text-shadow:0 2px 5px black;color:var(--lime);text-align:center}#modal{position:fixed;inset:0;display:grid;place-items:center;background:#080f16bb;backdrop-filter:blur(8px);z-index:8}.modalcard{padding:45px;border:1px solid #ffffff20;background:#10191e;width:min(450px,90vw)}.modalcard h2{font-size:44px;letter-spacing:-2px;margin:20px 0}.modalcard p{color:#a5b7ba;font-size:13px;line-height:1.8;margin-bottom:28px}.modalcard button{display:block;width:100%}.secondary{background:transparent;border:1px solid #ffffff25;color:#bac8c8;padding:16px;margin-top:12px}@media(max-height:740px){.intro{top:20%}h1{font-size:85px}.tagline{font-size:17px;margin:14px 0}.brief{margin:12px 0 18px}.introkeys{margin-top:14px}}@media(max-width:700px){header{left:20px;right:20px;top:20px}.district,.sidecaption,.controls{display:none}.intro{left:7%;top:23%}h1{font-size:70px;letter-spacing:-4px}footer{left:20px;right:20px;font-size:6px}.mission{top:90px;left:12px;width:210px;padding:12px}.stats{top:90px;right:12px;width:140px;padding:12px}.mission h2{font-size:15px}.eyebrow{font-size:8px}.mapframe{left:12px;bottom:12px}#map{width:110px;height:110px}}

#weapon{font:10px monospace;color:#dbfb70;margin-top:16px;letter-spacing:1px}#weaponSlots{position:absolute;bottom:92px;right:30px;font:10px monospace;color:#bed0cd;max-width:60%;text-align:right;background:#10171bcc;padding:10px}#bossHud{position:absolute;top:106px;left:50%;transform:translateX(-50%);width:clamp(230px,30vw,420px);padding:15px 20px;background:#21141eea;border:1px solid #ff759b55}#bossHud>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px}#bossHud strong{font-size:23px;color:#ff96b8;letter-spacing:1px}#bossPhase{font:8px monospace;color:#eeb1c8}.bossTrack{height:7px;background:#ffffff15;margin-top:12px}#bossHealth{display:block;height:100%;background:#ff759b;transition:width .15s}@media(max-width:1050px){#bossHud{top:290px;width:260px}}@media(max-width:700px){#weaponSlots{bottom:35px;right:12px;width:48%;font-size:9px;line-height:1.8}#bossHud{top:285px}#weapon{font-size:8px}}

#map{cursor:pointer;pointer-events:auto}#mapOpen{display:block;width:100%;background:transparent;border:0;color:#dbfb70;font:8px monospace;letter-spacing:.7px;padding:10px 0 0;pointer-events:auto}#cityMap{position:fixed;inset:0;z-index:9;background:#0b171bea;backdrop-filter:blur(10px);display:grid;place-items:center}.cityMapCard{width:min(860px,94vw);text-align:center}.cityMapHeading{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left}.cityMapHeading h2{margin:0;font-size:25px;letter-spacing:-1px}.cityMapHeading p,.mapNote{font:10px monospace;color:#adc1ba;line-height:1.5}.cityMapHeading button{background:#dbfb70;border:0;padding:12px;color:#19281d;font-size:9px}#cityMapCanvas{display:block;margin:10px auto;width:min(72vh,86vw);height:min(72vh,86vw);border:1px solid #7c998a55}.attribution{position:fixed;bottom:7px;left:30px;font:8px monospace;color:#a1b0ae;text-decoration:none;z-index:10;background:#102027b3;padding:3px 6px}.attribution:hover{color:#dbfb70}.mission{width:300px}h1{font-size:clamp(66px,7.5vw,120px)}@media(max-width:700px){.cityMapHeading h2{font-size:18px}.attribution{font-size:6px;left:12px}.mapframe{bottom:30px}.mission{width:210px}}

.relayBrief{margin-top:12px;padding-top:12px;border-top:1px solid #a3d8da33}.relayBrief b{font:9px monospace;letter-spacing:1px;color:#83dce7}.relayBrief p{margin-top:6px}.relayBrief small{font:9px monospace;color:#869f9e}.careerHud{position:absolute;right:30px;top:310px;width:225px;padding:16px 20px;background:#101b20ee;border:1px solid #83dce733;font:10px monospace;color:#a7cecc}.xpTrack{height:4px;background:#ffffff18;margin:10px 0 8px}.xpTrack span{display:block;height:100%;background:#83dce7;transition:width .25s}#xpCount{color:#d8ede5}#xpNotice{font-size:9px;line-height:1.5;color:#95abaa;margin:9px 0}#careerOpen{width:100%;pointer-events:auto;padding:10px 4px;background:#234048;border:1px solid #83dce744;color:#a5e6e8;font:10px monospace}#altitude{margin-top:12px;font-size:9px;color:#ccdfb9}#careerPanel{position:fixed;inset:0;display:grid;place-items:center;background:#08151ceb;backdrop-filter:blur(10px);z-index:10}.careerCard{width:min(790px,94vw);max-height:92vh;overflow:auto;background:#14232a;border:1px solid #83dce744;padding:32px}.careerCard h2{margin-top:12px}.careerCard>p{font:12px monospace;line-height:1.7;color:#afc7c5}#careerCards{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0}#careerCards article{padding:20px;background:#0d1b22;border:1px solid #92c4b92b}#careerCards article>span{float:right;font:12px monospace;color:#83dce7}#careerCards h3{font-size:16px;margin:0 0 14px}#careerCards p{font:11px monospace;color:#9fb8b3;min-height:28px}#careerCards button{background:#d6f580;color:#1a3028;border:0;padding:12px;width:100%;font-size:9px}#careerCards button:disabled{background:#2e4144;color:#859393;cursor:default}#careerUnlock{padding:12px;border-left:2px solid #dbfb70;background:#dbfb700a;color:#dcf4a7}.careerCard .careerHelp,#careerStorage{font:10px monospace;color:#829b9c;line-height:1.8}@media(max-height:760px){.careerHud{top:295px;padding:12px 16px}.relayBrief{margin-top:8px;padding-top:8px}.careerCard{padding:22px}}@media(max-width:700px){.mission{width:210px}.careerHud{right:12px;top:280px;width:140px;padding:12px}#careerCards{grid-template-columns:1fr}.careerCard{padding:20px}.careerCard h2{font-size:20px}}

#missionList{display:grid;gap:5px;margin:13px 0}#missionList button{pointer-events:auto;text-align:left;border:1px solid #ffffff18;background:#18282e;color:#a5b8b6;padding:8px;font:9px monospace;letter-spacing:.3px}#missionList button.selected{border-color:#dbfb7077;color:#dbfb70}#missionList button:disabled{color:#5d7076;cursor:default}#navigation{font:10px monospace;line-height:1.5;color:#d5e4a9;border-top:1px solid #ffffff15;padding-top:10px}.mission{width:310px}.relayBrief{margin-top:9px;padding-top:9px}.mission #packages{font-size:16px;margin-top:8px}.intro .primary{min-width:310px}#careerCards{grid-template-columns:repeat(2,1fr)}.careerCard{width:min(870px,94vw)}@media(max-height:800px){.mission{top:96px;padding:13px 16px}.mission h2{font-size:17px;margin-top:9px}.mission p{font-size:10px}#missionList{gap:3px;margin:8px 0}#missionList button{padding:5px}.relayBrief small{display:none}.mapframe{bottom:28px}#map{width:120px;height:120px}}@media(max-width:850px){.mission{width:245px}.controls{gap:9px}#careerCards{grid-template-columns:1fr}}

#cityMapCanvas{width:min(860px,86vw);height:auto;max-height:68vh;object-fit:contain;cursor:grab;touch-action:none}.cityMapCard{width:min(1000px,94vw)}#mapTools{display:flex;gap:10px;align-items:center;margin:12px 0;color:#adc1ba;font:10px monospace}#mapTools button{padding:9px;background:#233b3e;color:#dbfb70;border:1px solid #7c998a55;font:9px monospace}#staminaRow{margin-top:12px;font:8px monospace;color:#eab66b}#staminaRow .health{margin-top:6px}#staminaBar{background:#eab66b}.careerHud{top:355px}@media(max-height:800px){.careerHud{top:345px}}

/* Combat feedback stays grouped close to the player's view. */
#weaponPanel{position:absolute;left:50%;bottom:96px;transform:translateX(-50%);width:min(560px,calc(100vw - 440px));padding:12px;background:#101b20f2;border:1px solid #b7cfc644;box-shadow:0 8px 30px #0005;pointer-events:auto;transition:border-color .15s,box-shadow .15s}
#weaponPanel.switched{border-color:#dbfb70;box-shadow:0 0 22px #dbfb7033}
.weaponHeading{display:flex;justify-content:space-between;gap:12px;align-items:center;font:10px monospace;color:#dbfb70;margin:0 2px 10px;min-height:14px}.weaponHeading small{font-size:9px;color:#a3b8b7;white-space:nowrap}
#weaponSlots{position:static;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;max-width:none;width:auto;padding:0;background:none;text-align:left}
.weaponSlot{position:relative;min-width:0;border:1px solid #ffffff25;background:#1b2b31;color:#c1cdca;padding:10px 7px 8px;text-align:left;letter-spacing:0;min-height:90px;font:10px monospace}
.weaponSlot strong{display:block;margin:7px 0;min-height:25px;overflow-wrap:anywhere;font-size:11px}.weaponSlot small{display:block;font-size:10px}.slotNumber{display:inline-grid;place-items:center;width:18px;height:18px;background:#ffffff14;color:#dce9de}.slotState{position:absolute;top:12px;right:6px;font-size:8px;color:#94a9a5}
.weaponSlot.active{background:#dbfb7012;border:2px solid var(--weapon-color);padding:9px 6px 7px;color:#f3ffe8}.weaponSlot.active .slotNumber{background:var(--weapon-color);color:#15221d}.weaponSlot.active .slotState{color:var(--weapon-color)}.weaponSlot:disabled{opacity:.4;cursor:default}.weaponSlot:not(:disabled):hover{background:#dbfb7025}
#reloadIndicator{margin-top:10px;color:#ffe59b;font:11px monospace}#reloadIndicator>div:first-child{display:flex;justify-content:space-between;margin-bottom:7px}.reloadTrack{height:5px;background:#ffffff1c}#reloadProgress{display:block;height:100%;background:#ffe59b;width:0}
#levelUp{position:absolute;top:205px;left:50%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;gap:8px;padding:18px 38px;background:linear-gradient(120deg,#10272bf2,#142d25f2);border:1px solid #a3f7e9;box-shadow:0 0 45px #83dce744;color:#c8fff2;animation:rank-entry .4s ease-out;white-space:nowrap}#levelUp small{font:10px monospace;letter-spacing:3px}#levelUp strong{font-size:34px;letter-spacing:3px}#levelUp span{font:12px monospace;color:#dbfb70}#levelUp em{font:9px monospace;color:#b4d6ca;font-style:normal}
@keyframes rank-entry{from{opacity:0;transform:translateX(-50%) scale(.8)}to{opacity:1;transform:translateX(-50%) scale(1)}}
@media(max-width:1100px){#weaponPanel{width:460px;left:auto;right:30px;transform:none}#levelUp{top:180px;padding:14px 24px}}
@media(max-width:700px){#weaponPanel{right:12px;bottom:50px;width:calc(100vw - 165px);padding:7px}.weaponHeading{flex-wrap:wrap;gap:5px;font-size:9px}.weaponSlot{padding:7px 4px}.weaponSlot strong{font-size:9px}.slotState{display:none}#levelUp{top:180px;padding:12px 18px}#levelUp strong{font-size:26px}}
@media(prefers-reduced-motion:reduce){#levelUp{animation:none}#weaponPanel{transition:none}}

#hud:has(#levelUp:not(.hidden)) #toast{top:max(380px,38%)}
#levelUp{z-index:1}

/* Audio belongs to the pause menu; the weapon dock hugs the bottom edge. */
#pauseOpen{background:#10171bcc;border:1px solid #ffffff25;color:#c7d0d1;padding:12px 18px}
.audioSettings{border-top:1px solid #ffffff20;border-bottom:1px solid #ffffff20;padding:16px 0;margin:0 0 20px}.audioSettings h3{font:10px monospace;letter-spacing:2px;color:#dbfb70;margin:0 0 10px}.audioButtons{display:flex;gap:10px}.audioButtons button{flex:1;min-width:0;width:auto;padding:12px 8px;border:1px solid #83dce755;background:#213a40;color:#d4eeeb;font:10px monospace;letter-spacing:1px}.audioButtons #sound[aria-pressed="true"]{border-color:#dbfb70;color:#dbfb70}.modalcard #soundStatus{font:10px monospace;line-height:1.5;margin:10px 0 0;color:#b6cfca;min-height:30px}.modalcard{max-height:94vh;overflow:auto}
#weaponPanel{bottom:16px;width:min(560px,calc(100vw - 440px))}.weaponSlot{min-height:74px}.weaponSlot strong{min-height:14px;margin:5px 0}.weaponHeading{margin-bottom:7px}.controls{display:none}
@media(max-width:1100px){#weaponPanel{bottom:16px;width:460px;left:50%;right:auto;transform:translateX(-50%)}}
@media(max-width:700px){#weaponPanel{bottom:12px;width:calc(100vw - 180px);left:auto;right:12px;transform:none}.weaponSlot{min-height:78px}.weaponSlot strong{min-height:24px}.modalcard{padding:24px}}

.leaderboard{position:absolute;right:6%;top:23%;width:min(39vw,510px);padding:24px;background:#101b23ed;border:1px solid #c0d3ca30;box-shadow:0 20px 80px #0005}.leaderboardHeading{display:flex;justify-content:space-between;align-items:center}.leaderboard h2{font-size:28px;margin:8px 0}.leaderboard button{border:1px solid #c0d3ca40;background:transparent;color:var(--lime);padding:10px 14px;font-size:18px}.scoreRule,#leaderboardStatus{font:11px/1.6 monospace;color:#a9bcbb}.leaderboardScroll{max-height:32vh;overflow:auto;margin:18px 0}.leaderboard table{width:100%;border-collapse:collapse;font:12px/1.5 monospace;text-align:left}.leaderboard th{font-size:10px;letter-spacing:1px;color:#a9bcbb;padding:8px 6px;border-bottom:1px solid #c0d3ca30}.leaderboard td{padding:10px 6px;border-bottom:1px solid #c0d3ca12;overflow-wrap:anywhere}.leaderboard td:nth-child(3){color:var(--lime);text-align:right}.leaderboard th:nth-child(3){text-align:right}.leaderboard td:last-child{font-size:10px;color:#a9bcbb}.leaderboard td:nth-child(2){max-width:160px}#scoreForm{border:1px solid #dbfb7044;padding:18px;margin:0 0 18px;text-align:left}#runScore{color:var(--lime);font:700 22px monospace;margin:0 0 14px}#scoreForm label{display:block;font:12px monospace;margin-bottom:8px}.scoreFields{display:flex;gap:8px}.scoreFields input{min-width:0;width:55%;padding:12px;background:#091219;color:white;border:1px solid #90a9a5;font:14px monospace}.modalcard .scoreFields button{min-width:0;width:45%;margin:0;padding:10px;background:var(--lime);color:#142119;border:0;font:700 10px monospace}.modalcard #scoreStatus{font:11px/1.5 monospace;color:#becdc7;margin:12px 0 0}#scoreSubmit:disabled{opacity:.5;cursor:default}
@media(max-width:1050px){#overlay{overflow:auto;padding:130px 6% 80px}.intro{position:static}.leaderboard{position:static;width:100%;max-width:650px;margin-top:36px}.leaderboardScroll{max-height:280px}#overlay footer{position:static;margin-top:30px;gap:20px}.intro h1{font-size:80px}}
@media(max-height:740px) and (min-width:1051px){.intro,.leaderboard{top:18%}.intro h1{font-size:80px}.brief{margin:12px 0}.leaderboardScroll{max-height:28vh}}
