.m-wrap{--fx:#d8b76e}.m-wrap.fx-major{--fx:#e4c06d}.m-wrap.fx-wands{--fx:#e26e35}.m-wrap.fx-cups{--fx:#55b5d7}.m-wrap.fx-swords{--fx:#b9d8e5}.m-wrap.fx-pentacles{--fx:#8fc477}
.m-card-fx{position:absolute;inset:-22px;pointer-events:none;z-index:-1;opacity:0;transition:opacity .35s}.m-wrap.open .m-card-fx{opacity:1}.m-card-fx:before{content:"";position:absolute;inset:9%;border:1px solid color-mix(in srgb,var(--fx) 65%,transparent);border-radius:50%;filter:drop-shadow(0 0 8px var(--fx));animation:fxOrbit 4s linear infinite}.m-card-fx:after{content:"";position:absolute;inset:20%;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--fx) 28%,transparent),transparent 68%);animation:fxBreathe 1.5s ease-in-out infinite alternate}
.m-fx-dot{position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:50%;background:var(--fx);box-shadow:0 0 8px var(--fx);opacity:0}.m-wrap.open .m-fx-dot{animation:fxBurst 1.25s ease-out var(--d) both}
.fx-wands .m-fx-dot{border-radius:70% 30% 70% 30%;transform:rotate(45deg)}.fx-cups .m-fx-dot{width:4px;height:8px;border-radius:60% 60% 70% 70%}.fx-swords .m-fx-dot{width:18px;height:2px;border-radius:0}.fx-pentacles .m-fx-dot{width:7px;height:7px;clip-path:polygon(50% 0,62% 35%,100% 38%,70% 60%,79% 100%,50% 76%,21% 100%,30% 60%,0 38%,38% 35%)}.fx-major .m-card-fx:before{inset:3%;border-style:double;box-shadow:0 0 0 9px color-mix(in srgb,var(--fx) 8%,transparent)}
.m-wrap.role-past .m-position{color:#82a9bf}.m-wrap.role-now .m-position{color:#e1c276;text-shadow:0 0 9px rgba(225,194,118,.45);animation:rolePulse 1.2s ease-in-out infinite alternate}.m-wrap.role-future .m-position{color:#c79bcf}.m-wrap.role-past{filter:saturate(.82)}.m-wrap.role-future .m-face{box-shadow:0 18px 42px rgba(132,77,143,.2),0 18px 40px rgba(0,0,0,.52)}
@keyframes fxOrbit{to{transform:rotate(360deg)}}@keyframes fxBreathe{to{transform:scale(1.18);opacity:.5}}@keyframes fxBurst{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}18%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(1.35)}}@keyframes rolePulse{to{opacity:.55}}
@media(prefers-reduced-motion:reduce){.m-card-fx:before,.m-card-fx:after,.m-fx-dot,.role-now .m-position{animation-duration:.01ms!important}}
