/* ═══════════════════════════════════════════════════════════
   ANIMATIONS — All keyframes & motion choreography
   ═══════════════════════════════════════════════════════════ */

/* ROTATIONS ─────────────────────────────────────────────── */
@keyframes rotate-mandala {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
@keyframes rotate-mandala-reverse {
  from { transform: rotate(360deg); }
  to   { transform: rotate(0deg); }
}
@keyframes rotate-mandala-center {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to   { transform: translate(-50%, -50%) rotate(360deg); }
}
.bg-mandala-3 { animation: rotate-mandala-center 240s linear infinite; }

/* LOADER MANDALA ───────────────────────────────────────── */
.mandala-layer-1 {
  transform-origin: 100px 100px;
  animation: rotate-mandala 8s linear infinite, mandala-pulse 3s ease-in-out infinite;
}
.mandala-layer-2 {
  transform-origin: 100px 100px;
  animation: rotate-mandala-reverse 6s linear infinite;
}
@keyframes mandala-pulse {
  0%, 100% { opacity: 1; filter: drop-shadow(0 0 8px var(--gold-bright)); }
  50%      { opacity: 0.7; filter: drop-shadow(0 0 20px var(--gold-bright)); }
}

/* CROWN GLOW ───────────────────────────────────────────── */
@keyframes crown-glow {
  0%, 100% { filter: drop-shadow(0 2px 8px rgba(255,215,0,0.4)); }
  50%      { filter: drop-shadow(0 2px 18px rgba(255,215,0,0.8)); }
}

/* FADE & RISE ───────────────────────────────────────────── */
@keyframes fade-rise {
  from { opacity: 0; transform: translateY(40px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fade-down {
  from { opacity: 0; transform: translateY(-30px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes fade-scale {
  from { opacity: 0; transform: scale(0.8); }
  to   { opacity: 1; transform: scale(1); }
}

/* ENTRANCE ANIMATIONS ───────────────────────────────────── */
.nav { animation: fade-down 1s var(--transition-silk) 0.3s both; }
.hero-text > * { animation: fade-rise 1s var(--transition-silk) both; }
.hero-eyebrow  { animation-delay: 1.6s; }
.hero-title    { animation-delay: 1.8s; }
.hero-subtitle { animation-delay: 2.0s; }
.hero-actions  { animation-delay: 2.2s; }
.hero-stats    { animation-delay: 2.4s; }

.showcase { animation: fade-scale 1.4s var(--transition-silk) 1.6s both; }

/* SHIMMER on text ───────────────────────────────────────── */
@keyframes title-shimmer {
  0%, 100% { background-position: 0% 0%; }
  50%      { background-position: 100% 0%; }
}
.title-major, .title-grand {
  background-size: 200% 100%;
  animation: title-shimmer 6s ease-in-out infinite;
}

/* SCRIPT FLOAT ─────────────────────────────────────────── */
@keyframes script-float {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50%      { transform: translateY(-4px) rotate(1deg); }
}
.title-script { animation: script-float 5s ease-in-out infinite; }

/* SPARKLES ──────────────────────────────────────────────── */
@keyframes sparkle-twinkle {
  0%, 100% { opacity: 0; transform: scale(0) rotate(0deg); }
  50%      { opacity: 1; transform: scale(1) rotate(180deg); }
}
@keyframes sparkle-rise {
  0%   { opacity: 0; transform: translate(0, 0) scale(0.5); }
  20%  { opacity: 1; }
  100% { opacity: 0; transform: translate(var(--dx, 20px), -200px) scale(1); }
}

/* PARTICLE FLOAT ───────────────────────────────────────── */
@keyframes particle-float {
  0%   { opacity: 0; transform: translateY(0) translateX(0); }
  10%  { opacity: 0.7; }
  90%  { opacity: 0.7; }
  100% { opacity: 0; transform: translateY(-100vh) translateX(var(--drift, 30px)); }
}

/* HOVER SHIMMER on cards ────────────────────────────────── */
@keyframes card-shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
.saree-card:hover .card-name, .jewelry-card:hover .card-name {
  background: linear-gradient(90deg, var(--gold-cream) 0%, var(--gold-bright) 50%, var(--gold-cream) 100%);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: card-shimmer 2s ease-in-out infinite;
}

/* SECTION REVEAL ────────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 1s var(--transition-silk), transform 1s var(--transition-silk);
}
.reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}
.reveal-stagger > * {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s var(--transition-silk), transform 0.8s var(--transition-silk);
}
.reveal-stagger.revealed > * {
  opacity: 1;
  transform: translateY(0);
}
.reveal-stagger.revealed > *:nth-child(1) { transition-delay: 0.05s; }
.reveal-stagger.revealed > *:nth-child(2) { transition-delay: 0.15s; }
.reveal-stagger.revealed > *:nth-child(3) { transition-delay: 0.25s; }
.reveal-stagger.revealed > *:nth-child(4) { transition-delay: 0.35s; }
.reveal-stagger.revealed > *:nth-child(5) { transition-delay: 0.45s; }
.reveal-stagger.revealed > *:nth-child(6) { transition-delay: 0.55s; }
.reveal-stagger.revealed > *:nth-child(7) { transition-delay: 0.65s; }
.reveal-stagger.revealed > *:nth-child(8) { transition-delay: 0.75s; }

/* ARCH SHIMMER ──────────────────────────────────────────── */
@keyframes arch-shimmer {
  0%, 100% { opacity: 0.6; filter: drop-shadow(0 0 10px rgba(255,215,0,0.3)); }
  50%      { opacity: 1; filter: drop-shadow(0 0 25px rgba(255,215,0,0.6)); }
}
.arch-svg { animation: arch-shimmer 5s ease-in-out infinite; }

/* HERITAGE LOTUS BREATHE ────────────────────────────────── */
@keyframes lotus-breathe {
  0%, 100% { transform: translate(100px, 140px) scale(1); }
  50%      { transform: translate(100px, 140px) scale(1.08); }
}
.heritage-lotus { animation: lotus-breathe 5s ease-in-out infinite; transform-origin: center; }

/* OCEAN OF GOLD on signature ────────────────────────────── */
@keyframes signature-shine {
  0%, 100% { text-shadow: 0 0 5px rgba(255,215,0,0.3); }
  50%      { text-shadow: 0 0 25px rgba(255,215,0,0.7); }
}
.signature-script { animation: signature-shine 4s ease-in-out infinite; }

/* DIVIDER ORNAMENT BREATHE ─────────────────────────────── */
@keyframes divider-breathe {
  0%, 100% { transform: scale(1); opacity: 0.8; }
  50%      { transform: scale(1.15); opacity: 1; }
}
.divider-ornament { animation: divider-breathe 4s ease-in-out infinite; }

/* ROTATE BUTTON HOVER ──────────────────────────────────── */
@keyframes rotate-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255,215,0,0.6); }
  50%      { box-shadow: 0 0 0 12px rgba(255,215,0,0); }
}

/* MODE SWITCH RIPPLE ───────────────────────────────────── */
@keyframes mode-ripple {
  from { transform: scale(0); opacity: 0.6; }
  to   { transform: scale(2.5); opacity: 0; }
}

/* ZOOM INDICATOR ────────────────────────────────────────── */
@keyframes zoom-ring-grow {
  0%   { transform: translate(-50%, -50%) scale(0); opacity: 1; }
  70%  { opacity: 0.7; }
  100% { transform: translate(-50%, -50%) scale(2); opacity: 0; }
}

/* FOOTER STAR TWINKLE ──────────────────────────────────── */
@keyframes footer-twinkle {
  0%, 100% { text-shadow: 0 0 5px var(--gold-bright); }
  50%      { text-shadow: 0 0 15px var(--gold-bright), 0 0 30px var(--gold-rich); }
}
.footer-decoration { animation: footer-twinkle 3s ease-in-out infinite; }
.footer-ornament::before { animation: footer-twinkle 3s ease-in-out infinite; }
