/* ===========================================================
   HOME — estilos específicos
   =========================================================== */

/* HERO com vídeo pinned (pin gerenciado por GSAP/ScrollTrigger) */
.hero{
  position:relative;
  height:300vh; /* 3x viewport pra scroll longo controlando o vídeo */
  margin-top:calc(var(--nav-h) * -1);
  padding:0;
}
.hero__pin{
  position:relative;
  height:100vh; width:100%;
  overflow:hidden;
  /* sticky removido — ScrollTrigger faz o pin */
}
.hero__video{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover;
  z-index:0;
}
.hero__vignette{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(ellipse at center, transparent 30%, rgba(0,0,0,.55) 100%),
    linear-gradient(180deg, rgba(0,0,0,.55) 0%, transparent 20%, transparent 60%, rgba(0,0,0,.85) 100%);
}
.hero__noise{
  position:absolute; inset:0; z-index:2; pointer-events:none; opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero__content{
  position:absolute; inset:0; z-index:3;
  display:flex; align-items:center; justify-content:center;
  padding:0 clamp(20px,4vw,48px);
}
.hero__slide{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  flex-direction:column; gap:1.6rem; text-align:center;
  opacity:0; transition:opacity .6s var(--ease);
  pointer-events:none;
}
.hero__slide.is-active{ opacity:1; }
.hero__slide.is-active .btn{ pointer-events:auto; }
.hero__slide h1{
  font-size:clamp(2.4rem, 6.5vw, 6.2rem);
  font-weight:700; letter-spacing:-0.04em;
  line-height:1; max-width:18ch;
}
.hero__slide h1 .accent{
  background:linear-gradient(120deg, #fff 0%, var(--accent) 60%, #fff 100%);
  background-size:200% 100%;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:shimmer 4s linear infinite;
}
@keyframes shimmer{ 0%{ background-position:0% 50%; } 100%{ background-position:200% 50%; } }
.hero__slide p{
  font-size:clamp(1rem, 1.4vw, 1.25rem); color:var(--text-dim);
  max-width:60ch;
}
.hero__slide .trust{
  font-family:var(--font-mono); font-size:.82rem;
  color:var(--text-mute); letter-spacing:.12em;
  display:flex; gap:1.5rem; flex-wrap:wrap; justify-content:center;
  margin-top:1rem;
}
.hero__slide .trust b{ color:var(--accent); font-weight:500; }

.hero__scroll-hint{
  position:absolute; bottom:30px; left:50%; transform:translateX(-50%);
  z-index:4; font-family:var(--font-mono); font-size:.72rem;
  letter-spacing:.3em; color:var(--text-mute); text-transform:uppercase;
  display:flex; flex-direction:column; align-items:center; gap:.8rem;
}
.hero__scroll-hint::after{
  content:''; width:1px; height:50px;
  background:linear-gradient(180deg, var(--accent), transparent);
  animation:scrollPulse 2s ease-in-out infinite;
}
@keyframes scrollPulse{ 0%,100%{ opacity:.3; transform:scaleY(.6); } 50%{ opacity:1; transform:scaleY(1); } }

/* DOR */
.dor{ position:relative; }
.dor__bg-text{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  font-size:clamp(8rem, 22vw, 24rem); font-weight:800;
  color:rgba(255,255,255,.025); letter-spacing:-0.06em;
  white-space:nowrap; pointer-events:none; z-index:0;
  font-style:italic;
}
.dor .container{ position:relative; z-index:1; }

/* PROCESSO - horizontal scroll */
.processo{ overflow:hidden; height:auto; }
.processo__track{
  display:flex; gap:2rem; padding:0 clamp(20px,4vw,48px);
  will-change:transform;
}
.processo__step{
  flex:0 0 clamp(320px, 38vw, 480px);
  height:clamp(420px, 60vh, 520px);
  padding:clamp(28px,3.5vw,44px);
  background:var(--bg-glass);
  border:1px solid var(--border);
  border-radius:var(--radius);
  display:flex; flex-direction:column; justify-content:space-between;
  position:relative; overflow:hidden;
}
.processo__step::before{
  content:''; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg, transparent, var(--accent), transparent);
  opacity:.5;
}
.processo__step-num{
  font-family:var(--font-mono); font-size:clamp(6rem, 10vw, 9rem);
  font-weight:200; letter-spacing:-0.05em; line-height:.85;
  color:transparent; -webkit-text-stroke:1px var(--accent);
  opacity:.9;
}
.processo__step h3{ font-size:1.5rem; margin-bottom:.6rem; }
.processo__step p{ color:var(--text-dim); }

/* === ESTRUTURA BASE DOS PASSOS RICOS === */
.processo__step--rich{
  padding:0;
  display:flex; flex-direction:column;
  overflow:hidden;
}
.processo__step--rich .processo__step-num{
  position:absolute;
  top:clamp(16px, 2vw, 26px);
  right:clamp(18px, 2.2vw, 28px);
  font-size:clamp(2.4rem, 3.5vw, 3.4rem);
  opacity:.5;
  z-index:5;
  pointer-events:none;
}
.step-viz{
  position:relative;
  flex:1 1 auto;
  min-height:240px;
  overflow:hidden;
  background:#0a0a10;
}
.step-viz__img{
  position:absolute; inset:0;
  background-size:cover;
  background-position:center center;
  z-index:1;
  transition:transform 1s ease;
}
.processo__step--rich:hover .step-viz__img{ transform:scale(1.04); }
.step-viz__overlay{
  position:absolute; inset:0;
  z-index:2; pointer-events:none;
}
.step-content{
  padding:clamp(22px, 2.4vw, 32px);
  flex:0 0 auto;
}
.step-content h3{ font-size:1.5rem; margin-bottom:.5rem; }
.step-content p{ color:var(--text-dim); font-size:.95rem; line-height:1.5; }

/* === 01 PESQUISA — radar girando + pings + contador === */
.pesq-radar{
  position:absolute;
  top:42%; left:50%;
  transform:translate(-50%,-50%);
  width:32%; aspect-ratio:1;
  border-radius:50%;
  background:conic-gradient(from 0deg, transparent 0deg, rgba(168,85,247,0.55) 35deg, transparent 70deg);
  filter:blur(0.3px);
  animation:radarSpin 3.5s linear infinite;
  mix-blend-mode:screen;
  opacity:.9;
}
@keyframes radarSpin{ to{ transform:translate(-50%,-50%) rotate(360deg); } }

.pesq-pings span{
  position:absolute;
  width:8px; height:8px;
  border-radius:50%;
  background:#ec4899;
  box-shadow:0 0 12px #ec4899, 0 0 4px #fff;
  animation:pingBlink 2.5s ease-in-out infinite;
}
.pesq-pings span:nth-child(1){ animation-delay:0s; }
.pesq-pings span:nth-child(2){ animation-delay:.6s; }
.pesq-pings span:nth-child(3){ animation-delay:1.2s; }
.pesq-pings span:nth-child(4){ animation-delay:1.8s; }
@keyframes pingBlink{
  0%, 50%, 100% { opacity:0; transform:scale(.6); }
  10%, 25%      { opacity:1; transform:scale(1.4); }
  35%           { opacity:.5; transform:scale(1); }
}
.pesq-stat{
  position:absolute;
  bottom:12px; left:14px;
  font-family:var(--font-mono);
  background:rgba(15,15,21,.65);
  backdrop-filter:blur(8px);
  border:1px solid rgba(168,85,247,.3);
  border-radius:8px;
  padding:.4rem .6rem;
  color:#fff;
}
.pesq-stat b{ font-size:1rem; color:#fff; display:block; line-height:1; }
.pesq-stat span{ font-size:.55rem; color:var(--text-mute); text-transform:uppercase; letter-spacing:.1em; }

/* === 02 POSICIONAMENTO — tags orbitando === */
.posi-orbit{
  position:absolute;
  top:50%; left:50%;
  width:78%; aspect-ratio:1;
  transform:translate(-50%,-50%);
  animation:orbitSpin 14s linear infinite;
}
@keyframes orbitSpin{ to{ transform:translate(-50%,-50%) rotate(360deg); } }
.posi-tag{
  position:absolute;
  top:50%; left:50%;
  font-family:var(--font-mono);
  font-size:.65rem; font-weight:500;
  letter-spacing:.08em;
  background:rgba(15,15,21,.78);
  backdrop-filter:blur(8px);
  border:1px solid rgba(168,85,247,.45);
  border-radius:6px;
  padding:.35rem .55rem;
  color:#fff;
  white-space:nowrap;
  transform:rotate(var(--angle)) translateX(48%) rotate(calc(-1 * var(--angle)));
  transform-origin:0 0;
  margin-left:-1px; margin-top:-1px;
  animation:tagCounter 14s linear infinite;
  box-shadow:0 0 12px rgba(168,85,247,.25);
}
@keyframes tagCounter{ to{ transform:rotate(calc(var(--angle) + 360deg)) translateX(48%) rotate(calc(-1 * (var(--angle) + 360deg))); } }

/* === 03 FUNIL — estágios + scanline === */
.funil-stages{
  position:absolute;
  top:50%; right:14px;
  transform:translateY(-50%);
  display:flex; flex-direction:column;
  gap:14px;
}
.funil-stage{
  font-family:var(--font-mono);
  border-left:2px solid var(--accent);
  padding-left:10px;
  background:rgba(10,10,16,.55);
  backdrop-filter:blur(6px);
  padding:4px 8px 4px 10px;
  border-radius:0 6px 6px 0;
  opacity:0;
  animation:stageAppear .8s ease-out forwards;
}
.funil-stage b{ font-weight:500; font-size:1rem; color:#fff; display:block; line-height:1; }
.funil-stage span{ font-size:.55rem; color:var(--text-mute); text-transform:uppercase; letter-spacing:.12em; margin-top:3px; display:block; }
.funil-stage:nth-child(1){ animation-delay:.3s; }
.funil-stage:nth-child(2){ animation-delay:.7s; }
.funil-stage:nth-child(3){ animation-delay:1.1s; }
.funil-stage:nth-child(4){ animation-delay:1.5s; }
@keyframes stageAppear{
  from { opacity:0; transform:translateX(15px); }
  to   { opacity:1; transform:translateX(0); }
}
.funil-scan{
  position:absolute;
  left:8%; right:42%;
  height:2px;
  background:linear-gradient(90deg, transparent, var(--accent), transparent);
  box-shadow:0 0 12px var(--accent);
  animation:funilScan 3s ease-in-out infinite;
  mix-blend-mode:screen;
}
@keyframes funilScan{
  0%, 100% { top:15%; opacity:0; }
  10%      { opacity:1; }
  90%      { opacity:1; }
  50%      { top:85%; }
}

/* === 04 EXECUÇÃO IA — geração ao vivo === */
.exec-gen{
  position:absolute;
  background:rgba(10,10,16,.7);
  backdrop-filter:blur(8px);
  border:1px solid rgba(168,85,247,.35);
  border-radius:8px;
  padding:.5rem .6rem;
  font-family:var(--font-mono);
}
.exec-gen--1{ top:18%; left:8%; }
.exec-gen--2{ top:35%; right:8%; padding:.45rem .55rem; }
.exec-gen--3{
  top:60%; left:10%;
  font-size:.65rem;
  color:#ec4899;
  letter-spacing:.15em;
  border-color:rgba(236,72,153,.4);
  animation:execGenPulse 1.5s ease-in-out infinite;
}
@keyframes execGenPulse{
  0%, 100% { opacity:.5; box-shadow:0 0 0 rgba(236,72,153,0); }
  50%      { opacity:1; box-shadow:0 0 12px rgba(236,72,153,.4); }
}
.exec-bar{
  display:block;
  height:4px;
  background:linear-gradient(90deg, var(--accent), #ec4899);
  border-radius:2px;
  margin:3px 0;
  animation:execBarFill 2.2s ease-in-out infinite;
  transform-origin:left;
}
.exec-bar:nth-child(1){ width:60px; animation-delay:0s; }
.exec-bar:nth-child(2){ width:75px; animation-delay:.3s; }
.exec-bar:nth-child(3){ width:50px; animation-delay:.6s; }
@keyframes execBarFill{
  0%   { transform:scaleX(0); opacity:.4; }
  50%  { transform:scaleX(1); opacity:1; }
  100% { transform:scaleX(0); opacity:.4; }
}
.exec-dot{
  display:inline-block;
  width:6px; height:6px;
  border-radius:50%;
  background:var(--accent);
  margin:0 2px;
  box-shadow:0 0 8px var(--accent);
  animation:execDotBlink 1.2s ease-in-out infinite;
}
.exec-dot:nth-child(1){ animation-delay:0s; }
.exec-dot:nth-child(2){ animation-delay:.2s; }
.exec-dot:nth-child(3){ animation-delay:.4s; }
@keyframes execDotBlink{
  0%, 60%, 100% { opacity:.2; transform:scale(.7); }
  30%           { opacity:1; transform:scale(1); }
}

/* === 05 OTIMIZAÇÃO — checkpoints pulsando + label final === */
.otim-checkpoints{
  position:absolute; inset:0;
}
.otim-cp{
  position:absolute;
  transform:translate(-50%,-50%);
  width:14px; height:14px;
  border-radius:50%;
  background:#ec4899;
  box-shadow:0 0 14px #ec4899, 0 0 4px #fff;
  animation:cpPulse 3s ease-in-out infinite;
}
.otim-cp::before{
  content:""; position:absolute; inset:-6px;
  border:1.5px solid #ec4899;
  border-radius:50%;
  opacity:0;
  animation:cpRing 3s ease-out infinite;
}
.otim-cp b{
  position:absolute;
  top:-22px; left:50%; transform:translateX(-50%);
  font-family:var(--font-mono);
  font-size:.62rem;
  color:#fff;
  background:rgba(15,15,21,.8);
  backdrop-filter:blur(6px);
  border:1px solid rgba(236,72,153,.35);
  border-radius:5px;
  padding:2px 6px;
  white-space:nowrap;
  letter-spacing:.05em;
}
.otim-cp:nth-child(1){ animation-delay:0s;   }
.otim-cp:nth-child(1)::before{ animation-delay:0s; }
.otim-cp:nth-child(2){ animation-delay:.5s;  }
.otim-cp:nth-child(2)::before{ animation-delay:.5s; }
.otim-cp:nth-child(3){ animation-delay:1s;   }
.otim-cp:nth-child(3)::before{ animation-delay:1s; }
.otim-cp:nth-child(4){ animation-delay:1.5s; }
.otim-cp:nth-child(4)::before{ animation-delay:1.5s; }
.otim-cp:nth-child(5){
  background:#22d3ee;
  box-shadow:0 0 18px #22d3ee, 0 0 6px #fff;
  animation-delay:2s;
}
.otim-cp:nth-child(5)::before{ border-color:#22d3ee; animation-delay:2s; }
.otim-cp:nth-child(5) b{
  background:rgba(34,211,238,.15);
  border-color:rgba(34,211,238,.5);
  color:#fff;
  font-weight:600;
}
@keyframes cpPulse{
  0%, 100% { transform:translate(-50%,-50%) scale(.85); }
  50%      { transform:translate(-50%,-50%) scale(1.2); }
}
@keyframes cpRing{
  0%   { opacity:.9; transform:scale(1); }
  100% { opacity:0; transform:scale(2.5); }
}

/* === Mobile: as animações ficam mais sutis === */
@media (max-width: 720px){
  .processo__step{ height:auto !important; }
  .step-viz{ min-height:200px; }
}

/* SERVIÇOS preview */
.servicos-preview .grid{ gap:1rem; }
.serv-card{
  display:flex; flex-direction:column; gap:1rem;
  padding:clamp(28px,3vw,40px);
  background:var(--bg-glass);
  border:1px solid var(--border);
  border-radius:var(--radius);
  position:relative; overflow:hidden; min-height:280px;
  transition:transform .4s var(--ease), border-color .4s var(--ease), background .4s var(--ease);
}
.serv-card:hover{ transform:translateY(-4px); border-color:var(--accent-soft); }
.serv-card__icon{
  width:48px; height:48px; border-radius:12px;
  background:var(--accent-soft); color:var(--accent);
  display:grid; place-items:center; font-weight:700;
  font-family:var(--font-mono);
}
.serv-card h3{ font-size:1.3rem; }
.serv-card p{ color:var(--text-dim); flex:1; font-size:.95rem; }
.serv-card__link{
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:.88rem; color:var(--accent); margin-top:auto;
}
.serv-card__link .arr{ transition:transform .25s; }
.serv-card:hover .serv-card__link .arr{ transform:translateX(4px); }
.serv-card--feature{ grid-column:span 2; background:linear-gradient(135deg, var(--accent-soft), transparent); border-color:var(--accent-soft); }
@media (max-width:980px){ .serv-card--feature{ grid-column:span 1; } }

/* CASES preview */
.cases-preview{ background:#050505; }
.cases-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:3rem; }
@media (max-width:780px){ .cases-stats{ grid-template-columns:1fr; } }

/* TEAM preview — cards animados */
.team-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; }
@media (max-width:1100px){ .team-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:780px){ .team-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .team-grid{ grid-template-columns:1fr; } }

.team-card{
  position:relative;
  aspect-ratio:3/4;
  padding:0;
  background:#0f0f15;
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  cursor:pointer;
  text-align:left;
  transition:transform .5s cubic-bezier(.2,.8,.2,1), border-color .4s var(--ease), box-shadow .4s var(--ease);
}
.team-card:hover{
  transform:translateY(-8px);
  border-color:var(--accent);
  box-shadow:0 20px 40px -20px rgba(168,85,247,.4);
}

.team-card__photo{
  position:absolute; inset:0;
  background-size:cover; background-position:center 18%;
  transition:transform .8s cubic-bezier(.2,.8,.2,1), filter .6s;
  z-index:2;
}
.team-card:hover .team-card__photo{ transform:scale(1.06); filter:brightness(1.1); }

.team-card__overlay{
  position:absolute; inset:0; z-index:4;
  background:linear-gradient(180deg, transparent 35%, rgba(5,5,7,.6) 65%, rgba(5,5,7,.95) 100%);
  pointer-events:none;
}

.team-card__info{
  position:absolute; left:0; right:0; bottom:0;
  padding:1.2rem 1.1rem; z-index:5;
  transform:translateY(8px);
  transition:transform .5s var(--ease);
}
.team-card:hover .team-card__info{ transform:translateY(0); }
.team-card__name{ font-weight:600; font-size:1rem; margin-bottom:.15rem; color:#fff; letter-spacing:-.01em; }
.team-card__role{ font-size:.7rem; color:var(--text-mute); text-transform:uppercase; letter-spacing:.1em; font-family:var(--font-mono); }
.team-card__sig{
  font-size:.78rem; color:var(--accent);
  margin-top:.6rem; opacity:0; max-height:0; overflow:hidden;
  transition:opacity .4s .1s, max-height .5s;
}
.team-card:hover .team-card__sig{ opacity:1; max-height:60px; }

.team-card__badge{
  position:absolute; top:14px; right:14px; z-index:6;
  font-family:var(--font-mono); font-size:.65rem;
  padding:.25rem .6rem; border-radius:6px;
  background:rgba(168,85,247,.25); backdrop-filter:blur(10px);
  color:#fff; letter-spacing:.1em; font-weight:600;
  border:1px solid rgba(168,85,247,.4);
}

/* === EFEITO RUANN — grid de comando === */
.fx-grid::before{
  content:""; position:absolute; inset:0; z-index:3;
  background-image:
    linear-gradient(rgba(168,85,247,.55) 1px, transparent 1px),
    linear-gradient(90deg, rgba(168,85,247,.55) 1px, transparent 1px);
  background-size:24px 24px;
  opacity:0; transition:opacity .5s;
  mix-blend-mode:screen; pointer-events:none;
}
.fx-grid:hover::before{ opacity:1; animation:gridShift 3s linear infinite; }
@keyframes gridShift{ from{background-position:0 0;} to{background-position:24px 24px;} }
.fx-grid::after{
  content:""; position:absolute;
  top:50%; left:50%; width:30px; height:30px;
  border:2px solid rgba(168,85,247,.7); border-radius:50%;
  transform:translate(-50%,-50%) scale(0);
  z-index:3; opacity:0; pointer-events:none;
}
.fx-grid:hover::after{ animation:pulseRing 2s ease-out infinite; }
@keyframes pulseRing{
  0%{ transform:translate(-50%,-50%) scale(0); opacity:1; }
  100%{ transform:translate(-50%,-50%) scale(6); opacity:0; }
}

/* === EFEITO ANDRÉ — linhas de crescimento === */
.team-card__bars{ position:absolute; inset:0; z-index:3; pointer-events:none; opacity:0; transition:opacity .4s; }
.team-card__bars svg{ width:100%; height:100%; }
.team-card__bars path{ stroke:#10b981; stroke-width:2; fill:none; stroke-dasharray:200; stroke-dashoffset:200; }
.team-card:hover .team-card__bars{ opacity:1; }
.team-card:hover .team-card__bars path{ animation:drawLine 1.5s ease-out forwards; }
.team-card:hover .team-card__bars path:nth-child(2){ animation-delay:.3s; }
@keyframes drawLine{ to{ stroke-dashoffset:0; } }

/* === EFEITO HEMANUELY — bolhas sociais === */
.team-card__bubbles{ position:absolute; inset:0; z-index:3; pointer-events:none; }
.team-card__bubbles span{
  position:absolute; bottom:30%; font-size:18px; opacity:0;
  color:#ec4899; filter:drop-shadow(0 0 8px rgba(236,72,153,.8));
}
.team-card:hover .team-card__bubbles span{ animation:floatBubble 2.5s ease-out infinite; }
.team-card:hover .team-card__bubbles span:nth-child(1){ left:18%; animation-delay:0s; }
.team-card:hover .team-card__bubbles span:nth-child(2){ left:50%; animation-delay:.6s; }
.team-card:hover .team-card__bubbles span:nth-child(3){ left:75%; animation-delay:1.2s; }
.team-card:hover .team-card__bubbles span:nth-child(4){ left:35%; animation-delay:1.8s; }
@keyframes floatBubble{
  0%{ bottom:25%; opacity:0; transform:translateY(0) scale(.5); }
  20%{ opacity:1; }
  100%{ bottom:95%; opacity:0; transform:translateY(0) scale(1.2); }
}

/* === EFEITO MARCOS — chuva de código === */
.team-card__matrix{
  position:absolute; inset:0; z-index:3;
  overflow:hidden; opacity:0;
  transition:opacity .5s;
  pointer-events:none; mix-blend-mode:screen;
}
.team-card:hover .team-card__matrix{ opacity:1; }
.team-card__matrix span{
  position:absolute; top:-30px;
  font-family:'Courier New', monospace; font-size:14px; font-weight:700;
  color:#22d3ee; text-shadow:0 0 10px #22d3ee, 0 0 20px #22d3ee;
  white-space:nowrap; opacity:0;
}
.team-card:hover .team-card__matrix span{ animation:matrixDrop 2.5s linear infinite; }
.team-card__matrix span:nth-child(1){ left:8%;  animation-delay:0s;  }
.team-card__matrix span:nth-child(2){ left:28%; animation-delay:.5s; }
.team-card__matrix span:nth-child(3){ left:48%; animation-delay:1s;  }
.team-card__matrix span:nth-child(4){ left:68%; animation-delay:.3s; }
.team-card__matrix span:nth-child(5){ left:88%; animation-delay:1.4s;}
@keyframes matrixDrop{
  0%{ top:-10%; opacity:0; }
  15%{ opacity:1; }
  85%{ opacity:1; }
  100%{ top:110%; opacity:0; }
}

/* === EFEITO AISHA — aura holográfica === */
.fx-aura::after{
  content:""; position:absolute;
  top:-20%; left:-20%; right:-20%; bottom:-20%;
  background:conic-gradient(from 0deg, #a855f7, #ec4899, #22d3ee, #a855f7);
  filter:blur(40px); opacity:0;
  transition:opacity .6s; z-index:0;
  animation:auraSpin 6s linear infinite;
}
.team-card.fx-aura:hover::after{ opacity:.55; }
@keyframes auraSpin{ to{ transform:rotate(360deg); } }
.team-card__scan{
  position:absolute; left:0; right:0; height:2px; z-index:3; opacity:0;
  background:linear-gradient(90deg, transparent, #ec4899, transparent);
  box-shadow:0 0 10px #ec4899; pointer-events:none;
}
.team-card.fx-aura:hover .team-card__scan{ opacity:1; animation:scan 2s linear infinite; }
@keyframes scan{ from{ top:0; } to{ top:100%; } }

/* Shimmer "sempre processando" — só na Aisha, roda independente do hover */
.fx-aura::before{
  content:""; position:absolute; inset:0; z-index:3;
  background:linear-gradient(115deg,
    transparent 0%, transparent 42%,
    rgba(236,72,153,.22) 50%,
    transparent 58%, transparent 100%);
  background-size:220% 100%;
  animation:aishaShimmer 3.5s linear infinite;
  pointer-events:none; mix-blend-mode:screen;
}
@keyframes aishaShimmer{
  0%{ background-position:200% 0; }
  100%{ background-position:-200% 0; }
}

/* Dot verde online no badge da Aisha */
.team-card--ai .team-card__badge{
  background:rgba(16,185,129,.18);
  border:1px solid rgba(16,185,129,.4);
  color:#fff;
}
.team-card__badge-dot{
  display:inline-block;
  width:7px; height:7px;
  background:#10b981;
  border-radius:50%;
  margin-right:6px;
  vertical-align:middle;
  box-shadow:0 0 8px #10b981;
  animation:aishaBlink 1.5s ease-in-out infinite;
}
@keyframes aishaBlink{
  0%,100%{ opacity:1; transform:scale(1); }
  50%{ opacity:.4; transform:scale(.8); }
}

/* Balão de chat com typewriter */
.team-card__chat{
  position:absolute;
  top:54px; left:14px; right:14px;
  z-index:6;
  padding:.5rem .7rem;
  background:rgba(15,15,21,.82);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(168,85,247,.35);
  border-radius:10px 10px 10px 2px;
  font-family:var(--font-mono);
  font-size:.68rem; line-height:1.4;
  color:#fff;
  min-height:1.7em;
  letter-spacing:.01em;
  box-shadow:0 4px 20px -8px rgba(168,85,247,.5);
}
.team-card__chat-cursor{
  color:var(--accent);
  margin-left:1px;
  animation:aishaCursor 1s steps(1) infinite;
}
@keyframes aishaCursor{
  0%,50%{ opacity:1; }
  51%,100%{ opacity:0; }
}

/* BLOG preview */
.blog-preview .post{
  display:flex; flex-direction:column; gap:1rem;
  border-radius:var(--radius); overflow:hidden;
  transition:transform .4s var(--ease);
}
.blog-preview .post:hover{ transform:translateY(-4px); }
.blog-preview .post__thumb{
  aspect-ratio:16/10; border-radius:var(--radius);
  background:linear-gradient(135deg, #1a1a1a, #0a0a0a);
  border:1px solid var(--border); position:relative; overflow:hidden;
}
.blog-preview .post__thumb::after{
  content:''; position:absolute; inset:0;
  background:radial-gradient(circle at 30% 30%, var(--accent-soft), transparent 60%);
}
.blog-preview .post__tag{
  font-family:var(--font-mono); font-size:.72rem;
  text-transform:uppercase; letter-spacing:.18em; color:var(--accent);
}
.blog-preview .post h3{ font-size:1.15rem; line-height:1.3; }

/* FAQ */
.faq__list{ max-width:880px; margin:0 auto; }
.faq__item{
  border-bottom:1px solid var(--border);
  padding:1.6rem 0;
}
.faq__q{
  display:flex; justify-content:space-between; align-items:center;
  width:100%; text-align:left;
  font-size:clamp(1.05rem, 1.4vw, 1.25rem); font-weight:500;
  color:var(--text); padding:0;
}
.faq__q .ic{
  width:32px; height:32px; border-radius:50%;
  border:1px solid var(--border-strong);
  display:grid; place-items:center;
  font-size:1.1rem; color:var(--accent);
  transition:transform .35s var(--ease), background .35s var(--ease);
}
.faq__item.is-open .faq__q .ic{ transform:rotate(45deg); background:var(--accent-soft); }
.faq__a{
  max-height:0; overflow:hidden;
  transition:max-height .5s var(--ease), margin .5s var(--ease);
  color:var(--text-dim); font-size:1rem; line-height:1.65;
}
.faq__item.is-open .faq__a{ max-height:400px; margin-top:1rem; }

/* CTA Final */
.cta-final{
  text-align:center; padding:clamp(120px,15vw,200px) 0;
  background:radial-gradient(ellipse at center, var(--accent-soft) 0%, transparent 60%);
}
.cta-final h2{
  font-size:clamp(3rem, 8vw, 7rem); font-weight:700;
  letter-spacing:-0.04em; line-height:1; margin-bottom:2rem;
}
.cta-final p{ color:var(--text-dim); max-width:48ch; margin:0 auto 2.5rem; font-size:1.1rem; }
