/* The circle stays behind the portrait and cannot intercept its celebration click. */
.home-spell-circle{position:absolute;left:50%;top:82%;width:115px;height:115px;transform:translate(-50%,-50%) scaleY(.32);pointer-events:none;z-index:0;opacity:.8}
.home-spell-circle svg{width:100%;height:100%;overflow:visible}
.character-stage .home-equipped-wizard,.fh-stage .home-equipped-wizard{z-index:1}
.fh-stage{position:relative}.fh-stage .home-equipped-wizard{position:relative!important}
.summon-outer,.summon-inner{transform-origin:70px 70px;animation:summon-rotate 32s linear infinite}
.summon-inner{animation-direction:reverse;animation-duration:24s;opacity:.6}
.summon-element{display:none}
[data-element=fire]>.summon-fire{display:inline}
.home-spell-circle[data-element=fire] .summon-fire,.home-spell-circle[data-element=water] .summon-water,.home-spell-circle[data-element=wind] .summon-wind,.home-spell-circle[data-element=earth] .summon-earth{display:inline}
.summon-flames{transform-box:fill-box;transform-origin:center bottom;animation:summon-flicker 1.7s ease-in-out infinite alternate}
.summon-rise{animation:summon-rise 4s ease-out infinite}
.summon-tide,.summon-rocks{animation:summon-drift 4.5s ease-in-out infinite}
.summon-gust{stroke-dasharray:85 25 10 20;animation:summon-gust 8s linear infinite}
.summon-pulse{animation:summon-glow 3s ease-in-out infinite}
@keyframes summon-rotate{to{transform:rotate(360deg)}}
@keyframes summon-flicker{from{transform:scale(.9,.85);opacity:.55}to{transform:scale(1.05,1.08);opacity:1}}
@keyframes summon-rise{0%{transform:translateY(5px);opacity:0}25%{opacity:1}100%{transform:translate(2px,-15px);opacity:0}}
@keyframes summon-drift{0%,100%{transform:translateY(1px)}50%{transform:translateY(-4px)}}
@keyframes summon-gust{to{stroke-dashoffset:-280}}
@keyframes summon-glow{0%,100%{opacity:.35}50%{opacity:1}}
body.element-title-paused .home-spell-circle *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.home-spell-circle *{animation:none!important}}
html[data-motion=gentle] .home-spell-circle *,body.gentle-motion .home-spell-circle *{animation:none!important}
/* Static character platform; retain selected-element colors and artwork. */
.home-spell-circle *{animation:none!important;transition:none!important}

/* Verdant replaces geometric runes with a living rose-and-vine wreath. */
.home-spell-circle[data-element=verdant] .summon-verdant{display:inline}
.home-spell-circle[data-element=verdant]>.summon-outer,.home-spell-circle[data-element=verdant] .summon-outer,.home-spell-circle[data-element=verdant] .summon-inner{display:none}
