@keyframes fadeSlideUp    { from { opacity: 0; transform: translateY(32px);  } to { opacity: 1; transform: translateY(0);  } }
@keyframes fadeSlideRight { from { opacity: 0; transform: translateX(-28px); } to { opacity: 1; transform: translateX(0); } }
@keyframes fadeIn         { from { opacity: 0; } to { opacity: 1; } }
@keyframes float          { 0%, 100% { transform: translateY(0)    rotate(6deg); } 50% { transform: translateY(-14px) rotate(6deg); } }
@keyframes floatIcon      { 0%, 100% { transform: translateY(0);   } 50% { transform: translateY(-8px);  } }
@keyframes pulseGreen     { 0%, 100% { box-shadow: 0 0 0 0   rgba(34,197,94,.55); } 60% { box-shadow: 0 0 0 14px rgba(34,197,94,0); } }
@keyframes iconBounce     { 0%, 100% { transform: scale(1);   } 50% { transform: scale(1.22); } }
@keyframes noteFloat      { 0% { opacity: 0; transform: translateY(0) rotate(0deg); } 15%, 85% { opacity: .75; } 100% { opacity: 0; transform: translateY(-120px) rotate(20deg); } }

.hero-badge  { animation: fadeSlideRight .7s  ease both; }
.hero-title  { animation: fadeSlideUp   .75s .15s ease both; }
.hero-body   { animation: fadeSlideUp   .75s .28s ease both; }
.hero-btn    { animation: fadeSlideUp   .75s .42s ease both; }
.hero-visual { animation: fadeIn        .9s  .3s  ease both; }

.float-card { animation: float    4s ease-in-out infinite; }
.float-icon { animation: floatIcon 4s ease-in-out infinite; }

.btn-whatsapp       { animation: pulseGreen 2.2s ease-in-out infinite; transition: transform .2s, background-color .2s; }
.btn-whatsapp:hover { transform: scale(1.06); }
.icon-bounce        { display: inline-block; animation: iconBounce 2s ease-in-out infinite; }

.reveal         { opacity: 0; transform: translateY(36px); transition: opacity .65s cubic-bezier(.22,1,.36,1), transform .65s cubic-bezier(.22,1,.36,1); }
.reveal.visible { opacity: 1; transform: translateY(0); }
.delay-100 { transition-delay: .10s; }
.delay-200 { transition-delay: .22s; }
.delay-300 { transition-delay: .36s; }

article.feature-card       { transition: transform .3s cubic-bezier(.22,1,.36,1), box-shadow .3s; }
article.feature-card:hover { transform: translateY(-6px); box-shadow: 0 16px 40px rgba(234,88,12,.15); }

.note-particle { position: absolute; pointer-events: none; animation: noteFloat linear infinite; user-select: none; }

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