.smolc-bgm-player-container {
    padding: .5em;
    position: fixed;
    top: 0;
    left: 0;
    display: flex;
    flex-direction: column;
}

.smolc-bgm-player-container .smolc-bgm-player.smolc-active-bgm-player {
    display: unset;
}

.smolc-bgm-player-container .smolc-bgm-player {
    display: none;
    position: relative;
    filter: drop-shadow(0.1em 0.2em 0.2em black);
}

.smolc-bgm-play-stop-button.smolc-button:hover {
    filter: none !important;
}

.smolc-bgm-player-container .smolc-bgm-play-stop-button {
    border-radius: 50%;
    position: relative;
    aspect-ratio: 1 / 1;
    width: 3ch;
    box-sizing: content-box;
    border-width: 0.5em;
    box-shadow: 0 0.1em .5em black;
}

.smolc-bgm-play-stop-button .smolc-bgm-player-disc {
    --smolc-disc-radius: 8em;
    width: calc(var(--smolc-disc-radius) * 2);
    aspect-ratio: 1 / 1;
    position: absolute;
    top: calc(50% - var(--smolc-disc-radius));
    left: calc(50% - var(--smolc-disc-radius));
    background-color: black;
    border-radius: 50%;
    z-index: -1;
    border: 0.1em solid black;
    background-size: cover;
    background-position: center;
    transform-origin: center center;
}

.smolc-bgm-playing-button .smolc-bgm-player-disc,
.smolc-bgm-paused-button .smolc-bgm-player-disc {
    animation-name: smolc-disc-rotation, none;
    animation-duration: 31s, 0.35s;
    animation-iteration-count: infinite, 1;
    animation-direction: normal, normal;
    animation-timing-function: linear, ease-out;
}

.smolc-bgm-play-stop-button.smolc-bgm-paused-button .smolc-bgm-player-disc {
    animation-name: smolc-disc-rotation, smolc-disc-stop-rotation;
    animation-play-state: paused, running;
    animation-fill-mode: none, forwards;
}

@keyframes smolc-disc-stop-rotation {
    to {
        transform: rotate(0deg);
    }
}

@keyframes smolc-disc-rotation {
    0% {
        transform: rotate(0deg);
    }

    50% {
        transform: rotate(180deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

.smolc-bgm-player-metadatas-wrapper {
    position: absolute;
    top: calc(50% - 2lh);
    left: 50%;
    width: 25ch;
    overflow-x: hidden;
    display: flex;
    justify-content: center;
    flex-direction: column;
    padding: 0 1em 0 3em;
    background-color: black;
    border: 0.2em ridge silver;
    height: 4lh;
    box-sizing: border-box;
    z-index: -1;
    border-top-right-radius: 1em 50%;
    border-bottom-right-radius: 1em 50%;
}

.smolc-bgm-player-metadatas-wrapper>span {
    /* width - padding - borders */
    --smolc-wrapper-inner-width: calc(25ch - 4em - 0.4em);
    width: max-content;
    min-width: 100%;
    animation-name: smolc-horizontal-text-shifting;
    animation-duration: 20s;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-timing-function: linear;
}

@keyframes smolc-horizontal-text-shifting {
    0% {
        transform: translateX(0);
    }

    15% {
        transform: translateX(0);
    }

    90% {
        transform: translateX(calc(-100% + var(--smolc-wrapper-inner-width)));
    }

    100% {
        transform: translateX(calc(-100% + var(--smolc-wrapper-inner-width)));
    }
}