/* Paleta unificada: un morado ejecutivo y el azul profundo de la portada. */
:root{--violet:#7d41d1;--violet-executive:#7d41d1;--hero-blue:#07144b;--hero-blue-mid:#102a78}

/* El acento morado deja de variar entre lila y violeta. */
.hero:after{background:radial-gradient(circle,rgba(125,65,209,.42),transparent 64%)}
.hero h1 em,.client-logo span,.testimonial-grid .testimonial-trigger i,.testimonials-all-grid .testimonial-trigger i{color:var(--violet-executive)}
.client-marquee>p{color:#fff}
.orbit-ring{background:conic-gradient(#ffc425 0 var(--arc),var(--violet-executive) var(--arc) calc(var(--arc) + 9%),#ffffff24 calc(var(--arc) + 9%) 100%)}
.story-timeline .timeline-mark{box-shadow:0 0 0 9px rgba(125,65,209,.13)}

/* El tercer bloque comparte la misma profundidad azul y luz ambiental de la portada. */
.impact{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(115deg,var(--hero-blue) 3%,var(--hero-blue-mid) 54%,#13266e 100%)}
.impact:before{content:"";position:absolute;z-index:-1;width:68vw;height:68vw;right:-26vw;top:-39vw;background:radial-gradient(circle,rgba(125,65,209,.34),transparent 65%);pointer-events:none}

/* El carrusel se conserva blanco; las métricas se acercan al mensaje sin tocar móvil. */
.client-logo img{filter:grayscale(1) brightness(0) invert(1)}
@media(min-width:801px){.stat-row.reveal.visible{transform:translate(84px,-120px)}}

/* Margen de seguridad para que el primer hito (2015) no recorte su círculo ni su halo. */
@media(min-width:801px){
  .story-timeline{padding-left:14px;padding-right:14px}
  .story-timeline:before{left:14px;right:14px}
  .story-timeline .timeline-root{left:2%;width:96%}
}

/* Talento permanece legible; el brillo le da presencia sin alterar la lectura. */
.work-highlight{animation:talent-glow 2.8s ease-in-out infinite}
@keyframes talent-glow{50%{filter:brightness(1.16);text-shadow:0 0 14px rgba(125,65,209,.38)}}

/* Escritura reversible del énfasis del bloque de conexiones. */
.impact-typing.is-typing{border-right:2px solid currentColor;animation:impact-caret .62s step-end infinite}
@keyframes impact-caret{50%{border-color:transparent}}
.story-timeline.reveal .timeline-root{animation:none;opacity:0;transform:scaleX(.08);transition:opacity .55s ease .16s,transform 1.3s cubic-bezier(.2,.8,.22,1) .16s}
.story-timeline.reveal.visible .timeline-root{opacity:.53;transform:scaleX(1)}
