.mb-cassette-player {
    font-family: 'Righteous', cursive, sans-serif;
    color: #10493e;
    background: #f6dfda;
    padding: 20px 20px 14px;
    max-width: 420px;
    margin: 0 auto;
    text-align: center;
    border-radius: 8px;
    box-sizing: border-box;
}

.mb-cassette-title {
    font-size: 1.3em;
    letter-spacing: 4px;
    text-shadow: 2px 2px 1px #c1bbbd;
    margin: 0 0 6px;
}

.mb-cassette-alert {
    min-height: 20px;
    font-size: 0.8em;
    color: #278775;
    margin-bottom: 4px;
}

.mb-cassette-wrap {
    position: relative;
    display: block;
    width: 100%;
}

.mb-cassette-wrap svg {
    width: 100%;
    height: auto;
    display: block;
}

.mb-cassette-info {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
}

.mb-cassette-artist {
    position: absolute;
    top: 19%;
    left: 14%;
    width: 72%;
    text-align: center;
    font-size: 0.8em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin: 0;
}

.mb-cassette-song {
    position: absolute;
    top: 52%;
    left: 14%;
    width: 72%;
    text-align: center;
    font-size: 0.75em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin: 0;
}

.mb-reel-left,
.mb-reel-right {
    transform-origin: center;
    transform-box: fill-box;
}

.mb-reel-spin {
    animation: mb-cass-rotate 2s infinite linear;
}

@keyframes mb-cass-rotate {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

.mb-cassette-controls {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 10px;
}

.mb-cass-btn {
    width: 80px;
    height: 42px;
    border-radius: 8px;
    border: 1px solid #ccc;
    background: #fff;
    box-shadow: 2px 2px 3px #8d8d8d inset;
    cursor: pointer;
    font-size: 14px;
    color: #10493e;
    transition: filter 0.15s;
}

.mb-cass-btn:hover:not(:disabled) {
    filter: brightness(0.92);
}

.mb-cass-btn:disabled {
    opacity: 0.35;
    cursor: default;
}
