:root { --secondary-rgb: 196,154,74; --primary-rgb: 26,43,76; }

.reveal { opacity: 0; will-change: transform, opacity; }
.reveal.visible { opacity: 1; transform: none !important; }

.fade-up { transform: translateY(50px); }
.fade-down { transform: translateY(-50px); }
.fade-left { transform: translateX(-60px); }
.fade-right { transform: translateX(60px); }
.zoom-in { transform: scale(0.8); }
.zoom-out { transform: scale(1.2); }
.flip-up { transform: perspective(600px) rotateX(12deg); transform-origin: bottom; }
.flip-down { transform: perspective(600px) rotateX(-12deg); transform-origin: top; }

.reveal.visible { transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1); }

.stagger-1 { transition-delay: 0.05s; }
.stagger-2 { transition-delay: 0.1s; }
.stagger-3 { transition-delay: 0.15s; }
.stagger-4 { transition-delay: 0.2s; }
.stagger-5 { transition-delay: 0.25s; }
.stagger-6 { transition-delay: 0.3s; }
.stagger-7 { transition-delay: 0.35s; }
.stagger-8 { transition-delay: 0.4s; }
.stagger-9 { transition-delay: 0.45s; }
.stagger-10 { transition-delay: 0.5s; }
.stagger-11 { transition-delay: 0.55s; }
.stagger-12 { transition-delay: 0.6s; }

.hero-entrance { animation: heroEntrance 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
@keyframes heroEntrance {
  0% { opacity: 0; transform: translateY(40px) scale(0.95); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}
.hero-entrance-delay-1 { animation-delay: 0.2s; }
.hero-entrance-delay-2 { animation-delay: 0.4s; }
.hero-entrance-delay-3 { animation-delay: 0.6s; }
.hero-entrance-delay-4 { animation-delay: 0.8s; }

.counter-value { display: inline-block; font-variant-numeric: tabular-nums; }

@keyframes countPop {
  0% { transform: scale(0.3); opacity: 0; }
  50% { transform: scale(1.15); }
  70% { transform: scale(0.95); }
  100% { transform: scale(1); opacity: 1; }
}
.count-pop { animation: countPop 0.5s cubic-bezier(0.16, 1, 0.3, 1); }

.hover-lift { transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease; }
.hover-lift:hover { transform: translateY(-8px); box-shadow: 0 20px 60px rgba(var(--primary-rgb),0.12); }

.hover-glow { transition: all 0.4s ease; }
.hover-glow:hover { box-shadow: 0 0 30px rgba(var(--secondary-rgb),0.2), 0 0 60px rgba(var(--secondary-rgb),0.1); }

.hover-underline { position: relative; display: inline-block; }
.hover-underline::after {
  content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 2px;
  background: var(--secondary); transition: width 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.hover-underline:hover::after { width: 100%; }

.hover-scale { transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1); }
.hover-scale:hover { transform: scale(1.03); }

.ripple-btn { position: relative; overflow: hidden; }
.ripple-btn .ripple {
  position: absolute; border-radius: 50%; background: rgba(255,255,255,0.35);
  transform: scale(0); animation: rippleAnim 0.6s ease-out; pointer-events: none;
}
@keyframes rippleAnim { to { transform: scale(4); opacity: 0; } }

.page-enter { animation: pageEnter 0.8s cubic-bezier(0.16, 1, 0.3, 1); }
@keyframes pageEnter {
  from { opacity: 0; transform: translateY(30px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.float-anim { animation: floatAnim 4s ease-in-out infinite; }
@keyframes floatAnim {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-12px); }
}
.float-anim-delay { animation: floatAnim 4s ease-in-out 2s infinite; }

@keyframes floatSlow {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-8px); }
}

.pulse-ring { position: relative; }
.pulse-ring::before {
  content: ''; position: absolute; inset: -4px; border-radius: inherit;
  border: 2px solid var(--secondary); animation: pulseRing 2s cubic-bezier(0, 0, 0.2, 1) infinite;
}
@keyframes pulseRing {
  0% { transform: scale(1); opacity: 1; }
  100% { transform: scale(1.4); opacity: 0; }
}

.typing-dots::after { content: ''; animation: typingDots 1.5s infinite; }
@keyframes typingDots {
  0% { content: '.'; }
  33% { content: '..'; }
  66% { content: '...'; }
}

.text-gradient {
  background: linear-gradient(135deg, var(--primary), var(--secondary));
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}

.text-gradient-gold {
  background: linear-gradient(135deg, #C49A4A, #D4AE5C, #C49A4A);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}

.badge-pulse { animation: badgePulse 2s ease-in-out infinite; }
@keyframes badgePulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.6; }
}

@keyframes slideDown {
  from { opacity: 0; transform: translateY(-12px); }
  to { opacity: 1; transform: translateY(0); }
}
.slide-down { animation: slideDown 0.4s cubic-bezier(0.16, 1, 0.3, 1); }

.glass {
  background: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(196, 154, 74, 0.1);
}

.glass-dark {
  background: rgba(13, 27, 42, 0.85);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(196, 154, 74, 0.12);
}

.glass-gold {
  background: rgba(196, 154, 74, 0.06);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(196, 154, 74, 0.15);
}

.img-reveal {
  position: relative;
  overflow: hidden;
}
.img-reveal::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--secondary);
  transform: translateX(0);
  animation: imgReveal 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes imgReveal {
  0% { transform: translateX(-101%); }
  50% { transform: translateX(0); }
  100% { transform: translateX(101%); }
}

.magnetic-btn { transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1); }

.parallax-inner {
  will-change: transform;
  transition: transform 0.1s linear;
}

.section-divider {
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(var(--secondary-rgb),0.3), transparent);
  margin: 0;
}

.glow-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--secondary);
  display: inline-block;
  animation: glowPulse 2s ease-in-out infinite;
}
@keyframes glowPulse {
  0%, 100% { box-shadow: 0 0 5px rgba(var(--secondary-rgb),0.3); }
  50% { box-shadow: 0 0 20px rgba(var(--secondary-rgb),0.8), 0 0 40px rgba(var(--secondary-rgb),0.3); }
}

.shimmer-border {
  position: relative;
}
.shimmer-border::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: inherit;
  background: linear-gradient(90deg, transparent, var(--secondary), transparent);
  background-size: 200% 100%;
  animation: shimmerBorder 3s linear infinite;
  z-index: -1;
}
@keyframes shimmerBorder {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

.gold-shimmer-btn {
  position: relative;
  overflow: hidden;
}
.gold-shimmer-btn::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: linear-gradient(45deg, transparent, rgba(196,154,74,0.1), transparent, rgba(212,174,92,0.1), transparent);
  background-size: 200% 200%;
  animation: goldShimmer 3s ease-in-out infinite;
  pointer-events: none;
}
@keyframes goldShimmer {
  0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); }
  100% { transform: translateX(100%) translateY(100%) rotate(45deg); }
}

.gold-glow {
  animation: goldGlow 3s ease-in-out infinite;
}
@keyframes goldGlow {
  0%, 100% { box-shadow: 0 0 20px rgba(var(--secondary-rgb),0.2); }
  50% { box-shadow: 0 0 40px rgba(var(--secondary-rgb),0.4), 0 0 60px rgba(var(--secondary-rgb),0.15); }
}

.smooth-appear {
  opacity: 0;
  transform: translateY(30px) scale(0.97);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.smooth-appear.visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.card-border-hover {
  position: relative;
  border: 1px solid transparent !important;
  transition: border-color 0.4s ease;
}
.card-border-hover::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  background: linear-gradient(135deg, var(--secondary), var(--primary), var(--secondary));
  opacity: 0;
  transition: opacity 0.4s ease;
  z-index: -1;
}
.card-border-hover:hover {
  border-color: transparent !important;
}
.card-border-hover:hover::before {
  opacity: 1;
}

.gold-bar {
  width: 80px;
  height: 3px;
  background: var(--secondary);
  border-radius: 2px;
  margin: 16px 0;
}
.gold-bar.center { margin-left: auto; margin-right: auto; }

.floating-gold {
  animation: floatingGold 6s ease-in-out infinite;
}
@keyframes floatingGold {
  0%, 100% { transform: translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(-20px) scale(1.1); opacity: 0.6; }
}

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1 !important; transform: none !important; }
  .reveal.visible { transition: none !important; }
  .hover-lift:hover { transform: none; }
  .float-anim, .float-anim-delay { animation: none; }
  .hero-entrance { animation: none; opacity: 1; transform: none; }
  .smooth-appear { opacity: 1; transform: none; }
  .img-reveal::after { display: none; }
  .gold-shimmer-btn::before { display: none; }
  .gold-glow { animation: none; }
  .floating-gold { animation: none; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
}
