:root{--neon-blue: #00d2ff;--neon-red: #ff4b2b;--neon-yellow: #ffcc00;--bg-dark: #050510;--panel-bg: rgba(5, 15, 25, .92)}*{box-sizing:border-box;margin:0;padding:0}body{background:#000;overflow:hidden;display:flex;justify-content:center;align-items:center;height:100vh;height:100dvh;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;touch-action:none;-webkit-user-select:none;user-select:none;color:#fff}.screen{display:none;position:absolute;top:0;right:0;bottom:0;left:0}.screen.active{display:flex}#title-screen{flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#0a1628,#000 70%);gap:28px;text-align:center}.title-logo{font-size:clamp(2rem,7vw,3.5rem);font-weight:900;color:var(--neon-blue);letter-spacing:.12em;text-shadow:0 0 14px var(--neon-blue),0 0 30px rgba(0,210,255,.4)}.title-sub{font-size:clamp(.8rem,2.5vw,1.1rem);color:#ffffff80;letter-spacing:.3em}.title-start-btn{padding:16px 48px;font-size:1.3rem;font-weight:700;background:var(--neon-blue);color:#000;border:none;border-radius:6px;cursor:pointer;letter-spacing:.15em;box-shadow:0 0 20px #00d2ff66;transition:transform .15s,box-shadow .15s}.title-start-btn:hover{transform:scale(1.06);box-shadow:0 0 30px #00d2ff99}.title-version{font-size:.75rem;color:#ffffff40;margin-top:8px}#hangar-screen{flex-direction:column;align-items:center;background:radial-gradient(ellipse at 30% 20%,#0a1628,#000 70%);overflow-y:auto;overflow-x:hidden;padding:20px 16px 40px}.hangar-header{width:100%;max-width:520px;display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.hangar-title{font-size:1.4rem;color:var(--neon-blue);letter-spacing:.1em;text-shadow:0 0 8px rgba(0,210,255,.4)}.gold-display{font-size:1.2rem;color:var(--neon-yellow);font-weight:700;text-shadow:0 0 8px rgba(255,204,0,.4)}.section-label{width:100%;max-width:520px;font-size:.8rem;color:#fff6;letter-spacing:.2em;margin:14px 0 8px;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:6px}.stage-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;width:100%;max-width:520px}.stage-btn{padding:14px 12px;text-align:center;cursor:pointer;background:var(--panel-bg);border:2px solid rgba(0,210,255,.25);border-radius:8px;color:#fff;font-size:.95rem;font-weight:700;transition:border-color .2s,box-shadow .2s,transform .15s}.stage-btn:hover,.stage-btn:active{border-color:var(--neon-blue);box-shadow:0 0 14px #00d2ff4d;transform:translateY(-2px)}.stage-btn.endless{border-color:#ffcc004d;grid-column:1 / -1}.stage-btn.endless:hover{border-color:var(--neon-yellow);box-shadow:0 0 14px #ffcc004d}.stage-btn .stage-name{display:block;font-size:1rem;margin-bottom:4px}.stage-btn .stage-info{font-size:.7rem;color:#fff6}.stage-btn .stage-clear{color:#4caf50;font-size:.7rem}.difficulty-row{display:flex;gap:6px;width:100%;max-width:520px;flex-wrap:wrap}.diff-btn{flex:1;min-width:60px;padding:8px 6px;text-align:center;background:#ffffff0a;border:1px solid rgba(255,255,255,.12);border-radius:5px;color:#ffffff8c;font-size:.75rem;cursor:pointer;transition:all .2s;font-weight:700}.diff-btn.selected{border-color:var(--neon-blue);color:var(--neon-blue);background:#00d2ff1a;box-shadow:0 0 8px #00d2ff33}.diff-btn[data-diff=hard].selected{border-color:var(--neon-red);color:var(--neon-red);background:#ff4b2b1a}.diff-btn[data-diff=hell].selected{border-color:#ff0080;color:#ff0080;background:#ff00801a}.bestiary-open-row{width:100%;max-width:520px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.bestiary-open-btn{padding:12px 10px;border-radius:8px;border:1px solid rgba(255,204,0,.32);background:#ffcc001a;color:var(--neon-yellow);font-size:.95rem;letter-spacing:.06em;cursor:pointer}.bestiary-open-btn:hover{box-shadow:0 0 14px #ffcc0040}.upgrade-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:100%;max-width:520px}.upgrade-card{padding:12px;background:var(--panel-bg);border:1px solid rgba(255,255,255,.08);border-radius:8px;cursor:pointer;transition:border-color .2s,box-shadow .2s}.upgrade-card:hover{border-color:#00d2ff4d;box-shadow:0 0 10px #00d2ff26}.upgrade-card.maxed{opacity:.5;cursor:default;border-color:#4caf504d}.upgrade-icon{font-size:1.4rem}.upgrade-name{font-size:.82rem;font-weight:700;margin-top:4px}.upgrade-level{font-size:.7rem;color:var(--neon-blue)}.upgrade-cost{font-size:.7rem;color:var(--neon-yellow);margin-top:4px}.upgrade-effect{font-size:.65rem;color:#fff6;margin-top:2px}.upgrade-card.cant-afford .upgrade-cost{color:var(--neon-red)}.reset-btn{margin-top:16px;padding:8px 20px;font-size:.75rem;background:transparent;border:1px solid rgba(255,75,43,.25);color:#ff4b2b80;border-radius:4px;cursor:pointer}.reset-btn:hover{border-color:var(--neon-red);color:var(--neon-red)}#game-wrapper{position:relative;border:3px solid #333;box-shadow:0 0 20px #00d2ff4d;display:none}#game-wrapper.active{display:block}canvas{display:block;background:#050505}#hud{position:absolute;top:10px;left:10px;right:10px;pointer-events:none;color:#fff}.stats-row{display:flex;justify-content:space-between;align-items:flex-start}.heart{color:var(--neon-red);font-size:24px;text-shadow:0 0 5px var(--neon-red)}#heat-container{width:150px;height:12px;background:#222;border:1px solid #555;margin-top:10px;position:relative}#heat-bar{width:0%;height:100%;background:var(--neon-blue);transition:width .1s linear}.overheat{background:var(--neon-red)!important;animation:blink .2s infinite}@keyframes blink{0%{opacity:1}50%{opacity:.5}to{opacity:1}}#rhythm-panel{width:170px;margin-top:10px;padding:8px 10px;background:#0000005c;border:1px solid rgba(255,255,255,.12);border-radius:6px}#combo-text,#flow-text,#effect-text{font-size:11px;font-weight:800;letter-spacing:.08em;color:#ffffffd1;line-height:1.35}#combo-text.hot{color:var(--neon-yellow);text-shadow:0 0 8px rgba(255,204,0,.6)}.hud-minor{font-size:.72rem;color:#ffffff8c;letter-spacing:.12em;margin-bottom:2px}.hud-level{font-size:1rem;font-weight:900;color:var(--neon-blue);text-shadow:0 0 8px rgba(0,210,255,.38)}#exp-container{width:120px;height:7px;margin:4px 0 7px auto;background:#ffffff1f;border-radius:999px;overflow:hidden}#exp-bar{width:0%;height:100%;background:linear-gradient(90deg,#76ff03,var(--neon-blue));transition:width .12s linear}.hud-gold{margin-top:4px;color:var(--neon-yellow);font-size:.88rem;font-weight:900;text-shadow:0 0 8px rgba(255,204,0,.35)}.bomb-hud{color:var(--neon-yellow);font-size:.95rem;font-weight:900;text-shadow:0 0 8px rgba(255,204,0,.42)}.bomb-hud__cd{display:block;margin-top:2px;color:#ffffff80;font-size:.68rem;letter-spacing:.08em}#flow-container{width:100%;height:7px;margin:5px 0;background:#ffffff1f;border-radius:999px;overflow:hidden}#flow-bar{width:0%;height:100%;background:linear-gradient(90deg,var(--neon-blue),#1de9b6);transition:width .1s linear}#flow-bar.rush{background:linear-gradient(90deg,var(--neon-yellow),#ff4b2b);box-shadow:0 0 10px #ffcc00a6}#effect-text{min-height:15px;color:#64ffda}#boss-bar{display:none;position:absolute;left:50%;top:14px;transform:translate(-50%);width:min(420px,calc(100% - 220px));color:#fff;text-align:center;pointer-events:none}#boss-bar .name{font-size:.78rem;font-weight:900;margin-bottom:5px;text-shadow:0 0 8px rgba(255,75,43,.5)}#boss-bar .track{height:9px;border:1px solid rgba(255,255,255,.28);background:#00000073;border-radius:999px;overflow:hidden}#boss-bar .fill{height:100%;width:100%;background:linear-gradient(90deg,var(--neon-red),var(--neon-yellow));transition:width .12s linear}#game-over,#game-victory{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:30px;border-radius:15px;text-align:center;display:none}#game-over{background:#000000d9;border:1px solid var(--neon-blue)}#game-victory{background:#00140ae6;border:2px solid var(--neon-yellow);box-shadow:0 0 30px #fc06;padding:40px;border-radius:20px}.victory-title{color:var(--neon-yellow);font-size:2.5rem;margin-bottom:10px;text-shadow:0 0 10px var(--neon-yellow)}button{padding:10px 25px;font-size:1.2rem;cursor:pointer;background:var(--neon-blue);border:none;color:#000;font-weight:700;border-radius:4px}#result-screen{flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#0a1628,#000 70%);gap:20px;text-align:center}.result-title{font-size:2rem;font-weight:900;text-shadow:0 0 12px}.result-title.win{color:var(--neon-yellow)}.result-title.lose{color:var(--neon-red)}.result-score{font-size:1.3rem;color:var(--neon-blue)}.result-gold{font-size:1.5rem;color:var(--neon-yellow);font-weight:700;text-shadow:0 0 10px rgba(255,204,0,.4)}.result-highscore{font-size:.85rem;color:#fff6}.result-buttons{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.result-buttons button{font-size:1rem;padding:12px 28px;border-radius:6px}.result-btn-retry{background:var(--neon-blue)}.result-btn-hangar{background:var(--neon-yellow);color:#000}#mobile-controls{display:none}#mobile-bomb-btn{position:absolute;top:60px;right:10px;z-index:20;width:56px;height:56px;border-radius:50%;background:#ff4b2b40;border:2px solid var(--neon-red);color:#fff;font-size:22px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 12px #ff4b2b66;transition:transform .1s,background .1s;pointer-events:auto}#mobile-bomb-btn:active{transform:scale(.9);background:#ff4b2b99}.bomb-charges{font-size:11px;font-weight:700;color:var(--neon-yellow);margin-top:-2px}#auto-fire-status{position:absolute;bottom:14px;right:10px;z-index:20;font-size:11px;font-weight:700;letter-spacing:.1em;padding:4px 10px;border-radius:4px;background:#00d2ff26;border:1px solid rgba(0,210,255,.4);color:var(--neon-blue);pointer-events:none}#auto-fire-status.cooling{color:#ff8a65;background:#ff8a6526;border-color:#ff8a6566}#tutorial-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;background:#000000e0;justify-content:center;align-items:center}#tutorial-overlay.show{display:flex}.tutorial-box{background:#050f14f2;border:2px solid var(--neon-blue);border-radius:16px;padding:32px 28px;text-align:center;max-width:380px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 0 30px #00d2ff4d}.tutorial-box h2{color:var(--neon-blue);font-size:1.6rem;margin-bottom:20px;text-shadow:0 0 8px rgba(0,210,255,.5)}.tutorial-item{color:#ffffffd9;font-size:1.05rem;margin:14px 0;line-height:1.5}.tutorial-item .key{display:inline-block;padding:3px 10px;margin:0 3px;background:#ffffff1a;border:1px solid rgba(255,255,255,.3);border-radius:4px;font-family:monospace;font-size:.9rem}#tutorial-start-btn{margin-top:24px;padding:12px 36px;font-size:1.1rem;background:var(--neon-blue);border:none;color:#000;font-weight:700;border-radius:6px;cursor:pointer}@media(hover:none)and (pointer:coarse){#mobile-controls{display:block}}@media(max-width:520px){.upgrade-grid,.stage-grid,.protocol-grid{grid-template-columns:1fr}.protocol-card{min-height:132px}#boss-bar{top:72px;width:calc(100% - 24px)}.bestiary-list{grid-template-columns:1fr}.bestiary-header{align-items:stretch;flex-direction:column}.bestiary-close{width:100%}}.campaign-grid{width:100%;max-width:720px;display:grid;gap:12px;margin-bottom:18px}.campaign-btn{display:flex;align-items:center;gap:14px;padding:16px 18px;background:linear-gradient(135deg,#ff6b9d1f,#00d2ff14);border:2px solid rgba(255,107,157,.5);border-radius:10px;cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}.campaign-btn:hover{transform:translateY(-2px);border-color:#ff6b9d;box-shadow:0 0 22px #ff6b9d59}.campaign-emoji{font-size:2.4rem;filter:drop-shadow(0 0 8px rgba(255,107,157,.6))}.campaign-text{flex:1}.campaign-name{font-size:1.1rem;font-weight:700;color:#ff6b9d;margin-bottom:2px}.campaign-sub{font-size:.8rem;color:#fff9;letter-spacing:.05em}.campaign-clear{font-size:.75rem;color:var(--neon-yellow)}.overlay-screen{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#000000eb;align-items:center;justify-content:center;padding:20px}.overlay-screen.active{display:flex}.protocol-box{width:min(720px,94vw);padding:24px;background:#050a14f5;border:1px solid rgba(255,255,255,.18);border-radius:10px;box-shadow:0 0 42px #00d2ff2e}.protocol-kicker{font-size:.72rem;color:#ffffff7a;letter-spacing:.24em;text-align:center}.protocol-title{margin:6px 0 18px;font-size:1.55rem;font-weight:900;text-align:center;color:var(--neon-blue);text-shadow:0 0 12px rgba(0,210,255,.42)}.protocol-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.protocol-card{min-height:178px;padding:16px 14px;background:#ffffff0b;border:1px solid color-mix(in srgb,var(--protocol-color) 55%,transparent);border-radius:8px;color:#fff;text-align:left;display:flex;flex-direction:column;gap:9px;transition:transform .12s,box-shadow .12s,border-color .12s}.protocol-card:hover,.protocol-card:focus-visible{transform:translateY(-2px);border-color:var(--protocol-color);box-shadow:0 0 20px color-mix(in srgb,var(--protocol-color) 34%,transparent);outline:none}.protocol-tag{width:fit-content;padding:3px 7px;border-radius:4px;background:color-mix(in srgb,var(--protocol-color) 22%,transparent);color:var(--protocol-color);font-size:.68rem;font-weight:900;letter-spacing:.12em}.protocol-name{color:var(--protocol-color);font-size:1.05rem;font-weight:900;line-height:1.25}.protocol-rank{font-size:.74rem;color:#ffffff85;letter-spacing:.12em}.protocol-summary{font-size:.88rem;line-height:1.5;color:#ffffffd6}.protocol-skip{display:block;margin:16px auto 0;padding:8px 18px;font-size:.9rem;background:transparent;color:#ffffff94;border:1px solid rgba(255,255,255,.18)}.bestiary-box{width:min(760px,94vw);max-height:min(760px,90vh);display:flex;flex-direction:column;padding:22px;background:#050c16f7;border:1px solid rgba(255,204,0,.26);border-radius:10px;box-shadow:0 0 42px #ffcc001f}.bestiary-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.bestiary-kicker{font-size:.7rem;color:#ffffff73;letter-spacing:.22em}.bestiary-title{margin-top:4px;color:var(--neon-yellow);font-size:1.45rem;font-weight:900;text-shadow:0 0 12px rgba(255,204,0,.35)}.bestiary-close{padding:8px 14px;font-size:.85rem;background:transparent;color:#ffffffb8;border:1px solid rgba(255,255,255,.18)}.bestiary-tabs{display:flex;gap:8px;margin-bottom:14px}.bestiary-tab{flex:1;padding:9px 12px;font-size:.9rem;background:#ffffff0d;color:#ffffffad;border:1px solid rgba(255,255,255,.12)}.bestiary-tab.active{color:#000;background:var(--neon-yellow);border-color:var(--neon-yellow)}.bestiary-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;overflow-y:auto;padding-right:4px}.bestiary-card{padding:14px;background:#ffffff0b;border:1px solid color-mix(in srgb,var(--entry-color) 42%,rgba(255,255,255,.14));border-radius:8px}.bestiary-card__top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px}.bestiary-card__name{color:var(--entry-color);font-weight:900;font-size:.98rem;line-height:1.35}.bestiary-card__tag{flex-shrink:0;padding:3px 7px;border-radius:4px;background:color-mix(in srgb,var(--entry-color) 18%,transparent);color:var(--entry-color);font-size:.68rem;font-weight:900}.bestiary-card__desc,.bestiary-card__counter{font-size:.82rem;line-height:1.55;color:#ffffffc7}.bestiary-card__counter{margin-top:8px;color:#ffffff94}.intro-box{max-width:600px;width:100%;background:linear-gradient(180deg,#0a1428f2,#050a14f2);border:1px solid rgba(255,107,157,.4);border-radius:12px;padding:28px;box-shadow:0 0 40px #ff6b9d26}.intro-setting{font-size:.8rem;color:#ffffff73;letter-spacing:.2em;text-align:center;margin-bottom:12px}.intro-title{font-size:1.6rem;font-weight:900;color:#ff6b9d;text-align:center;letter-spacing:.08em;text-shadow:0 0 14px rgba(255,107,157,.6);margin-bottom:4px}.intro-subtitle{font-size:.9rem;color:#ffffff80;text-align:center;letter-spacing:.25em;margin-bottom:24px}.intro-body{min-height:280px;font-size:.95rem;line-height:1.7;color:#ffffffe0;padding:14px 0}.intro-line{opacity:0;transform:translateY(4px);transition:opacity .45s ease-out,transform .45s ease-out}.intro-line.show{opacity:1;transform:translateY(0)}.intro-line-blank{height:.6em}.intro-buttons{display:flex;gap:12px;justify-content:flex-end;margin-top:18px}.intro-skip-btn,.intro-start-btn{padding:10px 22px;font-size:.95rem;border-radius:6px;border:1px solid rgba(255,255,255,.25);cursor:pointer;background:transparent;color:#fffc;transition:all .15s}.intro-skip-btn:hover{border-color:#fff9}.intro-start-btn{background:#ff6b9d;color:#000;border:none;font-weight:700;box-shadow:0 0 18px #ff6b9d66}.intro-start-btn:hover:not(.dim){transform:scale(1.03)}.intro-start-btn.dim{opacity:.35;cursor:not-allowed;box-shadow:none}.lesson-box{max-width:520px;width:100%;background:linear-gradient(180deg,#0a1428f5,#050a14f5);border:1px solid rgba(0,210,255,.4);border-radius:12px;padding:24px;box-shadow:0 0 40px #00d2ff26}.lesson-chapter{font-size:.75rem;color:#ffffff73;letter-spacing:.2em;text-align:center;margin-bottom:18px}.lesson-card{background:#00d2ff0f;border:1px solid rgba(0,210,255,.2);border-radius:10px;padding:22px;text-align:center;min-height:280px;display:flex;flex-direction:column;align-items:center;gap:14px}.lesson-card-icon{font-size:3rem;filter:drop-shadow(0 0 10px rgba(0,210,255,.6))}.lesson-card-title{font-size:1.3rem;font-weight:700;color:var(--neon-blue);letter-spacing:.05em}.lesson-card-body{font-size:.95rem;line-height:1.7;color:#ffffffe0;text-align:left}.lesson-footer{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.lesson-progress{font-size:.85rem;color:#ffffff80;letter-spacing:.1em}.lesson-buttons{display:flex;gap:10px}.lesson-skip-btn,.lesson-next-btn{padding:10px 20px;font-size:.95rem;border-radius:6px;border:1px solid rgba(255,255,255,.25);cursor:pointer;background:transparent;color:#fffc;transition:all .15s}.lesson-skip-btn:hover{border-color:#fff9}.lesson-next-btn{background:var(--neon-blue);color:#000;border:none;font-weight:700;box-shadow:0 0 18px #00d2ff66}.lesson-next-btn:hover{transform:scale(1.03)}
