@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInLeft{0%{transform:translateX(-50px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInRight{0%{transform:translateX(50px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes scaleUp{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.animate-fade-in{animation:fadeIn .6s ease-out forwards}.animate-slide-up{animation:slideUp .6s ease-out forwards}.animate-slide-left{animation:slideInLeft .6s ease-out forwards}.animate-slide-right{animation:slideInRight .6s ease-out forwards}.animate-scale-up{animation:scaleUp .6s ease-out forwards}.animate-pulse{animation:pulse 2s ease-in-out infinite}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.hover-scale{transition:transform .3s ease}.hover-scale:hover{transform:scale(1.05)}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-5px);box-shadow:0 10px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.hover-bright{transition:filter .3s ease}.hover-bright:hover{filter:brightness(1.1)}.hover-rotate{transition:transform .3s ease}.hover-rotate:hover{transform:rotate(3deg)}.hover-card{transition:all .3s ease}.hover-card:hover{transform:translateY(-5px) scale(1.02);box-shadow:0 15px 30px -10px rgba(0,0,0,.15),0 5px 15px -5px rgba(0,0,0,.1)}.hover-button{transition:all .2s ease;position:relative;overflow:hidden}.hover-button:hover{transform:translateY(-2px);box-shadow:0 7px 14px rgba(0,0,0,.1),0 3px 6px rgba(0,0,0,.08)}.hover-button:active{transform:translateY(0);box-shadow:0 4px 6px rgba(0,0,0,.1),0 1px 3px rgba(0,0,0,.08)}.hover-button:after{content:"";display:block;position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none;background-image:radial-gradient(circle,#fff 10%,transparent 10.01%);background-repeat:no-repeat;background-position:50%;transform:scale(10);opacity:0;transition:transform .5s,opacity .5s}.hover-button:active:after{transform:scale(0);opacity:.3;transition:0s}.reveal{transition:all .8s ease}.reveal,.reveal-fade{opacity:0}.reveal-slide-up{opacity:0;transform:translateY(50px)}.reveal-slide-left{opacity:0;transform:translateX(-50px)}.reveal-slide-right{opacity:0;transform:translateX(50px)}.reveal-scale{opacity:0;transform:scale(.9)}.revealed{opacity:1;transform:translateY(0) translateX(0) scale(1)}@keyframes ripple{0%{transform:scale(0);opacity:.5}to{transform:scale(2);opacity:0}}.animate-ripple{animation:ripple .6s linear;opacity:0}.interactive-shine{position:relative;overflow:hidden}.shine-animation{animation:shine 1.5s infinite}@keyframes shine{0%{transform:translateX(-100%) skewX(-20deg)}to{transform:translateX(200%) skewX(-20deg)}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-8px)}to{transform:translateY(0)}}.animate-float{animation:float 3s ease-in-out infinite}.bg-gradient-shift{background-size:400% 400%;animation:gradientShift 15s ease infinite}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.hover-button-grow{transition:all .2s ease-in-out}.hover-button-grow:hover{transform:scale(1.05)}.scroll-indicator{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);width:30px;height:50px;border:2px solid;border-radius:25px}.scroll-indicator:before{content:"";position:absolute;top:10px;left:50%;width:6px;height:6px;margin-left:-3px;background-color:currentColor;border-radius:50%;opacity:1;animation:scrollIndicator 2s infinite}@keyframes scrollIndicator{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}.text-reveal-container{position:relative;overflow:hidden;display:inline-block}.text-reveal{animation:textReveal .8s ease forwards}.text-reveal-container:after{content:"";position:absolute;top:0;right:0;width:100%;height:100%;background:currentColor;animation:textRevealMask .8s ease forwards}@keyframes textReveal{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes textRevealMask{0%{transform:translateX(0)}to{transform:translateX(101%)}}.magnetic-effect{transition:transform .3s cubic-bezier(.75,-.5,0,1.75)}.card-tilt{transition:transform .1s ease;transform-style:preserve-3d}.card-tilt:hover{transform:perspective(1000px) rotateX(var(--rotateX,0deg)) rotateY(var(--rotateY,0deg))}.expandable-card{transition:all .3s ease;overflow:hidden}.expandable-card:hover{transform:scale(1.03);box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}html{scroll-behavior:smooth}.cursor-glow{position:fixed;width:300px;height:300px;background:radial-gradient(circle,rgba(var(--color-primary-rgb),.15) 0,rgba(var(--color-primary-rgb),0) 70%);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:9999;opacity:0;transition:opacity .3s ease}