/* ===========================================================
   CÓDIGO SST — v2 · camada de movimento & sofisticação
   =========================================================== */

/* ---------- grão de filme (textura premium, quase invisível) ---------- */
body::after{
  content:"";
  position:fixed;inset:-50%;
  width:200%;height:200%;
  pointer-events:none;
  z-index:200;
  opacity:.028;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- barra de progresso de leitura ---------- */
.scroll-progress{
  position:fixed;
  top:0;left:0;right:0;
  height:2px;
  z-index:130;
  pointer-events:none;
}
.scroll-progress i{
  display:block;
  height:100%;
  background:linear-gradient(90deg,var(--eletrico),var(--ciano));
  transform-origin:left center;
  transform:scaleX(0);
}

/* ---------- header recolhe ao rolar para baixo ---------- */
.site-header{
  transform:translateY(0);
  transition:background var(--t-base),border-color var(--t-base),transform .45s var(--ease);
}
.site-header.nav-up{transform:translateY(-100%)}

/* ---------- reveal refinado: blur + rise ---------- */
.reveal{
  opacity:0;
  transform:translateY(30px);
  filter:blur(7px);
  transition:opacity 1s var(--ease),transform 1s var(--ease),filter 1s var(--ease);
}
.reveal.is-visible{opacity:1;transform:none;filter:blur(0)}

/* hairline do kicker se desenha ao revelar */
.kicker::before{
  width:0;
  transition:width 1.1s var(--ease) .25s;
}
.kicker.is-visible::before,
.is-visible .kicker::before{width:32px}
.kicker:not(.reveal)::before{width:32px}

/* ---------- hero: profundidade ---------- */
.hero-content,
.hero .hero-glow{will-change:transform}
.hero .scroll-cue{transition:opacity .4s var(--ease)}

/* ---------- micro-interações · cards com hairline viva ---------- */
.icon-card,
.pillar-card,
.expert-card{position:relative}
.icon-card::before,
.expert-card::before{
  content:"";
  position:absolute;
  top:-1px;left:0;
  width:100%;height:1px;
  background:linear-gradient(90deg,var(--ciano),rgba(77,166,255,0));
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .7s var(--ease);
}
.icon-card:hover::before,
.expert-card:hover::before{transform:scaleX(1)}
.icon-card::before{top:0}
.cards-3 .icon-card{padding-top:clamp(28px,3vw,40px);margin-top:calc(-1*clamp(28px,3vw,40px))}

.pillar-card::after{
  content:"";
  position:absolute;
  bottom:-1px;left:0;
  width:100%;height:1px;
  background:linear-gradient(90deg,var(--ciano),rgba(77,166,255,0));
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .7s var(--ease);
}
.pillar-card:hover::after{transform:scaleX(1)}

/* ícones respiram no hover do card */
.icon-card .icon,
.pillar-card .icon,
.cap-int-icon{
  transition:border-color var(--t-base),color var(--t-base),background var(--t-base),transform .5s var(--ease);
}
.icon-card:hover .icon,
.pillar-card:hover .icon{
  border-color:var(--ciano);
  background:rgba(77,166,255,.07);
  transform:translateY(-3px);
}

/* ---------- service list · hover deslizante ---------- */
.service-list li{
  position:relative;
  transition:padding-left .45s var(--ease);
}
.service-list li::before{
  content:"";
  position:absolute;
  left:0;top:50%;
  width:0;height:1px;
  background:var(--ciano);
  transition:width .45s var(--ease);
}
.service-list li:hover{padding-left:26px}
.service-list li:hover::before{width:14px}
.service-list .tag{transition:color var(--t-base)}
.service-list li:hover .tag{color:#fff}

/* ---------- botões · varredura de luz ---------- */
.btn-cta{position:relative;overflow:hidden;isolation:isolate}
.btn-cta::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%);
  transform:translateX(-130%);
  transition:transform .9s var(--ease);
  z-index:-1;
}
.btn-cta:hover::before{transform:translateX(130%)}

.btn-cta-compact{position:relative;overflow:hidden}
.btn-cta-compact::before{
  content:"";
  position:absolute;inset:0;
  background:var(--eletrico);
  transform:scaleY(0);
  transform-origin:bottom center;
  transition:transform .35s var(--ease);
  z-index:-1;
}
.btn-cta-compact{isolation:isolate;z-index:0}
.btn-cta-compact:hover::before{transform:scaleY(1)}
.btn-cta-compact:hover{background:transparent}

/* ---------- nav · sublinhado que cresce ---------- */
.nav-links a{
  background:linear-gradient(currentColor,currentColor) no-repeat left bottom;
  background-size:0 1px;
  padding-bottom:5px;
  transition:color var(--t-fast),background-size .4s var(--ease);
}
.nav-links a:hover{background-size:100% 1px}

/* ---------- plataforma · tilt 3D sutil ---------- */
.platform-gallery .pg-dashboard{perspective:1200px}
.pg-dashboard .pg-frame{
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
  will-change:transform;
}
.pg-dashboard .pg-frame.tilting{transition:box-shadow .5s var(--ease)}
.pg-dashboard:hover .pg-frame{
  box-shadow:0 32px 80px rgba(3,8,18,.55),0 0 40px rgba(77,166,255,.08);
}

/* ---------- imagens da galeria · entrada cinematográfica ---------- */
.cap-featured.is-visible .cap-gallery figure{
  animation:galleryIn 1.1s var(--ease) both;
}
.cap-featured.is-visible .cap-gallery figure:nth-child(2){animation-delay:.1s}
.cap-featured.is-visible .cap-gallery figure:nth-child(3){animation-delay:.2s}
.cap-featured.is-visible .cap-gallery figure:nth-child(4){animation-delay:.3s}
@keyframes galleryIn{
  from{opacity:0;transform:translateY(22px)}
  to{opacity:1;transform:none}
}

/* ---------- stats · linha que cresce sob o número ---------- */
.stat{position:relative}
.stat::after{
  content:"";
  position:absolute;
  left:0;bottom:0;
  width:100%;height:1px;
  background:linear-gradient(90deg,var(--ciano),rgba(77,166,255,0));
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform 1.2s var(--ease) .3s;
}
.stat.is-visible::after{transform:scaleX(1)}
.stats-grid .stat{padding-bottom:28px}

/* ---------- mobile menu · entrada escalonada ---------- */
.mobile-menu ul li{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .5s var(--ease),transform .5s var(--ease);
}
.mobile-menu.open ul li{opacity:1;transform:none}
.mobile-menu.open ul li:nth-child(1){transition-delay:.08s}
.mobile-menu.open ul li:nth-child(2){transition-delay:.13s}
.mobile-menu.open ul li:nth-child(3){transition-delay:.18s}
.mobile-menu.open ul li:nth-child(4){transition-delay:.23s}
.mobile-menu.open ul li:nth-child(5){transition-delay:.28s}
.mobile-menu.open ul li:nth-child(6){transition-delay:.33s}

/* ---------- reduced motion: desliga tudo ---------- */
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;filter:none;transition:none}
  .kicker::before{width:32px;transition:none}
  .scroll-progress{display:none}
  .site-header.nav-up{transform:none}
  .btn-cta::before,.btn-cta-compact::before{display:none}
  .btn-cta-compact:hover{background:var(--eletrico)}
  .cap-featured.is-visible .cap-gallery figure{animation:none}
  .stat::after{transform:scaleX(1);transition:none}
  .mobile-menu ul li{opacity:1;transform:none;transition:none}
  body::after{display:none}
}
