/* ====== 柔和动画效果（无跳跃） ====== */

/* 柔和浮动 */
@keyframes float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-6px)}
}

/* 页面载入动画（平滑） */
@keyframes fadeInUp{
  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 breathing{
  0%,100%{opacity:1}
  50%{opacity:0.7}
}

/* 星星闪烁（柔和） */
@keyframes twinkle{
  0%,100%{
    opacity:0.9;
    filter:drop-shadow(0 0 3px rgba(255, 213, 79, 0.6));
  }
  50%{
    opacity:0.5;
    filter:drop-shadow(0 0 8px rgba(255, 213, 79, 0.8));
  }
}

/* 云朵飘动 */
@keyframes cloudDrift{
  0%{transform:translateX(0)}
  50%{transform:translateX(10px)}
  100%{transform:translateX(0)}
}

/* 氛围变换 */
@keyframes atmosphereShift{
  0%{
    opacity:1;
    filter:brightness(1);
  }
  50%{
    opacity:0.95;
    filter:brightness(1.03);
  }
  100%{
    opacity:1;
    filter:brightness(1);
  }
}

/* 闪光扫过 */
@keyframes shimmer{
  0%{transform:translateX(-100%) rotate(25deg)}
  100%{transform:translateX(200%) rotate(25deg)}
}

/* 应用类 */
.floaty{animation:float 4s ease-in-out infinite}
.fade-in-up{animation:fadeInUp 500ms ease-out both}
.slide-in-left{animation:slideInLeft 400ms ease-out both}
.slide-in-right{animation:slideInRight 400ms ease-out both}
.breathing{animation:breathing 2s ease-in-out infinite}

/* 装饰动画 */
.banner-decoration .star{animation:twinkle 3s ease-in-out infinite}
.banner-decoration .cloud{animation:cloudDrift 10s ease-in-out infinite}
.sparkles .sparkle{animation:twinkle 2.5s ease-in-out infinite}
.sparkles .sparkle:nth-child(2){animation-delay:0.4s}
.sparkles .sparkle:nth-child(3){animation-delay:0.8s}

/* 延迟加载动画（交错效果） */
.fade-in-up:nth-child(1){animation-delay:0.05s}
.fade-in-up:nth-child(2){animation-delay:0.1s}
.fade-in-up:nth-child(3){animation-delay:0.15s}
.fade-in-up:nth-child(4){animation-delay:0.2s}
.fade-in-up:nth-child(5){animation-delay:0.25s}

/* 用户偏好：减少动画 */
.reduce-motion *{
  animation-duration:0.001ms !important;
  animation-iteration-count:1 !important;
  transition-duration:0.001ms !important;
  scroll-behavior:auto !important;
}

@media (prefers-reduced-motion:reduce){
  *{
    animation-duration:0.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.001ms !important;
  }
}


