@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInRight{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 pulse{0%,100%{opacity:1}50%{opacity:.8}}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes shimmer{0%{background-position:-1000px 0}100%{background-position:1000px 0}}.animate-fade-in{animation:fadeIn var(--transition-base) ease-out}.animate-fade-in-up{animation:fadeInUp var(--transition-base) ease-out}.animate-fade-in-down{animation:fadeInDown var(--transition-base) ease-out}.animate-slide-in-left{animation:slideInLeft var(--transition-base) ease-out}.animate-slide-in-right{animation:slideInRight var(--transition-base) ease-out}.animate-scale-in{animation:scaleIn var(--transition-base) ease-out}.animate-pulse{animation:2s ease-in-out infinite pulse}.animate-spin{animation:1s linear infinite spin}.animate-bounce{animation:1s ease-in-out infinite bounce}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.hover-lift{transition:transform var(--transition-base),box-shadow var(--transition-base)}.hover-lift:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.hover-scale{transition:transform var(--transition-base)}.hover-scale:hover{transform:scale(1.05)}.hover-scale-sm:hover{transform:scale(1.02)}.hover-brightness{transition:filter var(--transition-base)}.hover-brightness:hover{filter:brightness(1.1)}.hover-shadow{transition:box-shadow var(--transition-base)}.hover-shadow:hover{box-shadow:var(--shadow-xl)}.skeleton{background:linear-gradient(90deg,var(--color-border-light) 0,var(--color-border) 50%,var(--color-border-light) 100%);background-size:1000px 100%;animation:2s infinite shimmer;border-radius:var(--radius-md)}.skeleton-text{height:1em;margin-bottom:.5em}.skeleton-title{height:1.5em;width:60%;margin-bottom:1em}.skeleton-avatar{width:48px;height:48px;border-radius:50%}.skeleton-card{height:200px;width:100%}.spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:.8s linear infinite spin}.spinner-sm{width:20px;height:20px;border-width:2px}.scroll-fade-in{opacity:0;transform:translateY(30px);transition:opacity var(--transition-slow),transform var(--transition-slow)}.scroll-fade-in.is-visible{opacity:1;transform:translateY(0)}.img-zoom-container{overflow:hidden;border-radius:var(--radius-md)}.img-zoom{transition:transform var(--transition-slow);display:block;width:100%}.img-zoom-container:hover .img-zoom{transform:scale(1.1)}.img-grayscale{filter:grayscale(100%);transition:filter var(--transition-base)}.img-grayscale:hover{filter:grayscale(0%)}.carousel-fade .carousel-item{opacity:0;transition:opacity .6s ease-in-out}.carousel-fade .carousel-item.active{opacity:1}.btn-ripple{position:relative;overflow:hidden}.btn-ripple::after{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-ripple:active::after{width:300px;height:300px}.progress-bar-animated{animation:2s linear infinite shimmer;background:linear-gradient(90deg,var(--color-primary) 0,var(--color-primary-light) 50%,var(--color-primary) 100%);background-size:200% 100%}.stagger-children>*{opacity:0;animation:.5s ease-out forwards fadeInUp}.stagger-children>:first-child{animation-delay:.1s}.stagger-children>:nth-child(2){animation-delay:.2s}.stagger-children>:nth-child(3){animation-delay:.3s}.stagger-children>:nth-child(4){animation-delay:.4s}.stagger-children>:nth-child(5){animation-delay:.5s}.stagger-children>:nth-child(6){animation-delay:.6s}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}.scroll-fade-in{opacity:1;transform:none}}