:root{color-scheme:dark;--bg:#030a06;--panel:#07130c;--line:#204e30;--text:#b0ffc4;--dim:#73a982;--cyan:#72ff98;--pink:#ffc477;--amber:#72ff98;--mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace}*{box-sizing:border-box}body{margin:0;background:#020604;color:var(--text);font:12px/1.5 var(--mono);text-shadow:0 0 8px #69ff8d22}body:after{content:'';position:fixed;inset:0;pointer-events:none;z-index:20;background:repeating-linear-gradient(0deg,#0002 0,#0002 1px,transparent 1px,transparent 4px);opacity:.45}body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:19;box-shadow:inset 0 0 130px #0008}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;background:transparent;border:1px solid var(--line);border-radius:0;min-height:44px;text-shadow:inherit}button:hover:not(:disabled){background:#153a21;border-color:var(--cyan);box-shadow:0 0 14px #72ff9812}button:focus-visible,a:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}button:disabled{cursor:default;color:#598163;border-color:#1a3823}button:disabled .actionicon{color:#598163}.shell{max-width:1320px;min-height:100svh;margin:auto;padding:0 38px;background:radial-gradient(ellipse at 40% 40%,#10371b2e,transparent 70%)}header{height:78px;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line)}.brand{font:bold 24px/1 var(--mono);letter-spacing:-1px;color:var(--cyan);text-decoration:none;display:flex;align-items:center;gap:10px;text-shadow:0 0 15px #72ff9850}.brandmark{font-size:20px;color:var(--bg);background:var(--cyan);padding:5px 6px;text-shadow:none}.edition{font-size:10px;font-weight:400;letter-spacing:0;color:var(--dim)}.daily{margin-left:auto;display:flex;align-items:center;gap:9px;font-size:10px;color:var(--dim)}.daily b{font-weight:400}.live{display:inline-block;width:6px;height:6px;background:var(--cyan);box-shadow:0 0 8px #72ff9840}.budget{display:flex;align-items:center;gap:22px;border-left:1px solid var(--line);padding-left:22px}.budget small{font-size:10px;color:var(--dim);margin-left:5px}#lives{font-size:12px;color:var(--cyan);white-space:nowrap}.quiet{border:0;color:var(--dim);padding:8px 12px}#help{border:1px solid var(--line);width:36px;height:36px;min-height:36px;padding:0}.game{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:32px;padding-top:30px}.network{min-width:0}.sector{display:flex;align-items:center;justify-content:space-between}.eyebrow{font-size:9px;letter-spacing:1.5px;color:var(--dim)}h1{font-size:34px;line-height:1.2;letter-spacing:-1px;margin:8px 0 0;font-weight:500;text-transform:uppercase;color:var(--cyan);text-shadow:0 0 16px #72ff9835}h1>span{display:inline-block;margin-left:6px;background:var(--cyan);width:17px;height:25px;vertical-align:-2px;font-size:0;box-shadow:0 0 13px #72ff9833}.sectorbadge{font-size:10px;color:var(--dim);border:1px solid var(--line);padding:5px 9px}.mission{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:23px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.mission h2{font-size:11px;font-weight:400;margin:0}.mission h2:before{content:'> ';color:var(--cyan)}.mission p{display:none}.steps{margin-left:auto;display:flex;align-items:center;gap:7px;color:#668571;font-size:13px}.steps span{display:flex;align-items:center;gap:5px}.steps b{font-size:9px;font-weight:400;text-transform:uppercase}.steps i{width:10px;height:1px;background:var(--line)}.steps .done{color:var(--cyan);text-shadow:0 0 8px #72ff9866}.map{height:495px;position:relative;margin:10px auto;isolation:isolate;background-image:linear-gradient(#4bd87408 1px,transparent 1px),linear-gradient(90deg,#4bd87408 1px,transparent 1px);background-size:24px 24px;background-position:center}.map:before,.map:after{content:'+';position:absolute;color:#3c7449;font-size:18px;z-index:-1}.map:before{left:0;top:0}.map:after{right:0;bottom:0}.radar,.mapstamp{display:none}.map svg,#nodes{position:absolute;inset:0;width:100%;height:100%}line,polyline{stroke:#2e663e;stroke-width:1;vector-effect:non-scaling-stroke;fill:none}line.reachable,polyline.reachable{stroke:var(--cyan);stroke-width:1.5;filter:drop-shadow(0 0 3px #72ff9870)}.node{position:absolute;transform:translate(-50%,-50%);width:46px;height:44px;min-height:44px;border:1px solid #3a7149;background:#07130c;display:flex;align-items:center;justify-content:center;padding:0;z-index:2;color:#80ba90}.node:disabled{color:#80ba90;border-color:#3a7149}.node:before{content:'';position:absolute;inset:3px;border:1px solid #20472c;pointer-events:none}.node .symbol{font-size:21px;font-weight:400;line-height:1}.node .num{position:absolute;left:50%;top:calc(100% + 5px);transform:translateX(-50%);font-size:9px;color:var(--dim)}.node .nodelabel{position:absolute;top:calc(100% + 17px);font-size:7px;letter-spacing:1px;white-space:nowrap;color:var(--dim)}.node.available{color:var(--cyan);border-color:var(--cyan);box-shadow:0 0 12px #72ff9812}.node.available:before{border-color:#72ff9840}.node:hover:not(:disabled){background:#174528}.node.vault{border-style:double;border-width:3px}.node.vault .symbol{font-size:23px}.node.exit{border-style:dashed}.node.relay .symbol{font-size:25px}.node.current,.node.current:disabled{color:#041309;background:var(--cyan);border-color:#b3ffc9;box-shadow:0 0 24px #72ff983b;text-shadow:none}.node.current:before{border-color:#174d2a}.node.current:after{content:'';position:absolute;inset:-7px;border:1px solid #72ff9880;clip-path:polygon(0 0,25% 0,25% 2px,2px 2px,2px 25%,0 25%,0 0,100% 0,100% 25%,calc(100% - 2px) 25%,calc(100% - 2px) 2px,75% 2px,75% 0,100% 0,100% 100%,75% 100%,75% calc(100% - 2px),calc(100% - 2px) calc(100% - 2px),calc(100% - 2px) 75%,100% 75%,100% 100%,0 100%,0 75%,2px 75%,2px calc(100% - 2px),25% calc(100% - 2px),25% 100%,0 100%)}.node.current .num{color:var(--cyan)}.enemybadge{position:absolute;top:-13px;right:-12px;min-width:22px;width:max-content;height:20px;border:2px solid var(--bg);background:var(--pink);color:#221706;display:grid;place-items:center;font-size:10px;padding:0 3px;text-shadow:none;box-shadow:0 0 12px #ffc47720}.mapfoot{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:12px 0;font-size:9px;color:var(--dim)}#position{color:var(--cyan)}#seed{font-size:8px}aside{padding-top:0}.console{padding:19px;border:1px solid #3c7c4d;background:#07140b;position:relative}.console:before{content:' COMMAND BUFFER ';display:block;color:var(--cyan);font-size:9px;letter-spacing:1px;position:absolute;top:-8px;left:12px;background:var(--bg);padding:0 6px}.turn{display:flex;justify-content:space-between;align-items:center;color:var(--dim);font-size:11px;text-transform:uppercase}.turn b{font-size:26px;color:var(--cyan);font-weight:400;margin-left:4px}#aps{font-size:18px;color:var(--cyan);letter-spacing:2px;white-space:nowrap}.statusmeters{margin:17px 0 24px}.meterlabel,.integrity{display:flex;justify-content:space-between;font-size:10px;color:var(--dim);text-transform:uppercase}.meterlabel strong{color:var(--cyan);font-weight:400}.meter{height:7px;border:1px solid var(--line);background:#0c2213;margin:7px 0 14px;padding:1px}.meter>div{height:100%;background:var(--cyan);transition:width .2s;mask-image:repeating-linear-gradient(90deg,#000 0,#000 5px,transparent 5px,transparent 7px)}.integrity b{font-weight:400;color:var(--cyan);letter-spacing:2px}.actionheading{display:flex;justify-content:space-between;font-size:9px;color:var(--text);border-top:1px dashed var(--line);padding-top:14px;margin-bottom:10px}.actionheading span{color:var(--dim);font-size:8px}.actions{display:grid;gap:6px}.actions button{display:flex;align-items:center;gap:12px;min-height:60px;text-align:left;padding:10px;background:#091b0e}.actionicon{width:23px;text-align:center;font-size:23px;color:var(--cyan)}.actiontext{font-size:11px}.actiontext small{display:block;font-size:8px;color:var(--dim);margin-top:3px}kbd{font:9px var(--mono);margin-left:auto;color:var(--dim)}kbd:before{content:'['}kbd:after{content:']'}.primary{display:flex;align-items:center;justify-content:space-between;width:100%;background:var(--cyan);border:1px solid var(--cyan);color:#041309;text-shadow:none;padding:14px 12px;margin-top:13px;text-transform:uppercase;font-weight:700;font-size:11px}.primary:hover:not(:disabled){background:#c4ffd4;color:#041309}.primary:disabled{background:#12311b;border-color:#346a41;color:#8ab998}.controls{font-size:8px;color:var(--dim);text-align:center;margin-top:13px}.enemyinfo{display:flex;justify-content:space-between;gap:10px;margin:22px 0}.enemyinfo>div{display:flex;align-items:center;gap:8px;font-size:10px}.enemyinfo small{display:block;font-size:8px;color:var(--dim);margin-top:3px}.enemyicon{width:25px;height:25px;display:grid;place-items:center;border:1px solid #886c3d;color:var(--pink);font-size:11px}.feed{padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.panelhead{display:flex;justify-content:space-between;font-size:8px;color:var(--dim);text-transform:uppercase}#stateLabel{font-size:8px;color:var(--cyan)}#log{margin-top:10px;color:var(--text);font-size:10px;min-height:32px}#log div:not(:first-child){display:none}.abandon{font-size:9px;padding-left:0;margin-top:5px}footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:22px;padding:16px 0;color:var(--dim);font-size:8px;letter-spacing:1px}footer .live{margin-left:7px}dialog{max-width:520px;width:calc(100% - 32px);border:1px solid var(--cyan);border-radius:0;background:#061109;color:var(--text);padding:28px;box-shadow:0 0 60px #72ff9815}dialog::backdrop{background:#000c}dialog h2{font-size:19px;font-weight:400;color:var(--cyan)}dialog p,dialog li{font-size:12px;line-height:1.7}dialog li{margin:7px 0}dialog small{color:var(--dim);font-size:10px}.close{float:right;margin:-14px -14px 10px 6px;font-size:10px}body[data-phase=won] .mission h2{color:var(--cyan)}body[data-phase=lost] .mission h2{color:var(--pink)}@media(min-width:1400px){.map{height:540px}}@media(max-width:1000px){.shell{padding:0 24px}.game{grid-template-columns:minmax(0,1fr) 262px;gap:24px}.console{padding:16px}.map{height:465px}h1{font-size:29px}.steps{gap:5px}.steps i{width:6px}}@media(max-width:700px){.shell{padding:0 16px}header{height:64px;gap:11px}.brand{font-size:19px;gap:7px}.brandmark{font-size:15px;padding:4px}.edition,.daily{display:none}.budget{margin-left:auto;border:0;padding:0;gap:12px;font-size:11px}.budget small{display:none}#lives{font-size:10px}#help{width:32px;height:32px;min-height:32px}.game{display:flex;flex-direction:column;gap:0;padding-top:22px}.eyebrow{font-size:8px}h1{font-size:27px;margin-top:5px}h1>span{width:13px;height:19px}.sectorbadge{font-size:8px;padding:4px 6px}.mission{margin-top:17px;padding:9px 0;gap:6px}.mission h2{font-size:9px}.steps{font-size:12px;gap:4px}.steps b{font-size:8px}.steps i{width:5px}.map{height:360px;margin:7px auto 10px;width:100%}.node{width:44px;height:44px}.node .num{font-size:8px;top:calc(100% + 3px)}.node .nodelabel{display:none}.node .symbol{font-size:20px}.mapfoot{font-size:8px;padding:10px 0}#seed{font-size:7px}aside{display:contents}.console{padding:13px 12px;margin-top:14px}.console:before{font-size:8px}.turn{font-size:9px}.turn b{font-size:21px}#aps{font-size:17px}.statusmeters{display:flex;gap:20px;align-items:center;margin:9px 0 14px}.statusmeters>div:first-child{flex:1}.meterlabel{font-size:8px}.meter{margin:5px 0 0;height:6px}.integrity{flex-direction:column;gap:3px;font-size:8px}.integrity b{font-size:11px}.actionheading,.controls{display:none}.actions{grid-template-columns:repeat(4,1fr);gap:5px}.actions button{flex-direction:column;justify-content:center;gap:5px;padding:7px 1px;min-height:63px}.actionicon{font-size:21px}.actiontext{font-size:8px;white-space:nowrap}.actiontext small,kbd{display:none}.primary{padding:12px;margin-top:10px;font-size:10px}.enemyinfo{justify-content:center;gap:28px;margin:16px 0 12px}.enemyinfo>div{font-size:9px}.enemyinfo small{display:none}.enemyicon{width:21px;height:21px;font-size:9px}.feed{padding:9px 0}.panelhead{font-size:8px}#log{font-size:9px;min-height:15px;margin-top:6px}.abandon{align-self:center;font-size:8px;min-height:32px}footer{font-size:7px;letter-spacing:.5px;margin-top:10px;padding:12px 0}body:before{box-shadow:inset 0 0 70px #0005}}@media(max-width:370px){.shell{padding:0 12px}.brand{font-size:17px}.map{height:335px}.steps b{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
h1{white-space:nowrap}h1>span{vertical-align:baseline}

h1>span{overflow:hidden;vertical-align:-2px}
.levels{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding-top:24px}.levels button{display:flex;align-items:center;gap:13px;padding:12px 15px;text-align:left;background:#07130c}.levels button.selected{border-color:var(--cyan);color:var(--cyan);box-shadow:inset 3px 0 var(--cyan)}.levelnumber{font-size:20px;color:var(--dim)}.levels small{display:block;color:var(--dim);font-size:9px;margin-top:3px}.levelclear{margin-left:auto}.leveldetails{color:var(--dim);font-size:10px;padding-top:10px}.levels button:disabled{opacity:.7}.levels button.selected:disabled{opacity:1}#leveltitle{font-weight:400}.map{height:calc(var(--rows,5) * 96px)}@media(max-width:700px){.levels{gap:6px;padding-top:15px}.levels button{gap:4px;padding:9px 7px;font-size:9px;min-width:0}.levelnumber{display:none}.levels small{font-size:8px}.leveldetails{font-size:8px;line-height:1.7}.game{padding-top:16px}.map{height:calc(var(--rows,5) * 72px)}}
.enemyinfo>div[hidden]{display:none}
/* Keep node IDs readable over network wires, including the active node. */
.node .num{top:calc(100% + 7px);min-width:30px;padding:1px 5px;background:#030a06;color:#c1ffd0;font:600 12px/18px var(--mono);letter-spacing:.4px;text-shadow:none;z-index:3}
.node.current .num{background:#030a06;color:#b5ffcb}
.node .nodelabel{top:calc(100% + 29px);background:#030a06;padding:0 3px;color:#8bc69a}
@media(max-width:700px){.node .num{top:calc(100% + 5px);font-size:11px;line-height:16px;min-width:28px;padding:0 4px}}
/* Node IDs are the primary label, inside the solid tile. */
.node{width:52px;height:52px;min-height:52px;flex-direction:column}
.node .num,.node.current .num{position:static;transform:none;min-width:0;padding:0;margin:7px 0 0;background:transparent;color:#d5ffdf;font:500 17px/22px var(--mono);letter-spacing:0;text-shadow:none;z-index:3}
.node.current .num{color:#041309}
.node .symbol,.node.vault .symbol,.node.relay .symbol{position:absolute;top:5px;left:6px;font-size:10px;line-height:10px;color:#7fbb90}
.node.current .symbol{color:#174d2a}
.node .nodelabel{display:none}
.node:before{inset:2px;border-color:#20472c}
@media(max-width:700px){.node{width:44px;height:44px;min-height:44px}.node .num,.node.current .num{font-size:16px;line-height:20px;margin-top:7px}.node .symbol,.node.vault .symbol,.node.relay .symbol{top:4px;left:5px;font-size:9px;line-height:9px}}
#start{position:relative;isolation:isolate;overflow:hidden;background:#0b2414;color:var(--cyan);border-color:var(--cyan)}
#start:before{content:'';position:absolute;inset:0 auto 0 0;width:var(--charge,0%);background:#287b41;z-index:-1;box-shadow:2px 0 12px #72ff9850}
#start.charging{border-color:#c6ffd5;box-shadow:0 0 20px #72ff9820}
#start:hover:not(:disabled){background:#133b20;color:#c6ffd5}
#start:disabled{border-color:var(--line);color:var(--dim)}
.startcopy{display:flex;flex-direction:column;gap:5px;text-align:left}.startcopy small{font:8px var(--mono);letter-spacing:.5px;color:var(--dim)}.chargevalue{font:12px var(--mono)}.touchkeys{display:none}
@media(pointer:coarse){.startcopy small,.desktopkeys{display:none}.touchkeys{display:inline}}
/* Separate mission selection and compact in-game telemetry. */
[hidden],.game[hidden],.missionselect[hidden],#resume[hidden]{display:none!important}
.missionselect{max-width:900px;margin:65px auto 80px}.selecthead{margin-bottom:28px}.selecthead h1{font-size:34px;margin-top:12px}.missionselect .levels{grid-template-columns:1fr;gap:13px;padding:0}.missionselect .levels button{padding:25px 28px;gap:28px;min-height:130px}.missionselect .levelnumber{display:block;font-size:32px;color:#4a875c;align-self:flex-start}.missioncardbody{display:grid;grid-template-columns:1fr auto;align-items:center;gap:9px 20px;flex:1}.missioncardname{font-size:22px;text-transform:uppercase;color:var(--text)}.missionselect .difficulty{font-size:10px;margin:0;padding:4px 8px;border:1px solid var(--line)}.missioncardfacts{grid-column:1/-1;color:var(--dim);font-size:10px;line-height:1.8}.missionselect .levelclear{font-size:22px}.selectionnote{font-size:10px;color:var(--dim);margin:18px 0}.missionselect #resume{margin:0 0 22px;width:100%}.missionselect .levels button:disabled{opacity:.45}.missionselect .levels button.selected:disabled{opacity:.6}
.game{grid-template-columns:minmax(0,1fr) 280px;gap:28px;padding-top:24px}.playhead{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0 14px;display:flex;align-items:center;gap:24px}.missiontitle{min-width:135px}#missions{padding:0;min-height:28px;font-size:9px;color:var(--dim)}#leveltitle{font-size:22px;letter-spacing:-.5px;margin:4px 0 0;white-space:normal}.hud{flex:1;display:flex;align-items:center;gap:20px}.hud .turn{flex-direction:column;align-items:flex-start;gap:3px;font-size:9px;white-space:nowrap}.hud .turn b{font-size:20px;margin-left:4px}.hud #aps{font-size:12px;letter-spacing:2px;line-height:1}.hud .statusmeters{display:flex;align-items:center;flex:1;gap:18px;margin:0}.hud .statusmeters>div:first-child{flex:1;min-width:60px}.hud .meterlabel{font-size:9px}.hud .meter{margin:7px 0 0}.hud .integrity{flex-direction:column;gap:7px;font-size:9px}.hud .integrity b{font-size:15px;line-height:1;white-space:nowrap}.mission{border:0;margin:0;padding:12px 0;min-height:38px}.mission h2{font-size:10px}.steps{font-size:11px}.map{margin-top:0}.console{margin-top:0}.actionheading{border:0;padding-top:0}.console:before{content:' BEFEHLE '}.enemyinfo{margin:18px 0}.mapfoot{padding:9px 0}.game~footer{margin-top:16px}body[data-screen=game] .edition{display:none}
@media(max-width:1000px){.playhead{gap:15px}.hud{gap:12px}.hud .statusmeters{gap:12px}.missiontitle{min-width:115px}#leveltitle{font-size:19px}.game{gap:22px;grid-template-columns:minmax(0,1fr) 240px}}
@media(max-width:700px){header{height:56px}.game{display:flex;gap:0;padding-top:12px}.playhead{display:block;padding:0 0 13px;border-top:0}.missiontitle{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.missiontitle #missions{order:2;font-size:8px;padding:4px 0;min-height:28px}.missiontitle #leveltitle{font-size:18px;margin:0}.hud{gap:24px}.hud .turn{gap:3px;min-width:75px;font-size:8px}.hud .turn b{font-size:21px}.hud #aps{font-size:11px}.hud .statusmeters{gap:24px}.hud .meterlabel,.hud .integrity{font-size:8px}.hud .integrity b{font-size:15px}.hud .meter{height:6px;margin-top:6px}.mission{padding:9px 0;min-height:30px}.mission h2{font-size:9px}.steps b{display:none}.steps i{width:7px}.map{height:calc(var(--rows,5) * 64px);margin:0 0 5px}.console{margin-top:13px;padding:12px}.console:before{font-size:8px}.enemyinfo{margin:12px 0}.missionselect{margin:27px auto 40px}.selecthead{margin-bottom:22px}.selecthead h1{font-size:25px}.missionselect .levels{gap:11px}.missionselect .levels button{padding:17px 13px;gap:13px;min-height:125px}.missionselect .levelnumber{font-size:21px}.missioncardbody{grid-template-columns:1fr;gap:6px}.missioncardname{font-size:17px}.missionselect .difficulty{justify-self:start;font-size:8px;padding:2px 5px}.missioncardfacts{font-size:8px;line-height:1.8}.missionselect .levelclear{font-size:16px}.selectionnote{font-size:8px}body[data-screen=missions] footer{margin-top:25px}}
/* Calm hierarchy: one shared header, one board, one action column. */
header{border-bottom-color:#163521}
.game{column-gap:40px;row-gap:26px;padding-top:26px}
.playhead{grid-column:1/-1;display:flex;align-items:flex-end;justify-content:space-between;gap:40px;border:0;padding:0 0 6px}
.missiontitle{min-width:0}.missiontitle #missions{font-size:10px;min-height:24px;color:#7ba589;padding:0;margin-bottom:9px}
#leveltitle{font-size:27px;font-weight:400;line-height:1.15;letter-spacing:.3px;margin:0}
.hud{flex:0 1 440px;display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:30px;align-items:start;padding-bottom:1px}
.hudmetric{min-width:0}.metriclabel{display:block;font-size:9px;line-height:14px;letter-spacing:.8px;text-transform:uppercase;color:#7ba589;margin-bottom:8px}
.metricvalue{display:flex;align-items:center;gap:12px;height:25px}.metricvalue b,.metricvalue strong{font:400 21px/25px var(--mono);color:#b0ffc4;white-space:nowrap}.hud #aps{font-size:11px;letter-spacing:2px;line-height:1;color:#72d58e}.hud #hp{font-size:21px;letter-spacing:5px}.hud .meter{flex:1;height:4px;border:0;padding:0;background:#173522;margin:0;min-width:25px}.hud .meter>div{mask-image:none}.hud #trace{font-size:18px}
.network{min-width:0}.mission{margin:0 0 14px;padding:0;min-height:22px;border:0;display:flex;align-items:center}.mission h2{font-size:10px;color:#a2cbae}.mission h2:before{content:''}.steps{display:none}
.map{background-image:linear-gradient(#4bd87405 1px,transparent 1px),linear-gradient(90deg,#4bd87405 1px,transparent 1px);margin:0 0 7px}.map:before,.map:after{display:none}.mapfoot{border:0;padding:10px 0;color:#658f72}#seed{opacity:.65}
.console{padding:0;border:0;background:transparent;margin:0;box-shadow:none}.console:before{display:none}.actionheading{margin:0 0 14px;min-height:22px;padding:0;align-items:center;font-size:10px;color:#a2cbae}.actionheading span{font-size:8px;color:#658f72}.actions{gap:9px}.actions button{background:#08170d;border-color:#244c30;padding:14px 13px;min-height:67px}.actions button:disabled{background:#061009;border-color:#152d1d}.actions button:disabled .actiontext,.actions button:disabled .actionicon{color:#5a7b64}.actions button:disabled small{color:#50705a}.actions .actionicon{font-size:21px}.actiontext{font-size:12px}.actiontext small{font-size:9px}.controls{color:#658f72}.enemyinfo{padding:0;margin:22px 0 16px}.enemyicon{border:0;width:17px}.feed{border:0;padding:0}.panelhead{font-size:8px;color:#658f72}#log{font-size:10px;color:#87b795}.abandon{font-size:9px;color:#658f72}.game~footer{border:0;margin-top:20px;color:#4d7459}.node:before{display:none}.node.current:before{display:block}.node{border-color:#477b55}.node:disabled{border-color:#335b3e}.node.vault{border-width:2px}.node .symbol{color:#7aa286}
@media(max-width:1000px){.game{column-gap:28px;row-gap:23px}.playhead{gap:25px}.hud{flex-basis:380px;gap:20px}#leveltitle{font-size:24px}.metricvalue{gap:9px}}
@media(max-width:700px){header{height:54px}.game{gap:0;padding-top:17px}.playhead{display:block;padding:0;margin-bottom:19px;border:0}.missiontitle{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 21px}.missiontitle #missions{order:2;margin:0;padding:0;min-height:24px;font-size:8px}.missiontitle #leveltitle{font-size:20px;margin:0}.hud{display:grid;grid-template-columns:1fr 1.25fr .9fr;gap:20px;padding:0}.metriclabel{font-size:8px;line-height:12px;margin-bottom:7px;letter-spacing:.5px}.metricvalue{height:22px;gap:8px}.metricvalue b,.metricvalue strong{font-size:21px;line-height:22px}.hud #aps{font-size:9px;letter-spacing:1px}.hud #hp{font-size:19px;letter-spacing:3px}.hud #trace{font-size:17px}.hud .meter{height:3px;min-width:22px}.mission{min-height:15px;margin:0 0 9px;padding:0}.mission h2{font-size:9px}.map{height:calc(var(--rows,5) * 64px);margin:0}.mapfoot{padding:7px 0;font-size:8px}#seed{display:none}.console{margin-top:14px;padding:0;border:0}.actionheading{display:none}.actions{gap:7px}.actions button{min-height:67px;padding:9px 2px}.actiontext{font-size:9px}.actions .actionicon{font-size:21px}.enemyinfo{margin:15px 0 12px}.enemyicon{width:15px}.feed{padding:0}#log{font-size:9px}.game~footer{margin-top:12px;font-size:7px}.abandon{font-size:8px;margin-top:5px}}
/* Local node neighborhood, with a type-free structural overview. */
.map{height:440px;max-width:none;background-image:linear-gradient(#4bd87406 1px,transparent 1px),linear-gradient(90deg,#4bd87406 1px,transparent 1px);background-size:26px 26px}
.localcaption{position:absolute;left:0;top:12px;font-size:8px;letter-spacing:.7px;color:#648e70;z-index:1}
.minimapframe{position:absolute;right:0;top:0;width:122px;height:122px;padding:5px;background:#040d07;border:1px solid #1c3925;z-index:4;pointer-events:none}
.map #minimap{position:static;width:100%;height:100%;display:block}
#minimap line{stroke:#31543b;stroke-width:.7;vector-effect:none;filter:none}
#minimap .mini-node{fill:#42724f;stroke:#70947a;stroke-width:.4}
#minimap .mini-current{fill:#bcffcf;stroke:#bcffcf;stroke-width:1;filter:drop-shadow(0 0 2px #72ff98)}
.map .node{width:66px;height:66px;min-height:66px;background:#07130c}
.map .node .num{font-size:23px;line-height:28px;margin-top:9px}
.map .node .symbol{font-size:12px;line-height:12px;top:7px;left:8px}
.map .node.current{background:#72ff98}
.map .node .nodelabel{display:block;top:calc(100% + 10px);font:8px var(--mono);letter-spacing:1px;background:#030a06;padding:2px 4px;color:#9bc7a8}
.map .node.current:after{inset:-9px}
@media(max-width:700px){.map{height:360px;margin-bottom:8px;background-size:22px 22px}.minimapframe{width:94px;height:94px;padding:4px}.localcaption{font-size:7px;letter-spacing:.2px;top:8px}.map .node{width:56px;height:56px;min-height:56px}.map .node .num{font-size:20px;line-height:24px;margin-top:8px}.map .node .symbol{font-size:10px;line-height:10px;top:6px;left:7px}.map .node .nodelabel{font-size:7px;top:calc(100% + 8px)}.map .node.current:after{inset:-7px}}
/* Thumb controls: directional pad on the left, four skills on the right. */
.dpad{display:none}
@media(max-width:700px){
.mobilecontrols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:center}
.dpad{display:grid;grid-template-columns:repeat(3,minmax(44px,1fr));grid-template-rows:repeat(3,44px);gap:2px;width:100%;max-width:156px;justify-self:center}
.dpad button{font:22px/1 var(--mono);padding:0;min-height:44px;border:1px solid #376744;background:#0a2112;color:#b0ffc4;touch-action:manipulation}
.dpad button:disabled{color:#31523b;border-color:#152d1d;background:#061009}
.dpad button:active:not(:disabled){background:#72ff98;color:#041309}
.dpad-up{grid-area:1/2}.dpad-left{grid-area:2/1}.dpad-center{grid-area:2/2;display:grid;place-items:center;color:#6e9979;font-size:15px}.dpad-right{grid-area:2/3}.dpad-down{grid-area:3/2}
.mobilecontrols .actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;align-self:stretch}
.mobilecontrols .actions button{min-height:65px;padding:7px 2px;gap:5px;touch-action:manipulation}
.mobilecontrols .actiontext{font-size:8px;white-space:normal;text-align:center;line-height:1.3}
.mobilecontrols .actionicon{font-size:20px}
.console{margin-top:12px}.primary{margin-top:14px}
}
@media(max-width:360px){.mobilecontrols{gap:8px}.dpad{grid-template-columns:repeat(3,44px);max-width:136px}.mobilecontrols .actiontext{font-size:7px}}
