#battle-effects{position:fixed;inset:0;pointer-events:none;z-index:40;overflow:hidden}.fx{position:absolute;display:flex;align-items:center;justify-content:center;text-align:center;font:700 12px Georgia,serif;color:#fff4ce;text-shadow:0 2px 3px #000;animation:fx-impact .75s ease-out forwards;border:2px solid transparent;border-radius:5px}.fx-damage{color:#ffe2cc;font-size:25px;animation:fx-number .75s ease-out forwards}.fx-heal{color:#c7f3aa;font-size:23px;box-shadow:inset 0 0 20px #78a84c99;animation:fx-number .8s ease-out forwards}.fx-defeat{background:#363026aa;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);animation:fx-break .8s ease-in forwards}.fx-guard,.fx-screen{border:3px double #d5c6a1;background:#b4a38333}.fx-screen{border-style:dashed;border-color:#99c8d6}.fx-armor{border-color:#eee1b1;box-shadow:inset 0 0 20px #c8d3d799}.fx-firstStrike{background:linear-gradient(135deg,transparent 45%,#fff4cd 49%,transparent 54%)}.fx-rush,.fx-flank,.fx-deploy{border-color:#e0b67b;background:#a58c4933}.fx-buff,.fx-ready{border-color:#b6d596}.fx-reload{color:#ded7be;border-color:#8f9eaa}.fx-epoch{border-color:#e8bd6a;background:linear-gradient(90deg,transparent,#d7a44388,transparent)}.fx-objective{border-color:#dfc37c;color:#ffe4a8;background:#80662b66}.fx-projectile{position:absolute;width:15px;height:4px;background:#fff0c0;box-shadow:0 2px 6px #0008;transform-origin:center;border-radius:50%}.fx-projectile.barrage{width:17px;height:17px;background:#d58033;border:3px solid #f3d196}.fx-projectile.heal,.fx-projectile.buff{background:#c7ec95}.fx-projectile.encircle{background:#cc936f}.ability-strip{position:absolute!important;top:1px;right:1px;display:flex;gap:1px;max-width:100%;flex-wrap:wrap;justify-content:flex-end;z-index:2;pointer-events:none}.ability-mark,.cooldown{display:inline-flex;align-items:center;justify-content:center;background:#141b17e8;border:1px solid #b59e72;color:#f5e7c7;min-width:14px;height:15px;border-radius:2px;font:9px Arial,sans-serif}.ability-mark svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}.ability-rush{color:#efbd79}.ability-screen{color:#a4d6e0}.ability-heal{color:#b4db93}.cooldown{color:#fff;background:#4e4330}.hc .ability-strip{top:27px;left:2px;right:auto;justify-content:flex-start}.is-guard{border-top-style:double!important;border-top-width:4px!important}.is-screen{border-bottom:3px dashed #a4c9d0!important}.has-buff .atk{color:#c2eb91!important}.spent-mark{position:absolute!important;top:45%;font:8px Arial,sans-serif;text-transform:uppercase;background:#18201ce8;color:#e8dcc0;padding:2px}.is-spent{filter:saturate(.55)}.audio-controls{position:fixed;right:10px;top:8px;z-index:25;background:#242b23ed;border:1px solid #88734e;padding:5px;display:flex;gap:6px;align-items:center;color:#eadcbe;font:10px Arial,sans-serif}.audio-controls button{background:#383e31;color:#f4e5c6;border:1px solid #8d7851;padding:4px;cursor:pointer}.audio-controls label{display:flex;align-items:center;gap:3px}.audio-controls input{width:55px;accent-color:#d9b477}body:has(#menu.hidden) .audio-controls{top:auto;bottom:3px}.drag-ghost{position:fixed!important;z-index:60!important;pointer-events:none!important;margin:0!important;opacity:.95;box-shadow:0 12px 22px #0009!important;transform:scale(1.12);transition:none!important}.drag-origin{opacity:.25}.drop-hover{outline:3px solid #ffe1a0!important;outline-offset:-3px;background-color:#c0aa5633!important}.supply-drop{outline:2px dashed #dfc087;outline-offset:-4px}.supply-drop::after{content:'Drop for Supply';font:11px Arial,sans-serif;color:#ffe1a0}.hc,.u{touch-action:none}.fx-live{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@keyframes fx-impact{0%{opacity:0;transform:scale(.9)}20%{opacity:1;transform:scale(1.04)}100%{opacity:0;transform:scale(1.1)}}@keyframes fx-number{0%{opacity:0;transform:translateY(4px)}20%{opacity:1}100%{opacity:0;transform:translateY(-28px)}}@keyframes fx-break{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:translateY(25px) rotate(8deg) scale(.7);clip-path:polygon(5% 10%,85% 0,95% 90%,20% 70%)}}
@media(max-width:600px){.audio-controls{font-size:9px;right:4px;padding:3px}.audio-controls label{font-size:0}.audio-controls input{width:42px}.ability-mark,.cooldown{height:12px;min-width:12px}.ability-mark svg{width:10px;height:10px}.fx{font-size:10px}.fx-damage,.fx-heal{font-size:20px}}
@media(prefers-reduced-motion:reduce){.fx{animation:fx-static .2s linear!important}.drag-ghost{transform:none}.fx-projectile{display:none}@keyframes fx-static{0%,80%{opacity:1}100%{opacity:0}}}
.fx-particle{position:absolute;width:6px;height:6px;background:#a58c61;pointer-events:none}.fx-particle.spark{background:#ffe5ad;width:3px;height:8px}.fx-particle.stone{background:#797568}.lane:has(.half.me .is-guard) .name.me::before{content:"Guard · "}.lane:has(.half.opp .is-guard)>.name:first-child::after{content:" · Guard"}
