@font-face{font-family:Barlow Condensed;src:url("vendor/barlow-condensed.woff2") format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:IBM Plex Mono;src:url("vendor/ibm-plex-mono.woff2") format("woff2");font-weight:500;font-display:swap}
:root{color-scheme:dark;--paper:#f4f0e8;--muted:#bab3a9;--green:#c8f794;--hot:#ff735d;--line:#d7c5ab35;--mono:"IBM Plex Mono",monospace;--display:"Barlow Condensed","Arial Narrow",Impact,sans-serif;--edge:clamp(24px,4.2vw,76px)}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html,body,#app{width:100%;min-height:100%;margin:0}
body{background:#140a0a;color:var(--paper);font:16px/1.55 Inter,"Segoe UI",sans-serif}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible{outline:2px solid var(--green);outline-offset:4px}
svg{display:block;width:24px;height:24px;flex:none}
.symbols{position:absolute;width:0;height:0;overflow:hidden}
.menu{position:relative;isolation:isolate;min-height:100svh;display:flex;flex-direction:column;overflow:hidden;background:#1b100e}
.menu-art,.menu-shade{position:absolute;inset:0;z-index:-1;pointer-events:none}
.menu-art{background:#261512 url("assets/hero.webp") 58% 50%/cover no-repeat}
.menu-shade{background:linear-gradient(90deg,rgba(12,8,8,.9) 0%,rgba(13,8,8,.79) 20%,rgba(15,8,8,.43) 45%,transparent 71%),linear-gradient(0deg,#100909 0%,#10090917 28%,transparent 77%,#100909a8 100%)}
.menu-header{display:flex;justify-content:space-between;align-items:center;margin:0 var(--edge);padding:25px 0 23px;border-bottom:1px solid var(--line);min-height:94px}
.brand,.header-actions{display:flex;align-items:center;gap:15px}
.brand>svg{width:38px;height:38px;color:var(--green)}
.brand>span{font:500 13px/1.35 var(--mono);letter-spacing:.17em}
.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:.19em;margin-top:5px}
.header-actions{gap:23px}
.online,.scene-caption,.eyebrow,.menu-footer small,.high-score{font:500 11px/1.4 var(--mono);letter-spacing:.15em}
.online{color:#e1ddd0;white-space:nowrap;display:flex;align-items:center;gap:10px}
.online i{width:6px;height:6px;box-shadow:0 0 10px #a7ff7b95;background:var(--green);border-radius:50%}
.icon-button{display:grid;place-items:center;width:43px;height:43px;padding:0;border:1px solid var(--line);background:#1b1110b5;color:#f3eadd;transition:background .2s,color .2s,border-color .2s}
.icon-button svg{width:19px;height:19px}
.icon-button:hover,.icon-button[aria-pressed="true"]{background:#304228;border-color:#c7f69389;color:var(--green)}
.header-actions .icon-button{width:44px;height:44px}
.menu-main{flex:1;display:flex;align-items:center;position:relative;min-height:550px;padding:46px var(--edge) 60px}
.briefing{max-width:610px}
.eyebrow{display:flex;align-items:center;gap:12px;color:var(--green);margin:0}
.eyebrow>span{height:1px;width:28px;background:currentColor;flex:none}
h1{font:800 clamp(74px,9.55vw,152px)/.765 var(--display);margin:26px 0 26px;letter-spacing:-.025em;text-shadow:0 10px 55px #11080965}
h1 span{display:block;color:var(--green);margin-top:.105em}
.summary{max-width:360px;margin:33px 0 0;font-size:clamp(15px,1.3vw,19px);line-height:1.57;color:#dad0c5}
.menu-buttons,.dialog-buttons{display:flex;gap:13px;flex-wrap:wrap;margin-top:32px}
.menu-secondary{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.menu-secondary .button{min-height:44px;padding-inline:13px}
.button{min-height:51px;padding:0 17px;display:inline-flex;gap:12px;align-items:center;justify-content:center;border:1px solid transparent;text-transform:uppercase;font:500 11px/1.2 var(--mono);letter-spacing:.1em;transition:color .2s,background .2s,border-color .2s,box-shadow .2s;white-space:nowrap}
.button svg{width:18px;height:18px}
.button.primary{background:var(--green);color:#152315;border-color:var(--green);font-weight:700}
.button.primary:hover{background:#e1ffbe;border-color:#e1ffbe;box-shadow:0 0 30px #b5f58640}
.menu-buttons .primary{min-width:204px;justify-content:space-between;padding-inline:20px}
.button.outline{background:#1b14128c;border-color:#d7c5ab68;color:#f0e7db}
.button.outline:hover{border-color:var(--green);color:var(--green);background:#273422bb}
.button:disabled{opacity:.6;cursor:wait}
.menu-buttons:has(#resume-campaign:not([hidden])) #deploy{background:#1b14128c;border-color:#d7c5ab68;color:#f0e7db;font-weight:500}
.menu-buttons:has(#resume-campaign:not([hidden])) #deploy:hover{border-color:var(--green);color:var(--green);background:#273422bb}
.menu-error{color:#ffab9d;font:500 12px/1.6 var(--mono);max-width:420px}
.scene-caption{position:absolute;bottom:32px;right:var(--edge);display:flex;align-items:center;gap:10px;color:#d9c4ae;text-shadow:0 2px 6px #000}
.scene-caption span{display:inline-block;width:9px;height:9px;border:1px solid #e8ad8b;transform:rotate(45deg)}
.menu-footer{margin:0 var(--edge);padding:24px 0 29px;min-height:106px;display:flex;align-items:center;gap:clamp(24px,5vw,88px);border-top:1px solid var(--line)}
.brief-item{display:flex;align-items:center;gap:13px;min-width:0}
.brief-item svg{width:29px;height:29px;color:var(--green)}
.menu-footer small{display:block;color:#afac9b;font-size:9px;white-space:nowrap}
.menu-footer strong{display:block;font-weight:600;line-height:1.35;margin-top:4px}
.high-score{margin-left:auto;color:var(--green)}
.panel{width:min(460px,calc(100vw - 36px));max-height:calc(100dvh - 36px);overflow:auto;position:fixed;color:var(--paper);background:linear-gradient(145deg,#261917,#141213 65%);border:1px solid #ab927e70;padding:clamp(24px,4vw,37px);box-shadow:0 35px 120px #000b}
.panel::backdrop{background:#100a0bc4;backdrop-filter:blur(5px)}
.close-dialog{position:absolute;top:15px;right:15px}
.panel h2{font:800 56px/.9 var(--display);text-transform:uppercase;letter-spacing:.01em;margin:18px 0 19px}
.panel p:not(.eyebrow){color:var(--muted);font-size:14px;margin:0 0 19px}
.mission-panel{width:min(704px,calc(100vw - 32px));padding:clamp(18px,4vw,34px);overscroll-behavior:contain}
.mission-heading{padding-right:50px}
.mission-panel h2{font-size:clamp(35px,7vw,56px);margin:4px 0 8px}
.mission-panel .mission-count:not(.eyebrow){margin-bottom:10px;color:var(--green);font:500 10px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.mission-panel #mission-intro{max-width:48ch;font-size:13px;line-height:1.45;margin-bottom:14px}
.mission-panel #mission-error{color:#ffab9d;font:500 11px/1.45 var(--mono)}
.mission-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0;padding:0;list-style:none}
.mission-list>li{min-width:0;background:linear-gradient(135deg,#39262170,#24201c70);border:1px solid var(--line)}
.mission-list>li:has(button:not(:disabled)){border-left:2px solid var(--mission-color,var(--green))}
.mission-list>li:has(button:not(:disabled):hover){border-color:var(--mission-color,var(--green));background:#322a21}
.mission-card{width:100%;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:7px;padding:8px 11px 4px;border:0;background:none;text-align:left;color:var(--mission-color,var(--green));font:800 22px/.96 var(--display);letter-spacing:.015em;text-transform:uppercase}
.mission-card svg{width:17px;height:17px}
.mission-card:disabled{color:#c4b4a8;cursor:default}
.mission-card:disabled svg{opacity:.3}
.mission-card:focus-visible{outline-offset:-3px}
.mission-list p:not(.eyebrow){margin:0;padding:0 11px 8px;font:500 9px/1.35 var(--mono);letter-spacing:.035em}
.mission-list>li:has([data-deploy-area="junction"]){--mission-color:#ffb88c}
.mission-list>li:has([data-deploy-area="heart"]){--mission-color:#f7a0a6}
.mission-list>li:has([data-deploy-area="lungs"]){--mission-color:#99ded5}
.mission-list>li:has([data-deploy-area="stomach"]){--mission-color:#edca82}
.mission-list>li:has([data-deploy-area="intestines"]){--mission-color:#ffb4a0}
.mission-list>li:has([data-deploy-area="ear"]){--mission-color:#a7ddf8}
.mission-list>li:has([data-deploy-area="brain"]){--mission-color:#c9b4f7}
.controls-list{margin:17px 0 22px;border-top:1px solid var(--line)}
.controls-list>div{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:8px 0;gap:8px;font-size:13px}
.controls-list dd{display:flex;gap:5px;margin:0}
kbd{font:500 11px var(--mono);border:1px solid #9c8b7773;color:#e4decf;background:#312521;padding:4px 7px;white-space:nowrap}
.settings-list{border-top:1px solid var(--line);margin-bottom:24px}
.setting-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 16px;padding:12px 0;border-bottom:1px solid var(--line)}
.setting-row label{font-size:14px;color:var(--paper)}
.setting-row output{color:var(--green);font:500 13px var(--mono)}
.setting-row input{grid-column:1 / -1;width:100%;min-height:44px;margin:0;accent-color:var(--green);cursor:pointer}
.setting-row select{min-height:44px;min-width:96px;padding:0 8px;border:1px solid #d7c5ab68;background:#211714;color:var(--paper);font:inherit;cursor:pointer}
.setting-row :is(input,select):focus-visible{outline:2px solid var(--green);outline-offset:3px}
.full-button{width:100%;justify-content:space-between}
.result-next{margin-top:20px}
.result-next:not([hidden])~.dialog-buttons{margin-top:12px}
.result-stats{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line);margin:19px 0 0;padding:14px 0;gap:7px}
#result-stats:has(#result-tissue-stat[hidden]){grid-template-columns:repeat(2,minmax(0,1fr))}
.result-stats dt{font:500 9px var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.result-stats dd{font:800 37px/1 var(--display);color:var(--green);margin:4px 0 0}
.node-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0 0;padding-bottom:8px;border-bottom:1px solid var(--line)}
.node-breakdown>div{display:flex;align-items:baseline;justify-content:space-between;gap:4px;padding:5px 7px;background:#382a235c}
.node-breakdown dt{color:var(--muted);font:500 9px/1.3 var(--mono);text-transform:uppercase}
.node-breakdown dd{margin:0;color:var(--green);font:800 18px/1 var(--display);white-space:nowrap}
.extraction-panel h2{font-size:clamp(38px,8vw,54px);margin:16px 0 12px}
.extraction-panel #extraction-detail{margin-bottom:13px}
.extraction-stats{margin-top:0;padding:11px 0;grid-template-columns:1fr 1fr 1.2fr}
.extraction-stats dd{font-size:clamp(25px,5vw,34px);white-space:nowrap}
.overtime-forecast{margin-top:14px;padding:10px 12px;border:1px solid #ab927e70;background:#32231e8c}
.overtime-forecast-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:3px 12px}
.overtime-forecast h3{margin:0;font:800 22px/1 var(--display);letter-spacing:.03em;text-transform:uppercase}
.overtime-forecast-heading>strong{color:#ffc19d;font:500 11px var(--mono);white-space:nowrap}
.panel .overtime-forecast p{margin:7px 0 0;font-size:12px;line-height:1.45}
.overtime-forecast [data-branch]{color:var(--branch)}
.extraction-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:8px;margin-top:15px}
.extraction-actions .button{min-height:46px;padding:5px 6px;white-space:normal;text-align:center}
#result-launch-error{margin:12px 0 0;color:#ffab9d;font:500 11px/1.45 var(--mono)}
.campaign-section {
  margin-top: 20px;
}
.campaign-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 2px 12px;
  margin-bottom: 10px;
}
.campaign-heading h3 {
  margin: 0;
  font: 800 24px/1.1 var(--display);
  text-transform: uppercase;
  letter-spacing: .045em;
}
.campaign-caption {
  color: var(--muted);
  font: 500 9px/1.4 var(--mono);
  text-transform: uppercase;
  letter-spacing: .08em;
}
.campaign-choices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.campaign-choice {
  display: grid;
  align-content: start;
  gap: 4px;
  min-height: 64px;
  padding: 8px 10px;
  border: 1px solid #d7c5ab68;
  background: #1b14128c;
  text-align: left;
}
.campaign-choice strong {
  font: 800 clamp(18px, 5.8vw, 24px)/1 var(--display);
  letter-spacing: .025em;
}
.campaign-choice span {
  color: #d5c9be;
  font: 500 10px/1.35 var(--mono);
}
.campaign-choice:is(:hover, [aria-pressed="true"]):not(:disabled) {
  border-color: var(--green);
  background: #273422bb;
  color: var(--green);
}
.campaign-choice:disabled, .result-next:disabled {
  cursor: default;
}
.campaign-choice:disabled {
  opacity: .56;
}
.panel .campaign-note:not(.eyebrow) {
  margin: 8px 0 0;
  font: 500 10px/1.45 var(--mono);
}
.campaign-note:empty { display: none; }
.campaign-tissue-list {
  margin: 0;
  border-block: 1px solid var(--line);
}
.campaign-tissue-list > div, .campaign-total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
}
.campaign-tissue-list > div {
  padding: 5px 0;
}
.campaign-tissue-list > div + div { border-top: 1px solid var(--line); }
.campaign-tissue-list dt, .campaign-total span {
  color: #e4d6c8;
  font: 500 11px/1.45 var(--mono);
}
.campaign-tissue-list dd, .campaign-total strong {
  margin: 0;
  color: var(--green);
  font: 800 24px/1 var(--display);
}
.campaign-node-detail{display:block;margin-top:3px;color:var(--muted);font:500 8px/1.4 var(--mono);letter-spacing:.04em}
.campaign-total { margin-top: 9px; }
.campaign-total strong { font-size: 31px; }
.game{position:fixed;inset:0;background:#260c0c;overflow:hidden;touch-action:none;user-select:none}
#world,.game-vignette,.hud,.damage-flash{position:absolute;inset:0;width:100%;height:100%}
#world{display:block;touch-action:none}
.game-vignette{background:radial-gradient(ellipse at 50% 44%,transparent 46%,#10070962 100%);pointer-events:none}
.damage-flash{opacity:0;background:radial-gradient(ellipse at center,transparent 28%,#df14163d 62%,#f62521bf 100%);pointer-events:none}
.hud{pointer-events:none;font:500 11px/1.35 var(--mono);letter-spacing:.1em;text-shadow:0 2px 5px #080404d9;color:#fcf2df}
.hud-label{display:flex;align-items:center;gap:8px;font:500 10px/1.35 var(--mono);letter-spacing:.12em;color:#f3e4d5;white-space:nowrap}
.hud-label svg{width:17px;height:17px;color:var(--green)}
.host-panel,.player-panel,.ammo-panel{position:absolute;min-width:177px;padding:11px 13px 12px;background:linear-gradient(110deg,#201110de,#1c1511a9);border-top:1px solid #d7c5ab62;border-left:1px solid #d7c5ab42}
.host-panel{top:25px;left:25px;width:min(252px,37vw)}
.meter{height:4px;background:#f0e1bc3b;overflow:hidden}
.player-panel .meter{margin:9px 0 0}
.meter>div{height:100%;width:100%;background:var(--green);box-shadow:0 0 9px var(--green);transition:width .13s,background .13s}
.node-status{display:grid;gap:6px;margin-top:7px}
.node-row{--node-color:var(--green);display:grid;gap:3px}
.game[data-area="junction"] .node-row[data-tissue-node="0"]{--node-color:var(--branch)}
.node-row[data-tissue-node="1"]{--node-color:#8fe4dd}
.game[data-area="junction"] .node-row[data-tissue-node="0"].under-attack{--node-color:#ffb18f}
.game[data-area="junction"] .node-row[data-tissue-node="0"].critical{--node-color:#ff826d}
.node-readout{display:flex;justify-content:space-between;align-items:baseline;gap:5px;color:var(--paper);font-size:9px;letter-spacing:.05em;text-transform:uppercase}
.node-readout strong{color:var(--node-color);white-space:nowrap}
.node-row .meter{height:3px}
.node-row .meter>div{background:var(--node-color);box-shadow:0 0 7px var(--node-color)}
.node-row.under-attack{--node-color:#ffb18f}
.node-row.critical{--node-color:#ff826d}
.node-state{font-size:8px;line-height:1.15;color:var(--node-color);letter-spacing:.04em}
.gash-status{margin-top:4px;color:#ffb18f;font-size:8px;letter-spacing:.04em;overflow-wrap:anywhere}
.host-panel:has(.node-row:is(.under-attack,.critical)){border-top-color:#ff9679}
.player-panel.critical .meter>div{background:var(--hot);box-shadow:0 0 9px var(--hot)}
.wave-panel{position:absolute;top:25px;left:50%;transform:translateX(-50%);text-align:center;min-width:132px;background:linear-gradient(180deg,#1c1012bc,#1c101200);padding:7px 15px 17px}
.wave-panel .hud-label{justify-content:center}
.wave-panel strong{display:block;font:800 40px/.9 var(--display);color:var(--green);margin:4px 0 5px}
.wave-panel strong span{font-size:24px;color:#efdfc8}
.wave-panel small{font-size:9px;white-space:nowrap}
.game[data-area="junction"] .wave-panel>strong{font-size:31px;letter-spacing:.06em}
.game[data-area="heart"] .wave-panel{min-width:155px}
.game[data-area="heart"] .wave-panel>strong{font-size:32px;letter-spacing:.06em;color:#ffc19d}
.game[data-area="heart"][data-valve="exposed"] .wave-panel>strong{color:var(--green)}
.valve-readout{margin-top:6px;color:#f1daca;font-size:8px;letter-spacing:.08em;white-space:nowrap}
.valve-readout .meter{height:3px;margin-bottom:5px}
.valve-readout .meter>div{background:#ffc19d;box-shadow:none;transition:none}
.flank-status{display:block;margin-top:3px;color:#8fe4dd}
.game[data-valve="exposed"] .valve-readout .meter>div{background:var(--green)}
.branch-readout{display:flex;justify-content:center;gap:5px;margin-top:7px;white-space:nowrap;font-size:8px;letter-spacing:.06em}
.branch-readout>span{border:1px solid var(--branch);padding:3px 5px;color:var(--branch);background:#171414cc;opacity:.6}
.branch-readout>span.active{opacity:1}
.branch-readout>span.striking{background:var(--branch);color:#171412;text-shadow:none}
.branch-readout>span.reinforced{border-style:double;border-width:3px;padding:1px 3px;opacity:1;box-shadow:0 0 9px #b1e1c452}
.junction-wave-name,.junction-forecast{margin-top:4px;font-size:8px;letter-spacing:.045em}
.junction-wave-name{color:#f0e7d6}
.junction-forecast{color:#ffcca1}
.junction-surge{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"target time" "threat time";column-gap:8px;align-items:center;min-width:132px;margin:6px auto 0;padding:5px 6px;border:1px solid #d7c5ab65;border-left:2px solid var(--branch,#f5e6d0);background:#181514e8;text-align:left;line-height:1.2;letter-spacing:.035em}
.junction-surge-target{grid-area:target;color:var(--branch,#f5e6d0);font-weight:700;text-transform:uppercase}
.junction-surge-threat{grid-area:threat;color:#ecdac8;font-size:9px}
.junction-surge-time{grid-area:time;min-width:2.5ch;color:var(--branch,#f5e6d0);font:800 23px/.9 var(--display);font-variant-numeric:tabular-nums;text-align:right}
.junction-surge[data-urgent="true"]{border-color:var(--branch,#f5e6d0);background:#30211cee}
.organ-hazard{--condition:#a7e1dc;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label time" "detail time";gap:3px 10px;align-items:center;width:min(206px,40vw);margin:7px auto 0;padding:6px 8px;border:1px solid #d7c5ab65;border-left:2px solid var(--condition);background:#181514ed;text-align:left;line-height:1.25;letter-spacing:.035em}
.organ-hazard[data-phase="warning"]{--condition:#ffd18f;background:#2a2119f0}
.organ-hazard[data-phase="active"]{--condition:#ff9c83;background:#351f1bed}
.organ-hazard-label{grid-area:label;color:var(--condition);font-weight:700;text-transform:uppercase}
.organ-hazard-detail{grid-area:detail;color:#ead8c9;font-size:9px;overflow-wrap:anywhere}
.organ-hazard-time{grid-area:time;min-width:2ch;color:var(--condition);font:800 22px/.9 var(--display);text-align:right}
.organ-hazard-time:empty{display:none}
.game:has(#boss-hud:not([hidden])) .host-panel{width:min(232px,25vw)}
.wave-panel:has(#boss-hud:not([hidden])){width:min(346px,40vw);padding:0 0 5px;background:none}
.wave-panel:has(#boss-hud:not([hidden])) :is(#wave-mode,#wave-value){display:none}
.boss-hud {
  --boss-color:#d9b9ec;
  padding:9px 11px 8px;
  border:1px solid #d9b9ec55;
  border-top:2px solid var(--boss-color);
  background:linear-gradient(145deg,#241827f0,#16121bee);
  text-align:left;
}
.boss-hud[data-state="warning"]{--boss-color:#ffbd90}
.boss-hud[data-state="exposed"]{--boss-color:#e2f9a7}
.boss-hud[data-state="defeated"]{--boss-color:#c4e8cc}
.boss-heading{display:flex;align-items:baseline;justify-content:space-between;gap:5px 9px}
.boss-heading h2{margin:0;color:#fcf0f6;font:800 30px/.92 var(--display);letter-spacing:.07em;text-transform:uppercase}
.boss-phase{color:var(--boss-color);font-size:9px;letter-spacing:.07em;text-align:right;text-transform:uppercase}
.boss-health{position:relative;height:7px;margin:7px 0 6px;background:#dbc2e139}
.boss-health::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,transparent calc(33.333% - 1px),#251729 calc(33.333% - 1px) calc(33.333% + 1px),transparent calc(33.333% + 1px) calc(66.667% - 1px),#251729 calc(66.667% - 1px) calc(66.667% + 1px),transparent calc(66.667% + 1px));
}
.boss-health>div{background:linear-gradient(90deg,#b16592,#e7aac2);box-shadow:none}
.boss-readout{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"status time" "detail time";align-items:center;gap:2px 9px;letter-spacing:.04em;line-height:1.2}
.boss-status{grid-area:status;color:var(--boss-color);font-weight:700;text-transform:uppercase}
.boss-status-detail{grid-area:detail;color:#eddbe8;font-size:9px;overflow-wrap:anywhere}
.boss-status-detail:empty,.boss-time:empty{display:none}
.boss-time{grid-area:time;color:var(--boss-color);font:800 24px/.96 var(--display);font-variant-numeric:tabular-nums}
.wave-panel:has(#boss-hud:not([hidden])) #threats{display:block;margin:4px auto 0;color:#edcce8}
.wave-panel:has(#boss-hud:not([hidden])) .organ-hazard{width:100%;margin-top:4px}
.boss-marker{position:absolute;z-index:1;transform:translate(-50%,calc(-100% - 5px));color:#e2f9a7;white-space:nowrap;text-transform:uppercase;font-size:9px;letter-spacing:.06em}
.boss-marker strong{display:block;padding:3px 5px;background:#21251bea;border:1px solid #effbc683}
.boss-marker::after{content:"";position:absolute;top:100%;left:50%;height:5px;width:1px;background:currentColor}
.game:has(#airway-hud:not([hidden])) .host-panel{width:min(232px,25vw)}
.wave-panel:has(#airway-hud:not([hidden])){width:min(320px,39vw);padding:0 0 5px;background:none}
.wave-panel:has(#airway-hud:not([hidden])) :is(#wave-mode,#wave-value){display:none}
.wave-panel:has(#airway-hud:not([hidden])) #threats{display:block;margin:4px auto 0;color:#e6decd}
.wave-panel:has(#airway-hud:not([hidden])) .organ-hazard{width:100%;margin-top:4px}
.airway-hud{
  --airway:#ffbd90;
  padding:8px 10px;
  border:1px solid #9ed2c65c;
  border-top:2px solid var(--airway);
  background:linear-gradient(145deg,#1b2725f2,#141916f2);
  text-align:left;
}
.airway-hud[data-state="holding"],.airway-hud[data-state="secured"]{--airway:#b5eee0}
.airway-hud h2{margin:0 0 7px;color:#e8f2ed;font:800 27px/.95 var(--display);letter-spacing:.06em;text-transform:uppercase}
.airway-ports{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-bottom:7px}
.airway-port{
  --port:#ffbd90;
  display:grid;gap:2px;
  padding:4px 5px;
  border:1px solid #a9d4c34d;
  border-left:2px solid var(--port);
  color:#eee4d4;
  background:#120d0b82;
  font-size:9px;
  letter-spacing:.02em;
  overflow-wrap:anywhere;
}
.airway-port[data-state="repairing"]{--port:#f6d998}
.airway-port[data-state="open"]{--port:#9adfbe}
.airway-port-state{color:var(--port);text-transform:uppercase;font-weight:700}
.airway-readout{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"status time" "detail time";align-items:center;gap:2px 6px;letter-spacing:.04em;line-height:1.2}
.airway-status{grid-area:status;color:var(--airway);font-weight:700;text-transform:uppercase}
.airway-detail{grid-area:detail;color:#e3ded0;font-size:9px;overflow-wrap:anywhere}
.airway-time{grid-area:time;color:var(--airway);font:800 24px/.96 var(--display);font-variant-numeric:tabular-nums}
.airway-detail:empty,.airway-time:empty{display:none}
.airway-hold{appearance:none;display:block;width:100%;height:4px;margin-top:6px;border:0;background:#bedcc443;color:var(--airway)}
.airway-hold::-webkit-progress-bar{background:#bedcc443}
.airway-hold::-webkit-progress-value{background:var(--airway)}
.airway-hold::-moz-progress-bar{background:var(--airway)}
[data-branch="left"]{--branch:#ffbd7e}
[data-branch="right"]{--branch:#8fe4dd}
.game-actions{position:absolute;right:25px;top:25px;display:flex;gap:7px;pointer-events:auto}
.player-panel{left:25px;bottom:26px}
.player-panel>strong,.ammo-panel>strong{font:800 49px/.9 var(--display);color:var(--green);display:inline-block;margin-top:3px;letter-spacing:0}
.ammo-panel{right:25px;bottom:26px;text-align:right;border-left:0;border-right:1px solid #d7c5ab42}
.ammo-panel .hud-label{justify-content:flex-end}
.ammo-panel>span{color:#e5d5c0}
.ammo-panel>#reload-state{margin-top:5px;font-size:9px;color:#e5d5c0}
.campaign-equipped{margin-top:5px;font-size:8px;letter-spacing:.05em;color:var(--green);text-transform:uppercase}
.turret-status{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:7px;padding-top:6px;border-top:1px solid var(--line);color:#8fe4dd;font-size:9px;letter-spacing:.065em;text-transform:uppercase}
.turret-status kbd{padding:1px 4px;color:inherit;font-size:9px}
.turret-status[data-state="blocked"]{color:#ffbd7e}
.turret-status[data-state="engaging"]{color:#b8f4ed}
.turret-status:is([data-state="online"],[data-state="engaging"]) kbd{display:none}
.field-hint{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);padding:7px 13px;background:#211514a9;white-space:nowrap;display:flex;align-items:center;gap:11px;font-size:9px;color:#eadfcc}
.field-hint span{width:3px;height:3px;border-radius:50%;background:var(--green)}
.reticle,.hit-marker{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30px;height:30px;filter:drop-shadow(0 1px 2px #000)}
.reticle{--offset:4px;opacity:.86}
.reticle.aim{opacity:0}
.reticle i,.reticle b{position:absolute;background:#f9f4d2}
.reticle i:nth-child(-n+2){top:50%;height:1px;width:7px}
.reticle i:nth-child(1){left:var(--offset)}
.reticle i:nth-child(2){right:var(--offset)}
.reticle i:nth-child(n+3){left:50%;width:1px;height:7px}
.reticle i:nth-child(3){top:var(--offset)}
.reticle i:nth-child(4){bottom:var(--offset)}
.reticle b{width:2px;height:2px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%}
.hit-marker{opacity:0;transform:translate(-50%,-50%) rotate(45deg)}
.hit-marker i{position:absolute;background:#fff3d2}
.hit-marker.critical i{background:#ff8861}
.hit-marker i:nth-child(-n+2){top:50%;height:2px;width:8px}
.hit-marker i:nth-child(1){left:-2px}.hit-marker i:nth-child(2){right:-2px}
.hit-marker i:nth-child(n+3){left:50%;width:2px;height:8px}
.hit-marker i:nth-child(3){top:-2px}.hit-marker i:nth-child(4){bottom:-2px}
.mission-guidance{position:absolute;top:max(128px,23%);left:50%;transform:translateX(-50%);width:min(440px,calc(100% - 32px));display:grid;justify-items:center;gap:10px;text-align:center}
.game:has(#junction-surge:not([hidden])) .mission-guidance{top:max(222px,27%)}
.game:has(#junction-surge:not([hidden])) .game-alert{font-size:clamp(22px,3.25vw,40px)}
.mission-guidance:has(.training-hint:not([hidden])){top:clamp(128px,18%,170px)}
.game:has(#organ-hazard:not([hidden])) .mission-guidance{top:max(195px,25%)}
.game:has(#boss-hud:not([hidden])) .mission-guidance{top:79px;right:25px;left:auto;transform:none;width:min(220px,27vw)}
.game:has(#boss-hud:not([hidden])) .game-alert{font-size:clamp(20px,2.45vw,31px)}
.game:has(#boss-hud:not([hidden])) .game-alert small{margin-top:6px}
.training-hint{width:fit-content;padding:9px 14px 10px;background:#1b1412e8;border:1px solid #d7c5ab45;border-top-color:var(--green)}
.training-hint strong{display:block;color:var(--green);font:800 clamp(19px,2.5vw,26px)/1.1 var(--display);letter-spacing:.045em;text-transform:uppercase}
.training-hint p{max-width:35ch;margin:3px 0 0;color:var(--paper);font:500 clamp(10px,1.35vw,12px)/1.4 var(--mono);letter-spacing:0}
.game-alert{color:var(--green);font:800 clamp(26px,4vw,55px)/1 var(--display);letter-spacing:.085em;text-shadow:0 4px 16px #1b0e0a,0 0 24px #000}
.game-alert:empty{display:none}
.game-alert small{display:block;margin-top:9px;color:var(--paper);font:500 10px/1.4 var(--mono);letter-spacing:.16em}
.action-prompt{position:absolute;bottom:22%;left:50%;transform:translateX(-50%);min-width:160px;padding:9px 15px;background:#211712dd;border:1px solid #d7c5ab55;color:#f8eacb;text-align:center;white-space:nowrap}
.action-prompt .meter{margin-top:7px}
.action-prompt.restored{border-color:#9cd969;color:var(--green);background:#17271beb}
.objective-marker{position:absolute;transform:translate(-50%,-100%);padding:0 0 4px;display:grid;justify-items:center;color:var(--green);text-align:center;white-space:nowrap;font-size:9px}
.objective-marker>span{width:9px;height:9px;transform:rotate(45deg);border:1px solid currentColor;margin-bottom:6px;background:#243126a6}
.objective-marker small{font-size:8px;color:#e9e5bf}
.objective-edge{position:absolute;left:var(--objective-x,50%);top:var(--objective-y,50%);transform:translate(-50%,-50%);display:flex;align-items:center;gap:5px;padding:4px 6px;border:1px solid #c8f79480;background:#171614e8;color:var(--green);font-size:9px;line-height:1.15;max-width:min(152px,46vw)}
.objective-edge strong{overflow-wrap:anywhere}
.objective-edge svg{width:14px;height:14px;transform:rotate(var(--objective-angle,0deg))}
.game[data-area="junction"] #objective-marker,.game[data-area="junction"] #objective-edge{color:var(--branch)}
.game[data-area="junction"] #objective-edge{border-color:#ffbd7e80}
.game[data-area="junction"] #objective-marker.under-attack,.game[data-area="junction"] #objective-edge.under-attack{color:#ffbd92}
.game[data-area="junction"] #objective-marker.critical,.game[data-area="junction"] #objective-edge.critical{color:#ff8a73}
.game[data-area="junction"] #objective-edge:is(.under-attack,.critical){border-color:currentColor}
#secondary-marker,#secondary-edge{color:#8fe4dd}
#secondary-edge{border-color:#8fe4dd80}
.objective-marker.under-attack,.objective-edge.under-attack,#secondary-marker.under-attack,#secondary-edge.under-attack{color:#ffbd92}
.objective-marker.critical,.objective-edge.critical,#secondary-marker.critical,#secondary-edge.critical{color:#ff8a73}
.objective-edge:is(.under-attack,.critical),#secondary-edge:is(.under-attack,.critical){border-color:currentColor}
.turret-marker{color:#a8e3ff}
.turret-marker>span{width:7px;height:7px;transform:none;background:#16324ccc}
.gash-marker,.gash-edge{color:#ffb18f}
.gash-marker>span{background:#442219e8}
.gash-marker strong{padding:3px 5px;border:1px solid #ffa18180;background:#2d1714eb}
.gash-edge{border-color:#ffa181a6;background:#2d1714f2}
.junction-supply {
  position:absolute;
  top:50%;
  left:25px;
  transform:translateY(-50%);
  width:min(348px,calc(100% - 28px));
  padding:10px;
  border:1px solid #d7c5ab50;
  border-top-color:var(--green);
  background:#211514f5;
  pointer-events:auto;
  touch-action:manipulation;
}
.junction-supply h2 {
  margin:0 0 8px;
  color:var(--green);
  font:800 20px/1 var(--display);
  letter-spacing:.055em;
  text-transform:uppercase;
}
.junction-supply-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.junction-supply-options button {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:44px;
  padding:4px;
  border:1px solid #d7c5ab50;
  background:#35231f;
  color:var(--branch,#f5e6d0);
  font:500 10px/1.2 var(--mono);
  text-align:left;
  text-transform:uppercase;
}
.junction-supply-options kbd{padding:2px 4px;color:inherit}
.junction-supply-options [data-junction-supply="turret"]{color:#a8e3ff}
.junction-supply-options button:is(:hover,[aria-pressed="true"]):not(:disabled){border-color:currentColor;background:#51342b}
.junction-supply-options button:disabled{opacity:.5;cursor:default}
.junction-supply-options button[aria-pressed="true"]:disabled{opacity:1;border-color:currentColor;background:#51342b}
.junction-supply p{min-height:1.3em;margin:7px 0 0;color:#e5d5c0;font-size:9px;letter-spacing:0}
.junction-supply .junction-supply-plan{margin:0 0 7px;color:#ffcfaa}
.inlet-marker{position:absolute;transform:translate(-50%,-100%);color:var(--branch);padding:3px 6px;background:#131414cc;border-bottom:1px solid currentColor;font-size:9px;white-space:nowrap}
.attacker-marker{position:absolute;transform:translate(-50%,-100%);display:grid;justify-items:center;gap:4px;color:#ffb695;white-space:nowrap}
.attacker-marker strong{font-size:8px;line-height:1;letter-spacing:.09em;padding:4px 6px;background:#290d0ee8;border:1px solid #ff997060}
.attacker-marker span{width:7px;height:7px;border-right:2px solid #ff9471;border-bottom:2px solid #ff9471;transform:rotate(45deg);filter:drop-shadow(0 1px 2px #130303)}
.attacker-marker.compact strong{display:none}
.attacker-marker[data-branch]{color:var(--branch)}
.attacker-marker[data-branch] strong{border-color:var(--branch);background:#151718e8}
.attacker-marker[data-branch] span{border-color:var(--branch)}
.attacker-marker.winding-up{color:#ffd18a}
.attacker-marker.winding-up strong{border-color:#ffb86d;background:#2b1711ef}
.attacker-marker.winding-up span{border-color:#ffb86d}
.touch-controls{position:absolute;inset:0;pointer-events:none}
.joystick{position:absolute;bottom:95px;left:25px;width:105px;height:105px;background:#25170f57;border:1px solid #f6edcf66;border-radius:50%;display:grid;place-items:center;pointer-events:auto}
.joystick div{width:39px;height:39px;border-radius:50%;background:#ceef97a6;border:1px solid #eefacd}
.touch-actions{position:absolute;right:24px;bottom:155px;display:grid;grid-template-areas:". . turret" "reload repair fire";gap:7px;align-items:center;justify-items:center}
.touch-actions button{width:53px;height:53px;border:1px solid #f6edcf70;border-radius:50%;background:#25170f9c;font:500 9px var(--mono);text-transform:uppercase;padding:0;pointer-events:auto}
.touch-actions [data-touch="reload"]{grid-area:reload}
.touch-actions [data-touch="repair"]{grid-area:repair}
.touch-actions .touch-fire{grid-area:fire;width:65px;height:65px;background:#c8f794bc;color:#151f10}
.touch-actions:has(#touch-turret[hidden]){grid-template-areas:"reload repair fire"}
#touch-turret{grid-area:turret;color:#a8e3ff;border-color:#a8e3ffae;background:#183142da;touch-action:manipulation}
#touch-turret:disabled{opacity:.46;cursor:default}
.touch-actions button:active{filter:brightness(1.2)}
@media(max-width:720px){
  .menu-header{min-height:75px;padding:16px 0}
  .brand>svg{width:32px;height:32px}
  .brand{gap:10px}
  .brand>span{font-size:11px}
  .brand small{font-size:8px}
  .header-actions{gap:10px}
  .online{font-size:8px}
  .menu-main{min-height:490px;padding-top:60px;padding-bottom:60px;align-items:center}
  .menu-art{background-position:64% 50%}
  .menu-shade{background:linear-gradient(90deg,#0c0808e5,#0d08089c 48%,#10090915 100%),linear-gradient(0deg,#100909,#10090900 32%,transparent 82%,#100909a8)}
  h1{font-size:clamp(72px,15vw,108px)}
  .scene-caption{display:none}
  .menu-footer{gap:14px;justify-content:space-between;min-height:86px;padding:15px 0}
  .brief-item{gap:6px}
  .brief-item svg{width:19px;height:19px}
  .menu-footer small{font-size:7px;letter-spacing:.04em;white-space:normal}
  .menu-footer strong{font-size:11px}
  .high-score{display:none}
  .game-actions{top:12px;right:12px}
  .game-actions .icon-button{width:33px;height:33px}
  .host-panel,.player-panel,.ammo-panel{padding:7px 8px;min-width:100px}
  .host-panel{top:12px;left:12px}
  .player-panel{left:12px;bottom:12px}
  .ammo-panel{right:12px;bottom:12px}
  .player-panel>strong,.ammo-panel>strong{font-size:32px}
  .wave-panel{top:10px;min-width:90px;padding-inline:0}
  .wave-panel .hud-label,.hud-label{font-size:8px;gap:4px}
  .node-status{gap:5px;margin-top:6px}
  .node-readout{font-size:8px}
  .wave-panel strong{font-size:31px}
  .wave-panel small{font-size:7px}
  .wave-panel strong span{font-size:17px}
  .organ-hazard{width:min(180px,42vw);padding:4px 5px;column-gap:6px;font-size:9px}
  .organ-hazard-detail{font-size:8px}
  .organ-hazard-time{font-size:18px}
  .game:has(#organ-hazard:not([hidden])) .mission-guidance{top:max(156px,26%)}
  .game[data-area="junction"] .wave-panel>strong{font-size:24px}
  .game[data-area="heart"] .wave-panel{min-width:105px;padding-inline:6px}
  .game[data-area="heart"] .wave-panel>strong{font-size:25px}
  .mission-guidance{top:max(114px,23%)}
  .mission-guidance:has(.training-hint:not([hidden])){top:max(114px,16%)}
  .branch-readout{gap:3px;font-size:7px}
  .branch-readout>span{padding:2px 3px}
  .branch-readout>span.reinforced{padding:0 1px}
  .junction-surge{min-width:0;max-width:135px;padding:4px 5px;column-gap:6px;font-size:9px}
  .junction-surge-threat{font-size:8px}
  .junction-surge-time{font-size:20px}
  .junction-supply{left:50%;top:36%;transform:translateX(-50%)}
  .junction-supply h2{font-size:18px}
  .hud-label svg{width:12px;height:12px}
  .field-hint{display:none}
  .touch-actions{bottom:130px}
}
@media(max-height:650px) and (min-width:721px){
  .menu-header{min-height:66px;padding:11px 0}
  .menu-main{min-height:415px;padding-block:33px}
  .menu-footer{min-height:78px;padding-block:12px}
  h1{font-size:clamp(65px,14vh,100px);margin-block:19px}
  .summary{margin-top:20px}
  .menu-buttons{margin-top:22px}
}
@media(min-width:721px) and (max-width:1100px) and (min-height:501px){
  .junction-supply{width:min(348px,30vw)}
}
@media(max-width:480px){
  .online{display:none}
  .menu-buttons:has(#resume-campaign:not([hidden])){gap:7px}
  .menu-buttons:has(#resume-campaign:not([hidden])) .button{min-height:45px}
  .menu-secondary{gap:6px}
  .menu-secondary .button{padding-inline:8px;gap:6px;font-size:10px}
  .mission-panel{padding:16px}
  .mission-panel .close-dialog{top:12px;right:12px}
  .mission-card{font-size:18px;padding-inline:8px}
  .mission-card svg{width:13px;height:13px}
  .mission-list p:not(.eyebrow){padding-inline:8px}
  .host-panel{width:44vw}
  .game .wave-panel{top:49px;left:auto;right:12px;transform:none;max-width:46vw;padding:3px 7px 12px}
  .game:has(#organ-hazard:not([hidden])) .mission-guidance{top:max(204px,25%)}
  .objective-edge{max-width:min(144px,42vw);letter-spacing:.04em}
  .game .mission-guidance:has(.training-hint:not([hidden])){top:max(142px,17%)}
  .game:is([data-area="junction"],[data-area="heart"]) .mission-guidance{top:max(23%,194px)}
  .game[data-area="junction"]:has(.junction-supply:not([hidden])) .junction-forecast{display:none}
  .game:has(.junction-supply:not([hidden])) .game-alert small{display:none}
  .junction-supply{top:max(225px,37%);padding:7px}
  .junction-supply h2{margin-bottom:5px;font-size:16px}
  .junction-supply .junction-supply-plan{margin-bottom:5px}
  .junction-supply p{margin-top:5px;line-height:1.3}
  .game:has(#touch-controls:not([hidden])) .action-prompt{bottom:196px;max-width:calc(100% - 20px);white-space:normal}
  .game:has(#touch-controls:not([hidden])):has(.junction-supply:not([hidden])) .action-prompt{top:max(225px,37%);bottom:auto;transform:translate(-50%,calc(-100% - 5px));width:max-content;padding:5px 9px;font-size:9px}
  .game:has(.junction-supply:not([hidden])):has(.action-prompt:not([hidden])) .mission-guidance{display:none}
  .game:has(.junction-supply:not([hidden])) .ammo-panel{padding-block:5px}
  .game:has(.junction-supply:not([hidden])) .ammo-panel>strong{font-size:27px}
  .game:has(.junction-supply:not([hidden])) .touch-actions{bottom:117px}
  .game:has(.junction-supply:not([hidden])) .joystick{width:72px;height:72px}
  .touch-actions{right:12px;grid-template-areas:"reload repair turret fire";gap:5px}
  .touch-actions:has(#touch-turret[hidden]){grid-template-areas:"reload repair fire"}
  .touch-actions button{width:44px;height:44px}
  .touch-actions .touch-fire{width:55px;height:55px}
  .joystick{left:12px;width:84px;height:84px}
}
@media(orientation:landscape) and (max-height:500px){
  .mission-panel{padding:16px}
  .mission-panel h2{font-size:32px}
  .mission-list{grid-template-columns:repeat(4,minmax(0,1fr))}
  .mission-card{font-size:18px;padding-inline:8px}
  .mission-list p:not(.eyebrow){padding-inline:8px}
  .game:has(#organ-hazard:not([hidden])) .mission-guidance{left:50%;top:auto;bottom:21%;width:min(340px,53vw)}
  .game:has(#organ-hazard:not([hidden])) .game-alert{font-size:21px}
  .game:has(#organ-hazard:not([hidden])) .game-alert small{margin-top:5px;font-size:8px}
  .game[data-area="junction"] .host-panel{width:min(180px,31vw)}
  .junction-supply{left:12px;top:auto;bottom:89px;transform:none;width:min(310px,calc(40vw - 18px));padding:6px}
  .junction-supply h2{margin-bottom:5px;font-size:16px}
  .junction-supply-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
  .junction-supply-options button{font-size:8px;padding-inline:2px}
  .junction-supply p{margin-top:5px;font-size:8px;line-height:1.2}
  .junction-supply .junction-supply-plan{margin-top:0;margin-bottom:4px}
  .game:has(.junction-supply:not([hidden])) .player-panel{bottom:12px;min-width:100px;padding:6px 8px}
  .game:has(.junction-supply:not([hidden])) .player-panel>strong{font-size:29px}
  .game:has(.junction-supply:not([hidden])) .action-prompt{left:57%;bottom:12px;width:min(205px,31vw);min-width:0;padding:6px 8px;white-space:normal;font-size:9px}
  .game:has(.junction-supply:not([hidden])) .joystick{width:55px;height:55px;bottom:12px;left:clamp(134px,25vw,202px)}
  .game:has(.junction-supply:not([hidden])) .joystick div{width:25px;height:25px}
  .game:has(.junction-supply:not([hidden])) .touch-actions{bottom:171px}
  .game:has(#junction-surge:not([hidden])) .mission-guidance{top:187px;left:51%;width:clamp(126px,23vw,194px)}
  .game:has(#junction-surge:not([hidden])) .game-alert{font-size:18px}
  .game:has(#junction-surge:not([hidden])) .game-alert small{margin-top:5px;font-size:8px}
  .game:has(.junction-supply:not([hidden])) .junction-forecast{display:none}
}
@media(orientation:landscape) and (max-height:340px){
  .game[data-area="junction"]:has(.junction-supply:not([hidden])) .host-panel{padding-block:5px}
  .game[data-area="junction"]:has(.junction-supply:not([hidden])) .node-status{gap:4px;margin-top:4px}
  .game[data-area="junction"]:has(.junction-supply:not([hidden])) .node-row{gap:2px}
  .game[data-area="junction"]:has(.junction-supply:not([hidden])) .node-state{font-size:7px}
  .game[data-area="junction"]:has(.junction-supply:not([hidden])) .gash-status{margin-top:3px}
  .junction-supply{bottom:84px;width:min(310px,calc(40vw - 20px))}
  .junction-supply-options button{flex-direction:column;gap:1px}
  .junction-supply-options button span{overflow-wrap:anywhere;text-align:center}
  .junction-supply h2{font-size:14px;letter-spacing:0}
  .game:has(.junction-supply:not([hidden])) .touch-actions{bottom:130px}
  .game:has(#junction-surge:not([hidden])) .mission-guidance{top:154px}
}
@media(max-width:720px),(max-height:500px){
  .turret-status{margin-top:5px;padding-top:4px;font-size:8px}
  .boss-hud{padding:6px 7px}
  .boss-heading h2{font-size:23px}
  .boss-phase,.boss-status-detail{font-size:8px}
  .boss-status{font-size:9px}
  .boss-time{font-size:21px}
  .boss-health{height:5px;margin:6px 0 5px}
}
@media(max-width:480px){
  .game:has(#boss-hud:not([hidden])) .host-panel{width:44vw}
  .game .wave-panel:has(#boss-hud:not([hidden])){width:44vw;min-width:0;padding:0}
  .boss-heading h2{font-size:20px;letter-spacing:.045em}
  .boss-heading{align-items:center}
  .boss-readout{column-gap:5px}
  .boss-time{font-size:18px}
  .game:has(#boss-hud:not([hidden])) .mission-guidance{top:120px;left:12px;transform:none;width:44vw}
  .game:has(#boss-hud:not([hidden])) .game-alert{font-size:19px}
  .game:has(#boss-hud:not([hidden])) .game-alert small{font-size:8px}
}
@media(orientation:landscape) and (max-height:500px){
  .game:has(#boss-hud:not([hidden])) .mission-guidance{top:clamp(54px,18vh,84px);right:12px;bottom:auto;left:auto;transform:none;width:min(150px,23vw)}
  .game:has(#boss-hud:not([hidden])) .game-alert{font-size:19px}
  .game:has(#boss-hud:not([hidden])) .game-alert small{font-size:8px}
}
.game:has(#airway-hud:not([hidden])) .mission-guidance{top:79px;right:25px;bottom:auto;left:auto;transform:none;width:min(212px,24vw)}
.game:has(#airway-hud:not([hidden])) .game-alert{font-size:clamp(18px,2.6vw,31px)}
.game:has(#airway-hud:not([hidden])) .game-alert small{margin-top:6px}
@media(max-width:720px),(max-height:500px){
  .airway-hud{padding:6px 7px}
  .airway-hud h2{font-size:21px;margin-bottom:5px}
  .airway-ports{gap:4px;margin-bottom:5px}
  .airway-port{padding:3px 4px;font-size:8px}
  .airway-status{font-size:9px}
  .airway-detail{font-size:8px}
  .airway-time{font-size:20px}
}
@media(max-width:480px){
  .game:has(#airway-hud:not([hidden])) .host-panel{width:44vw}
  .game .wave-panel:has(#airway-hud:not([hidden])){top:51px;width:44vw;min-width:0;padding:0}
  .airway-hud h2{font-size:19px;letter-spacing:.03em}
  .airway-time{font-size:18px}
  .game:has(#airway-hud:not([hidden])) .mission-guidance{top:120px;right:auto;left:12px;width:44vw}
  .game:has(#airway-hud:not([hidden])) .game-alert small{font-size:8px}
}
@media(orientation:landscape) and (max-height:500px){
  .game .wave-panel:has(#airway-hud:not([hidden])){top:10px}
  .airway-hud{padding:4px 6px}
  .airway-hud h2{font-size:20px;margin-bottom:4px}
  .airway-ports{margin-bottom:4px}
  .airway-port{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:3px;padding:3px;font-size:7px}
  .airway-hold{margin-top:4px}
  .wave-panel:has(#airway-hud:not([hidden])) .organ-hazard{padding:4px 5px;gap:2px 5px;font-size:9px}
  .wave-panel:has(#airway-hud:not([hidden])) .organ-hazard-time{font-size:17px}
  .game:has(#airway-hud:not([hidden])) .mission-guidance{top:57px;right:12px;width:min(150px,23vw)}
  .game:has(#airway-hud:not([hidden])) .game-alert small{font-size:8px}
}
@media(orientation:landscape) and (max-height:380px) and (max-width:720px){
  .wave-panel:has(#airway-hud:not([hidden])) .organ-hazard{position:absolute;left:calc(100% + 8px);top:44px;width:min(140px,25vw);margin:0}
  .game:has(#airway-hud:not([hidden])) .mission-guidance{top:116px;right:auto;left:12px;width:min(150px,25vw)}
}
@media(max-width:350px){
  .airway-hud{padding:5px}
  .airway-hud h2{font-size:18px;margin-bottom:4px}
  .airway-ports{margin-bottom:4px}
  .airway-port{padding:2px 3px;font-size:7px;gap:1px}
  .airway-hold{margin-top:4px}
}
@media(pointer:coarse){.field-hint,.junction-supply-options kbd,.turret-status kbd{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
