:root {
    --player-background: #cfd7ff;
    --player-thumb: #212121;
    --player-track: #ccc;

    --player-playing-shadow: #f887ff;
    --player-playing-border: #ff00ff;
}

.player {
    position: fixed;
    z-index: 1;
    height: 2.5rem;
    min-width: 400px;
    max-width: 550px;
    width: 50vw;
    align-self: center;
    user-select: none;

    bottom: -3rem;
    opacity: 0;
    visibility: hidden;
    transition: bottom .5s ease-in-out, opacity .5s, visibility .5s;
}
.player.active {
    bottom: 0;
    opacity: 1;
    visibility: visible;
}
    .player .controls {
        display: flex;
        align-items: center;
        background-color: var(--player-background);
        border-radius: .5rem .5rem 0 0;
        padding: .2rem 1rem;

        width: 100%;
        height: 100%;
    }
        .player .controls > * {
            margin-left: .5rem;
            margin-right: .5rem;
        }
        .player .controls > *:first-child { margin-left: 0; }
        .player .controls > *:last-child { margin-right: 0; }
        .player .time, .player.duration {
            min-width: 3rem;
        }
        .player .button {
            min-width: 1.3rem;
            min-height: 1.3rem;
            max-width: 1.3rem;
            max-height: 1.3rem;
            width: 1.3rem;
            height: 1.3rem;
            fill: var(--control-enabled);
            transition: fill .15s;
            cursor: pointer;
            display: block;
        }
            .player .button:hover {
                fill: var(--control-selected);
            }
            .player .button.disabled {
                display: none;
            }
    .player .slider {
        outline: none;

        flex: 1;
        min-height: 2rem;
        height: 2rem;
        max-height: 2rem;
        min-width: 4rem;
        display: flex;
        align-items: center;
    }


    .player .bar {
        position: absolute;
        z-index: -9;
        background-color: var(--player-background);
        border-radius: 1rem 1rem 0 0;
        margin: 0;
        display: flex;
        align-items: center;
    }
        .player .bar.active {
            bottom: 2.5rem;
        }

    .player .volume-bar {
        left: 2.85rem;
        width: 2rem;
        height: 6rem;
        padding: .7rem .1rem .3rem .1rem;
        bottom: -3.5rem;

        flex-direction: column;
        transition: bottom .5s ease-in-out;
    }
        .player .volume-bar .volume-slider {
            transform: rotate(270deg);
            min-width: 5rem;
            width: 5rem;
            max-width: 5rem;
            margin-top: 1.5rem;
        }

    .player .speed-bar {
        right: 3.3rem;
        width: 12.25rem;
        height: 2rem;
        padding: .5rem .8rem .2rem .8rem;
        bottom: 0;

        justify-content: center;
        transition: bottom .5s ease-in-out;
    }
        .player .speed-bar .current-speed {
            text-align: right;
            min-width: 3rem; width: 3rem; max-width: 3rem;
            margin-right: .5rem;
        }
        .player .speed-bar .speed-slider {
            margin-right: 1rem;
            min-width: 5rem; width: 5rem; max-width: 5rem;
        }
