/* Home page animations and utilities */
:root{
  --accent: #ea580c;
  --accent-2: #ff7a18;
}

/* utility to reveal on scroll */
.in-view{ opacity:1; transform:none; transition: all 700ms cubic-bezier(.2,.9,.2,1); }
.animate-reveal{ opacity:0; transform: translateY(18px) scale(0.995); }

/* counters */
.counter { font-weight:700; font-size:2rem; }
.counter-sub { font-size:0.8rem; color: #64748b; }

/* floating shapes */
@keyframes floaty{ 0%{ transform: translateY(0px);}50%{ transform: translateY(-12px);}100%{ transform: translateY(0px);} }
.animate-float{ animation: floaty 5s ease-in-out infinite; }

/* subtle pulse */
@keyframes soft-pulse{ 0%{ transform: scale(1);}50%{ transform: scale(1.03);}100%{ transform: scale(1);} }
.animate-soft-pulse{ animation: soft-pulse 6s ease-in-out infinite; }

/* slide and fade */
@keyframes slideUp{ 0%{ opacity:0; transform: translateY(18px);} 100%{ opacity:1; transform: translateY(0);} }
.animate-slide-up{ animation: slideUp 600ms cubic-bezier(.2,.9,.2,1) forwards; }

/* icon float subtle */
@keyframes iconFloat{ 0%{ transform: translateY(0);}50%{ transform: translateY(-6px);}100%{ transform: translateY(0);} }
.animate-icon-float{ animation: iconFloat 3.6s ease-in-out infinite; }

/* bounce in */
@keyframes bounceIn{ 0%{ opacity:0; transform: translateY(18px) scale(.96);}60%{ opacity:1; transform: translateY(-6px) scale(1.02);}100%{ transform: translateY(0) scale(1);} }
.animate-bounce-in{ animation: bounceIn 800ms cubic-bezier(.2,.9,.2,1) forwards; }

/* shimmer */
@keyframes shimmer{ 0%{ background-position: -200% 0;} 100%{ background-position: 200% 0;} }
.shimmer{ background: linear-gradient(90deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.12) 50%, rgba(255,255,255,0.04) 100%); background-size: 400% 100%; animation: shimmer 4s linear infinite; }

/* marquee ticker */
.ticker{ overflow:hidden; white-space:nowrap; }
.ticker-track{ display:inline-block; will-change:transform; animation: tickerMove 18s linear infinite; }
@keyframes tickerMove{ 0%{ transform: translateX(0%);} 100%{ transform: translateX(-50%);} }

/* buttons micro-interaction */
.btn-ghost:hover{ transform: translateY(-4px) scale(1.02); box-shadow: 0 10px 30px rgba(0,0,0,0.08); }

/* responsive tweaks */
@media (max-width: 1024px){ .animate-float { animation-duration: 7s; } }
