*,:before,:after{box-sizing:border-box}:root{--bg:#000;--text:#d9fff0;--muted:#9fe9cf;--gold:#ffc94a;--bad:#ff6b3d;--good:#3dffb5;--panel:#001914b8;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif}html,body,#root{background:var(--bg);height:100%;color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.viewport{background:#000;place-items:center;display:grid;position:fixed;inset:0}.stage-box{position:relative;overflow:hidden}.stage{transform-origin:0 0;background:#010d0b;width:1280px;height:720px;font-size:14px;position:absolute;top:0;left:0;overflow:hidden}.game-canvas{touch-action:manipulation;width:1280px;height:720px;position:absolute;inset:0}.rotate-hint{display:none}@media (orientation:portrait) and (width<=700px){.rotate-hint{z-index:50;color:var(--good);text-align:center;background:#010d0b;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:16px;font-size:18px;display:flex;position:fixed;inset:0}.rotate-hint div{font-size:48px}}.pill{border:1px solid rgba(var(--rgb), .35);box-shadow:0 0 16px rgba(var(--rgb), .12);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;color:var(--text);background:#0000008c;border-radius:10px;align-items:center;gap:7px;padding:7px 11px;display:flex}.pill b{color:var(--acc);font-size:16px}.pill.danger{border-color:#ff4d4d;box-shadow:0 0 16px #ff4d4d59}.pill.danger b{color:#ff6b6b}.pill.btn{font-size:14px}.pill.btn:hover{border-color:var(--acc)}.primary{box-shadow:0 0 20px rgba(var(--rgb,61, 255, 181), .55);font-weight:800;background:var(--acc,#3dffb5)!important;color:#001a12!important;border-color:#0000!important}.kick{letter-spacing:.3em;color:var(--acc);font:700 13px monospace}.hud{pointer-events:none;position:absolute;inset:0}.hud>*{pointer-events:auto}.topbar{align-items:center;gap:8px;display:flex;position:absolute;top:10px;left:10px;right:10px}.logo{letter-spacing:.08em;font-size:14px;font-weight:800}.logo span{color:var(--acc)}.bar{background:#ffffff1f;border-radius:4px;width:70px;height:8px;overflow:hidden}.bar i{background:linear-gradient(90deg, var(--acc), #fff);height:100%;transition:width .3s;display:block}.top-right{gap:6px;margin-left:auto;display:flex}.wave-banner{border:1px solid var(--acc);color:var(--acc);letter-spacing:.08em;pointer-events:none;background:#0009;padding:5px 14px;font:700 14px monospace;position:absolute;top:62px;left:50%;transform:translate(-60%)}.boss-bar{color:#ff6b6b;pointer-events:none;align-items:center;gap:8px;font:700 12px monospace;display:flex;position:absolute;top:98px;left:50%;transform:translate(-60%)}.boss-bar div{background:#ffffff26;border-radius:5px;width:260px;height:9px;overflow:hidden}.boss-bar i{background:linear-gradient(90deg,#ff2020,#ff8a8a);height:100%;display:block}.feed{pointer-events:none;flex-direction:column;gap:6px;width:268px;display:flex;position:absolute;top:60px;right:10px}.toast{border:1px solid rgba(var(--rgb), .3);border-left:3px solid var(--bad);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000009e;border-radius:8px;padding:7px 10px;font-size:13px;line-height:1.35;animation:.25s ease-out toast-in}.toast.good{border-left-color:var(--acc)}.toast b{color:#fff}@keyframes toast-in{0%{opacity:0;transform:translate(20px)}}.hint{border:1px solid rgba(var(--rgb), .3);pointer-events:none;background:#0009;border-radius:10px;width:280px;padding:8px 11px;font-size:13px;line-height:1.35;position:absolute;bottom:10px;left:10px}.hint b{color:var(--acc)}.dock{gap:7px;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.tool{border:1px solid rgba(var(--rgb), .35);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:90px;color:var(--text);text-align:center;background:#0009;border-radius:12px;flex-direction:column;align-items:center;padding:6px 4px;font-size:12px;transition:transform .1s,box-shadow .15s;display:flex}.tool:hover{border-color:var(--acc);transform:translateY(-2px)}.tool .ic{font-size:23px;line-height:28px}.tool .c{color:var(--acc);font-weight:700}.tool.sel{border-color:var(--acc);box-shadow:0 0 16px var(--acc)}.tool.cant{opacity:.45}.go{background:var(--acc);color:#001a12;box-shadow:0 0 22px var(--acc);border:0;border-radius:12px;padding:14px 18px;font-size:15px;font-weight:800;animation:1.6s ease-in-out infinite pulse;position:absolute;bottom:10px;right:10px}.go.running{color:var(--acc);border:1px solid var(--acc);box-shadow:none;background:#0009;animation:none}@keyframes pulse{50%{box-shadow:0 0 34px var(--acc)}}.pause-cover{color:var(--acc);cursor:pointer;background:#0000008c;flex-direction:column;justify-content:center;align-items:center;gap:6px;font:800 34px monospace;display:flex;position:absolute;inset:0}.pause-cover span{color:var(--text);font:14px Inter,Arial,sans-serif}.tower-panel{border:1px solid var(--tc);width:220px;box-shadow:0 0 18px color-mix(in srgb, var(--tc) 40%, transparent);background:#000a08eb;border-radius:10px;padding:9px 11px;font-size:13px;position:absolute}.tp-head{color:var(--tc);justify-content:space-between;font-size:15px;font-weight:800;display:flex}.tp-head button{color:var(--text);opacity:.7;background:0 0;border:0}.tp-lv{color:var(--muted);margin:2px 0 6px}.tp-stats{flex-direction:column;gap:2px;margin-bottom:8px;display:flex}.tp-stats em{color:var(--good);font-style:normal}.tp-btns{gap:6px;display:flex}.tp-btns button{border:1px solid var(--tc);background:0 0;border-radius:8px;flex:1;padding:7px 6px;font-size:13px;font-weight:700}.tp-btns .up{background:var(--tc);color:#001a12}.tp-btns .up:disabled{opacity:.45}.modal-cover,.start-cover{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10;background:#000806a8;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.modal{color:var(--text);--acc:#3dffb5;--rgb:61, 255, 181;background:#001c16f5;border:1px solid #3dffb580;border-radius:16px;padding:16px 22px;box-shadow:0 0 40px #3dffb540}.modal button,.end-btns button,.btnlink{background:#001e16d9;border:1px solid #3dffb580;border-radius:11px;padding:10px 16px;font-size:14px;font-weight:700;text-decoration:none;display:inline-block}.m-head{justify-content:space-between;align-items:center;display:flex}.m-head h2{letter-spacing:.06em;margin:0;font-size:20px}.m-head h2 span{color:var(--acc)}.modal .x{opacity:.7;background:0 0;border:0;padding:2px 6px;font-size:20px}.lead{color:var(--muted);margin:2px 0 10px}.lead b{color:var(--acc)}.note{color:#6fbfa3;font-size:12px}.rules{width:740px;font-size:14px;line-height:1.4}.steps{grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:10px;display:grid}.steps div{background:#3dffb512;border-radius:10px;padding:9px}.steps b{color:var(--acc);display:block}.legend{grid-template-columns:1fr 1fr;gap:5px 18px;font-size:13px;display:grid}.legend i{font-style:normal}.keys{color:#6fbfa3;margin:10px 0 0;font-size:12px}.m-foot{align-items:center;gap:10px;margin-top:12px;display:flex}.attract{filter:blur(1.5px)brightness(.8)}.start{text-align:center;width:620px;padding:18px 26px 14px}.start h1{white-space:nowrap;letter-spacing:.04em;color:#fff;text-shadow:0 0 18px #3dffb599;margin:2px 0;font-size:44px;font-weight:900}.start h1 span{color:var(--acc)}.name-label{text-align:left;color:var(--muted);margin-bottom:4px;font-size:13px;display:block}.name-label span{opacity:.7}.name-box{border:2px solid var(--acc);background:#011511;border-radius:10px;align-items:center;padding:0 12px;display:flex;box-shadow:0 0 14px #3dffb54d}.name-box input{color:#fff;background:0 0;border:0;outline:0;flex:1;padding:11px 0;font-size:18px}.name-box input::placeholder{color:#4f8d77}.name-box span{color:#6fbfa3;font-size:12px}.start .note{text-align:left;margin:5px 0 12px}.start-btns{justify-content:center;gap:10px;display:flex}.start-btns .big{padding:12px 26px;font-size:16px}.diff{color:#6fbfa3;justify-content:center;align-items:center;gap:4px;margin-top:10px;font-size:13px;display:flex}.modal .diff button{color:var(--muted);background:0 0;border:0;padding:3px 6px;font-weight:600}.modal .diff button.on{color:var(--acc)}.best{color:var(--gold);margin-top:6px;font-size:13px}.made{color:#6fbfa3;margin-top:8px;font-size:12px}.end-screen{text-align:center;--acc:#3dffb5;--rgb:61, 255, 181;position:absolute;inset:0}.end-screen h1{margin:2px 0 0;font-size:46px;font-weight:900}.end-screen .sub{color:#cffff0;margin:4px 0;font-size:18px}.end-btns{justify-content:center;gap:10px;display:flex;position:absolute;bottom:20px;left:0;right:0}.end-btns button,.end-btns .btnlink{padding:12px 18px;font-size:15px}.award-top{pointer-events:none;position:absolute;top:14px;left:0;right:0}.name-badge{color:#1a1000;letter-spacing:.06em;background:linear-gradient(90deg,#ffc94a,#fff6c8,#ffc94a);border-radius:999px;margin-top:6px;padding:4px 28px;font-size:30px;font-weight:900;display:inline-block;box-shadow:0 0 24px #ffc94a99}.award h1{background:linear-gradient(#fff6c8,#ffc94a 55%,#e09a10);color:#0000;filter:drop-shadow(0 0 18px #ffc94a73);-webkit-background-clip:text;background-clip:text}.award-stats,.award-badges{text-align:left;flex-direction:column;gap:7px;width:250px;display:flex;position:absolute;top:250px}.award-stats{left:40px}.award-badges{right:40px}.award-stats div,.badge{background:#001e16bf;border:1px solid #3dffb559;border-radius:10px;padding:7px 12px;font-size:13px}.award-stats b{color:#fff;font-size:21px;display:block}.award-stats .stars{color:var(--gold);letter-spacing:3px}.badge{color:#fff3cf;border-color:#ffc94a73;align-items:center;gap:10px;display:flex}.badge span{font-size:24px}.badge b{display:block}.shared{color:var(--gold);font-size:14px;position:absolute;bottom:76px;left:0;right:0}.over{--acc:#ff6b6b;--rgb:255, 107, 107;background:radial-gradient(circle at 50% 45%,#3a0608,#0a0102 70%);padding-top:130px}.over h1{color:#ff5252;letter-spacing:.05em;text-shadow:0 0 26px #ff3c3c99;font-size:60px;animation:2.5s infinite glitch}@keyframes glitch{92%{transform:none}94%{transform:translate(-4px)skew(-6deg)}96%{transform:translate(4px)}}.over-stats{justify-content:center;gap:12px;margin:22px 0;display:flex}.over-stats div{color:#ffd0d0;background:#0006;border:1px solid #ff6b6b66;border-radius:10px;width:170px;padding:10px;font-size:13px}.over-stats b{color:#fff;font-size:24px;display:block}.tip{color:#ffd0d0}.tip b{color:#ff8a8a}.over .end-btns{margin-top:26px;position:static}.over .end-btns button,.over .btnlink{background:#280406cc;border-color:#ff6b6b80}.over .primary{box-shadow:0 0 20px #ff6b6b8c;background:#ff6b6b!important}.cert{width:820px}.cert img{border-radius:6px;width:100%;margin-top:10px;display:block}
