/* Two local layers, clipped to their own canvas; NEVER change the actor size,
   camera, chat grid or original model animation. No independent CSS timeline. */
[data-vfx-bound="true"] {isolation:isolate}
[data-vfx-bound="true"] > model-viewer {position:relative;z-index:2}
canvas.martial-fx {display:none;position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;pointer-events:none!important;overflow:hidden;contain:strict;user-select:none;border-radius:inherit}
canvas.fx-back {z-index:1}
canvas.fx-front {z-index:3}
[data-vfx-active="true"] > canvas.martial-fx {display:block}
[data-vfx-bound="true"][data-care-kind="flourish"] > .care-aura {display:none!important}
html[data-reduced-motion="true"] canvas.martial-fx {display:none!important}
@media(prefers-reduced-motion:reduce){html:not([data-reduced-motion="false"]) canvas.martial-fx {display:none!important}}
