/* ============================================================
   BENNEDICTE — animations.css
   ============================================================ */

/* ---------- FADE IN ---------- */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeInDown {
  from { opacity: 0; transform: translateY(-20px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeInLeft {
  from { opacity: 0; transform: translateX(-30px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes fadeInRight {
  from { opacity: 0; transform: translateX(30px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.92); }
  to   { opacity: 1; transform: scale(1); }
}
@keyframes pulseGold {
  0%, 100% { box-shadow: 0 0 0 0 rgba(212,168,85,0); }
  50%       { box-shadow: 0 0 0 8px rgba(212,168,85,0.12); }
}
@keyframes pulseRose {
  0%, 100% { box-shadow: 0 0 0 0 rgba(139,58,107,0); }
  50%       { box-shadow: 0 0 0 8px rgba(139,58,107,0.15); }
}
@keyframes shimmer {
  0%   { background-position: -200% center; }
  100% { background-position: 200% center; }
}
@keyframes noteFloat {
  0%, 100% { transform: translateY(0) rotate(-5deg); opacity: 0.3; }
  50%       { transform: translateY(-18px) rotate(5deg); opacity: 0.6; }
}

/* ---------- UTILITY CLASSES ---------- */
.anim-fade-in       { animation: fadeIn 0.7s ease both; }
.anim-fade-in-down  { animation: fadeInDown 0.7s ease both; }
.anim-scale-in      { animation: scaleIn 0.6s ease both; }
.anim-delay-1       { animation-delay: 0.1s; }
.anim-delay-2       { animation-delay: 0.2s; }
.anim-delay-3       { animation-delay: 0.3s; }
.anim-delay-4       { animation-delay: 0.5s; }
.anim-delay-5       { animation-delay: 0.7s; }

/* Pulse on album cover */
.pulse-gold { animation: pulseGold 3s ease-in-out infinite; }
.pulse-rose { animation: pulseRose 3s ease-in-out infinite; }

/* Shimmer text effect */
.shimmer-text {
  background: linear-gradient(90deg, var(--gold) 0%, #fff8e8 40%, var(--gold) 60%, var(--gold-dim) 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: shimmer 4s linear infinite;
}

/* Floating notes decoration */
.note-float {
  display: inline-block;
  animation: noteFloat 3s ease-in-out infinite;
  color: var(--rose-light);
}
.note-float:nth-child(2) { animation-delay: 0.8s; animation-duration: 3.5s; }
.note-float:nth-child(3) { animation-delay: 1.6s; animation-duration: 2.8s; }

/* Hero entrance */
.hero-entrance-1 { animation: fadeInDown 1s ease 0.1s both; }
.hero-entrance-2 { animation: fadeIn 1s ease 0.35s both; }
.hero-entrance-3 { animation: fadeIn 1s ease 0.6s both; }
.hero-entrance-4 { animation: fadeIn 1s ease 0.9s both; }

/* Audio playing indicator */
@keyframes audioBeat {
  0%, 100% { transform: scaleY(0.4); }
  50%       { transform: scaleY(1); }
}
.beat-bar {
  display: inline-block; width: 3px; height: 14px; background: var(--rose-light);
  border-radius: 2px; margin: 0 1px; transform-origin: bottom;
  animation: audioBeat 0.6s ease-in-out infinite;
}
.beat-bar:nth-child(2) { animation-delay: 0.15s; animation-duration: 0.5s; }
.beat-bar:nth-child(3) { animation-delay: 0.3s; animation-duration: 0.7s; }
.beat-bar:nth-child(4) { animation-delay: 0.1s; animation-duration: 0.55s; }
