:root{color-scheme:dark;--ink:#d8ddce;--dim:#818e85;--gold:#d3b57c;--green:#88d6a0;--line:#46524a;--panel:#101916f5;--red:#d77567}*{box-sizing:border-box}body{margin:0;background:#080e0c;color:var(--ink);font:13px/1.5 'Segoe UI',Arial,sans-serif;overflow:hidden}button{font:600 10px/1.3 Consolas,monospace;letter-spacing:1px;color:var(--ink);background:#15201d;border:1px solid #4a554a;padding:11px 14px;cursor:pointer;transition:background .15s,border .15s}button:hover,button:focus-visible{background:#2a3930;border-color:var(--gold);outline:none}button:disabled{opacity:.35;cursor:default}canvas{image-rendering:pixelated}#battle{position:fixed;inset:0;width:100%;height:100%}#vignette{pointer-events:none;position:fixed;inset:0;box-shadow:inset 0 0 140px 30px #0009}header{height:76px;position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:linear-gradient(#08100ff5,#0b1412e8);border-bottom:1px solid #455247;gap:20px}.brand b{font:800 22px/1.3 'Segoe UI',sans-serif;letter-spacing:3px;color:#d9d7c6}.brand b span{color:#78856b}.brand small{display:block;color:#9b9f85;letter-spacing:3.3px;font:9px/1.7 Consolas,monospace}.headerRight{display:flex;align-items:center;gap:12px}.headerRight>span{color:var(--gold);font:11px Consolas,monospace}.headerRight button{padding:8px 12px;background:transparent}#runHead{display:flex;gap:22px;font:12px Consolas,monospace}#runHead span:nth-child(2){color:var(--gold)}#load{position:fixed;inset:0;z-index:20;background:#0a1210;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--gold);font:18px Consolas,monospace;letter-spacing:3px}#load span{color:var(--dim);font:12px Consolas,monospace;letter-spacing:0;margin-top:15px}.hidden{display:none!important}#menu{position:relative;z-index:3;width:min(1180px,calc(100% - 80px));margin:22px auto 0}.menuHeading{margin-bottom:22px}.eyebrow{font:9px/1.6 Consolas,monospace;letter-spacing:1.8px;color:var(--gold);display:block}h1{font:600 clamp(30px,3.4vw,51px)/1.08 'Segoe UI',sans-serif;letter-spacing:-1.5px;margin:10px 0}h1 em{font-style:normal;color:var(--gold)}.menuHeading>p{color:#b2b9ac;margin:12px 0;font-size:13px}.briefing{display:grid;grid-template-columns:260px 1fr 350px;min-height:333px;background:linear-gradient(100deg,#101a17f5,#101815ef);border:1px solid #4f5a4b;box-shadow:0 20px 60px #0006}.briefing>section{padding:20px}.sectionTitle{font:10px Consolas,monospace;letter-spacing:1.5px;margin-bottom:16px;color:#b5bead;display:flex;align-items:center;gap:12px}.sectionTitle>span{color:var(--gold);border:1px solid #5b5b40;padding:3px 5px}.roster{border-right:1px solid #38463a}#heroes{display:flex;flex-direction:column;gap:8px}.heroChoice{text-align:left;display:flex;align-items:center;gap:13px;width:100%;padding:10px 12px;background:#14201a;letter-spacing:0}.heroChoice strong{font:600 14px 'Segoe UI',sans-serif;display:block}.heroChoice small{display:block;color:var(--dim);font:9px/1.8 Consolas,monospace;letter-spacing:1px}.heroChoice .insignia{font:22px Consolas;color:#7a9380;width:26px}.heroChoice.active{background:linear-gradient(90deg,#33422b,#1c2a20);border-color:#b6b47b;box-shadow:inset 3px 0 #d4c28b}.heroBrief{position:relative}.heroStage{float:right;position:relative;width:135px;height:140px;margin-top:20px;margin-right:-10px}#portrait{position:relative;width:160px;height:130px;left:-15px}.reticle{position:absolute;inset:15px 0 25px;border:1px solid #52694b66;border-radius:50%;background:radial-gradient(#9edc7f15,#0000)}#heroFaction{position:absolute;bottom:0;width:100%;text-align:center;color:#9ca88e;font:9px Consolas;letter-spacing:2px}.heroBrief h2{font:600 28px 'Segoe UI';margin:12px 0 6px;color:#e5dec7}.heroBrief>p{color:#91a092;font-size:12px;max-width:180px;min-height:56px}.skillBrief{clear:both;padding-top:12px}.skillBrief strong{display:block;font-size:13px;font-weight:600}.skillBrief p{color:#96a191;font-size:11px;margin:3px 0 12px}.sectors{border-left:1px solid #38463a}#maps{display:grid;gap:5px}#maps button{text-align:left;font:12px 'Segoe UI';letter-spacing:0;padding:7px 10px;display:flex;justify-content:space-between;background:#121e18;border:1px solid #354536}#maps button span{font:9px Consolas;align-self:center;color:#87977b}#maps button.active{border-color:#a79e67;background:#2a3523;color:#e2d3a6}.mapPreview{display:flex;gap:12px;border-top:1px solid #3b493c;padding-top:12px;margin-top:12px}.mapPreview canvas{width:90px;height:80px;object-fit:contain;background:#070d09;border:1px solid #50604c}.mapPreview p{font-size:11px;color:#b0b9a4;margin:4px 0}.mapPreview .eyebrow{font-size:8px;letter-spacing:1px}.mapPreview small{font:9px Consolas;color:#75876e}.deployment{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px}.deployment b{color:#d3c4a4;font:11px Consolas;letter-spacing:1.5px}.deployment div>span{display:block;color:#93a18c;font-size:11px;margin-top:5px}.primary{padding:16px 25px;background:linear-gradient(#a59763,#74643c);border:1px solid #d5c796;color:#0c160f;font:800 12px Consolas;letter-spacing:1.4px;box-shadow:inset 0 1px #fff5}.primary:hover{background:#c9b77d}.primary span{margin-left:30px;font-size:18px}.menuFoot{display:flex;justify-content:space-between;align-items:center;margin-top:16px;color:#7f907b;font:10px Consolas}.menuFoot button{padding:7px 10px;background:#0c1713aa;font-size:9px}#legal{position:fixed;bottom:5px;left:0;width:100%;text-align:center;font:8px Consolas;color:#71816f;z-index:4;pointer-events:none}#gameUI{position:absolute;inset:76px 0 18px;pointer-events:none}#gameUI button,#mini,#abilityButton,#selected{pointer-events:auto}#mission{position:absolute;top:18px;left:25px;width:225px;background:#0d1715e8;border:1px solid #4b5948;padding:12px 15px}#mission b{font:11px Consolas;display:block;margin:5px 0 8px}.bar{height:7px;background:#080d0c;border:1px solid #445348;position:relative;overflow:hidden}.bar i{display:block;background:linear-gradient(90deg,#4c754d,#98cb7c);height:100%;width:100%;transition:width .1s}.bar.life{height:19px}.bar.life i{background:linear-gradient(90deg,#365c53,#6bad91)}.bar span{position:absolute;inset:0;text-align:center;font:10px/17px Consolas;color:#e0ebd9;text-shadow:1px 1px #000}.bar.xp{height:4px;margin-top:4px}.bar.xp i{background:var(--gold)}#baseLabel{font:9px Consolas;color:#8a9c8d}#wavePanel{position:absolute;right:25px;top:18px;text-align:right;width:220px}#phaseLabel{font:10px Consolas;color:var(--gold);letter-spacing:2px;display:block}#phaseTime{display:block;font:700 33px Consolas;letter-spacing:1px;text-shadow:0 2px 8px #000}#waveHint{font:10px Consolas;color:#becdb7;display:block;text-shadow:0 1px 4px #000}#nextWave{margin-top:10px;background:#17241ae8}#feed{position:absolute;left:25px;top:118px;display:flex;flex-direction:column;gap:5px;max-width:285px;font:10px Consolas;color:#b4c7a7;text-shadow:1px 2px 3px #000}#feed div{background:#08110cd9;padding:4px 8px;border-left:2px solid #7b956b}#toast{position:absolute;top:44%;left:50%;transform:translateX(-50%);font:12px Consolas;color:#eed5a2;text-align:center;text-shadow:0 2px 4px black;background:#08100cd9;padding:9px 18px;opacity:0;transition:opacity .1s}.console{position:absolute;bottom:0;left:20px;right:20px;height:165px;display:grid;grid-template-columns:190px 220px 1fr 100px;background:linear-gradient(#1f2c25f5,#101a17fa);border:1px solid #6e755a;box-shadow:0 -4px 25px #0008,inset 0 3px #78836b2b;padding:10px;gap:15px;pointer-events:auto}.minimap{position:relative;width:170px;height:140px}.minimap canvas{width:170px;height:126px;border:1px solid #708365;cursor:crosshair;object-fit:contain;background:#060b07}.minimap small{display:flex;justify-content:space-between;font:8px Consolas;color:#9ba995}.minimap small span{color:#6d8069}.heroPanel{border-right:1px solid #4a5848;padding-right:15px}.heroPanel>div:first-child{display:flex;justify-content:space-between;margin-bottom:8px;font:11px Consolas;color:#d9d0ae}.heroPanel .bar{margin-bottom:5px}#abilityButton{display:flex;align-items:center;gap:7px;border:1px solid #59664d;padding:8px;margin-top:9px;cursor:pointer;background:#17251a}#abilityButton>span{font:8px Consolas;border:1px solid #5f6c53;padding:3px;color:var(--gold)}#abilityButton>b{font:10px Consolas}#abilityButton>small{margin-left:auto;color:var(--gold);font:10px Consolas}#statsLabel{font:8px Consolas;color:#8e9d88;display:block;margin-top:8px}.buildTitle{display:flex;justify-content:space-between;font:10px Consolas;letter-spacing:1px;margin-bottom:10px;color:#aebba4}.buildTitle b{color:#83c4df;font:14px Consolas}#buildings{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}#buildings button{padding:7px 6px;min-height:76px;letter-spacing:0;text-align:left;background:#142018;position:relative}#buildings button.active{background:#34412b;border-color:#c4b97a}#buildings button strong{font:11px 'Segoe UI';display:block}#buildings button>span{position:absolute;right:5px;top:4px;font:9px Consolas;color:var(--gold)}#buildings button small{font:9px Consolas;color:#7fbad2;display:block;margin-top:4px}#buildings button em{font:8px Consolas;font-style:normal;display:block;color:#83967c;margin-top:3px}#buildHint{font:9px Consolas;color:#889e82;display:block;margin-top:9px}.utility{display:flex;flex-direction:column;gap:8px}.utility button{font:9px Consolas;letter-spacing:0;flex:1;padding:6px}#selected{position:absolute;right:25px;bottom:180px;width:230px;background:var(--panel);border:1px solid #758066;padding:14px;font-size:11px}#selected h3{margin:0 0 6px;color:var(--gold)}#selected p{color:#a2b298;margin:4px 0}#selected button{margin-top:10px;padding:8px}#overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:10;background:#020806c7;backdrop-filter:blur(5px);padding:30px}#modal{max-width:820px;width:100%;border:1px solid #7a8568;background:linear-gradient(120deg,#1e2c24,#0c1611);padding:35px;box-shadow:0 20px 100px #000c}#modal h2{font:600 34px 'Segoe UI';color:#e1d2a9;margin:8px 0 12px;letter-spacing:-1px}#modal p{color:#a4b29b;font-size:13px}#modal .actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.upgradeChoices{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:25px}.upgradeChoices button{text-align:left;min-height:180px;padding:18px;background:#18271a;letter-spacing:0;border-color:#5f7250}.upgradeChoices strong{font:600 20px/1.1 'Segoe UI';display:block;margin:20px 0 12px;color:#dfd2a5}.upgradeChoices p{font:12px/1.6 'Segoe UI';margin:0;color:#a5b99e}.upgradeChoices small{font:9px Consolas;color:var(--green);letter-spacing:1px}.resultStats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;padding:20px 0;border-block:1px solid #4a5a42}.resultStats b{display:block;font:28px Consolas;color:#d8c78e}.resultStats span{font:9px Consolas;color:#9cac91}.armoryList{display:grid;gap:10px;margin-top:20px}.armoryList button{display:flex;justify-content:space-between;text-align:left}.armoryList small{color:var(--gold)}.controls{display:grid;grid-template-columns:130px 1fr;gap:8px;font:12px Consolas;color:#becbb3}.controls b{color:var(--gold)}
@media(max-height:820px){header{height:64px}.menuHeading{margin-bottom:14px}#menu{margin-top:16px}h1{font-size:36px}.menuHeading>p{margin:8px 0}.briefing>section{padding:15px}.briefing{min-height:310px}.heroChoice{padding:8px 10px}.heroBrief h2{margin-top:8px}.heroStage{height:120px;margin-top:10px}.heroBrief>p{min-height:45px}.deployment{margin-top:12px}.menuFoot{margin-top:10px}#gameUI{top:64px}.console{height:153px}.minimap canvas{height:115px}}
@media(max-width:1050px){#menu{width:calc(100% - 34px)}.briefing{grid-template-columns:210px 1fr 280px}.briefing>section{padding:12px}.heroStage{width:105px}.heroBrief>p{max-width:140px}.console{grid-template-columns:150px 180px 1fr 70px;gap:10px;left:8px;right:8px}.minimap,.minimap canvas{width:140px}#buildings{gap:4px}#buildings button strong{font-size:10px}.heroPanel{padding-right:9px}.brand b{font-size:18px}header{padding-inline:18px}#runHead{gap:10px;font-size:10px}.menuFoot{font-size:9px}}
@media(max-width:760px){body{overflow:auto}#menu{padding-bottom:35px}.briefing{grid-template-columns:1fr 1fr}.heroBrief{border:0}.sectors{grid-column:1/-1;border-top:1px solid #38463a;border-left:0}#maps{grid-template-columns:1fr 1fr}.mapPreview{display:none}.menuHeading h1{font-size:32px}.deployment,.menuFoot{flex-direction:column;align-items:stretch}.brand small{font-size:7px;letter-spacing:2px}#runHead #sector{display:none}.headerRight{gap:4px}.headerRight button{font-size:8px;padding:7px}#credits{display:none}.console{height:150px;grid-template-columns:130px 1fr}.minimap,.minimap canvas{width:125px}.heroPanel{display:none}.utility{display:none}#buildings button{min-height:75px}#buildHint{font-size:8px}#mission{left:8px;width:185px}#wavePanel{right:8px;width:150px}#feed{left:8px;top:125px}.upgradeChoices{gap:8px}.upgradeChoices button{padding:10px;min-height:160px}.upgradeChoices strong{font-size:16px}#modal{padding:20px}.resultStats{grid-template-columns:1fr 1fr}}
#squadBar{position:absolute;bottom:179px;left:225px;display:flex;gap:7px;align-items:center;pointer-events:none}.squadHeading{font:9px Consolas;color:#a7b39b;letter-spacing:1px;margin-right:3px;text-shadow:0 2px 3px #000}.squadHeading b{display:block;color:#dfd1a2}.squadSlot{position:relative;padding:7px 11px 9px;width:130px;background:#0c1713eb;border:1px solid #3b523d}.squadSlot span{display:block;font:10px Consolas;color:#a8b798}.squadSlot small{font:8px Consolas;color:#6a8167}.squadSlot.occupied{border-color:#7d9769}.squadSlot.occupied span{color:#d7dfbe}.squadSlot i{position:absolute;bottom:0;left:0;height:2px;background:#9ec680}#modal:has(.inventoryLayout){max-width:960px}.inventoryHeading{display:flex;align-items:center;justify-content:space-between}.inventoryHeading>span{font:12px Consolas;color:#e6c57a}.inventoryLayout{display:grid;grid-template-columns:310px 1fr;gap:25px}.artifactWheel{width:290px;height:290px;display:block;margin:auto}.artifactSlot{cursor:pointer}.artifactSlot:hover polygon,.artifactSlot:focus polygon{stroke:#f0dfaa;stroke-width:3}.wheelPanel>p{text-align:center;font:10px Consolas!important}.artifactTotals{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.artifactTotals span{border:1px solid #44553d;background:#1b2b1e;font:9px Consolas;color:#a5c99b;padding:4px 7px}.bagHeading{font:10px Consolas;display:flex;justify-content:space-between;color:#b8c8a7;margin:7px 0 12px}.bagHeading span{color:#859d77}.bagGrid{display:grid;grid-template-columns:repeat(8,1fr);gap:5px}.gearTile,.emptyGear{height:42px;border:1px solid #344735;background:#0d1911}.gearTile{position:relative;padding:2px;border-color:var(--rarity);color:var(--rarity);background:linear-gradient(135deg,#1d3327,#0d1710)}.gearTile>span{font:25px Consolas}.gearTile small{position:absolute;right:3px;bottom:1px;font:8px Consolas;color:#bfc7ac}.gearTile.chosen{outline:2px solid #dfd8ac;outline-offset:1px}.gearTile.rarity4{background:linear-gradient(140deg,#7c453a,#5e5940,#2e5061,#4b395d);border-color:#dec389}.gearDetail{border:1px solid #536247;background:#101d14;padding:14px;margin-top:12px;min-height:126px}.gearDetail h3{margin:4px 0;font-size:17px}.gearDetail p{font-size:11px!important;margin:6px 0}.gearDetail>small{font:9px Consolas;color:#95a78a}.gearActions{display:flex;gap:8px;margin-top:10px}.gearActions button{font:9px Consolas;padding:7px}.rarityLegend{display:flex;flex-wrap:wrap;gap:10px;font:9px Consolas;margin-top:15px}.legendText{background:linear-gradient(90deg,#f8aa75,#e6d68e,#9fd7ec,#d6a5f3);background-clip:text;-webkit-text-fill-color:transparent}
@media(max-height:820px){#squadBar{bottom:165px}}@media(max-width:1050px){#squadBar{left:175px}.squadSlot{width:110px}.console{grid-template-columns:150px 180px 1fr 70px}#buildings{grid-template-columns:repeat(3,1fr)}.inventoryLayout{grid-template-columns:260px 1fr;gap:15px}.artifactWheel{width:250px;height:250px}}@media(max-width:760px){#squadBar{left:12px;bottom:166px}.squadSlot{width:90px;padding:6px}.squadSlot span{font-size:8px}.squadSlot small{font-size:7px}.squadHeading{font-size:8px}#buildings{grid-template-columns:repeat(3,1fr)}.console{grid-template-columns:130px 1fr}.inventoryLayout{grid-template-columns:1fr;max-height:65vh;overflow:auto}.artifactWheel{width:220px;height:220px}.inventoryHeading{display:block}.inventoryHeading h2{font-size:26px!important}.inventoryHeading>span{display:block;margin-bottom:12px}.bagGrid{grid-template-columns:repeat(8,1fr)}.wheelPanel{display:flex;flex-direction:column}.inventoryLayout .artifactTotals{display:none}.gearTile,.emptyGear{height:34px}.inventoryLayout+.actions{margin-top:12px!important}}
