/* XINGYU_INTERACTION_MOTION_V38
   仅覆盖互动、脚底阴影与点击摇摆层；不修改人物尺寸、站位边界或页面比例。 */
.player{
    isolation:isolate;
}
.player::before{
    left:var(--xingyu-shadow-left,50%) !important;
    top:var(--xingyu-shadow-top,92%) !important;
    width:var(--xingyu-shadow-width,68%) !important;
    height:max(10px,8%) !important;
    min-height:10px !important;
    z-index:1 !important;
    opacity:.9 !important;
    background:radial-gradient(ellipse at center,
        rgba(5,12,20,.68) 0%,
        rgba(8,17,28,.48) 35%,
        rgba(12,23,37,.25) 61%,
        rgba(12,23,37,0) 82%) !important;
    filter:blur(2.1px) !important;
    mix-blend-mode:multiply;
}
.player > .player-visual{ position:absolute; z-index:2; }
.player > .player-name-row{ z-index:100; }

/* 不影响 left/top：只扭动视觉层，避开 iPhone Safari 为人物外层保留的合成 transform。
   QQ 秀的所有图层都在 player-visual 内，因此普通、VIP 和钻石装扮会完整一起运动。 */
.player.xingyu-player-sway > .player-visual{
    transform-origin:50% 88%;
    animation:xingyuPlayerClickSway .58s cubic-bezier(.22,.77,.28,1) both;
    will-change:transform;
}
@keyframes xingyuPlayerClickSway{
    0%{transform:translateX(0) rotate(0deg)}
    18%{transform:translateX(-2px) rotate(-4.2deg)}
    38%{transform:translateX(2px) rotate(4.2deg)}
    58%{transform:translateX(-1px) rotate(-2.6deg)}
    78%{transform:translateX(1px) rotate(1.7deg)}
    100%{transform:translateX(0) rotate(0deg)}
}
@media (prefers-reduced-motion: reduce){
    .player.xingyu-player-sway > .player-visual{ animation-duration:.18s; }
}
