@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-fadeInUp{animation:fadeInUp .8s ease-out forwards}.animate-fadeInLeft{animation:fadeInLeft .8s ease-out forwards}.animate-fadeInRight{animation:fadeInRight .8s ease-out forwards}.animate-slideInUp{animation:slideInUp .6s ease-out forwards}.animate-scaleIn{animation:scaleIn .5s ease-out forwards}.animate-fadeIn{animation:fadeIn .3s ease-out forwards}.animate-float{animation:float 3s ease-in-out infinite}.animate-delay-100{animation-delay:.1s}.animate-delay-200{animation-delay:.2s}.animate-delay-300{animation-delay:.3s}.animate-delay-400{animation-delay:.4s}.animate-delay-500{animation-delay:.5s}.animate-delay-600{animation-delay:.6s}.animate-delay-700{animation-delay:.7s}.animate-delay-800{animation-delay:.8s}.project-card{transition:all .4s cubic-bezier(.4,0,.2,1)}.project-card:before{content:"";position:absolute;inset:0;border-radius:1rem;padding:2px;background:linear-gradient(45deg,#374151,#6b7280,#374151);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:xor;opacity:0;transition:opacity .4s ease;pointer-events:none}.project-card:hover:before{opacity:.6}.filter-btn{position:relative;overflow:hidden}.filter-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s ease}.filter-btn:hover:before{left:100%}.tech-card{transition:all .3s cubic-bezier(.4,0,.2,1)}.tech-card:hover{transform:translateY(-4px) scale(1.02)}