/* Transcendence — additive polish layer (loaded after style.css). Does not change layout or
   content; adds interaction craft only: scroll progress, card spotlight, nav active state,
   depth on hover. Every effect is off under prefers-reduced-motion. */
.scroll-progress{position:fixed;left:0;top:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);
  background:linear-gradient(90deg,var(--signal),#ffd08a);z-index:1000;pointer-events:none;box-shadow:0 0 12px var(--signal-edge)}

.service-card,.project-card,.pricing-card,.contact-card,.gf-card,.process-step,.faq-item{position:relative;
  transition:transform .4s cubic-bezier(.16,1,.3,1),border-color .25s,box-shadow .4s}
.service-card::before,.project-card::before,.pricing-card::before,.contact-card::before,.gf-card::before{content:"";position:absolute;inset:0;
  pointer-events:none;opacity:0;transition:opacity .3s;border-radius:inherit;
  background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%),var(--signal-soft),transparent 65%)}
.service-card:hover::before,.project-card:hover::before,.pricing-card:hover::before,.contact-card:hover::before,.gf-card:hover::before{opacity:1}
.service-card:hover,.project-card:hover,.pricing-card:hover,.gf-card:hover{transform:translateY(-4px);border-color:var(--signal-edge);
  box-shadow:0 26px 50px -28px rgba(233,161,59,.35)}

.nav-links a{position:relative}
.nav-links a.is-active{color:var(--ink)}
.nav-links a.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--signal)}

@media(prefers-reduced-motion:reduce){
  .scroll-progress{display:none}
  .service-card,.project-card,.pricing-card,.contact-card,.gf-card{transition:none}
  .service-card:hover,.project-card:hover,.pricing-card:hover,.gf-card:hover{transform:none}
}
