@keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@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 slideInUp{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scaleIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-1000px 0}100%{background-position:1000px 0}}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes glow{0%,100%{box-shadow:0 0 5px rgba(220,38,38,.5)}50%{box-shadow:0 0 20px rgba(220,38,38,.8),0 0 30px rgba(220,38,38,.6)}}@keyframes ripple{0%{transform:scale(0);opacity:1}100%{transform:scale(4);opacity:0}}.animate-fade-in{animation:fadeIn .6s ease-out forwards}.animate-fade-in-up{animation:fadeInUp .6s ease-out forwards}.animate-fade-in-down{animation:fadeInDown .6s ease-out forwards}.animate-fade-in-left{animation:fadeInLeft .6s ease-out forwards}.animate-fade-in-right{animation:fadeInRight .6s ease-out forwards}.animate-slide-in-up{animation:slideInUp .5s ease-out forwards}.animate-scale-in{animation:scaleIn .4s ease-out forwards}.animate-delay-1{animation-delay:.1s;opacity:0}.animate-delay-2{animation-delay:.2s;opacity:0}.animate-delay-3{animation-delay:.3s;opacity:0}.animate-delay-4{animation-delay:.4s;opacity:0}.animate-delay-5{animation-delay:.5s;opacity:0}.skeleton{background:linear-gradient(90deg,#f0f0f0 0,#e0e0e0 20%,#f0f0f0 40%,#f0f0f0 100%);background-size:1000px 100%;animation:shimmer 2s infinite linear;border-radius:4px}.skeleton-text{height:16px;margin-bottom:8px;border-radius:4px}.skeleton-title{height:24px;width:60%;margin-bottom:12px;border-radius:4px}.skeleton-avatar{width:48px;height:48px;border-radius:50%}.skeleton-card{height:200px;border-radius:12px}.pulse-loading{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.spinner{border:3px solid rgba(220,38,38,.1);border-top:3px solid #dc2626;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}.spinner-small{width:20px;height:20px;border-width:2px}.hover-float:hover{animation:float 3s ease-in-out infinite}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-5px);box-shadow:0 10px 25px rgba(0,0,0,.15)}.hover-scale{transition:transform .3s ease}.hover-scale:hover{transform:scale(1.05)}.hover-glow:hover{animation:glow 2s ease-in-out infinite}.card-animate{transition:all .3s cubic-bezier(.4, 0, .2, 1)}.card-animate:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 40px rgba(220,38,38,.2)}.btn-animate{position:relative;overflow:hidden;transition:all .3s ease}.btn-animate::before{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.5);transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn-animate:hover::before{width:300px;height:300px}.btn-animate:active{transform:scale(.95)}.smooth-transition{transition:all .3s cubic-bezier(.4, 0, .2, 1)}body{animation:fadeIn .5s ease-out}section{animation:fadeInUp .6s ease-out forwards;opacity:0}section:first-child{animation-delay:.1s}section:nth-child(2){animation-delay:.2s}section:nth-child(3){animation-delay:.3s}section:nth-child(4){animation-delay:.4s}.grid-animate>*{animation:fadeInUp .5s ease-out forwards;opacity:0}.grid-animate>:first-child{animation-delay:50ms}.grid-animate>:nth-child(2){animation-delay:.1s}.grid-animate>:nth-child(3){animation-delay:.15s}.grid-animate>:nth-child(4){animation-delay:.2s}.grid-animate>:nth-child(5){animation-delay:.25s}.grid-animate>:nth-child(6){animation-delay:.3s}.grid-animate>:nth-child(7){animation-delay:.35s}.grid-animate>:nth-child(8){animation-delay:.4s}.grid-animate>:nth-child(9){animation-delay:.45s}@keyframes slideInRight{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.notification-enter{animation:slideInRight .4s ease-out forwards}@keyframes progressBar{from{width:0%}to{width:100%}}.progress-animate{animation:progressBar 2s ease-out forwards}.scroll-reveal{opacity:0;transform:translateY(50px);transition:opacity .6s ease,transform .6s ease}.scroll-reveal.revealed{opacity:1;transform:translateY(0)}@keyframes checkmark{0%{stroke-dashoffset:100}100%{stroke-dashoffset:0}}.checkmark-animate{stroke-dasharray:100;animation:checkmark .8s ease-out forwards}@keyframes bounceAttention{0%,100%,20%,50%,80%{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.bounce-attention{animation:bounceAttention 1s ease}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}.shake-error{animation:shake .5s ease}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important}}