body {
    margin: 0;
    font-family: sans-serif;
    background-color: #f0f0f000;
    overflow: hidden;
}

.player-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    width: 100vw;
    background-size: cover;
    background-position: center;
}

.stem-player {
    display: flex;
    height: 100vh;
    width: 100%;
}

.stem-buttons-container {
    display: flex;
    height: 100%;
    width: 100%;
}

.stem-button {
    flex: 1;
    height: 100%;
    cursor: pointer;
    transition: background-color 0.4s ease-in-out;
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    mask: linear-gradient(to bottom, transparent 0%, black 5%, black 100%);
    -webkit-mask: linear-gradient(to bottom, transparent 0%, black 5%, black 100%);
}

.hanwurli-button { background-color: #fbd7dd; }
.hansynth-button { background-color: #FFADBD; }
.handrums-button { background-color: #F07E91; }
.hanbass-button { background-color: #F0BDC5; }
.hanpiano-button { background-color: #FFD5DC; }
.hanperc-button { background-color: #FF989D; }
.handm-button { background-color: #fbc9c7; }
.hanvox-button { background-color: #fac0c0; }

.stem-button.active {
    border: 3px solid rgb(255, 0, 0) !important; 
}

.stem-button:hover::after{
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 150px;
    background: linear-gradient(to bottom, rgb(255, 255, 255), rgba(240, 240, 240, 0));
    pointer-events: none;
    z-index: 10;
}

.stem-button img {
    width: 30px;
    height: 30px;
    object-fit: contain;
    opacity: 0.7;
    transition: opacity 0.3s ease;
    padding-bottom: 40px;
}

.stem-button:hover img {
    opacity: 1;
}

.stem-button.active img {
    opacity: 1;
    filter: brightness(1.2);
}

@media only screen and (max-width: 600px) {
    .player-container {
        display: flex;
        flex-direction: row;
        width: 100vh;
        height: 100vw;
        position: fixed;
        top: 0;
        left: 0;
        transform: rotate(90deg) translateY(-100vw);
        transform-origin: top left;
    }

    .stem-player {
        display: flex;
        flex-direction: row;
        height: 100%;
        width: 100%;
    }

    .stem-buttons-container {
        display: flex;
        flex-direction: row;
        height: 100%;
        width: 100%;
    }

    .stem-button {
        flex: 1;
        display: flex;
        align-items: start;
        justify-content: center;
        height: 100%;
        width: 100%;
        mask: linear-gradient(to left, transparent 0%, black 5%, black 100%); 
        -webkit-mask: linear-gradient(to left, transparent 0%, black 5%, black 100%);
    }

    .stem-button img {
        transform: rotate(-90deg);
        width: 30px;
        height: 30px;
        object-fit: contain;
        opacity: 0.7;
        transition: opacity 0.3s ease;
        padding-bottom: 0;
        padding-right: 20px;
    }
}