@keyframes blob{0%{transform:translate(0) scale(1)}33%{transform:translate(30px,-50px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}to{transform:translate(0) scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes tilt{0%,50%,to{transform:rotate(0deg)}25%{transform:rotate(1deg)}75%{transform:rotate(-1deg)}}.animate-blob{animation:blob 7s infinite}.animate-float{animation:float 6s ease-in-out infinite}.animate-tilt{animation:tilt 10s linear infinite}.bg-grid-pattern{background-image:linear-gradient(rgba(var(--foreground),.1) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--foreground),.1) 1px,transparent 1px);background-size:50px 50px}.dark .animate-blob{mix-blend-mode:screen}.gradient-text{background:linear-gradient(135deg,hsl(var(--primary)),hsl(var(--accent)));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-size:200% 200%;animation:gradient-shift 3s ease infinite}@keyframes gradient-shift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.skill-badge{transition:all .3s ease}.skill-badge:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}