/* Detailed shared costume atlas, with the member's own profile photo above it. */
.person-marker.premium-avatar .torso{width:46px!important;height:84px!important;margin-top:-5px!important;background:none}
.premium-avatar .silhouette-body{width:46px!important;height:84px!important}
.premium-avatar .silhouette-body svg{width:100%;height:100%;overflow:visible}
.costume-art .costume-arm-left{transform-origin:112px 95px}
.costume-art .costume-arm-right{transform-origin:250px 95px}
.silhouette-grid:has(.premium-avatar){grid-template-columns:repeat(3,minmax(0,1fr))}
.silhouette-option:has(.premium-avatar){min-height:150px;padding:12px 4px}
.silhouette-mini.premium-avatar{min-height:122px}
.silhouette-mini.premium-avatar .head{width:35px;height:35px}
.silhouette-mini.premium-avatar .torso,.silhouette-mini.premium-avatar .silhouette-body{width:44px!important;height:80px!important}
#profileForm .character-stage:has(.premium-avatar){height:260px;padding-top:12px}
.dance-picker{margin:22px 0;padding-top:10px;border-top:1px solid var(--line)}
.dance-picker h3{font-size:18px}.dance-picker p{font-size:12px}
.dance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.dance-card{min-width:0;padding:12px 4px;border:2px solid #e7e1ec;border-radius:16px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:12px;color:var(--ink)}
.dance-card[aria-pressed=true]{border-color:#7953ad;background:#f2e9fc;box-shadow:0 0 0 1px #7953ad}
.dance-card>span:last-child{font-size:11px;line-height:1.4;font-weight:700;text-align:center}
.dance-mini{pointer-events:none;min-height:120px;width:100%;filter:none}
.dance-mini .head{width:35px;height:35px;font-size:24px}
.dance-mini:not(.premium-avatar) .torso{width:42px;height:49px}
.dance-mini:not(.premium-avatar) .silhouette-body{width:42px;height:49px}
/* Each distinct move completes once per three-second loop. */
.person-marker.dance-idle:not(.moving)[data-dance=groove] .head,.person-marker.dance-idle:not(.moving)[data-dance=groove] .torso{animation:avatar-groove 3s ease-in-out infinite}
.person-marker.dance-idle:not(.moving)[data-dance=arms] .head,.person-marker.dance-idle:not(.moving)[data-dance=arms] .torso{animation:avatar-bounce 3s ease-in-out infinite}
.person-marker.dance-idle:not(.moving)[data-dance=arms] .costume-arm-left{animation:avatar-arm-left 3s ease-in-out infinite}
.person-marker.dance-idle:not(.moving)[data-dance=arms] .costume-arm-right{animation:avatar-arm-right 3s ease-in-out infinite}
.person-marker.dance-idle:not(.moving)[data-dance=arms] .arms:before,.person-marker.dance-idle:not(.moving)[data-dance=arms] .arms:after{animation:dance-arms 3s ease-in-out infinite alternate}
.person-marker.dance-idle:not(.moving)[data-dance=spin] .head,.person-marker.dance-idle:not(.moving)[data-dance=spin] .torso{animation:avatar-spin 3s ease-in-out infinite;backface-visibility:visible}
@keyframes avatar-groove{0%,65%,100%{transform:translate(0,0) rotate(0)}15%,45%{transform:translate(-3px,-2px) rotate(-7deg)}30%,55%{transform:translate(3px,-1px) rotate(7deg)}}
@keyframes avatar-bounce{0%,60%,100%{transform:translateY(0)}20%,40%{transform:translateY(-3px)}30%,50%{transform:translateY(0)}}
@keyframes avatar-arm-left{0%,65%,100%{transform:rotate(0)}20%,45%{transform:rotate(35deg)}30%,55%{transform:rotate(12deg)}}
@keyframes avatar-arm-right{0%,65%,100%{transform:rotate(0)}20%,45%{transform:rotate(-35deg)}30%,55%{transform:rotate(-12deg)}}
@keyframes avatar-spin{0%,15%{transform:rotateY(0deg) translateY(0)}50%{transform:rotateY(180deg) translateY(-3px)}80%,100%{transform:rotateY(360deg) translateY(0)}}
@media(prefers-reduced-motion:reduce){.person-marker .head,.person-marker .torso,.person-marker .costume-arm,.person-marker .arms:before,.person-marker .arms:after{animation:none!important}}
