/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background: #f5f5f4; 
}
::-webkit-scrollbar-thumb {
    background: #d6d3d1; 
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: #D4AF37; 
}

/* Animation Utilities */
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(40px);
    transition: all 1s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Line Clamp */
.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Audio Range Input */
input[type=range] {
    -webkit-appearance: none;
    background: transparent;
}
input[type=range]::-webkit-slider-thumb {
    -webkit-appearance: none;
    height: 12px;
    width: 12px;
    border-radius: 50%;
    background: #D4AF37;
    cursor: pointer;
    margin-top: -5px; 
}
input[type=range]::-webkit-slider-runnable-track {
    width: 100%;
    height: 2px;
    cursor: pointer;
    background: #e7e5e4;
}

/* Catalog Modal Styles */
.catalog-filter-btn {
    border-bottom: 2px solid transparent;
    color: #78716c;
}
.catalog-filter-btn.active {
    border-bottom-color: #D4AF37;
    color: #0C0C0C;
}
.catalog-filter-btn:hover {
    color: #D4AF37;
}

.chamber-subcat-btn {
    background-color: white;
    color: #78716c;
    border: 1px solid #e7e5e4;
}
.chamber-subcat-btn.active {
    background-color: #D4AF37;
    color: white;
    border-color: #D4AF37;
}
.chamber-subcat-btn:hover {
    border-color: #D4AF37;
}

.opus-sort-btn {
    background-color: white;
    color: #78716c;
    border: 1px solid #e7e5e4;
}
.opus-sort-btn.active {
    background-color: #D4AF37;
    color: white;
    border-color: #D4AF37;
}
.opus-sort-btn:hover {
    border-color: #D4AF37;
}

.instrument-filter-btn {
    background-color: white;
    color: #78716c;
    border: 1px solid #e7e5e4;
}
.instrument-filter-btn.active {
    background-color: #D4AF37;
    color: white;
    border-color: #D4AF37;
}
.instrument-filter-btn:hover {
    border-color: #D4AF37;
}

/* Fade In Animation */
@keyframes fadeIn {
    from { opacity: 0; transform: scale(0.95); }
    to { opacity: 1; transform: scale(1); }
}