/* Visual effects adapted for this static site from React Bits concepts.
   Source and license: https://github.com/DavidHDev/react-bits */

/* Spotlight Card: follow the pointer on service, product and feature cards. */
.rb-spotlight {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  --rb-spotlight-color: rgba(35, 112, 190, .14);
}
.rb-spotlight::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(360px circle at var(--rb-x, 50%) var(--rb-y, 50%), var(--rb-spotlight-color), transparent 68%);
  transition: opacity .28s ease;
}
.rb-spotlight > * { position: relative; z-index: 1; }
@media (hover:hover) and (pointer:fine) {
  .rb-spotlight:hover::before,
  .rb-spotlight:focus-within::before { opacity: 1; }
}
.offering-card.rb-spotlight { --rb-spotlight-color: rgba(255, 157, 23, .16); }
.product-card.rb-spotlight { --rb-spotlight-color: rgba(35, 112, 190, .15); }
.direction.rb-spotlight { --rb-spotlight-color: rgba(31, 101, 178, .11); }
.feature.rb-spotlight,.audience-list li.rb-spotlight { --rb-spotlight-color: rgba(255, 157, 23, .12); }

/* Animated Content: sections settle gently as they enter view. */
@media (prefers-reduced-motion:no-preference) {
  .rb-ready .rb-reveal {
    opacity: 0;
    transform: translate3d(0, 25px, 0);
    filter: blur(4px);
    transition: opacity .68s cubic-bezier(.2,.7,.2,1), transform .68s cubic-bezier(.2,.7,.2,1), filter .68s ease;
    transition-delay: var(--rb-delay, 0ms);
  }
  .rb-ready .rb-reveal.rb-visible { opacity: 1; transform: none; filter: none; }
  .rb-ready .rb-reveal.rb-visible.offering-card:hover,
  .rb-ready .rb-reveal.rb-visible.direction:hover { transform: translateY(-4px); }
}

/* Shiny Text: a restrained gold sweep on the homepage statement. */
.hero h1 span { color: #ffb039; }
@supports (-webkit-background-clip:text) {
  @media (prefers-reduced-motion:no-preference) {
    .hero h1 span {
      background: linear-gradient(105deg,#ffb039 18%,#ffe2a6 42%,#fff3d5 50%,#ffae30 61%,#ffb039 82%);
      background-size: 220% 100%;
      background-position: 100% 0;
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
      animation: rb-shine 7s ease-in-out infinite;
    }
  }
}
@keyframes rb-shine { 0%,24% { background-position: 100% 0; } 60%,100% { background-position: 0 0; } }

/* Aurora: slow navy and gold light, kept behind the readable text. */
.hero::after,.detail-hero::after {
  content: "";
  position: absolute;
  inset: -18% -12%;
  pointer-events: none;
  background: radial-gradient(ellipse at 78% 40%,rgba(56,130,216,.22),transparent 35%),
              radial-gradient(ellipse at 65% 75%,rgba(255,157,23,.11),transparent 32%),
              radial-gradient(ellipse at 28% 18%,rgba(30,84,150,.16),transparent 37%);
  opacity: .7;
}
.hero::after { z-index: 2; }
.detail-hero::after { z-index: 0; }
@media (prefers-reduced-motion:no-preference) {
  .hero::after,.detail-hero::after { animation: rb-aurora 18s ease-in-out infinite alternate; }
}
@keyframes rb-aurora { from { transform: translate3d(-2%,1%,0) scale(1); } to { transform: translate3d(3%,-2%,0) scale(1.05); } }

/* A narrow sheen on primary actions gives feedback without distracting from copy. */
.btn-gold,.hero-button,.dark-button { position: relative; overflow: hidden; isolation: isolate; }
.btn-gold::after,.hero-button::after,.dark-button::after {
  content: "";
  position: absolute;
  inset: -40% auto -40% -60%;
  width: 32%;
  transform: skewX(-25deg);
  background: linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);
  pointer-events: none;
  transition: left .52s ease;
}
.btn-gold:hover::after,.hero-button:hover::after,.dark-button:hover::after { left: 130%; }

@media (prefers-reduced-motion:reduce) {
  .rb-spotlight::before,.hero::after,.detail-hero::after,.btn-gold::after,.hero-button::after,.dark-button::after { animation: none !important; transition: none !important; }
}
