body {
background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab);
background-size: 400% 400%;
animation: gradient 15s ease infinite;
min-height: 100vh;
color: #fff;
text-shadow: 0 1px 2px rgba(0,0,0,0.2);
}
@keyframes gradient {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}
.glass-effect {
background: rgba(255, 255, 255, 0.08);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border: 1px solid rgba(255, 255, 255, 0.1);
}
.step-circle {
width: 40px;
height: 40px;
transition: all 0.3s ease;
border: 2px solid rgba(255,255,255,0.3);
}
.step-circle.active {
background: rgba(255, 255, 255, 0.15);
border-color: #ffffff;
}
.form-input {
background: rgba(255,255,255,0.05);
border: 1px solid rgba(255,255,255,0.1);
transition: all 0.3s ease;
}
.form-input:focus {
background: rgba(255,255,255,0.1);
border-color: rgba(255,255,255,0.3);
}
#sizePopup {
position: fixed;
min-width: 260px;
left: 0;
top: 0;
transform: none !important;
z-index: 1000;
display: none;
}
#sizePopup.glass-effect {
border-radius: 14px;
box-shadow: 0 8px 32px rgba(0,0,0,0.1);
}
.download-glow {
background: linear-gradient(45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab);
background-size: 400% 400%;
animation: gradient 15s ease infinite, pulse 2s ease;
}
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.05); }
100% { transform: scale(1); }
}
.download-glow:hover {
animation: gradient 15s ease infinite, pulse 2s ease infinite;
}
/* Cyberpunk design for AI functions ONLY */
.ai-cyberpunk {
border: 2px solid #00ffcc;
background: rgba(0, 0, 0, 0.8);
padding: 20px;
border-radius: 10px;
box-shadow: 0 0 20px rgba(0, 255, 255, 0.5);
animation: neonFlicker 1.2s infinite alternate;
}
@keyframes neonFlicker {
from { filter: brightness(1); }
to { filter: brightness(1.2); }
}
.fancy-ai {
animation: neonGlow 1.5s ease-in-out infinite alternate;
border: 2px solid #00FFFF;
}
@keyframes neonGlow {
0% { box-shadow: 0 0 10px #00FFFF; }
100% { box-shadow: 0 0 20px #00FFFF; }
}
.fancy-ai-query {
font-family: 'Roboto Mono', monospace;
border: 2px solid #00FFFF;
box-shadow: 0 0 12px rgba(0, 255, 255, 0.5);
transition: box-shadow 0.3s ease-in-out;
}
.fancy-ai-query:focus {
box-shadow: 0 0 20px rgba(0, 255, 255, 0.8);
}
/* Progress bar for AI loading */
@keyframes progressGlow {
0% { box-shadow: 0 0 5px #00ffff; }
50% { box-shadow: 0 0 20px #00ffff; }
100% { box-shadow: 0 0 5px #00ffff; }
}
#aiProgressBar {
background: rgba(255,255,255,0.1);
border-radius: 4px;
}
#aiProgress {
background: linear-gradient(90deg, #00ffff, #ff00ff);
animation: progressGlow 1.5s infinite;
}
.year-edit-input {
width: 4rem;
padding: 2px;
border-radius: 4px;
border: none;
text-align: center;
}
.year-edit-btn {
background: none;
border: none;
color: #fbbf24;
cursor: pointer;
}
.tooltip {
position: relative;
display: inline-block;
border-bottom: 1px dotted #00ffff;
}
.tooltip .tooltiptext {
visibility: hidden;
width: 300px;
background-color: rgba(0, 0, 0, 0.9);
color: #fff;
text-align: center;
border-radius: 6px;
padding: 8px;
position: absolute;
z-index: 1;
bottom: 125%;
left: 50%;
margin-left: -150px;
opacity: 0;
transition: opacity 0.3s;
font-size: 14px;
pointer-events: none;
}
.tooltip:hover .tooltiptext {
visibility: visible;
opacity: 1;
}
/* Fade-in animation for step content */
.step-content {
animation: fadeIn 0.5s ease forwards;
opacity: 0; /* starts invisible before animation */
transform: translateY(15px);
}
@keyframes fadeIn {
0% {
opacity: 0;
transform: translateY(15px);
}
100% {
opacity: 1;
transform: translateY(0);
}
}


        .slider-container {
            padding: 1.5rem;
            background: rgba(0, 0, 0, 0.3);
            border-radius: 0.75rem;
            backdrop-filter: blur(10px);
            max-width: 500px;
            margin: 0 auto;
        }

        .slider-label {
            color: white;
            font-size: 0.875rem;
            margin-bottom: 0.5rem;
            font-weight: 500;
        }

        .slider-wrapper {
            position: relative;
            padding-bottom: 1.5rem;
        }

        .custom-slider {
            -webkit-appearance: none;
            width: 100%;
            height: 8px;
            border-radius: 4px;
            background: #1f2937;
            outline: none;
            margin: 1rem 0;
        }

        .custom-slider::-webkit-slider-thumb {
            -webkit-appearance: none;
            appearance: none;
            width: 20px;
            height: 20px;
            border-radius: 50%;
            background: #9333ea;
            cursor: pointer;
            border: 2px solid rgba(255, 255, 255, 0.5);
            box-shadow: 0 0 10px rgba(147, 51, 234, 0.5);
            transition: all 0.2s ease;
        }

        .custom-slider::-webkit-slider-thumb:hover {
            transform: scale(1.1);
            box-shadow: 0 0 15px rgba(147, 51, 234, 0.7);
        }

        .slider-marks {
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            display: flex;
            justify-content: space-between;
            color: #9ca3af;
            font-size: 0.75rem;
        }

        .slider-marks span.recommended {
            color: #a855f7;
        }

        .slider-info {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-top: 1rem;
        }

        .selected-value {
            color: white;
        }
.slider-custom {
    -webkit-appearance: none;
}

.slider-custom::-webkit-slider-thumb {
    -webkit-appearance: none;
    height: 16px;
    width: 16px;
    border-radius: 50%;
    background: #9333ea;
    border: 2px solid rgba(255, 255, 255, 0.5);
    box-shadow: 0 0 10px rgba(147, 51, 234, 0.5);
    cursor: pointer;
    margin-top: -6px;
    transition: all 0.2s ease;
}

.slider-custom::-webkit-slider-runnable-track {
    background: linear-gradient(to right, #9333ea 50%, rgba(31, 41, 55, 0.5) 50%);
    border-radius: 0.5rem;
    height: 4px;
}

.slider-custom::-webkit-slider-thumb:hover {
    transform: scale(1.1);
    box-shadow: 0 0 15px rgba(147, 51, 234, 0.7);
}
        .selected-value span {
            color: #a855f7;
            font-weight: bold;
            font-size: 1.125rem;
        }

        .recommended-badge {
            background: rgba(147, 51, 234, 0.3);
            color: #c4b5fd;
            padding: 0.25rem 0.75rem;
            border-radius: 9999px;
            font-size: 0.75rem;
            border: 1px solid rgba(147, 51, 234, 0.5);
            display: none;
        }

        .warning-message {
            color: rgb(253, 224, 71, 0.8);
            font-size: 0.875rem;
            margin-top: 0.75rem;
            display: none;
        }
        
        .backdrop-blur-md {
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* Optional: Add a subtle hover effect to the song cards */
.backdrop-blur-md:hover {
  transform: translateY(-1px);
  transition: transform 0.2s ease;
}

/* Hide number input arrows */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox */
input[type="number"] {
  -moz-appearance: textfield;
}

details summary {
  list-style: none;
}
details summary::-webkit-details-marker {
  display: none;
}
details[open] summary i {
  transform: rotate(180deg);
}  
