:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e8eee8;background:#0c1518;font-synthesis:none;--mint:#66f0c6;--muted:#8a9c9f;--line:#304246;--panel:#142126;--amber:#ffcd70;--red:#ff796d}*{box-sizing:border-box}body{margin:0;overflow:hidden;overscroll-behavior:none}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.4;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--mint);outline-offset:4px}button{color:inherit}button,input,select{-webkit-tap-highlight-color:transparent}input,select{border:1px solid #3c5053;border-radius:7px;background:#0e1a1e;color:#edf2eb;padding:14px;width:100%;min-height:48px}input::placeholder{color:#687e83}label{display:block;font-size:12px;letter-spacing:.07em;color:#acbdbf;margin-bottom:8px}canvas{position:fixed;inset:0;width:100%;height:100%;touch-action:none}#app{position:relative;z-index:1;height:100dvh;overflow-y:auto;background:linear-gradient(90deg,#0c1518 0%,#0c1518f5 35%,#0c151880 68%,transparent)}.shell{padding:36px clamp(24px,6vw,100px);min-height:100%;display:flex;flex-direction:column;max-width:1440px;margin:auto}.masthead{display:flex;align-items:center;justify-content:space-between;gap:15px}.brand{display:flex;align-items:center;gap:10px;letter-spacing:.15em;font-size:12px;font-weight:800}.brand img{width:32px;height:32px}.eyebrow{font:700 10px ui-monospace,SFMono-Regular,monospace;letter-spacing:.18em;color:var(--muted)}.online-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--mint);margin-right:8px}.menu-main{flex:1;display:flex;align-items:center;gap:10vw;padding:32px 0}.home-panel{width:370px;flex-shrink:0}.edition{display:flex;gap:12px;align-items:center;color:var(--mint);font:11px ui-monospace,monospace;letter-spacing:.12em}.edition:before{content:"";height:1px;width:24px;background:var(--mint)}h1{font-family:Impact,"Arial Narrow",ui-sans-serif,sans-serif;font-size:clamp(84px,9vw,130px);letter-spacing:-.035em;line-height:.85;font-weight:900;margin:25px 0 27px}h1 span{color:var(--mint)}.home-description{font-size:14px;color:#a5b6b7;margin:0 0 25px;line-height:1.7}.nickname-wrap{position:relative}.nickname-wrap input{padding-right:60px}.nickname-tag{position:absolute;right:14px;bottom:17px;font:10px ui-monospace,monospace;color:var(--mint)}.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.btn{border:1px solid var(--line);background:#1c2d32;border-radius:7px;padding:15px 18px;font-weight:700;font-size:14px;min-height:50px;transition:background .15s,transform .15s}.btn:hover{background:#293d42}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--mint);border-color:var(--mint);color:#0b2722}.btn.primary:hover{background:#9effdd}.btn.full{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center}.btn.danger{color:var(--red);background:#352025}.text-btn{background:none;border:0;padding:10px 0;color:var(--muted);font-size:12px}.menu-note{display:flex;gap:12px;align-items:center;font:10px ui-monospace,monospace;letter-spacing:.08em;color:#758e94;margin-top:22px}.menu-note span:first-child{color:var(--mint)}.arena-note{align-self:flex-end;margin-bottom:35px;margin-left:auto;border-left:2px solid var(--mint);padding:8px 18px;max-width:250px}.arena-note strong{display:block;font:13px ui-monospace,monospace;margin:10px 0}.arena-note p{font-size:12px;color:var(--muted);line-height:1.6}.footer{display:flex;justify-content:space-between;gap:20px;padding-top:22px;border-top:1px solid #293c40;color:#7c959a;font:10px ui-monospace,monospace;letter-spacing:.04em}.footer button{font:inherit;background:none;border:0;color:#a2b8ba;padding:0}.card{border:1px solid #344a4e;background:#142126f5;box-shadow:0 24px 90px #0005;border-radius:12px;padding:26px}.room-panel{width:min(100%,560px);margin:35px auto}.room-panel h2{font-size:28px;letter-spacing:-.04em;margin:10px 0 8px}.room-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.room-code{font:20px ui-monospace,monospace;letter-spacing:.17em;color:var(--mint);margin:10px 0 20px}.room-settings{font-size:11px;color:var(--muted);display:flex;flex-wrap:wrap;gap:8px;margin:15px 0 20px}.pill{border:1px solid var(--line);padding:5px 8px;border-radius:4px}.player-list{display:grid;gap:6px;margin-bottom:20px}.player-row{display:flex;align-items:center;gap:12px;min-height:52px;padding:10px;border:1px solid #2a3e42;border-radius:6px;background:#0d1b1f}.player-avatar{height:26px;width:26px;border-radius:7px;background:var(--pc);box-shadow:0 0 18px color-mix(in srgb,var(--pc) 15%,transparent);transform:rotate(12deg);border:3px solid #ffffff40}.player-row .name{font-size:14px;flex:1}.player-row .tag{color:var(--amber);font:9px ui-monospace,monospace;display:block;margin-top:3px}.player-state{color:var(--mint);font-size:11px}.player-state.dim{color:#7c9095}.room-controls{display:grid;gap:10px}.lobby-tip{font-size:12px;line-height:1.8;color:#9bb0b3;padding-top:16px;margin:8px 0 0}.small-btn{border:1px solid var(--line);border-radius:5px;background:#1e3238;color:#c5d5d5;padding:10px 12px;min-height:40px;font-size:12px}.icon-btn{width:42px;height:42px;background:#14252bd9;border:1px solid #385054;border-radius:8px;font-size:20px;display:grid;place-items:center}.form-grid{display:grid;gap:18px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.check-row{display:flex;align-items:center;gap:10px;font-size:13px;letter-spacing:0;margin:0}.check-row input{width:20px;height:20px;min-height:20px;accent-color:var(--mint)}.help{font-size:11px;color:var(--muted);line-height:1.65;margin:6px 0 0}.modal-backdrop{position:fixed;inset:0;background:#030b10c9;z-index:20;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(8px);overflow-y:auto}.modal{width:440px;max-width:100%;max-height:calc(100dvh - 40px);overflow-y:auto}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.modal h2{font-size:22px;letter-spacing:-.025em;margin:0}.modal p{font-size:13px;line-height:1.7;color:#adc0c2}.modal .actions{margin-top:24px}.discovery{display:grid;gap:8px;margin:14px 0;max-height:210px;overflow-y:auto}.discovery button{display:flex;justify-content:space-between;text-align:left;padding:12px;border:1px solid var(--line);background:#102026;border-radius:5px;font-size:12px}.discovery small{display:block;color:var(--muted);margin-top:4px}.empty{font-size:12px;color:#8fa7ab;padding:15px 0}.hud{position:absolute;top:max(18px,env(safe-area-inset-top));left:24px;right:24px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none}.hud-left{background:#0c191ddd;backdrop-filter:blur(8px);border-left:2px solid var(--mint);padding:11px 15px;min-width:190px}.hud-left strong{display:block;font:800 16px ui-monospace,monospace;letter-spacing:.04em;margin:5px 0 8px}.hud-right{display:flex;gap:8px;pointer-events:auto}.wave-track,.health-track,.boss-track{height:3px;background:#2e4548;overflow:hidden}.wave-track i,.health-track i,.boss-track i{height:100%;display:block;background:var(--mint);transition:width .15s}.wave-track i{background:#9ab1ac}.bottom-hud{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);width:230px;pointer-events:none}.vitals{padding:10px 12px;background:#0c191de8;border:1px solid #30484c;border-radius:6px}.vitals strong{font:22px ui-monospace,monospace}.vitals span{font:11px ui-monospace,monospace;color:#a4b9bb}.vitals #status-label{float:right;font-size:9px;letter-spacing:.09em;margin-top:8px}.health-track{height:5px;margin-top:7px;border-radius:1px}#build-ui{display:flex;justify-content:center;gap:5px;padding-top:7px;min-height:21px}#build-ui span{font-size:14px;color:var(--amber);padding:1px 4px;background:#132529c9;border:1px solid #334b4e;border-radius:3px}#game-ui{position:fixed;inset:0;z-index:2;pointer-events:none;touch-action:none}#game-ui button,#joystick,#upgrade-ui{pointer-events:auto}.ability{position:relative;overflow:hidden;width:78px;height:78px;border:1px solid #5b9689;background:#183d36e8;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;touch-action:none;user-select:none;-webkit-user-select:none}.ability b{font-size:29px;line-height:1.05;color:#9affde}.ability span{font:bold 9px ui-monospace,monospace;letter-spacing:.06em;z-index:1}.ability small{position:absolute;font:8px ui-monospace,monospace;bottom:9px;color:#9dbab0}.ability i{position:absolute;inset:0;background:#0c1719c7;transform-origin:bottom;pointer-events:none}.ability.cooling b{color:#78948d}.ability b{z-index:1}.ability.pulse{width:68px;height:68px;margin-top:28px;border-color:#8b9970;background:#2c392ae8}.ability.pulse b{color:var(--amber)}#abilities{position:absolute;right:35px;bottom:37px;display:flex;gap:18px;align-items:center}#desktop-hint{position:absolute;left:24px;bottom:30px;font:9px ui-monospace,monospace;color:#779396;max-width:240px;line-height:2}kbd{font:inherit;color:#becdc9}#desktop-hint span{margin:0 8px}#joystick{display:none;position:absolute;left:26px;bottom:42px;width:114px;height:114px;border:1px solid #7f9e9845;border-radius:50%;background:#213e3740;touch-action:none;user-select:none;-webkit-user-select:none}#stick{position:absolute;left:35px;top:35px;width:42px;height:42px;background:#719e9060;border:1px solid #a3d3c578;border-radius:50%;pointer-events:none}.stick-cross:before,.stick-cross:after{content:"";position:absolute;background:#76988d38;top:50%;left:25%;width:50%;height:1px}.stick-cross:after{transform:rotate(90deg)}#team-ui{position:absolute;top:127px;left:24px;display:grid;gap:6px;font-size:10px}.team-member{display:flex;align-items:center;gap:7px;text-shadow:0 2px 5px #000}.team-dot{width:6px;height:6px;border-radius:50%;background:var(--pc)}.team-hp{width:38px;height:3px;background:#2c4143}.team-hp i{display:block;height:100%;background:var(--pc)}.team-status{font-size:9px;color:var(--amber)}#announcement{position:absolute;top:33%;left:50%;transform:translateX(-50%);text-align:center;font:800 clamp(17px,3vw,28px) ui-monospace,monospace;letter-spacing:.1em;color:#eff9ea;text-shadow:0 2px 20px #000;background:#0e1c21bf;padding:12px 24px;border-radius:4px;opacity:0;transition:opacity .2s;max-width:90%;width:max-content}#announcement.show{opacity:1}#boss-ui{position:absolute;top:28px;left:50%;transform:translateX(-50%);width:34%;max-width:420px;color:#ff9d88;font:10px ui-monospace,monospace;letter-spacing:.12em}#boss-ui>div:first-child{display:flex;justify-content:space-between;margin-bottom:7px}.boss-track{height:6px;background:#492c2c}.boss-track i{background:#ff866f}#spectate-ui{position:absolute;bottom:155px;left:50%;transform:translateX(-50%);text-align:center;width:260px;font:11px ui-monospace,monospace;color:var(--amber)}#spectate-ui button{display:block;margin:10px auto 0}.upgrade-panel{position:absolute;left:50%;bottom:145px;transform:translateX(-50%);width:min(620px,calc(100% - 32px));background:#101f24f2;border:1px solid #638576;border-radius:10px;padding:16px;box-shadow:0 15px 60px #0008;backdrop-filter:blur(10px)}.upgrade-head{display:flex;align-items:center;justify-content:space-between;font:10px ui-monospace,monospace;color:var(--mint);letter-spacing:.08em;margin-bottom:12px}.upgrade-head button{background:none;border:0;color:#a0b9b6;min-height:30px}.upgrade-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.upgrade-card{text-align:left;padding:14px 12px;min-height:158px;border-radius:6px;border:1px solid #395750;background:#19312e;color:#e6eee5;display:flex;flex-direction:column;gap:7px}.upgrade-card:hover{background:#264d40;border-color:var(--mint)}.upgrade-card .symbol{color:var(--mint);font-size:24px}.upgrade-card strong{font-size:12px}.upgrade-card p{font-size:11px;line-height:1.5;margin:0;color:#a6bdb7}.upgrade-open{position:absolute;bottom:145px;left:50%;transform:translateX(-50%);background:var(--amber);border:0;border-radius:20px;color:#172420;padding:12px 18px;font-size:12px;font-weight:700}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,15px);opacity:0;z-index:50;max-width:90%;width:max-content;background:#e7f1e8;color:#122522;border-radius:6px;padding:13px 18px;font-size:13px;box-shadow:0 5px 30px #0005;pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}#busy{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:20px;text-align:center;background:#071014c4;backdrop-filter:blur(5px);font:700 11px ui-monospace,monospace;letter-spacing:.16em;color:var(--mint);animation:busy-in .2s .08s both}#busy i{width:34px;height:34px;border:3px solid #66f0c633;border-top-color:var(--mint);border-radius:50%;animation:busy-spin .8s linear infinite}@keyframes busy-in{from{opacity:0}}@keyframes busy-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){#busy i{animation-duration:2.4s}}#network{position:fixed;z-index:45;top:0;left:0;right:0;background:var(--amber);color:#34270e;text-align:center;padding:9px 15px;font-size:12px}.results-title{font-family:Impact,"Arial Narrow",sans-serif;font-size:64px!important;line-height:1;letter-spacing:-.025em!important;color:var(--mint);margin:8px 0!important}.results-title.defeat{color:var(--amber)}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 0}.result-stats div{background:#0c1b20;padding:13px 10px;border:1px solid var(--line);border-radius:5px}.result-stats strong{display:block;font:22px ui-monospace,monospace}.result-stats span{display:block;font-size:9px;letter-spacing:.06em;color:var(--muted);margin-top:5px}.score-table{width:100%;font-size:12px;border-collapse:collapse}.score-table td,.score-table th{padding:10px 4px;border-bottom:1px solid var(--line);text-align:right}.score-table td:first-child,.score-table th:first-child{text-align:left}.score-table th{font-size:9px;color:var(--muted);font-weight:500}#app[hidden],#game-ui[hidden],[hidden]{display:none!important}
@media(pointer:coarse){#joystick{display:block}#desktop-hint{display:none}.ability small{display:none}.ability{width:78px;height:78px}.ability.pulse{width:66px;height:66px}#abilities{right:20px;bottom:max(40px,env(safe-area-inset-bottom))}}
@media(max-width:700px){#app{background:linear-gradient(90deg,#0c1518f5,#0c1518d8)}.shell{padding:22px 24px}.menu-main{padding:30px 0}.home-panel{width:100%;max-width:390px;margin:auto}h1{font-size:clamp(76px,25vw,100px);line-height:.86;margin:24px 0}.arena-note{display:none}.footer{font-size:9px;padding-top:17px}.home-description{font-size:13px;margin-bottom:20px}.edition{font-size:10px}.masthead>.eyebrow{font-size:9px}.room-panel{margin:25px auto}.card{padding:21px}.hud{top:max(12px,env(safe-area-inset-top));left:14px;right:14px}.hud-left{padding:8px 11px;min-width:175px}.hud-left strong{font-size:14px}.hud-left .eyebrow{font-size:8px}.icon-btn{width:38px;height:38px}.bottom-hud{width:160px;bottom:max(12px,env(safe-area-inset-bottom))}.vitals{padding:7px 10px}.vitals strong{font-size:19px}#status-label{font-size:8px!important}.vitals #hp-max{font-size:9px}#build-ui{gap:3px;min-height:18px;padding-top:4px}#build-ui span{font-size:10px;padding:1px 3px}#team-ui{top:106px;left:14px;gap:5px}.team-member{font-size:9px}.team-hp{width:24px}#boss-ui{top:91px;width:50%;left:auto;right:14px;transform:none;font-size:8px}#announcement{top:36%;font-size:17px;padding:10px 17px;letter-spacing:.02em}.upgrade-panel{bottom:178px;padding:12px;width:calc(100% - 24px)}.upgrade-card{min-height:175px;padding:10px 8px;gap:8px}.upgrade-card strong{font-size:11px}.upgrade-card p{font-size:10px}.upgrade-head{font-size:8px}.upgrade-open{bottom:175px}#spectate-ui{bottom:180px}.modal-backdrop{padding:14px}.modal{max-height:calc(100dvh - 28px)}.menu-note{font-size:9px}.form-grid{gap:15px}.result-stats strong{font-size:19px}}
@media(max-height:680px){.shell{padding-top:16px;padding-bottom:16px}.menu-main{padding:18px 0}h1{font-size:78px;margin:18px 0}.home-description{margin-bottom:15px}.menu-note{margin-top:14px}.footer{padding-top:12px}.btn{min-height:46px;padding:12px}.edition{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

@media(pointer:coarse) and (max-width:700px){#joystick{bottom:max(92px,env(safe-area-inset-bottom))}#abilities{bottom:max(92px,env(safe-area-inset-bottom))}.upgrade-panel{bottom:230px}.upgrade-open{bottom:230px}}

.small-btn{min-height:44px}.check-row{min-height:44px}.footer button{min-height:36px}.upgrade-head button{min-height:36px}
