@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes pulseRing{0%{box-shadow:0 0 #667eea66}70%{box-shadow:0 0 0 10px #667eea00}to{box-shadow:0 0 #667eea00}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes ripple{to{opacity:0;transform:scale(4)}}@keyframes glow{0%,to{box-shadow:0 0 5px #667eea80}50%{box-shadow:0 0 20px #667eeacc,0 0 30px #667eea99}}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes floatDelayed{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes spinner{to{transform:rotate(360deg)}}@keyframes pulseLoading{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes skeleton{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-on-scroll{opacity:0;transition:opacity .6s ease-out,transform .6s ease-out}.animate-on-scroll.animate-visible{opacity:1}.fade-in-up{opacity:0;animation:.6s ease-out forwards fadeInUp}.fade-in-up.delay-1{animation-delay:.1s}.fade-in-up.delay-2{animation-delay:.2s}.fade-in-up.delay-3{animation-delay:.3s}.fade-in-up.delay-4{animation-delay:.4s}.fade-in-up.delay-5{animation-delay:.5s}.fade-in-up.delay-6{animation-delay:.6s}.fade-in-down{opacity:0;animation:.6s ease-out forwards fadeInDown}.fade-in-down.delay-1{animation-delay:.1s}.fade-in-down.delay-2{animation-delay:.2s}.fade-in-down.delay-3{animation-delay:.3s}.fade-in-left{opacity:0;animation:.6s ease-out forwards fadeInLeft}.fade-in-right{opacity:0;animation:.6s ease-out forwards fadeInRight}.scale-in{opacity:0;animation:.5s ease-out forwards scaleIn}.slide-in-up{opacity:0;animation:.5s ease-out forwards slideInUp}.slide-in-down{opacity:0;animation:.5s ease-out forwards slideInDown}.card-hover{transition:transform var(--transition-base),box-shadow var(--transition-base)}.card-hover:hover{box-shadow:var(--shadow-lg);transform:translateY(-8px)}.btn-ripple{position:relative;overflow:hidden}.btn-ripple:after{content:"";background:#ffffff4d;border-radius:50%;width:0;height:0;transition:width .6s,height .6s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.btn-ripple:active:after{width:300px;height:300px;transition:width,height}.btn-glow:hover{animation:1.5s ease-in-out infinite glow}.badge-pulse{animation:2s ease-in-out infinite pulse}.icon-float{animation:3s ease-in-out infinite float}.icon-float-delayed{animation:3s ease-in-out 1.5s infinite floatDelayed}.spinner{animation:1s linear infinite spinner}.spinner-sm{border-width:2px;width:16px;height:16px}.spinner-md{border-width:3px;width:24px;height:24px}.spinner-lg{border-width:4px;width:32px;height:32px}.shimmer{background:linear-gradient(90deg,var(--gray-100)0%,var(--gray-200)50%,var(--gray-100)100%);background-size:200% 100%;animation:1.5s infinite shimmer}.skeleton{background:linear-gradient(90deg,var(--gray-100)0%,var(--gray-200)50%,var(--gray-100)100%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s ease-in-out infinite skeleton}.skeleton-text{width:100%;height:1em}.skeleton-text.short{width:60%}.skeleton-text.medium{width:80%}.skeleton-text.long{width:100%}.skeleton-circle{border-radius:50%}.skeleton-button{border-radius:var(--radius-lg);height:48px}.gpu-accelerated{will-change:transform;transform:translateZ(0)}.gpu-accelerated-opacity{will-change:opacity}.gpu-composite{will-change:transform,opacity;backface-visibility:hidden;perspective:1000px;transform:translateZ(0)}.scroll-reveal{opacity:0;transition:opacity .6s ease-out,transform .6s ease-out;transform:translateY(30px)}.scroll-reveal.revealed{opacity:1;transform:translateY(0)}.scroll-reveal.delay-1{transition-delay:.1s}.scroll-reveal.delay-2{transition-delay:.2s}.scroll-reveal.delay-3{transition-delay:.3s}.scroll-reveal.delay-4{transition-delay:.4s}.scroll-reveal.delay-5{transition-delay:.5s}.scroll-reveal.delay-6{transition-delay:.6s}.error-shake{animation:.5s ease-in-out shake}.success-bounce{animation:.5s ease-in-out bounce}.fade-out{animation:.3s ease-out forwards fadeIn}.fade-out.to-hidden{opacity:0;animation:.3s ease-in forwards fadeIn}.parallax{background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed}.parallax-transform{will-change:transform}