@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{from{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes scaleUp{from{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.card-hover{transition:transform .3s ease,box-shadow .3s ease}.card-hover:hover{transform:translateY(-6px);box-shadow:0 12px 40px rgba(0,0,0,.12)}.shine-effect{position:relative;overflow:hidden}.shine-effect::after{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 40%,rgba(255,255,255,.05) 50%,transparent 60%);transform:translateX(-100%);transition:transform .6s ease}.shine-effect:hover::after{transform:translateX(100%)}@keyframes skeleton-pulse{0%,100%{background-position:200% center}50%{background-position:-200% center}}.skeleton{background:linear-gradient(90deg,var(--color-surface-3) 25%,var(--color-surface-2) 50%,var(--color-surface-3) 75%);background-size:200% 100%;animation:skeleton-pulse 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes countUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.count-animated{animation:countUp .5s ease forwards}.btn-ripple{position:relative;overflow:hidden}.btn-ripple::after{content:'';position:absolute;width:100%;height:100%;top:0;left:0;background:radial-gradient(circle,rgba(255,255,255,.3) 10%,transparent 10%);transform:scale(10,10);opacity:0;transition:transform .5s,opacity 1s}.btn-ripple:active::after{transform:scale(0,0);opacity:.3;transition:0s}.btn svg{transition:transform .3s ease}.btn:hover svg{transform:translateX(3px)}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes gradient-border{0%,100%{border-color:var(--color-primary)}50%{border-color:var(--color-secondary)}}@keyframes text-reveal{0%{clip-path:inset(0 100% 0 0)}100%{clip-path:inset(0 0 0 0)}}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important}.whatsapp-float{animation:none}.hero-scroll-indicator{animation:none}.solar-ray{animation:none}}