/* Keyframes sagrados */
@keyframes glow-pulse{ 0%{box-shadow:0 0 0 0 rgba(160,80,183,0);} 50%{box-shadow:0 0 0 6px rgba(160,80,183,.25);} 100%{box-shadow:0 0 0 0 rgba(160,80,183,0);} }
@keyframes golden-rotate{ 0%{background-image:conic-gradient(from 0deg,var(--brand-strong),var(--brand-base));} 100%{background-image:conic-gradient(from 137.5deg,var(--brand-strong),var(--brand-base));} }
@keyframes micro-tilt{ 0%{transform:rotate(0);} 100%{transform:rotate(.33deg);} }
@keyframes breathe{ 0%{transform:scale(1);} 50%{transform:scale(1.016);} 100%{transform:scale(1);} }
@keyframes slide-in-phi{ 0%{transform:translateY(34px); opacity:0;} 100%{transform:translateY(0); opacity:1;} }

.anim-focus-glow:focus-visible{animation:glow-pulse 610ms ease-out 1}
.anim-breathe{animation:breathe 6.66s ease-in-out infinite}
.anim-tilt:hover{animation:micro-tilt 233ms ease-in-out 1 both}
.anim-slide-in{animation:slide-in-phi 377ms cubic-bezier(.2,.8,.2,1) 1 both}

/* Fade in up for progressive reveal */
@keyframes fadeInUp{
  from{opacity:0;transform:translateY(30px)}
  to{opacity:1;transform:translateY(0)}
}

.fade-in-up{animation:fadeInUp 0.6s cubic-bezier(0.4,0,0.2,1) backwards}

/* Stagger delays for lists */
.vector-card:nth-child(1),.product-card:nth-child(1){animation-delay:0.1s}
.vector-card:nth-child(2),.product-card:nth-child(2){animation-delay:0.2s}
.vector-card:nth-child(3),.product-card:nth-child(3){animation-delay:0.3s}

/* Loading spinner */
@keyframes spin{to{transform:rotate(360deg)}}

.btn--loading{pointer-events:none;opacity:0.7;position:relative}
.btn--loading::after{content:'';position:absolute;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin 0.6s linear infinite}

/* Shimmer for primary buttons */
.btn--primary{position:relative;overflow:hidden;isolation:isolate}
.btn--primary::before{content:'';position:absolute;inset:0;background:linear-gradient(120deg,transparent,rgba(255,255,255,0.3),transparent);transform:translateX(-100%);transition:transform 0.6s}
.btn--primary:hover::before{transform:translateX(100%)}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:0.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:0.01ms!important;
  }
}

/* Enhanced animations for testimonials */
.vector-card:nth-child(4),.testimonial-card:nth-child(4){animation-delay:0.4s}

/* Pulse animation for CTA buttons */
@keyframes pulseGlow{
  0%,100%{box-shadow:0 0 0 0 color-mix(in oklab,var(--brand-base),transparent 0%)}
  50%{box-shadow:0 0 0 10px color-mix(in oklab,var(--brand-base),transparent 30%)}
}
.btn--primary:hover{animation:pulseGlow 1.5s infinite}

/* Subtle float animation for metric cards */
@keyframes float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-6px)}
}
.metric-card:hover{animation:float 2s ease-in-out infinite}

/* Enhanced testimonial hover effects */
.testimonial-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}

/* ===== PREMIUM MICRO-INTERACTIONS ===== */

/* Magnetic button effect */
.btn--primary {
  transition: transform var(--duration-base) cubic-bezier(0.34, 1.56, 0.64, 1),
              box-shadow var(--duration-base) ease;
}

/* Card entrance animations - staggered */
@keyframes cardEntrance {
  0% {
    opacity: 0;
    transform: translateY(40px) scale(0.95);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.vector-card,
.product-card,
.testimonial-card,
.story-card,
.metric-card {
  animation: cardEntrance 0.6s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

/* Stagger delays for all card types */
.vector-card:nth-child(1), .product-card:nth-child(1), .testimonial-card:nth-child(1), .metric-card:nth-child(1) { animation-delay: 0.1s; }
.vector-card:nth-child(2), .product-card:nth-child(2), .testimonial-card:nth-child(2), .metric-card:nth-child(2) { animation-delay: 0.2s; }
.vector-card:nth-child(3), .product-card:nth-child(3), .testimonial-card:nth-child(3), .metric-card:nth-child(3) { animation-delay: 0.3s; }
.vector-card:nth-child(4), .product-card:nth-child(4), .testimonial-card:nth-child(4), .metric-card:nth-child(4) { animation-delay: 0.4s; }

/* Ripple effect for buttons */
@keyframes ripple {
  0% {
    transform: scale(0);
    opacity: 0.5;
  }
  100% {
    transform: scale(4);
    opacity: 0;
  }
}

.btn {
  position: relative;
  overflow: hidden;
}

.btn::after {
  content: '';
  position: absolute;
  width: 100px;
  height: 100px;
  background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, transparent 70%);
  border-radius: 50%;
  transform: scale(0);
  pointer-events: none;
}

.btn:active::after {
  animation: ripple 0.6s ease-out;
}

/* Smooth text gradient animation for hero */
@keyframes gradientShift {
  0%, 100% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
}

.hero-premium__title {
  background-size: 200% 200%;
  animation: gradientShift 8s ease infinite;
}

/* Glow effect for focus on inputs */
@keyframes inputGlow {
  0%, 100% {
    box-shadow: 0 0 0 3px color-mix(in oklab, var(--brand-base), transparent 85%);
  }
  50% {
    box-shadow: 0 0 0 5px color-mix(in oklab, var(--brand-base), transparent 75%);
  }
}

.form-input:focus,
.auth-input:focus,
.search__input:focus {
  animation: inputGlow 2s ease-in-out infinite;
}

/* Typing cursor for chip labels */
@keyframes blink {
  0%, 50% { opacity: 1; }
  51%, 100% { opacity: 0; }
}

.hero-premium__chip::after {
  content: '';
  display: inline-block;
  width: 2px;
  height: 1em;
  background: var(--brand-base);
  margin-left: 4px;
  animation: blink 1s step-end infinite;
  vertical-align: middle;
}

/* Smooth scroll reveal */
@keyframes revealFromBottom {
  from {
    opacity: 0;
    clip-path: inset(100% 0 0 0);
  }
  to {
    opacity: 1;
    clip-path: inset(0 0 0 0);
  }
}

.section__header h2 {
  animation: revealFromBottom 0.8s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

/* Navigation link hover underline animation */
@keyframes underlineExpand {
  from {
    transform: scaleX(0);
    transform-origin: left;
  }
  to {
    transform: scaleX(1);
    transform-origin: left;
  }
}

/* Badge pulse for "live" indicators */
@keyframes livePulse {
  0%, 100% {
    box-shadow: 0 0 0 0 var(--brand-base);
  }
  50% {
    box-shadow: 0 0 0 8px transparent;
  }
}

.chip--live::before {
  content: '';
  width: 8px;
  height: 8px;
  background: var(--brand-base);
  border-radius: 50%;
  margin-right: 8px;
  animation: livePulse 2s ease-in-out infinite;
}

/* Number counter animation */
@keyframes countUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.metric-card__value {
  animation: countUp 0.8s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

/* Success state animation for forms */
@keyframes successPop {
  0% {
    transform: scale(0.8);
    opacity: 0;
  }
  50% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

.form-group--success .form-feedback--success {
  animation: successPop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Error shake is already in components.css */

/* Smooth page transitions */
@keyframes pageEnter {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

main {
  animation: pageEnter 0.5s ease-out;
}

/* Accessibility: Disable all animations for reduced motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .hero-premium__title,
  .hero-premium__chip::after {
    animation: none !important;
  }
}
