/* ════════════════════════════════════════════════════════
   RadheShyam Official  |  footer-animations.css
   All @keyframes & animation-only rules — paste BEFORE footer.css
   ════════════════════════════════════════════════════════ */

/* ── LOGO GLOW PULSE ─────────────────────────────────── */
@keyframes zkmFootLogoGlowPulse {
  0%, 100% { filter: drop-shadow(0 0 6px rgba(232,168,32,0.24)); }
  50%       { filter: drop-shadow(0 0 16px rgba(232,168,32,0.5)); }
}

.zkm-footer-logo-svg {
  animation: zkmFootLogoGlowPulse 5s ease-in-out infinite;
}

/* ── QUILL UNDERLINE DRAW (replays when footer scrolls into view via .zkm-in-view) ── */
.zkm-footer-quill-line {
  stroke-dasharray: 300;
  stroke-dashoffset: 300;
}

.zkm-footer.zkm-in-view .zkm-footer-quill-line {
  animation: zkmFootQuillDraw 1.6s 0.15s cubic-bezier(0.22,1,0.36,1) forwards;
}

@keyframes zkmFootQuillDraw {
  to { stroke-dashoffset: 0; }
}

/* ── SETTLING WORDS (JS-spawned) — ink settling downward, footer's own motif ── */
@keyframes zkmFootWordSettle {
  0%   { transform: translateY(-40px) rotate(var(--zkm-fwr)); opacity: 0; }
  10%  { opacity: 0.4; }
  85%  { opacity: 0.22; }
  100% { transform: translateY(90px) rotate(var(--zkm-fwr)); opacity: 0; }
}

.zkm-footer-word {
  position: absolute;
  font-family: 'Playfair Display', serif;
  font-style: italic;
  color: rgba(232, 168, 32, 0.16);
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
  animation: zkmFootWordSettle linear infinite;
}

/* ── CANVAS EMBER (JS-spawned) ───────────────────────── */
@keyframes zkmFootEmberFloat {
  0%   { transform: translateY(0)      scale(1);   opacity: 0; }
  12%  { opacity: 0.55; }
  88%  { opacity: 0.25; }
  100% { transform: translateY(-60px)  scale(0.4); opacity: 0; }
}

.zkm-footer-spark {
  position: absolute;
  border-radius: 50%;
  background: rgba(232, 168, 32, 0.45);
  pointer-events: none;
  animation: zkmFootEmberFloat linear infinite;
}

/* ── SOCIAL ICON RING PULSE ──────────────────────────── */
@keyframes zkmSocialRingPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(232,168,32,0); }
  50%       { box-shadow: 0 0 10px 1px rgba(232,168,32,0.12); }
}

.zkm-social-link {
  animation: zkmSocialRingPulse 4s ease-in-out infinite;
}

.zkm-social-link:nth-child(2) { animation-delay: 0.4s; }
.zkm-social-link:nth-child(3) { animation-delay: 0.8s; }
.zkm-social-link:nth-child(4) { animation-delay: 1.2s; }
.zkm-social-link:nth-child(5) { animation-delay: 1.6s; }

/* ── DIVIDER SHIMMER ──────────────────────────────────── */
@keyframes zkmFootDividerShimmer {
  0%, 100% { opacity: 0.5; }
  50%       { opacity: 0.9; }
}

.zkm-footer-divider {
  animation: zkmFootDividerShimmer 4s ease-in-out infinite;
}

/* ── BACK TO TOP GENTLE FLOAT ─────────────────────────── */
@keyframes zkmBackToTopFloat {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-3px); }
}

.zkm-back-to-top.zkm-visible {
  animation: zkmBackToTopFloat 2.6s ease-in-out infinite;
}

/* ── COLUMN FADE-UP ON SCROLL INTO VIEW ──────────────── */
@keyframes zkmFootColIn {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

.zkm-footer-col {
  opacity: 0;
}

.zkm-footer.zkm-in-view .zkm-footer-col:nth-child(1) { animation: zkmFootColIn 0.7s 0.05s cubic-bezier(0.22,1,0.36,1) both; }
.zkm-footer.zkm-in-view .zkm-footer-col:nth-child(2) { animation: zkmFootColIn 0.7s 0.15s cubic-bezier(0.22,1,0.36,1) both; }
.zkm-footer.zkm-in-view .zkm-footer-col:nth-child(3) { animation: zkmFootColIn 0.7s 0.25s cubic-bezier(0.22,1,0.36,1) both; }
.zkm-footer.zkm-in-view .zkm-footer-col:nth-child(4) { animation: zkmFootColIn 0.7s 0.35s cubic-bezier(0.22,1,0.36,1) both; }

/* ── REDUCED MOTION RESPECT ──────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .zkm-footer-logo-svg,
  .zkm-footer-quill-line,
  .zkm-footer-word,
  .zkm-footer-spark,
  .zkm-social-link,
  .zkm-footer-divider,
  .zkm-back-to-top.zkm-visible,
  .zkm-footer-col {
    animation: none !important;
    opacity: 1 !important;
  }
  .zkm-footer-quill-line { stroke-dashoffset: 0 !important; }
}
