* { font-family: 'Inter', sans-serif; }
h1, h2, h3, h4, h5, h6 { font-family: 'Poppins', sans-serif; }
.gradient-bg { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); }
.gradient-text { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.btn-primary { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); transition: all 0.3s ease; }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(102, 126, 234, 0.4); }
.hover-scale { transition: transform 0.3s ease; }
.hover-scale:hover { transform: scale(1.05); }
.text-primary {--tw-text-opacity: 1; color: rgb(102 126 234 / var(--tw-text-opacity, 1));}

.swiper-button-next, .swiper-button-prev { color: #667eea; transition: transform 0.2s ease; }
.swiper-button-next:hover, .swiper-button-prev:hover { transform: scale(1.1); }
.dark .swiper-button-next, .dark .swiper-button-prev { color: #764ba2; }

.glass-effect { background: rgba(249, 250, 251, 0.9); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
.dark .glass-effect { background: rgba(17, 24, 39, 0.98); }
#sticky-player { transition: transform 0.3s ease, opacity 0.3s ease; box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1); }
#sticky-player.hidden { transform: translateY(100%); opacity: 0; pointer-events: none; }
.volume-control { position: relative; }
.volume-popup { position: absolute; bottom: calc(100% + 15px); left: -30px; background: rgba(255, 255, 255, 0.98); border: 1px solid rgba(229, 231, 235, 0.5); border-radius: 12px; padding: 15px 12px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); backdrop-filter: blur(20px); opacity: 0; transform: translateX(-50%) translateY(10px); transition: opacity 0.2s ease, transform 0.2s ease; pointer-events: none; display: flex; align-items: center; }
.dark .volume-popup { background: rgba(31, 41, 55, 0.98); border-color: rgba(75, 85, 99, 0.5); }
.volume-popup.active { opacity: 1; transform: translateX(-50%) translateY(0); pointer-events: auto; }
.volume-popup::after { content: ''; position: absolute; top: 90%; left: 80%; transform: translateX(-50%) rotate(45deg); width: 12px; height: 12px; background: rgba(255, 255, 255, 0.98); border-right: 1px solid rgba(229, 231, 235, 0.5); border-bottom: 1px solid rgba(229, 231, 235, 0.5); }
.dark .volume-popup::after { background: rgba(31, 41, 55, 0.98); border-color: rgba(75, 85, 99, 0.5); }
.volume-slider { -webkit-appearance: none; width: 110px; height: 4px; background: linear-gradient(to right, #667eea 0%, #667eea var(--value, 100%), rgb(209, 213, 219) var(--value, 100%), rgb(209, 213, 219) 100%); outline: none; border-radius: 4px; transition: background 0.1s ease; }
.dark .volume-slider { background: linear-gradient(to right, #323c69 0%, #667eea var(--value, 100%), rgb(75, 85, 99) var(--value, 100%), rgb(75, 85, 99) 100%); }
.volume-slider::-webkit-slider-thumb { -webkit-appearance: none; width: 14px; height: 14px; background: #fff; border-radius: 50%; cursor: pointer; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); }
.volume-slider::-moz-range-thumb { width: 14px; height: 14px; background: #fff; border-radius: 50%; cursor: pointer; border: none; }
@media (max-width: 768px) { #sticky-player { padding-bottom: env(safe-area-inset-bottom); } }
.now-playing-indicator { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100%; height: 100%; background: linear-gradient(179deg, #764ba252 0%, #667eea9c 100%); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s ease; z-index: 10; border-radius: 0.5rem; }
.track-card.playing .now-playing-indicator { opacity: 1; }
.track-card.playing { border-color: #667eea !important; box-shadow: 0 0 20px rgba(102, 126, 234, 0.4) !important; }
.track-card .fa-pause { display: none; }
.track-card.playing .fa-play { display: none; }
.track-card.playing .fa-pause { display: block; }
.playing-animation { display: flex; align-items: center; gap: 3px; height: 20px; }
.playing-bar { width: 3px; background: white; border-radius: 3px; animation: playing 0.8s ease infinite; }
.playing-bar:nth-child(1) { animation-delay: 0s; } .playing-bar:nth-child(2) { animation-delay: 0.2s; } .playing-bar:nth-child(3) { animation-delay: 0.4s; } .playing-bar:nth-child(4) { animation-delay: 0.6s; }
@keyframes playing { 0%, 100% { height: 6px; } 50% { height: 20px; } }
#sticky-player.slide-up { animation: slideUp 0.3s cubic-bezier(0.68, -0.55, 0.27, 1.55); }
@keyframes slideUp { from { transform: translateY(100%); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

.waveform-image-wrapper { position: relative; cursor: pointer; }
.waveform-image-wrapper img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; }
#waveform-progress-wrapper, #waveform-progress-wrapper-mobile, #product-waveform-progress-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    pointer-events: none;
    clip-path: inset(0 100% 0 0);
}

.instrumental-waveform-container {
    position: relative;
    cursor: pointer;
    overflow: hidden;
    border-radius: 0.5rem;
}

.instrumental-waveform-container img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    border-radius: 0.5rem;
}

.instrumental-waveform-progress-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    pointer-events: none;
    clip-path: inset(0 100% 0 0);
    border-radius: 0.5rem;
    overflow: hidden;
}

#mini-cart {
    z-index: 100;
}

#mini-cart-content::-webkit-scrollbar {
    width: 8px;
}

#mini-cart-content::-webkit-scrollbar-track {
    background: transparent;
}

#mini-cart-content::-webkit-scrollbar-thumb {
    background: #9ca3af;
    border-radius: 10px;
}

.dark #mini-cart-content::-webkit-scrollbar-thumb {
    background: #4b5563;
}

.hero-pattern {
    background-image:
        radial-gradient(circle at 20% 50%, rgba(102, 126, 234, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 80% 80%, rgba(118, 75, 162, 0.1) 0%, transparent 50%);
}
.dark .hero-pattern {
    background-image:
        radial-gradient(circle at 20% 50%, rgba(102, 126, 234, 0.15) 0%, transparent 50%),
        radial-gradient(circle at 80% 80%, rgba(118, 75, 162, 0.15) 0%, transparent 50%);
}
.floating {
    animation: floating 3s ease-in-out infinite;
}
@keyframes floating {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
}
.pulse-ring {
    animation: pulseRing 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes pulseRing {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0; transform: scale(1.5); }
}
.audio-wave {
    display: inline-block;
    width: 4px;
    height: 20px;
    background: #667eea;
    margin: 0 2px;
    animation: audioWave 1s ease-in-out infinite;
}
.audio-wave:nth-child(2) { animation-delay: 0.2s; }
.audio-wave:nth-child(3) { animation-delay: 0.4s; }
.audio-wave:nth-child(4) { animation-delay: 0.6s; }
.audio-wave:nth-child(5) { animation-delay: 0.8s; }
@keyframes audioWave {
    0%, 100% { height: 20px; }
    50% { height: 40px; }
}
.logosSwiper .swiper-wrapper {
    transition-timing-function: linear !important;
}

.sample-makers-swiper-1 .swiper-wrapper,
.sample-makers-swiper-2 .swiper-wrapper {
    transition-timing-function: linear !important;
    -webkit-transition-timing-function: linear !important;
    animation-play-state: running !important;
    -webkit-animation-play-state: running !important;
}