@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-15px)}to{transform:translateY(0)}}.animate-float{animation-name:float;animation-duration:5s;animation-timing-function:ease-in-out;animation-iteration-count:infinite}@keyframes pulse-slow{0%,to{opacity:.3}50%{opacity:.6}}.animate-pulse-slow{animation:pulse-slow 4s cubic-bezier(.4,0,.6,1) infinite}@keyframes gradient-shift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.animate-gradient{animation:gradient-shift 8s ease infinite;background-size:200% 200%}.text-shadow-sm{text-shadow:0 1px 2px rgba(0,0,0,.3)}.text-shadow-md{text-shadow:0 2px 4px rgba(0,0,0,.5)}.text-shadow-lg{text-shadow:0 4px 8px rgba(0,0,0,.6)}.text-shadow-xl{text-shadow:0 8px 16px rgba(0,0,0,.7)}.white-text-outline{text-shadow:-1px -1px 0 rgba(255,255,255,.5),1px -1px 0 rgba(255,255,255,.5),-1px 1px 0 rgba(255,255,255,.5),1px 1px 0 rgba(255,255,255,.5)}.dark-text-outline{text-shadow:-1px -1px 0 rgba(0,0,0,.5),1px -1px 0 rgba(0,0,0,.5),-1px 1px 0 rgba(0,0,0,.5),1px 1px 0 rgba(0,0,0,.5)}.hover-lift{transition:transform .3s ease}.hover-lift:hover{transform:translateY(-5px)}.card-gradient{background:linear-gradient(to bottom right,rgba(255,255,255,.9),rgba(255,255,255,.7));backdrop-filter:blur(10px)}