:root{--bg:#0b0e17;--panel:#101624eb;--line:#7df9ff2e;--cyan:#7df9ff;--gold:#ffd166;--pink:#ff5d8f;--red:#ff3b5c;--green:#5ef2a0;--purple:#c792ff;--text:#e8f0ff;--text-dim:#93a4c3}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;padding:0}html,body{background:var(--bg);height:100%;color:var(--text);touch-action:none;overscroll-behavior:none;font-family:Segoe UI,system-ui,-apple-system,sans-serif;overflow:hidden}#app{position:fixed;inset:0}#game{display:block;position:absolute;inset:0}#ui-layer{pointer-events:none;position:absolute;inset:0}#ui-layer>.screens,#ui-layer>.levelup{pointer-events:auto}#ui-layer>.hud{pointer-events:none}#ui-layer:after{content:"";pointer-events:none;z-index:60;background:repeating-linear-gradient(0deg,#ffffff03 0 1px,#0000 1px 3px);position:absolute;inset:0}.btn{appearance:none;border:1px solid var(--line);color:var(--text);letter-spacing:.08em;cursor:pointer;background:linear-gradient(#283654e6,#161e32e6);border-radius:10px;padding:12px 22px;font:700 14px/1 Segoe UI,system-ui,sans-serif;transition:transform 80ms,box-shadow .15s,background .15s;box-shadow:0 2px #0006,inset 0 1px #ffffff0f}.btn:hover{background:linear-gradient(#3a4e78f2,#1c263ef2);box-shadow:0 2px #0006,0 0 18px #7df9ff40}.btn:active{box-shadow:none;transform:translateY(2px)}.btn.primary{color:#04222b;text-shadow:0 1px #ffffff4d;background:linear-gradient(#2ee6ff,#1a9db8);border-color:#ffffff59}.btn.primary:hover{box-shadow:0 0 26px #2ee6ff8c}.btn.big{letter-spacing:.14em;padding:16px 40px;font-size:18px}.btn.small{padding:8px 14px;font-size:12px}.btn.ghost{background:#ffffff0d;border-color:#ffffff24}.btn.danger{color:#fff;background:linear-gradient(#ff5d7a,#c22a44)}.btn[disabled]{opacity:.4;cursor:not-allowed}.hud{pointer-events:none;z-index:20;position:absolute;inset:0}.hud-top{justify-content:space-between;align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.hud-xp-wrap{flex:1;align-items:center;gap:8px;min-width:130px;max-width:260px;display:flex}.hud-level{color:#04222b;background:linear-gradient(#2ee6ff,#1a9db8);border-radius:10px;place-items:center;width:38px;height:38px;font-size:16px;font-weight:800;display:grid;box-shadow:0 0 14px #2ee6ff80}.hud-xp{border:1px solid var(--line);background:#080c16cc;border-radius:8px;flex:1;height:12px;overflow:hidden}.hud-xp-fill{transform-origin:0;background:linear-gradient(90deg,#2ee6ff,#5ef2a0);height:100%;transform:scaleX(0);box-shadow:0 0 10px #5ef2a0b3}.hud-center{text-align:center}.hud-timer{letter-spacing:.1em;text-shadow:0 0 12px #7df9ff66;font-size:22px;font-weight:800}.hud-sub{color:var(--text-dim);letter-spacing:.06em;white-space:nowrap;margin-top:2px;font-size:11px}.hud-right{flex:1;justify-content:flex-end;align-items:center;gap:8px;display:flex}.hud-gold{color:var(--gold);text-shadow:0 0 10px #ffd16666;font-size:15px;font-weight:800}.coin-ico{margin-right:4px}.hud-pause{pointer-events:auto;border:1px solid var(--line);width:36px;height:36px;color:var(--text);cursor:pointer;background:#0a101ccc;border-radius:10px;font-size:12px}.hud-hp{background:#080c16cc;border:1px solid #ff5b7c59;border-radius:8px;width:min(320px,60vw);height:14px;position:absolute;top:58px;left:50%;overflow:hidden;transform:translate(-50%)}.hud-hp-fill{background:linear-gradient(90deg,#ff3b5c,#ff8fa3);width:100%;height:100%;transition:width .15s ease-out;box-shadow:0 0 10px #ff3b5c99}.hud-hp-text{text-align:center;letter-spacing:.1em;text-shadow:0 1px 2px #000;font-size:9px;font-weight:800;line-height:14px;position:absolute;inset:0}.hud-boss{text-align:center;width:min(420px,84vw);display:none;position:absolute;top:78px;left:50%;transform:translate(-50%)}.hud-boss-name{letter-spacing:.2em;color:var(--red);text-shadow:0 0 10px #ff3b5c99;margin-bottom:3px;font-size:11px;font-weight:800}.hud-boss-bar{background:#080c16e6;border:1px solid #ff3b5c80;border-radius:6px;height:10px;overflow:hidden}.hud-boss-fill{background:linear-gradient(90deg,#ff2d2d,#ff8c1a);height:100%;transition:width .12s linear;box-shadow:0 0 12px #ff3c3ccc}.hud-weapons{flex-wrap:wrap;gap:6px;max-width:46vw;display:flex;position:absolute;bottom:14px;left:10px}.hud-weapon{border:1px solid var(--line);background:#0a101cd9;border-radius:9px;place-items:center;width:34px;height:34px;display:grid;position:relative}.hud-weapon.passive{opacity:.85}.wd-ico{font-size:16px}.wd-lv{border:1px solid var(--line);color:var(--cyan);background:#101828;border-radius:6px;padding:1px 4px;font-size:9px;font-weight:800;position:absolute;bottom:-5px;right:-4px}.hud-combo{letter-spacing:.08em;color:var(--gold);text-shadow:0 0 20px #ffd166cc,0 3px #00000080;opacity:0;pointer-events:none;font-size:26px;font-weight:900;transition:opacity .2s;position:absolute;top:22%;left:50%;transform:translate(-50%)scale(.6)}.hud-combo.show{opacity:1}.hud-combo.pop{animation:.35s ease-out combo-pop}@keyframes combo-pop{0%{transform:translate(-50%)scale(1.6)}to{transform:translate(-50%)scale(1)}}.hud-toasts{pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:32%;left:50%;transform:translate(-50%)}.stage-banner{text-align:center;pointer-events:none;transition:opacity .5s,transform .5s;animation:.5s cubic-bezier(.2,1.2,.3,1) banner-in;position:absolute;top:34%;left:0;right:0}.stage-banner.out{opacity:0;transform:scale(1.15)}.stage-banner-sub{letter-spacing:.5em;color:var(--cyan);text-shadow:0 0 16px #2ee6ffb3;font-size:12px;font-weight:800}.stage-banner-name{letter-spacing:.24em;color:#fff;text-shadow:0 0 30px #2ee6ff99,0 4px #0006;margin-top:4px;font-size:clamp(38px,9vw,64px);font-weight:900}@keyframes banner-in{0%{opacity:0;letter-spacing:.6em;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.toast{border:1px solid var(--line);letter-spacing:.06em;white-space:nowrap;background:#0a101ceb;border-radius:10px;padding:8px 18px;font-size:14px;font-weight:800;animation:.25s ease-out toast-in}.toast.boss{color:var(--red);border-color:#ff3b5c99;box-shadow:0 0 24px #ff3b5c59}.toast.ach{color:var(--gold);border-color:#ffd16680}.toast.out{opacity:0;transition:all .45s;transform:translateY(-8px)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)scale(.9)}to{opacity:1;transform:none}}.screens{z-index:40;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:radial-gradient(#0b0e178c,#05070ce0);place-items:center;display:grid;position:absolute;inset:0;overflow-y:auto}.screen{width:min(560px,94vw);max-height:96vh;padding:20px 0 40px;overflow-y:auto}.screen-enter{animation:.25s ease-out screen-in}@keyframes screen-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.menu-screen{text-align:center;position:relative}.menu-bg-text{letter-spacing:.1em;color:#7df9ff0b;pointer-events:none;-webkit-user-select:none;user-select:none;place-items:center;font-size:clamp(90px,24vw,220px);font-weight:900;display:grid;position:absolute;inset:0}.game-title{margin:8vh 0 4vh;position:relative}.title-h{letter-spacing:.16em;background:linear-gradient(#eafcff 20%,#2ee6ff 55%,#1a7f9e);color:#0000;filter:drop-shadow(0 0 24px #2ee6ff73);-webkit-background-clip:text;background-clip:text;font-size:clamp(56px,14vw,96px);font-weight:900;display:block}.title-sub{letter-spacing:.5em;color:var(--text-dim);margin-top:6px;font-size:13px;font-weight:700;display:block}.menu-stats{color:var(--text-dim);justify-content:center;gap:22px;margin-bottom:5vh;font-size:13px;display:flex}.menu-stats b{color:var(--text)}.menu-buttons{flex-direction:column;align-items:center;gap:12px;display:flex}.menu-buttons .btn{width:min(280px,80vw)}.menu-foot{color:var(--text-dim);letter-spacing:.2em;text-transform:uppercase;margin-top:5vh;font-size:11px}.screen-head{justify-content:space-between;align-items:center;gap:10px;padding:0 16px 14px;display:flex}.screen-head h2{letter-spacing:.2em;font-size:20px;font-weight:900}.gold-chip{color:var(--gold);text-align:right;min-width:70px;font-weight:800}.gold-chip.shake{animation:.4s shake}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.char-list{flex-direction:column;gap:10px;padding:0 16px;display:flex}.char-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;align-items:center;gap:12px;padding:12px;display:flex}.char-card.locked{opacity:.85}.char-avatar{width:52px;height:52px;color:var(--c,var(--cyan));border:1px solid var(--c,var(--cyan));box-shadow:0 0 16px color-mix(in srgb, var(--c,#7df9ff) 40%, transparent);background:radial-gradient(circle at 30% 30%,#ffffff1f,#0000004d);border-radius:14px;place-items:center;font-size:24px;font-weight:900;display:grid}.char-info{flex:1;min-width:0}.char-name{font-size:15px;font-weight:800}.char-title{color:var(--text-dim);margin-left:6px;font-size:11px;font-weight:600}.char-desc{color:var(--text-dim);margin:3px 0 5px;font-size:12px}.char-tags{color:var(--cyan);gap:8px;font-size:11px;display:flex}.stage-select-label{text-align:center;letter-spacing:.3em;color:var(--text-dim);margin:18px 0 8px;font-size:10px}.stage-select{flex-wrap:wrap;justify-content:center;gap:8px;padding:0 16px;display:flex}.stage-chip{border:1px solid var(--line);color:var(--text);cursor:pointer;background:#101624e6;border-radius:999px;align-items:center;gap:7px;padding:8px 14px;font-size:12px;font-weight:700;display:inline-flex}.stage-chip.active{border-color:var(--cyan);box-shadow:0 0 14px #2ee6ff59}.stage-chip.locked{opacity:.45;cursor:not-allowed}.stage-dot{border-radius:50%;width:9px;height:9px}.shop-list{flex-direction:column;gap:8px;padding:0 16px;display:flex}.shop-row{background:var(--panel);border:1px solid var(--line);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.shop-icon{text-align:center;width:40px;font-size:22px}.shop-info{flex:1}.shop-name{font-size:14px;font-weight:800}.shop-lv{color:var(--text-dim);margin-left:6px;font-size:11px}.shop-desc{color:var(--text-dim);font-size:11px}.shop-dots{gap:3px;display:flex}.shop-dots span{background:#ffffff1f;border-radius:50%;width:7px;height:7px}.shop-dots span.on{background:var(--cyan);box-shadow:0 0 6px var(--cyan)}.shop-section-label,.settings-credit{text-align:center;letter-spacing:.3em;color:var(--text-dim);margin:16px 0 8px;font-size:10px}.ach-list{flex-direction:column;gap:4px;padding:0 16px;display:flex}.ach-row{color:var(--text-dim);background:#ffffff08;border-radius:8px;align-items:center;gap:10px;padding:6px 10px;font-size:11px;display:flex}.ach-row.got{color:var(--gold);background:#ffd16614}.ach-name{min-width:100px;font-weight:800}.ach-desc{flex:1}.ach-reward{font-weight:800}.settings-screen .screen-head{justify-content:space-between}.settings-list{flex-direction:column;gap:8px;padding:0 16px;display:flex}.setting-row{background:var(--panel);border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:14px;font-weight:600;display:flex}.setting-row input[type=range]{accent-color:#2ee6ff;width:160px}.setting-row input[type=checkbox]{accent-color:#2ee6ff;width:20px;height:20px}.pause-screen,.over-screen{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#05080eb8;place-items:center;display:grid}.pause-panel,.over-panel{background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:18px;flex-direction:column;gap:12px;min-width:min(320px,88vw);padding:28px 34px;display:flex;box-shadow:0 0 60px #0009,inset 0 1px #ffffff0d}.pause-panel h2,.over-title{letter-spacing:.24em;margin-bottom:8px;font-size:28px;font-weight:900}.over-panel.record{border-color:#ffd16680;box-shadow:0 0 60px #ffd16626}.record-chip{letter-spacing:.2em;color:#04222b;background:var(--gold);border-radius:999px;margin:0 auto 8px;padding:5px 14px;font-size:11px;font-weight:900;animation:1.2s infinite record-pulse;display:inline-block}@keyframes record-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.victory-sub{color:var(--gold);margin-bottom:10px;font-size:13px}.over-stats{grid-template-columns:1fr 1fr;gap:8px 18px;margin-bottom:14px;display:grid}.over-stats>div{color:var(--text-dim);border-bottom:1px dashed #ffffff14;justify-content:space-between;padding-bottom:4px;font-size:13px;display:flex}.over-stats b{color:var(--text)}.over-buttons{justify-content:center;gap:10px;display:flex}.levelup{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:auto;background:radial-gradient(#0b0e1759,#05070cc7);place-items:center;animation:.2s ease-out fade-in;display:grid;position:absolute;inset:0}.levelup.hidden{display:none}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.levelup-inner{text-align:center;width:min(680px,96vw);padding:16px}.levelup-title{letter-spacing:.2em;background:linear-gradient(#fff,#2ee6ff);color:#0000;filter:drop-shadow(0 0 18px #2ee6ff80);-webkit-background-clip:text;background-clip:text;font-size:clamp(30px,7vw,44px);font-weight:900;animation:.5s cubic-bezier(.2,1.4,.4,1) lu-title}@keyframes lu-title{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.levelup-sub{color:var(--gold);letter-spacing:.1em;min-height:18px;margin-bottom:10px;font-size:12px;font-weight:700}.cards{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:14px 0 18px;display:grid}.card{border:1px solid var(--line);cursor:pointer;background:linear-gradient(#1e2a44f2,#0e1422f2);border-radius:16px;padding:18px 10px 14px;transition:transform .12s,box-shadow .15s;animation:.35s cubic-bezier(.2,1.2,.3,1) backwards card-in;position:relative;overflow:hidden}@keyframes card-in{0%{opacity:0;transform:translateY(30px)scale(.85)}to{opacity:1;transform:none}}.card:hover{box-shadow:0 8px 30px #00000080, 0 0 24px var(--rarity-glow,#2ee6ff40);transform:translateY(-4px)}.card-key{color:var(--text-dim);border:1px solid #ffffff26;border-radius:5px;width:16px;height:16px;font-size:10px;font-weight:800;line-height:14px;position:absolute;top:6px;left:8px}.card-icon{margin-bottom:8px;font-size:40px;animation:2.4s ease-in-out infinite icon-float}@keyframes icon-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.card-name{margin-bottom:2px;font-size:14px;font-weight:800}.card-new{letter-spacing:.1em;background:var(--green);color:#04222b;vertical-align:middle;border-radius:4px;margin-left:6px;padding:2px 5px;font-size:8px;font-weight:900}.card-rarity{letter-spacing:.2em;color:var(--text-dim);margin-bottom:6px;font-size:9px;font-weight:900}.card-desc{color:var(--text-dim);font-size:11.5px;line-height:1.45}.card-max{color:var(--gold);font-weight:800}.rarity-common{--rarity-glow:#93a4c34d}.rarity-common .card-rarity{color:#93a4c3}.rarity-rare{--rarity-glow:#2ee6ff59;border-color:#2ee6ff66}.rarity-rare .card-rarity{color:var(--cyan)}.rarity-epic{--rarity-glow:#c792ff66;border-color:#c792ff73}.rarity-epic .card-rarity{color:var(--purple)}.rarity-legendary{--rarity-glow:#ffd16680;border-color:#ffd16699;animation:.35s cubic-bezier(.2,1.2,.3,1) backwards card-in,1.6s infinite legendary-glow}.rarity-legendary .card-rarity{color:var(--gold)}@keyframes legendary-glow{0%,to{box-shadow:0 0 12px #ffd16633}50%{box-shadow:0 0 28px #ffd16673}}.levelup-actions{justify-content:center;gap:12px;display:flex}.levelup-actions .cost{color:var(--gold)}.levelup-actions .disabled{opacity:.45}.levelup-hint{letter-spacing:.24em;color:var(--text-dim);text-transform:uppercase;margin-top:12px;font-size:10px}@media (max-width:480px){.cards{grid-template-columns:1fr 1fr}.hud-timer{font-size:18px}.hud-weapons{max-width:60vw}}@media (max-height:620px){.game-title{margin:2vh 0 3vh}.menu-stats{margin-bottom:3vh}.menu-foot{margin-top:3vh}}
