@font-face{font-family:Vazirmatn;src:url(./Vazirmatn-Thin-DdUiS1cj.woff2) format("woff2");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:Vazirmatn;src:url(./Vazirmatn-ExtraLight-DNfybfsL.woff2) format("woff2");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:Vazirmatn;src:url(./Vazirmatn-Light-Byrs-DlH.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Vazirmatn;src:url(./Vazirmatn-Regular-CtGL0YI-.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Vazirmatn;src:url(./Vazirmatn-Medium-D86t5Axy.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Vazirmatn;src:url(./Vazirmatn-SemiBold-26ZP1ILp.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Vazirmatn;src:url(./Vazirmatn-Bold-_OhAJEdh.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Vazirmatn;src:url(./Vazirmatn-ExtraBold-DCjt2qDm.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Vazirmatn;src:url(./Vazirmatn-Black-DA1YqYMq.woff2) format("woff2");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Russo One;font-style:normal;font-display:swap;font-weight:400;src:url(./russo-one-cyrillic-400-normal-BXZIn0h3.woff2) format("woff2"),url(./russo-one-cyrillic-400-normal-rRbrNFRA.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Russo One;font-style:normal;font-display:swap;font-weight:400;src:url(./russo-one-latin-ext-400-normal-CezFp_e4.woff2) format("woff2"),url(./russo-one-latin-ext-400-normal-BssN3Pxm.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Russo One;font-style:normal;font-display:swap;font-weight:400;src:url(./russo-one-latin-400-normal-BfOuQF9V.woff2) format("woff2"),url(./russo-one-latin-400-normal-CosRecV9.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #0b0716;--magenta: #ff2d95;--cyan: #22e4ff;--gold: #ffc94d;--red: #ff4757;--violet: #7c3aed;--green: #3dffa2;--text: #f1ecff;--muted: #a99cd6;--panel: rgba(24, 14, 46, .55);--panel-border: rgba(190, 150, 255, .22);--z-hud: 20;--z-banner: 30;--z-screen: 50}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:Vazirmatn,system-ui,sans-serif;user-select:none;-webkit-user-select:none}#app,#app canvas{position:fixed;top:0;right:0;bottom:0;left:0;display:block}.hidden{display:none!important}.vignette{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10;background:radial-gradient(ellipse at 50% 42%,transparent 55%,rgba(5,2,14,.55) 100%)}.scanlines{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:11;opacity:.05;background:repeating-linear-gradient(to bottom,transparent 0 2px,#000 2px 4px)}#flash{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:15;opacity:0;background:radial-gradient(ellipse at center,transparent 30%,var(--red) 130%)}#flash.hurt{animation:flash-hurt .45s ease-out}#flash.gold{background:radial-gradient(ellipse at center,transparent 40%,var(--gold) 150%);animation:flash-hurt .4s ease-out}@keyframes flash-hurt{0%{opacity:.85}to{opacity:0}}.glass{background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 4px 30px #00000073,inset 0 1px #ffffff0f}#hud{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-hud);pointer-events:none}#hud>*{pointer-events:none}.topbar{position:absolute;top:16px;right:16px;left:16px;display:flex;justify-content:space-between;align-items:flex-start}.wave-chip{padding:10px 18px;display:flex;flex-direction:column;gap:2px}.wave-num{font-weight:800;font-size:15px;color:var(--cyan);text-shadow:0 0 12px rgba(34,228,255,.6)}.wave-name{font-size:13px;color:var(--muted)}.top-actions{display:flex;gap:10px;align-items:center}.score{padding:10px 16px;font-size:14px;font-weight:700;color:var(--gold)}.icon-btn{width:46px;height:46px;display:grid;place-items:center;color:var(--text);cursor:pointer;pointer-events:auto;transition:color .2s,border-color .2s,transform .15s}.icon-btn:hover{color:var(--cyan);border-color:var(--cyan)}.icon-btn:focus-visible,.action:focus-visible,.start-btn:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.icon-btn.off{color:var(--red);opacity:.75}.banner{position:absolute;top:17%;left:50%;transform:translate(-50%) scale(.9);z-index:var(--z-banner);font-size:clamp(26px,4vw,44px);font-weight:900;letter-spacing:1px;padding:8px 42px;border-radius:12px;white-space:nowrap;opacity:0;text-align:center}.banner.show{animation:banner-in 1.5s cubic-bezier(.2,.9,.2,1) forwards}.banner.player{color:var(--cyan);text-shadow:0 0 24px rgba(34,228,255,.8),0 0 60px rgba(34,228,255,.4)}.banner.enemy{color:var(--red);text-shadow:0 0 24px rgba(255,71,87,.8),0 0 60px rgba(255,71,87,.4)}.banner.wave{color:var(--magenta);text-shadow:0 0 24px rgba(255,45,149,.8),0 0 60px rgba(255,45,149,.45)}.banner.gold{color:var(--gold);text-shadow:0 0 24px rgba(255,201,77,.85),0 0 60px rgba(255,201,77,.4)}@keyframes banner-in{0%{opacity:0;transform:translate(-50%) scale(.82)}12%{opacity:1;transform:translate(-50%) scale(1.04)}20%{transform:translate(-50%) scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%) scale(1.02) translateY(-8px)}}.parry{position:absolute;left:50%;bottom:34%;width:150px;height:150px;transform:translate(-50%,50%);pointer-events:none}.parry-ring-target{position:absolute;top:30px;right:30px;bottom:30px;left:30px;border-radius:50%;border:3px solid rgba(34,228,255,.9);box-shadow:0 0 18px #22e4ffb3,inset 0 0 12px #22e4ff59}.parry-ring-outer{position:absolute;top:30px;right:30px;bottom:30px;left:30px;border-radius:50%;border:4px solid var(--magenta);box-shadow:0 0 22px #ff2d95cc;transform:scale(2.6);opacity:.9}.parry.on .parry-ring-outer{animation:parry-shrink var(--pdur, .5s) linear forwards}@keyframes parry-shrink{0%{transform:scale(2.6);opacity:.85}to{transform:scale(1);opacity:1}}.parry-key{position:absolute;left:50%;top:calc(100% + 6px);transform:translate(-50%);font-family:Russo One,Vazirmatn,sans-serif;font-size:15px;letter-spacing:2px;color:var(--cyan);text-shadow:0 0 12px rgba(34,228,255,.8);animation:key-pulse .5s ease-in-out infinite alternate}@keyframes key-pulse{0%{opacity:.65}to{opacity:1;transform:translate(-50%) scale(1.08)}}.parry-result{position:absolute;left:50%;bottom:44%;transform:translate(-50%);font-size:30px;font-weight:900;opacity:0;white-space:nowrap;z-index:var(--z-banner)}.parry-result.pop{animation:presult .9s cubic-bezier(.2,.9,.3,1) forwards}.parry-result.perfect{color:var(--gold);text-shadow:0 0 20px rgba(255,201,77,.9),0 0 50px rgba(255,201,77,.5)}.parry-result.good{color:var(--cyan);text-shadow:0 0 20px rgba(34,228,255,.9)}.parry-result.miss{color:var(--red);text-shadow:0 0 20px rgba(255,71,87,.9)}@keyframes presult{0%{opacity:0;transform:translate(-50%) scale(.6)}15%{opacity:1;transform:translate(-50%) scale(1.15)}30%{transform:translate(-50%) scale(1)}75%{opacity:1}to{opacity:0;transform:translate(-50%) translateY(-24px)}}.bottombar{position:absolute;bottom:16px;right:18px;left:18px;display:flex;justify-content:space-between;align-items:flex-end;gap:14px}.player-plate{width:min(360px,34vw);padding:12px 18px 14px;display:flex;flex-direction:column;gap:7px}.plate-head{display:flex;align-items:center;gap:10px;margin-bottom:2px}.avatar{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;color:var(--gold);background:linear-gradient(135deg,#ff2d9540,#7c3aed4d);border:1px solid rgba(255,201,77,.4);box-shadow:0 0 14px #ff2d9559}.plate-name{display:flex;flex-direction:column;line-height:1.25}.plate-name b{font-size:15px}.plate-name span{font-size:11.5px;color:var(--muted)}.bar{position:relative;height:20px;border-radius:999px;background:#080414cc;overflow:hidden;border:1px solid rgba(255,255,255,.08)}.bar-fill,.bar-trail{position:absolute;inset:0 0 0 auto;right:0;height:100%;border-radius:999px;width:100%}.bar-fill{transition:width .25s ease}.bar-trail{transition:width .7s ease .25s}.hp-bar .bar-fill{background:linear-gradient(90deg,#ff6b81,#ff2d55);box-shadow:0 0 14px #ff2d558c}.hp-bar .bar-trail{background:#ffebf08c}.mana-bar .bar-fill{background:linear-gradient(90deg,var(--cyan),var(--violet));box-shadow:0 0 14px #22e4ff80}.mana-bar .bar-trail{background:#d2f5ff80}.bar-text{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:12px;font-weight:800;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.9);z-index:2;direction:ltr}.mana-bar.glow{animation:mana-glow .6s ease}@keyframes mana-glow{0%,to{box-shadow:none}40%{box-shadow:0 0 26px #22e4fff2}}.actions{display:flex;gap:12px;pointer-events:auto}.action{position:relative;width:108px;min-height:104px;padding:12px 8px 10px;display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--text);cursor:pointer;font-family:inherit;transition:transform .15s ease,border-color .2s,box-shadow .2s,opacity .2s}.action:hover:not(:disabled){border-color:var(--cyan);box-shadow:0 0 22px #22e4ff59,0 4px 30px #00000073;transform:translateY(-3px)}.action:active:not(:disabled){transform:translateY(0)}.action:disabled{opacity:.38;cursor:not-allowed;filter:saturate(.4)}.action .act-icon{color:var(--cyan);filter:drop-shadow(0 0 8px rgba(34,228,255,.7))}.action.ult .act-icon{color:var(--gold);filter:drop-shadow(0 0 10px rgba(255,201,77,.8))}.action .act-name{font-size:13px;font-weight:700}.act-cost{position:absolute;top:-9px;left:-6px;font-size:12px;font-weight:800;direction:ltr;padding:2px 9px;border-radius:999px;background:linear-gradient(135deg,var(--violet),#4527a8);border:1px solid rgba(190,150,255,.5);box-shadow:0 0 10px #7c3aed99}.act-cost.gain{background:linear-gradient(135deg,#0c8f6f,#0a6e60);border-color:#3dffa280;box-shadow:0 0 10px #3dffa266}.hotkey{position:absolute;top:-9px;right:-6px;font-size:11px;font-weight:800;color:var(--bg);min-width:22px;height:22px;display:grid;place-items:center;padding:0 5px;border-radius:7px;background:var(--cyan);box-shadow:0 0 10px #22e4ffb3}.action.flash-use{animation:act-use .4s ease}@keyframes act-use{0%{box-shadow:0 0 #fff0}30%{box-shadow:0 0 34px #ffffffb3;transform:scale(1.06)}to{transform:scale(1)}}.hint{position:absolute;bottom:0;left:50%;transform:translate(-50%);padding:6px 16px;font-size:12px;color:var(--muted);transition:opacity .4s;white-space:nowrap}.hint.gone{opacity:0}#ebars{position:absolute;top:0;right:0;bottom:0;left:0}.ebar{position:absolute;width:92px;transform:translate(-50%,-100%);display:flex;flex-direction:column;gap:3px;align-items:center;transition:opacity .3s}.ebar .ename{font-size:11px;font-weight:700;color:var(--text);text-shadow:0 1px 4px #000,0 0 10px rgba(255,45,149,.5);white-space:nowrap}.ebar .ebar-track{width:100%;height:7px;border-radius:99px;background:#05020ed9;border:1px solid rgba(255,255,255,.14);overflow:hidden}.ebar .ebar-fill{height:100%;width:100%;border-radius:99px;background:linear-gradient(90deg,#ff7a45,var(--red));box-shadow:0 0 8px #ff4757b3;transition:width .25s ease}.ebar.target .ename{color:var(--cyan);text-shadow:0 0 10px rgba(34,228,255,.9)}.ebar.boss{width:150px}.ebar.boss .ename{font-size:13px}.ebar.boss .ebar-track{height:10px}.ebar .stun-tag{font-size:10px;color:var(--gold);text-shadow:0 0 8px rgba(255,201,77,.8)}#dmg-layer{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.dmg{position:absolute;transform:translate(-50%,-50%);font-family:Russo One,Vazirmatn,sans-serif;font-size:26px;font-weight:900;direction:ltr;animation:dmg-float 1.05s cubic-bezier(.2,.8,.3,1) forwards;text-shadow:0 2px 6px rgba(0,0,0,.85)}.dmg.hit{color:#ffd9a0;text-shadow:0 0 14px rgba(255,150,60,.9),0 2px 6px rgba(0,0,0,.9)}.dmg.crit{color:var(--gold);font-size:34px;text-shadow:0 0 20px rgba(255,201,77,.95),0 2px 6px rgba(0,0,0,.9)}.dmg.hurt{color:var(--red);text-shadow:0 0 14px rgba(255,71,87,.9),0 2px 6px rgba(0,0,0,.9)}.dmg.mana{color:var(--cyan);font-size:21px;text-shadow:0 0 14px rgba(34,228,255,.9),0 2px 6px rgba(0,0,0,.9)}.dmg.heal{color:var(--green);font-size:22px;text-shadow:0 0 14px rgba(61,255,162,.9),0 2px 6px rgba(0,0,0,.9)}@keyframes dmg-float{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}12%{opacity:1;transform:translate(-50%,-60%) scale(1.18)}25%{transform:translate(-50%,-70%) scale(1)}to{opacity:0;transform:translate(-50%,-230%) scale(.92)}}.screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-screen);display:grid;place-items:center;background:radial-gradient(ellipse at 50% 120%,rgba(124,58,237,.28),transparent 55%),radial-gradient(ellipse at 15% 0%,rgba(255,45,149,.14),transparent 45%),radial-gradient(ellipse at 85% 0%,rgba(34,228,255,.12),transparent 45%),#06030fb8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:screen-in .6s ease}@keyframes screen-in{0%{opacity:0}to{opacity:1}}.title-inner{display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;padding:24px;max-width:680px}.logo-fa{font-size:clamp(52px,9vw,96px);font-weight:900;line-height:1.15;background:linear-gradient(180deg,#fff 10%,var(--magenta) 55%,var(--violet) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 26px rgba(255,45,149,.55)) drop-shadow(0 4px 30px rgba(124,58,237,.5));animation:logo-glow 2.6s ease-in-out infinite alternate}@keyframes logo-glow{0%{filter:drop-shadow(0 0 18px rgba(255,45,149,.4)) drop-shadow(0 4px 26px rgba(124,58,237,.4))}to{filter:drop-shadow(0 0 34px rgba(255,45,149,.75)) drop-shadow(0 4px 40px rgba(124,58,237,.6))}}.logo-en{font-family:Russo One,sans-serif;direction:ltr;font-size:clamp(14px,2.2vw,21px);letter-spacing:.55em;text-indent:.55em;color:var(--cyan);text-shadow:0 0 16px rgba(34,228,255,.75);margin-top:6px}.tagline{font-size:clamp(15px,2vw,19px);color:var(--text);font-weight:700}.story{font-size:14px;color:var(--muted);line-height:2}.start-btn{display:inline-flex;align-items:center;gap:10px;font-family:inherit;font-size:19px;font-weight:900;color:#fff;padding:15px 52px;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:linear-gradient(135deg,var(--magenta),var(--violet));box-shadow:0 0 30px #ff2d958c,0 10px 34px #00000080;cursor:pointer;transition:transform .15s ease,box-shadow .2s}.start-btn:hover{box-shadow:0 0 46px #ff2d95cc,0 10px 34px #00000080;transform:translateY(-2px)}.start-btn:active{transform:translateY(1px)}.controls-legend{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:center;padding:13px 22px;font-size:13px;color:var(--muted);max-width:600px}.controls-legend em{color:var(--green);font-style:normal;font-size:11.5px}kbd{font-family:Russo One,Vazirmatn,sans-serif;font-size:11.5px;color:var(--cyan);border:1px solid rgba(34,228,255,.45);border-bottom-width:2.5px;border-radius:6px;padding:2px 8px;margin:0 2px;background:#22e4ff14}.dedication{margin-top:6px;font-size:13.5px;color:var(--muted)}.dedication .heart{color:var(--magenta);text-shadow:0 0 10px rgba(255,45,149,.8);animation:key-pulse .9s ease-in-out infinite alternate;display:inline-block}.end-title{font-size:clamp(44px,7vw,78px);font-weight:900;background:linear-gradient(180deg,#fff,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 26px rgba(255,201,77,.55))}.end-title.lose{background:linear-gradient(180deg,#fff,var(--red));-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 0 26px rgba(255,71,87,.55))}.end-sub{color:var(--muted);font-size:16px}.stats{display:flex;gap:30px;padding:16px 34px}.stats .st{display:flex;flex-direction:column;gap:4px;align-items:center}.stats .st b{font-size:26px;color:var(--cyan);font-weight:900;direction:ltr}.stats .st span{font-size:12px;color:var(--muted)}.webgl-error{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;background:var(--bg);color:var(--text);text-align:center;padding:24px;font-size:16px;line-height:2.1}.webgl-error b{color:var(--magenta);font-size:22px}.webgl-error ol{text-align:right;color:var(--muted)}.webgl-error code{direction:ltr;display:inline-block;background:#22e4ff1a;border:1px solid rgba(34,228,255,.35);border-radius:6px;padding:1px 10px;color:var(--cyan);font-size:14px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media(max-width:980px){.action{width:86px;min-height:92px}.player-plate{width:280px}.stats{gap:16px;padding:12px 18px}}
