@keyframes fadeIn{from{opacity:0}to{opacity:1}}@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)}}.animate-on-scroll:not(.visible){opacity:0!important;transform:translateY(30px)!important}.animate-on-scroll{transition:opacity .8s ease-out,transform .8s ease-out}.animate-on-scroll.visible{opacity:1!important;transform:translateY(0)!important}.animate-delay-1{transition-delay:.1s}.animate-delay-2{transition-delay:.2s}.animate-delay-3{transition-delay:.3s}.animate-delay-4{transition-delay:.4s}.hover-lift{transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1)}.hover-lift:hover{transform:translateY(-8px)}.button-ripple{position:relative;overflow:hidden}.button-ripple::after{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.5);transform:translate(-50%,-50%);transition:width .6s,height .6s}.button-ripple:active::after{width:300px;height:300px}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}.pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1)infinite}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}.bounce{animation:bounce 1s infinite}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}.shake{animation:shake .5s}@keyframes gradientShift{0%{background-position:0}50%{background-position:100%}100%{background-position:0}}.animated-gradient{background-size:200% 200%;animation:gradientShift 15s ease infinite}@keyframes shimmer{0%{background-position:-1e3px 0}100%{background-position:1e3px 0}}.shimmer{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:1e3px 100%;animation:shimmer 2s infinite}@keyframes slideInFromLeft{from{transform:translateX(-100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInFromRight{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes rotateIn{from{opacity:0;transform:rotate(-180deg)}to{opacity:1;transform:rotate(0)}}.glow{animation:glow 2s ease-in-out infinite alternate}@keyframes glow{from{box-shadow:0 0 5px rgba(239,68,68,.5),0 0 10px rgba(239,68,68,.3)}to{box-shadow:0 0 20px rgba(239,68,68,.8),0 0 30px rgba(239,68,68,.4)}}@keyframes typewriter{from{width:0}to{width:100%}}.typewriter{overflow:hidden;border-right:2px solid;white-space:nowrap;animation:typewriter 3s steps(40,end),blink .75s step-end infinite}@keyframes blink{50%{border-color:transparent}}.flip-card{perspective:1e3px}.flip-card-inner{transition:transform .6s;transform-style:preserve-3d}.flip-card:hover .flip-card-inner{transform:rotateY(180deg)}.flip-card-front,.flip-card-back{backface-visibility:hidden}.flip-card-back{transform:rotateY(180deg)}@keyframes progressBar{from{width:0}to{width:100%}}.progress-bar{animation:progressBar 2s ease-out forwards}html{scroll-behavior:smooth}.parallax{background-attachment:fixed;background-position:50%;background-repeat:no-repeat;background-size:cover}*:focus-visible{outline:2px solid #ef4444;outline-offset:2px;border-radius:.25rem}a,button,input,textarea,select{transition:all .2s cubic-bezier(.4,0,.2,1)}@keyframes spin{to{transform:rotate(360deg)}}.spinner{animation:spin 1s linear infinite}.stagger-children>*:not(.visible){opacity:0!important;transform:translateY(30px)!important}.stagger-children>*{transition:opacity .6s ease-out,transform .6s ease-out}.stagger-children>*.visible{opacity:1!important;transform:translateY(0)!important}.stagger-children>*:nth-child(1){transition-delay:.1s}.stagger-children>*:nth-child(2){transition-delay:.2s}.stagger-children>*:nth-child(3){transition-delay:.3s}.stagger-children>*:nth-child(4){transition-delay:.4s}.stagger-children>*:nth-child(5){transition-delay:.5s}.stagger-children>*:nth-child(6){transition-delay:.6s}