.dots-spinner {
    --d: 11px;
    width: calc(2 * var(--d));
    height: calc(2 * var(--d));
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

.dots-spinner::before {
    content: '';
    width: 2px;
    height: 2px;
    border-radius: 50%;
    color: #7656e8;
    opacity: 0.8;
    box-shadow: 
        /* calc(1 * var(--d)) calc(0 * var(--d)) 0 0px, */
        calc(0.707 * var(--d)) calc(0.707 * var(--d)) 0 0.1px,
        calc(0 * var(--d)) calc(1 * var(--d)) 0 0.4px,
        calc(-0.707 * var(--d)) calc(0.707 * var(--d)) 0 0.6px,
        calc(-1 * var(--d)) calc(0 * var(--d)) 0 0.7px,
        calc(-0.707 * var(--d)) calc(-0.707 * var(--d)) 0 0.9px,
        calc(0 * var(--d)) calc(-1 * var(--d)) 0 1.1px,
        calc(0.707 * var(--d)) calc(-0.707 * var(--d)) 0 1.3px;
    animation: l27 1s infinite steps(8);
}

@keyframes l27 {
    100% {
        transform: rotate(1turn);
    }
}
