﻿/* Constellation System Component */

[data-constellation-container] {
  position: relative;
  min-height: 500px;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.stars-layer {
  position: fixed;
  inset: 0;
  background: transparent;
  pointer-events: none;
  z-index: 0;
}

#stars {
  width: 1px;
  height: 1px;
  box-shadow: 124px 231px #FFF, 721px 321px #FFF, 121px 631px #FFF, 831px 121px #FFF;
  animation: animStar 100s linear infinite;
}

@keyframes animStar {
  from {
    transform: translateY(0px);
  }

  to {
    transform: translateY(-2000px);
  }
}

.orbit-system {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.orbit-svg {
  position: absolute;
  inset: 0;
  animation: spinSlow 60s linear infinite;
  pointer-events: none;
}

.ring-outer {
  fill: none;
  stroke: #FFFFFF;
  stroke-width: 10;
  opacity: 0.6;
}

.ring-inner {
  fill: none;
  stroke: #94B1FF;
  stroke-width: 10;
  opacity: 0.8;
}

@keyframes spinSlow {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

.star-node {
  position: absolute;
  width: 120px;
  height: 120px;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  z-index: 5;
  pointer-events: none;
  /* JS enables events if needed */
}

.star-visual-wrapper {
  position: absolute;
  width: 100%;
  height: 100%;
  background: #0d121a;
  border-radius: 50%;
  box-shadow: 0 0 15px #090a0f;
  pointer-events: none;
}

.star-shape {
  width: 60px;
  height: 60px;
  fill: #fff;
  filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.8));
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  pointer-events: auto;
  cursor: pointer;
  z-index: 2;
}

.star-label {
  position: absolute;
  top: 130px;
  left: 50%;
  transform: translateX(-50%);
  color: #f0cb7a;
  text-transform: uppercase;
  font-size: 14px;
  letter-spacing: 1px;
  text-align: center;
  padding: 8px 12px;
  border-radius: 6px;
  border: 1px solid transparent;
  transition: all 0.3s ease;
  pointer-events: auto;
  cursor: pointer;
  z-index: 2;
}

.pos-top {
  top: 2%;
  left: 50%;
  transform: translate(-50%, 0);
}

.pos-left {
  bottom: 20%;
  left: 5%;
}

.pos-right {
  bottom: 20%;
  right: 5%;
}

.star-node:hover .star-shape,
.star-node.is-highlighted .star-shape {
  transform: scale(1.3);
  fill: #f0cb7a;
  filter: drop-shadow(0 0 20px rgba(242, 205, 96, 0.8));
}

.star-node:hover .star-label,
.star-node.is-highlighted .star-label {
  transform: translateX(-50%) scale(1.1);
  color: #fff;
  border-color: #f0cb7a;
  background: rgba(242, 205, 96, 0.15);
}

@media (max-width: 768px) {
  .orbit-system {
    width: 100% !important;
    height: 70vh !important;
    flex-direction: column;
  }

  .orbit-svg {
    display: none;
  }

  .star-node {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    margin: 30px 0;
  }
}

[data-constellation-size="compact"] .orbit-system {
  width: 400px !important;
  height: 400px !important;
}

[data-constellation-size="micro"] .orbit-system {
  width: 300px !important;
  height: 300px !important;
}

.logo-svg {
  width: 80px;
  height: 80px;
  margin-bottom: 8px;
}

.logo-label {
  color: #FFFFFF;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.8;
}

@keyframes logo-pulse {

  0%,
  100% {
    box-shadow: 0 0 10px rgba(148, 177, 255, 0.2);
  }

  50% {
    box-shadow: 0 0 25px rgba(148, 177, 255, 0.5);
  }
}