@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Great+Vibes&display=swap');

:root {
  --primary-gold: #C5A880;
  --primary-cream: #FDFBF7;
  --primary-champagne: #F4EBE1;
  --primary-dark: #2C2C2C;
  --accent-olive: #606C38;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Montserrat', sans-serif;
  background-color: var(--primary-cream);
  color: var(--primary-dark);
  overflow-x: hidden;
}

.font-serif-title {
  font-family: 'Playfair Display', serif;
}

.font-signature {
  font-family: 'Great Vibes', cursive;
}

/* Glassmorphism utility */
.glass-card {
  background: rgba(255, 255, 255, 0.65);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.4);
}

.glass-card-dark {
  background: rgba(44, 44, 44, 0.7);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

/* Keyframe animations */
@keyframes spin-slow {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.animate-spin-slow {
  animation: spin-slow 10s linear infinite;
}

@keyframes pulse-ring {
  0% {
    transform: scale(0.95);
    opacity: 0.5;
  }
  50% {
    transform: scale(1.1);
    opacity: 0.8;
  }
  100% {
    transform: scale(0.95);
    opacity: 0.5;
  }
}

.animate-pulse-ring {
  animation: pulse-ring 3s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* Audio waves animation */
.audio-wave-bar {
  width: 3px;
  background-color: var(--primary-gold);
  margin: 0 1px;
  border-radius: 3px;
  transition: height 0.2s ease;
}

.audio-wave-bar:nth-child(1) { height: 10px; }
.audio-wave-bar:nth-child(2) { height: 18px; }
.audio-wave-bar:nth-child(3) { height: 12px; }
.audio-wave-bar:nth-child(4) { height: 22px; }
.audio-wave-bar:nth-child(5) { height: 8px; }

.playing .audio-wave-bar:nth-child(1) { animation: wave 1.2s ease-in-out infinite alternate; }
.playing .audio-wave-bar:nth-child(2) { animation: wave 0.8s ease-in-out infinite alternate; animation-delay: 0.15s; }
.playing .audio-wave-bar:nth-child(3) { animation: wave 1.5s ease-in-out infinite alternate; animation-delay: 0.3s; }
.playing .audio-wave-bar:nth-child(4) { animation: wave 1.0s ease-in-out infinite alternate; animation-delay: 0.45s; }
.playing .audio-wave-bar:nth-child(5) { animation: wave 1.3s ease-in-out infinite alternate; animation-delay: 0.05s; }

@keyframes wave {
  0% { height: 4px; }
  100% { height: 24px; }
}

/* Scroll animation reveal utility classes */
.reveal {
  position: relative;
  opacity: 0;
  transform: translateY(50px);
  transition: all 1s ease;
}

.reveal.active {
  opacity: 1;
  transform: translateY(0);
}

/* Custom separator line */
.divider-gold {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 1.5rem 0;
}

.divider-gold::before,
.divider-gold::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--primary-gold), transparent);
}

.divider-gold-icon {
  color: var(--primary-gold);
  margin: 0 10px;
}

/* Timeline Custom Styles */
.timeline-item::after {
  content: '';
  position: absolute;
  width: 12px;
  height: 12px;
  background-color: var(--primary-gold);
  border: 2px solid white;
  border-radius: 50%;
  top: 6px;
  left: -6px;
  z-index: 10;
}
