/* 只让首页背景缓慢流动；排盘图入场一次，随后保持静止。 */
.home-almanac { position: relative; overflow: hidden; isolation: isolate; }
.home-almanac > * { position: relative; z-index: 1; }
.home-almanac::before,.home-almanac::after { content: ''; position: absolute; z-index: 0; width: 130%; height: 100%; border-radius: 50%; pointer-events: none; }
.home-almanac::before { top: -35%; left: -35%; background: radial-gradient(ellipse,#e6d5ff26 0%,#d6bfff0a 42%,transparent 68%); animation: home-glow-drift 24s ease-in-out infinite alternate; }
.home-almanac::after { right: -45%; bottom: -40%; background: radial-gradient(ellipse,#e2d8ff1f 0%,#c7b4f508 45%,transparent 68%); animation: home-glow-drift 30s ease-in-out -12s infinite alternate-reverse; }
.chart-diagram-node,.liuren-diagram-node,.liuren-diagram-center { animation: chart-node-appear 440ms ease-out both; }
.chart-diagram-line::after,.liuren-diagram-edge::after { content: ''; display: block; width: 100%; height: 100%; background: currentColor; transform-origin: left center; animation: chart-line-reveal 600ms ease-out 100ms both; }
@keyframes home-glow-drift {
  from { transform: translate(-4%,-3%) scale(1); }
  to { transform: translate(12%,9%) scale(1.08); }
}
@keyframes chart-node-appear {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes chart-line-reveal {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}
@media (prefers-reduced-motion: reduce) {
  .home-almanac::before,.home-almanac::after,.chart-diagram-node,.liuren-diagram-node,.liuren-diagram-center,.chart-diagram-line::after,.liuren-diagram-edge::after { animation: none; }
}
