:root{color-scheme:dark;--ink:#0b161e;--cream:#fff5d9;--orange:#ff753c;--green:#b9f26c;--muted:#8aabae}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#081117;color:var(--cream);font-family:Arial,Helvetica,sans-serif}body{background:radial-gradient(ellipse at 50% 45%,#24434a 0,#0b1922 55%,#071016 100%)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;border:0;cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #fff;outline-offset:4px}button:disabled{cursor:default}#game{isolation:isolate;position:relative;width:min(100vw,640px);height:100dvh;max-height:1100px;min-height:360px;margin:0 auto;overflow:hidden;background:#172c31;box-shadow:0 0 100px #0009;touch-action:none;user-select:none}canvas{width:100%;height:100%;position:absolute;inset:0}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#071219a8,transparent 27%,transparent 63%,#051019d9)}#topbar{position:absolute;top:0;left:0;right:0;padding:max(env(safe-area-inset-top),18px) 22px 0;display:flex;align-items:center;justify-content:space-between;z-index:5}.wordmark{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--cream);font-size:12px;font-weight:900;letter-spacing:2px}.wordmark svg{width:29px;height:29px;fill:var(--orange)}.wordmark .eyes{stroke:#15232b;stroke-width:3;fill:none}.icon-row{display:flex;gap:7px}.icon-button{background:#101f29ba;border:1px solid #70888a55;width:36px;height:36px;border-radius:9px;font-size:23px;position:relative}.icon-button .off{font-size:14px;position:absolute;right:3px;top:3px;color:var(--orange)}.hidden{display:none!important}.panel{position:absolute;inset:0;pointer-events:none}.panel button{pointer-events:auto}.menu{padding:95px 30px 24px;display:flex;align-items:center;flex-direction:column;text-align:center}.eyebrow{font-size:9px;font-weight:800;letter-spacing:2px;color:#dae3cc;display:flex;align-items:center;gap:7px}.eyebrow i{width:5px;height:5px;background:var(--orange);box-shadow:0 0 10px var(--orange);border-radius:50%}h1{font-family:Impact,'Arial Black',sans-serif;font-size:clamp(68px,13vh,126px);line-height:.8;letter-spacing:-2px;margin:18px 0 10px;transform:rotate(-3deg);text-shadow:4px 5px 0 #122b30,6px 7px 0 #07151d}h1 span{color:var(--orange)}.tagline{font-size:13px;color:#fff8e5;letter-spacing:1px;text-shadow:0 2px 8px #000;margin:10px 0}.menu-bottom{margin-top:auto;width:min(100%,370px)}.operation{border:1px solid #80929160;background:#0a1820cd;padding:12px 15px;display:grid;grid-template-columns:1fr auto;text-align:left;border-radius:9px;margin-bottom:12px;gap:5px}.tiny{font-size:9px;letter-spacing:1.8px;color:#a7c1c0;font-weight:700}.operation .tiny{grid-column:1/-1;color:var(--orange);font-size:8px}.operation strong{font-size:13px;letter-spacing:1.5px}.difficulty{font-size:10px;letter-spacing:1px;color:var(--orange)}.difficulty i{font-style:normal;color:#4f6568}.primary{width:100%;background:var(--orange);color:#10232a;border-radius:8px;border-bottom:4px solid #a73520;font-weight:900;font-size:15px;letter-spacing:1px;min-height:56px;display:flex;justify-content:center;align-items:center;gap:28px;box-shadow:0 4px 24px #ff713333;transition:filter .15s,transform .15s}.primary:hover{filter:brightness(1.12)}.primary:active{transform:translateY(2px)}.primary span{font-size:25px}.menu-secondary{display:flex;gap:10px;margin-top:10px}.menu-secondary button{flex:1;border:1px solid #72848755;background:#11232ddd;border-radius:7px;min-height:43px;font-size:10px;font-weight:800;letter-spacing:.8px}.menu-secondary b{color:#f7c66b;margin-left:6px}.bestline{color:#a9b9b6;font-size:8px;letter-spacing:1.6px;margin-top:16px}#hud{position:absolute;top:77px;left:23px;right:23px;pointer-events:none}.wave-head{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.1px;font-weight:bold;color:#c7d9cf}.wave-head span:last-child{color:var(--orange)}.progress{height:4px;background:#031218a8;margin:8px 0 12px;border-radius:5px;overflow:hidden}.progress i{display:block;background:var(--orange);width:0;height:100%;transition:width .3s}.stats{display:flex;justify-content:space-between;gap:8px}.stat{background:#081a22c9;border:1px solid #68878b40;border-radius:8px;padding:9px 13px;min-width:90px;display:flex;flex-direction:column;gap:4px}.stat strong{font-family:Impact,'Arial Black',sans-serif;font-size:25px;letter-spacing:1px}.stat b{font-weight:inherit}.cat-glyph{color:var(--green);font-family:Arial;font-size:18px}.gold{color:#ffd378}#bossbar{text-align:center;margin:13px auto 0;width:80%;font-size:10px;letter-spacing:2px;color:#ff9c84}#bossbar>div{height:7px;background:#211c22;border:1px solid #f56a5b55;margin:7px 0;border-radius:5px;overflow:hidden}#bossHealth{display:block;background:#ff5c4d;height:100%;width:100%}#announcement{position:absolute;top:27%;left:0;right:0;text-align:center;pointer-events:none;font-size:23px;font-family:Impact,'Arial Black',sans-serif;letter-spacing:2px;color:#fff5d9;text-shadow:0 3px 6px #000;opacity:0;transition:opacity .2s}#announcement.show{opacity:1}#announcement small{display:block;font:10px Arial;letter-spacing:2px;margin-top:8px;color:#b8ecd3}#floatHint{position:absolute;bottom:22%;width:100%;text-align:center;font-size:9px;letter-spacing:1px;color:#d7f3e2;pointer-events:none;text-shadow:0 2px 8px #000}#controls{position:absolute;left:15px;right:15px;bottom:max(14px,env(safe-area-inset-bottom));}#powerStrip{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;margin:0 5px 12px;font-weight:bold;color:#bad8cf}#recruitHint{color:var(--green);font-size:7px}.combat-controls{display:flex;gap:10px;align-items:center}.move-button{flex:0 0 40px;height:64px;font-size:40px;background:#172d37c9;border:1px solid #7b969955;border-radius:9px;touch-action:none}.ability-group{display:flex;gap:9px;flex:1}.ability{position:relative;isolation:isolate;overflow:hidden;min-height:68px;flex:1;border:1px solid #6e8b82;background:#182f32f2;border-radius:9px;display:grid;grid-template-columns:22px 1fr;align-content:center;padding:10px;text-align:left;column-gap:6px}.ability>span{grid-row:1/3;font-size:25px;color:var(--green);align-self:center}.ability b{font-size:9px;letter-spacing:.6px;z-index:1}.ability small{font-size:8px;color:#b9f26c;line-height:1.9;z-index:1}.ability.boost>span,.ability.boost small{color:#ffc978}.ability i{position:absolute;inset:0;z-index:-1;background:#030e17a3;transform-origin:right;transform:scaleX(0)}.ability:disabled{border-color:#415353;color:#92a6a5}.modal{position:absolute;inset:0;z-index:10;background:#061018d9;backdrop-filter:blur(8px);display:grid;place-items:center;padding:22px;overflow:auto;touch-action:pan-y}.modal-card{width:min(100%,390px);border:1px solid #526d70;background:linear-gradient(145deg,#213b40,#10212c);padding:26px;border-radius:16px;box-shadow:0 20px 70px #0007;text-align:center;max-height:100%;overflow:auto}.modal h2{font-family:Impact,'Arial Black',sans-serif;font-size:38px;letter-spacing:1px;line-height:1.05;margin:6px 0 12px}.modal .kicker{color:var(--orange);font-size:9px;letter-spacing:2px;font-weight:bold}.modal p{color:#bed0ca;font-size:13px;line-height:1.6}.modal .primary{margin-top:16px;min-height:49px;font-size:12px}.secondary{width:100%;border:1px solid #6d858066;background:#20343c;min-height:42px;border-radius:7px;font-size:11px;letter-spacing:1px;font-weight:bold;margin-top:10px}.instructions{display:flex;flex-direction:column;gap:10px;margin:24px 0;text-align:left}.instruction{display:flex;align-items:center;gap:14px}.instruction>span{color:#bfed83;background:#152a31;display:grid;place-items:center;min-width:41px;height:41px;border:1px solid #466759;border-radius:9px;font-size:23px}.instruction p{margin:0;font-size:11px;line-height:1.5}.instruction b{color:var(--cream);font-size:12px}.result-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}.result-stats>div{padding:12px;background:#08192377;border:1px solid #4c6c6d55;border-radius:8px}.result-stats strong{display:block;font-size:27px;color:var(--green);margin-top:6px}.upgrade{display:flex;align-items:center;gap:10px;padding:14px 0;border-top:1px solid #516c6b55;text-align:left}.upgrade>div{flex:1}.upgrade strong{font-size:12px}.upgrade small{display:block;color:#a7c6bf;margin-top:5px;font-size:10px}.upgrade button{min-width:78px;border:1px solid #b9f26c88;background:#b9f26c;color:#122c26;border-radius:6px;padding:10px;font-weight:bold;font-size:11px}.upgrade button:disabled{background:#273d3e;color:#829895;border-color:#516965}.modal .balance{color:#ffd177;font-weight:700;font-size:15px}.wave-choices{display:flex;gap:8px;margin:17px 0}.wave-choice{flex:1;min-height:115px;padding:12px 6px;border-radius:9px;border:1px solid #668782;background:#1e393c}.wave-choice span{display:block;font-size:29px;color:var(--green);margin-bottom:8px}.wave-choice b{font-size:10px}.wave-choice small{display:block;font-size:9px;color:#bcd2c8;margin-top:6px}.wave-choice:hover{border-color:var(--green);background:#2c4d42}#toast{position:absolute;bottom:140px;left:20px;right:20px;z-index:20;font-size:12px;text-align:center;background:#102a31e8;border:1px solid #80b28b;padding:11px;border-radius:8px;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}.desktop-note{display:none}@media(min-width:850px){#game{border-left:1px solid #3f5b5f55;border-right:1px solid #3f5b5f55}.desktop-note{display:block;position:fixed;bottom:24px;left:24px;color:#6e9394;font-size:9px;letter-spacing:1px;line-height:2}.desktop-note span{display:block;font-size:8px}}@media(max-height:650px){.menu{padding-top:67px}.eyebrow{font-size:7px}h1{font-size:67px;margin-top:10px}.tagline{font-size:10px}.operation{padding:8px 12px;margin-bottom:8px}.primary{min-height:45px}.menu-secondary button{min-height:35px}.bestline{margin-top:10px}.menu-bottom{max-width:330px}#hud{top:65px}.stat{padding:6px 10px}.stat strong{font-size:21px}#announcement{top:35%}.modal-card{padding:18px}.modal h2{font-size:30px}.instructions{margin:15px 0}.ability{min-height:54px}#topbar{padding-top:12px}}@media(max-width:370px){.move-button{flex-basis:31px}.combat-controls{gap:5px}.ability-group{gap:5px}.ability{padding:7px;grid-template-columns:18px 1fr}.ability b{font-size:8px}#controls{left:9px;right:9px}.stat{min-width:80px}.menu{padding-inline:22px}}
/* V2: bright arcade colour, sharper glass panels and a real 3D battlefield. */
:root{--orange:#ff8a38;--green:#b6ff70;--muted:#a6dbea}body{background:radial-gradient(ellipse at 50% 30%,#247aac,#134660 62%,#102e47)}#game{background:#63c9ee}#scene3d{z-index:0;pointer-events:none}#scene{z-index:1}#hud,#menu,#controls,#announcement,#floatHint{z-index:3}.vignette{z-index:2;background:linear-gradient(#092b4b77,transparent 25%,transparent 65%,#062a4d9c)}.graphics-button{width:40px;font-size:10px;font-weight:900;letter-spacing:1px;color:#8fe9ff;border-color:#72d5f777}.wordmark{letter-spacing:1.5px}.icon-row{gap:5px}.menu .eyebrow{color:#f3ffec;text-shadow:0 2px 5px #174455}.menu h1{text-shadow:3px 5px 0 #124368,6px 8px 0 #0c2d4b66}.operation,.menu-secondary button{background:#0d4164e6;border-color:#70c9e580}.stat{background:#103f67d9;border-color:#8be9ff55;box-shadow:0 5px 18px #04415a22}.wave-head{color:#e8fffc;text-shadow:0 1px 4px #164b67}.progress{background:#154867}.progress i{background:linear-gradient(90deg,#ffad4e,#fff48e)}.primary{background:linear-gradient(135deg,#ffb84a,#ff793b);color:#15365a;border-color:#c45d2b;box-shadow:0 5px 28px #ffbb604a}.primary:hover{filter:brightness(1.09)}.menu .tagline{color:#fff4d8;font-weight:700}.bestline{color:#d7f5fc}.move-button{flex-basis:30px;background:#104a70db;border-color:#6cc4e3aa}.ability{grid-template-columns:1fr;justify-items:center;text-align:center;padding:7px 3px;min-height:78px;background:#113f66ed;border-color:#80d1e4;gap:0}.ability>span{grid-row:auto;font-size:23px;line-height:1.1}.ability b{font-size:8px;white-space:nowrap;margin-top:3px;letter-spacing:.7px}.ability small{font-size:7px;white-space:nowrap}.ability.missile{border-color:#7fd9ff;background:#155582f2}.ability.missile small{color:#91e6ff}.ability.missile:disabled{background:#234459}.combat-controls{gap:7px}.ability-group{gap:6px}#powerStrip{color:#efffff;text-shadow:0 1px 4px #15445e}#recruitHint{color:#dcff9b}#controls{bottom:max(12px,env(safe-area-inset-bottom))}.modal-card{background:linear-gradient(145deg,#22668b,#123b63);border-color:#7fcee3}.wave-choice{background:#174d73;border-color:#5db1d1}.wave-choice:hover{background:#28778d;border-color:#b6ff70}.secondary{background:#1a567c;border-color:#6eacbe}.modal .kicker{color:#ffcd78}.modal p{color:#e0f3f3}.upgrade small{color:#c3e7ec}#toast{background:#164a72f2;border-color:#8bddf5}.desktop-note{color:#8bccdc}@media(max-width:420px){#topbar{padding-inline:16px}.wordmark{font-size:10px;gap:7px}.wordmark svg{width:25px}.icon-button{width:32px;height:32px;font-size:20px}.graphics-button{font-size:9px}.menu{padding-inline:24px}.ability b{font-size:8px}#hud{left:16px;right:16px}.wave-head{font-size:8px}}@media(max-height:650px){.ability{min-height:58px}.ability>span{font-size:18px}.menu .tagline{margin:6px 0}.menu h1{font-size:62px}}

/* Neon airstrike edition: luminous edges with readable, solid controls. */
:root{--orange:#ff72dc;--green:#beff57}body{background:radial-gradient(ellipse at 50% 30%,#235cb3,#352579 62%,#112a55)}#game{box-shadow:0 0 55px #3dffff33,0 0 110px #f746ff22;border-inline:1px solid #58f7ef88}.wordmark svg{fill:#ff78de}.wordmark{color:#efffff;text-shadow:0 0 12px #3affff77}.menu h1 span{color:#ff89dc;text-shadow:3px 4px 0 #493683,0 0 30px #ff56ce88}.eyebrow i{background:#4dfff2;box-shadow:0 0 12px #5bfff1}.primary{background:linear-gradient(120deg,#9efff4,#64dbff 55%,#f38dff);border-color:#256eb0;box-shadow:0 0 24px #5fffea66}.operation{border-color:#f36dea88;box-shadow:inset 0 0 18px #c934ff22}.progress i{background:linear-gradient(90deg,#4affef,#c4ff65,#ff71e2);box-shadow:0 0 8px #4bfff0}.stat{border-color:#64fff780}.ability.missile{border:2px solid #fa80f1;background:linear-gradient(145deg,#5b297e,#195681);box-shadow:0 0 18px #ff5ee555}.ability.missile small{color:#c9fffb}.ability.missile:disabled{box-shadow:none;border-color:#a570ae}.ability.boost{border-color:#c6ff65}.ability.bomb{border-color:#69fff2}.ability b{letter-spacing:.2px}.move-button{border-color:#61fcee99}.modal-card{border-color:#b48aff}#announcement{color:#f6ffbb;text-shadow:0 2px 5px #193062,0 0 16px #ff4fcf}#announcement small{color:#e5ffff}.desktop-note{color:#b2d9ff}
@media(max-width:370px){.ability b{font-size:7px}.ability small{font-size:6px}}

/* Contrast pass: solid panels and crisp type above the vivid battlefield. */
.stat{background:#09182ff5;border-color:#4fe5ed;box-shadow:0 3px 10px #030a22aa}.tiny,.stat .tiny{color:#d4edff}.wave-head{color:#fff;font-size:10px;text-shadow:0 2px 3px #03112d,0 0 5px #03112d}.wave-head span:last-child{color:#ffb4e8}.ability{background:#0b1a35;border-width:2px}.ability b{color:#fff;font-size:9px;letter-spacing:.1px}.ability small{font-size:8px;color:#d2ff8a}.ability.missile{background:#301543;border-color:#ff76e1;box-shadow:0 0 10px #ff5ee533}.ability.missile small{color:#c4faff}.ability.missile:disabled{background:#191e32;color:#b9c6e0}.ability:disabled{color:#c2d1df}.move-button{background:#0c2247}.operation,.menu-secondary button{background:#0b1b3aef}.primary{background:linear-gradient(120deg,#26ead4,#27bcf5 60%,#c856e9);color:#05142c}.progress{height:5px}.vignette{background:linear-gradient(#06142b99,transparent 25%,transparent 65%,#06132caa)}#announcement{font-size:21px;text-shadow:0 2px 2px #081028,2px 0 2px #081028,-2px 0 2px #081028}#announcement small{font-weight:700;letter-spacing:1px;text-shadow:0 2px 3px #081028}#powerStrip{font-size:9px}#recruitHint{font-size:8px;color:#cbff7a}@media(max-width:420px){.ability b{font-size:8px}.ability small{font-size:7px}.wave-head{font-size:9px}#recruitHint{font-size:7px}}@media(max-width:370px){.ability b{font-size:7px}.ability small{font-size:6px}#powerStrip{font-size:8px}}

/* Giant health stays readable while the horde keeps moving. */
#bossbar{background:#08142fec;border:1px solid #ffb457;border-radius:7px;padding:7px 10px 3px;color:#ffdb96;font-weight:900;width:90%;letter-spacing:1px;margin-top:9px}#bossbar>div{height:9px;margin-top:5px}#bossHealth{background:linear-gradient(90deg,#ff4d62,#ff9447);transition:width .1s linear}

/* Kill milestones remain visible even while air-support announcements are active. */
#threatHint{margin:-5px 0 9px;padding:6px 8px;border:1px solid #54e8eb88;border-radius:5px;background:#08152ef2;color:#cbfff9;font-size:9px;line-height:1.2;letter-spacing:.7px;text-align:center;font-weight:900}#hud.surge #threatHint{color:#fff5b0;background:#521244f5;border-color:#ff80d4;box-shadow:0 0 14px #ff4cac77}#hud.surge .progress i{background:#ff6acd}#hud.surge .wave-head{color:#ffaadf}
@media(max-width:370px){#threatHint{font-size:8px;letter-spacing:.3px}}

/* Squad expansion: readable warnings, earned gear and approved company credits. */
.locker-button{width:100%;display:flex;justify-content:space-between;gap:8px;align-items:center;padding:10px 12px;margin-top:8px;border:1px solid #cd8af9;border-radius:7px;background:#261848;font-size:10px;font-weight:900;letter-spacing:.7px}.locker-button span{font-size:8px;color:#d8b8ff}.company-credit{width:100%;padding:10px 2px 0;background:none;font-size:10px;line-height:1.5;color:#e4f2ff;text-shadow:0 1px 3px #06132d}.company-credit span{display:block;font-size:8px;letter-spacing:1px;color:#aeeff3}.bestline{margin-top:9px}.menu{padding-bottom:16px}.company-email{display:block;color:#8dfcf1;font-size:12px;overflow-wrap:anywhere}.company-address{font-size:11px!important}.modal h3{font-size:11px;letter-spacing:1.2px;color:#d9fc98;margin:24px 0 10px}.locker-item{display:flex;align-items:center;gap:8px;margin:7px 0;padding:10px 8px;border:1px solid #62839c;border-radius:8px;text-align:left;background:#102b4b}.locker-item>div:nth-child(2){flex:1;min-width:0}.locker-item b{font-size:10px}.locker-item small{display:block;font-size:10px;line-height:1.4;color:#c1d7e7;margin-top:4px}.locker-item button{padding:9px 5px;min-width:68px;background:#8cf4df;color:#092c3c;font-size:9px;font-weight:900;border-radius:5px}.locker-item button:disabled{background:#203c59;color:#c5d8e8}.swatch{display:grid;place-items:center;flex:0 0 34px;height:34px;background:var(--swatch);color:var(--accent);border:2px solid var(--accent);border-radius:10px;font-size:22px}.unlock-note{color:#cbff7a!important;font-weight:bold}
#tacticalHint{background:#211b39ed;border:1px solid #ffb77a;border-radius:6px;padding:7px 6px;margin:0 0 6px;text-align:center;font-size:10px;line-height:1.3;font-weight:900;color:#fff0c7;letter-spacing:.4px}#specialistStatus{margin:0 0 7px;text-align:center;color:#a5ffe1;font-size:9px;font-weight:900;letter-spacing:.6px;text-shadow:0 2px 4px #071029}#powerStrip{flex-wrap:wrap;gap:4px}#weaponLabel{color:#fff}
#game.horde-warning:after{content:'';position:absolute;inset:0;border:3px solid #ff81cb;box-shadow:inset 0 0 24px #ff4cb555;pointer-events:none;z-index:4}#game.horde-warning #threatHint{color:#fff8c9;border-color:#ff81cb;background:#541140f2}
@media(max-height:720px){.menu .operation{display:none}.menu .tagline{margin:5px 0}.company-credit{padding-top:5px;font-size:9px}.company-credit span{font-size:7px}.locker-button{padding:8px 10px}.bestline{font-size:7px}.menu .eyebrow{letter-spacing:1px}.menu{padding-top:72px}.menu h1{font-size:72px}}
@media(max-height:520px){.menu .eyebrow,.menu .tagline,.menu .bestline{display:none}.menu h1{font-size:50px;margin:0}.menu{padding-top:65px;padding-bottom:8px}.menu-secondary button{min-height:30px}.locker-button{margin-top:5px;padding:6px 9px}.primary{min-height:38px}.company-credit{padding-top:3px}#tacticalHint{padding:4px;font-size:9px}}
