*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#090713;color:#fff5df;font-family:Trebuchet MS,Arial,sans-serif}body{display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,#30204c,#090713 70%)}button{font:inherit;cursor:pointer;color:inherit;border:1px solid #b895fa55;border-radius:14px;background:#29203e;min-height:48px;font-weight:900;letter-spacing:.6px;touch-action:manipulation}button:hover{filter:brightness(1.15)}button:disabled{opacity:.45;cursor:default}#game{height:100dvh;max-height:100%;aspect-ratio:9/16;width:auto;max-width:100vw;position:relative;overflow:hidden;background:#17102b;box-shadow:0 0 120px #000}canvas{width:100%;height:100%;display:block;touch-action:none}#hud{position:absolute;top:max(15px,env(safe-area-inset-top));left:6%;right:6%;pointer-events:none}.top{display:flex;align-items:center;justify-content:space-between;font-size:12px;letter-spacing:2px;font-weight:bold}.top button{pointer-events:auto;min-width:48px;background:#161126bb}.progress{height:4px;background:#ffffff25;border-radius:4px;margin:12px 0}.progress i{display:block;background:#bfff74;height:100%;width:0;box-shadow:0 0 12px #99ff70}.army{margin:auto;text-align:center;width:185px;border:1px solid #c9a5ff55;background:#181225dd;border-radius:14px;padding:8px;box-shadow:0 6px 0 #0b0815;color:#f7efde;font-size:32px}.army small{display:block;font-size:9px;letter-spacing:2px;color:#b9a2cf}.army b{font-size:36px}#controls{position:absolute;bottom:max(10px,env(safe-area-inset-bottom));left:5%;right:5%;text-align:center}.hint{font-size:10px;letter-spacing:2px;text-shadow:0 2px 3px #000;margin-bottom:12px;color:#e6d6ff}.actions{display:flex;gap:10px}.actions button{width:50%;background:linear-gradient(#b8fa78,#73bd4a);color:#172913;border:1px solid #ddffa8;box-shadow:0 5px 0 #305e23;padding:13px 3px;font-size:17px}.actions button:nth-child(2){background:linear-gradient(#c390ff,#8444ce);color:white;border-color:#debbff;box-shadow:0 5px 0 #46236c}.actions small{display:block;font-size:9px;margin-top:5px}#banner{font-size:8px;color:#a695b3;letter-spacing:2px;margin-top:15px}#overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(#120a27dd,#21123890,#100b21f5);padding:25px;text-align:center}#overlay:empty{display:none}.panel{width:100%;max-height:95%;overflow:auto}.eyebrow{font-size:10px;letter-spacing:4px;color:#c2ed92;font-weight:bold}h1{font-size:clamp(42px,8vh,76px);line-height:.86;letter-spacing:-3px;text-shadow:0 5px 0 #653779,0 0 40px #a760d466;margin:16px 0}h1 em{font-style:normal;color:#b9f27c}h2{font-size:30px;margin:12px 0}p{font-size:13px;color:#c2b1d6;line-height:1.6}.hero{height:28vh;max-height:260px;object-fit:contain;filter:drop-shadow(0 10px 20px #ac4fff55);display:block;margin:auto}.primary{background:linear-gradient(#c8fc91,#8dd15e);color:#203219;border-color:#ddffab;box-shadow:0 5px 0 #466333;min-height:58px;width:100%;font-size:17px;margin:12px 0}.secondary{width:100%;margin:5px 0;background:#211831dd}.row{display:flex;gap:10px}.row button{flex:1;font-size:11px}.map{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0;max-height:50vh;overflow:auto}.map button{height:50px}.upgrade{display:block;text-align:left;width:100%;padding:15px;margin:10px 0}.upgrade small{display:block;color:#b9a7cb;font-weight:normal;margin-top:6px}#toast{position:absolute;top:32%;width:100%;text-align:center;color:#ceff92;font-size:28px;font-weight:900;text-shadow:0 3px 0 #39234d;pointer-events:none;transition:opacity .3s}.badge{border:1px solid #b69ad344;border-radius:30px;padding:7px 12px;display:inline-block;font-size:10px;color:#c7b5d6;margin:10px}.credits{font-size:9px;letter-spacing:2px;color:#8d7aa2;margin-top:20px}@media(min-width:768px) and (max-aspect-ratio:4/3){#game{aspect-ratio:10/16}}@media(max-height:650px){.hero{height:21vh}h1{font-size:45px}.credits{margin-top:8px}}
