/* =========================================================
   Ecliptica Studios — styles.css
   ========================================================= */

/* --- CSS Variables (Light Mode) --- */
:root {
  --bg-primary: #f8fafc;
  --bg-secondary: #ffffff;
  --text-primary: #020617;
  --text-secondary: #475569;
  --accent-primary: #2563eb;
  --border-color: rgba(37, 99, 235, 0.1);
  --glass-bg: rgba(255, 255, 255, 0.85);
  --font-main: 'Space Grotesk', sans-serif;
  --card-radius: 0.375rem;
  --btn-radius: 0.375rem;
}

/* --- CSS Variables (Dark Mode) --- */
.dark {
  --bg-primary: #05070a;
  --bg-secondary: #0f1115;
  --text-primary: #ffffff;
  --text-secondary: #94a3b8;
  --accent-primary: #2563eb;
  --border-color: rgba(255, 255, 255, 0.05);
  --glass-bg: rgba(15, 17, 21, 0.7);
  --font-main: 'Space Grotesk', sans-serif;
  --card-radius: 0.375rem;
  --btn-radius: 0.375rem;
}

/* --- Base Body --- */
body {
  background-color: var(--bg-primary);
  color: var(--text-secondary);
  font-family: var(--font-main);
  transition: background-color 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    color 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    font-family 0.4s ease;
}

/* --- Glassmorphism Card --- */
.glass-card {
  background: var(--glass-bg);
  backdrop-filter: blur(12px);
  border: 1px solid var(--border-color);
  border-radius: var(--card-radius);
}

/* --- Adaptive Button --- */
.adaptive-btn {
  border-radius: var(--btn-radius);
  background-color: var(--accent-primary);
  transition: all 0.3s ease;
  font-family: var(--font-main);
  box-shadow: 0 10px 25px -5px rgba(37, 99, 235, 0.3);
}

.dark .adaptive-btn {
  box-shadow: 0 10px 25px -5px rgba(37, 99, 235, 0.2);
}

/* --- Utility: Accent Colors --- */
.text-accent {
  color: var(--accent-primary);
}

.bg-accent {
  background-color: var(--accent-primary);
}

/* --- Gradient Text --- */
.text-gradient-blue {
  background: linear-gradient(to right, var(--accent-primary), #0ea5e9);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* --- Hero Text Protection --- */
.hero-text-shadow {
  text-shadow: 0 4px 10px rgba(0, 0, 0, 0.4), 0 1px 2px rgba(0, 0, 0, 0.6);
}

/* --- Smooth Theme Transition --- */
.theme-transition {
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* --- Global Audio Player Premium Styles --- */
#global-player .glass-card {
  background: rgba(15, 17, 21, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 -10px 50px -10px rgba(0, 0, 0, 0.5);
}

.dark #global-player .glass-card {
  background: rgba(5, 7, 10, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.05);
}

#player-progress-container {
  background: rgba(255, 255, 255, 0.05);
  transition: height 0.3s ease;
}

#player-progress-container:hover {
  height: 8px;
}

@keyframes pulse-accent {
  0% {
    box-shadow: 0 0 0 0 rgba(37, 99, 235, 0.4);
  }

  70% {
    box-shadow: 0 0 0 10px rgba(37, 99, 235, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(37, 99, 235, 0);
  }
}

.pulse-play {
  animation: pulse-accent 2s infinite;
}

/* --- Custom Scrollbar --- */
::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: var(--bg-primary);
}

::-webkit-scrollbar-thumb {
  background: var(--text-secondary);
  border-radius: 4px;
  opacity: 0.3;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--accent-primary);
}