:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#eef2f0;--muted:#aeb8b1;--panel:#0c1010c7;--panel-strong:#111617eb;--line:#ffffff29;--accent:#e1b560;--danger:#e05245;--ready:#6bd391}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0}body{color:var(--ink);background:#0b1010;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}button{color:inherit;font:inherit;border:0}#game{width:100%;height:100%;display:block}.hud{z-index:2;border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;position:fixed;box-shadow:0 12px 40px #00000042}.boss-hud{top:calc(env(safe-area-inset-top,0px) + 86px);border-color:#e0594a99;width:min(360px,100vw - 40px);padding:8px 12px;left:50%;transform:translate(-50%)}.boss-hud .health-row{justify-content:space-between;align-items:center;margin-bottom:6px;font-size:12px;display:flex}.boss-hud #boss-name{color:#f0a24a}.boss-fill{background:linear-gradient(90deg,#e0594a,#f0a24a)}.boss-hud.hidden{display:none}.minimap{z-index:3;top:calc(env(safe-area-inset-top,0px) + 92px);left:calc(env(safe-area-inset-left,0px) + 12px);pointer-events:none;background:#0a0e0e80;border:1px solid #ffffff2e;border-radius:8px;width:132px;height:132px;display:none;position:fixed}body.playing .minimap{display:block}.top-hud{min-height:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:0 0;border:0;justify-content:space-between;align-items:flex-start;padding:0;display:flex;top:14px;left:14px;right:14px}.top-hud>div:first-child{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0c10109e;border-radius:6px;padding:7px 10px 8px;box-shadow:0 8px 24px #00000038}.eyebrow{color:var(--accent);letter-spacing:0;text-transform:uppercase;margin:0 0 2px;font-size:9px;font-weight:800}h1{margin:0;font-size:clamp(16px,1.8vw,20px);line-height:1}.stats{grid-template-columns:repeat(2,minmax(54px,1fr));gap:6px;display:grid}.stats div{text-align:right;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0c10109e;border:1px solid #ffffff1a;border-radius:6px;min-width:54px;padding:6px 8px;box-shadow:0 8px 24px #00000038}.stats span,.ability span,.health-row span,.class-button small{color:var(--muted);font-size:12px;display:block}.stats strong{font-size:18px;line-height:1}.lighting-hud{background:#0c10109e;gap:8px;width:176px;padding:8px;display:grid;top:62px;right:14px}.lighting-toggle{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;display:grid}.lighting-button{min-height:28px;color:var(--muted);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:5px;font-size:12px;font-weight:800}.lighting-button:hover,.lighting-button:focus-visible{border-color:#ffffff47;outline:0}.lighting-button.active{color:var(--ink);background:#e1b56029;border-color:#e1b560c7}.lighting-slider{color:var(--muted);grid-template-columns:auto 1fr auto;align-items:center;gap:8px;font-size:11px;display:grid}.lighting-slider input{width:100%;accent-color:var(--accent)}.lighting-slider strong{min-width:34px;color:var(--ink);text-align:right;font-size:11px}.multiplayer-hud{background:#0c10109e;gap:3px;width:176px;padding:8px 10px;display:grid;top:148px;right:14px}.multiplayer-hud strong{color:var(--ink);font-size:12px}.multiplayer-hud span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.multiplayer-hud.online{border-color:#6bd39173}.multiplayer-hud.connecting{border-color:#e1b56073}.class-hud{gap:8px;width:min(240px,100vw - 36px);padding:10px;display:grid;top:72px;left:18px}.class-button{cursor:pointer;text-align:left;background:#ffffff0f;border:1px solid #0000;border-radius:6px;align-items:center;gap:10px;min-height:52px;padding:7px 9px;display:flex}.class-button:hover,.class-button:focus-visible{border-color:#ffffff3d;outline:0}.class-button.active{background:#e1b56029;border-color:#e1b560c7}.class-portrait{object-fit:cover;object-position:top center;background:#0000004d;border:1px solid #ffffff29;border-radius:6px;flex:none;width:40px;height:40px}.class-portrait--placeholder{background:linear-gradient(150deg,#f26f45,#7a2f1c);display:block}.class-label{flex-direction:column;gap:1px;display:flex}.class-label strong{font-weight:800}.class-label small{color:var(--muted);font-size:12px}.health-hud{width:min(420px,100vw - 36px);padding:12px;bottom:116px;left:50%;transform:translate(-50%)}.health-row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.health-track{background:#ffffff21;border-radius:999px;height:13px;overflow:hidden}.health-fill{border-radius:inherit;transform-origin:0;background:linear-gradient(90deg,#6bd391,#e1b560);width:100%;height:100%;transition:transform .16s}.mana-block{margin-top:7px}.mana-block.hidden{display:none}.mana-block .health-row{margin-bottom:5px}.mana-label{color:var(--muted);font-weight:800}.mana-track{height:9px}.mana-fill{background:linear-gradient(90deg,#4a8fff,#8fd0ff)}.ability-hud{grid-template-columns:repeat(5,minmax(104px,1fr));gap:8px;width:min(760px,100vw - 36px);padding:10px;display:grid;bottom:18px;left:50%;transform:translate(-50%)}.ability{background:#ffffff0f;border:1px solid #ffffff1c;border-radius:6px;min-width:0;min-height:68px;padding:10px;position:relative}.ability kbd{min-width:28px;height:22px;color:var(--ink);background:#00000038;border:1px solid #ffffff3b;border-radius:4px;justify-content:center;align-items:center;margin-bottom:6px;font-family:inherit;font-size:12px;font-weight:900;display:inline-flex}.ability span{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-weight:750;overflow:hidden}.ability strong{color:var(--accent);font-size:13px;position:absolute;bottom:7px;right:9px}.ability.ready{border-color:#6bd39157}.ability.cooling{opacity:.66}.ultimate{border-color:#e1b56059}.status-feed{pointer-events:none;gap:7px;width:min(290px,100vw - 36px);padding:10px;display:grid;bottom:116px;right:18px}.feed-item{color:var(--muted);background:#ffffff12;border-radius:6px;padding:8px 10px;font-size:13px}.feed-item strong{color:var(--ink)}.scoreboard{gap:10px;width:min(520px,100vw - 28px);max-height:min(520px,100vh - 56px);padding:12px;display:grid;top:50%;left:50%;transform:translate(-50%,-50%)}.scoreboard.hidden{display:none}.scoreboard-top,.scoreboard-row{grid-template-columns:minmax(0,1fr) 52px 52px 66px;align-items:center;gap:10px;display:grid}.scoreboard-top{color:var(--muted);font-size:12px;font-weight:800}.scoreboard-top strong{color:var(--ink);font-size:16px}.scoreboard-list{gap:6px;display:grid;overflow:auto}.scoreboard-row{background:#ffffff0f;border:1px solid #ffffff1c;border-radius:6px;min-height:40px;padding:8px 10px;font-size:13px}.scoreboard-row.local{background:#e1b56024;border-color:#e1b560ad}.scoreboard-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.scoreboard-name strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.scoreboard-name span,.scoreboard-stat span{color:var(--muted);font-size:10px;display:block}.scoreboard-stat{text-align:right}.scoreboard-status{color:var(--muted);text-align:right;font-size:11px}.reticle{display:none}body.playing #game{cursor:crosshair}.reticle:before,.reticle:after{content:"";background:#ffffffb8;position:absolute}.reticle:before{width:40px;height:2px;top:7px;left:-12px}.reticle:after{width:2px;height:40px;top:-12px;left:7px}.lock-panel{z-index:5;background:var(--panel-strong);border:1px solid #e1b5607a;border-radius:10px;justify-items:center;gap:10px;width:min(360px,100vw - 24px);max-height:calc(100vh - 24px);padding:16px;display:grid;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.start-title{letter-spacing:.01em;font-size:22px;font-weight:900}.preview-canvas{background:radial-gradient(120% 90% at 50% 10%,#e1b5601f,#0000 60%),#00000052;border:1px solid #ffffff14;border-radius:8px;width:100%;height:190px}.start-hero{justify-items:center;gap:2px;display:grid}.start-hero #start-hero-name{font-size:17px;font-weight:850}.start-hero #start-hero-info{color:var(--muted);font-size:12px}.start-classes{grid-template-columns:repeat(4,1fr);gap:6px;width:100%;display:grid}.class-card{min-height:38px;color:var(--ink);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff29;border-radius:6px;padding:6px 4px;font-size:12px;font-weight:800}.class-card:hover,.class-card:focus-visible{border-color:#ffffff4d;outline:0}.class-card.active{background:#e1b5602e;border-color:#e1b560d9}.start-join{width:100%;min-height:40px;color:var(--ink);cursor:pointer;background:#e1b56038;border:1px solid #e1b560b3;border-radius:6px;margin-top:2px;font-size:15px;font-weight:900}.start-join:hover,.start-join:focus-visible{border-color:#e1b560f2;outline:0}body:not(.playing) .class-hud,body:not(.playing) .class-toggle{display:none}.nick-field{width:100%;color:var(--muted);text-transform:uppercase;gap:5px;font-size:11px;font-weight:800;display:grid}.nick-field input{width:100%;height:34px;color:var(--ink);font:inherit;text-align:center;text-transform:none;background:#ffffff14;border:1px solid #ffffff29;border-radius:5px;outline:0;font-size:14px}.nick-field input:focus{border-color:#e1b560b8}.lock-panel.hidden{display:none}.match-banner{z-index:4;background:var(--panel-strong);text-align:center;border:1px solid #e1b56080;border-radius:8px;gap:3px;min-width:min(360px,100vw - 36px);padding:12px 16px;display:grid;position:fixed;top:88px;left:50%;transform:translate(-50%);box-shadow:0 14px 44px #00000057}.match-banner.hidden{display:none}.match-banner strong{font-size:18px}.match-banner span{color:var(--muted);font-size:13px}.hit-vignette{z-index:1;opacity:0;pointer-events:none;background:radial-gradient(circle,#0000 54%,#e0524559);transition:opacity .12s;position:fixed;inset:0}.hit-vignette.active{opacity:1}.upgrade-modal{z-index:6;background:var(--panel-strong);text-align:center;pointer-events:none;border:1px solid #e1b5608c;border-radius:10px;gap:14px;width:min(640px,100vw - 36px);padding:18px;display:grid;position:fixed;top:38%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 60px #00000080}.upgrade-modal .upgrade-card{pointer-events:auto}.upgrade-modal.hidden{display:none}.upgrade-title{letter-spacing:.02em;font-size:18px}.upgrade-cards{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.upgrade-card{cursor:pointer;background:#ffffff0f;border:1px solid #ffffff24;border-radius:8px;align-content:start;justify-items:center;gap:8px;min-height:124px;padding:14px 12px;transition:border-color .12s,background .12s,transform .12s;display:grid}.upgrade-card:hover,.upgrade-card:focus-visible{background:#e1b56024;border-color:#e1b560c7;outline:0;transform:translateY(-2px)}.upgrade-card kbd{min-width:30px;height:24px;color:var(--accent);background:#00000047;border:1px solid #e1b56099;border-radius:5px;justify-content:center;align-items:center;font-family:inherit;font-size:13px;font-weight:900;display:inline-flex}.upgrade-name{color:var(--ink);font-size:16px;font-weight:850}.upgrade-desc{color:var(--muted);font-size:13px;line-height:1.35}.upgrade-hint{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px}@media (width<=760px){.top-hud{top:10px;left:10px;right:10px}.top-hud>div:first-child{padding:6px 8px}.stats{grid-template-columns:repeat(2,minmax(48px,1fr));gap:5px}.stats div{min-width:48px;padding:5px 6px}.stats span{font-size:10px}.stats strong{font-size:16px}.lighting-hud{width:160px;top:58px;right:10px}.multiplayer-hud{width:160px;top:136px;right:10px}.class-hud{grid-template-columns:repeat(2,minmax(0,1fr));width:calc(100vw - 36px);top:210px}.ability-hud{grid-template-columns:repeat(3,minmax(0,1fr))}.ability{min-height:60px}.ability span{text-overflow:clip;white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:26px;font-size:11px;line-height:1.15;display:-webkit-box;overflow:hidden}.status-feed{display:none}.scoreboard-top,.scoreboard-row{grid-template-columns:minmax(0,1fr) 42px 42px 56px;gap:7px}.scoreboard-row{padding:7px;font-size:12px}.health-hud{bottom:208px}}body.touch{touch-action:none;overscroll-behavior:none}.touch #game{touch-action:none}.touch .lighting-hud,.touch .ability-hud{display:none}.touch .top-hud,.touch .health-hud,.touch .multiplayer-hud,.touch .status-feed{pointer-events:none}body.touch.playing .top-hud>div:first-child,body.touch.playing .multiplayer-hud{display:none}body.touch.playing .top-hud{justify-content:flex-end}.touch .health-hud{bottom:auto;top:calc(env(safe-area-inset-top,0px) + 12px);width:min(190px,48vw);padding:6px 10px;left:50%;transform:translate(-50%)}.touch .health-row{margin-bottom:4px;font-size:11px}.touch #class-name{display:none}.touch .health-track{height:8px}.touch .mana-block{margin-top:4px}.touch .mana-track{height:6px}.class-toggle{display:none}body.touch.playing .class-toggle{z-index:4;top:calc(env(safe-area-inset-top,0px) + 12px);left:calc(env(safe-area-inset-left,0px) + 12px);min-height:34px;color:var(--ink);pointer-events:auto;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#111617c7;border:1px solid #e1b56080;border-radius:8px;align-items:center;padding:6px 12px;font-weight:800;display:inline-flex;position:fixed}body.touch.playing .class-hud{display:none}body.touch.playing .class-hud.open{z-index:5;top:calc(env(safe-area-inset-top,0px) + 54px);display:grid;left:12px}.mobile-look,.mobile-actions{display:none}body.touch.playing .mobile-look,body.touch.playing .mobile-actions{display:block}.mobile-look{z-index:1;position:fixed;inset:0}.mobile-look .look-zone{pointer-events:auto;touch-action:none;position:absolute;inset:0}.mobile-look .joystick-zone{pointer-events:auto;touch-action:none;width:48%;height:56%;position:absolute;bottom:0;left:0}.mobile-look .joystick-base{opacity:0;pointer-events:none;background:#0c101059;border:2px solid #e1b56080;border-radius:50%;width:112px;height:112px;transition:opacity .1s;position:fixed;transform:translate(-50%,-50%)}.mobile-look .joystick-base.visible{opacity:1}.mobile-look .joystick-knob{background:#e1b5608c;border-radius:50%;width:50px;height:50px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mobile-actions{z-index:3;pointer-events:none;position:fixed;inset:0}.mobile-btn{pointer-events:auto;width:50px;height:50px;color:var(--ink);-webkit-user-select:none;user-select:none;touch-action:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1116179e;border:1px solid #ffffff38;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;font-size:17px;font-weight:800;display:inline-flex}.mobile-btn:active{background:#e1b56047;border-color:#e1b560e6}.mobile-btn.cooling{opacity:.5}.mobile-btn.active{background:#6bd39138;border-color:#6bd391cc}.mobile-btn .mb-cd{color:var(--accent);min-height:12px;font-size:11px;font-weight:700}.radial{right:calc(env(safe-area-inset-right,0px) + 44px);bottom:calc(env(safe-area-inset-bottom,0px) + 46px);width:0;height:0;position:fixed}#attack-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mobile-btn.attack{border-color:#e0524599;width:64px;height:64px;font-size:22px}.radial-item{opacity:0;pointer-events:none;width:46px;height:46px;font-size:14px;transition:transform .12s,opacity .12s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.4)}.radial.open .radial-item{opacity:.95}.radial-item.selected{background:#6bd39152;border-color:#6bd391f2}.mobile-btn.jump-left{left:calc(env(safe-area-inset-left,0px) + 20px);bottom:calc(env(safe-area-inset-bottom,0px) + 104px);width:52px;height:52px;font-size:20px;position:fixed}.settings-btn{z-index:6;top:calc(env(safe-area-inset-top,0px) + 54px);right:calc(env(safe-area-inset-right,0px) + 14px);width:38px;height:38px;color:var(--ink);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0c10109e;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:none;position:fixed}body.playing .settings-btn{display:inline-flex}.settings-panel{z-index:8;gap:12px}.settings-row{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.settings-label{color:var(--muted);font-weight:800}.settings-panel .lighting-slider{width:100%}.menu-screen{z-index:7;background:var(--panel-strong);text-align:center;border:1px solid #e1b5607a;border-radius:12px;justify-items:center;gap:14px;width:min(360px,100vw - 24px);padding:24px 18px;display:grid;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 60px #00000080}.menu-screen.hidden{display:none}.menu-screen.fade-out{animation:.42s forwards menu-fade-out}.menu-screen.fade-in{animation:.45s menu-fade-in}@keyframes menu-fade-out{to{opacity:0;transform:translate(-50%,-50%)scale(.96)}}@keyframes menu-fade-in{0%{opacity:0;transform:translate(-50%,-54%)scale(.97)}}.loading-mark{color:var(--accent);font-size:40px;line-height:1;animation:1.4s ease-in-out infinite loading-pulse}.loading-tagline{letter-spacing:.16em;text-transform:uppercase;opacity:.7;margin-top:-6px;font-size:11px}@keyframes loading-pulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.18)}}.menu-title{letter-spacing:.01em;font-size:26px;font-weight:900}.menu-sub{color:var(--muted);font-size:13px}.loading-track{background:#ffffff1f;border-radius:999px;width:100%;height:10px;overflow:hidden}.loading-fill{border-radius:inherit;background:linear-gradient(90deg, #6bd391, var(--accent));width:0%;height:100%;transition:width .2s}.menu-button{width:100%;min-height:46px;color:var(--ink);cursor:pointer;background:#e1b56038;border:1px solid #e1b560b3;border-radius:8px;font-size:16px;font-weight:900}.menu-button--ghost{background:#ffffff0f;border-color:#ffffff38}.menu-button:hover,.menu-button:focus-visible{border-color:#e1b560f2;outline:0}.objective-hud{letter-spacing:.02em;align-items:center;gap:8px;padding:7px 14px;font-size:13px;font-weight:850;display:flex;top:50px;left:50%;transform:translate(-50%)}.objective-icon{color:#8fdc3c;font-size:15px}.menu-maps,.menu-modes{grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:8px;width:100%;display:grid}.map-button{min-height:40px;color:var(--ink);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff2e;border-radius:8px;font-weight:800}.map-button.active{background:#e1b5602e;border-color:#e1b560d9}.leaderboard-list{background:#00000038;border:1px solid #ffffff1a;border-radius:8px;align-content:start;gap:8px;width:100%;min-height:120px;padding:12px;display:grid}.hero-back{color:var(--ink);cursor:pointer;background:#ffffff0f;border:1px solid #fff3;border-radius:6px;justify-self:start;padding:4px 10px;font-size:13px;font-weight:800}
