.elemental-ward {
    position: absolute; inset: 4% 3% 9%; z-index: 7; pointer-events: none;
    opacity: .7; filter: drop-shadow(0 0 6px var(--element-color));
    animation: elemental-ward-breathe 3s ease-in-out infinite;
}
.elemental-ward svg { width: 100%; height: 100%; overflow: visible; }
.elemental-ward path { fill: var(--element-color); fill-opacity: .08; stroke: var(--element-color); stroke-width: 1.8; stroke-linejoin: round; }
.elemental-ward .facet { fill: none; stroke-width: .8; opacity: .65; }
.elemental-ward .core { fill: none; stroke: var(--element-core); stroke-width: 1.5; }
.elemental-ward-earth { inset: 1% -3% 5%; }
.elemental-ward-fire { inset: -3% 6% 8%; mix-blend-mode: screen; animation: elemental-ward-flame 1.3s ease-in-out infinite alternate; }
.elemental-ward-fire .core { fill: var(--element-core); fill-opacity: .2; }
.elemental-ward-ice { filter: drop-shadow(0 0 8px #50cfff); }
.elemental-ward-storm { inset: -1% -6% 9%; }
.elemental-ward-storm .arc { fill: none; stroke: var(--element-core); stroke-dasharray: 15 6; animation: elemental-ward-current 1.2s linear infinite; }
.v3-compact-hero > .elemental-ward { inset: 0 8%; opacity: .5; }
@keyframes elemental-ward-breathe { 0%,100% { opacity: .46; } 50% { opacity: .8; } }
@keyframes elemental-ward-flame { from { opacity: .5; transform: scale(.97, .96); } to { opacity: .85; transform: scale(1.03, 1.04); } }
@keyframes elemental-ward-current { to { stroke-dashoffset: -42; } }
body.v3-vfx-disabled .elemental-ward { display: none; }
@media (prefers-reduced-motion: reduce) { .elemental-ward, .elemental-ward-storm .arc { animation: none; } }
