.eib-rotating-badge-wrap {
    display: flex;
    width: 100%;
    justify-content: center;
}

.eib-rotating-badge {
    --eib-size: 170px;
    --eib-speed: 12s;
    --eib-direction: normal;
    --eib-bg: transparent;
    --eib-border-color: #fff;
    --eib-border-width: 1px;
    --eib-border-inset: 7%;
    --eib-icon-size: 38px;
    --eib-icon-color: #fff;

    position: relative;
    width: var(--eib-size);
    max-width: 100%;
    aspect-ratio: 1 / 1;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--eib-bg);
    isolation: isolate;
}

.eib-rotating-badge::before {
    content: "";
    position: absolute;
    inset: var(--eib-border-inset);
    border: var(--eib-border-width) solid var(--eib-border-color);
    border-radius: 50%;
    pointer-events: none;
    z-index: 1;
}

.eib-rotating-badge--no-border::before {
    display: none;
}

.eib-rotating-badge__ring {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    overflow: visible !important;
    transform-origin: 50% 50%;
    animation-name: eib-rotating-badge-spin;
    animation-duration: var(--eib-speed);
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-direction: var(--eib-direction);
    will-change: transform;
    z-index: 2;
}

.eib-rotating-badge__text {
    fill: #fff;
    dominant-baseline: middle;
}

.eib-rotating-badge--uppercase .eib-rotating-badge__text {
    text-transform: uppercase;
}

.eib-rotating-badge__icon {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: var(--eib-icon-size);
    height: var(--eib-icon-size);
    display: grid;
    place-items: center;
    pointer-events: none;
    z-index: 3;
}

.eib-rotating-badge__icon img,
.eib-rotating-badge__icon svg,
.eib-rotating-badge__icon-mask {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
}

.eib-rotating-badge__icon img {
    object-fit: contain;
}

.eib-rotating-badge__icon-mask {
    background: var(--eib-icon-color);
    -webkit-mask-image: var(--eib-icon-image);
    mask-image: var(--eib-icon-image);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
}

.eib-rotating-badge--pause-hover:hover .eib-rotating-badge__ring {
    animation-play-state: paused;
}

@keyframes eib-rotating-badge-spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .eib-rotating-badge__ring {
        animation: none !important;
    }
}
