/* ═══════════════════════════════
   智答工作室 — Keyframes v5
   ═══════════════════════════════ */

/* Core */
@keyframes fadeUp   { from { opacity:0; transform: translateY(30px); } to { opacity:1; transform: none; } }
@keyframes fadeDown { from { opacity:0; transform: translateY(-18px); } to { opacity:1; transform: none; } }
@keyframes blink    { 0%,100%{opacity:1} 50%{opacity:0} }

/* Logo */
@keyframes logoPulse {
  0%,100% { box-shadow: 0 4px 14px rgba(255,107,53,.35), 0 0 0 0 rgba(255,107,53,.2); }
  50%     { box-shadow: 0 4px 14px rgba(255,107,53,.35), 0 0 0 10px rgba(255,107,53,0); }
}

/* Pulse dot */
@keyframes pls {
  0%,100% { box-shadow: 0 0 0 0 rgba(255,107,53,.6); }
  50%     { box-shadow: 0 0 0 8px rgba(255,107,53,0); }
}

/* Hero gradient flow (Stripe-like) */
@keyframes heroGradientFlow {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* CTA pulse */
@keyframes ctaPulse {
  0%,100% { box-shadow: 0 6px 24px rgba(255,107,53,.42), 0 0 0 0 rgba(255,107,53,.2); }
  50%     { box-shadow: 0 6px 32px rgba(255,107,53,.58), 0 0 0 14px rgba(255,107,53,0); }
}

/* Phone float */
@keyframes phoneFloat {
  0%,100% { transform: perspective(800px) rotateY(-8deg) rotateX(4deg) translateY(0); }
  50%     { transform: perspective(800px) rotateY(-6deg) rotateX(2deg) translateY(-16px); }
}

/* Geometry floats */
@keyframes geoFloat1 {
  0%,100% { transform: translate(0,0) scale(1); }
  33%     { transform: translate(28px,-22px) scale(1.04); }
  66%     { transform: translate(-18px,14px) scale(.97); }
}
@keyframes geoFloat2 {
  0%,100% { transform: translate(0,0) rotate(25deg); }
  50%     { transform: translate(20px,-16px) rotate(30deg); }
}
@keyframes geoFloat3 {
  0%,100% { transform: translate(0,0) scale(1); }
  50%     { transform: translate(-12px,10px) scale(1.07); }
}

/* Floating info cards */
@keyframes fcard1 {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  50%     { transform: translateY(-12px) rotate(-1deg); }
}
@keyframes fcard2 {
  0%,100% { transform: translateY(0) rotate(2deg); }
  50%     { transform: translateY(10px) rotate(3deg); }
}

/* Chat bubble entrance */
@keyframes bubbleIn {
  from { opacity:0; transform: translateY(10px) scale(.94); }
  to   { opacity:1; transform: none; }
}

/* Typing bounce */
@keyframes typingBounce {
  0%,80%,100% { transform: translateY(0); opacity: .6; }
  40%         { transform: translateY(-6px); opacity: 1; }
}

/* Card shimmer sweep */
@keyframes shimmerSweep {
  from { transform: translateX(-150%); }
  to   { transform: translateX(150%); }
}

/* Glowing border (featured pricing card) */
@keyframes glowBorder {
  0%,100% { box-shadow: 0 0 0 1px rgba(255,107,53,.15), 0 24px 60px rgba(255,107,53,.10); }
  50%     { box-shadow: 0 0 0 2px rgba(255,107,53,.35), 0 24px 60px rgba(255,107,53,.20), 0 0 44px rgba(255,107,53,.14); }
}

/* CTA glow pulse */
@keyframes ctaGlowPulse {
  0%,100% { transform: translate(-50%,-50%) scale(1);    opacity: .7; }
  50%     { transform: translate(-50%,-50%) scale(1.28); opacity: 1; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration:        .01ms !important;
    animation-iteration-count: 1     !important;
    transition-duration:       .01ms !important;
  }
}
