:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--cyan:#16ddff;--cyan-soft:#7ef2ff;--magenta:#e64cff;--amber:#ffb731;--red:#ff3c29;--panel:#05090ef0;--line:#36d5f257;font-family:Segoe UI,Microsoft YaHei UI,system-ui,sans-serif}*{box-sizing:border-box}html,body,#app{background:#02070d;width:100%;height:100%;margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none}button,select,input{font:inherit}button{color:inherit}#game-canvas{touch-action:none;outline:none;width:100%;height:100%;position:absolute;inset:0}#ui-root,#damage-layer{pointer-events:none;position:absolute;inset:0}#ui-root{z-index:3}#damage-layer{z-index:2;overflow:hidden}.screen{display:none;position:absolute;inset:0}.screen.active{display:flex}.eyebrow{color:var(--cyan);letter-spacing:.34em;text-transform:uppercase;font-size:clamp(10px,.8vw,14px);font-weight:800}.screen h1,.screen h2,.screen h3{letter-spacing:.04em;margin:0;font-family:Impact,Arial Black,sans-serif;font-weight:900}.screen h1 span,.screen h2 span{color:var(--cyan)}#loading-screen{z-index:20;pointer-events:auto;background:radial-gradient(circle,#08202b 0,#02070d 50%,#010204 100%);flex-direction:column;justify-content:center;align-items:center;gap:12px}#loading-screen h1{text-shadow:0 0 28px #16ddff4d;font-size:clamp(44px,7vw,110px)}#loading-screen p,#loading-screen output{color:#7596a2;letter-spacing:.2em;font:700 11px ui-monospace,monospace}.loading-track{background:#10252c;width:min(420px,66vw);height:3px;overflow:hidden}#loading-fill{background:var(--cyan);width:0;height:100%;box-shadow:0 0 16px var(--cyan);transition:width .18s}.loading-mark{width:54px;height:54px;margin-bottom:8px;animation:5s linear infinite spin;position:relative}.loading-mark span{border:2px solid var(--cyan);position:absolute;inset:8px;transform:rotate(45deg);box-shadow:0 0 15px #16ddff8c}.loading-mark span:nth-child(2){animation:2s linear infinite reverse spin;inset:15px}.loading-mark span:nth-child(3){background:var(--cyan);inset:22px}@keyframes spin{to{transform:rotate(360deg)}}.menu-screen{pointer-events:auto;background:linear-gradient(90deg,#030a0fc7 0,#030a0f8f 37%,#030a0f0a 68%,#030a0f2e 100%);align-items:center;padding:clamp(28px,6vw,110px)}.scanline{opacity:.12;pointer-events:none;background:repeating-linear-gradient(0deg,#0000 0 3px,#50dcff1a 4px);position:absolute;inset:0}.brand-block{position:absolute;top:clamp(38px,9vh,120px);left:clamp(28px,6vw,110px)}.brand-block h1{text-shadow:0 3px #000,0 0 35px #16ddff21;margin:.16em 0 .22em;font-size:clamp(60px,9.2vw,148px);line-height:.74}.brand-block p,.menu-footer{color:#54717b;letter-spacing:.14em;font:700 clamp(8px,.65vw,12px) ui-monospace,monospace}.menu-panel{flex-direction:column;gap:9px;width:min(420px,42vw);display:none;position:absolute;bottom:clamp(68px,15vh,170px);left:clamp(28px,6vw,110px)}.menu-panel.visible{display:flex}.menu-button{cursor:pointer;text-align:left;background:linear-gradient(90deg,#0a161deb,#04090dbf);border:1px solid #5d8d9947;justify-content:space-between;align-items:baseline;width:100%;min-height:54px;padding:12px 18px;transition:border-color .12s,transform .12s,background .12s;display:flex;position:relative;overflow:hidden}.menu-button:before{content:"";background:#54717b;width:3px;position:absolute;top:0;bottom:0;left:0;box-shadow:0 0 12px}.menu-button b{letter-spacing:.08em;font-size:16px}.menu-button span{color:#60808a;letter-spacing:.14em;font:800 9px ui-monospace,monospace}.menu-button:hover,.menu-button:focus-visible{border-color:var(--cyan);background:linear-gradient(90deg,#093e48f0,#040c11cc);outline:none;transform:translate(7px)}.menu-button:hover:before,.menu-button.primary:before{background:var(--cyan)}.menu-button.primary{border-color:#16ddff80}.menu-button.danger:hover{border-color:var(--red);background:linear-gradient(90deg,#46100de6,#080708cc)}.menu-button.danger:hover:before{background:var(--red)}.menu-button.compact{min-height:45px;margin-top:4px}.menu-footer{border-top:1px solid #50849133;justify-content:space-between;padding-top:12px;display:flex;position:absolute;bottom:24px;left:clamp(28px,6vw,110px);right:clamp(28px,4vw,80px)}.menu-screen.pause-overlay{z-index:10;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:radial-gradient(circle,#030e14b3,#010407f0);justify-content:center;padding:0}.menu-screen.pause-overlay .brand-block,.menu-screen.pause-overlay .menu-footer,.menu-screen.pause-overlay .scanline,.menu-screen.pause-overlay #menu-main,.menu-screen.pause-overlay #credits-panel{display:none!important}.menu-screen.pause-overlay #settings-panel{width:min(560px,88vw);position:relative;bottom:auto;left:auto}.sub-panel{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#03090ee6;gap:7px;width:min(520px,50vw);padding:19px;bottom:clamp(45px,7vh,90px)}.panel-title{border-bottom:1px solid #47828f40;align-items:center;gap:14px;margin-bottom:3px;padding-bottom:12px;display:flex}.panel-title div{flex-direction:column;display:flex}.panel-title b{font-size:18px}.panel-title span{color:var(--cyan);letter-spacing:.18em;font:700 9px ui-monospace,monospace}.back-button{border:1px solid var(--line);width:35px;height:35px;color:var(--cyan);cursor:pointer;background:#07131a;font-size:24px}.sub-panel>label{color:#c0d1d6;grid-template-columns:1fr minmax(145px,.75fr);align-items:center;gap:10px;min-height:31px;font-size:12px;display:grid}.sub-panel label span{flex-direction:column;display:flex}.sub-panel small{color:#4b707b;letter-spacing:.12em;font:700 8px ui-monospace,monospace}.sub-panel select{color:#ccecf1;background:#061118;border:1px solid #2c889973;outline:none;height:30px;padding:0 8px}.sub-panel input[type=range]{accent-color:var(--cyan);grid-column:2;width:100%}.sub-panel output{color:var(--cyan);margin-top:-16px;font:700 9px ui-monospace,monospace;position:absolute;right:28px}.sub-panel .toggle-line input{accent-color:var(--cyan);justify-self:end}.settings-note{color:#54717b;margin:4px 0;font-size:10px;line-height:1.5}.settings-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}#credits-panel p{color:#8ca5ad;margin:2px 0;font-size:12px;line-height:1.7}.control-grid{border-top:1px solid #47828f40;grid-template-columns:1fr 1fr;gap:5px 12px;margin-top:12px;padding-top:12px;font:700 9px ui-monospace,monospace;display:grid}.control-grid span{color:var(--cyan)}.control-grid b{color:#78929a}.hud-screen{pointer-events:none;flex-direction:column;justify-content:space-between;padding:24px 28px 30px}.hud-top{justify-content:center;width:100%;display:flex;position:relative}.wave-panel{border-left:3px solid var(--cyan);background:linear-gradient(90deg,#031017e6,#03101740);flex-direction:column;min-width:185px;padding:10px 14px 10px 17px;display:flex;position:absolute;top:0;left:0}.wave-panel span{color:var(--cyan);letter-spacing:.18em;font:900 12px ui-monospace,monospace}.wave-panel b{color:#97afb6;letter-spacing:.12em;margin-top:4px;font-size:9px}.boss-panel{background:linear-gradient(90deg,#0000,#180505bf 14% 86%,#0000);width:min(600px,48vw);padding:8px 14px 13px;transition:opacity .2s}.boss-panel.hidden{opacity:0}.boss-heading{color:#ff9b84;letter-spacing:.16em;justify-content:space-between;font:900 11px ui-monospace,monospace;display:flex}.bar{background:#49636a33;position:relative;overflow:hidden}.bar i{width:100%;height:100%;transition:width .12s linear;display:block}.boss-bar{border:1px solid #ff462859;height:7px;margin-top:7px}.boss-bar i{background:linear-gradient(90deg,#8c120b,#ff3e24,#ffac41);box-shadow:0 0 14px #ff321c}.game-hint{opacity:0;color:#d7fbff;letter-spacing:.18em;background:#020f15cc;border:1px solid #16ddff80;padding:9px 24px;font:900 clamp(11px,1vw,16px) ui-monospace,monospace;transition:opacity .18s,transform .18s;position:absolute;top:21%;left:50%;transform:translate(-50%,10px)}.game-hint.visible{opacity:1;transform:translate(-50%)}.hud-bottom{grid-template-columns:1fr minmax(280px,35vw) 1fr;align-items:end;gap:30px;width:100%;display:grid}.player-core-panel{align-items:center;gap:13px;display:flex}.core-glyph{background:#031218bf;border:1px solid #16ddff73;width:54px;height:54px;padding:8px;transform:rotate(45deg)}.core-glyph i{border:2px solid var(--cyan);width:100%;height:100%;box-shadow:inset 0 0 12px var(--cyan), 0 0 10px #16ddff80;display:block}.health-copy{flex-direction:column;width:min(260px,22vw);display:flex}.health-copy>span{color:#78969e;letter-spacing:.12em;font:800 9px ui-monospace,monospace}.health-copy strong{color:#e0faff;margin:3px 0 5px;font:900 17px ui-monospace,monospace}.health-copy strong span{color:#69868e;font-size:11px}.health-bar{height:6px}.health-bar i{background:linear-gradient(90deg, #077f9e, var(--cyan));box-shadow:0 0 12px var(--cyan)}.xp-panel{align-self:end}.xp-copy{color:#6f8e96;letter-spacing:.12em;justify-content:space-between;margin-bottom:5px;font:800 9px ui-monospace,monospace;display:flex}.xp-copy b{color:var(--amber)}.xp-bar{border:1px solid #ffb7314d;height:5px}.xp-bar i{background:linear-gradient(90deg, #9f6200, var(--amber));box-shadow:0 0 10px var(--amber)}.cooldown-panel{justify-self:end;gap:13px;display:flex}.cooldown{--ready:360deg;background:conic-gradient(var(--cyan) var(--ready), #365b652e 0);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:66px;height:66px;display:flex;position:relative}.cooldown:before{content:"";background:#030c11eb;border-radius:50%;position:absolute;inset:4px}.cooldown i{border-radius:50%;position:absolute;inset:-2px;box-shadow:0 0 12px #16ddff1f}.cooldown b,.cooldown span{z-index:1;position:relative}.cooldown b{color:#d8f8fd;font:900 12px ui-monospace,monospace}.cooldown span{color:#63828b;letter-spacing:.12em;font:800 7px ui-monospace,monospace}.cooldown.ready{filter:drop-shadow(0 0 7px #16ddff80)}.modal-screen{z-index:8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);pointer-events:auto;background:radial-gradient(circle,#030e148c,#010407e6);justify-content:center;align-items:center}.modal-card{border:1px solid var(--line);background:var(--panel);width:min(420px,85vw);padding:35px;box-shadow:0 24px 80px #000000a6,inset 0 0 50px #0f75890d}.modal-card h2{margin:10px 0 27px;font-size:42px;line-height:.9}.modal-card .menu-button{margin-top:9px}.modal-card>p{color:#53717a;text-align:center;letter-spacing:.15em;margin:20px 0 0;font:700 9px ui-monospace,monospace}.upgrade-shell{text-align:center;width:min(1160px,92vw)}.upgrade-shell h2{margin:8px 0 30px;font-size:clamp(30px,4vw,58px)}.upgrade-shell h2 span{color:#73939c;letter-spacing:.28em;font:800 11px ui-monospace,monospace;display:block}.upgrade-shell>p{color:#63818a;letter-spacing:.18em;font:700 10px ui-monospace,monospace}.upgrade-cards{grid-template-columns:repeat(3,1fr);gap:clamp(12px,2vw,27px);display:grid}.upgrade-card{--accent:var(--cyan);color:#cce3e8;cursor:pointer;text-align:left;background:linear-gradient(160deg,#09141bfa,#03070bfa);border:1px solid #62858e52;min-height:355px;padding:30px 25px 24px;transition:transform .16s,border-color .16s,box-shadow .16s;position:relative;overflow:hidden}.upgrade-card:before{content:"";opacity:.08;background:radial-gradient(circle at 50% 30%, var(--accent), transparent 45%);position:absolute;inset:0}.upgrade-card.accent-magenta{--accent:var(--magenta)}.upgrade-card.accent-amber{--accent:var(--amber)}.upgrade-card.selected,.upgrade-card:hover{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent), 0 25px 70px #0000008c, inset 0 0 30px color-mix(in srgb, var(--accent) 8%, transparent);outline:none;transform:translateY(-10px)}.card-index{color:#3e5d65;font:900 11px ui-monospace,monospace;position:absolute;top:15px;right:18px}.card-icon{border:1px solid color-mix(in srgb, var(--accent) 50%, transparent);width:82px;height:82px;margin:25px auto 31px;padding:18px;transform:rotate(45deg)}.card-icon i{background:var(--accent);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%,35% 50%);width:100%;height:100%;box-shadow:0 0 15px var(--accent);display:block}.upgrade-card h3{color:#e6fbff;letter-spacing:.05em;font-family:inherit;font-size:18px;position:relative}.upgrade-card p{color:#75929a;min-height:66px;font-size:12px;line-height:1.6;position:relative}.level-pips{gap:6px;display:flex;position:relative}.level-pips i{background:#263b41;width:25px;height:3px}.level-pips i.filled{background:var(--accent);box-shadow:0 0 7px var(--accent)}.upgrade-card small{color:var(--accent);letter-spacing:.15em;font:900 8px ui-monospace,monospace;position:absolute;bottom:22px;right:22px}.result-card{width:min(540px,90vw)}.result-card h2{font-size:48px}.result-card h2.defeat span{color:var(--red)}.result-stats{background:#5c7e872e;grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:18px;display:grid}.result-stats div{background:#061017;flex-direction:column;padding:14px;display:flex}.result-stats span{color:#58757e;letter-spacing:.12em;font:800 8px ui-monospace,monospace}.result-stats b{color:#ddf9fd;margin-top:4px;font:900 18px ui-monospace,monospace}.result-upgrades{flex-wrap:wrap;gap:5px;min-height:30px;margin-bottom:12px;display:flex}.result-upgrades span{color:var(--cyan);background:#062b3266;border:1px solid #16ddff40;padding:5px 8px;font-size:9px}.damage-number{color:var(--cyan-soft);text-shadow:0 0 9px var(--cyan), 0 2px 2px #000;letter-spacing:.03em;will-change:left, top, transform, opacity;font:900 19px Impact,sans-serif;position:absolute}.damage-number.critical{color:#ffd55b;text-shadow:0 0 12px var(--amber), 0 2px 2px #000;font-size:25px}#toast{opacity:0;color:var(--cyan-soft);letter-spacing:.1em;pointer-events:none;background:#030f15f0;border:1px solid #16ddff66;padding:10px 17px;font:800 10px ui-monospace,monospace;transition:opacity .18s,transform .18s;position:absolute;bottom:7vh;left:50%;transform:translate(-50%,12px)}#toast.visible{opacity:1;transform:translate(-50%)}@media (width<=760px),(height<=620px){.brand-block{top:28px}.brand-block h1{font-size:clamp(50px,14vw,82px)}.menu-panel{width:min(440px,100vw - 40px);bottom:46px;left:20px}.sub-panel{max-height:calc(100vh - 36px);bottom:18px;overflow:auto}.menu-footer{display:none}.hud-screen{padding:12px}.hud-bottom{grid-template-columns:1fr 1fr;gap:12px}.xp-panel{grid-area:1/1/auto/-1}.health-copy{width:190px}.upgrade-cards{gap:8px}.upgrade-card{min-height:275px;padding:15px 12px}.card-icon{width:55px;height:55px;margin:12px auto 20px;padding:12px}.upgrade-card h3{font-size:13px}.upgrade-card p{min-height:58px;font-size:9px}}
