/* Scroll reveal & Misc animations */
.fade-up   { animation: fadeUp   0.7s ease both; }
.fade-in   { animation: fadeIn   0.6s ease both; }
.slide-in  { animation: slideIn  0.6s ease both; }

@keyframes fadeUp   { from { opacity:0; transform:translateY(30px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeIn   { from { opacity:0; } to { opacity:1; } }
@keyframes slideIn  { from { opacity:0; transform:translateX(30px); } to { opacity:1; transform:translateX(0); } }

/* Gold shimmer on headings */
@keyframes shimmer {
  0%   { background-position: -500px 0; }
  100% { background-position: 500px 0; }
}
.shimmer {
  background: linear-gradient(90deg, var(--gold-dark) 0%, var(--gold-light) 50%, var(--gold-dark) 100%);
  background-size: 1000px 100%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: shimmer 3s linear infinite;
}

/* Pulse ring on CTA */
@keyframes pulseRing {
  0%   { transform:scale(1); opacity:0.6; }
  100% { transform:scale(1.4); opacity:0; }
}
.pulse-ring {
  position: relative;
  display: inline-flex;
}
.pulse-ring::before {
  content:'';
  position:absolute;
  inset:0;
  border-radius:50px;
  background: var(--gold);
  animation: pulseRing 1.5s ease-out infinite;
}

/* Number counter spin */
@keyframes countSpin { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }

/* Ken Burns Effect for Hero Background */
@keyframes kenBurns {
  0% { transform: scale(1) translate3d(0, 0, 0); }
  100% { transform: scale(1.1) translate3d(-2%, -2%, 0); }
}
.ken-burns {
  animation: kenBurns 8s ease-in-out infinite alternate;
  will-change: transform; /* GPU Acceleration */
}
/* Accessibility: Respect user's motion preference */
@media (prefers-reduced-motion: reduce) {
  .ken-burns { animation: none; }
}

/* Scroll To Top Button */
.back-to-top {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  width: 50px;
  height: 50px;
  background: var(--gold);
  color: var(--black);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  box-shadow: 0 4px 15px rgba(201, 168, 76, 0.4);
  cursor: pointer;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  border: 2px solid transparent;
}
.back-to-top.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.back-to-top:hover {
  background: var(--black-2);
  color: var(--gold);
  border-color: var(--gold);
  transform: translateY(-5px);
  box-shadow: 0 8px 25px rgba(201, 168, 76, 0.6);
}
