.fx-layer{pointer-events:none;z-index:30;position:absolute;inset:0;overflow:hidden}.fx{transform-origin:50%;pointer-events:none;will-change:transform, opacity;position:absolute;transform:translate(-50%,-50%)}.fx--damage{--fx-a:#ff5c3a;--fx-b:#ffd45e}.fx--wreck{--fx-a:#b8352a;--fx-b:#6d4a3a}.fx--heal{--fx-a:#3fc178;--fx-b:#d6ffe6}.fx--joy{--fx-a:#ffc93c;--fx-b:#fff4cd}.fx--arcane{--fx-a:#9b6cff;--fx-b:#6ee7ff}.fx--token{--fx-a:#ffb43c;--fx-b:#fff0c2}.fx--neutral{--fx-a:#e8e0cc;--fx-b:#fff}.fx--impact{width:var(--fx-size);height:var(--fx-size)}.fx-ring,.fx-core{border-radius:50%;position:absolute;inset:0}.fx-ring{border:max(2px, calc(var(--fx-size) * .055)) solid var(--fx-a);animation:fx-ring var(--fx-d) cubic-bezier(.12, .7, .3, 1) forwards}.fx-ring--late{border-color:var(--fx-b);animation-delay:70ms;animation-duration:calc(var(--fx-d) * .85)}.fx-core{background:radial-gradient(circle, #fff 0%, var(--fx-b) 38%, transparent 70%);animation:fx-core calc(var(--fx-d) * .5) ease-out forwards}@keyframes fx-ring{0%{opacity:0;transform:scale(.2)}18%{opacity:1}to{opacity:0;transform:scale(1.15)}}@keyframes fx-core{0%{opacity:.95;transform:scale(.1)}to{opacity:0;transform:scale(.85)}}.fx--slash{width:var(--fx-size);height:var(--fx-size)}.fx-slash-line{width:100%;height:max(3px, calc(var(--fx-size) * .075));background:linear-gradient(90deg, transparent, #fff 22%, var(--fx-a) 55%, transparent);transform-origin:0;filter:drop-shadow(0 0 4px var(--fx-a));animation:fx-slash var(--fx-d) cubic-bezier(.2, .8, .3, 1) forwards;border-radius:999px;position:absolute;top:50%;left:0;transform:translateY(-50%)rotate(-32deg)scaleX(0)}.fx-slash-line--cross{animation-delay:90ms;transform:translateY(-50%)rotate(28deg)scaleX(0)}@keyframes fx-slash{0%{transform:translateY(-50%) rotate(var(--fx-rot,-32deg)) scaleX(0);opacity:0}30%{opacity:1}60%{transform:translateY(-50%) rotate(var(--fx-rot,-32deg)) scaleX(1);opacity:1}to{transform:translateY(-50%) rotate(var(--fx-rot,-32deg)) scaleX(1);opacity:0}}.fx-slash-line{--fx-rot:-32deg}.fx-slash-line--cross{--fx-rot:28deg}.fx--sigil{width:var(--fx-size);height:var(--fx-size);animation:fx-sigil-in var(--fx-d) ease-out forwards}.fx-sigil-ring{border:max(2px, calc(var(--fx-size) * .03)) dashed var(--fx-a);animation:fx-spin calc(var(--fx-d) * 1.6) linear infinite;border-radius:50%;position:absolute;inset:0}.fx-sigil-ring--inner{border-style:solid;border-color:var(--fx-b);border-width:max(1.5px, calc(var(--fx-size) * .022));animation-direction:reverse;animation-duration:calc(var(--fx-d) * 1.1);inset:18%}.fx-sigil-core{background:radial-gradient(circle, #fff 0%, var(--fx-b) 40%, transparent 72%);opacity:.85;border-radius:50%;position:absolute;inset:32%}.fx-rune{width:max(3px, calc(var(--fx-size) * .075));height:max(3px, calc(var(--fx-size) * .075));margin:calc(var(--fx-size) * -.0375) 0 0 calc(var(--fx-size) * -.0375);background:var(--fx-b);transform:rotate(var(--fx-spoke)) translateY(calc(var(--fx-size) * -.42)) rotate(45deg);box-shadow:0 0 6px var(--fx-a);border-radius:2px;position:absolute;top:50%;left:50%}@keyframes fx-sigil-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)rotate(-25deg)}22%{opacity:1;transform:translate(-50%,-50%)scale(1.06)rotate(0)}72%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(6deg)}to{opacity:0;transform:translate(-50%,-50%)scale(1.18)rotate(14deg)}}@keyframes fx-spin{to{transform:rotate(360deg)}}.fx--burst{width:var(--fx-size);height:var(--fx-size)}.fx-shard{width:max(3px, calc(var(--fx-size) * .09));height:max(6px, calc(var(--fx-size) * .2));margin:calc(var(--fx-size) * -.1) 0 0 calc(var(--fx-size) * -.045);background:linear-gradient(180deg, var(--fx-b), var(--fx-a));transform:rotate(var(--fx-spoke,0deg));animation:fx-shard var(--fx-d) cubic-bezier(.15, .7, .35, 1) forwards;animation-delay:calc(var(--fx-i,0) * 12ms);border-radius:2px;position:absolute;top:50%;left:50%}@keyframes fx-shard{0%{transform:rotate(var(--fx-spoke)) translateY(0) scale(.5);opacity:0}15%{opacity:1}to{transform:rotate(var(--fx-spoke)) translateY(calc(var(--fx-size) * -.62)) scale(.35);opacity:0}}.fx--sparkle{width:var(--fx-size);height:var(--fx-size)}.fx-star{width:max(4px, calc(var(--fx-size) * .11));height:max(4px, calc(var(--fx-size) * .11));margin:calc(var(--fx-size) * -.055) 0 0 calc(var(--fx-size) * -.055);background:var(--fx-b);box-shadow:0 0 8px var(--fx-a);clip-path:polygon(50% 0%,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0% 50%,39% 39%);animation:fx-star var(--fx-d) ease-out forwards;animation-delay:calc(var(--fx-i,0) * 45ms);position:absolute;top:50%;left:50%}@keyframes fx-star{0%{transform:rotate(var(--fx-spoke)) translateY(calc(var(--fx-size) * -.12)) scale(0);opacity:0}40%{transform:rotate(var(--fx-spoke)) translateY(calc(var(--fx-size) * -.34)) scale(1.1);opacity:1}to{transform:rotate(var(--fx-spoke)) translateY(calc(var(--fx-size) * -.5)) scale(.2);opacity:0}}.fx--glow{width:var(--fx-size);height:var(--fx-size);background:radial-gradient(circle, var(--fx-b) 0%, var(--fx-a) 34%, transparent 68%);animation:fx-glow var(--fx-d) ease-out forwards;border-radius:50%}@keyframes fx-glow{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}35%{opacity:calc(.5 + .4 * var(--fx-p,.6));transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1.25)}}.fx--float{animation:fx-float var(--fx-d) cubic-bezier(.16, .9, .3, 1) forwards}.fx-float-text{white-space:nowrap;font-weight:900;font-size:clamp(.95rem, calc(var(--fx-w,90px) * .22), 1.6rem);letter-spacing:-.02em;color:var(--fx-b);text-shadow:0 0 3px var(--fx-a), 0 2px 0 #0000008c, 0 0 12px #00000080;-webkit-text-stroke:1px #0000008c;display:block}@keyframes fx-float{0%{opacity:0;transform:translate(-50%,-30%)scale(.6)}20%{opacity:1;transform:translate(-50%,-70%)scale(1.15)}70%{opacity:1;transform:translate(-50%,-105%)scale(1)}to{opacity:0;transform:translate(-50%,-150%)scale(.92)}}.fx--strike{width:var(--fx-size);height:calc(var(--fx-size) * .34);transform:translate(-50%, -50%) rotate(var(--fx-angle));animation:fx-strike var(--fx-d) cubic-bezier(.4, 0, .7, 1) forwards}.fx-bolt{background:linear-gradient(90deg, transparent, var(--fx-a) 45%, #fff 100%);filter:drop-shadow(0 0 6px var(--fx-a));border-radius:999px;position:absolute;inset:0}@keyframes fx-strike{0%{transform:translate(-50%, -50%) rotate(var(--fx-angle)) scaleX(.4);opacity:0}20%{opacity:1}to{transform:translate(calc(-50% + var(--fx-dx)), calc(-50% + var(--fx-dy))) rotate(var(--fx-angle)) scaleX(1);opacity:0}}.fx--beam{height:0;transform:rotate(var(--fx-angle));transform-origin:0}.fx-beam-line{left:0;top:max(-3px, calc(-2px - var(--fx-p) * 2px));width:100%;height:calc(3px + var(--fx-p) * 4px);background:linear-gradient(90deg, var(--fx-a), var(--fx-b));filter:drop-shadow(0 0 6px var(--fx-a));transform-origin:0;animation:fx-beam-line var(--fx-d) ease-out forwards;border-radius:999px;position:absolute}.fx-beam-orb{background:radial-gradient(circle, #fff, var(--fx-b) 55%, transparent 75%);width:12px;height:12px;animation:fx-beam-orb var(--fx-d) cubic-bezier(.4, 0, .4, 1) forwards;border-radius:50%;margin:-6px 0 0 -6px;position:absolute;top:50%;left:0}@keyframes fx-beam-line{0%{opacity:0;transform:scaleX(0)}30%{opacity:.95;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}@keyframes fx-beam-orb{0%{opacity:0;transform:translate(0)scale(.6)}20%{opacity:1}85%{opacity:1;transform:translate(100%)scale(1.3)}to{opacity:0;transform:translate(100%)scale(.4)}}.fx--flash{background:radial-gradient(ellipse at center, transparent 38%, var(--fx-a) 100%);animation:fx-flash var(--fx-d) ease-out forwards;position:absolute;inset:0;transform:none}@keyframes fx-flash{0%{opacity:0}18%{opacity:calc(.5 * var(--fx-p,.7))}to{opacity:0}}.fx--banner{animation:fx-banner var(--fx-d) cubic-bezier(.2, .9, .3, 1) forwards;top:42%;left:50%}.fx-banner-text{white-space:nowrap;background:linear-gradient(180deg, var(--fx-b), var(--fx-a));color:#2a2109;letter-spacing:-.03em;border:3px solid #1c1712;border-radius:14px 10px 15px 11px/11px 15px 10px 14px;padding:.32em 1.1em;font-size:clamp(1.1rem,4.5vw,1.9rem);font-weight:900;display:block;box-shadow:0 6px #00000059}@keyframes fx-banner{0%{opacity:0;transform:translate(-50%,-50%)scale(.7)}16%{opacity:1;transform:translate(-50%,-50%)scale(1.06)}70%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-140%)scale(.94)}}@media (prefers-reduced-motion:reduce){.fx--impact,.fx--slash,.fx--burst,.fx--sparkle,.fx--strike,.fx--beam,.fx--sigil{display:none}.fx-layer *{animation-duration:.01ms!important;animation-iteration-count:1!important}.fx--float,.fx--banner,.fx--glow,.fx--flash{animation:.6s ease-out forwards fx-fade!important}@keyframes fx-fade{0%,70%{opacity:1}to{opacity:0}}}
