@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeInUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{from{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{from{opacity:0;transform:translateX(-60px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:translateX(0)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.08)}70%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes bounceInUp{0%{opacity:0;transform:translateY(60px)scale(.9)}60%{opacity:1;transform:translateY(-15px)scale(1.05)}80%{transform:translateY(5px)scale(.98)}100%{transform:translateY(0)scale(1)}}@keyframes bounceInDown{0%{opacity:0;transform:translateY(-60px)scale(.9)}60%{opacity:1;transform:translateY(15px)scale(1.05)}80%{transform:translateY(-5px)scale(.98)}100%{transform:translateY(0)scale(1)}}@keyframes scaleIn{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes popIn{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.2)}100%{opacity:1;transform:scale(1)}}@keyframes slideInLeft{from{opacity:0;transform:translateX(-100px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInRight{from{opacity:0;transform:translateX(100px)}to{opacity:1;transform:translateX(0)}}@keyframes rotateIn{from{opacity:0;transform:rotate(-180deg)scale(.5)}to{opacity:1;transform:rotate(0)scale(1)}}@keyframes rotate360{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes floatSlow{0%,100%{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}@keyframes ripple{0%{box-shadow:0 0 rgba(255,255,255,.7)}100%{box-shadow:0 0 0 20px rgba(255,255,255,0)}}@keyframes zoomIn{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes kenBurns{0%{transform:scale(1)}100%{transform:scale(1.1)}}@keyframes wave{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes flipIn{from{transform:perspective(400px)rotateY(90deg);opacity:0}to{transform:perspective(400px)rotateY(0);opacity:1}}@keyframes glow{0%,100%{box-shadow:0 0 5px rgba(0,123,255,.5)}50%{box-shadow:0 0 20px rgba(0,123,255,.8)}}.scroll-reveal{opacity:0;transition:none}.scroll-reveal.revealed{opacity:1}.fade-in{animation:fadeIn .8s ease-out forwards}.fade-in-up{animation:fadeInUp .8s ease-out forwards}.fade-in-down{animation:fadeInDown .8s ease-out forwards}.fade-in-left{animation:fadeInLeft .8s ease-out forwards}.fade-in-right{animation:fadeInRight .8s ease-out forwards}.bounce-in{animation:bounceIn .8s cubic-bezier(.68,-.55,.265,1.55)forwards}.bounce-in-up{animation:bounceInUp .8s cubic-bezier(.68,-.55,.265,1.55)forwards}.bounce-in-down{animation:bounceInDown .8s cubic-bezier(.68,-.55,.265,1.55)forwards}.scale-in{animation:scaleIn .6s ease-out forwards}.pop-in{animation:popIn .5s cubic-bezier(.68,-.55,.265,1.55)forwards}.zoom-in{animation:zoomIn .6s ease-out forwards}.slide-in-left{animation:slideInLeft .8s ease-out forwards}.slide-in-right{animation:slideInRight .8s ease-out forwards}.rotate-in{animation:rotateIn .8s ease-out forwards}.flip-in{animation:flipIn .7s ease-out forwards}.pulse{animation:pulse 2s ease-in-out infinite}.float{animation:float 3s ease-in-out infinite}.float-slow{animation:floatSlow 6s ease-in-out infinite}.rotate-360{animation:rotate360 .6s ease-in-out}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}.delay-5{animation-delay:.5s}.delay-6{animation-delay:.6s}.delay-7{animation-delay:.7s}.delay-8{animation-delay:.8s}.delay-9{animation-delay:.9s}.delay-10{animation-delay:1s}.lift-on-hover{transition:transform .3s ease,box-shadow .3s ease}.lift-on-hover:hover{transform:translateY(-10px);box-shadow:0 10px 30px rgba(0,0,0,.2)}.scale-on-hover{transition:transform .3s ease}.scale-on-hover:hover{transform:scale(1.05)}.zoom-on-hover{overflow:hidden}.zoom-on-hover img{transition:transform .5s ease}.zoom-on-hover:hover img{transform:scale(1.15)}.rotate-on-hover{transition:transform .3s ease}.rotate-on-hover:hover{transform:rotate(360deg)}.glow-on-hover{transition:box-shadow .3s ease}.glow-on-hover:hover{animation:glow 1.5s ease-in-out infinite}.flip-card{perspective:1e3px}.flip-card-inner{transition:transform .6s;transform-style:preserve-3d}.flip-card:hover .flip-card-inner{transform:rotateY(180deg)}.ripple-effect{position:relative;overflow:hidden}.ripple-effect::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}.ripple-effect:active::after{width:300px;height:300px}.underline-slide{position:relative;display:inline-block}.underline-slide::after{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:currentColor;transition:width .3s ease}.underline-slide:hover::after{width:100%}.ken-burns{overflow:hidden}.ken-burns img{animation:kenBurns 20s ease-in-out infinite alternate}.animated-border{position:relative}.animated-border::before{content:'';position:absolute;top:-3px;left:-3px;right:-3px;bottom:-3px;background:linear-gradient(45deg,#007bff,#00d4ff,#007bff);background-size:400%;border-radius:inherit;z-index:-1;animation:borderRotate 3s linear infinite;opacity:0;transition:opacity .3s ease}.animated-border:hover::before{opacity:1}@keyframes borderRotate{0%{background-position:0}50%{background-position:100%}100%{background-position:0}}.input-focus-glow{transition:border-color .3s ease,box-shadow .3s ease}.input-focus-glow:focus{border-color:#007bff;box-shadow:0 0 0 3px rgba(0,123,255,.25);outline:none}.float-label{position:relative}.float-label input,.float-label textarea{padding-top:20px}.float-label label{position:absolute;top:18px;left:12px;transition:all .3s ease;pointer-events:none;color:#999}.float-label input:focus+label,.float-label textarea:focus+label,.float-label input:not(:placeholder-shown)+label,.float-label textarea:not(:placeholder-shown)+label{top:5px;font-size:12px;color:#007bff}.will-animate{will-change:transform,opacity}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}