/* SinhCraft 动效：海洋波浪 + 深色光晕 */
@keyframes soFlow {
  from { transform: translateX(0); }
  to { transform: translateX(-100vw); }
}

/* 深色主题光晕 */
#mc-fx-glow .mc-glow-ambient {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 70% 45% at 22% 12%, color-mix(in srgb, var(--green-light, #7caf4e) 9%, transparent) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 82% 88%, color-mix(in srgb, var(--accent, #4f9cf9) 7%, transparent) 0%, transparent 55%);
  animation: mcGlowBreath 9s ease-in-out infinite alternate;
}
@keyframes mcGlowBreath {
  0% { opacity: .7; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.06); }
}

#mc-fx-glow .mc-glow-follow {
  position: absolute; left: 0; top: 0;
  width: 480px; height: 480px;
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--green-light, #7caf4e) 7%, transparent) 0%, transparent 65%);
  will-change: transform;
}

/* 星尘点缀（深色主题） */
#mc-fx-glow .mc-glow-star {
  position: absolute; color: color-mix(in srgb, var(--green-light, #7caf4e) 55%, transparent);
  font-size: 13px; animation: mcStarFloat 7s ease-in-out infinite;
}
#mc-fx-glow .mc-glow-star-1 { left: 12%; top: 22%; animation-delay: 0s; }
#mc-fx-glow .mc-glow-star-2 { left: 78%; top: 65%; font-size: 9px; animation-delay: 2.3s; }
#mc-fx-glow .mc-glow-star-3 { left: 55%; top: 38%; font-size: 7px; animation-delay: 4.1s; }
@keyframes mcStarFloat {
  0%, 100% { transform: translateY(0) rotate(0deg); opacity: .35; }
  50% { transform: translateY(-14px) rotate(18deg); opacity: .9; }
}

/* 浅色主题海洋：波浪层 */
#sinh-ocean svg { display: block; }

/* ── 主题粒子 ── */
.fx-el { position: fixed; pointer-events: none; z-index: 0; }
@keyframes fxFall {
  0% { top: -8%; }
  100% { top: 108%; }
}
@keyframes fxSway {
  from { transform: translateX(-22px) rotate(-24deg); }
  to { transform: translateX(22px) rotate(24deg); }
}
@keyframes fxDrift {
  from { left: -18%; }
  to { left: 108%; }
}
@keyframes fxRise {
  0% { bottom: -8%; }
  100% { bottom: 108%; }
}
@keyframes fxBob {
  from { transform: translateY(0); }
  to { transform: translateY(-18px); }
}
@keyframes fxTwinkle {
  0%, 100% { opacity: .25; }
  50% { opacity: 1; }
}

/* site-ui.js 粒子层：修复被 body 背景遮挡（原 z-index:-1） */
#sinh-theme-fx { z-index: 0 !important; }
