.hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 40px;
  padding: 38px 0;
}

.hero-copy {
  min-width: 0;
}

.eyebrow {
  color: #6840ad;
  font-size: 12px;
  font-weight: bold;
  letter-spacing: 2px;
}





.intro {
  max-width: 460px;
  font-size: 18px;
}

.hint {
  margin-top: 28px;
  font-size: 14px;
}

/* The galaxy is decorative; service names remain still enough to read. */
.service-showcase {
  min-width: 0;
  width: 100%;
  max-width: 570px;
  justify-self: center;
}

.galaxy-scene {
  position: relative;
  width: 100%;
  height: 560px;
  isolation: isolate;
}

.nebula {
  position: absolute;
  inset: 12% 0;
  background: radial-gradient(ellipse at 65% 35%, #a266ee38, transparent 60%), radial-gradient(ellipse at 35% 65%, #559bf638, transparent 60%);
  filter: blur(25px);
  animation: nebula-drift 12s ease-in-out infinite alternate;
}

.galaxy-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.galaxy-model {
  position: absolute;
  left: 50%;
  top: 48%;
  width: 70%;
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  perspective: 800px;
  pointer-events: none;
}

.galaxy-core {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 36%;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle at 28% 18%, #eee5ff, #bd94f4 15%, #7860c5 40%, #414393 68%, #252251 90%);
  border: 1px solid #cfb3ff;
  box-shadow: inset 2px 3px 10px #ffffff99, inset -8px -10px 18px #24265366, 0 0 32px #9570ec60, 0 24px 35px #6053a32b;
  animation: core-float 6s ease-in-out infinite;
}

.galaxy-core span {
  color: white;
  font-size: clamp(40px, 5vw, 70px);
  font-weight: 700;
  text-shadow: 0 0 16px #fff, 0 0 30px #e1b5ff;
}

.orbit {
  position: absolute;
  inset: 0;
  border: 1.5px solid #9770d88c;
  border-radius: 50%;
  box-shadow: 0 0 12px #9a77ed20, inset 0 0 10px #ad8fea20;
}

.orbit::after {
  content: '';
  position: absolute;
  top: 13%;
  left: 13%;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #a770e8;
  box-shadow: 0 0 12px #b698ec;
}

.orbit-one {
  transform: rotateX(65deg) rotateY(-15deg) rotateZ(-25deg);
  animation: orbit-one 24s linear infinite;
}

.orbit-two {
  inset: 9%;
  border-color: #668fe699;
  transform: rotateX(55deg) rotateY(45deg) rotateZ(35deg);
  animation: orbit-two 30s linear infinite;
}

.orbit-two::after {
  background: #6d9fed;
}

.orbit-three {
  inset: -6%;
  border-style: dashed;
  border-color: #a283d33b;
  transform: rotateX(72deg) rotateY(-20deg) rotateZ(15deg);
  animation: orbit-three 36s linear infinite;
}

.service-cloud {
  position: absolute;
  inset: 0;
  z-index: 2;
  list-style: none;
  margin: 0;
  padding: 0;
}

.service-chip {
  position: absolute;
  left: var(--x);
  top: var(--y);
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 27%;
  max-width: 125px;
  min-height: 68px;
  padding: 10px 4px;
  background: linear-gradient(140deg, #fffffff2, #f7f2ffde);
  border: 1px solid #cdbde7aa;
  border-radius: 20px;
  box-shadow: inset 0 1px 0 white, 0 10px 24px #71549e12;
  backdrop-filter: blur(8px);
  text-align: center;
  animation: label-float 7s ease-in-out infinite;
  animation-delay: calc(var(--i) * -0.8s);
}

.service-chip strong {
  color: #56328f;
  font-size: 15px;
}

.service-chip span {
  color: #625b75;
  font-size: 11px;
  line-height: 1.4;
}

.scene-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.scene-caption {
  margin: 0;
  font-size: 10px;
  letter-spacing: 1.5px;
  text-align: center;
}

.motion-toggle {
  padding: 8px 15px;
  min-height: 44px;
  border-radius: 999px;
  border: 1px solid #cbbce5;
  background: #ffffffb0;
  color: #624c84;
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}

.motion-toggle:hover {
  background: #ece4fc;
}



@keyframes core-float {
  50% {
    translate: 0 -7px;
  }
}

@keyframes label-float {
  50% {
    translate: 0 -5px;
  }
}

@keyframes nebula-drift {
  to {
    transform: rotate(12deg) scale(1.08);
  }
}

@keyframes orbit-one {
  to {
    transform: rotateX(65deg) rotateY(-15deg) rotateZ(335deg);
  }
}

@keyframes orbit-two {
  to {
    transform: rotateX(55deg) rotateY(45deg) rotateZ(-325deg);
  }
}

@keyframes orbit-three {
  to {
    transform: rotateX(72deg) rotateY(-20deg) rotateZ(375deg);
  }
}

.motion-paused .service-showcase *,
.scene-offscreen * {
  animation-play-state: paused !important;
}

@media (max-width: 960px) {
  .hero {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .hero-copy {
    max-width: 650px;
  }

  .intro {
    max-width: 580px;
  }
}

@media (max-width: 480px) {
  body {
    padding: 24px 16px;
  }

  .brand-description {
    font-size: 12px;
  }

  .hero {
    padding-top: 28px;
  }

  h1 {
    font-size: 38px;
  }

  .intro {
    font-size: 16px;
  }

  .galaxy-scene {
    height: 440px;
  }

  .service-chip {
    min-height: 62px;
    border-radius: 16px;
  }

  .service-chip strong {
    font-size: 14px;
  }

  .service-chip span {
    font-size: 10px;
  }

  .scene-caption {
    font-size: 9px;
    letter-spacing: 1px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .service-showcase * {
    animation: none !important;
  }
}

/* A finite orbit-and-zoom reveal, started by the visitor. */
.galaxy-scene {
  overflow: clip;
}

.experience-controls {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.reveal-toggle,
.speech-toggle {
  min-height: 44px;
  padding: 11px 17px;
  border-radius: 999px;
  border: 1px solid #cbbce5;
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}

.reveal-toggle {
  background: #6840ad;
  color: #fff;
  border-color: #6840ad;
  box-shadow: 0 5px 15px #6840ad22;
}

.reveal-toggle:hover {
  background: #54318f;
}

.speech-toggle {
  background: #ffffffbd;
  color: #624c84;
}

.speech-toggle:hover {
  background: #ece4fc;
}

.reveal-toggle:disabled {
  opacity: 0.65;
  cursor: default;
}

.experience-status {
  margin: 0;
  min-height: 40px;
  max-width: 430px;
  font-size: 12px;
  text-align: center;
}

.is-revealing .service-chip {
  animation: none;
  will-change: transform;
}

.is-speaking .galaxy-core {
  box-shadow: inset 2px 3px 10px #ffffff99, inset -8px -10px 18px #24265366, 0 0 55px #9570ec99, 0 24px 35px #6053a32b;
}

/* Scout is the first available agent workflow. */
.scout-link { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; width: 100%; min-height: 46px; color: inherit; text-decoration: none; border-radius: 12px; }
.scout-link:hover strong { text-decoration: underline; text-underline-offset: 3px; }
.service-chip:hover, .service-chip:focus-within { animation-play-state: paused; }
