@keyframes gradient-x{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.animate-gradient-x{background-size:200% 200%;animation:gradient-x 5s ease infinite}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-fade-in-scale{animation:fadeInScale .6s ease-out forwards}@keyframes pulse-slow{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.6;transform:scale(1.05)}}.animate-pulse-slow{animation:pulse-slow 4s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.animate-float{animation:float 3s ease-in-out infinite}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.animate-shimmer{animation:shimmer 3s linear infinite;background:linear-gradient(to right,#fff0,#ffffff4d,#fff0);background-size:1000px 100%}@keyframes slideInBottom{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.animate-slide-in-bottom{animation:slideInBottom .7s ease-out forwards}.backdrop-blur-strong{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.text-shadow-sm{text-shadow:0 1px 2px rgba(0,0,0,.1)}.text-shadow-lg{text-shadow:0 4px 8px rgba(0,0,0,.3)}*{scrollbar-width:thin;scrollbar-color:#cbd5e1 #f8fafc}*:focus-visible{outline:2px solid #3b82f6;outline-offset:2px;border-radius:4px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.no-print{display:none!important}}@media(prefers-contrast:high){*{border-color:currentColor!important}}
