/* Song detail page */
.song-detail-hero {
    background:
        linear-gradient(165deg, rgba(45, 10, 49, 0.97) 0%, rgba(45, 10, 49, 0.88) 55%, rgba(166, 139, 91, 0.35) 100%);
    position: relative;
    overflow: hidden;
}

.song-detail-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 20% 10%, rgba(166, 139, 91, 0.18) 0%, transparent 45%),
        radial-gradient(circle at 80% 90%, rgba(255, 255, 255, 0.06) 0%, transparent 40%);
    pointer-events: none;
}

.song-detail-hero-inner {
    position: relative;
    z-index: 1;
}

.song-detail-breadcrumb a {
    color: rgba(255, 255, 255, 0.65);
    transition: color 0.15s ease;
}

.song-detail-breadcrumb a:hover {
    color: #e8d5b5;
}

.song-detail-breadcrumb span {
    color: rgba(255, 255, 255, 0.35);
}

.song-detail-score {
    box-shadow: 0 20px 50px rgba(45, 10, 49, 0.18), 0 4px 12px rgba(45, 10, 49, 0.08);
}

.song-detail-score-placeholder {
    background: linear-gradient(145deg, #f8f5fa 0%, #ede8f0 100%);
}

.song-detail-stat {
    backdrop-filter: blur(6px);
}

.song-detail-lyrics-panel {
    background: linear-gradient(180deg, #ffffff 0%, #fdfbf8 100%);
    box-shadow: 0 4px 24px rgba(45, 10, 49, 0.06);
}

.song-detail-lyrics-panel::before {
    content: "";
    position: absolute;
    left: 0;
    top: 1.5rem;
    bottom: 1.5rem;
    width: 4px;
    border-radius: 999px;
    background: linear-gradient(180deg, #a68b5b 0%, rgba(166, 139, 91, 0.35) 100%);
}

.song-detail-lyrics-inner {
    padding-left: 0.5rem;
}

.song-detail-section-label {
    letter-spacing: 0.14em;
}

.song-detail-comment-avatar {
    background: linear-gradient(135deg, rgba(45, 10, 49, 0.12) 0%, rgba(166, 139, 91, 0.25) 100%);
}

.song-detail-nav {
    position: sticky;
    top: 3.5rem;
    z-index: 40;
}

@media (min-width: 768px) {
    .song-detail-nav {
        top: 4rem;
    }
}

.song-detail-page [id] {
    scroll-margin-top: 8.5rem;
}

@media (min-width: 768px) {
    .song-detail-page [id] {
        scroll-margin-top: 9rem;
    }
}

@media (min-width: 1024px) {
    .song-detail-aside {
        position: sticky;
        top: 6.5rem;
    }
}

@media (prefers-reduced-motion: no-preference) {
    .song-detail-fade {
        animation: songDetailFade 0.45s ease-out;
    }

    @keyframes songDetailFade {
        from {
            opacity: 0;
            transform: translateY(10px);
        }
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
}

.song-detail-midi-player__engine {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.song-detail-midi-play-btn__icon {
    position: relative;
    z-index: 1;
    display: inline-flex;
}

.song-detail-midi-play-btn__pulse {
    opacity: 0;
    transform: scale(1);
    background: rgba(166, 139, 91, 0.25);
    transition: opacity 0.2s ease;
}

.song-detail-midi-player.is-playing .song-detail-midi-play-btn {
    background: #A68B5B;
}

.song-detail-midi-play-btn__icon--pause {
    display: none;
}

.song-detail-midi-equalizer {
    display: none;
}

.song-detail-midi-player.is-playing .song-detail-midi-play-btn__icon--play {
    display: none;
}

.song-detail-midi-player.is-playing .song-detail-midi-play-btn__icon--pause {
    display: inline-flex !important;
}

.song-detail-midi-player.is-playing .song-detail-midi-play-btn__pulse {
    opacity: 1;
    animation: midiPulse 1.6s ease-out infinite;
}

.song-detail-midi-player.is-playing .song-detail-midi-equalizer {
    display: flex;
}

.song-detail-midi-equalizer span {
    display: block;
    width: 4px;
    height: 18px;
    border-radius: 999px;
    background: #A68B5B;
    animation: midiBar 0.9s ease-in-out infinite;
}

.song-detail-midi-equalizer span:nth-child(2) {
    animation-delay: 0.15s;
}

.song-detail-midi-equalizer span:nth-child(3) {
    animation-delay: 0.3s;
}

.song-detail-midi-equalizer span:nth-child(4) {
    animation-delay: 0.45s;
}

@keyframes midiPulse {
    0% {
        transform: scale(1);
        opacity: 0.45;
    }
    70% {
        transform: scale(1.35);
        opacity: 0;
    }
    100% {
        transform: scale(1.35);
        opacity: 0;
    }
}

@keyframes midiBar {
    0%, 100% {
        transform: scaleY(0.45);
    }
    50% {
        transform: scaleY(1);
    }
}
