:root{--bg:#05060a;--ink:#e6f4f8;--dim:#7d8a99;--line:#78dcff2e;--cyan:#2ee6ff;--violet:#9b5cff;--crimson:#ff2a5c;--amber:#ffa53a;--panel:#06090fdb;--head:"Bahnschrift", "DIN Alternate", "Segoe UI", "Roboto Condensed", "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SFMono-Regular", Consolas, "JetBrains Mono", "DejaVu Sans Mono", monospace}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--head);-webkit-user-select:none;user-select:none;margin:0;overflow:hidden}#app,#gl{width:100vw;height:100vh;display:block;position:fixed;inset:0}body.in-game #gl{cursor:crosshair}button{font:inherit;color:inherit}button:focus-visible{outline:1px solid var(--cyan);outline-offset:2px}kbd{min-width:26px;font-family:var(--mono);text-align:center;color:var(--cyan);background:#2ee6ff0f;border:1px solid #2ee6ff8c;border-bottom-width:3px;border-radius:4px;padding:3px 7px;font-size:13px;font-weight:700;display:inline-block}kbd.atk{color:#ffd6e0;background:#ff2a5c14;border-color:#ff2a5ca6}.screen{z-index:10;display:none;position:fixed;inset:0}.screen.on{display:block}.panel-screen.on,.menu.on{justify-content:center;align-items:center;padding:18px;display:flex}.panel-screen{z-index:20;background:#0203068c}.panel{background:var(--panel);border:1px solid var(--line);border-top:2px solid var(--cyan);clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,18px 100%,0 calc(100% - 18px));width:min(460px,100%);max-height:calc(100vh - 36px);padding:26px 28px 22px;overflow-y:auto}.panel.wide{width:min(860px,100%)}h2{letter-spacing:.28em;margin:0 0 16px;font-size:24px;font-weight:700}h2.dead{color:var(--crimson)}h3{letter-spacing:.26em;color:var(--dim);margin:16px 0 8px;font-size:13px}h3 em,.controls em,.combos em{color:var(--dim);letter-spacing:.04em;margin-left:6px;font-size:12px;font-style:normal}.lead{color:#b9c8d4;margin:0 0 6px;font-size:15px;line-height:1.5}.btn{letter-spacing:.2em;cursor:pointer;clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);background:#0a101ab3;border:1px solid #2ee6ff59;min-width:150px;padding:11px 20px;font-size:15px;font-weight:700;transition:background-color .12s,color .12s,border-color .12s,transform .12s}.btn:hover,.btn:focus-visible{background:var(--cyan);color:#021014;border-color:var(--cyan);outline:none}.btn:active{transform:translateY(1px)}.btn.primary{color:#030810;background:linear-gradient(90deg,#2ee6ffd9,#9b5cffd9);border-color:#0000}.btn.primary:hover,.btn.primary:focus-visible{background:#fff}.btn.big{min-width:240px;padding:15px 30px;font-size:19px}.btn.small{min-width:0;padding:8px 14px;font-size:12px}.row{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;display:flex}.col{flex-direction:column;align-items:stretch;gap:10px;display:flex}.menu{background:radial-gradient(#05060a00 30%,#05060abf 100%)}.menu-col{text-align:center;width:min(980px,100%)}.logo{letter-spacing:.04em;text-shadow:-3px 0 #2ee6ff8c,3px 0 #ff2a5c59;margin:0;font-size:clamp(54px,9vw,112px);font-style:italic;font-weight:800;line-height:1}.logo .l1{color:#f2fbff}.logo .sl{color:var(--violet);margin:0 .06em}.logo .l2{color:var(--cyan)}.tagline{font-family:var(--mono);letter-spacing:.42em;color:#9fb0bf;margin:14px 0 34px;font-size:13px}.menu-buttons{flex-direction:column;align-items:center;gap:10px;display:flex}.menu-buttons .btn:not(.big){min-width:240px}.records{font-family:var(--mono);justify-content:center;gap:34px;margin:30px 0 0;display:flex}.records span,.go-grid span{letter-spacing:.24em;color:var(--dim);font-size:10px;display:block}.records b{font-size:20px}.hint{font-family:var(--mono);color:#5d6b7a;margin:22px 0 0;font-size:12px}.cols{grid-template-columns:1fr 1fr;gap:28px;display:grid}.controls,.combos,.rules{margin:0;padding:0;list-style:none}.controls li,.combos li{align-items:center;gap:6px;padding:4px 0;font-size:15px;display:flex}.controls kbd{margin-right:8px}.combos li{font-size:14px}.combos kbd{min-width:22px;padding:2px 5px;font-size:12px}.combos li.ult{color:#fff;font-weight:700}.rules li{color:#b9c8d4;padding:4px 0 4px 14px;font-size:14px;line-height:1.4;position:relative}.rules li:before{content:"";background:var(--cyan);width:6px;height:2px;position:absolute;top:11px;left:0}.set-row{font-family:var(--mono);letter-spacing:.1em;border-top:1px solid #ffffff0d;grid-template-columns:130px 1fr 64px;align-items:center;gap:12px;padding:9px 0;font-size:13px;display:grid}.set-row span{text-align:right;color:var(--cyan)}.set-row .seg{grid-column:2/4;gap:4px;display:flex}.seg button{font-family:var(--mono);letter-spacing:.1em;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;flex:1;padding:7px 0;font-size:12px}.seg button.sel{border-color:var(--cyan);color:var(--cyan);background:#2ee6ff33}input[type=range]{width:100%;accent-color:var(--cyan)}.toggle{width:100%;font-family:var(--mono);letter-spacing:.1em;cursor:pointer;text-align:left;background:0 0;border:0;border-top:1px solid #ffffff0d;justify-content:space-between;padding:11px 0;font-size:13px;display:flex}.toggle b{color:var(--cyan)}.toggle.off b{color:var(--dim)}.toggle:hover{color:#fff}.note{color:var(--dim);margin:8px 0 0;font-size:12px;line-height:1.5}.mini-ref{color:#9fb0bf;text-align:center;border-top:1px solid #ffffff12;margin-top:18px;padding-top:14px;font-size:13px;line-height:2}.mini-ref kbd{min-width:22px;padding:1px 5px;font-size:12px}.go-score{font-family:var(--mono);text-align:center;color:#fff;text-shadow:0 0 22px #2ee6ff59;margin:8px 0 14px;font-size:56px;font-weight:700}.go-grid{font-family:var(--mono);text-align:center;grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.go-grid b{font-size:20px}.best{text-align:center;font-family:var(--mono);color:var(--dim);letter-spacing:.16em;margin-top:14px;font-size:13px}.best b{color:var(--ink)}.record-badge{background:var(--amber);color:#120800;letter-spacing:.24em;width:max-content;margin:0 auto 4px;padding:4px 10px;font-size:12px;font-weight:800;display:none}.record-badge.show{animation:.6s cubic-bezier(.2,1.6,.4,1) pop;display:block}@keyframes pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.hud{pointer-events:none;z-index:5;font-family:var(--mono);text-shadow:0 1px 3px #000000e6}.hud button,.hud .tutorial{pointer-events:auto}.hud-tl{position:absolute;top:16px;left:20px}.hud-tr{text-align:right;width:280px;position:absolute;top:14px;right:20px}.hud-lives{letter-spacing:.12em;color:var(--cyan);font-size:26px}.hud-time{margin-top:4px;font-size:15px}.hud-time span,.hud-kills span,.hud-phase span{letter-spacing:.24em;color:var(--dim);font-size:10px}.hud-phase{align-items:center;gap:8px;margin-top:8px;display:flex}.hud-phase .bar{width:96px}.bar{background:#ffffff14;height:5px}.bar i{background:var(--cyan);width:100%;height:100%;transition:width 80ms linear;display:block}.chainbar{width:160px;margin:4px 0 6px auto}.chainbar i{background:var(--violet)}.hud-score{font-size:34px;font-weight:700;line-height:1}.hud-mult{margin-top:4px;font-size:15px}.hud-mult b{color:var(--violet);font-size:20px}.hud-mult span{color:var(--dim);letter-spacing:.14em;font-size:11px}.hud-kills{font-size:15px}.feed{flex-direction:column;align-items:flex-end;gap:3px;margin-top:10px;display:flex}.feed-row{letter-spacing:.08em;gap:10px;font-size:12px;transition:opacity .8s,transform .8s;animation:.18s ease-out slide;display:flex}.feed-row b{color:var(--amber)}.feed-row.multi span,.feed-row.boss span{color:#fff;font-weight:700}.feed-row.graze span{color:var(--cyan)}.feed-row.fade{opacity:0;transform:translate(10px)}@keyframes slide{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}.hud-boss{text-align:center;letter-spacing:.3em;color:#ffb3c4;width:min(520px,46vw);font-size:12px;display:none;position:absolute;top:16px;left:50%;transform:translate(-50%)}.bar.boss{border:1px solid #ff2a5c80;height:8px;margin-top:6px}.bar.boss i{background:linear-gradient(90deg, var(--crimson), #ff6a8a);transition:width .15s}.combo{text-align:center;opacity:0;--c:#2ee6ff;position:absolute;top:17%;left:50%;transform:translate(-50%)}.combo.show{animation:1.1s ease-out forwards combo-in}.combo[data-tier="4"].show{animation-duration:1.6s}#combo-name{font-family:var(--head);letter-spacing:.16em;color:#fff;text-shadow:0 0 14px var(--c), 0 0 2px var(--c);font-size:30px;font-style:italic;font-weight:800}.combo[data-tier="3"] #combo-name{font-size:36px}.combo[data-tier="4"] #combo-name{letter-spacing:.2em;font-size:50px}#combo-keys{letter-spacing:.3em;color:var(--c);margin-top:2px;font-size:12px}@keyframes combo-in{0%{opacity:0;transform:translate(-50%)scale(1.25)}12%{opacity:1;transform:translate(-50%)scale(1)}75%{opacity:1}to{opacity:0;transform:translate(-50%)translateY(-8px)}}.banner{text-align:center;opacity:0;--c:#ff2a5c;position:absolute;top:30%;left:0;right:0}.banner.show{animation:2.6s ease-out forwards banner}#banner-title{font-family:var(--head);letter-spacing:.4em;color:var(--c);text-shadow:0 0 18px var(--c);font-size:44px;font-weight:800}#banner-sub{letter-spacing:.36em;color:#fff;margin-top:6px;font-size:13px}@keyframes banner{0%{opacity:0;letter-spacing:.8em}10%{opacity:1}25%,45%{opacity:.55}35%,55%,80%{opacity:1}to{opacity:0}}.hud-keys{opacity:.75;align-items:center;gap:6px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.hud-keys kbd{transition:background-color 50ms,color 50ms,transform 50ms}.hud-keys kbd.on{background:var(--cyan);color:#021014;transform:translateY(2px)}.hud-keys kbd.atk.on{background:var(--crimson);color:#fff}.chord{white-space:nowrap;letter-spacing:.26em;color:var(--cyan);opacity:0;font-size:12px;transition:opacity .2s;position:absolute;bottom:38px;left:50%;transform:translate(-50%)}.chord.show{opacity:1}.pause-btn{border:1px solid var(--line);width:40px;height:34px;font-family:var(--mono);cursor:pointer;background:#0a101ab3;font-weight:700;position:absolute;bottom:18px;left:20px}.pause-btn:hover{background:var(--cyan);color:#021014}.tutorial{border:1px solid var(--line);border-left:3px solid var(--cyan);width:min(520px,100vw - 32px);text-shadow:none;background:#06090fd1;padding:14px 18px 12px;display:none;position:absolute;top:74px;left:50%;transform:translate(-50%)}.tutorial.show{animation:.25s ease-out slide;display:block}.tut-step{letter-spacing:.3em;color:var(--dim);font-size:11px}.tut-title{font-family:var(--head);letter-spacing:.16em;color:var(--cyan);margin-top:2px;font-size:20px;font-weight:800}.tut-text{font-family:var(--head);color:#d2e2ec;margin-top:6px;font-size:15px;line-height:1.45}.tut-keys{align-items:center;gap:6px;margin-top:8px;display:flex}.tut-keys i{color:var(--dim);font-style:normal}.tut-progress{color:var(--dim);margin-top:6px;font-size:12px}.tut-progress b{color:var(--cyan)}.tut-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}#damage{pointer-events:none;z-index:6;opacity:0;background:radial-gradient(#ff002800 45%,#ff143c8c 100%);position:fixed;inset:0}#damage.hit{animation:.6s ease-out hurt}@keyframes hurt{0%{opacity:1}to{opacity:0}}.fatal{z-index:100;background:var(--bg);text-align:center;justify-content:center;align-items:center;padding:24px;display:none;position:fixed;inset:0}.fatal.show{display:flex}.fatal p{color:var(--dim);max-width:460px;line-height:1.5}@media (max-width:760px){.cols{grid-template-columns:1fr}.records{gap:18px}.hud-tr{width:200px}.hud-score{font-size:26px}.set-row{grid-template-columns:110px 1fr 54px}}@media (prefers-reduced-motion:reduce){.combo.show,.banner.show,.record-badge.show{animation-duration:10ms}}
