/* ================================
   SIGIL: Stage + Spotlight + Animations
   (copy/paste)
   EDIT: Orbit nodes around centre (no drifting),
         keep everything scoped to .sigil-section,
         kill old node-float animations to avoid conflicts.
================================ */

/* ================================
   ORBITAL NODE MOTION (for the “balls”)
   How to use (SVG classes):
   - Add class="orbit orbit-slow"   style="--angle: 18deg;"
   - Add class="orbit orbit-medium" style="--angle: 42deg;"
   - Add class="orbit orbit-fast"   style="--angle: 70deg;"
   Each node keeps its current position (angle) but rotates around centre.
================================ */

/* Orbit group rotates about SVG centre */
.sigil-section .orbit{
  transform-box: fill-box;                 /* better SVG transform behaviour */
  transform-origin: 250px 250px;           /* SVG centre for viewBox 0 0 500 500 */
  animation: orbitRotate var(--dur, 14s) linear infinite;
  will-change: transform;
}

/* Depth speeds */
.sigil-section .orbit-slow   { --dur: 18s; }
.sigil-section .orbit-medium { --dur: 14s; }
.sigil-section .orbit-fast   { --dur: 10s; }

/* Core orbit (starts at node's angle) */
@keyframes orbitRotate{
  from{ transform: rotate(var(--angle, 0deg)); }
  to  { transform: rotate(calc(var(--angle, 0deg) + 360deg)); }
}

/* IMPORTANT: disable the old "float" node animation so it doesn’t fight orbit */
.sigil-section .anim-node,
.sigil-section .anim-node-reverse{
  animation: none !important;
}

/* ================================
   EXISTING: Rings + Text shimmer
   (scoped; safe)
================================ */

.sigil-section .anim-ring{
  animation: pulseBreath 6s ease-in-out infinite;
  transform-origin: center;
}
.sigil-section .anim-delay{ animation-delay: 1s; }

.sigil-section .anim-text{
  animation: goldGlow 5s ease-in-out infinite;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .sigil-section .orbit,
  .sigil-section .anim-ring,
  .sigil-section .anim-text{
    animation: none !important;
  }
}