.scroll-progress {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  pointer-events: none;
}

.scroll-progress span {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, var(--blue), var(--blue-2));
  transform: scaleX(0);
  transform-origin: left;
  will-change: transform;
}

.nav-shell { transition: background .35s, box-shadow .35s; }
.nav { transition: padding .35s; }
.nav-shell.scrolled {
  position: fixed;
  background: rgba(8, 43, 60, .91);
  box-shadow: 0 10px 35px rgba(0, 0, 0, .15);
  backdrop-filter: blur(16px);
}
.nav-shell.scrolled .nav { padding-top: 15px; padding-bottom: 15px; }
.nav-links > a { position: relative; }
.nav-links > a:not(.nav-contact)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -7px;
  height: 1px;
  background: var(--blue-2);
  transition: right .25s;
}
.nav-links > a:not(.nav-contact):hover::after,
.nav-links > a:not(.nav-contact):focus-visible::after { right: 0; }

.hero-system { transition: transform .35s cubic-bezier(.2, .8, .2, 1); }
.orbit-one { animation: orbit-spin 24s linear infinite; }
.orbit-two { animation: orbit-spin-reverse 34s linear infinite; }
.orbit::before {
  content: "";
  position: absolute;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--blue-2);
  top: 8%;
  left: 20%;
  box-shadow: 0 0 18px var(--blue);
}
.core { animation: core-breathe 3.6s ease-in-out infinite; }
.satellite { animation: satellite-float 4.5s ease-in-out infinite; }
.s2 { animation-delay: -1.2s; }
.s3 { animation-delay: -2.4s; }
.s4 { animation-delay: -3.2s; }

.service-card {
  position: relative;
  overflow: hidden;
  cursor: pointer;
  will-change: transform;
  background-image: radial-gradient(circle 260px at var(--pointer-x, 50%) var(--pointer-y, 50%), rgba(135, 216, 247, .1), transparent 70%);
  transition: transform .3s cubic-bezier(.2, .8, .2, 1), border-color .25s, background-color .35s, color .35s, box-shadow .35s;
}
.service-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border: 2px solid transparent;
  pointer-events: none;
  transition: border-color .3s;
}
.service-card:hover,
.service-card:focus-visible {
  border-color: var(--blue);
  box-shadow: 0 24px 55px rgba(0, 0, 0, .2);
  outline: none;
}
.service-card.featured {
  background-color: var(--blue);
  background-image: radial-gradient(circle 300px at var(--pointer-x, 50%) var(--pointer-y, 50%), rgba(255, 255, 255, .34), transparent 72%);
}
.service-card.featured::before { border-color: rgba(255, 255, 255, .35); }
.service-card.featured .service-no { color: var(--ink); }
.service-card.featured h3 em { color: inherit; }
.service-card.featured p { color: #16445a; }
.service-card.featured li { border-color: rgba(8, 43, 60, .2); }
.service-card.featured > a { border-color: rgba(8, 43, 60, .22); }

.ai-output p { transition: opacity .13s, transform .13s; }
.ai-output p.changing { opacity: 0; transform: translateY(7px); }
.process-track article,
.reasons article,
.sector-list span { transition: transform .25s, background .25s, border-color .25s; }
.process-track article:hover { background: rgba(67, 169, 220, .08); transform: translateY(-5px); }
.reasons article:hover { transform: translateX(9px); border-color: var(--blue); }
.sector-list span:hover { background: var(--ink); border-color: var(--ink); color: #fff; transform: translateY(-4px); }
.reveal { transition-delay: var(--reveal-delay, 0ms); }

@keyframes orbit-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes orbit-spin-reverse { to { transform: translate(-50%, -50%) rotate(-360deg); } }
@keyframes core-breathe { 50% { box-shadow: 0 0 90px rgba(67, 169, 220, .55); transform: translate(-50%, -50%) scale(1.035); } }
@keyframes satellite-float { 50% { margin-top: -8px; } }

@media (prefers-reduced-motion: reduce) {
  .orbit-one, .orbit-two, .core, .satellite { animation: none; }
  .hero-system, .service-card, .process-track article, .reasons article, .sector-list span, .ai-output p { transition: none; }
  .reveal { transition-delay: 0ms; }
}

/* Sistema solar: a Drilldown coordena as quatro áreas de intervenção. */
.hero-system .orbit{overflow:visible}
.hero-system .orbit-one,.hero-system .orbit-two{animation:none}
.hero-system .orbit::before{display:none}
.planet-orbit{position:absolute;inset:0;border-radius:50%;animation:planet-path 20s linear infinite}
.orbit-two .planet-orbit{animation-duration:29s;animation-direction:reverse}
.planet-orbit .satellite{left:50%;top:0;bottom:auto;right:auto;transform:translate(-50%,-50%);animation:planet-label 20s linear infinite;margin:0}
.orbit-two .planet-orbit .satellite{animation-duration:29s;animation-direction:reverse}
.p2{animation-delay:-14.5s}.p2 .satellite{animation-delay:-14.5s}
.p3{animation-delay:-10s}.p3 .satellite{animation-delay:-10s}
.p4{animation-delay:-21.75s}.p4 .satellite{animation-delay:-21.75s}
.hero-system .satellite::before{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:var(--blue);left:-4px;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 14px var(--blue)}
.hero-system .core::before{content:"";position:absolute;inset:-15px;border:1px solid rgba(135,216,247,.25);border-radius:50%;animation:solar-pulse 2.8s ease-in-out infinite}
@keyframes planet-path{to{transform:rotate(360deg)}}
@keyframes planet-label{to{transform:translate(-50%,-50%) rotate(-360deg)}}
@keyframes solar-pulse{50%{transform:scale(1.08);opacity:.45}}
@media(max-width:560px){.planet-orbit .satellite{min-width:108px}.hero-system .satellite strong{font-size:.72rem}.hero-system .satellite span{font-size:.6rem}}
@media(prefers-reduced-motion:reduce){.planet-orbit,.planet-orbit .satellite,.hero-system .core::before{animation:none}.p1{transform:rotate(25deg)}.p1 .satellite{transform:translate(-50%,-50%) rotate(-25deg)}.p2{transform:rotate(115deg)}.p2 .satellite{transform:translate(-50%,-50%) rotate(-115deg)}.p3{transform:rotate(205deg)}.p3 .satellite{transform:translate(-50%,-50%) rotate(-205deg)}.p4{transform:rotate(295deg)}.p4 .satellite{transform:translate(-50%,-50%) rotate(-295deg)}}
