/* Gold shimmer animation for text */
.gold-text {
  background: linear-gradient(90deg, #d4af37, #fff, #d4af37);
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  animation: shimmer 2.5s linear infinite;
}

@keyframes shimmer {
  to {
    background-position: 200% center;
  }
}

/* ---- Hero 3D ambient float — pure CSS, no JS required ---- */
@keyframes heroFloat3d {
  0%   { transform: perspective(1000px) rotateX(0deg)   rotateY(0deg)   translateY(0px);  }
  25%  { transform: perspective(1000px) rotateX(2deg)   rotateY(-3deg)  translateY(-8px); }
  50%  { transform: perspective(1000px) rotateX(0deg)   rotateY(0deg)   translateY(-2px); }
  75%  { transform: perspective(1000px) rotateX(-2deg)  rotateY(3deg)   translateY(-8px); }
  100% { transform: perspective(1000px) rotateX(0deg)   rotateY(0deg)   translateY(0px);  }
}

@keyframes rotateHeroBorder {
  to { --hero-angle: 360deg; }
}

.hero__visual {
  animation:
    heroFloat3d 10s ease-in-out infinite,
    rotateHeroBorder 2.5s linear infinite;
}

/* Reduce 3D float intensity on mobile to prevent edge clipping */
@media (max-width:1080px){
  @keyframes heroFloat3d {
    0%,100% { transform: perspective(1000px) rotateX(0deg)  rotateY(0deg)  translateY(0px);  }
    50%     { transform: perspective(1000px) rotateX(1deg)  rotateY(-1deg) translateY(-4px); }
  }
}

.footer-credit__link{
  animation: shimmer 5s linear infinite;
}
.footer-credit__link:hover{
  transform: translateY(-1px) scale(1.03);
}

/* ---- Orbit hero keyframes ---- */
@keyframes orbitSpinCW{
  from{ transform: rotate(0deg); }
  to{ transform: rotate(360deg); }
}

@keyframes orbitSpinCCW{
  from{ transform: rotate(0deg); }
  to{ transform: rotate(-360deg); }
}

/* Full positioning + counter-rotation chain for each orbit pill.
   Step-by-step from the ring center (pill top-left starts at top:50% left:50%):
     1. rotate(60°×i)          — swing arm to the item's sector
     2. translateX(--orbit-r)  — slide out to orbit radius
     3. rotate(-60°×i → +φ)   — un-rotate to world-horizontal (static) + CW counter-spin (dynamic)
     4. translate(-50%,-50%)   — center the pill at the orbit point (always in world-horizontal space)
   Net text rotation = ring(-φ) + step1(+60i) + step3(-60i+φ) = 0 at all times. */
@keyframes orbitCounterSpin{
  from{
    transform:
      rotate(calc(360deg / 6 * var(--i)))
      translateX(var(--orbit-r))
      rotate(calc(-360deg / 6 * var(--i)))
      translate(-50%, -50%);
  }
  to{
    transform:
      rotate(calc(360deg / 6 * var(--i)))
      translateX(var(--orbit-r))
      rotate(calc(-360deg / 6 * var(--i) + 360deg))
      translate(-50%, -50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero__visual { animation: none; }
  .footer-credit__link { animation: none; }
  .orbit-logo { animation: none; }
  /* With animation off, use flex fallback so pills remain readable */
  .orbit-ring--services{
    animation: none;
    position: static;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
  }
  .orbit-pill{
    animation: none;
    position: static;
    top: auto;
    left: auto;
    transform: none;
  }
}