/* 基础动画属性 */
.fluent-animated {
  opacity: 0;
  visibility: hidden;
  will-change: transform, opacity;
  transition-property: transform, opacity;
  transition-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1);
}

.fluent-animated.animated {
  opacity: 1;
  visibility: visible;
}

/* 淡入动画 */
.fluent-fade {
  transform: translateY(0);
}

.fluent-fade.animated {
  animation: fluentFade 0.6s forwards;
}

/* 从下方滑入 */
.fluent-slide-up {
  transform: translateY(30px);
}

.fluent-slide-up.animated {
  transform: translateY(0);
}

/* 从左侧滑入 */
.fluent-slide-right {
  transform: translateX(-30px);
}

.fluent-slide-right.animated {
  transform: translateX(0);
}

/* 从右侧滑入 */
.fluent-slide-left {
  transform: translateX(30px);
}

.fluent-slide-left.animated {
  transform: translateX(0);
}

/* 缩放动画 */
.fluent-scale {
  transform: scale(0.9);
}

.fluent-scale.animated {
  transform: scale(1);
}

/* 旋转动画 */
.fluent-rotate {
  transform: rotate(-5deg);
}

.fluent-rotate.animated {
  transform: rotate(0);
}

/* 组合动画 */
.fluent-slide-up-fade {
  transform: translateY(30px);
  opacity: 0;
}

.fluent-slide-up-fade.animated {
  transform: translateY(0);
  opacity: 1;
}

/* 动画持续时间变体 */
.fluent-duration-fast {
  transition-duration: 400ms;
}

.fluent-duration-normal {
  transition-duration: 600ms;
}

.fluent-duration-slow {
  transition-duration: 800ms;
}

/* 动画延迟变体 */
.fluent-delay-0 {
  transition-delay: 0ms;
}

.fluent-delay-100 {
  transition-delay: 100ms;
}

.fluent-delay-200 {
  transition-delay: 200ms;
}

.fluent-delay-300 {
  transition-delay: 300ms;
}

.fluent-delay-400 {
  transition-delay: 400ms;
}

.fluent-delay-500 {
  transition-delay: 500ms;
}

/* 特殊动画效果 */
@keyframes fluentFade {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.fluent-pulse {
  animation: fluentPulse 2s infinite;
}

@keyframes fluentPulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}

.fluent-bounce {
  animation: fluentBounce 0.6s;
}

@keyframes fluentBounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-20px);
  }
  60% {
    transform: translateY(-10px);
  }
}

/* 悬停效果 */
.fluent-hover-lift {
  transition: transform 0.3s ease;
}

.fluent-hover-lift:hover {
  transform: translateY(-5px);
}

.fluent-hover-shadow {
  transition: box-shadow 0.3s ease;
}

.fluent-hover-shadow:hover {
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}

/* 媒体卡片特殊动画 */
.fluent-media-box {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.fluent-media-box:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}

.fluent-media-box .fluent-icon-container {
  transition: transform 0.3s ease;
}

.fluent-media-box:hover .fluent-icon-container {
  transform: scale(1.1) rotate(5deg);
} 