/* Organizer constellation — scroll-triggered: spokes → icons → dock */

@media (min-width: 901px) {
  #organizer-modules.constellation-entrance-pending .organizer-constellation__orbit,
  #organizer-modules.constellation-phase-spokes .organizer-constellation__orbit,
  #organizer-modules.constellation-phase-icons .organizer-constellation__orbit {
    animation: none !important;
  }

  #organizer-modules.constellation-entrance-pending .organizer-constellation__spoke {
    transform: translate(-50%, -100%) scaleY(0);
    opacity: 0.35;
    animation: none !important;
    transition: none;
  }

  #organizer-modules.constellation-entrance-pending .organizer-constellation__arm .module-node {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.28);
    filter: brightness(0.6);
    transition: none;
  }

  #organizer-modules.constellation-entrance-pending .organizer-constellation__dock {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.86);
    filter: blur(6px);
    transition: none;
    pointer-events: none;
  }

  #organizer-modules.constellation-entrance-pending .organizer-constellation__canvas {
    opacity: 0;
    transition: opacity 0.8s ease 0.1s;
  }

  /* Hub pulse while spokes draw */
  #organizer-modules.constellation-phase-spokes::before,
  #organizer-modules.constellation-phase-icons::before,
  #organizer-modules.constellation-entrance-done::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: min(42%, 220px);
    aspect-ratio: 1;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
    background: radial-gradient(
      circle,
      rgba(34, 211, 238, 0.22) 0%,
      rgba(124, 58, 237, 0.12) 42%,
      transparent 72%
    );
    opacity: 0;
    animation: constellation-hub-pulse 1.4s ease-out forwards;
  }

  #organizer-modules.constellation-phase-spokes .organizer-constellation__canvas,
  #organizer-modules.constellation-phase-icons .organizer-constellation__canvas,
  #organizer-modules.constellation-entrance-done .organizer-constellation__canvas {
    opacity: 0.55;
  }

  #organizer-modules.constellation-phase-spokes .organizer-constellation__spoke,
  #organizer-modules.constellation-phase-icons .organizer-constellation__spoke,
  #organizer-modules.constellation-entrance-done .organizer-constellation__spoke {
    opacity: 1;
    transform: translate(-50%, -100%) scaleY(1);
    transition:
      transform 0.62s cubic-bezier(0.22, 1, 0.36, 1),
      opacity 0.45s ease;
    transition-delay: calc(var(--entrance-arm-index, 0) * 32ms);
  }

  #organizer-modules.constellation-phase-icons .organizer-constellation__arm .module-node,
  #organizer-modules.constellation-phase-dock .organizer-constellation__arm .module-node,
  #organizer-modules.constellation-entrance-done .organizer-constellation__arm .module-node {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    filter: brightness(1);
    transition:
      opacity 0.48s ease,
      transform 0.55s cubic-bezier(0.34, 1.55, 0.64, 1),
      filter 0.4s ease;
    transition-delay: calc(var(--entrance-arm-index, 0) * 26ms);
  }

  #organizer-modules.constellation-phase-dock .organizer-constellation__dock,
  #organizer-modules.constellation-entrance-done .organizer-constellation__dock {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    filter: none;
    pointer-events: auto;
    transition:
      opacity 0.55s ease,
      transform 0.6s cubic-bezier(0.22, 1, 0.36, 1),
      filter 0.5s ease;
  }

  #organizer-modules.constellation-entrance-done .organizer-constellation__orbit {
    animation: constellation-orbit 360s linear infinite;
  }

  #organizer-modules.constellation-entrance-done .organizer-constellation__spoke {
    animation: spoke-flow 3.5s ease-in-out infinite;
    animation-delay: var(--spoke-delay, 0s);
  }

  #organizer-modules.constellation-phase-dock .organizer-constellation__dock--active,
  #organizer-modules.constellation-entrance-done .organizer-constellation__dock--active {
    animation: none;
  }
}

@keyframes constellation-hub-pulse {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.35);
  }
  35% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.05);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(1.35);
  }
}

@keyframes constellation-dock-glow {
  0%,
  100% {
    box-shadow: var(--shadow-glow);
  }
  50% {
    box-shadow:
      0 0 48px rgba(34, 211, 238, 0.35),
      0 0 80px rgba(124, 58, 237, 0.2);
  }
}

@media (prefers-reduced-motion: reduce) {
  #organizer-modules.constellation-entrance-pending .organizer-constellation__spoke,
  #organizer-modules.constellation-entrance-pending .organizer-constellation__arm .module-node,
  #organizer-modules.constellation-entrance-pending .organizer-constellation__dock {
    opacity: 1;
    transform: translate(-50%, -50%);
    filter: none;
    transition: none;
    pointer-events: auto;
  }

  #organizer-modules.constellation-entrance-pending .organizer-constellation__canvas {
    opacity: 0.55;
  }

  #organizer-modules::before {
    display: none !important;
  }
}
