/* 3D constellation — shared by homepage hero and about page */
  /* 3D Constellation interactive visualization */
  .constellation {
    position: relative; aspect-ratio: 1; max-width: 680px; width: 100%;
    margin: 0 auto; cursor: grab;
    perspective: 1200px;
    transform-style: preserve-3d;
  }
  .constellation:active { cursor: grabbing; }
  .constellation-svg {
    width: 100%; height: 100%; overflow: visible;
    filter: drop-shadow(0 0 40px rgba(0, 255, 136, 0.1));
  }
  .constellation-tooltip {
    position: absolute; background: var(--bg-elev); border: 1px solid var(--border-strong);
    border-radius: 8px; padding: 10px 14px; font-size: 13px; color: var(--text);
    pointer-events: none; opacity: 0; transition: opacity 0.2s;
    box-shadow: 0 8px 24px rgba(0,0,0,0.4); white-space: nowrap;
    transform: translate(-50%, -100%); margin-top: -8px;
    z-index: 10;
  }
  .constellation-tooltip.visible { opacity: 1; }
  .constellation-tooltip strong { color: var(--accent); display: block; font-size: 13px; margin-bottom: 2px; }
  .constellation-tooltip span { color: var(--text-mute); font-size: 11px; }

  /* Satellite groups: depth-based transform from JS */
  .satellite-3d {
    cursor: pointer;
    transition: filter 0.2s;
  }
  .satellite-3d:hover {
    filter: brightness(1.4) drop-shadow(0 0 12px var(--accent-glow));
  }

  /* Hint pill below the constellation */
  .constellation-hint {
    position: absolute; bottom: -8px; left: 50%; transform: translateX(-50%);
    font-size: 11px; color: var(--text-faint); letter-spacing: 0.08em;
    text-transform: uppercase; opacity: 0.7;
    display: flex; align-items: center; gap: 6px;
    white-space: nowrap;
  }
  .constellation-hint::before {
    content: ''; width: 4px; height: 4px; border-radius: 50%;
    background: var(--accent); box-shadow: 0 0 6px var(--accent-glow);
    animation: pulse 2s infinite;
  }
  .constellation-svg { transition: filter 0.3s; }
