@font-face{font-family:Oxanium;src:url('../../art/fonts/Oxanium-Variable.ttf')}@font-face{font-family:BlackOps;src:url('../../art/fonts/BlackOpsOne-Regular.ttf')}
:root{color-scheme:dark;--ink:#eaf0f8;--muted:#b4becc;--gold:#f8ca7f;--command-accent:#f8ca7f;--line:#526274;--cyan:#75e7e9;font:14px/1.5 system-ui,sans-serif;background:#080e19;color:var(--ink)}*{box-sizing:border-box}body{margin:0;height:100vh;height:var(--game-height,100dvh);display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(ellipse at top,#263246,#080e19 80%)}button,input,select,a{touch-action:manipulation}button,input,select{font:inherit}button,a{color:inherit}button{min-height:44px;padding:8px 13px;border:1px solid #617083;background:linear-gradient(#27364a,#142033);cursor:pointer;border-radius:7px 2px 7px 2px;font-weight:600}button:hover:not(:disabled){border-color:var(--gold);background:#344359}button:disabled{opacity:.45;cursor:default}.primary{background:linear-gradient(#ffdd9f,#ddb36c);color:#211b13;border-color:#ffe1a8}.primary:hover:not(:disabled){background:#ffe1a8}.small,small{color:var(--muted);font-size:12px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #fff;outline-offset:2px}a{text-underline-offset:4px}header{min-height:65px;display:flex;align-items:center;gap:12px;padding:8px 20px;background:#0b1320;border-bottom:1px solid #5a6475}header nav{display:flex;gap:8px;margin-left:auto}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:600 15px Oxanium,sans-serif}.brand small{display:block;font:10px/1.7 system-ui;letter-spacing:.1em}.brand img{object-fit:contain}.music-controls{margin:0!important}
main{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;padding:14px;min-height:0;flex:1;width:100%;max-width:1800px;margin:auto}.panel{position:relative;min-width:0;min-height:0;border:1px solid #6d7884;border-radius:18px 3px 18px 3px;background:linear-gradient(130deg,#1b283bd9,#0d1625ee);box-shadow:inset 0 0 0 4px #0a1220,inset 0 0 0 5px #344356,0 12px 30px #0004}.panel::before{content:'';position:absolute;left:22px;right:22px;top:0;height:5px;background:linear-gradient(135deg,transparent 15%,#f5cc8844 16% 25%,transparent 26% 32%,#718a9b 33% 34%,transparent 35% 50%,#f5cc88 51% 60%,transparent 61%);background-size:90px 5px;pointer-events:none}.battlefield{padding:18px;display:flex;flex-direction:column}.battle-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}h1{font:400 clamp(23px,2.3vw,34px)/1.1 BlackOps,sans-serif;margin:4px 0 10px;color:#f7dfb5}h2{font:600 17px/1.3 Oxanium,sans-serif;margin:0 0 10px}.eyebrow{font:600 10px/1.5 Oxanium;letter-spacing:.12em;color:var(--gold)}p{margin:8px 0 12px}.base-health{text-align:right;min-width:125px;font:600 15px Oxanium;color:#ffe1a8}#healthPips{display:flex;gap:3px;margin-top:8px;justify-content:flex-end}#healthPips i{width:9px;height:14px;display:block;background:var(--gold);border:1px solid #ffe1a8}#healthPips i.empty{background:#293345;border-color:#4a5360}.status-strip{display:flex;justify-content:space-between;gap:8px;font-size:11px;margin-bottom:10px;color:#c5cbdb}.status-strip strong{color:#ffdc9e}.canvas-wrap{min-height:130px;flex:1;position:relative;border:1px solid #435366;border-radius:10px 2px;overflow:hidden;background:#0c0d20}canvas{display:block;width:100%;height:100%;touch-action:none}.view-badge{position:absolute;left:12px;top:10px;font:600 10px Oxanium;letter-spacing:.07em;color:#d9e5ef;background:#081321d9;padding:5px 8px;border:1px solid #506679;border-radius:4px;pointer-events:none}.transport{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px}.transport label{display:flex;align-items:center;gap:5px;font-size:11px}.transport select{width:58px;padding:6px;min-height:44px}#status{font-size:12px;min-height:18px;margin:9px 0 0;color:#dae3ef}.scene-note{font-size:10px;color:#aab6c9;margin:4px 0 0}.controls{overflow:auto;padding:25px 20px;overscroll-behavior:contain;scroll-padding:20px}.controls section{margin-bottom:22px}.coach{padding:14px;border:1px solid #7e6c49;border-left:3px solid #f4c477;background:#392e1a55;border-radius:8px 2px}.coach-top{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:10px}.coach-top button{font-size:10px;padding:5px 8px;min-height:36px;background:#151e2c}.coach p{font-size:13px;margin-bottom:0}.coach #coachQuestion p{margin:12px 0}.coach #coachQuestion button{font-size:12px;width:100%;margin:3px 0}.section-title{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.section-title h2{margin-bottom:8px}.section-title span{font-size:10px}label{display:block;font-size:12px}input[type=number],select{width:100%;min-height:44px;background:#071323;color:#f5f7fd;border:1px solid #6b7e96;padding:9px;border-radius:4px}select option{color:#eef4ff;background:#142237}.readouts{border:1px solid #526379;border-radius:4px;padding:10px;margin-top:10px;font:600 13px/1.7 Oxanium,sans-serif;color:var(--cyan)}.readouts strong{color:#ffde9c}.cannon-tabs{display:flex;gap:8px;margin-bottom:12px}.cannon-tabs button{flex:1;font:600 14px Oxanium}.cannon-tabs [aria-pressed=true]{background:#f0c787;color:#17202a;border-color:#ffe3b6}fieldset{border:0;padding:0;margin:0;min-width:0}legend{font-size:11px;color:var(--muted);padding:0;margin-bottom:5px}.check{display:flex;align-items:center;gap:9px;min-height:44px;font-size:13px}.check input{width:20px;height:20px;accent-color:#f9ce84}.fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fields small{display:block;font-size:10px;margin:3px 0 6px;min-height:28px}.fields input{font:600 22px Oxanium}#components{margin-top:8px;color:#91e3f0}.muzzle{color:#ffde9c}details{border-top:1px solid #394c64;margin-top:15px;padding-top:10px}summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600;font-size:13px;gap:6px}summary::before{content:'+';color:var(--gold)}details[open]>summary::before{content:'−'}.equations{padding:10px;background:#091321;color:#a8d8e9;font:500 16px/1.8 Oxanium}#hints p{font-size:12px}#workedResult{color:#ffdc9e}#inputError{color:#ffc3ab;border-left:3px solid #f59f86;padding:8px}.report{border-top:1px solid #3c5066;padding-top:18px}.report ol{padding-left:20px;font-size:12px}.report li{margin:8px 0}#comparison{font-size:12px;color:#decdf4}#saveStatus{font-size:10px}.outcome{position:absolute;inset:auto 10px 12px;background:#0c182df2;border:1px solid #b7a079;box-shadow:0 6px 20px #0008;border-radius:10px;padding:18px;max-width:450px;margin:auto}.outcome h2{color:var(--gold);font-size:23px}.outcome p{font-size:13px}.outcome button{margin:3px}body[data-phase=running] .controls{opacity:.8}body[data-phase=running] .view-badge{color:#d4f0d9}main.expanded{grid-template-columns:1fr}main.expanded .controls{display:none}.focus-cue{outline:2px solid #ffde9d;outline-offset:3px;box-shadow:0 0 18px #ffda7844}dialog{width:min(650px,calc(100% - 28px));max-height:calc(100dvh - 28px);overflow:auto;padding:26px;color:var(--ink);background:#142237;border:1px solid #788ba4;border-radius:16px 3px}dialog::backdrop{background:#030814cc}dialog h2{color:var(--gold);font-size:24px}dialog p{line-height:1.65}.option-buttons{display:grid;gap:10px;margin:20px 0}.option-buttons a{padding:10px}body.armored-ui .number-pad{width:100%;max-width:none;inset:0;padding:14px;background:#111e30}.number-pad-open .orders-content{visibility:hidden}.number-pad-open{min-height:310px!important}#numberPad .number-pad-keys button{min-height:48px}.number-pad-title{font-size:15px}#numberPad .number-pad-range{margin:7px 0}[hidden]{display:none!important}
@media(max-width:1050px){main{grid-template-columns:minmax(0,1fr) 315px;gap:8px;padding:8px}header{padding:6px 12px;gap:8px}.battlefield{padding:13px}.controls{padding:22px 16px}.base-health{font-size:12px;min-width:95px}#healthPips i{width:7px;height:12px}.battle-heading .eyebrow{font-size:8px}.transport{gap:5px}.transport button{font-size:12px;padding:7px 9px}.transport label{font-size:0}.transport select{font-size:12px}}
@media(max-width:640px) and (orientation:portrait){header{flex-wrap:wrap;min-height:55px}.brand{font-size:12px}.brand small{font-size:8px}.brand img{width:30px;height:30px}header nav{gap:4px}header nav button{padding:5px 8px;font-size:11px}header .music-controls{display:none}main{grid-template-columns:1fr;grid-template-rows:minmax(285px,43%) minmax(0,1fr);padding:6px;gap:6px}.battlefield{padding:10px}.battle-heading h1{font-size:21px;margin:0}.battle-heading .eyebrow{display:none}.base-health{font-size:11px}#healthPips{margin-top:3px}.status-strip{margin:6px 0;font-size:9px}.canvas-wrap{min-height:90px}.transport{margin-top:6px}.transport button{font-size:11px;padding:5px 8px;min-height:44px}.transport select{min-height:44px;width:47px}.scene-note{display:none}#status{font-size:10px;margin:3px 0 0;min-height:15px}.controls{padding:21px 16px}.view-badge{font-size:8px;padding:3px 6px;left:7px;top:6px}main.expanded{grid-template-rows:1fr}.outcome{padding:12px}.outcome h2{font-size:19px}.outcome p{margin:6px 0;font-size:12px}.outcome button{font-size:11px;padding:6px}.number-pad-open{min-height:0!important}}
@media(max-height:540px) and (orientation:landscape){header{min-height:46px;padding:2px 10px}.brand{font-size:12px}.brand img{width:28px;height:28px}.brand small{font-size:8px}header nav button{font-size:11px;padding:5px 9px}header .music-controls summary{font-size:10px;min-height:38px}main{grid-template-columns:minmax(0,1fr) 285px;padding:5px;gap:7px}.battlefield{padding:10px}.battle-heading h1{font-size:22px;margin:0}.battle-heading .eyebrow{display:none}#healthPips{display:none}.base-health{font-size:11px}.status-strip{margin:4px 0;font-size:9px}.canvas-wrap{min-height:80px}.transport{margin-top:5px}.transport button{min-height:44px;font-size:10px;padding:4px 7px}.transport select{width:46px;font-size:11px}.scene-note{display:none}#status{font-size:10px;margin:3px 0 0;min-height:15px}.view-badge{font-size:8px;padding:3px 5px;top:5px;left:5px}.controls{padding:19px 14px}.outcome{padding:10px}.outcome h2{font-size:18px;margin:0}.outcome p{font-size:11px;margin:4px 0}.outcome button{font-size:11px;min-height:40px}body.armored-ui .number-pad{padding:7px}#numberPad .number-pad-keys button{min-height:44px}}
@media(max-width:700px) and (orientation:landscape){header .brand span{display:none}header .music-controls{display:none}main{grid-template-columns:minmax(0,1fr) 260px}.battle-heading{display:none}.transport{gap:3px}.transport button{padding:4px;font-size:9px}.status-strip span:nth-child(2){display:none}#clock{white-space:nowrap}.transport label{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important}}
.target-focus{width:100%;margin-top:9px}.target-focus[aria-pressed=true]{border-color:var(--gold);color:#ffe1a8}.target-key{font-size:10px;margin:7px 0 0}#robotArtStatus{margin:5px 0 0;font-size:10px;color:#ffde9c}
/* The shared keypad's desktop width must not overflow the narrow horde console. */
body.armored-ui:not(.compact-battle) .number-pad{width:auto;max-width:none;inset:0;margin:0}
body.armored-ui:not(.compact-battle) .number-pad-host.number-pad-open{min-height:0!important}
@media(max-height:540px) and (orientation:landscape){body.armored-ui .number-pad{padding:5px}.number-pad-title{font-size:12px;line-height:15px}#numberPad .number-pad-range{font-size:10px;line-height:13px;margin:1px 0}body.armored-ui .number-pad #numberPadValue{min-height:30px;height:30px;margin:2px 0 4px;font-size:21px}#numberPad .number-pad-keys button{min-height:44px;padding:3px}.number-pad-keys{gap:3px}}

.threat-status{margin:5px 0 0;padding:5px 9px;color:#ffe3ad;border:1px solid #9c793e;border-left:3px solid #f5c365;background:#342a1f;font:600 11px/1.35 Oxanium,sans-serif;flex-shrink:0}
.lesson-steps{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:5px;margin:0 0 12px;font-size:10px}.lesson-steps li{border:1px solid #526379;padding:4px 6px;border-radius:3px;color:#c2cddd}.lesson-steps .done{color:#a2f0cf;border-color:#77a89c}.workspace-button{width:100%;margin-top:12px}.work-dialog{width:min(1100px,calc(100% - 24px))}.guess-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid #6c8096}.guess-grid section{padding:13px;border-right:1px solid #6c8096;min-width:0}.guess-grid section:last-child{border-right:0}.guess-grid h3{font:400 15px Oxanium;margin:0 0 12px;color:#ffe0a1}.guess-grid h3 b{font-weight:800}.guess-grid p{font-size:13px;overflow-wrap:anywhere}.guess-grid label{margin:8px 0}.guess-grid input,.guess-grid select,.guess-grid textarea{width:100%;max-width:100%;background:#081525;color:#edf4ff;border:1px solid #7289a1;padding:8px;border-radius:4px}.guess-grid textarea{min-height:140px;resize:vertical}.guess-tabs{display:none}.work-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.hint-text{border-left:3px solid #f0ca87;padding:10px;color:#ffe2b0}.review-dialog{width:min(750px,calc(100% - 24px))}.review-table-wrap{overflow:auto;margin:16px 0}.review-dialog table{width:100%;border-collapse:collapse;font-size:13px}.review-dialog td,.review-dialog th{padding:10px;border:1px solid #546d86;text-align:left}.review-dialog th{color:#ffdfa2;background:#0a1729}#reviewEvidence{color:#9ff4e5}#workError{color:#ffc1a4}.work-dialog.number-pad-open,.review-dialog.number-pad-open{min-height:min(360px,calc(100dvh - 20px))!important}.work-dialog.number-pad-open>:not(.number-pad){visibility:hidden}
@media(max-width:750px){.guess-tabs{display:flex;gap:6px;margin:10px 0}.guess-tabs button{flex:1;min-height:44px}.guess-tabs [aria-pressed=true]{background:#edc888;color:#122039}.guess-grid{display:block}.guess-grid section{display:none;border:0}.work-dialog[data-step="0"] [data-guess-box="0"],.work-dialog[data-step="1"] [data-guess-box="1"],.work-dialog[data-step="2"] [data-guess-box="2"],.work-dialog[data-step="3"] [data-guess-box="3"],.work-dialog[data-step="4"] [data-guess-box="4"]{display:block}.work-dialog{padding:18px}.guess-grid textarea{min-height:85px}.work-actions button{flex:1 1 140px}.review-dialog{padding:18px}.review-dialog td,.review-dialog th{padding:6px;font-size:12px}}
@media(max-height:540px){.threat-status{font-size:10px;padding:3px 6px;margin-top:3px}}
body.armored-ui dialog.work-dialog.number-pad-host .number-pad{inset:6px}
.coach-detail{margin-top:12px;width:100%;font-size:12px}.math-checks{padding:0;list-style:none;display:grid;gap:10px;margin:14px 0}.math-checks li{padding:12px 14px;border:1px solid #75694e;border-left:3px solid #e6be79;background:#232637;border-radius:6px}.math-checks li.agree{border-color:#507d76;border-left-color:#90d7c1;background:#132d32}.math-checks li.info{border-color:#667e9d;border-left-color:#91bce9;background:#17283a}.math-checks strong{display:block;font:600 13px Oxanium}.math-checks p{margin:6px 0 0;font-size:13px;line-height:1.5}.advance-review{margin:10px 0}.advance-review .math-checks li{padding:9px}.advance-review .math-checks p{font-size:12px}

/* The canvas bitmap must never determine its flex container's height. */
.canvas-wrap>canvas{position:absolute;inset:0;width:100%;height:100%}
.field-camera{display:flex;align-items:center;gap:4px;flex:0 0 auto;margin:0 0 6px}
.field-camera button{min-width:44px;min-height:44px;padding:6px 10px;font-size:14px}
.field-camera output{min-width:42px;text-align:center;font:600 13px Oxanium}
#cameraHint{font-size:10px;color:var(--muted);margin-left:auto}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:1100px){#cameraHint{display:none}}
@media(max-height:540px){.scene-note{display:none}.field-camera{margin-bottom:3px}.field-camera button{padding:4px 8px}}
