.power-aim-layer,.power-cast-layer{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:60;overflow:visible;contain:layout style}.power-aim-layer{opacity:.72}.power-aim-layer.aim-valid{opacity:1}.power-trail-halo,.power-trail-ribbon,.power-trail-core{fill:none;stroke-linecap:round;stroke-linejoin:round}.power-trail-halo{stroke-width:10;stroke-opacity:.12}.power-trail-ribbon{stroke-width:4;stroke-opacity:.55}.power-trail-core{stroke-width:1.1;stroke-opacity:.95}.power-cast-layer>svg{position:absolute;inset:0;width:100%;height:100%}.power-projectile{position:absolute;width:38px;height:38px;pointer-events:none;transform:translate(-50%,-50%)}.power-projectile svg{display:block;width:100%;height:100%}.power-impact{position:absolute;width:38px;height:38px;border:2px solid var(--power-color);box-shadow:inset 0 0 0 5px #ffffff08;border-radius:50%;opacity:0;transform:translate(-50%,-50%);pointer-events:none}body[data-power-aim] .game-table,body[data-power-aim] .game-table *{cursor:none!important}@media(pointer:coarse){body[data-power-aim] .game-table,body[data-power-aim] .game-table *{cursor:auto!important}.power-aim-tip{opacity:.8}}@media(prefers-reduced-motion:reduce){.power-trail-halo{stroke-opacity:.06}.power-trail-ribbon{stroke-opacity:.35}}

.power-aim-layer,.power-cast-layer{mix-blend-mode:screen}.power-aim-tip{isolation:isolate}.power-projectile{width:58px;height:58px}.power-textured-trail{pointer-events:none}.power-art-impact{width:72px;height:72px;border:0;box-shadow:none}.power-art-impact svg{display:block;width:100%;height:100%}@media(pointer:coarse){.power-projectile{width:48px;height:48px}}

.power-aim-layer[data-fx-class="mage"],.power-cast-layer[data-fx-class="mage"]{mix-blend-mode:normal}.power-aim-layer[data-fx-class="mage"] .power-trail-halo{stroke-width:6;stroke-opacity:.07}.power-aim-layer[data-fx-class="mage"] .power-trail-ribbon{stroke-width:2;stroke-opacity:.3}.power-aim-layer[data-fx-class="mage"] .power-trail-core{stroke-width:.7;stroke-opacity:.55}.power-cast-layer[data-fx-class="mage"] .power-projectile{width:64px;height:64px}@media(pointer:coarse){.power-cast-layer[data-fx-class="mage"] .power-projectile{width:54px;height:54px}}

.power-flame-wake{opacity:.3;stroke:none}.power-flame-thread{fill:none;stroke-width:.65;stroke-opacity:.3;stroke-linecap:round}.power-cast-layer[data-fx-class="mage"] .power-projectile{width:32px;height:32px}.power-cast-layer[data-fx-class="mage"] .power-art-impact{width:36px;height:36px}.power-cast-layer[data-fx-class="mage"] .power-projectile>svg{width:100%;height:100%}.power-cast-layer[data-fx-class="mage"] .power-projectile svg svg{width:52px;height:52px}@media(pointer:coarse){.power-cast-layer[data-fx-class="mage"] .power-projectile{width:27px;height:27px}}

/* Comet sprite keeps its rear flames visible, without a circular crop. */
.power-flame-wake{opacity:.58}.power-flame-inner{opacity:.64;stroke:none}.power-flame-thread{stroke-width:.65;stroke-opacity:.78}.power-cast-layer[data-fx-class="mage"] .power-projectile>svg,.power-cast-layer[data-fx-class="mage"] .power-art-impact>svg{overflow:visible}

.power-material-ribbon,.power-material-detail{fill:none;stroke-linecap:round;stroke-linejoin:round}.power-material-ribbon{stroke-width:1.5;stroke-opacity:.35}.power-material-detail{stroke-width:.8;stroke-opacity:.8}.power-material-flecks{opacity:.7;stroke:none}.power-cast-layer:not([data-fx-class="mage"]) .power-projectile{width:36px;height:36px}.power-cast-layer:not([data-fx-class="mage"]) .power-art-impact{width:42px;height:42px}.power-projectile>svg,.power-art-impact>svg{overflow:visible}.power-cast-layer[data-fx-class="hunter"] .power-material-ribbon,.power-cast-layer[data-fx-class="rogue"] .power-material-ribbon{stroke-width:.8;stroke-opacity:.25}@media(pointer:coarse){.power-cast-layer:not([data-fx-class="mage"]) .power-projectile{width:30px;height:30px}}

/* Aiming axe has no glow; a compact highlight appears only after a valid attack is confirmed. */
.power-aim-layer[data-fx-class="attack"]{mix-blend-mode:normal}.power-aim-layer[data-fx-class="attack"] .power-material-flecks{display:none}.power-aim-layer[data-fx-class="attack"] .power-material-ribbon{stroke-width:.7;stroke-opacity:.2}.power-aim-layer[data-fx-class="attack"] .power-material-detail{stroke-opacity:.3}.power-cast-layer[data-fx-class="attack"] .power-projectile,.power-cast-layer[data-fx-class="attack"] .power-art-impact{filter:drop-shadow(0 0 2px #fff1b8) drop-shadow(0 0 5px #ffb84de6)}

