@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{from{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes scaleUp{from{transform:scale(1)}to{transform:scale(1.05)}}@keyframes bounce{0%,20%,50%,80%,100%{transform:translateY(0)}40%{transform:translateY(-20px)}60%{transform:translateY(-10px)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}100%{transform:scale(1)}}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes glow{0%,100%{box-shadow:0 0 20px rgb(31 94 164 / .3)}50%{box-shadow:0 0 40px rgb(31 94 164 / .6)}}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}@keyframes slideInLeft{from{transform:translateX(-100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInRight{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInUp{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInDown{from{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes wave{0%{transform:translateX(0) translateZ(0) scaleY(1)}50%{transform:translateX(-25%) translateZ(0) scaleY(.8)}100%{transform:translateX(-50%) translateZ(0) scaleY(1)}}@keyframes gradientText{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}.animate-fade-in{animation:fadeIn 0.6s ease forwards}.animate-fade-in-up{animation:fadeInUp 0.6s ease forwards}.animate-fade-in-down{animation:fadeInDown 0.6s ease forwards}.animate-fade-in-left{animation:fadeInLeft 0.6s ease forwards}.animate-fade-in-right{animation:fadeInRight 0.6s ease forwards}.animate-scale-in{animation:scaleIn 0.6s ease forwards}.animate-bounce{animation:bounce 2s infinite}.animate-pulse{animation:pulse 2s infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-rotate{animation:rotate 10s linear infinite}.animate-glow{animation:glow 2s ease-in-out infinite}.delay-100{animation-delay:100ms}.delay-200{animation-delay:200ms}.delay-300{animation-delay:300ms}.delay-400{animation-delay:400ms}.delay-500{animation-delay:500ms}.delay-600{animation-delay:600ms}.delay-700{animation-delay:700ms}.delay-800{animation-delay:800ms}.delay-900{animation-delay:900ms}.delay-1000{animation-delay:1000ms}.duration-fast{animation-duration:200ms}.duration-normal{animation-duration:400ms}.duration-slow{animation-duration:600ms}.duration-slower{animation-duration:1000ms}.hover-lift{transition:transform 0.3s ease,box-shadow 0.3s ease}.hover-lift:hover{transform:translateY(-8px);box-shadow:0 20px 40px rgb(0 0 0 / .15)}.hover-scale{transition:transform 0.3s ease}.hover-scale:hover{transform:scale(1.05)}.hover-glow{transition:box-shadow 0.3s ease}.hover-glow:hover{box-shadow:0 0 30px rgb(31 94 164 / .4)}.hover-shine{position:relative;overflow:hidden}.hover-shine::after{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(to right,#fff0 0%,rgb(255 255 255 / .3) 50%,#fff0 100%);transform:rotate(30deg);transition:left 0.5s ease;left:-200%}.hover-shine:hover::after{left:200%}.hover-underline{position:relative}.hover-underline::after{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--color-accent-gold);transition:width 0.3s ease}.hover-underline:hover::after{width:100%}[data-animate]{opacity:0;transition:all 0.8s cubic-bezier(.4,0,.2,1)}[data-animate="fade-up"]{transform:translateY(40px)}[data-animate="fade-down"]{transform:translateY(-40px)}[data-animate="fade-left"]{transform:translateX(-40px)}[data-animate="fade-right"]{transform:translateX(40px)}[data-animate="scale"]{transform:scale(.9)}[data-animate="rotate"]{transform:rotate(-10deg)}[data-animate].animated{opacity:1;transform:none}.stagger-children>*:nth-child(1){transition-delay:0ms}.stagger-children>*:nth-child(2){transition-delay:100ms}.stagger-children>*:nth-child(3){transition-delay:200ms}.stagger-children>*:nth-child(4){transition-delay:300ms}.stagger-children>*:nth-child(5){transition-delay:400ms}.stagger-children>*:nth-child(6){transition-delay:500ms}.spinner{width:40px;height:40px;border:3px solid var(--color-gray-200);border-top-color:var(--color-primary-500);border-radius:50%;animation:rotate 0.8s linear infinite}.loading-dots{display:flex;gap:8px}.loading-dots span{width:10px;height:10px;background:var(--color-primary-500);border-radius:50%;animation:bounce 1.4s ease-in-out infinite both}.loading-dots span:nth-child(1){animation-delay:-0.32s}.loading-dots span:nth-child(2){animation-delay:-0.16s}.skeleton{background:linear-gradient(90deg,var(--color-gray-200) 25%,var(--color-gray-100) 50%,var(--color-gray-200) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-md)}.parallax{will-change:transform}.text-reveal{overflow:hidden}.text-reveal span{display:inline-block;transform:translateY(100%);animation:slideInUp 0.6s ease forwards}.gradient-text-animated{background:linear-gradient(90deg,var(--color-primary-500),var(--color-accent-gold),var(--color-primary-500));background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:#fff0;animation:gradientText 3s linear infinite}.ripple{position:relative;overflow:hidden}.ripple::after{content:'';position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none;background-image:radial-gradient(circle,rgb(255 255 255 / .3) 10%,transparent 10.01%);background-repeat:no-repeat;background-position:50%;transform:scale(10,10);opacity:0;transition:transform 0.5s,opacity 1s}.ripple:active::after{transform:scale(0,0);opacity:.3;transition:0s}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important}[data-animate]{opacity:1;transform:none}}