/* Kolbo Visual Motion Pro — CSS core */
:root{
  --kvmp-duration-short: 320ms;
  --kvmp-duration-base: 600ms;
  --kvmp-duration-long: 900ms;
  --kvmp-ease: cubic-bezier(.22,.61,.36,1);
  --kvmp-glow: 0 0 0 rgba(255,215,0,.0);
}

@media (prefers-reduced-motion: reduce){
  * { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

/* Base reveal state */
.kvmp-reveal{ opacity:0; transform: translateY(20px); }
.kvmp-reveal.kvmp-in{ opacity:1; transform: none; transition: opacity var(--kvmp-duration-base) var(--kvmp-ease), transform var(--kvmp-duration-base) var(--kvmp-ease); }

/* Variants */
.kvmp-fade-up{ opacity:0; transform: translateY(24px); }
.kvmp-fade-up.kvmp-in{ opacity:1; transform: translateY(0); transition: opacity var(--kvmp-duration-base) var(--kvmp-ease), transform var(--kvmp-duration-base) var(--kvmp-ease); }

.kvmp-fade-in{ opacity:0; }
.kvmp-fade-in.kvmp-in{ opacity:1; transition: opacity var(--kvmp-duration-base) var(--kvmp-ease); }

.kvmp-slide-in{ opacity:0; transform: translateX(var(--kvmp-slide-dir, 16px)); }
html[dir="rtl"] .kvmp-slide-in{ transform: translateX(calc(var(--kvmp-slide-dir, 16px) * -1)); }
.kvmp-slide-in.kvmp-in{ opacity:1; transform: translateX(0); transition: opacity var(--kvmp-duration-base) var(--kvmp-ease), transform var(--kvmp-duration-base) var(--kvmp-ease); }

/* CTA attention pulse */
@keyframes kvmp-cta-pulse{
  0%{ transform: scale(1); box-shadow: var(--kvmp-glow); }
  50%{ transform: scale(1.035); box-shadow: 0 0 24px rgba(255,215,0,.45); }
  100%{ transform: scale(1); box-shadow: var(--kvmp-glow); }
}
.kvmp-cta{ animation: kvmp-cta-pulse 1800ms var(--kvmp-ease) infinite; }

/* Hover glow */
.kvmp-glow-hover:hover{ box-shadow: 0 8px 28px rgba(0,0,0,.12), 0 0 24px rgba(255,215,0,.35); transform: translateY(-2px); transition: transform 220ms var(--kvmp-ease), box-shadow 220ms var(--kvmp-ease); }

/* Added-to-cart success */
@keyframes kvmp-pop{
  0%{ transform: scale(1); }
  40%{ transform: scale(1.08); }
  100%{ transform: scale(1); }
}
.kvmp-pop{ animation: kvmp-pop 420ms var(--kvmp-ease) 1; }

/* Image subtle float on reveal */
@keyframes kvmp-float{
  0%{ transform: translateY(10px); opacity:.0; }
  100%{ transform: translateY(0); opacity:1; }
}
.kvmp-img-reveal{ animation: kvmp-float var(--kvmp-duration-long) var(--kvmp-ease) 1 both; }

/* Utility delays */
.kvmp-d-1{ transition-delay: 60ms; }
.kvmp-d-2{ transition-delay: 120ms; }
.kvmp-d-3{ transition-delay: 180ms; }
.kvmp-d-4{ transition-delay: 240ms; }
