@keyframes ss-twinkle{0%,100%{opacity:.2;transform:scale(.75)}50%{opacity:1;transform:scale(1.12)}}
@keyframes ss-shine{from{transform:translateX(-130%) skewX(-18deg)}to{transform:translateX(260%) skewX(-18deg)}}
@keyframes ss-press{0%{transform:scale(1)}35%{transform:scale(.96)}100%{transform:scale(1)}}
@keyframes ss-glow{0%,100%{filter:drop-shadow(0 0 2px rgba(143,179,228,.25))}50%{filter:drop-shadow(0 0 8px rgba(143,179,228,.75))}}
@keyframes ss-float{0%,100%{transform:translate(0,0)}25%{transform:translate(6px,-10px)}50%{transform:translate(-4px,-18px)}75%{transform:translate(-8px,-6px)}}
@keyframes ss-drift{from{transform:translateY(0)}to{transform:translateY(-14px)}}
.ss-anim [data-ss-anim]{animation:none!important}
@media (prefers-reduced-motion:reduce){[data-ss-anim]{animation:none!important}}
@keyframes ss-orbit-precess{0%{transform:rotate(-9deg)}50%{transform:rotate(9deg)}100%{transform:rotate(-9deg)}}
@keyframes ss-orbit-run{from{offset-distance:0%}to{offset-distance:100%}}
/* 路徑的前半圈是近側（星球前面），後半圈是遠側（星球背面）。
   step-end：在正中間那一刻直接換手，不要淡入淡出——淡的話兩顆會同時看得見 */
@keyframes ss-orbit-face-front{0%{opacity:1}50%{opacity:0}100%{opacity:0}}
@keyframes ss-orbit-face-back{0%{opacity:0}50%{opacity:1}100%{opacity:1}}
