:root{--cyan:#55e7ff;--pink:#ff4f9a;--gold:#ffd45c;--green:#5cffb0;--violet:#aa78ff;--bg:#030611}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;overflow:hidden;background:#02040b;color:#eef7ff;font-family:Segoe UI,system-ui,sans-serif}body{min-height:100dvh;background:radial-gradient(circle at 50% 80%,#10234b,#02040b 65%)}#game{position:fixed;inset:0;margin:auto;width:min(100vw,720px);height:100dvh;overflow:hidden;background:#050817;box-shadow:0 0 100px #000}canvas{width:100%;height:100%;display:block;touch-action:none}h1{font-size:18px;letter-spacing:.16em;margin:0}h1 b{color:var(--cyan);text-shadow:0 0 16px var(--cyan)}.hud{display:flex;gap:7px}.hud>span{border:1px solid #ffffff20;background:#ffffff0c;padding:8px 10px;border-radius:10px;font-size:12px;font-weight:900;backdrop-filter:blur(8px)}#wave{color:var(--cyan)}#health{color:var(--green)}.weapon-card{position:absolute;z-index:3;left:18px;bottom:18px;display:grid;grid-template-columns:38px auto 30px;align-items:center;gap:9px;padding:9px 11px;border:1px solid #ffffff20;border-radius:14px;background:#071020cc;backdrop-filter:blur(12px)}.weapon-card>span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;color:var(--cyan);background:#55e7ff18;text-shadow:0 0 12px currentColor}.weapon-card strong,.weapon-card small{display:block}.weapon-card strong{font-size:13px}.weapon-card small{font-size:9px;color:#8c9abb;margin-top:2px}.weapon-card i{font-style:normal;color:var(--gold);font-weight:900}.requisition{position:absolute;z-index:3;right:18px;bottom:22px;width:min(220px,42vw)}.requisition label{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.1em;color:#98a7c5}.requisition label b{color:var(--gold)}.requisition>i{display:block;height:7px;margin-top:6px;border-radius:8px;overflow:hidden;background:#ffffff16}.requisition>i>b{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--violet),var(--gold));box-shadow:0 0 14px var(--gold);transition:width .2s}.overlay,.upgrade-overlay{position:absolute;z-index:9;inset:0;display:grid;place-items:center;padding:25px;background:#02040bc7;backdrop-filter:blur(12px);opacity:0;pointer-events:none;transition:.25s}.overlay.show,.upgrade-overlay.show{opacity:1;pointer-events:auto}.dialog,.upgrade-dialog{text-align:center;max-width:600px}.eyebrow{font-size:10px;letter-spacing:.32em;color:var(--cyan);font-weight:900}.dialog h2{font-size:clamp(38px,11vw,64px);line-height:.9;letter-spacing:-.06em;margin:14px 0}.dialog h2 b{color:var(--pink);text-shadow:0 0 30px #ff4f9a88}.dialog p{color:#9ca9c5;line-height:1.5;margin:20px auto;max-width:430px}.dialog button{border:0;border-radius:14px;padding:15px 24px;background:linear-gradient(135deg,var(--cyan),#6d8cff);color:#03101a;font-weight:950;letter-spacing:.08em;cursor:pointer;box-shadow:0 0 30px #55e7ff55}.dialog small{display:block;margin-top:14px;color:#65718c}.upgrade-dialog{width:100%}.upgrade-dialog h2{margin:10px 0 24px}.upgrade-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.upgrade-choice{min-height:170px;padding:18px 12px;border:1px solid #ffffff25;border-radius:16px;background:linear-gradient(145deg,#101a34,#060b19);color:white;cursor:pointer;box-shadow:0 12px 35px #0008}.upgrade-choice:hover{transform:translateY(-4px);border-color:var(--choice);box-shadow:0 0 28px color-mix(in srgb,var(--choice) 35%,transparent)}.upgrade-choice b,.upgrade-choice small,.upgrade-choice span{display:block}.upgrade-choice span{font-size:28px;color:var(--choice);text-shadow:0 0 16px currentColor}.upgrade-choice b{margin:12px 0 6px}.upgrade-choice small{color:#98a7c5;line-height:1.4}@media(max-width:600px){.upgrade-choices{grid-template-columns:1fr}.upgrade-choice{min-height:0}.weapon-card{bottom:14px;left:12px}.requisition{right:12px;bottom:18px}.hud>span{padding:7px 6px;font-size:10px}}
.requisition{width:min(275px,48vw);display:flex;align-items:center;justify-content:flex-end;gap:10px}
.requisition>div{width:min(220px,100%)}
.requisition>div>i{display:block;height:7px;margin-top:6px;border-radius:8px;overflow:hidden;background:#ffffff16}
.requisition>div>i>b{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--violet),var(--gold));box-shadow:0 0 14px var(--gold);transition:width .2s}
.requisition>button{position:relative;display:none;place-items:center;width:46px;height:46px;flex:0 0 auto;border:1px solid var(--gold);border-radius:14px;background:#211b0d;color:var(--gold);font-size:24px;cursor:pointer;box-shadow:0 0 24px #ffd45c66;animation:readyPulse 1.2s ease-in-out infinite}
.requisition>button.show{display:grid}.requisition>button b{position:absolute;top:-7px;right:-7px;display:grid;place-items:center;min-width:21px;height:21px;padding:0 5px;border-radius:11px;background:var(--pink);color:white;font-size:11px}
@keyframes readyPulse{50%{transform:scale(1.08);box-shadow:0 0 38px #ffd45c99}}
@media(max-width:600px){.requisition>div{width:min(150px,100%)}}
