/* Sinal — identidade editorial da home. O símbolo oficial é usado sem redesenho. */
:root{--navy:#0A1F44;--navy-900:#061233;--azul:#1E6BFF;--ciano:#00E5FF;--gelo:#F4F7FB;--branco:#FFFFFF;--tinta:#0F1B33;--grafite:#51607A;--nevoa:#E6EDF7;--aco:#9FB0CC;--linha:#DCE3EE;--linha-noite:#1D3461;--ok:#22C55E;--erro:#E53935;--raio:12px;--raio-pill:999px;--font-titulo:'Poppins',sans-serif;--font-texto:'Inter',sans-serif;--font-mono:'JetBrains Mono',monospace;--rv-muted:var(--grafite);--rv-line:var(--linha);--rv-bg:var(--gelo)}
.revenue-page{color:var(--tinta);font-weight:400}.revenue-page h1,.revenue-page h2,.revenue-page h3{color:var(--tinta)}.rv-dark{background:var(--navy);color:var(--nevoa)}.revenue-page .rv-dark h1,.revenue-page .rv-dark h2,.revenue-page .rv-dark h3{color:var(--branco)}.revenue-page :focus-visible{outline:2px solid var(--azul);outline-offset:4px}.revenue-page .rv-dark :focus-visible{outline-color:var(--ciano)}
.rv-eyebrow,.rv-step,.rv-preview__head,.rv-example,.rv-flow,.rv-chat__label,.rv-preview__foot,.rv-measure dd,.rv-steps>li>span,.rv-proof-card__foot{font-family:var(--font-mono);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.035em}.rv-eyebrow{letter-spacing:.09em}.rv-button{font-weight:500;border-radius:var(--raio);background:var(--azul)}.rv-button:hover{background:var(--azul);box-shadow:0 0 0 4px #00e5ff14,0 0 22px #00e5ff26}.rv-dark .rv-button:hover{box-shadow:0 0 0 4px #00e5ff1a,0 0 25px #00e5ff33}
.rv-hero{position:relative;isolation:isolate;overflow:hidden;background-color:var(--navy);background-image:linear-gradient(#1d346166 1px,transparent 1px),linear-gradient(90deg,#1d346166 1px,transparent 1px);background-size:32px 32px;padding-block:62px 72px}.rv-hero__grid{position:relative;z-index:1}.rv-hero h1 span{color:var(--ciano)}.rv-hero .rv-lead{color:var(--nevoa)}.rv-hero .rv-micro,.rv-hero .rv-local span{color:var(--aco)}.rv-hero .rv-local{color:var(--nevoa)}.rv-signal{position:absolute;z-index:0;left:0;right:0;bottom:24px;height:110px;opacity:.2;pointer-events:none}.rv-signal svg{width:100%;height:100%;overflow:visible}.rv-signal path{fill:none;stroke:var(--ciano);stroke-width:1.5;stroke-dasharray:650 250;animation:signal-travel 16s linear infinite}.rv-hero::after,.rv-offers-section::after{content:'';display:block;position:absolute;inset:auto 0 0;height:24px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 24' preserveAspectRatio='none'%3E%3Cpath d='M0 12C180 12 180 1 360 1S540 23 720 23S900 1 1080 1S1260 12 1440 12' fill='none' stroke='%2300E5FF' stroke-width='1' opacity='.5'/%3E%3C/svg%3E") center/100% 24px no-repeat;pointer-events:none}@keyframes signal-travel{to{stroke-dashoffset:-900}}
.rv-preview{background:var(--navy-900);border-color:var(--linha-noite);border-radius:var(--raio);box-shadow:0 26px 60px #06123366;color:var(--nevoa)}.rv-preview__head{border-color:var(--linha-noite);font-size:12px}.rv-status-dot{background:var(--ciano)}.rv-example{font-size:10px;color:var(--aco);border-color:var(--linha-noite)}.rv-flow{background:var(--navy);border-bottom:1px solid var(--linha-noite);gap:8px}.rv-flow span{font-family:var(--font-mono);font-size:12px}.rv-flow b{color:var(--ciano)}.rv-preview__tabs{border-color:var(--linha-noite)}.rv-preview__tabs button{color:var(--aco);font-family:var(--font-mono);font-size:12px;font-weight:500}.rv-preview__tabs button[aria-selected=true]{color:var(--ciano);border-color:var(--ciano)}.rv-chat{background:var(--navy);border-color:var(--linha-noite);font-size:14px}.rv-chat__label{font-size:11px;color:var(--aco)}.rv-chat--agent{background:var(--navy);border-color:var(--linha-noite);border-left:2px solid var(--ciano)}.rv-chat--agent .rv-chat__label{color:var(--ciano)}.rv-check{border-color:var(--linha-noite);color:var(--ciano)}.rv-record strong{font-weight:500;font-size:12px}.rv-record div>span{color:var(--aco);font-size:11px}.rv-preview__foot{border-color:var(--linha-noite);color:var(--aco);font-size:10px;letter-spacing:0}.rv-measure div{border-color:var(--linha-noite)}.rv-measure dt{font-size:13px}.rv-measure dd{color:var(--ciano);font-size:11px}.rv-preview__note{color:var(--aco);font-size:12px}.rv-measure-title{font-weight:500}
.rv-services{background:var(--gelo)}.rv-services .rv-heading--split>p{color:var(--grafite)!important}.rv-four{border-color:var(--linha);background:var(--branco)}.rv-pillar{border-color:var(--linha)}.rv-pillar:last-child{border-color:var(--linha)}.rv-pillar .rv-step{color:var(--grafite)}.rv-pillar>p,.rv-includes span{color:var(--grafite)}.rv-includes{border-color:var(--linha)}.rv-includes strong{color:var(--tinta);font-family:var(--font-mono);font-weight:500}.rv-ownership p{color:var(--grafite)}.rv-ownership>span,.rv-ownership strong{color:var(--tinta)}
.rv-offers-section .rv-step{color:var(--aco)}.rv-offers-section .rv-small{color:var(--aco)}.rv-proof-card{border-color:var(--linha);border-radius:var(--raio)}.rv-text-link{font-weight:500}.rv-links a{border-radius:var(--raio);border-color:var(--linha)}.rv-links a:hover{border-color:var(--grafite)}.rv-links span,.rv-record strong,.rv-faq summary{font-weight:500}.rv-final>.rv-container>p:not(.rv-eyebrow):not(.rv-micro),.rv-final .rv-micro{color:var(--nevoa)}
@media(max-width:1100px){.rv-pillar{border-color:var(--linha)}}
@media(max-width:560px){.rv-hero{padding-block:28px 45px}.rv-hero .rv-eyebrow{font-size:10px;max-width:335px;line-height:1.5}.rv-hero h1{font-size:clamp(34px,9.6vw,40px)}.rv-hero .rv-lead{margin-block:18px 21px;font-size:17px}.rv-preview__head{font-size:11px;padding:16px 14px}.rv-example{font-size:9px}.rv-pillar{border-color:var(--linha)!important}.rv-preview__foot{font-size:9px}.rv-flow span{font-size:11px}.rv-chat__label{font-size:10px}.rv-signal{bottom:18px;opacity:.12}.rv-eyebrow{font-size:11px}}
/* Texto de leitura em 17px; dimensões menores ficam restritas aos rótulos do painel. */
.rv-pillar>p,.rv-includes span,.rv-ownership p,.rv-steps p,.rv-proof-card>p,.rv-founder__checks li,.rv-chat{font-size:17px}
.rv-preview__head{flex-wrap:wrap}.rv-chat__label,.rv-example,.rv-preview__foot,.rv-flow span,.rv-record div>span,.rv-measure dd{font-size:12px}.rv-record strong{font-size:15px}.rv-preview__foot{flex-wrap:wrap}.rv-chat--agent{max-width:100%}.rv-measure dt{font-size:17px}
.rv-includes{min-height:142px}@media(max-width:560px){.rv-includes{min-height:0}.rv-hero .rv-eyebrow,.rv-eyebrow{font-size:12px}}
@media(prefers-reduced-motion:reduce){.rv-signal path{animation:none;stroke-dasharray:none}}

/* =====================================================================
   Claude · 14/10/2026 · cena do muro no hero, Bastidores e acabamento
   ===================================================================== */

/* Tipografia: tracking menos negativo (as letras do Poppins não encostam). O H1 desce de 58 para 56 px
   no desktop para manter as 3 linhas com o espaçamento novo. */
@media(min-width:561px){.revenue-page .rv-hero h1{font-size:clamp(38px,4.2vw,56px)}}
.rv-preview .rv-flow{padding-block:13px}
.revenue-page h1,.revenue-page h2,.revenue-page h3{letter-spacing:-.02em}
.revenue-page .rv-hero h1{letter-spacing:-.025em;line-height:1.1}
/* desktop: sem "venda." sozinha na linha; no celular o <br> some e o texto corre como antes */
@media(min-width:561px){.revenue-page .rv-hero h1{text-wrap:balance}}


/* ---------- Hero: cena do muro ----------
   23/10/2026: a cena (moedas, muro "Gasto sem resultado", onda e "Lucro líquido") e as abas dos 3 passos estão no fim deste arquivo. */

/* ---------- Bastidores (capítulo escuro de prova real) ---------- */
.rv-bastidores{overflow:hidden}
.rv-bastidores::after{content:'';display:block;position:absolute;inset:auto 0 0;height:24px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 24' preserveAspectRatio='none'%3E%3Cpath d='M0 12C180 12 180 1 360 1S540 23 720 23S900 1 1080 1S1260 12 1440 12' fill='none' stroke='%2300E5FF' stroke-width='1' opacity='.5'/%3E%3C/svg%3E") center/100% 24px no-repeat;pointer-events:none}
.revenue-page .rv-bastidores .rv-heading--split>p{color:var(--nevoa)!important}
.rv-shots,.rv-videos{list-style:none;margin:0;padding:0}
.rv-shots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.rv-shots>li,.rv-videos>li{min-width:0}
.rv-shot{margin:0;height:100%;display:flex;flex-direction:column;background:var(--navy-900);border:1px solid var(--linha-noite);border-radius:var(--raio);overflow:hidden}
.rv-shot__tag{display:flex;justify-content:space-between;gap:12px;padding:13px 18px;border-bottom:1px solid var(--linha-noite);font:500 12px/1.5 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--aco)}
.rv-shot__tag b{font-weight:500;color:var(--ciano);white-space:nowrap}
.rv-shot img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;background:var(--navy)}
.rv-shot figcaption{padding:18px 18px 22px;font-size:16px;line-height:1.6;color:var(--nevoa)}
.rv-shot strong{font-weight:500;color:var(--branco)}
.rv-palco{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:48px;align-items:center;margin-top:56px;padding-top:44px;border-top:1px solid var(--linha-noite)}
.rv-palco .rv-step{color:var(--aco);margin:0}
.revenue-page .rv-palco__intro h3{margin:12px 0 10px;font-size:26px;line-height:1.25}
.rv-palco__intro>p:not(.rv-step){max-width:34ch;margin-bottom:22px;font-size:16px;color:var(--aco)}
.rv-bastidores .rv-text-link{color:var(--nevoa);border-bottom-color:var(--ciano);font-weight:500}
.rv-bastidores .rv-text-link:hover{color:var(--ciano)}
.rv-videos{display:grid;grid-template-columns:repeat(3,minmax(0,236px));gap:20px}
.rv-video{margin:0}
.rv-video__tela{position:relative;aspect-ratio:9/16;border:1px solid var(--linha-noite);border-radius:var(--raio);overflow:hidden;background:var(--navy-900)}
.rv-video__play{position:absolute;inset:0;display:block}
.rv-video__play img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.rv-video__play:hover img{transform:scale(1.03)}
.rv-video__play:focus-visible{outline:2px solid var(--ciano);outline-offset:-4px;border-radius:var(--raio)}
.rv-video__icone{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;display:grid;place-items:center;border:1px solid var(--ciano);border-radius:50%;background:rgb(6 18 51 / .78);transition:box-shadow .3s ease}
.rv-video__icone svg{width:22px;height:22px;margin-left:3px;fill:none;stroke:var(--ciano);stroke-width:1.75;stroke-linejoin:round}
.rv-video__play:hover .rv-video__icone{box-shadow:0 0 0 4px #00e5ff1a,0 0 22px #00e5ff33}
.rv-video__frame{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.rv-video__frame--recorte{left:50%;right:auto;width:330%;transform:translateX(-50%)}
.rv-video figcaption{margin-top:12px;font-size:15px;line-height:1.5;color:var(--nevoa)}
.rv-video figcaption span{display:block;margin-bottom:2px;font:500 12px/1.5 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--aco)}
@media(max-width:1040px){.rv-palco{grid-template-columns:1fr;gap:28px}.rv-palco__intro>p:not(.rv-step){max-width:52ch}}
/* Celular: fotos e vídeos em trilho com rolagem lateral (manual, sem carrossel automático), sem rolagem da página. */
@media(max-width:760px){
  .rv-shots,.rv-videos{display:flex;gap:14px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;--g:20px;margin-inline:calc(-1 * var(--g));padding:0 var(--g) 10px;scroll-padding-inline:var(--g);scrollbar-width:thin;scrollbar-color:var(--linha-noite) transparent}
  .rv-shots>li{flex:0 0 84%;scroll-snap-align:start}
  .rv-videos>li{flex:0 0 212px;scroll-snap-align:start}
  .rv-palco{margin-top:40px;padding-top:32px}
  .revenue-page .rv-palco__intro h3{font-size:22px}
}
@media(max-width:560px){.rv-shots,.rv-videos{--g:18px}}
@media(prefers-reduced-motion:reduce){.rv-video__play img,.rv-video__icone{transition:none}.rv-video__play:hover img{transform:none}}

/* Celular: o espaço reservado para a barra de WhatsApp fica dentro do rodapé (navy), não numa faixa branca abaixo dele. */
@media(max-width:800px){.revenue-page.has-wa-bar{padding-bottom:0}.revenue-page.has-wa-bar .bh-footer{padding-bottom:calc(28px + 84px)}}

/* =====================================================================
   Claude · 15/10/2026 · bloco curto "A BluHertz também cuida…" (substitui o "Mais da BluHertz")
   Os Bastidores completos (fotos e vídeos) ficam em /hardware#montagens; aqui entra só a faixa curta.
   ===================================================================== */
.rv-more{border-top:1px solid var(--linha)}
.rv-more .rv-heading--split{max-width:none}
.rv-more .rv-heading--split>div{flex:0 1 740px;min-width:0}
.rv-more .rv-heading--split>p{flex:0 1 360px}
.revenue-page .rv-more h2{text-wrap:balance}
@media(max-width:560px){.rv-more h2 br{display:none}}
.revenue-page .rv-more h2 span{color:var(--tinta)}
.revenue-page .rv-more .rv-heading--split>p{color:var(--grafite)!important}
.rv-links--abas a{background:var(--branco)}
.rv-links--abas small{font-size:14px}
.rv-bastidor{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:22px;margin-top:15px;padding:16px 22px 16px 16px;border:1px solid var(--linha);border-radius:var(--raio);background:var(--navy);color:var(--nevoa);transition:border-color .2s ease,box-shadow .3s ease}
.rv-bastidor:hover{border-color:var(--ciano);box-shadow:0 0 0 4px #00e5ff14}
.revenue-page .rv-bastidor:focus-visible{outline:2px solid var(--azul);outline-offset:4px}
.rv-bastidor__fotos{display:flex;gap:8px}
.rv-bastidor__fotos img{width:72px;height:72px;border-radius:8px;border:1px solid var(--linha-noite);object-fit:cover;background:var(--navy-900)}
.rv-bastidor__texto{display:grid;gap:2px}
.rv-bastidor .rv-step{color:var(--ciano)}
.rv-bastidor strong{font:600 18px/1.35 var(--font-titulo);color:var(--branco);letter-spacing:-.01em}
.rv-bastidor small{font-size:15px;line-height:1.55;color:var(--aco)}
.rv-bastidor>b{font-size:20px;font-weight:400;color:var(--ciano)}
.rv-more__extra{display:flex;flex-wrap:wrap;align-items:center;gap:0 20px;margin-top:18px!important;font-size:15px;color:var(--grafite)}
.rv-more__extra a{display:inline-flex;align-items:center;min-height:44px;color:var(--tinta);font-weight:500;text-decoration:underline;text-decoration-color:var(--azul);text-underline-offset:4px}
.rv-more__extra a:hover{text-decoration-thickness:2px}
@media(max-width:760px){
  .rv-bastidor{grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:16px}
  .rv-bastidor__fotos{grid-column:1/-1}
  .rv-bastidor__fotos img{width:calc((100% - 16px) / 3);height:auto;aspect-ratio:1}
}
@media(prefers-reduced-motion:reduce){.rv-bastidor{transition:none}}
/* 23/10/2026: a seção da equipe não tem mais foto; a animação de equipe está no fim deste arquivo */

/* =====================================================================
   Claude · 15/10/2026 · Pacotes Empreendedor / Crescimento / Pro (substituem os 3 cartões antigos)
   Capítulo escuro: porta de entrada (sessão grátis) → 3 cards de painel → faixa Cliente fundador.
   Card = módulo de equipamento: rótulo mono + medidor de nível, leitura de preço, "Inclui" por peça
   (Planejamento · Site · CRM · Tráfego), "Não inclui", contrato e botão. No desktop as linhas se alinham entre os cards (subgrid).
   ===================================================================== */
.revenue-page .rv-offers-section .rv-heading>p:not(.rv-eyebrow){color:var(--aco);text-wrap:pretty}
/* Porta de entrada */
.rv-porta{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px 48px;margin-bottom:44px;padding:24px 28px;border:1px solid var(--linha-noite);border-radius:var(--raio);background:var(--navy-900)}
.rv-porta__rotulo,.rv-pacote__rotulo,.rv-pacote__selo,.rv-pacote__preco dt,.rv-pacote__titulo,.rv-pecas dt,.rv-fundador__rotulo{font:500 12px/1.5 var(--font-mono);letter-spacing:.05em;text-transform:uppercase}
.rv-porta__rotulo{display:flex;align-items:center;gap:8px;margin-bottom:10px;color:var(--ciano)}
.rv-porta__rotulo i{width:7px;height:7px;border-radius:50%;background:var(--ciano);flex:none}
.revenue-page .rv-porta h3{margin-bottom:6px;font-size:22px;line-height:1.3}
.rv-porta__texto>p:last-child{max-width:60ch;font-size:17px;line-height:1.6;color:var(--nevoa)}
.rv-porta__acao{display:grid;justify-items:start}
.revenue-page .rv-porta .rv-micro{margin-top:10px;color:var(--aco)}
/* Cards */
.rv-pacotes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.rv-pacote{position:relative;display:flex;flex-direction:column;min-width:0;padding:28px 24px 24px;border:1px solid var(--linha-noite);border-radius:var(--raio);background:var(--navy-900);color:var(--nevoa)}
.rv-pacote--destaque{border-color:var(--ciano);box-shadow:0 0 0 1px var(--ciano),0 24px 60px #00e5ff0d}
.rv-pacote__selo{position:absolute;left:23px;top:-14px;padding:3px 11px;border:1px solid var(--ciano);border-radius:var(--raio-pill);background:var(--navy-900);color:var(--ciano);white-space:nowrap}
.rv-pacote__rotulo{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--aco)}
.rv-nivel{display:inline-flex;align-items:flex-end;gap:3px;height:14px}
.rv-nivel i{width:4px;border-radius:1px;background:var(--linha-noite)}
.rv-nivel i:nth-child(1){height:6px}.rv-nivel i:nth-child(2){height:10px}.rv-nivel i:nth-child(3){height:14px}
.rv-nivel[data-nivel="1"] i:nth-child(-n+1),.rv-nivel[data-nivel="2"] i:nth-child(-n+2),.rv-nivel[data-nivel="3"] i{background:var(--ciano)}
.revenue-page .rv-pacote h3{margin:12px 0 4px;font-size:28px;line-height:1.2}
.rv-pacote__para{font-size:16px;line-height:1.5;color:var(--aco)}
/* Leitura de preço */
.rv-pacote__preco{margin:20px 0 0;padding:4px 16px;border:1px solid var(--linha-noite);border-radius:8px;background:var(--navy)}
.rv-pacote__preco>div{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 12px;padding:11px 0}
.rv-pacote__preco>div+div{border-top:1px dashed var(--linha-noite)}
.rv-pacote__preco dt{color:var(--aco)}
.rv-pacote__preco dd{margin:0;font:600 26px/1.2 var(--font-titulo);letter-spacing:-.02em;color:var(--ciano);white-space:nowrap}
.rv-pacote__preco dd small{margin-left:2px;font:500 14px/1 var(--font-texto);letter-spacing:0;color:var(--aco)}
.rv-pacote__preco dd.rv-pacote__nota{font:400 16px/1.5 var(--font-texto);letter-spacing:0;color:var(--nevoa);white-space:normal}
/* Inclui por peça. O rótulo mais longo ("Planejamento", ~110 px) cabe na coluna de 112 px; nos cards estreitos
   (981–1160 px e celular) o rótulo fica em cima do texto. */
.rv-pacote__inclui{padding-top:22px}
.rv-pacote__titulo{color:var(--branco)}
.rv-pecas{margin:10px 0 0}
.rv-pecas>div{display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;padding:12px 0;border-top:1px solid var(--linha-noite)}
.rv-pecas dt{justify-self:start;align-self:start;padding:1px 7px;border:1px solid var(--linha-noite);border-radius:6px;color:var(--ciano)}
.rv-pecas dd{margin:0;font-size:16px;line-height:1.55;color:var(--nevoa)}
/* Botão */
.revenue-page .rv-pacote .rv-button{width:100%;min-height:56px;margin-top:20px;gap:12px;font-size:15px}
/* Cliente fundador */
.rv-fundador{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin-top:28px;padding:15px 20px;border:1px solid var(--linha-noite);border-left:2px solid var(--ciano);border-radius:var(--raio);background:var(--navy-900)}
.rv-fundador__rotulo{color:var(--ciano);white-space:nowrap}
.rv-fundador>p:last-child{font-size:16px;line-height:1.55;color:var(--nevoa)}
/* Desktop: as mesmas linhas na mesma altura nos 3 cards (preço, cada peça, prazo/você envia/não inclui, botão, contrato) */
@media(min-width:981px){@supports (grid-template-rows:subgrid){
  .rv-pacotes{row-gap:0}
  .rv-pacote{display:grid;grid-row:span 10;grid-template-rows:subgrid;row-gap:0}
  .rv-pacote__inclui{display:grid;grid-row:span 5;grid-template-rows:subgrid}
  .rv-pecas{display:grid;grid-row:span 4;grid-template-rows:subgrid}
  .revenue-page .rv-pacote .rv-button{align-self:stretch}
}}
/* 981–1160 px: card estreito; a leitura de preço passa a rótulo em cima e valor embaixo (igual nos 3 cards) */
@media(min-width:981px) and (max-width:1160px){.rv-pacote{padding:26px 20px 22px}.rv-pacote__selo{left:19px}.rv-pacote__preco{padding-inline:14px}.rv-pacote__preco>div{flex-direction:column;align-items:flex-start;gap:2px}.rv-pecas>div{grid-template-columns:minmax(0,1fr);gap:8px}}
@media(max-width:980px){.rv-pacotes{grid-template-columns:minmax(0,640px);gap:32px}.rv-porta,.rv-fundador{max-width:640px}}
@media(max-width:980px){.rv-porta{grid-template-columns:1fr;padding:22px 20px;margin-bottom:40px}.rv-porta__acao{justify-items:stretch}.revenue-page .rv-porta .rv-button{width:100%}}
@media(max-width:560px){
  .rv-pacote{padding:26px 20px 20px}
  .rv-pacote__selo{left:19px}
  .rv-pacote__preco{padding:2px 14px}
  .rv-pacote__preco dd{font-size:24px}
  .rv-pecas>div{grid-template-columns:minmax(0,1fr);gap:8px}
  .rv-pecas dd,.rv-pacote__para,.rv-fundador>p:last-child{font-size:17px}
  
  .rv-fundador{padding:16px;gap:6px}
}

/* =====================================================================
   Claude · 15/10/2026 · benchmark de LPs (alfred/MENSAGEM-PAGE-BENCHMARK.md)
   Hero com 3 fatos · Prova logo depois do hero, com 4 modelos ·
   Quatro peças com linha concreta e "Nos pacotes" · passos com selo e "Você recebe" · pacotes com prazo e
   "você envia" · Quem faz com cidades, único WhatsApp e Bastidores curtos · FAQ mais compacto · fim enxuto.
   ===================================================================== */
/* Ação: botão + microcopy */
.rv-acao{display:flex;flex-wrap:wrap;align-items:center;gap:16px 22px}
.rv-acao>.rv-button{flex:none}
@media(min-width:561px){.rv-acao{column-gap:18px}.revenue-page .rv-acao>.rv-button{gap:14px}}
.revenue-page .rv-acao>.rv-micro{order:2;flex:1 0 100%;margin-top:-4px}
.revenue-page .rv-hero .rv-micro{font-size:14px}
/* 3 fatos que dá para conferir (no lugar da linha das cidades) */
.rv-fatos{display:flex;flex-wrap:wrap;gap:10px 20px;margin:24px 0 0;padding:18px 0 0;list-style:none;border-top:1px solid var(--linha-noite)}
.rv-fatos li{display:flex;align-items:center;gap:8px;font-size:14px;line-height:1.4;color:var(--nevoa)}
.rv-fatos svg,.rv-mais svg{width:20px;height:20px;flex:none;fill:none;stroke:var(--ciano);stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:560px){
  .rv-acao>.rv-button{flex:1 1 100%}
  .revenue-page .rv-acao>.rv-micro{order:1;margin-top:-6px}
  .rv-fatos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:22px;padding-top:18px}
  .rv-fatos li{flex-direction:column;align-items:flex-start;gap:6px}
}
/* Prova logo depois do hero: caso zero + 4 modelos de página */
.rv-section.rv-prova{padding-block:72px}
.rv-prova .rv-proof-grid{gap:64px}
.rv-modelos{padding:24px;border:1px solid var(--linha);border-radius:var(--raio);background:var(--branco)}
.rv-modelos .rv-step{margin-bottom:8px}
.revenue-page .rv-modelos h3{margin-bottom:16px;font-size:22px}
.rv-modelos__grade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 6px;padding:0;list-style:none}
.rv-modelos__grade img{width:100%;height:auto;aspect-ratio:400/198;object-fit:cover;object-position:top;border:1px solid var(--linha);border-radius:8px;background:var(--gelo)}
@media(max-width:560px){.rv-section.rv-prova{padding-block:48px}.rv-modelos{padding:18px}.rv-modelos__grade{gap:10px}.rv-prova .rv-proof-grid{gap:28px}}
/* Quatro peças: "Nos pacotes" sem altura mínima; botão depois de "A operação é sua" */
.rv-services .rv-includes{min-height:0}
.rv-cta-linha{margin-top:28px}
/* Como funciona: número + selo, "Você recebe" */
.rv-steps .rv-passo__topo{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:18px;font:500 12px/1.5 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--grafite)}
.rv-selo{padding:2px 9px;border:1px solid var(--linha);border-radius:var(--raio-pill);background:var(--gelo);font-weight:500;color:var(--tinta)}
.rv-steps h3{margin-bottom:10px;text-wrap:balance}
.rv-steps .rv-recebe{margin-top:12px;font-size:16px;line-height:1.55;color:var(--tinta)}
.rv-steps h3+.rv-recebe{margin-top:0}
.rv-recebe>span{display:block;margin-bottom:2px;font:500 12px/1.5 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--grafite)}
@media(max-width:560px){.rv-steps .rv-passo__topo{margin-bottom:10px}.rv-steps .rv-recebe{font-size:17px}}
/* Pacotes: prazo e "você envia" no lugar do bloco de contrato, que vira 1 linha abaixo do botão */
.rv-pacote__entrega{margin:16px 0 0;padding:2px 14px;border:1px dashed var(--linha-noite);border-radius:8px}
.rv-pacote__entrega{margin-top:20px!important}
.rv-pacote__entrega>div{display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px;padding:10px 0}
.rv-pacote__entrega>div+div{border-top:1px dashed var(--linha-noite)}
.rv-pacote__entrega dt{padding-top:2px;font:500 12px/1.5 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--aco)}
.rv-pacote__entrega dd{margin:0;font-size:15px;line-height:1.5;color:var(--nevoa)}
.rv-pacote__contrato{margin-top:10px;font-size:14px;line-height:1.5;text-align:center;color:var(--aco)}
.rv-pacote__contrato span{white-space:nowrap}
.rv-pacotes__final{margin-top:28px;font-size:16px;line-height:1.6;color:var(--nevoa)}
.rv-pacotes__final strong{font-weight:500;color:var(--branco)}
.rv-pacotes__final+.rv-fundador{margin-top:16px}
@media(min-width:981px){@supports (grid-template-rows:subgrid){.rv-pacote{grid-row:span 10}}}
@media(max-width:560px){.rv-pacote__entrega{padding-inline:12px}.rv-pacote__entrega>div{grid-template-columns:76px minmax(0,1fr)}.rv-pacote__entrega dd{font-size:16px}}
@media(max-width:980px){.rv-pacotes__final{max-width:640px}}
/* Quem faz: cidades, único WhatsApp e a faixa Bastidores curta (3 fotos reais → Hardware) */
.rv-por-que .rv-founder__checks{margin-top:16px}
.rv-por-que .rv-founder__checks li{padding:6px 0}
.rv-founder__local{margin-top:16px;font-size:15px;line-height:1.6;color:var(--grafite)}
.rv-founder__wa{font-size:15px;line-height:1.6;color:var(--grafite)}
.rv-founder__wa a{display:inline-flex;align-items:center;min-height:44px;font-weight:500;color:var(--tinta);text-decoration:underline;text-decoration-color:var(--azul);text-underline-offset:4px}
.rv-por-que .rv-bastidor{margin-top:14px}
.revenue-page .rv-por-que h2{font-size:clamp(30px,3.1vw,40px)}
@media(max-width:560px){.rv-por-que .rv-founder{gap:26px}.revenue-page .rv-por-que h2{font-size:28px}.rv-por-que .rv-bastidor__fotos img{width:64px;height:64px}}
/* FAQ: perguntas mais baixas (são 11) e o botão de sessão no fim */
.revenue-page .rv-faq summary{min-height:56px;padding:12px 0}
@media(min-width:801px){.rv-faq-grid{grid-template-rows:auto 1fr;row-gap:0}.rv-faq-grid>.rv-heading{grid-column:1;grid-row:1}.rv-faq-grid>.rv-faq{grid-column:2;grid-row:1/span 2}.rv-faq__cta{grid-column:1;grid-row:2;align-self:start;position:sticky;top:120px}}
@media(max-width:800px){.rv-faq__cta{margin-top:-8px}}
/* CTA final: 3 micropassos + botão */
.rv-micropassos{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 26px;max-width:1040px;margin:26px auto 30px;padding:0;list-style:none;font-size:17px;line-height:1.5;color:var(--nevoa)}
.rv-micropassos li{display:flex;align-items:baseline;gap:8px}
.rv-micropassos b{font:500 13px/1.5 var(--font-mono);color:var(--ciano)}
.rv-final .rv-acao{justify-content:center}
@media(max-width:800px){.rv-micropassos{flex-direction:column;margin-left:0}.rv-final .rv-acao{justify-content:flex-start}}
/* "A BluHertz também cuida de…": só 3 links de texto, depois do CTA final */
.rv-mais{padding:40px 0;background:var(--branco);border-top:1px solid var(--linha)}
.rv-mais__inner{display:flex;flex-wrap:wrap;align-items:center;gap:4px 36px}
.revenue-page .rv-mais h2{font-size:20px;line-height:1.4;letter-spacing:-.01em}
.rv-mais ul{display:flex;flex-wrap:wrap;gap:0 28px;margin:0;padding:0;list-style:none}
.rv-mais a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:16px;font-weight:500;color:var(--tinta);text-decoration:underline;text-decoration-color:var(--azul);text-underline-offset:4px}
.rv-mais a:hover{text-decoration-thickness:2px}
.rv-mais a span{color:var(--azul)}
@media(max-width:560px){.rv-mais{padding:32px 0}.revenue-page .rv-mais h2{font-size:18px}.rv-mais ul{gap:0 22px}}
/* Celular: o que entrou (prazo, você envia, 4 perguntas, 2 botões, micropassos) é compensado com respiros um pouco menores */
@media(max-width:560px){
  .rv-section{padding:52px 0}
  .rv-pillar{padding:22px 20px}
  .rv-pillar .rv-step{margin-bottom:12px}
  .rv-pillar>p{margin:10px 0 16px}
  .rv-includes{padding-top:14px}
  .rv-steps{gap:20px}
  .rv-steps>li{padding-top:20px}
  .rv-pacote__entrega>div{display:block;padding:9px 0}
  .rv-pacote__entrega dt{padding-top:0;margin-bottom:2px}
  .rv-pacotes{gap:24px}
  .rv-pacote{padding-top:22px}
  .rv-fatos{margin-top:18px;padding-top:16px}
  .revenue-page .rv-faq summary{min-height:52px}
  .rv-pacotes__final{margin-top:22px}
  .rv-pacotes__final+.rv-fundador{margin-top:12px}
  .rv-cta-linha{margin-top:22px}
  .rv-acao{gap:14px}
}
/* Claude · 15/10/2026 · revisão do benchmark */
/* Texto só para leitor de tela e cópia */
.rv-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
/* 1º fato do hero: no celular o "·" some e "40 min" vai inteiro para a linha de baixo */
.rv-fatos__fim{white-space:nowrap}
@media(max-width:560px){.rv-fatos__sep{display:none}.rv-fatos__fim{display:block}}

/* ===== 15/10/2026 · "Como funciona" e "Quatro peças" mais legíveis (pedido do Lucas: estava apagado) =====
   Títulos em tinta cheia e menos apertados; texto escuro (contraste ~12:1); cartões brancos com borda
   firme; números dos passos grandes em navy. Azul continua só no botão; ciano não entra no claro. */
#como-funciona h2,#engenharia h2{color:var(--tinta);font-weight:700;letter-spacing:-.015em;line-height:1.12;font-size:clamp(32px,3.6vw,46px)}
#como-funciona h2 span,#engenharia h2 span{color:var(--tinta)}
#como-funciona .rv-eyebrow,#engenharia .rv-eyebrow{color:#33415a;font-weight:600}
#engenharia .rv-heading--split>p{color:#24324b!important;font-size:18px;line-height:1.6}

/* Como funciona: 4 cartões simples */
#como-funciona .rv-steps{gap:18px}
#como-funciona .rv-steps>li{background:var(--branco);border:1px solid #c8d2e0;border-top:1px solid #c8d2e0;border-radius:var(--raio);padding:26px 24px 24px;display:flex;flex-direction:column}
#como-funciona .rv-passo__topo{justify-content:space-between;margin-bottom:14px;color:var(--tinta)}
#como-funciona .rv-passo__topo>span{font:700 40px/1 var(--font-titulo);letter-spacing:-.02em;color:var(--navy)}
#como-funciona .rv-selo{border-color:#c8d2e0;background:var(--gelo);color:var(--tinta);font-weight:600;font-size:12px}
#como-funciona .rv-steps h3{font-size:21px;font-weight:700;letter-spacing:-.01em;color:var(--tinta);margin-bottom:12px}
#como-funciona .rv-steps p{color:#24324b}
#como-funciona .rv-recebe{margin-top:auto;padding:12px 0 0 14px;border-left:3px solid var(--navy);font-size:16px;line-height:1.55;color:var(--tinta)}
#como-funciona .rv-recebe>span{color:#33415a;font-weight:600}

/* Quatro peças: painel branco com divisórias firmes */
#engenharia .rv-four{background:var(--branco);border-color:#c8d2e0}
#engenharia .rv-pillar{border-right-color:#c8d2e0}
#engenharia .rv-pillar .rv-step{color:#33415a;font-weight:600}
#engenharia .rv-pillar h3{font-size:23px;font-weight:700;letter-spacing:-.01em;color:var(--tinta)}
#engenharia .rv-pillar>p{color:#24324b;font-size:17px;line-height:1.6}
#engenharia .rv-includes{border-top-color:#c8d2e0}
#engenharia .rv-includes strong{color:var(--tinta);font-weight:600}
#engenharia .rv-includes span{color:#24324b;font-size:15px}
#engenharia .rv-ownership p{color:#24324b;font-size:16px}
#engenharia .rv-ownership strong{color:var(--tinta)}
@media(max-width:560px){
  #como-funciona .rv-steps>li{padding:22px 20px 20px}
  #como-funciona .rv-passo__topo>span{font-size:34px}
  #engenharia .rv-pillar{border-bottom-color:#c8d2e0!important}
}
#como-funciona .rv-recebe{margin-top:14px}
#como-funciona .rv-steps h3{margin-bottom:8px}
@media(min-width:801px){#engenharia .rv-pillar>p{min-height:4.8em}}

/* ===== 23/10/2026 · ajustes do Lucas (topo, card, equipe) =====
   Topo (cena do muro e abas dos 3 passos), card chamativo do problema e da faixa "A operação é sua.",
   "Site que vende", Quatro peças e a animação da equipe. Eram css/ajuste-hero.css, ajuste-cards.css e
   ajuste-equipe.css, juntados aqui nessa ordem (a mesma ordem em que carregavam, logo depois deste arquivo). */

/* ---------- Topo (hero) ----------
   1) H1 "Pare de atirar no escuro." + linha de apoio menor em ciano.
   2) Cena do muro: dinheiro bate no "Gasto sem resultado", a onda dos dados derruba o muro e o dinheiro chega no "Lucro líquido".
   3) Os 3 passos (Análise de mercado → Anúncio → CRM automatizado) viram as abas do painel.
   Movimento: só transform, opacity e stroke-dashoffset; toca uma vez (data-sinal-play + html.sinal-arma + .is-playing do brand.js).
   O estado padrão é o final, parado e legível: é o que aparece sem JS e com movimento reduzido. */

/* ---------- H1 ---------- */
.revenue-page .rv-hero h1 .rv-h1-apoio{display:block;margin-top:.3em;font-size:clamp(20px,2.1vw,30px);font-weight:600;line-height:1.25;letter-spacing:-.01em;color:var(--ciano);text-wrap:balance}
/* celular: a linha principal ficou curta e sobe um pouco (36 → 40 px em 375); o apoio fica em 20 px */
@media(max-width:560px){.revenue-page .rv-hero h1{font-size:clamp(34px,10.6vw,42px);text-wrap:balance}.revenue-page .rv-hero h1 .rv-h1-apoio{margin-top:.45em}}

/* ---------- Cena do muro ---------- */
.rv-muro{position:relative;background:var(--navy-900);border-bottom:1px solid var(--linha-noite);overflow:hidden}
.rv-muro__cena{display:block;width:100%;height:auto}
.rv-muro__grade{opacity:.5}
.rv-muro__chao{stroke:var(--linha-noite);stroke-width:1;vector-effect:non-scaling-stroke}
.rv-muro__no rect{fill:var(--navy);stroke:var(--linha-noite);stroke-width:1;vector-effect:non-scaling-stroke}
.rv-muro__icone{fill:none;stroke:var(--nevoa);stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
/* Lucro líquido: a borda ciano e o gráfico acendem por opacidade/escala (nada de animar cor) */
.rv-muro__no--lucro .rv-muro__aceso{fill:none;stroke:var(--ciano);stroke-width:1.5}
.rv-muro__no .rv-muro__barra{fill:var(--ciano);fill-opacity:.3;stroke:var(--ciano);stroke-width:1.25;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:50% 100%}
.rv-muro__alta,.rv-muro__seta{fill:none;stroke:var(--ciano);stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}
.rv-muro__alta{stroke-dasharray:100 100;stroke-dashoffset:0}
.rv-muro__tijolo{fill:var(--linha-noite);stroke:var(--aco);stroke-opacity:.45;stroke-width:1;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center}
.rv-muro__tijolo--cai{transform:translate(var(--tx),var(--ty)) rotate(var(--rot))}
.rv-muro__tijolo--chave{opacity:0;transform:translate(0,30px) scale(.4)}
.rv-muro__halo,.rv-muro__onda{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100 100;stroke-dashoffset:0}
.rv-muro__halo{stroke:var(--ciano);stroke-width:10;opacity:.12}
.rv-muro__onda{stroke:var(--ciano);stroke-width:3}
.rv-muro__impacto{opacity:0;transform-box:fill-box;transform-origin:center}
.rv-muro__impacto circle{fill:none;stroke:var(--ciano);stroke-width:2;vector-effect:non-scaling-stroke}
.rv-muro__impacto .rv-muro__anel{stroke-width:1;opacity:.5}
/* Moedas: só o símbolo R$, sem valor */
.rv-muro__moeda{transform-box:fill-box;transform-origin:center}
.rv-muro__moeda circle{stroke-width:1.5;vector-effect:non-scaling-stroke}
.rv-muro__moeda text{font:700 10px var(--font-titulo);letter-spacing:-.02em;text-anchor:middle}
.rv-muro__moeda--perde{opacity:0}
.rv-muro__moeda--perde circle{fill:var(--navy);stroke:var(--nevoa)}
.rv-muro__moeda--perde text{fill:var(--nevoa)}
.rv-muro__moeda--ganha circle{fill:var(--navy-900);stroke:var(--ciano)}
.rv-muro__moeda--ganha text{fill:var(--ciano)}
/* Rótulos embaixo de cada peça: Sua empresa · Gasto sem resultado (o muro) · Lucro líquido */
.rv-muro__rotulos{display:grid;grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr);align-items:start;column-gap:10px;padding:8px 4.17% 14px}
.rv-muro__rotulo{font:500 12px/1.3 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;color:var(--nevoa)}
.rv-muro__rotulo:first-child{justify-self:start}
.rv-muro__rotulo--fat{justify-self:end;text-align:right;color:var(--ciano)}
.rv-muro__rotulo--muro{display:grid;justify-items:center;text-align:center;white-space:normal}
.rv-muro__rotulo--muro>*{grid-area:1/1;font-weight:500}
.rv-muro__gasto{position:relative;color:var(--nevoa);opacity:0}
.rv-muro__gasto::before{content:'';position:absolute;right:100%;top:.42em;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--erro)}
/* estado final: continua legível, riscado pelo sinal */
.rv-muro__cortado{color:var(--aco);text-decoration:line-through;text-decoration-color:var(--ciano);text-decoration-thickness:1.5px}
/* sinal ciano de caminho livre, no alto da brecha */
.rv-muro__status{position:absolute;top:4%;left:0;right:0;width:max-content;margin-inline:auto;display:flex;align-items:center;gap:8px;padding:4px 11px;border:1px solid rgb(0 229 255 / .45);border-radius:var(--raio-pill);background:var(--navy-900);font:500 12px/1.4 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;color:var(--ciano)}
.rv-muro__status i{width:7px;height:7px;border-radius:50%;background:var(--ciano);flex:none}
@media(max-width:560px){
  .rv-muro__rotulos{column-gap:8px;padding-bottom:12px}
  .rv-muro__rotulo{font-size:11px}
  .rv-muro__rotulo--muro{max-width:10.5ch}
  .rv-muro__gasto::before{width:6px;height:6px;margin-right:5px}
  .rv-muro__status{font-size:11px;padding:3px 9px;gap:6px}
}

/* estado inicial (antes de tocar): html.sinal-arma vem do script inline do <head>, antes da 1ª pintura */
html.sinal-arma .rv-muro:not(.is-playing) .rv-muro__halo,html.sinal-arma .rv-muro:not(.is-playing) .rv-muro__onda,html.sinal-arma .rv-muro:not(.is-playing) .rv-muro__alta{stroke-dashoffset:100}
html.sinal-arma .rv-muro:not(.is-playing) .rv-muro__tijolo--cai,html.sinal-arma .rv-muro:not(.is-playing) .rv-muro__tijolo--chave{transform:none;opacity:1}
html.sinal-arma .rv-muro:not(.is-playing) .rv-muro__moeda--ganha,html.sinal-arma .rv-muro:not(.is-playing) .rv-muro__status,html.sinal-arma .rv-muro:not(.is-playing) .rv-muro__cortado,html.sinal-arma .rv-muro:not(.is-playing) .rv-muro__aceso,html.sinal-arma .rv-muro:not(.is-playing) .rv-muro__luz,html.sinal-arma .rv-muro:not(.is-playing) .rv-muro__seta{opacity:0}
html.sinal-arma .rv-muro:not(.is-playing) .rv-muro__gasto{opacity:1}
html.sinal-arma .rv-muro:not(.is-playing) .rv-muro__barra{transform:scaleY(.3);opacity:.45}
html.sinal-arma .rv-muro:not(.is-playing) .rv-muro__rotulo--fat{opacity:.5}

/* a sequência (cerca de 5,2 s, uma vez). No máximo 2 grupos em movimento por vez, fora o chão (medido pelo tempo de cada animação):
   0,1–1,5 s quatro moedas batem no muro (tranco até 1,1 s) e se perdem · 1,1–3,1 s a onda chega, bate e o muro cai (1,8–3,1 s) ·
   3,1–3,45 s "Gasto sem resultado" riscado e "Caminho livre", junto com as moedas que passam pela brecha (até 4,35 s) ·
   3,6–4,55 s o lucro acende e sobe · 4,4–5,25 s realce dos 3 passos */
@media (prefers-reduced-motion:no-preference){
  .rv-muro.is-playing .rv-muro__moeda--perde{animation:hero-moeda-perde .9s var(--d) both}
  .rv-muro.is-playing .rv-muro__tijolos{animation:hero-golpes .58s .52s both}
  .rv-muro.is-playing .rv-muro__halo,.rv-muro.is-playing .rv-muro__onda{animation:hero-onda 2s 1.1s both}
  .rv-muro.is-playing .rv-muro__impacto{animation:hero-impacto .8s 1.82s both}
  .rv-muro.is-playing .rv-muro__parede{animation:hero-tremor .45s 1.86s both}
  .rv-muro.is-playing .rv-muro__tijolo--cai{animation:hero-cai .75s calc(2.25s + var(--d)) both}
  .rv-muro.is-playing .rv-muro__tijolo--chave{animation:hero-chave .45s 2.25s both}
  .rv-muro.is-playing .rv-muro__gasto{animation:hero-sai .3s 3.1s both}
  .rv-muro.is-playing .rv-muro__cortado{animation:hero-aparece .35s 3.1s both}
  .rv-muro.is-playing .rv-muro__status{animation:hero-entra .35s 3.1s both}
  .rv-muro.is-playing .rv-muro__moeda--ganha{animation:hero-moeda-ganha .9s var(--d) both}
  .rv-muro.is-playing .rv-muro__aceso{animation:hero-aparece .5s 3.6s both}
  .rv-muro.is-playing .rv-muro__luz{animation:hero-aparece .8s 3.6s both}
  .rv-muro.is-playing .rv-muro__rotulo--fat{animation:hero-meio .4s 3.65s both}
  .rv-muro.is-playing .rv-muro__barra{animation:hero-barra .55s calc(3.65s + var(--d,0s)) both}
  .rv-muro.is-playing .rv-muro__alta{animation:hero-alta .55s 3.85s both}
  .rv-muro.is-playing .rv-muro__seta{animation:hero-aparece .2s 4.35s both}
  /* realce único dos 3 passos, em sequência, depois que o lucro acende */
  .rv-preview:has(.rv-muro.is-playing) .rv-flow--abas [role=tab]::after{animation:hero-realce .5s 4.4s both}
  .rv-preview:has(.rv-muro.is-playing) .rv-flow--abas [role=tab]:nth-of-type(2)::after{animation-delay:4.57s}
  .rv-preview:has(.rv-muro.is-playing) .rv-flow--abas [role=tab]:nth-of-type(3)::after{animation-delay:4.74s}
}
@keyframes hero-moeda-perde{
  0%{opacity:0;transform:translate(-134px,var(--y0)) scale(.4)}
  12%{opacity:1;transform:translate(-107px,var(--y0)) scale(1);animation-timing-function:cubic-bezier(.45,0,.9,.55)}
  48%{transform:translate(0,0) rotate(0deg);animation-timing-function:cubic-bezier(.2,.6,.4,1)}
  58%{transform:translate(-9px,-6px) rotate(-25deg);animation-timing-function:cubic-bezier(.55,0,.9,.45)}
  78%{opacity:1}
  100%{opacity:0;transform:translate(-17px,var(--queda)) rotate(-80deg)}
}
/* um tranco de 1,6 px a cada moeda que bate (0,53 · 0,70 · 0,87 · 1,04 s) */
@keyframes hero-golpes{0%,100%{transform:none}3%{transform:translateX(1.6px)}15%{transform:none}32%{transform:translateX(1.6px)}44%{transform:none}61%{transform:translateX(1.6px)}73%{transform:none}90%{transform:translateX(1.6px)}}
@keyframes hero-onda{0%{stroke-dashoffset:100;animation-timing-function:cubic-bezier(.25,.6,.35,1)}38%{stroke-dashoffset:62.1}60%{stroke-dashoffset:62.1;animation-timing-function:cubic-bezier(.55,0,.35,1)}100%{stroke-dashoffset:0}}
@keyframes hero-tremor{0%,100%{transform:none}20%{transform:translateX(-2px)}45%{transform:translateX(2.5px)}70%{transform:translateX(-1.5px)}}
@keyframes hero-impacto{0%{opacity:0;transform:scale(.4)}22%{opacity:1;transform:scale(1.2)}38%{transform:scale(1)}78%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.85)}}
@keyframes hero-cai{0%{transform:none;animation-timing-function:cubic-bezier(.2,.65,.4,1)}30%{transform:translate(calc(var(--tx) * .3),-10px) rotate(calc(var(--rot) * .4));animation-timing-function:cubic-bezier(.55,0,.85,.4)}100%{transform:translate(var(--tx),var(--ty)) rotate(var(--rot))}}
@keyframes hero-chave{0%{opacity:1;transform:none}100%{opacity:0;transform:translate(0,30px) scale(.4)}}
@keyframes hero-moeda-ganha{0%{opacity:0;transform:translateX(var(--x0)) scale(.4)}14%{opacity:1;transform:translateX(calc(var(--x0) + 34px)) scale(1);animation-timing-function:cubic-bezier(.3,.55,.3,1)}100%{opacity:1;transform:none}}
@keyframes hero-barra{from{opacity:.45;transform:scaleY(.3)}to{opacity:1;transform:none}}
@keyframes hero-alta{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes hero-sai{from{opacity:1}to{opacity:0}}
@keyframes hero-aparece{from{opacity:0}to{opacity:1}}
@keyframes hero-meio{from{opacity:.5}to{opacity:1}}
@keyframes hero-entra{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes hero-realce{0%,100%{opacity:0}40%{opacity:1}}

/* ---------- Os 3 passos viram as abas ---------- */
/* as abas têm a largura do texto; as setas ocupam o espaço entre elas (espaçamento igual) */
.rv-preview .rv-flow--abas{display:flex;align-items:stretch;gap:0;padding:0 12px;background:var(--navy);border-bottom:1px solid var(--linha-noite)}
.rv-flow--abas [role=tab]{position:relative;flex:0 1 auto;min-width:0;min-height:52px;margin:0;padding:10px 12px;border:0;background:none;cursor:pointer;color:var(--aco);font:500 12px/1.35 var(--font-mono);letter-spacing:.035em;text-transform:uppercase;text-align:center}
.rv-flow--abas [role=tab]::before{content:'';position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px;background:var(--ciano);transform:scaleX(0);transition:transform .2s ease}
.rv-flow--abas [role=tab]::after{content:'';position:absolute;inset:7px 2px;border-radius:8px;background:rgb(0 229 255 / .13);opacity:0;pointer-events:none}
.rv-flow--abas [role=tab]:hover{color:var(--nevoa)}
.rv-flow--abas [role=tab][aria-selected=true]{color:var(--ciano)}
.rv-flow--abas [role=tab][aria-selected=true]::before{transform:none}
.revenue-page .rv-flow--abas [role=tab]:focus-visible{outline:2px solid var(--ciano);outline-offset:-4px;border-radius:8px}
.rv-flow--abas b{flex:1 1 0;min-width:16px;align-self:center;text-align:center;font-size:17px;line-height:1;color:var(--ciano);font-weight:400}
@media(prefers-reduced-motion:reduce){.rv-flow--abas [role=tab]::before{transition:none}}
@media(max-width:560px){
  .rv-preview .rv-flow--abas{padding:0 4px}
  .rv-flow--abas [role=tab]{min-height:56px;padding:8px 6px;font-size:11px}
  .rv-flow--abas [role=tab]::before{left:6px;right:6px}
  .rv-flow--abas b{min-width:22px;font-size:15px}
}

/* ---------- Painéis: os 3 no mesmo lugar, a altura é a do maior (trocar de aba não pula a página) ---------- */
.rv-paineis{display:grid}
.rv-paineis>[data-preview-panel]{grid-area:1/1;min-width:0}
.rv-paineis>[data-preview-panel][hidden]{display:block!important;visibility:hidden}
.revenue-page .rv-paineis>[data-preview-panel]:focus-visible{outline:2px solid var(--ciano);outline-offset:-6px;border-radius:var(--raio)}
.rv-paineis .rv-measure-title{margin-bottom:12px;font-size:17px;line-height:1.4;font-weight:500;color:var(--branco)}
/* Análise de mercado */
.rv-estudo{margin:0 0 16px;padding:0;list-style:none}
.rv-estudo li{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--linha-noite);font-size:16px;line-height:1.45;color:var(--nevoa)}
.rv-estudo li:first-child{border-top:1px solid var(--linha-noite)}
.rv-estudo svg{width:34px;height:34px;padding:7px;flex:none;border:1px solid var(--linha-noite);border-radius:9px;background:var(--navy);fill:none;stroke:var(--ciano);stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.rv-paineis .rv-record{align-items:center}
/* Anúncio: pergunta e resposta */
.rv-measure--qa div{display:grid;grid-template-columns:152px minmax(0,1fr);align-items:baseline;gap:4px 16px;padding:16px 0}
.rv-measure--qa div:first-child{border-top:1px solid var(--linha-noite)}
.rv-preview .rv-measure--qa dt{font:500 12px/1.4 var(--font-mono);letter-spacing:.035em;text-transform:uppercase;color:var(--ciano)}
.rv-preview .rv-measure--qa dd{margin:0;font:400 16px/1.45 var(--font-texto);letter-spacing:0;text-transform:none;color:var(--nevoa)}
@media(max-width:560px){
  .rv-estudo li{gap:12px;font-size:16px}
  .rv-estudo svg{width:32px;height:32px;padding:6px}
  .rv-measure--qa div{grid-template-columns:1fr;padding:12px 0}
  /* no celular cada aba tem a própria altura (a conversa é bem mais alta que as outras e sobraria vazio) */
  .rv-paineis{display:block}
  .rv-paineis>[data-preview-panel][hidden]{display:none!important}
}

/* ---------- Card chamativo, "Site que vende" e Quatro peças ---------- */

/* =====================================================================
   Card chamativo: seção do problema (.rv-pain) e a faixa "A operação é sua." (#engenharia)
   Mesma linguagem nas duas: navy com a grade de osciloscópio, borda linha-noite e a onda ciano
   como assinatura. Na seção do problema, a onda liga Planejamento → Tráfego → Comercial e fica
   mais forte a cada passo (amplitude crescente).
   Movimento: toca uma vez quando entra na tela ([data-reveal] ganha .is-visible pelo main.js e
   não re-arma). O estado inicial só existe com html.sinal-arma (script inline do <head>: JS ligado,
   IntersectionObserver e sem prefers-reduced-motion). Sem isso: quadro final, parado e legível.
   Só transform, opacity e stroke-dashoffset.
   ===================================================================== */

.rv-sinalcard{
  --pad:56px;
  position:relative;isolation:isolate;overflow:hidden;
  padding:var(--pad);
  background-color:var(--navy);
  background-image:linear-gradient(#1d346166 1px,transparent 1px),linear-gradient(90deg,#1d346166 1px,transparent 1px);
  background-size:32px 32px;background-position:-1px -1px;
  border:1px solid var(--linha-noite);border-radius:20px;
  box-shadow:0 34px 70px -38px #0612338c;
  color:var(--nevoa);
}

/* ---------- Seção do problema ---------- */
.rv-section.rv-pain{padding-block:88px}
.rv-sinalcard__topo{max-width:none;margin-bottom:44px}
.rv-sinalcard .rv-sinalcard__alerta{
  display:inline-flex;align-items:center;gap:10px;margin-bottom:24px;padding:7px 14px 7px 12px;
  border:1px solid var(--linha-noite);border-radius:var(--raio-pill);background:var(--navy-900);
  color:var(--nevoa);font:500 15px/1.45 var(--font-texto);letter-spacing:0;text-transform:none
}
/* A frase do Lucas ("Não adianta só investir em tráfego, sem planejamento") é o argumento do card: lida como frase,
   sem caixa-alta. LED de status (vermelho = problema), como o "Gasto sem resultado" do muro no topo */
.rv-sinalcard__alerta>i{flex:none;width:8px;height:8px;border-radius:50%;background:var(--erro);box-shadow:0 0 0 3px #e5393533}
.revenue-page .rv-sinalcard h2{max-width:none;color:var(--branco);font-weight:700;font-size:clamp(30px,2.9vw,42px);line-height:1.14;letter-spacing:-.02em;text-wrap:pretty}
.revenue-page .rv-sinalcard h2 span{color:var(--ciano)}

/* Os 3 passos: nó + onda em cima, bloco embaixo */
.rv-seq{--gap:20px;--nx:24px;--no:14px;--fio:36px;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 var(--gap)}
.rv-seq__item{position:relative;display:flex;flex-direction:column;min-width:0}
.rv-seq__fio{position:relative;flex:none;height:var(--fio)}
.rv-seq__no{position:absolute;z-index:1;left:var(--nx);top:50%;width:var(--no);height:var(--no);margin-top:calc(var(--no) / -2);box-sizing:border-box;border:2px solid var(--ciano);border-radius:50%;background:var(--navy-900)}
.rv-seq__no::after{content:'';position:absolute;inset:2px;border-radius:50%;background:var(--ciano)}
.rv-seq__no::before{content:'';position:absolute;inset:-7px;border-radius:50%;border:1px solid var(--ciano);opacity:0}
/* a onda vai do nó até o nó do passo seguinte; a última atravessa até a borda do card e some */
.rv-seq__onda{position:absolute;top:50%;left:calc(var(--nx) + var(--no) + 4px);width:calc(100% + var(--gap) - var(--no) - 8px);height:24px;margin-top:-12px;overflow:visible}
.rv-seq__item:last-child .rv-seq__onda{width:calc(100% + var(--pad) - var(--nx) - var(--no) - 4px)}
.rv-seq__onda path,.rv-ownership__onda path{fill:none;stroke:var(--ciano);stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100 120;stroke-dashoffset:0}
.rv-seq__halo{stroke-width:8;opacity:.13}
.rv-seq__linha{stroke-width:2}
.rv-seq__item:last-child .rv-seq__onda path{stroke:url(#rv-seq-fim)}
.rv-seq__bloco{flex:1;display:flex;flex-direction:column;padding:24px calc(var(--nx) - 1px) 26px;background:var(--navy-900);border:1px solid var(--linha-noite);border-radius:var(--raio)}
.rv-sinalcard .rv-seq__bloco .rv-step{margin-bottom:14px;color:var(--ciano);font-size:12px}
.revenue-page .rv-seq__bloco h3{margin-bottom:10px;color:var(--branco);font-size:21px;font-weight:600;line-height:1.3;letter-spacing:-.01em;text-wrap:balance}
.rv-seq__bloco p{color:var(--nevoa);font-size:16px;line-height:1.6}

/* ---------- Faixa "A operação é sua." (versão compacta do mesmo card) ---------- */
#engenharia .rv-ownership.rv-sinalcard--faixa{--pad:28px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:26px;max-width:none;margin-top:24px;padding:22px var(--pad);border-radius:16px;box-shadow:none}
.rv-ownership__onda{display:block;width:120px;height:24px;overflow:visible}
.rv-ownership__no{fill:var(--navy-900);stroke:var(--ciano);stroke-width:2}
.rv-ownership__fim{fill:var(--ciano)}
#engenharia .rv-ownership.rv-sinalcard--faixa p{color:var(--nevoa);font-size:17px;line-height:1.55}
#engenharia .rv-ownership.rv-sinalcard--faixa strong{color:var(--branco);font-weight:600}

/* ---------- Entrada (uma vez) ---------- */
html.sinal-arma .rv-seq__item[data-reveal]:not(.is-visible) .rv-seq__bloco{opacity:0;transform:translateY(14px)}
html.sinal-arma .rv-seq__item[data-reveal]:not(.is-visible) .rv-seq__no{opacity:0;transform:scale(.4)}
html.sinal-arma [data-reveal]:not(.is-visible) :is(.rv-seq__onda,.rv-ownership__onda) path{stroke-dashoffset:100}
html.sinal-arma .rv-sinalcard--faixa[data-reveal]:not(.is-visible) .rv-ownership__fim{opacity:0;transform:scale(.3)}
.rv-ownership__fim{transform-box:fill-box;transform-origin:center}
/* atrasos no desktop: os 3 entram juntos (mesma linha) e a onda passa de nó em nó */
.rv-seq__item:nth-child(1){--d-bloco:0s;--d-no:.1s;--d-onda:.25s}
.rv-seq__item:nth-child(2){--d-bloco:.12s;--d-no:.8s;--d-onda:.95s}
.rv-seq__item:nth-child(3){--d-bloco:.24s;--d-no:1.5s;--d-onda:1.65s;--t-onda:.9s}
@media (prefers-reduced-motion:no-preference){
  .rv-seq__bloco{transition:opacity .5s ease var(--d-bloco,0s),transform .6s cubic-bezier(.2,.7,.2,1) var(--d-bloco,0s)}
  .rv-seq__no{transition:opacity .3s ease var(--d-no,0s),transform .45s cubic-bezier(.3,1.5,.5,1) var(--d-no,0s)}
  .rv-seq__onda path{transition:stroke-dashoffset var(--t-onda,.6s) cubic-bezier(.45,0,.25,1) var(--d-onda,0s)}
  html.sinal-arma .rv-seq__item.is-visible .rv-seq__no::before{animation:rv-seq-pulso .9s ease-out var(--d-no,0s) both}
  .rv-ownership__onda path{transition:stroke-dashoffset .7s cubic-bezier(.45,0,.25,1) .15s}
  .rv-ownership__fim{transition:opacity .3s ease .8s,transform .45s cubic-bezier(.3,1.5,.5,1) .8s}
}
@keyframes rv-seq-pulso{0%{opacity:.7;transform:scale(.6)}100%{opacity:0;transform:scale(1.9)}}

/* ---------- Tablet e celular: passos empilhados, ligados por uma linha vertical ---------- */
@media (max-width:1100px){.rv-sinalcard{--pad:44px}}
/* abaixo de 981 px as 3 colunas ficam estreitas demais (título do passo em 3 linhas): empilha */
@media (max-width:980px){
  .rv-seq{--gap:14px;grid-template-columns:minmax(0,1fr);gap:var(--gap)}
  .rv-seq__onda{width:calc(100% - var(--nx) - var(--no) - 4px)}
  .rv-seq__item:last-child .rv-seq__onda{width:calc(100% + var(--pad) - var(--nx) - var(--no) - 4px)}
  .rv-seq__item:not(:last-child)::after{content:'';position:absolute;top:100%;left:calc(var(--nx) + var(--no) / 2 - 1px);width:2px;height:calc(var(--gap) + (var(--fio) - var(--no)) / 2);background:var(--ciano);opacity:.6;transform-origin:top}
  html.sinal-arma .rv-seq__item[data-reveal]:not(.is-visible)::after{transform:scaleY(0)}
  /* no celular cada passo entra sozinho quando chega na tela */
  .rv-seq__item:nth-child(n){--d-bloco:0s;--d-no:.1s;--d-onda:.25s;--t-onda:.6s}
}
@media (max-width:800px){
  .rv-section.rv-pain{padding-block:64px}
  .rv-sinalcard{--pad:32px;border-radius:16px}
  .rv-sinalcard__topo{margin-bottom:32px}
  #engenharia .rv-ownership.rv-sinalcard--faixa{gap:20px}
}
@media (max-width:980px) and (prefers-reduced-motion:no-preference){
  .rv-seq__item::after{transition:transform .35s ease .7s}
}
@media (max-width:560px){
  .rv-section.rv-pain{padding-block:48px}
  .rv-sinalcard{--pad:20px}
  .rv-sinalcard .rv-sinalcard__alerta{align-items:flex-start;border-radius:10px;padding:8px 12px}
  .rv-sinalcard__alerta>i{margin-top:7px}
  .revenue-page .rv-sinalcard h2{font-size:26px;line-height:1.18;text-wrap:balance}
  .revenue-page .rv-sinalcard h2 br{display:none}
  .revenue-page .rv-sinalcard h2 span{display:block;margin-top:10px}
  .rv-seq{--nx:18px}
  .rv-seq__bloco{padding:20px calc(var(--nx) - 1px) 22px}
  .revenue-page .rv-seq__bloco h3{font-size:20px}
  .rv-seq__bloco p{font-size:17px}
  #engenharia .rv-ownership.rv-sinalcard--faixa{--pad:20px;grid-template-columns:minmax(0,1fr);gap:14px;padding:20px var(--pad)}
}
@media (prefers-reduced-motion:reduce){
  .rv-seq__bloco,.rv-seq__no,.rv-seq__onda path,.rv-ownership__onda path,.rv-ownership__fim,.rv-seq__item::after{transition:none}
  .rv-seq__no::before{animation:none}
}

/* =====================================================================
   "Site que vende" (#prova): o título novo é mais longo e quebrava em 4 linhas na coluna da esquerda
   ("concorrência" sozinha). No desktop o título ocupa a largura toda (as 2 linhas do texto, com o
   apoio ao lado) e os 4 modelos ficam numa fileira só, abaixo. Textos sem mudança.
   ===================================================================== */
@media (min-width:981px){
  .rv-prova .rv-proof-grid{grid-template-columns:minmax(0,1fr);gap:40px;align-items:stretch}
  .rv-prova .rv-proof-grid>div:not(.rv-modelos){display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px);column-gap:56px;align-items:end}
  .rv-prova .rv-proof-grid>div:not(.rv-modelos)>.rv-eyebrow{grid-column:1/-1}
  .rv-prova .rv-proof-grid>div:not(.rv-modelos)>h2{grid-column:1}
  .rv-prova .rv-proof-grid .rv-body-copy{grid-column:2;margin:0;padding-bottom:4px}
  .rv-prova .rv-modelos{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:24px;align-items:end;padding:28px}
  .rv-prova .rv-modelos>.rv-step{grid-column:1}
  .revenue-page .rv-prova .rv-modelos>h3{grid-column:1;margin-bottom:0}
  .rv-prova .rv-modelos>.rv-text-link{grid-column:2;grid-row:1/span 2;align-self:end}
  .rv-prova .rv-modelos__grade{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:22px 0 0}
}

/* =====================================================================
   Quatro peças (#engenharia): com o "01 Planejamento" novo, o título do 1º cartão ocupa 2 linhas e o
   texto do 4º é mais longo, então os textos e as linhas de "Nos pacotes" ficavam desalinhados.
   Subgrid: rótulo, título, texto e "Nos pacotes" na mesma altura em todos os cartões da fileira.
   ===================================================================== */
@supports (grid-template-rows:subgrid){
  @media (min-width:1101px){
    #engenharia .rv-four{grid-template-rows:auto auto 1fr auto}
  }
  @media (min-width:561px) and (max-width:1100px){
    #engenharia .rv-four{grid-template-rows:repeat(2,auto auto 1fr auto)}
  }
  @media (min-width:561px){
    #engenharia .rv-pillar{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0}
    #engenharia .rv-pillar>p{min-height:0}
    /* start (e sem o margin-top:auto do empresas.css): a linha de "Nos pacotes" fica na mesma altura nos 4 cartões,
       mesmo quando o texto do 4º tem 3 linhas */
    #engenharia .rv-includes{align-self:start;margin-top:0}
  }
}
/* tablet (801–980): a coluna da esquerda era estreita para o título; uma coluna só, 4 modelos lado a lado */
@media (min-width:801px) and (max-width:980px){
  .rv-prova .rv-proof-grid{grid-template-columns:minmax(0,1fr);gap:36px}
  .rv-prova .rv-proof-grid .rv-body-copy{max-width:620px}
  .rv-prova .rv-modelos__grade{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:980px){.revenue-page .rv-prova h2{text-wrap:balance}}

/* ---------- Nossa equipe ---------- */
/* =====================================================================
   Seção "Nossa equipe" (#por-que, menu "Sobre"): sem foto de pessoa. No lugar, a animação de equipe:
   4 áreas (módulos de painel com ícone de traço) em volta do símbolo oficial (/assets/marca/simbolo-ciano.svg,
   nunca redesenhado), ligadas pelo sinal ciano que passa de uma para a outra e fecha o ciclo.
   O ciano só aparece dentro do bloco escuro. Anima só opacity, transform e stroke-dashoffset.
   Estado padrão = final (tudo aceso): é o que aparece sem JS, com movimento reduzido e no fim da animação.
   html.sinal-arma (script inline do <head>) mostra o estado inicial e o brand.js põe .is-playing (toca uma vez, ~4,4 s).
   Desktop e tablet: 2 × 2 com o símbolo no meio. Celular: empilhado, com o trilho de volta à esquerda.
   ===================================================================== */

/* ---------- Layout da seção: texto · animação · contato · marcas ---------- */
.rv-por-que .rv-founder{grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);grid-template-rows:auto 1fr;grid-template-areas:"cena texto" "cena contato" "marcas marcas";column-gap:48px;row-gap:0;align-items:start}
/* título em 2 linhas no desktop (a 2ª linha cabe na coluna de texto) */
@media(min-width:981px){.revenue-page .rv-por-que h2{font-size:clamp(30px,2.5vw,36px)}}
.rv-equipe-texto{grid-area:texto}
.rv-equipe{grid-area:cena;align-self:center}
.rv-equipe-contato{grid-area:contato}
.rv-por-que .rv-founder>.rv-evidence{grid-area:marcas;margin-top:56px}
.revenue-page .rv-por-que h2{text-wrap:balance}
.rv-equipe-texto .rv-body-copy{margin-top:20px;max-width:560px}

/* Tem equipe? / Não tem? : os dois caminhos do topo, lado a lado */
.rv-equipe-caminhos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:26px 0 0;padding:0;list-style:none}
.rv-equipe-caminhos li{display:grid;align-content:start;gap:6px;padding-top:14px;border-top:2px solid var(--tinta)}
.rv-equipe-caminhos strong{font:600 18px/1.3 var(--font-titulo);letter-spacing:-.01em;color:var(--tinta)}
.rv-equipe-caminhos span{font-size:16px;line-height:1.55;color:var(--grafite);text-wrap:pretty}
.rv-equipe-contato{padding-top:24px}
.rv-equipe-direto{display:flex;gap:10px;margin:0;font-size:16px;line-height:1.55;color:var(--tinta)}
.rv-equipe-direto::before{content:'✓';flex:none;font-weight:600}
.rv-equipe-contato .rv-founder__local{margin-top:12px}

/* ---------- A cena (bloco escuro) ---------- */
.rv-equipe{position:relative;isolation:isolate;margin:0;padding:20px 22px 18px;background:var(--navy-900);border:1px solid var(--linha-noite);border-radius:var(--raio);color:var(--nevoa);overflow:hidden}
/* grade de osciloscópio, discreta */
.rv-equipe::before{content:'';position:absolute;inset:0;z-index:-1;background-image:linear-gradient(var(--linha-noite) 1px,transparent 1px),linear-gradient(90deg,var(--linha-noite) 1px,transparent 1px);background-size:32px 32px;background-position:-1px -1px;opacity:.4;pointer-events:none}
.rv-equipe__topo{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.rv-equipe__rotulo,.rv-equipe__status{font:500 12px/1.4 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}
.rv-equipe__rotulo{color:var(--aco)}
.rv-equipe__status{display:inline-flex;align-items:center;gap:8px;padding:4px 11px;border:1px solid var(--linha-noite);border-radius:var(--raio-pill);background:var(--navy-900)}
.rv-equipe__status-led{display:grid;width:7px;height:7px;flex:none}
.rv-equipe__status-led i{grid-area:1/1;border-radius:50%}
.rv-equipe__status-led .rv-equipe__antes{background:var(--aco)}
.rv-equipe__status-led .rv-equipe__depois{background:var(--ciano)}
.rv-equipe__status-txt{display:grid}
.rv-equipe__status-txt b{grid-area:1/1;font-weight:500;text-align:right}
.rv-equipe__status-txt .rv-equipe__antes{color:var(--aco)}
.rv-equipe__status-txt .rv-equipe__depois{color:var(--ciano)}
.rv-equipe__antes{opacity:0}

/* Rede 2 × 2: as áreas nos cantos, os fios nos vãos e o símbolo no meio */
.rv-equipe__rede{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 88px minmax(0,1fr);grid-template-rows:auto 88px auto}
.rv-equipe__no{position:relative;min-width:0;padding:16px 16px 18px;background:var(--navy);border:1px solid var(--linha-noite);border-radius:var(--raio)}
.rv-equipe__no::after{content:'';position:absolute;inset:-1px;border:1px solid var(--ciano);border-radius:inherit;opacity:.5;pointer-events:none}
.rv-equipe__no--1{grid-area:1/1}
.rv-equipe__no--2{grid-area:1/3}
.rv-equipe__no--3{grid-area:3/3}
.rv-equipe__no--4{grid-area:3/1}
.rv-equipe__icone{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--linha-noite);border-radius:9px;background:var(--navy-900)}
.rv-equipe__icone svg{display:block;width:20px;height:20px;fill:none;stroke:var(--ciano);stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.revenue-page .rv-equipe .rv-equipe__nome{margin:14px 0 0;font:600 16px/1.3 var(--font-titulo);letter-spacing:-.01em;color:var(--branco)}
.rv-equipe__no p{margin:6px 0 0;font-size:14px;line-height:1.5;color:var(--aco);text-wrap:pretty}
.rv-equipe__led{position:absolute;top:16px;right:16px;width:7px;height:7px;border-radius:50%;background:var(--linha-noite)}
.rv-equipe__led::after{content:'';position:absolute;inset:0;border-radius:50%;background:var(--ciano);box-shadow:0 0 0 3px #00e5ff26}

.rv-equipe__fio{position:relative;display:block}
.rv-equipe__fio--1{grid-area:1/2;align-self:center}
.rv-equipe__fio--2{grid-area:2/3;justify-self:center}
.rv-equipe__fio--3{grid-area:3/2;align-self:center}
.rv-equipe__fio--4{grid-area:2/1;justify-self:center}
.rv-equipe__onda{display:block;overflow:visible}
.rv-equipe__fio--1 .rv-equipe__onda,.rv-equipe__fio--3 .rv-equipe__onda{width:88px;height:16px}
.rv-equipe__fio--2 .rv-equipe__onda,.rv-equipe__fio--4 .rv-equipe__onda{width:16px;height:88px}
.rv-equipe__onda path{fill:none}
.rv-equipe__base{stroke:var(--linha-noite);stroke-width:1.5}
.rv-equipe__luz{stroke:var(--ciano);stroke-width:2;stroke-dasharray:100 100;stroke-dashoffset:0}
.rv-equipe__pulso{stroke:var(--branco);stroke-width:3;stroke-linecap:round;stroke-dasharray:6 100;stroke-dashoffset:6;opacity:0}
.rv-equipe__linha,.rv-equipe__volta{display:none}
.rv-equipe__chip{grid-area:2/2;place-self:center;width:56px;height:56px}

.rv-equipe__legenda{margin-top:18px;padding-top:14px;border-top:1px solid var(--linha-noite);font-size:14px;line-height:1.55;color:var(--aco)}
.rv-equipe__simbolo{display:none;width:40px;height:40px;flex:none}

/* ---------- Tablet: uma coluna (texto, animação, contato) ---------- */
@media(max-width:980px){
  .rv-por-que .rv-founder{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"texto" "cena" "contato" "marcas";row-gap:0}
  .rv-equipe{width:100%;max-width:620px;margin-top:32px;align-self:start}
  .rv-equipe-contato{padding-top:28px;max-width:620px}
}

/* ---------- Celular: áreas empilhadas, fios entre elas e o trilho de volta à esquerda ---------- */
@media(max-width:560px){
  .rv-equipe-caminhos{grid-template-columns:minmax(0,1fr);gap:16px;margin-top:22px}
  .rv-equipe-caminhos span{font-size:17px}
  .rv-equipe-direto{font-size:17px}
  .rv-equipe{margin-top:28px;padding:14px 12px 12px}
  /* no celular o símbolo vai para o topo, no lugar do rótulo (a cena precisa caber quase inteira na tela para tocar) */
  .rv-equipe__topo{margin-bottom:10px}
  .rv-equipe__rotulo{display:none}
  .rv-equipe__topo>.rv-equipe__simbolo{display:block}
  .rv-equipe__rede{grid-template-columns:18px minmax(0,1fr);grid-template-rows:auto 18px auto 18px auto 18px auto;padding-block:12px}
  .rv-equipe__no{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:12px;align-content:start;padding:12px 26px 12px 12px}
  .rv-equipe__no--1{grid-area:1/2}
  .rv-equipe__no--2{grid-area:3/2}
  .rv-equipe__no--3{grid-area:5/2}
  .rv-equipe__no--4{grid-area:7/2}
  .rv-equipe__icone{grid-row:1/span 2;align-self:start;width:32px;height:32px;border-radius:8px}
  .revenue-page .rv-equipe .rv-equipe__nome{grid-column:2;margin:5px 0 0}
  .rv-equipe__no p{grid-column:2;margin-top:3px;font-size:15px;line-height:1.45}
  .rv-equipe__led{top:12px;right:12px}
  /* fios entre as áreas, na linha dos ícones (12 px de respiro + metade do ícone = 28 px da borda da área) */
  .rv-equipe__fio--1{grid-area:2/2}
  .rv-equipe__fio--2{grid-area:4/2}
  .rv-equipe__fio--3{grid-area:6/2}
  .rv-equipe__fio--1,.rv-equipe__fio--2,.rv-equipe__fio--3{justify-self:start;align-self:stretch;width:2px;margin-left:27px}
  .rv-equipe__onda{display:none}
  .rv-equipe__linha{display:block;position:absolute;inset:0;background:var(--linha-noite)}
  .rv-equipe__linha::after{content:'';position:absolute;inset:0;background:var(--ciano);transform-origin:50% 0}
  /* volta: sai por baixo da última área, sobe pelo trilho à esquerda e entra por cima da primeira.
     Caixa = do trilho (x 5 px) até a linha dos ícones (x 47 px), de 12 px acima da 1ª área a 12 px abaixo da última. */
  .rv-equipe__fio--4{position:absolute;grid-area:auto;left:5px;width:42px;top:0;bottom:0}
  .rv-equipe__volta{display:block;position:absolute;inset:0}
  .rv-equipe__volta i{position:absolute;background:var(--linha-noite)}
  .rv-equipe__volta i::after{content:'';position:absolute;inset:0;background:var(--ciano)}
  .rv-equipe__volta i:nth-child(1){right:0;bottom:0;width:2px;height:13px}
  .rv-equipe__volta i:nth-child(1)::after{transform-origin:50% 0}
  .rv-equipe__volta i:nth-child(2){left:0;right:0;bottom:0;height:2px}
  .rv-equipe__volta i:nth-child(2)::after{transform-origin:100% 50%}
  .rv-equipe__volta i:nth-child(3){left:0;top:0;bottom:0;width:2px}
  .rv-equipe__volta i:nth-child(3)::after{transform-origin:50% 100%}
  .rv-equipe__volta i:nth-child(4){left:0;right:0;top:0;height:2px}
  .rv-equipe__volta i:nth-child(4)::after{transform-origin:0 50%}
  .rv-equipe__volta i:nth-child(5){right:0;top:0;width:2px;height:13px}
  .rv-equipe__volta i:nth-child(5)::after{transform-origin:50% 0}
  .rv-equipe__chip{display:none}
  .rv-equipe__legenda{margin-top:10px;padding-top:12px}
}

/* ---------- Estado inicial (antes de tocar) ---------- */
html.sinal-arma .rv-equipe:not(.is-playing) .rv-equipe__luz{stroke-dashoffset:100}
html.sinal-arma .rv-equipe:not(.is-playing) .rv-equipe__no::after,
html.sinal-arma .rv-equipe:not(.is-playing) .rv-equipe__led::after,
html.sinal-arma .rv-equipe:not(.is-playing) .rv-equipe__depois{opacity:0}
html.sinal-arma .rv-equipe:not(.is-playing) .rv-equipe__antes{opacity:1}
html.sinal-arma .rv-equipe:not(.is-playing) .rv-equipe__linha::after,
html.sinal-arma .rv-equipe:not(.is-playing) .rv-equipe__volta i:nth-child(odd)::after{transform:scaleY(0)}
html.sinal-arma .rv-equipe:not(.is-playing) .rv-equipe__volta i:nth-child(even)::after{transform:scaleX(0)}

/* ---------- A sequência: 1 acende → fio → 2 → fio → 3 → fio → 4 → volta → 1 de novo → "Em sincronia" ---------- */
@media (prefers-reduced-motion:no-preference){
  .rv-equipe.is-playing .rv-equipe__no--1::after{animation:equipe-no1 4.1s .3s both}
  .rv-equipe.is-playing .rv-equipe__no--2::after{animation:equipe-no .7s 1.2s both}
  .rv-equipe.is-playing .rv-equipe__no--3::after{animation:equipe-no .7s 2.1s both}
  .rv-equipe.is-playing .rv-equipe__no--4::after{animation:equipe-no .7s 3s both}
  .rv-equipe.is-playing .rv-equipe__no--1 .rv-equipe__led::after{animation:equipe-liga .25s .3s both}
  .rv-equipe.is-playing .rv-equipe__no--2 .rv-equipe__led::after{animation:equipe-liga .25s 1.2s both}
  .rv-equipe.is-playing .rv-equipe__no--3 .rv-equipe__led::after{animation:equipe-liga .25s 2.1s both}
  .rv-equipe.is-playing .rv-equipe__no--4 .rv-equipe__led::after{animation:equipe-liga .25s 3s both}
  .rv-equipe.is-playing .rv-equipe__fio--1 .rv-equipe__luz{animation:equipe-traco .7s .5s both}
  .rv-equipe.is-playing .rv-equipe__fio--2 .rv-equipe__luz{animation:equipe-traco .7s 1.4s both}
  .rv-equipe.is-playing .rv-equipe__fio--3 .rv-equipe__luz{animation:equipe-traco .7s 2.3s both}
  .rv-equipe.is-playing .rv-equipe__fio--4 .rv-equipe__luz{animation:equipe-traco .7s 3.2s both}
  .rv-equipe.is-playing .rv-equipe__fio--1 .rv-equipe__pulso{animation:equipe-pulso .7s .5s both}
  .rv-equipe.is-playing .rv-equipe__fio--2 .rv-equipe__pulso{animation:equipe-pulso .7s 1.4s both}
  .rv-equipe.is-playing .rv-equipe__fio--3 .rv-equipe__pulso{animation:equipe-pulso .7s 2.3s both}
  .rv-equipe.is-playing .rv-equipe__fio--4 .rv-equipe__pulso{animation:equipe-pulso .7s 3.2s both}
  .rv-equipe.is-playing .rv-equipe__fio--1 .rv-equipe__linha::after{animation:equipe-escala-y .7s .5s both}
  .rv-equipe.is-playing .rv-equipe__fio--2 .rv-equipe__linha::after{animation:equipe-escala-y .7s 1.4s both}
  .rv-equipe.is-playing .rv-equipe__fio--3 .rv-equipe__linha::after{animation:equipe-escala-y .7s 2.3s both}
  /* celular: a volta corre em velocidade constante pelas 5 partes (desce, esquerda, sobe, direita, desce) */
  .rv-equipe.is-playing .rv-equipe__volta i:nth-child(1)::after{animation:equipe-cresce-y .1s linear 3.2s both}
  .rv-equipe.is-playing .rv-equipe__volta i:nth-child(2)::after{animation:equipe-cresce-x .12s linear 3.3s both}
  .rv-equipe.is-playing .rv-equipe__volta i:nth-child(3)::after{animation:equipe-cresce-y .3s linear 3.42s both}
  .rv-equipe.is-playing .rv-equipe__volta i:nth-child(4)::after{animation:equipe-cresce-x .12s linear 3.72s both}
  .rv-equipe.is-playing .rv-equipe__volta i:nth-child(5)::after{animation:equipe-cresce-y .1s linear 3.84s both}
  .rv-equipe.is-playing .rv-equipe__antes{animation:equipe-apaga .3s 4s both}
  .rv-equipe.is-playing .rv-equipe__depois{animation:equipe-liga .3s 4s both}
}
@keyframes equipe-no{0%{opacity:0}40%{opacity:1}100%{opacity:.5}}
/* a 1ª área acende duas vezes: no começo e quando o sinal volta para ela (ciclo fechado) */
@keyframes equipe-no1{0%{opacity:0}7%{opacity:1}17%{opacity:.5}88%{opacity:.5}93%{opacity:1}100%{opacity:.5}}
@keyframes equipe-liga{from{opacity:0}to{opacity:1}}
@keyframes equipe-apaga{from{opacity:1}to{opacity:0}}
@keyframes equipe-traco{from{stroke-dashoffset:100;animation-timing-function:cubic-bezier(.45,0,.3,1)}to{stroke-dashoffset:0}}
@keyframes equipe-pulso{0%{stroke-dashoffset:6;opacity:1;animation-timing-function:cubic-bezier(.45,0,.3,1)}85%{opacity:1}100%{stroke-dashoffset:-94;opacity:0}}
@keyframes equipe-escala-y{from{transform:scaleY(0);animation-timing-function:cubic-bezier(.45,0,.3,1)}to{transform:none}}
@keyframes equipe-cresce-y{from{transform:scaleY(0)}to{transform:none}}
@keyframes equipe-cresce-x{from{transform:scaleX(0)}to{transform:none}}
