@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes pulse-gentle{0%,to{opacity:.7}50%{opacity:1}}@keyframes shimmer{0%{background-position:-100% 0}to{background-position:200% 0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideInRight{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes slideOutRight{0%{transform:translateX(0)}to{transform:translateX(100%)}}@keyframes scaleUp{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.text-shadow{text-shadow:0 2px 4px rgba(0,0,0,.15)}.animate-float{animation:float 3s ease-in-out infinite}.animate-pulse-gentle{animation:pulse-gentle 3s ease-in-out infinite}.animate-shimmer{background:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.1) 50%,hsla(0,0%,100%,0));background-size:200% 100%;animation:shimmer 3s infinite}.nav-item-hover{position:relative;overflow:hidden}.nav-item-hover:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:#fff;transition:width .3s ease}.nav-item-hover:hover:after{width:100%}.animate-fadeIn{animation:fadeIn .3s ease-in-out forwards}.animate-fadeOut{animation:fadeOut .3s ease-in-out forwards}.animate-slideInRight{animation:slideInRight .3s ease-in-out forwards}.animate-slideOutRight{animation:slideOutRight .3s ease-in-out forwards}.animate-scaleUp{animation:scaleUp .3s ease-in-out forwards}.mobile-menu-enter{opacity:0;transform:translateX(100%)}.mobile-menu-enter-active{transition:opacity .3s,transform .3s}.mobile-menu-enter-active,.mobile-menu-exit{opacity:1;transform:translateX(0)}.mobile-menu-exit-active{opacity:0;transform:translateX(100%);transition:opacity .3s,transform .3s}