/* 开场动画 — DOM烟花 + 喵小姐字体 */
@font-face {
  font-family: 'MiaoFont';
  src: url('/fonts/miao-subset.woff2') format('woff2'), url('/fonts/miao.ttf');
}

:root { --z-preloader: 99999; --z-overlay: 10; }

#kuri-preloader {
  position: fixed; z-index: var(--z-preloader); inset: 0;
  background: #E8D7F9;
  overflow: hidden;
}
#kuri-preloader .emote-rain {
  position: absolute; width: 100%; height: 100%;
}
#kuri-preloader .emote-rain img {
  position: absolute;
  pointer-events: none;
  opacity: 0;
  animation: burstParticle 2.5s ease-out forwards;
}
@keyframes burstParticle {
  0%   { transform: translate(-50%,-50%) translate(0px,0px) rotate(0deg) scale(1); opacity: 1; }
  80%  { opacity: 1; }
  100% { transform: translate(-50%,-50%) translate(var(--dx),var(--dy)) rotate(var(--rot)) scale(0.5); opacity: 0; }
}

#kuri-preloader .overlay {
  position: fixed; inset: 0; z-index: var(--z-overlay);
  display: flex; align-items: center; justify-content: center;
  pointer-events: none;
}
#kuri-preloader .center-text {
  font-family: 'MiaoFont', sans-serif;
  font-size: clamp(2rem, 9vw, 4rem); color: #5b2c8a;
  text-shadow: 0 0 12px rgba(200,160,255,0.5), 0 0 30px rgba(180,130,255,0.3);
}
#kuri-preloader .center-text .char {
  display: inline-block;
  animation: charBounce 0.9s cubic-bezier(0.18,0.89,0.32,1.28) forwards;
}
@keyframes charBounce {
  0%   { opacity: 0; transform: translateY(-120px) scale(0) rotate(-45deg); }
  50%  { opacity: 1; transform: translateY(15px) scale(1.4) rotate(10deg); }
  70%  { transform: translateY(-8px) scale(0.85) rotate(-5deg); }
  85%  { transform: translateY(4px) scale(1.06) rotate(2deg); }
  100% { opacity: 1; transform: translateY(0) scale(1) rotate(0deg); }
}

@keyframes preloaderFadeOut {
  to { opacity: 0; pointer-events: none; }
}

@media (prefers-reduced-motion: reduce) {
  #kuri-preloader .emote-rain img,
  #kuri-preloader .center-text .char {
    animation: none;
    opacity: 1;
  }
  #kuri-preloader .center-text .char {
    transform: translateY(0) scale(1) rotate(0deg);
  }
}
