/* Anchor boxes retain the host's layout and hit targets; one performer draws it. */
.kanshan-motion-anchor{opacity:0!important;animation:none!important;transition:none!important;filter:none!important}
.kanshan-performer{position:fixed;margin:0;pointer-events:none;contain:layout style;isolation:isolate;overflow:visible}
.kanshan-performer[hidden]{display:none!important}
.kanshan-performer__reveal,.kanshan-performer__facing,.kanshan-rig{width:100%;height:100%;display:block;overflow:visible}
.kanshan-performer__reveal{transform-origin:50% 51%;filter:drop-shadow(0 5px 9px #69c8ee20)}
.kanshan-performer__fx{position:absolute;inset:0;opacity:0;pointer-events:none}
.kanshan-performer__fx i,.kanshan-performer__fx b{position:absolute;left:2%;top:38%;width:96%;height:25%;border:1px solid #b9f5ff;border-radius:50%;box-shadow:0 0 12px #7bdaff66,inset 0 0 7px #74d6ff22}
.kanshan-performer__fx b{top:35%;transform:rotate(-36deg);opacity:.5}
.kanshan-performer__fx span{position:absolute;left:50%;top:48%;width:3px;height:3px;border-radius:50%;background:#f0feff;box-shadow:-32px -18px #8bddff,25px -33px #e2fbff,42px 6px #b1eeff,-20px 35px #c9f5ff,14px 29px #8acff9,-41px 7px #e9fdff;transform:scale(.5)}
.kanshan-performer[data-phase=out] .kanshan-performer__reveal{animation:kanshan-dissolve 160ms ease-in both}
.kanshan-performer[data-phase=gap] .kanshan-performer__reveal{opacity:0;transform:scale(.82);filter:none}
.kanshan-performer[data-phase=out] .kanshan-performer__fx{animation:kanshan-ring-out 160ms ease-out both}
.kanshan-performer[data-phase=gap] .kanshan-performer__fx{opacity:0}
.kanshan-performer[data-phase=in] .kanshan-performer__reveal{animation:kanshan-materialize 320ms cubic-bezier(.16,1,.3,1) both}
.kanshan-performer[data-phase=in] .kanshan-performer__fx{animation:kanshan-ring-in 320ms ease-out both}
.kanshan-performer[data-phase=in] .kanshan-performer__fx span{animation:kanshan-sparks 320ms ease-out both}
@keyframes kanshan-dissolve{0%{opacity:1;transform:scale(1)}65%{opacity:.24;filter:drop-shadow(0 0 7px #b3f0ff);transform:scale(.94)}100%{opacity:0;transform:scale(.82)}}
@keyframes kanshan-materialize{0%{opacity:0;transform:scale(.86)}60%{opacity:.9;transform:scale(1.018)}100%{opacity:1;transform:scale(1)}}
@keyframes kanshan-ring-out{0%{opacity:0;transform:scale(1.1)}45%{opacity:.85}100%{opacity:0;transform:scale(.42)}}
@keyframes kanshan-ring-in{0%{opacity:0;transform:scale(.45)}25%{opacity:.8}100%{opacity:0;transform:scale(1.25)}}
@keyframes kanshan-sparks{0%{opacity:0;transform:scale(.3)}30%{opacity:.9}100%{opacity:0;transform:scale(1.35)}}
.kanshan-performer[data-quiet=true] .kanshan-performer__reveal{animation:none!important;transform:none!important;opacity:1!important}
.kanshan-performer[data-quiet=true] .kanshan-performer__fx{display:none}
@media(prefers-reduced-motion:reduce){.kanshan-performer *{animation:none!important}.kanshan-performer__fx{display:none}}
