/* 基础旋转 - 顺时针360度 */
.rotate {
    animation: rotate 2s linear infinite;
}

@keyframes ds-rotate {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}


@keyframes ds-swingRotate {
    0% {
        transform: rotate(-15deg);
    }
    100% {
        transform: rotate(15deg);
    }
}


@keyframes ds-blink {
    0%, 50% {
        opacity: 1;
    }
    50.1%, 100% {
        opacity: 0;
    }
}


@keyframes ds-pulse {
    0% {
        opacity: 1;
        transform: scale(1);
    }
    50% {
        opacity: 0.3;
        transform: scale(0.95);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}


@keyframes ds-slideHorizontal {
    from {
        transform: translateX(-20px);
    }
    to {
        transform: translateX(20px);
    }
}


@keyframes ds-float {
    from {
        transform: translateY(0);
    }
    to {
        transform: translateY(-15px);
    }
}


@keyframes ds-moveAround {
    0% {
        transform: translate(0, 0);
    }
    25% {
        transform: translate(50px, 0);
    }
    50% {
        transform: translate(50px, 50px);
    }
    75% {
        transform: translate(0, 50px);
    }
    100% {
        transform: translate(0, 0);
    }
}