@keyframes spinePulse {
  0%, 100% { opacity: 0.35; filter: blur(0.3px); }
  50% { opacity: 0.65; filter: blur(1px); }
}
@keyframes orbPulse {
  0%, 100% { box-shadow: 0 0 20px rgba(59,130,246,.28); transform: scale(1); }
  50% { box-shadow: 0 0 36px rgba(59,130,246,.55); transform: scale(1.04); }
}
@keyframes rootPulse {
  0%, 100% { box-shadow: 0 0 32px rgba(250,204,21,.22); }
  50% { box-shadow: 0 0 56px rgba(250,204,21,.45); }
}
body { background: #020617; }
.spine { animation: spinePulse 3s ease-in-out infinite; }
.root .orb { animation: rootPulse 2.4s ease-in-out infinite; border-color: rgba(250,204,21,.75); }
.section .orb { animation: orbPulse 2.8s ease-in-out infinite; animation-delay: .3s; }
.topic .orb { animation: orbPulse 3.2s ease-in-out infinite; }
.topic:nth-child(even) .orb { animation-delay: .6s; }
