/* =============================================================================
   Karameloo — Tela de entrada · v3
   =============================================================================
   POR QUE A v2 FOI DESCARTADA
   Ela era competente e genérica: cards brancos com borda, grid de três colunas,
   ícone + título + parágrafo. Isso é o template SaaS padrão — o "default, não
   escolha" que o próprio manual de design condena. Não havia nada no layout que
   dissesse "isto é Karameloo" e não outro marketplace qualquer.

   A TESE DESTA VERSÃO
   O cliente não compra "edição de vídeo". Compra ATENÇÃO RETIDA: o que faz um
   vídeo crescer é segurar quem está passando o dedo. Tudo aqui serve a isso.

   A ASSINATURA (o elemento que a página é lembrada por)
   1. O FRAME VERTICAL 9:16 é o módulo do layout — não um card retangular
      genérico. É literalmente o formato que os editores entregam, então a
      página é feita da mesma matéria do produto.
   2. O PALCO ESCURO: blocos de mídia em quase-preto dentro da página clara.
      Não é dark mode da moda — é a sala de edição. Vídeo se vê no escuro, e o
      contraste faz a mídia saltar num site de fundo creme.
   3. A CURVA DE RETENÇÃO como elemento gráfico recorrente: é a métrica que
      justifica o preço e prova a tese.

   PALETA — a mesma do site, medida no navegador (creme #f5f0e8, branco,
   dourado #fcbc1d, texto #111827, radius 4px, Plus Jakarta Sans). O acréscimo é
   o preto de palco (#0e1014), que não existia e é o que dá drama.

   TIPOGRAFIA — sem fonte nova. Plus Jakarta Sans em peso 800 e escala grande
   com tracking bem negativo. Importar um display diferente destoaria do resto
   do aplicativo, que é todo Jakarta.
   ============================================================================= */

/* =============================================================================
   BARRA DE ROLAGEM DA PÁGINA — a causa de nada encostar na direita
   =============================================================================
   karameloo-redesign.css:1796 define, GLOBALMENTE:
       ::-webkit-scrollbar { width:6px !important }
       ::-webkit-scrollbar-track { background:transparent !important }
   A página rola no <body> (html,body{height:100%; overflow-y:auto}), então essa
   barra de 6px é descontada da largura disponível para os filhos: medido,
   body=1920px mas .page e <main>=1914px. Nenhum bloco consegue alcançar a borda
   direita, porque o pai deles já não alcança — e como o trilho é transparente,
   os 6px mostram o fundo creme do site. Era a listra fina em todas as seções.

   Aqui a barra da PÁGINA passa a não ocupar espaço. O seletor com elemento
   (body::-webkit-scrollbar) tem especificidade maior que o global, então vence
   mesmo os !important de lá. Painéis internos (chat, listas) mantêm a barra
   deles: a regra é só para html e body.
   ============================================================================= */
html::-webkit-scrollbar,
body::-webkit-scrollbar{ width:0 !important; height:0 !important }
html, body{ scrollbar-width:none !important }

/* O display da tela de entrada só vale quando ela é a tela ativa. Fora daí,
   quem manda é o .screen{display:none} do app — senão ela fica visível por
   baixo de todas as telas internas. */
#screenStart.show{ display:block !important }

#screenStart{
  /* superfícies claras (do site) */
  --k-page:#f5f0e8;
  --k-surf:#ffffff;
  --k-surf2:#f4f5f7;
  --k-surf3:#eceef2;
  --k-line:rgba(17,24,39,.12);
  --k-line2:rgba(17,24,39,.22);

  /* PALCO CLARO — antes era #0e1014, o "quase-preto da sala de edição".
     A ideia funcionava isolada e falhava na soma: as quatro demonstrações da
     página (entrada, retenção, fluxo, catálogo de formatos) caíam em blocos
     pretos, e no meio de um site creme cada um deles lia como TELA APAGADA —
     não como palco. Trocado por superfície clara: o mesmo papel do resto do
     site, com a mídia recortada em quadros de borda fina.
     Os nomes das variáveis ficaram (stage / on-stage) porque são usadas em
     ~70 regras deste arquivo; o que mudou foi o valor. */
  --k-stage:#ffffff;
  --k-stage2:#f7f4ef;
  --k-stage-line:rgba(17,24,39,.13);

  /* texto */
  --k-ink:#111827;
  --k-mut:#4b5563;
  --k-soft:#6b7280;
  /* 6,4:1 no branco e 6,0:1 sobre o --k-stage2: passa nos dois fundos claros
     em que este tom aparece */
  --k-on-stage:#111827;
  --k-on-stage-mut:#55606f;

  /* marca */
  --k-gold:#fcbc1d;
  --k-gold-hi:#dcb134;
  --k-gold-ink:#7a5d10;
  --k-gold-weak:rgba(201,160,42,.13);
  --k-gold-line:rgba(201,160,42,.45);

  --k-r:4px;
  --k-max:1280px;
  --k-gut:clamp(16px,4vw,48px);

  /* O <main> do site aplica 18px de padding lateral. Medido no navegador: o
     palco escuro parava 18px antes da borda da janela, deixando uma tira creme
     de cada lado — o "espacinho sobrando". As faixas escuras (hero e CTA) são
     full-bleed de propósito: encostam na borda e o miolo delas continua
     alinhado com o resto da página somando este valor ao gutter. */
  --k-bleed:18px;

  /* NÃO colocar display aqui. O sistema de telas do app esconde com
     .screen{display:none} e mostra com .screen.show. Um display:block
     !important nesta regra vencia o none e a tela de entrada nunca sumia:
     ao abrir qualquer tela interna (#screenMegaPlace, #screenProcurar), ela
     era renderizada LOGO ABAIXO desta — medido, a grade do Mega Place nascia
     a 5958px do topo, e a tela parecia vazia. O display fica na regra .show
     no fim deste arquivo. */
  background:transparent !important;
  color:var(--k-ink) !important;
  /* rede de segurança: uma faixa sangrada nunca pode gerar rolagem lateral */
  overflow-x:clip;
  /* sobe a tela inteira até o topo da janela. Vai aqui e não no .kHero porque
     a margem negativa do primeiro filho colapsaria com a do pai. */
  margin-top:calc(-1 * var(--k-bleed-top, 0px));
}

/* O redesign.css pinta todo p/span/li de #111 com !important. Dentro desta tela
   a cor precisa vir do pai — senão nada de texto claro sobre o palco funciona. */
#screenStart p, #screenStart span, #screenStart li, #screenStart small,
#screenStart strong, #screenStart b, #screenStart h1, #screenStart h2,
#screenStart h3, #screenStart h4, #screenStart label, #screenStart summary,
#screenStart div, #screenStart a, #screenStart figcaption{
  color:inherit !important;
}

#screenStart .kWrap{
  width:100%; max-width:var(--k-max); margin:0 auto; padding-inline:var(--k-gut);
}

/* ---- tipografia base ---- */
#screenStart .kDisplay{
  font-weight:800;
  letter-spacing:-.042em;
  line-height:.98;
  color:var(--k-ink);
  margin:0;
}
#screenStart .kH2{
  font-size:clamp(1.75rem,3.9vw,2.9rem);
  font-weight:800; letter-spacing:-.038em; line-height:1.04;
  margin:0 0 14px; color:var(--k-ink);
}
#screenStart .kLead{
  margin:0; max-width:58ch;
  color:var(--k-mut); font-size:clamp(.98rem,1.4vw,1.08rem); line-height:1.55;
}

/* rótulo de seção: linha + texto, sem pílula colorida (pílula em toda seção é
   ruído; a linha organiza e não compete) */
#screenStart .kEyebrow{
  display:flex; align-items:center; gap:10px;
  margin-bottom:16px;
  color:var(--k-gold-ink);
  font-size:.72rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
}
#screenStart .kEyebrow::before{
  content:""; width:22px; height:2px; background:var(--k-gold); flex:0 0 auto;
}

#screenStart .kSec{ padding-block:clamp(56px,8vw,104px) }
#screenStart .kSecHead{ max-width:64ch; margin-bottom:clamp(28px,4vw,44px) }

/* ---- botões ---- */
#screenStart .kBtn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  min-height:50px; padding:0 22px;
  border-radius:var(--k-r); border:1px solid transparent;
  font-family:inherit; font-size:.96rem; font-weight:800; letter-spacing:-.01em;
  cursor:pointer; text-decoration:none;
  transition:background .16s, border-color .16s, transform .12s;
}
#screenStart .kBtn:active{ transform:translateY(1px) }
#screenStart .kBtn.kBtn--primary{
  background:var(--k-gold); color:#1c1405 !important; border-color:var(--k-gold);
}
#screenStart .kBtn.kBtn--primary:hover{ background:var(--k-gold-hi) }
#screenStart .kBtn.kBtn--line{
  background:transparent; color:var(--k-ink) !important; border-color:var(--k-line2);
}
#screenStart .kBtn.kBtn--line:hover{ background:var(--k-surf3) }
#screenStart .kBtn.kBtn--onStage{
  background:transparent; color:#f3f5f8 !important; border-color:rgba(255,255,255,.34);
}
#screenStart .kBtn.kBtn--onStage:hover{ background:rgba(255,255,255,.08) }
/* usado no fechamento: é a última chamada da página, pode ser maior que as do topo */
#screenStart .kBtn.kBtn--lg{ min-height:56px; padding:0 30px; font-size:1rem }
#screenStart .kBtn:focus-visible{ outline:2px solid var(--k-gold-ink); outline-offset:2px }
/* sobre o palco escuro o dourado do foco some — usa o dourado claro */
#screenStart .kCta .kBtn:focus-visible{ outline-color:var(--k-gold-hi) }


/* =============================================================================
   HERO — promessa + login à esquerda; palco de frames verticais à direita
   =============================================================================
   O lado direito NÃO é uma imagem decorativa: é o produto. Uma fita de frames
   9:16 subindo devagar mostra, sem texto, o que sai daqui. É o "produto visível
   acima da dobra" que a fórmula de landing exige.
   ============================================================================= */
/* SEM 100svh forçado. Medido em telas reais, o conteúdo da coluna esquerda
   (título + texto + CTAs + provas + formulário completo) passa de 900px — e
   travar o hero na altura da janela empurrava o botão "Entrar agora" para
   fora da primeira tela: faltavam 287px num 1366x768. Numa tela de LOGIN isso
   é inaceitável. Agora o conteúdo define a altura, com um piso para o palco
   não virar uma faixa fina em monitor grande. */
#screenStart .kHero{
  /* ── O PALCO ESCURO VIVE SÓ AQUI ──────────────────────────────────────────
     Em 13/08/2026 as demonstrações da página trocaram o quase-preto por
     superfície clara, e os tokens --k-stage* passaram a valer claro. O hero
     ficou de fora por decisão do Kauan, comparando as duas versões lado a
     lado: nesta faixa a foto grande precisa do fundo escuro para saltar.
     Por isso as cores dele moram nestas variáveis próprias — mexer nos
     --k-stage* daqui para baixo NÃO afeta mais este bloco. */
  --k-palco:#0e1014;
  --k-palco2:#171b22;
  --k-palco-line:rgba(255,255,255,.13);
  --k-palco-ink:#f3f5f8;
  --k-palco-mut:#9aa4b2;

  display:grid;
  /* o palco ganhou a coluna maior: era 1.02/0.98 (texto maior que o preto),
     agora o preto avança para a esquerda */
  grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
  align-items:stretch;
  min-height:min(100svh, 680px);
  /* encosta nas bordas laterais, furando o padding do <main>. A subida até o
     topo é feita no #screenStart. */
  margin-inline:calc(-1 * var(--k-bleed));
  /* Superfície própria. Sem isto aparecia a textura de fundo do site
     (assets/site-background-new.png, com os arcos dourados e as bolinhas)
     na faixa à esquerda do conteúdo — o hero era transparente. O palco cobre
     a metade direita por cima. */
  background:linear-gradient(180deg, #f8f5ef 0%, var(--k-page) 58%, #f1ebe1 100%);
}
/* Em telas de pouca altura (notebook 768px) o hero encolhe o que dá para o
   formulário caber: título menor, menos respiro. Melhor um hero compacto do
   que um botão de login escondido abaixo da dobra. */
@media (min-width:1021px) and (max-height:860px){
  #screenStart .kHeroLeft{
    gap:13px; padding-bottom:22px;
    padding-top:calc(clamp(64px,7vh,76px) + var(--k-bleed-top, 0px));
  }
  #screenStart .kHeroTitle{ font-size:clamp(1.9rem,3.2vw,2.5rem) }
  #screenStart .kHeroLead{ font-size:.98rem }
  #screenStart .kHeroActions .kBtn{ min-height:44px }
  #screenStart .kLogin{ padding:13px 14px 14px }
}

/* gap e padding enxutos de propósito: esta é a tela de LOGIN do site, e o
   formulário precisa caber na primeira tela num notebook de 900px de altura.
   Na primeira medição o botão "Entrar agora" caía abaixo da dobra. */
#screenStart .kHeroLeft{
  display:flex; flex-direction:column; justify-content:center;
  gap:18px;
  /* o topo soma o que a margem negativa do hero tirou, senão a etiqueta
     "Editores verificados" encostaria na borda da janela.
     A esquerda usa --k-wrap-x (medido em JS: onde começa o .kWrap das outras
     seções), de modo que o título do hero nasce na mesma linha vertical que
     "Três motivos" e "Quem passa o dedo". Antes era max-width + margin-left:auto,
     que em 1920px empurrava o bloco 41px para fora do alinhamento e deixava
     261px de fundo cru à esquerda. */
  padding:calc(clamp(76px,9vh,96px) + var(--k-bleed-top, 0px))
          clamp(20px,3.4vw,44px)
          clamp(28px,4vh,40px)
          var(--k-wrap-x, calc(var(--k-gut) + var(--k-bleed)));
}

#screenStart .kHeroTag{
  display:inline-flex; align-items:center; gap:8px; align-self:flex-start;
  padding:6px 12px;
  border:1px solid var(--k-gold-line); border-radius:100px;
  background:var(--k-gold-weak);
  color:var(--k-gold-ink); font-size:.73rem; font-weight:800; letter-spacing:.02em;
}
#screenStart .kHeroTag i{ width:6px; height:6px; border-radius:50%; background:var(--k-gold); display:block }

/* O app.js reescreve este h1 com a frase rotativa, no formato
   <span.heroSwap>frase</span><br><span.heroBrand>Karameloo</span>. Por isso o
   estilo mora nessas classes — um <em> meu seria apagado pelo JS. */
/* A frase rotativa muda de comprimento a cada troca. Reservar espaço só no h1
   (min-height) não resolvia: quando a frase passava de 2 para 3 linhas o bloco
   crescia 111px e empurrava os botões para baixo — medido. A altura é travada
   parte por parte, cada uma com espaço para o seu pior caso. */
#screenStart .kHeroTitle{
  font-size:clamp(2.2rem,4.4vw,3.4rem);
  line-height:1.08;
}
/* 2 linhas fixas: cabe a frase mais longa ("Quem edita para viralizar está no")
   nesta largura de coluna, e as curtas não encolhem o bloco. É `block`, não
   `inline-block`, porque inline-block só reserva a altura do próprio conteúdo
   — a linha de baixo continuava subindo quando a frase encurtava. */
/* O !important não é preguiça: existe `.kmlHeroTitle .heroSwap{display:inline
   !important}` em outra folha, e elemento inline IGNORA height — era por isso
   que nenhuma reserva de altura funcionava e o bloco pulava 128px. */
#screenStart .kHeroTitle .heroSwap{
  display:flex !important; height:2.3em !important;
  /* o espaço reservado que sobra fica ACIMA, para uma frase de uma linha
     encostar em "Karameloo" em vez de flutuar longe dela. A folga extra
     (2.3em em vez de 2.16em) é para o cursor de digitação, que ao cair numa
     terceira linha empurrava o texto por cima da etiqueta. O overflow é a
     rede: se transbordar, corta — nunca sobrepõe o que está acima. */
  align-items:flex-end; align-content:flex-end; flex-wrap:wrap;
  overflow:hidden;
  color:var(--k-ink) !important;
  transition:opacity .3s ease, transform .3s ease;
}
/* Especificidade reforçada de propósito: existe um <style> inline no index.html
   com `#screenStart .kmlHeroTitle .heroBrand { color:#fcbc1d !important }`, de
   mesma especificidade que a minha — e, por vir depois no documento, vencia.
   O dourado puro sobre o creme dá 2.17:1, o que reprova até para texto grande
   (mínimo 3:1). O tom escurecido continua lendo como dourado e passa em 6:1. */
#screenStart h1.kHeroTitle.kmlHeroTitle .heroBrand,
#screenStart .kHeroTitle .heroBrand{
  display:block !important; height:1.12em !important;
  color:var(--k-gold-ink) !important;
}
#screenStart .kHeroTitle .heroSwap.is-out{ opacity:0; transform:translateY(-8px) }
#screenStart .kHeroTitle .heroSwap.is-in{ opacity:1; transform:none }

/* Subtítulo rotativo que muda junto com o principal. Também com altura travada:
   "formato vertical que segura atenção" ocupa 2 linhas, "crescimento real em
   dias" ocupa 1 — sem a reserva o bloco pularia na troca. */
#screenStart .kHeroTitle .heroSubtitle{
  display:block !important; height:2.6em !important;
  font-size:0.44em; color:var(--k-mut); font-weight:600; line-height:1.3;
  margin-top:0.5em; letter-spacing:0.01em;
  opacity:0; transform:translateY(-8px); transition:opacity .3s ease, transform .3s ease;
}
#screenStart .kHeroTitle .heroSubtitle.is-in{ opacity:1; transform:none }
#screenStart .kHeroTitle .heroSubtitle.is-out{ opacity:0; transform:translateY(-8px) }

/* =============================================================================
   CURVA DE RETENÇÃO — a coluna clara do hero
   =============================================================================
   Demonstra a tese do site em vez de afirmá-la: sem edição o público some nos
   primeiros segundos, com corte bem feito ele fica. Escolhida no lugar de um
   antes/depois de vídeo porque este exigiria material real de cliente — montar
   um com banco de imagem seria prova fabricada.

   A animação roda UMA vez, devagar e em silêncio. É a tela de login: se esta
   metade pisca, o olho não vai para o formulário do lado.

   O dourado aqui é #a8801c, não o #fcbc1d da marca: sobre o creme o dourado
   puro rende 2.6:1 e elementos gráficos precisam de 3:1. Este dá 3.4:1.
   ============================================================================= */
/* A figura toma a coluna inteira, de borda a borda e do topo ao fim — o recuo
   que alinhava com os títulos das outras seções não faz sentido aqui, porque
   não há texto corrido nesta coluna. Os rótulos ficam dentro da imagem. */
#screenStart .kHeroLeft{ padding:0 !important }
#screenStart .kCurve{
  margin:0; width:100%; height:100%;
  position:relative; display:block;
}
#screenStart .kCurveHead{
  position:absolute; z-index:3;
  top:clamp(20px,3vh,34px); left:clamp(20px,2.4vw,32px); right:clamp(20px,2.4vw,32px);
}
#screenStart .kCurveEyebrow{
  color:var(--k-palco-ink) !important;
  font-size:.72rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  text-shadow:0 1px 8px rgba(10,12,16,.9);
}

/* ---- comparador antes/depois ----
   As duas metades são o mesmo arquivo. O "antes" recebe o tratamento inverso
   do que um colorista faria (dessatura, achata o contraste, levanta as
   sombras) e o "depois" recebe a correção. Como a origem é idêntica, a
   comparação é honesta: mostra o efeito do tratamento, não duas cenas. */
/* Altura em vh para o quadro ocupar a maior parte da coluna clara — o pedido
   era cobrir ~80% dela. O texto em volta foi reduzido a um rótulo e uma nota,
   de uma linha cada, para sobrar espaço à imagem. */
#screenStart .kBAFrame{
  position:relative; width:100%; height:100%;
  overflow:hidden;
  background:var(--k-palco);
}
/* véus no topo e no rodapé: sem eles o texto branco cai sobre a parte clara da
   foto (parede e araras) e some */
#screenStart .kBAFrame::before,
#screenStart .kBAFrame::after{
  content:""; position:absolute; left:0; right:0; z-index:2; pointer-events:none;
}
#screenStart .kBAFrame::before{
  top:0; height:150px;
  background:linear-gradient(180deg, rgba(10,12,16,.72), rgba(10,12,16,0));
}
#screenStart .kBAFrame::after{
  bottom:0; height:120px;
  background:linear-gradient(0deg, rgba(10,12,16,.55), rgba(10,12,16,0));
}
/* o scale aproxima a criadora e joga para fora o laptop do canto inferior,
   que traz uma logo de fabricante */
/* Posição calculada, não estimada. No arquivo original (1880x1253) o rosto da
   criadora cai em x=50,3% — praticamente no centro horizontal da foto. Logo
   object-position:50% já a centraliza no quadro, e transform-origin:50% mantém
   ela centrada depois do scale, porque ampliar a partir do centro não desloca
   o centro. Os translateX que eu vinha aplicando (7%, depois 3%) eram a causa
   de a divisória cair ao lado dela em vez de em cima.
   O scale existe só para cortar o laptop do canto inferior, que traz logo de
   fabricante; o eixo vertical fica em 38% para tirá-lo de vez. */
#screenStart .kBAImg{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover; object-position:50% 40%;
  transform:scale(1.28); transform-origin:50% 38%;
  display:block;
}
#screenStart .kBAImg--depois{ filter:saturate(1.18) contrast(1.14) brightness(.99) }
#screenStart .kBAImg--antes{ filter:saturate(.55) contrast(.86) brightness(1.1) }

/* A metade esquerda mostra o bruto. É clip-path e não width:50%: encolher a
   caixa encolheria a imagem dentro dela, e as duas versões deixariam de
   coincidir na divisória. Com o recorte, ambas ocupam o frame inteiro e só a
   área visível muda. */
#screenStart .kBABefore{
  position:absolute; inset:0;
  clip-path:inset(0 50% 0 0);
}

#screenStart .kBADivider{
  position:absolute; top:0; bottom:0; left:50%; width:2px;
  background:var(--k-gold-hi); transform:translateX(-1px);
  box-shadow:0 0 0 1px rgba(0,0,0,.25);
}
#screenStart .kBATag{
  position:absolute; bottom:clamp(16px,2.4vh,26px); z-index:3;
  padding:5px 10px; border-radius:100px;
  background:rgba(10,12,16,.78); color:#f3f5f8 !important;
  font-size:.68rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
}
#screenStart .kBATag--antes{ left:clamp(20px,2.4vw,32px) }
#screenStart .kBATag--depois{
  right:clamp(20px,2.4vw,32px);
  background:rgba(201,160,42,.95); color:#1c1405 !important;
}

/* Entrada: a divisória parte da direita e desliza até o meio, revelando a
   versão tratada. Conta a história uma vez e para — sem loop, porque isto
   divide a tela com um formulário de login. */
#screenStart .kCurve.k-in .kBABefore{
  animation:kBAReveal 1.5s cubic-bezier(.4,0,.2,1) .35s both;
}
#screenStart .kCurve.k-in .kBADivider{
  animation:kBASlide 1.5s cubic-bezier(.4,0,.2,1) .35s both;
}
/* Anima o RECORTE, não a largura. Animar width encolhia a imagem dentro da
   caixa junto com ela: as duas camadas saíam de escala, a criadora aparecia
   duplicada e o lado bruto ficava com ~20% em vez de 50%. */
@keyframes kBAReveal{
  from{ clip-path:inset(0 0 0 0) }
  to{ clip-path:inset(0 50% 0 0) }
}
@keyframes kBASlide{ from{ left:100% } to{ left:50% } }

#screenStart .kCurveNote{
  position:absolute; z-index:3;
  top:calc(clamp(20px,3vh,34px) + 24px);
  left:clamp(20px,2.4vw,32px); right:clamp(20px,2.4vw,32px);
  margin:0; max-width:42ch;
  color:rgba(243,245,248,.82) !important; font-size:.72rem; line-height:1.5;
  text-shadow:0 1px 8px rgba(10,12,16,.9);
}

/* sem animação: entrega o comparador já aberto no meio, nunca escondido */
@media (prefers-reduced-motion:reduce){
  #screenStart .kCurve.k-in .kBABefore,
  #screenStart .kCurve.k-in .kBADivider{ animation:none }
}

#screenStart .kHeroLead{
  margin:0; max-width:46ch;
  color:var(--k-mut); font-size:clamp(1rem,1.5vw,1.12rem); line-height:1.55;
}

#screenStart .kHeroActions{ display:flex; gap:10px; flex-wrap:wrap }

/* Prova em UMA linha (rótulo · descrição), não em blocos empilhados: a versão
   anterior custava ~90px de altura e era justamente o que jogava o botão de
   login para fora da tela. Aqui informa o mesmo ocupando uma linha. */
#screenStart .kHeroFacts{
  display:flex; flex-wrap:wrap; gap:6px 18px; align-items:baseline;
  padding-top:14px; border-top:1px solid var(--k-line);
}
#screenStart .kHeroFacts div{ display:flex; align-items:baseline; gap:6px }
#screenStart .kHeroFacts b{
  font-size:.86rem; font-weight:800; color:var(--k-ink); letter-spacing:-.01em;
}
#screenStart .kHeroFacts span{ color:var(--k-soft); font-size:.78rem; font-weight:600 }

/* ---- login: compacto, ancorado, sem virar o herói da tela ---- */
#screenStart .kLogin{
  border:1px solid var(--k-line); border-radius:var(--k-r);
  background:var(--k-surf); padding:15px 16px 16px;
  box-shadow:0 1px 2px rgba(17,24,39,.05);
}
#screenStart .kLoginTop{
  display:flex; align-items:baseline; justify-content:space-between; gap:10px;
  margin-bottom:11px;
}
#screenStart .kLoginTop h2{
  margin:0; font-size:.9rem; font-weight:800; letter-spacing:-.01em; color:var(--k-ink);
}
/* E-mail e senha lado a lado no desktop: economiza uma linha inteira de altura
   e mantém o botão de entrar dentro da primeira tela. */
#screenStart .kmlLoginFields{ display:grid; grid-template-columns:1fr 1fr; gap:9px 12px }
#screenStart .kmlForgotRow,
#screenStart .kmlTermsRow,
#screenStart .kmlLoginBtn,
#screenStart .kmlLoginHint,
#screenStart .kmlCreateRow,
#screenStart .turnstileWrap{ grid-column:1 / -1 }
@media (max-width:520px){
  #screenStart .kmlLoginFields{ grid-template-columns:1fr }
}
#screenStart .kmlLF{ display:flex; flex-direction:column; gap:5px }
#screenStart .kmlLoginLabel{
  color:var(--k-soft); font-size:.66rem; font-weight:800;
  letter-spacing:.1em; text-transform:uppercase;
}
#screenStart .authInput{
  width:100%; min-height:42px; padding:0 12px;
  border:1px solid var(--k-line2); border-radius:var(--k-r);
  background:var(--k-surf); color:var(--k-ink);
  font-family:inherit; font-size:.92rem; box-shadow:none;
}
#screenStart .authInput::placeholder{ color:var(--k-soft) }
#screenStart .authInput:focus-visible{
  outline:2px solid var(--k-gold); outline-offset:1px; border-color:var(--k-gold);
}
#screenStart .authPass{ position:relative; display:flex; align-items:center }
#screenStart .authPass .authInput{ padding-right:42px }
#screenStart .passToggle{
  position:absolute; right:5px;
  display:inline-flex; align-items:center; justify-content:center;
  width:30px; height:30px; border:0; border-radius:var(--k-r);
  background:transparent; color:var(--k-soft); cursor:pointer;
}
#screenStart .passToggle:hover{ color:var(--k-ink); background:var(--k-surf3) }
#screenStart .passToggle svg{ width:16px; height:16px }
#screenStart .kmlForgotRow{ display:flex; justify-content:flex-end; margin-top:-3px }
#screenStart .linkBtn{
  border:0; background:transparent; padding:0; cursor:pointer;
  color:var(--k-gold-ink) !important; font-family:inherit; font-size:.78rem; font-weight:700;
  text-decoration:underline; text-underline-offset:2px;
}
#screenStart .linkBtn:hover{ color:#5d4409 !important }
#screenStart .kmlTermsLabel{ display:flex; align-items:flex-start; gap:8px; cursor:pointer }
#screenStart .kmlTermsCheck{ position:absolute; opacity:0; width:0; height:0 }
#screenStart .kmlTermsCheckbox{
  flex:0 0 auto; width:17px; height:17px; margin-top:1px;
  border:1.5px solid var(--k-line2); border-radius:3px; background:var(--k-surf);
  display:inline-flex; align-items:center; justify-content:center;
  transition:background .14s, border-color .14s;
}
#screenStart .kmlTermsCheck:checked + .kmlTermsCheckbox{ background:var(--k-gold); border-color:var(--k-gold) }
#screenStart .kmlTermsCheck:checked + .kmlTermsCheckbox::after{
  content:""; width:5px; height:9px; margin-top:-2px;
  border:solid #1c1405; border-width:0 2px 2px 0; transform:rotate(45deg);
}
#screenStart .kmlTermsCheck:focus-visible + .kmlTermsCheckbox{ outline:2px solid var(--k-gold-ink); outline-offset:2px }
#screenStart .kmlTermsText{ color:var(--k-mut); font-size:.76rem; line-height:1.4 }
#screenStart .kmlTermsText .linkBtn{ font-size:.76rem }
#screenStart .kmlLoginBtn{
  width:100%; min-height:46px; margin-top:2px;
  border:1px solid var(--k-gold); border-radius:var(--k-r);
  background:var(--k-gold); color:#1c1405 !important;
  font-family:inherit; font-size:.94rem; font-weight:800; cursor:pointer;
  transition:background .16s;
}
#screenStart .kmlLoginBtn:hover:not(:disabled){ background:var(--k-gold-hi) }
#screenStart .kmlLoginBtn:disabled{
  background:var(--k-surf3); border-color:var(--k-line);
  color:var(--k-soft) !important; cursor:not-allowed;
}
#screenStart .kmlLoginHint{ margin-top:6px; text-align:center; color:var(--k-soft); font-size:.73rem }
#screenStart .kmlCreateRow{ margin-top:9px; text-align:center; color:var(--k-mut); font-size:.82rem }
#screenStart .fieldErrorMsg{ color:#b91c1c !important; font-size:.74rem; font-weight:600 }
#screenStart .fieldErrorMsg:empty{ display:none }

/* ---- palco: fita de frames verticais ---- */
/* O palco é fundo E container do login: os frames ficam absolutos atrás, o card
   entra no fluxo normal. Assim o palco cresce junto com o formulário e o card
   branco ganha o contraste do escuro por trás.
   Cores em --k-palco*, não em --k-stage*: os tokens de palco da página são
   claros desde 13/08/2026 e só esta faixa continua escura. */
#screenStart .kStage{
  position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  padding:calc(clamp(24px,3vw,40px) + var(--k-bleed-top, 0px))
          clamp(24px,3vw,40px) clamp(24px,3vw,40px);
  background:var(--k-palco);
  /* A border-left clara saiu: era 1px acinzentado bem na divisa com a coluna
     creme. No lugar, o preto avança 3px para a esquerda e para cima via
     box-shadow — cobre qualquer fresta de arredondamento entre as colunas do
     grid (a divisa cai em x=539.58, 561.00, 652.80... quase nunca num pixel
     inteiro) sem mexer no layout nem gerar rolagem. */
  border-left:0;
  /* Para a direita o preto avança 60px: ali é a borda da janela, não há nada
     para invadir, e assim cobre qualquer sobra de fundo por maior que seja.
     Para a esquerda só 3px, porque ali fica a coluna de texto. */
  box-shadow:60px 0 0 0 var(--k-palco),
             -3px 0 0 0 var(--k-palco),
             0 -3px 0 0 var(--k-palco);
}
/* véu sobre os frames: sem ele o card branco disputa atenção com as fotos */
#screenStart .kStage .kStageCols::after{
  content:""; position:absolute; inset:0; z-index:2;
  background:rgba(10,12,16,.55);
}
#screenStart .kStage .kLogin{
  position:relative; z-index:5;
  width:min(392px,100%);
  box-shadow:0 18px 44px rgba(0,0,0,.45), 0 2px 6px rgba(0,0,0,.3);
}
/* topo e base esmaecem para o creme: a fita "entra" na página em vez de ser um
   retângulo colado */
#screenStart .kStage::before, #screenStart .kStage::after{
  content:""; position:absolute; left:0; right:0; height:22%; z-index:3; pointer-events:none;
}
#screenStart .kStage::before{ top:0;    background:linear-gradient(180deg,var(--k-palco),transparent) }
#screenStart .kStage::after { bottom:0; background:linear-gradient(0deg,var(--k-palco),transparent) }

#screenStart .kStageCols{
  position:absolute; inset:0;
  display:grid; grid-template-columns:1fr 1fr; gap:14px;
  padding:14px;
}
#screenStart .kRibbon{ position:relative; overflow:hidden }
#screenStart .kRibbonTrack{
  display:flex; flex-direction:column; gap:14px;
  animation:kScrollUp 42s linear infinite;
  will-change:transform;
}
/* a segunda coluna corre ao contrário e mais devagar: cria profundidade sem
   nenhum efeito 3D */
#screenStart .kRibbon--rev .kRibbonTrack{ animation:kScrollDown 52s linear infinite }
@keyframes kScrollUp   { from{ transform:translateY(0) }    to{ transform:translateY(-50%) } }
@keyframes kScrollDown { from{ transform:translateY(-50%) } to{ transform:translateY(0) } }

#screenStart .kFrame{
  position:relative; flex:0 0 auto;
  aspect-ratio:9/16; width:100%;
  border-radius:var(--k-r); overflow:hidden;
  background:var(--k-palco2);
  border:1px solid var(--k-palco-line);
}
#screenStart .kFrame img{ width:100%; height:100%; object-fit:cover; display:block }
/* etiqueta de formato: informação real sobre a peça, não enfeite */
#screenStart .kFrame b{
  position:absolute; top:8px; left:8px; z-index:2;
  padding:2px 6px; border-radius:3px;
  background:rgba(6,8,11,.72); border:1px solid rgba(255,255,255,.2);
  color:#fff !important; font-size:.6rem; font-weight:800; letter-spacing:.06em;
}

/* seta de rolagem, discreta */
#screenStart .kScrollCue{
  position:absolute; left:50%; bottom:18px; transform:translateX(-50%); z-index:4;
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 14px; border-radius:100px;
  border:1px solid var(--k-palco-line); background:rgba(6,8,11,.55);
  color:var(--k-palco-mut) !important; font-size:.7rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
}


/* =============================================================================
   RETENÇÃO — a faixa escura que sustenta a tese
   =============================================================================
   Curva desenhada em SVG. Não é gráfico decorativo: mostra onde o público
   desiste e onde o corte bem feito segura. É a razão de existir do serviço.
   ============================================================================= */
/* Faixa escura de borda a borda, como o hero e o CTA. Sem a sangria ela parava
   no padding do <main> e ficava uma tira creme de 18px de cada lado — a mesma
   sobra que o hero tinha. Todo bloco de palco desta tela encosta na borda; os
   blocos claros seguem no gutter normal. O padding devolve para dentro o que a
   margem tirou, então o texto continua alinhado com as seções claras. */
#screenStart .kRet{
  background:var(--k-stage); color:var(--k-on-stage) !important;
  border-block:1px solid rgba(17,24,39,.1);
  margin-inline:calc(-1 * var(--k-bleed));
  padding-inline:var(--k-bleed);
  /* mesma rede das outras faixas: o preto transborda 3px para os lados, então
     nenhuma fresta de arredondamento deixa o fundo do site aparecer */
  box-shadow:-3px 0 0 0 var(--k-stage), 3px 0 0 0 var(--k-stage);
}
/* o dourado puro rende 2,17:1 no branco — como TEXTO ele reprova. Nesta faixa
   clara a etiqueta usa o mesmo dourado escurecido do resto da página. */
#screenStart .kRet .kEyebrow{ color:var(--k-gold-ink) !important }
#screenStart .kRet .kEyebrow::before{ background:var(--k-gold-ink) }
#screenStart .kRet .kH2{ color:var(--k-ink) !important }
#screenStart .kRet .kLead{ color:var(--k-mut) !important }

/* colunas equilibradas: com .86/1.14 o título quebrava em três linhas de um
   lado enquanto sobrava respiro do outro. */
#screenStart .kRetGrid{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);
  gap:clamp(26px,4vw,52px); align-items:center;
}
#screenStart .kRetChart{
  position:relative;
  border:1px solid var(--k-line); border-radius:var(--k-r);
  background:var(--k-stage2); padding:16px 16px 12px;
}
#screenStart .kRetChart svg{ display:block; width:100%; height:auto; overflow:visible }
#screenStart .kRetLegend{
  display:flex; gap:18px; flex-wrap:wrap; margin-top:12px;
  color:var(--k-mut) !important; font-size:.74rem; font-weight:600;
}
#screenStart .kRetLegend i{
  display:inline-block; width:16px; height:2px; margin-right:7px; vertical-align:middle;
}
#screenStart .kRetNote{
  margin-top:18px; padding-top:16px; border-top:1px solid var(--k-line);
  color:var(--k-soft) !important; font-size:.8rem; line-height:1.55;
}


/* =============================================================================
   PROPOSTA — três blocos alternados, frame vertical + texto
   =============================================================================
   Não são três cards iguais lado a lado. Cada motivo ocupa uma faixa própria,
   com a cena real de quem tem aquela dor. Alternar o lado dá ritmo de leitura.
   ============================================================================= */
/* Colunas com teto de leitura em vez de 1fr solto: com 1fr o texto parava em
   56ch e sobravam ~300px de vazio à direita, deixando o bloco desamarrado.
   Agora imagem e texto formam um conjunto coeso alinhado pelo topo. */
#screenStart .kRow{
  display:grid; grid-template-columns:minmax(0,292px) minmax(0,600px);
  gap:clamp(22px,3vw,40px); align-items:start;
  justify-content:start;
  padding-block:clamp(22px,3vw,32px);
  border-bottom:1px solid var(--k-line);
}
#screenStart .kRow:last-of-type{ border-bottom:0 }
#screenStart .kRow--flip{ grid-template-columns:minmax(0,600px) minmax(0,292px); justify-content:end }
#screenStart .kRow--flip .kRowMedia{ order:2 }

/* teto de 330px: a 9:16 em 268px de largura daria 476px de altura e a foto
   engolia o texto, deixando um vão morto de cada lado do bloco. */
#screenStart .kRowMedia{
  position:relative; aspect-ratio:9/16; max-height:330px;
  border-radius:var(--k-r); overflow:hidden;
  background:var(--k-stage2); border:1px solid var(--k-line);
  justify-self:start;
}
#screenStart .kRow--flip .kRowMedia{ justify-self:end }
#screenStart .kRowMedia img{ width:100%; height:100%; object-fit:cover; display:block }
#screenStart .kRowMedia b{
  position:absolute; top:10px; left:10px; z-index:2;
  padding:3px 7px; border-radius:3px;
  background:rgba(6,8,11,.7); border:1px solid rgba(255,255,255,.2);
  color:#fff !important; font-size:.62rem; font-weight:800; letter-spacing:.06em;
}
#screenStart .kRowBody h3{
  margin:0 0 12px;
  font-size:clamp(1.35rem,2.6vw,1.95rem); font-weight:800;
  letter-spacing:-.03em; line-height:1.1; color:var(--k-ink);
}
#screenStart .kRowBody p{ margin:0 0 16px; color:var(--k-mut); font-size:1rem; line-height:1.6; max-width:56ch }
#screenStart .kChips{ display:flex; flex-wrap:wrap; gap:7px; margin-bottom:18px }
#screenStart .kChips span{
  padding:4px 10px; border:1px solid var(--k-line); border-radius:100px;
  background:var(--k-surf); color:var(--k-mut) !important; font-size:.76rem; font-weight:600;
}
#screenStart .kRowLink{
  display:inline-flex; align-items:center; gap:7px;
  color:var(--k-gold-ink) !important; font-size:.9rem; font-weight:800;
  text-decoration:none;
}
#screenStart .kRowLink:hover{ gap:11px }
#screenStart .kRowLink svg{ transition:transform .16s }


/* =============================================================================
   FORMATOS — altura igual, largura pela proporção
   ============================================================================= */
#screenStart .kFmts{ display:flex; flex-wrap:wrap; gap:20px; align-items:flex-start }
#screenStart .kFmt{ display:flex; flex-direction:column; gap:10px; max-width:100% }
#screenStart .kFmtBox{
  position:relative; overflow:hidden;
  height:clamp(180px,24vw,272px); width:auto;
  border-radius:var(--k-r); border:1px solid var(--k-line);
  background:var(--k-stage2);
}
#screenStart .kFmtBox img{ width:100%; height:100%; object-fit:cover; display:block }
#screenStart .kFmtBox--v{ aspect-ratio:9/16 }
#screenStart .kFmtBox--s{ aspect-ratio:1/1 }
#screenStart .kFmtBox--h{ aspect-ratio:16/9 }
#screenStart .kFmtBox b{
  position:absolute; top:9px; left:9px; z-index:2;
  padding:2px 7px; border-radius:3px;
  background:rgba(6,8,11,.72); border:1px solid rgba(255,255,255,.2);
  color:#fff !important; font-size:.63rem; font-weight:800; letter-spacing:.05em;
}
#screenStart .kFmt div{ min-width:150px; max-width:220px }
#screenStart .kFmt h4{ margin:0; font-size:.94rem; font-weight:800; color:var(--k-ink) }
#screenStart .kFmt p{ margin:2px 0 0; color:var(--k-soft); font-size:.82rem; line-height:1.45 }


/* =============================================================================
   FLUXO — a linha do pedido
   ============================================================================= */
#screenStart .kFlow{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:0 }
#screenStart .kStep{ position:relative; padding:22px 20px 22px 0 }
#screenStart .kStep + .kStep{ padding-left:24px; border-left:1px solid var(--k-line) }
#screenStart .kStepN{
  display:inline-flex; align-items:center; justify-content:center;
  width:26px; height:26px; margin-bottom:12px;
  border-radius:50%; background:var(--k-ink); color:#fff !important;
  font-size:.76rem; font-weight:800;
}
#screenStart .kStep:first-child .kStepN{ background:var(--k-gold); color:#1c1405 !important }
#screenStart .kStep h4{ margin:0 0 5px; font-size:1rem; font-weight:800; color:var(--k-ink); letter-spacing:-.01em }
#screenStart .kStep p{ margin:0; color:var(--k-mut); font-size:.89rem; line-height:1.5 }


/* =============================================================================
   GARANTIAS
   ============================================================================= */
#screenStart .kGuard{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:1px;
  background:var(--k-line); border:1px solid var(--k-line); border-radius:var(--k-r); overflow:hidden;
}
#screenStart .kGuardItem{ background:var(--k-surf); padding:22px 20px }
#screenStart .kGuardItem svg{ color:var(--k-gold-ink); margin-bottom:12px }
#screenStart .kGuardItem h4{ margin:0 0 5px; font-size:.98rem; font-weight:800; color:var(--k-ink) }
#screenStart .kGuardItem p{ margin:0; color:var(--k-soft); font-size:.85rem; line-height:1.5 }


/* =============================================================================
   FAQ
   ============================================================================= */
#screenStart .kFaq{ max-width:840px }
#screenStart .kQ{ border-bottom:1px solid var(--k-line) }
#screenStart .kQ summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:19px 0; font-size:1.02rem; font-weight:800; color:var(--k-ink); letter-spacing:-.015em;
}
#screenStart .kQ summary::-webkit-details-marker{ display:none }
#screenStart .kQ summary:focus-visible{ outline:2px solid var(--k-gold-ink); outline-offset:3px; border-radius:3px }
#screenStart .kQIco{ position:relative; flex:0 0 auto; width:17px; height:17px; transition:transform .2s }
#screenStart .kQIco::before, #screenStart .kQIco::after{
  content:""; position:absolute; inset:50% 0; height:2px; background:var(--k-gold-ink); transform:translateY(-50%);
}
#screenStart .kQIco::after{ transform:translateY(-50%) rotate(90deg) }
#screenStart .kQ[open] .kQIco{ transform:rotate(45deg) }
#screenStart .kQ p{ margin:0 0 20px; color:var(--k-mut); font-size:.94rem; line-height:1.62; max-width:72ch }


/* =============================================================================
   CTA FINAL — no palco escuro, fechando o arco visual
   ============================================================================= */
/* A primeira versão era um retângulo escuro chapado com o título de um lado e
   os botões do outro — o único bloco de palco da página SEM mídia, e por isso
   o mais pobre. Agora é uma faixa de borda a borda com a mesma fita de frames
   9:16 do hero ao fundo: a página abre e fecha no mesmo palco. */
#screenStart .kCta{
  position:relative; isolation:isolate; overflow:hidden;
  margin-inline:calc(-1 * var(--k-bleed));
  padding:clamp(58px,7.5vw,104px) calc(var(--k-gut) + var(--k-bleed));
  min-height:clamp(380px,42vw,480px);
  display:grid; place-items:center;
  /* Escuro fixo, não o token: aqui o fundo NÃO é uma tela apagada, é a fita de
     fotos em tamanho grande com um véu por cima para o texto ter contraste.
     Quando o palco virou claro, este bloco precisou dos valores literais —
     senão o texto ficaria tinta escura sobre foto escurecida. */
  background:#0e1014; color:#f3f5f8 !important;
  border-block:1px solid rgba(17,24,39,.1);
  box-shadow:-3px 0 0 0 #0e1014, 3px 0 0 0 #0e1014;
}

/* fita de fundo: frames na proporção real do produto, cortados pelas bordas */
#screenStart .kCtaMedia{
  position:absolute; inset:0; z-index:0;
  display:flex; align-items:stretch; justify-content:center;
  gap:10px; padding:10px;
}
#screenStart .kCtaMedia img{
  flex:0 0 auto; height:100%; aspect-ratio:9/16;
  object-fit:cover; border-radius:var(--k-r);
  filter:grayscale(.3) contrast(1.04);
}
/* véu: sem ele o texto sentaria em cima de fotos com áreas claras. Mais denso
   no centro (onde o texto vive) e mais leve nas pontas, para a mídia respirar. */
#screenStart .kCta::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(78% 120% at 50% 50%,
      rgba(14,16,20,.95) 0%, rgba(14,16,20,.93) 46%,
      rgba(14,16,20,.80) 74%, rgba(14,16,20,.90) 100%);
}

#screenStart .kCtaIn{
  position:relative; z-index:2;
  width:min(760px,100%); text-align:center;
}
#screenStart .kCta .kEyebrow{ color:var(--k-gold) !important; justify-content:center }
#screenStart .kCta .kEyebrow::before{ background:var(--k-gold) }
#screenStart .kCta h2{
  margin:14px 0 14px; font-size:clamp(1.7rem,3.9vw,2.85rem);
  font-weight:800; letter-spacing:-.04em; line-height:1.06;
  color:#f3f5f8 !important;
  text-wrap:balance;
}
#screenStart .kCta p{
  margin:0 auto; max-width:54ch;
  color:#c3cad4 !important; font-size:1.02rem; line-height:1.6;
}
#screenStart .kCtaBtns{
  display:flex; gap:12px; flex-wrap:wrap; justify-content:center;
  margin-top:clamp(26px,3.4vw,34px);
}
/* barra fina de garantias, no lugar do rodapé solto que flutuava embaixo */
#screenStart .kCtaFacts{
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:8px 26px; margin:clamp(26px,3.4vw,34px) 0 0; padding:18px 0 0;
  list-style:none;
  border-top:1px solid rgba(255,255,255,.12);
  color:#c3cad4 !important; font-size:.8rem; letter-spacing:.01em;
}
#screenStart .kCtaFacts li{ display:flex; align-items:center; gap:8px }
#screenStart .kCtaFacts li::before{
  content:""; width:5px; height:5px; border-radius:50%;
  background:var(--k-gold); flex:0 0 auto;
}

/* sem border-top: agora vem logo abaixo da faixa escura, que já separa */
#screenStart .kCredits{
  padding:26px 0 44px;
  color:var(--k-soft); font-size:.75rem; line-height:1.6;
}


/* =============================================================================
   COMO FUNCIONA — seis passos ilustrados
   =============================================================================
   As ilustrações são SVG com animação SMIL nativa (169, 137, 109, 74, 35 e 3
   animações por arquivo). Não há JS envolvido: o navegador toca sozinho.
   As cores foram trocadas para a paleta do site em assets/ilustracoes/ —
   as originais tinham roxo/azul-violeta e ciano neon, proibidos pela LEI.
   ============================================================================= */
/* Blocos largos e alternados, não grade de cards pequenos. Espremidas em card
   de 150px as animações ficavam ilegíveis: são cenas com vários elementos
   entrando em quadro e precisam de área para acontecer inteiras. */
#screenStart .kIlusLista{
  display:flex; flex-direction:column;
  gap:clamp(28px,4vw,56px);
}
#screenStart .kIlusBloco{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  align-items:center;
  gap:clamp(24px,4vw,56px);
  background:var(--k-surf);
  border:1px solid var(--k-line);
  border-radius:var(--k-r);
  padding:clamp(20px,2.6vw,34px);
}
/* o bloco do meio espelha: arte à direita, texto à esquerda. Dá ritmo à leitura
   sem precisar de cor ou moldura diferente. */
#screenStart .kIlusBloco--inverso .kIlusArte{ order:2 }

/* overflow:hidden é rede de segurança. Os arquivos vinham com
   width/height="100%" na tag <svg>, o que tira a proporção intrínseca e faz o
   object-fit:contain perder a referência — o desenho escapava por cima do
   texto. Os atributos foram removidos dos arquivos (o viewBox ficou), mas o
   clip garante que nenhuma arte futura vaze. */
#screenStart .kIlusArte{
  margin:0; display:grid; place-items:center;
  height:clamp(230px,26vw,320px);
  padding:clamp(14px,2vw,24px); overflow:hidden;
  background:linear-gradient(180deg, #faf7f1, #f2ece1);
  border:1px solid var(--k-line);
  border-radius:var(--k-r);
}
#screenStart .kIlusArte img{
  width:100%; height:100%;
  object-fit:contain; display:block;
}

#screenStart .kIlusN{
  display:inline-block; margin-bottom:12px;
  font-size:.78rem; font-weight:800; letter-spacing:.16em;
  color:var(--k-gold-ink) !important;
}
#screenStart .kIlusTexto h3{
  margin:0 0 12px;
  font-size:clamp(1.25rem,2.1vw,1.65rem); font-weight:800;
  letter-spacing:-.03em; line-height:1.15;
  color:var(--k-ink) !important;
}
#screenStart .kIlusTexto p{
  margin:0; max-width:52ch;
  color:var(--k-mut) !important; font-size:.98rem; line-height:1.62;
}

@media (max-width:820px){
  #screenStart .kIlusBloco{ grid-template-columns:1fr }
  /* empilhado, a arte vem sempre primeiro — manter a inversão deixaria a
     numeração acima da imagem num bloco e abaixo no outro, sem motivo */
  #screenStart .kIlusBloco--inverso .kIlusArte{ order:0 }
  #screenStart .kIlusArte{ height:clamp(200px,46vw,280px) }
}

/* =============================================================================
   MOTION — só onde comunica estado. Valores dos tokens do cérebro
   (Web Design Real / 25 - Animacoes / Tokens - Duracao Easing Distancia e Escala)
   =============================================================================
   Entrada de seção: 180–320ms · cascata 40–80ms · slide 8–16px
   Curva padrão de entrada: cubic-bezier(.16,1,.3,1)
   ============================================================================= */
#screenStart{
  --k-ease-out:cubic-bezier(.16,1,.3,1);
  --k-dur:260ms;
  --k-passo:70ms;   /* atraso entre itens de uma mesma lista */
}

/* Reveal — fade curto; nunca compete com o CTA.
   Era .5s ease: 500ms fica acima da faixa dos tokens e faz a seção parecer
   preguiçosa. 260ms com a curva de saída dá a mesma leitura, mais firme. */
#screenStart [data-k-rise]{
  opacity:0; transform:translateY(14px);
  transition:opacity var(--k-dur) var(--k-ease-out),
             transform var(--k-dur) var(--k-ease-out);
}
#screenStart [data-k-rise].k-in{ opacity:1; transform:none }

/* ---- cascata nos passos do fluxo ----
   Os 4 passos apareciam juntos, como um bloco só. Em cascata eles entram na
   ordem 1→2→3→4 — a animação passa a repetir o significado da seção, que é
   justamente uma sequência. 70ms entre itens: perceptível, sem virar espera
   (4 x 70ms = 280ms até o último). */
#screenStart .kFlow .kStep{
  opacity:0; transform:translateY(10px);
  transition:opacity var(--k-dur) var(--k-ease-out),
             transform var(--k-dur) var(--k-ease-out);
}
#screenStart .kFlow.k-in .kStep{ opacity:1; transform:none }
#screenStart .kFlow.k-in .kStep:nth-child(1){ transition-delay:0ms }
#screenStart .kFlow.k-in .kStep:nth-child(2){ transition-delay:var(--k-passo) }
#screenStart .kFlow.k-in .kStep:nth-child(3){ transition-delay:calc(var(--k-passo) * 2) }
#screenStart .kFlow.k-in .kStep:nth-child(4){ transition-delay:calc(var(--k-passo) * 3) }

/* mesma cascata nas garantias, que também são uma lista de itens irmãos */
#screenStart .kGuard .kGuardItem{
  opacity:0; transform:translateY(10px);
  transition:opacity var(--k-dur) var(--k-ease-out),
             transform var(--k-dur) var(--k-ease-out);
}
#screenStart .kGuard.k-in .kGuardItem{ opacity:1; transform:none }
#screenStart .kGuard.k-in .kGuardItem:nth-child(1){ transition-delay:0ms }
#screenStart .kGuard.k-in .kGuardItem:nth-child(2){ transition-delay:var(--k-passo) }
#screenStart .kGuard.k-in .kGuardItem:nth-child(3){ transition-delay:calc(var(--k-passo) * 2) }
#screenStart .kGuard.k-in .kGuardItem:nth-child(4){ transition-delay:calc(var(--k-passo) * 3) }

/* ---- abertura do FAQ ----
   O <details> abria seco, com o texto surgindo de uma vez. É o growIn do
   SB Admin 2 adaptado: scale 0.98 (bloco de texto largo pede escala menor que
   os 0.9 de um dropdown) e a mesma ideia de duas curvas, uma por propriedade. */
@keyframes kAbre{
  from{ opacity:0; transform:translateY(-4px) scale(.985) }
  to  { opacity:1; transform:none }
}
#screenStart .kQ[open] > *:not(summary){
  animation:kAbre 200ms var(--k-ease-out) both;
}

/* ---- botão de login: estado carregando ----
   O app já marcava o botão com .isBusy e aria-busy="true" durante o login
   (setLoginBusy no app.js), mas nada aparecia na tela: a pessoa clicava e
   ficava sem resposta. Este é o spinner-border do Bootstrap — o único caso em
   que animação infinita se justifica, porque significa "ainda processando". */
@keyframes kGira{ to{ transform:rotate(360deg) } }

/* O seletor precisa dos dois IDs. karameloo-redesign.css:7961 define
   `#screenStart .kmlLoginCard #startLoginBtn { color:#111827 !important }`,
   que tem especificidade (2,1,0) — maior que os (1,2,0) de
   `#screenStart .kmlLoginBtn.isBusy`. Medido: o texto continuava visível por
   cima do spinner. Com .kmlLoginCard + #startLoginBtn chega-se a (2,2,0). */
#screenStart .kmlLoginCard #startLoginBtn.isBusy,
#screenStart .kmlLoginCard .kmlLoginBtn.isBusy{
  position:relative; color:transparent !important; pointer-events:none;
}
#screenStart .kmlLoginCard #startLoginBtn.isBusy::after,
#screenStart .kmlLoginCard .kmlLoginBtn.isBusy::after{
  content:""; position:absolute; inset:0; margin:auto;
  width:20px; height:20px; border-radius:50%;
  border:2px solid rgba(17,24,39,.28);
  border-top-color:#111827;         /* mesma tinta do texto do botão dourado */
  animation:kGira .75s linear infinite;
}

/* Sem animação: tudo entra pronto. O spinner vira um traço parado, que ainda
   comunica "ocupado" pelo aria-busy, sem girar. */
@media (prefers-reduced-motion:reduce){
  #screenStart .kFlow .kStep,
  #screenStart .kGuard .kGuardItem{ opacity:1; transform:none; transition:none }
  #screenStart .kQ[open] > *:not(summary){ animation:none }
  #screenStart .kmlLoginCard #startLoginBtn.isBusy::after,
  #screenStart .kmlLoginCard .kmlLoginBtn.isBusy::after{ animation:none }
}


/* =============================================================================
   Responsivo
   ============================================================================= */
@media (max-width:1020px){
  #screenStart .kHero{ grid-template-columns:1fr; min-height:auto }
  #screenStart .kHeroLeft{
    /* width:100% é obrigatório: `margin:0 auto` num item de grid esticado faz
       ele encolher para o tamanho do conteúdo, e o conteúdo aqui é uma figura
       cujos filhos são todos absolutos — ou seja, largura ZERO. Medido: a
       coluna da foto ficava com 0px no celular e a demonstração sumia. */
    width:100%; max-width:var(--k-max); margin:0 auto;
    padding:calc(clamp(40px,6vh,64px) + var(--k-bleed-top, 0px))
            calc(var(--k-gut) + var(--k-bleed))
            clamp(28px,4vh,40px);
  }
  /* empilhado: o palco continua sendo o fundo do login, agora em faixa larga.
     Aqui ele já não é o primeiro elemento, então não recebe a compensação. */
  #screenStart .kStage{
    border-left:0; border-top:1px solid rgba(17,24,39,.1);
    padding:clamp(28px,5vw,44px) calc(var(--k-gut) + var(--k-bleed));
  }
  #screenStart .kStageCols{ grid-template-columns:repeat(4,minmax(0,1fr)) }
  #screenStart .kRibbonTrack{ animation-duration:60s }
  #screenStart .kScrollCue{ display:none }
  /* Empilhado, a coluna da foto não tem mais altura vinda do grid, e a figura
     é `height:100%` — ou seja, virava ZERO. No celular a demonstração
     simplesmente não existia, e a legenda dela (que é absoluta) escapava por
     cima do card de login. Aqui a altura passa a ser própria. */
  #screenStart .kCurve{ height:clamp(300px,72vw,440px) }
  #screenStart .kRetGrid{ grid-template-columns:1fr }
  /* menos frames cabem: encolhe a faixa para não virar uma parede de imagem */
  #screenStart .kCta{ min-height:clamp(320px,52vw,420px) }
}
@media (max-width:820px){
  #screenStart .kRow, #screenStart .kRow--flip{ grid-template-columns:1fr }
  #screenStart .kRow--flip .kRowMedia{ order:0; justify-self:start }
  #screenStart .kRowMedia{ max-height:300px; width:min(230px,60vw) }
  #screenStart .kStep{ padding:18px 0 }
  #screenStart .kStep + .kStep{ padding-left:0; border-left:0; border-top:1px solid var(--k-line) }
}
@media (max-width:560px){
  #screenStart .kStageCols{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:10px }
  /* Aqui existia `#screenStart .kStage{height:280px}`, de quando o palco era só
     fundo. Com o formulário dentro dele e overflow:hidden, essa altura fixa
     CORTAVA o card de login ao meio no celular. Não voltou de propósito. */
  #screenStart .kHeroActions .kBtn{ width:100% }
  #screenStart .kHeroFacts{ gap:0 18px }
  #screenStart .kCtaBtns .kBtn{ width:100% }
  /* No celular a própria tela já é o frame 9:16 — manter gap desenhava uma
     linha divisória bem no meio do texto. Sem gap, a faixa vira um frame só. */
  #screenStart .kCtaMedia{ gap:0; padding:0 }
  /* empilhado com os itens alinhados entre si: centralizar cada <li> deixava
     as bolinhas em escada */
  #screenStart .kCtaFacts{
    flex-direction:column; align-items:flex-start; gap:10px;
    width:max-content; max-width:100%; margin-inline:auto;
  }
  /* a quebra manual do título só serve ao desktop; aqui gerava órfã */
  #screenStart .kBrDesk{ display:none }
}

@media (prefers-reduced-motion:reduce){
  #screenStart .kRibbonTrack{ animation:none !important }
  #screenStart *, #screenStart *::before, #screenStart *::after{
    animation-duration:.001ms !important; transition-duration:.001ms !important;
  }
  #screenStart [data-k-rise]{ opacity:1; transform:none }
}

/* =============================================================================
   FLUXO — "Como o Karameloo funciona"
   =============================================================================
   Substituiu duas ilustracoes SVG com um paragrafo do lado. O problema delas
   nao era estetico: nao explicavam o caminho e nao mostravam o produto. O
   checklist de landing do cofre pede as duas coisas ("3 a 5 passos" e "mostra
   o produto funcionando antes de pedir crenca").

   A composicao: passos a esquerda, palco escuro grudado a direita trocando de
   cena conforme se le. O palco escuro ja e a assinatura desta pagina — a sala
   de edicao dentro do site claro —, entao o produto aparece no lugar onde a
   pagina inteira ja treinou o olho a procurar midia.
   ============================================================================= */

#screenStart .kFluxo{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.92fr);
  gap:clamp(28px,5vw,72px);
  align-items:start;
}

/* ---- coluna dos passos ---- */
#screenStart .kFluxoPassos{
  list-style:none; margin:0; padding:0;
  display:flex; flex-direction:column;
}

#screenStart .kPasso{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:18px;
  padding:22px 0 26px 0;
  border-top:1px solid var(--k-line);
}
#screenStart .kPasso:first-child{ border-top:0; padding-top:0 }

/* o numero e o fio que liga um passo ao seguinte: a sequencia fica visivel
   sem precisar de seta desenhada */
#screenStart .kPassoN{
  position:relative;
  flex:0 0 auto;
  width:42px; height:42px;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--k-line2);
  border-radius:100px;
  background:var(--k-surf);
  color:var(--k-soft) !important;
  font-size:.78rem; font-weight:800; letter-spacing:.04em;
  font-variant-numeric:tabular-nums;
  transition:background var(--k-dur) var(--k-ease-out),
             color var(--k-dur) var(--k-ease-out),
             border-color var(--k-dur) var(--k-ease-out);
}
#screenStart .kPasso:not(:last-child) .kPassoN::after{
  content:"";
  position:absolute; left:50%; top:calc(100% + 7px);
  width:1px; height:calc(100% + 30px);
  transform:translateX(-50%);
  background:var(--k-line);
}

#screenStart .kPassoTexto h3{
  margin:9px 0 8px;
  font-size:clamp(1.02rem,1.7vw,1.22rem);
  font-weight:800; letter-spacing:-.022em; line-height:1.22;
  color:var(--k-ink) !important;
}
#screenStart .kPassoTexto p{
  margin:0; max-width:46ch;
  color:var(--k-mut) !important; font-size:.95rem; line-height:1.58;
}

/* passo ativo: dourado no numero e o texto ganha peso total. O inativo NAO
   fica apagado a ponto de reprovar contraste — #4b5563 sobre creme da 7,4:1,
   entao quem le fora de ordem continua lendo. */
#screenStart .kPasso.is-ativo .kPassoN{
  background:var(--k-gold);
  border-color:var(--k-gold);
  color:#1c1405 !important;
}
#screenStart .kPasso.is-ativo .kPassoTexto h3{ color:var(--k-ink) !important }

/* ---- palco grudado ---- */
#screenStart .kFluxoPalco{
  position:sticky;
  top:clamp(88px,12vh,132px);
}

#screenStart .kPalcoTela{
  position:relative;
  aspect-ratio:4 / 5;
  border:1px solid var(--k-stage-line);
  border-radius:var(--k-r);
  background:var(--k-stage);
  overflow:hidden;
  box-shadow:0 24px 60px rgba(17,24,39,.18);
}

#screenStart .kCena{
  position:absolute; inset:0;
  padding:clamp(16px,2.4vw,24px);
  display:flex; flex-direction:column; gap:14px;
  /* o cabecalho da cena fica no topo e o resto centraliza: as cinco cenas tem
     alturas diferentes e, alinhadas no topo, as curtas deixavam metade do
     palco preto e vazio */
  justify-content:flex-start;
  opacity:0; transform:translateY(10px);
  pointer-events:none;
  transition:opacity var(--k-dur) var(--k-ease-out),
             transform var(--k-dur) var(--k-ease-out);
}
#screenStart .kCena.is-ativa{ opacity:1; transform:none }
#screenStart .kCena > :not(.kCenaTopo){ margin-block:auto }

#screenStart .kCenaTopo{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding-bottom:12px;
  border-bottom:1px solid var(--k-stage-line);
}
#screenStart .kCenaTopo span{
  color:var(--k-gold-ink) !important; font-size:.68rem; font-weight:800;
  letter-spacing:.14em; text-transform:uppercase;
}
#screenStart .kCenaTopo b{
  color:var(--k-on-stage-mut) !important; font-size:.78rem; font-weight:700;
}

/* --- cena 1: cartao do editor --- */
#screenStart .kCenaCard{
  border:1px solid var(--k-stage-line);
  border-radius:var(--k-r);
  background:var(--k-stage2);
  padding:16px;
}
#screenStart .kCenaEditor{
  display:flex; align-items:center; gap:12px; margin-bottom:14px;
}
#screenStart .kCenaAvatar{
  width:44px; height:44px; flex:0 0 auto;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:100px;
  background:var(--k-gold); color:#1c1405 !important;
  font-size:.9rem; font-weight:800;
}
#screenStart .kCenaEditor strong{
  display:block; color:var(--k-on-stage) !important; font-size:.98rem; font-weight:800;
}
#screenStart .kCenaEditor small{
  display:block; margin-top:3px;
  color:var(--k-on-stage-mut) !important; font-size:.78rem; font-weight:600;
}
#screenStart .kCenaNota{
  margin-left:auto;
  padding:5px 11px; border-radius:100px;
  background:rgba(201,160,42,.16); border:1px solid rgba(201,160,42,.4);
  color:var(--k-gold-ink) !important; font-size:.82rem; font-weight:800;
}
#screenStart .kCenaChips{ display:flex; flex-wrap:wrap; gap:7px; margin-bottom:14px }
#screenStart .kCenaChips span{
  padding:5px 10px; border-radius:100px;
  border:1px solid var(--k-stage-line);
  color:var(--k-on-stage-mut) !important; font-size:.72rem; font-weight:700;
}
#screenStart .kCenaLinha{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:10px 0; border-top:1px solid var(--k-stage-line);
}
#screenStart .kCenaLinha span{ color:var(--k-on-stage-mut) !important; font-size:.82rem; font-weight:600 }
#screenStart .kCenaLinha b{ color:var(--k-on-stage) !important; font-size:.88rem; font-weight:800 }

/* --- cena 2: conversa --- */
#screenStart .kCenaChat{ display:flex; flex-direction:column; gap:10px }
#screenStart .kBolha{
  max-width:82%;
  padding:11px 13px;
  border:1px solid var(--k-stage-line);
  border-radius:var(--k-r);
  background:var(--k-stage2);
  color:var(--k-on-stage) !important;
  font-size:.86rem; line-height:1.5;
}
#screenStart .kBolha--eu{
  align-self:flex-end;
  background:var(--k-gold); border-color:var(--k-gold); color:#1c1405 !important;
}
#screenStart .kBolha--audio{
  align-self:flex-end;
  display:flex; align-items:center; gap:11px;
  min-width:198px;
  background:var(--k-stage2); border-color:var(--k-stage-line);
}
#screenStart .kAudioPlay{
  width:30px; height:30px; flex:0 0 auto;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:100px; background:var(--k-gold); color:#1c1405 !important;
  font-size:.66rem;
}
#screenStart .kAudioOnda{ display:flex; align-items:center; gap:3px; flex:1 1 auto; height:20px }
#screenStart .kAudioOnda i{
  flex:1 1 auto; min-width:3px; border-radius:2px; background:rgba(17,24,39,.3);
}
#screenStart .kAudioOnda i:nth-child(1){ height:36% }
#screenStart .kAudioOnda i:nth-child(2){ height:70% }
#screenStart .kAudioOnda i:nth-child(3){ height:100% }
#screenStart .kAudioOnda i:nth-child(4){ height:54% }
#screenStart .kAudioOnda i:nth-child(5){ height:86% }
#screenStart .kAudioOnda i:nth-child(6){ height:42% }
#screenStart .kAudioOnda i:nth-child(7){ height:62% }
#screenStart .kAudioLen{ color:var(--k-on-stage-mut) !important; font-size:.74rem; font-weight:700 }

/* --- cena 3: proposta --- */
#screenStart .kCenaProposta{
  border:1px solid var(--k-stage-line);
  border-left:3px solid var(--k-gold);
  border-radius:var(--k-r);
  background:var(--k-stage2);
  overflow:hidden;
}
#screenStart .kPropTopo{
  display:flex; align-items:flex-start; justify-content:space-between; gap:14px;
  padding:13px 15px; border-bottom:1px solid var(--k-stage-line);
}
#screenStart .kPropTopo span{
  color:var(--k-on-stage-mut) !important; font-size:.64rem; font-weight:800;
  letter-spacing:.12em; text-transform:uppercase;
}
#screenStart .kPropTopo b{ color:var(--k-on-stage) !important; font-size:1.12rem; font-weight:800 }
#screenStart .kPropEscopo{
  margin:0; padding:13px 15px 9px;
  color:var(--k-on-stage) !important; font-size:.92rem; font-weight:700; line-height:1.4;
}
#screenStart .kPropFatos{ margin:0; padding:0 15px 13px; display:grid; gap:7px }
#screenStart .kPropFatos div{ display:grid; grid-template-columns:78px minmax(0,1fr); gap:10px }
#screenStart .kPropFatos dt{
  color:var(--k-on-stage-mut) !important; font-size:.66rem; font-weight:800; text-transform:uppercase;
}
#screenStart .kPropFatos dd{ margin:0; color:var(--k-on-stage) !important; font-size:.8rem; font-weight:700 }
#screenStart .kPropAcoes{ display:grid; grid-template-columns:1fr 1.3fr; gap:8px; padding:0 15px 15px }
#screenStart .kPropGhost, #screenStart .kPropOk{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:36px; border-radius:var(--k-r);
  font-size:.8rem; font-weight:800;
}
#screenStart .kPropGhost{
  border:1px solid var(--k-stage-line); color:var(--k-on-stage-mut) !important;
}
#screenStart .kPropOk{ background:var(--k-gold); color:#1c1405 !important }

/* --- cena 4: checkout --- */
#screenStart .kCenaCheckout{
  border:1px solid var(--k-stage-line);
  border-radius:var(--k-r);
  background:var(--k-stage2);
  padding:16px;
}
#screenStart .kCkTotal{ text-align:center; padding-bottom:15px; border-bottom:1px solid var(--k-stage-line) }
#screenStart .kCkTotal span{
  display:block; margin-bottom:5px;
  color:var(--k-on-stage-mut) !important; font-size:.64rem; font-weight:800;
  letter-spacing:.12em; text-transform:uppercase;
}
#screenStart .kCkTotal strong{
  display:block; color:var(--k-on-stage) !important;
  font-size:clamp(1.5rem,3vw,1.95rem); font-weight:800; letter-spacing:-.03em;
}
#screenStart .kCkSplit{ padding:15px 0 }
/* barra chapada: a LEI proibe gradiente como base, e aqui o dado e uma
   proporcao simples — 91 contra 9 */
#screenStart .kCkBarra{
  height:8px; border-radius:100px; overflow:hidden;
  background:rgba(201,160,42,.28);
}
#screenStart .kCkBarra i{ display:block; height:100%; background:var(--k-gold) }
#screenStart .kCkLinhas{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:12px }
#screenStart .kCkLinhas b{ display:block; color:var(--k-on-stage) !important; font-size:.95rem; font-weight:800 }
#screenStart .kCkLinhas span{ display:block; margin-top:2px; color:var(--k-on-stage-mut) !important; font-size:.74rem; font-weight:600 }
#screenStart .kCkStatus{
  display:flex; align-items:center; gap:9px;
  padding-top:13px; border-top:1px solid var(--k-stage-line);
  color:var(--k-on-stage-mut) !important; font-size:.8rem; font-weight:700;
}
#screenStart .kCkPonto{
  width:8px; height:8px; flex:0 0 auto; border-radius:100px; background:var(--k-gold);
}

/* --- cena 5: entrega --- */
#screenStart .kCenaEntrega{ display:flex; flex-direction:column; gap:11px }
#screenStart .kEntPrevia{
  position:relative; margin:0;
  aspect-ratio:16 / 9;
  border:1px solid var(--k-stage-line);
  border-radius:var(--k-r);
  background:var(--k-stage2);
  overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
#screenStart .kEntMarca{
  position:absolute;
  color:var(--k-ink) !important;
  opacity:.17;
  font-size:.72rem; font-weight:800; letter-spacing:.16em;
  transform:rotate(-22deg);
  white-space:nowrap;
}
#screenStart .kEntMarca--2{ top:26%; left:-6% }
#screenStart .kEntLinha{
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  padding:9px 12px;
  border:1px solid var(--k-stage-line); border-radius:var(--k-r);
}
#screenStart .kEntLinha b{ color:var(--k-on-stage) !important; font-size:.82rem; font-weight:800 }
#screenStart .kEntLinha span{ color:var(--k-on-stage-mut) !important; font-size:.74rem; font-weight:600 }
#screenStart .kEntLinha--ok{ border-color:rgba(201,160,42,.4); background:rgba(201,160,42,.09) }
#screenStart .kEntBotao{
  margin-top:2px; min-height:38px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:var(--k-r); background:var(--k-gold); color:#1c1405 !important;
  font-size:.84rem; font-weight:800;
}

/* ---- faixa de fatos ---- */
#screenStart .kFluxoFatos{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:1px;
  margin-top:clamp(36px,5vw,58px);
  border:1px solid var(--k-line);
  border-radius:var(--k-r);
  background:var(--k-line);
  overflow:hidden;
}
#screenStart .kFluxoFatos > div{ background:var(--k-surf); padding:20px 22px }
#screenStart .kFluxoFatos strong{
  display:block; margin-bottom:7px;
  color:var(--k-ink) !important; font-size:clamp(1.3rem,2.4vw,1.6rem);
  font-weight:800; letter-spacing:-.03em;
}
#screenStart .kFluxoFatos span{
  display:block; color:var(--k-mut) !important; font-size:.88rem; line-height:1.5;
}

/* ---- telas menores ---- */
@media (max-width:900px){
  #screenStart .kFluxo{ grid-template-columns:1fr }
  /* grudar nao faz sentido numa coluna so: o palco viraria um bloco parado
     cobrindo metade da tela enquanto o texto passa por baixo */
  #screenStart .kFluxoPalco{ position:static; order:-1; margin-bottom:8px }
  #screenStart .kPalcoTela{ aspect-ratio:1 / 1 }
}
@media (max-width:560px){
  #screenStart .kPalcoTela{ aspect-ratio:4 / 5 }
  #screenStart .kPasso{ gap:14px }
  #screenStart .kPassoN{ width:36px; height:36px; font-size:.72rem }
  #screenStart .kCkLinhas{ grid-template-columns:1fr }
}

@media (prefers-reduced-motion:reduce){
  #screenStart .kCena{ transition:none }
  #screenStart .kPassoN{ transition:none }
}
/* ── Catalogo de formatos ────────────────────────────────────────────────────
   Chips a esquerda, detalhe a direita. O detalhe e um palco escuro pelo mesmo
   motivo do resto desta pagina: e onde a midia mora. */
#screenStart .kFmtCatalogo{
  display:grid !important;
  grid-template-columns:minmax(240px,.85fr) minmax(0,1.4fr) !important;
  gap:clamp(20px,3vw,40px) !important;
  align-items:start !important;
}

#screenStart .kFmtGrade{
  display:grid !important;
  grid-template-columns:repeat(auto-fill,minmax(132px,1fr)) !important;
  gap:8px !important;
}

#screenStart .kFmtChip{
  padding:11px 13px !important;
  text-align:left !important;
  border:1px solid var(--k-line) !important;
  border-radius:var(--k-r) !important;
  background:var(--k-surf) !important;
  cursor:pointer !important;
  font:inherit !important;
  transition:border-color .22s var(--k-ease-out), background .22s var(--k-ease-out) !important;
}
#screenStart .kFmtChip:hover{ border-color:var(--k-line2) !important }
#screenStart .kFmtChip b{
  display:block !important;
  color:var(--k-ink) !important;
  font-size:.9rem !important; font-weight:800 !important; letter-spacing:-.01em !important;
}
/* --k-soft (#6b7280) fica em 4.83 no branco e 4.39 no fundo do chip ativo —
   passa num estado e reprova no outro. Um tom mais escuro cobre os dois sem
   ninguem precisar lembrar da diferenca. */
#screenStart .kFmtChip span{
  display:block !important; margin-top:2px !important;
  color:var(--k-mut) !important; font-size:.74rem !important; font-weight:700 !important;
}
/* selecionado: barra dourada + fundo. Nunca so a cor da borda. */
#screenStart .kFmtChip.is-ativo{
  border-color:var(--k-gold-line) !important;
  border-left:3px solid var(--k-gold) !important;
  background:var(--k-surf2) !important;
}
#screenStart .kFmtChip:focus-visible{
  outline:2px solid var(--k-ink) !important; outline-offset:2px !important;
}

#screenStart .kFmtDetalhe{
  padding:clamp(18px,2.6vw,28px) !important;
  border:1px solid var(--k-stage-line) !important;
  border-radius:var(--k-r) !important;
  background:var(--k-stage) !important;
  color:var(--k-on-stage) !important;
  box-shadow:0 20px 50px rgba(17,24,39,.16) !important;
}
#screenStart .kFmtDetHead{
  display:flex !important; align-items:flex-start !important;
  justify-content:space-between !important; gap:20px !important; flex-wrap:wrap !important;
  padding-bottom:14px !important; border-bottom:1px solid var(--k-stage-line) !important;
}
#screenStart .kFmtDetProp{
  display:inline-block !important; margin-bottom:6px !important;
  padding:3px 9px !important; border-radius:100px !important;
  background:rgba(201,160,42,.16) !important;
  border:1px solid rgba(201,160,42,.4) !important;
  color:var(--k-gold-ink) !important;
  font-size:.7rem !important; font-weight:900 !important; letter-spacing:.08em !important;
}
#screenStart .kFmtDetHead h3{
  margin:0 !important; color:var(--k-on-stage) !important;
  font-size:clamp(1.25rem,2.4vw,1.7rem) !important; font-weight:800 !important;
  letter-spacing:-.03em !important; line-height:1.1 !important;
}
#screenStart .kFmtDetMeta{ margin:0 !important; display:grid !important; gap:8px !important }
#screenStart .kFmtDetMeta div{ display:grid !important; gap:2px !important }
#screenStart .kFmtDetMeta dt{
  color:var(--k-on-stage-mut) !important;
  font-size:.66rem !important; font-weight:900 !important;
  letter-spacing:.1em !important; text-transform:uppercase !important;
}
#screenStart .kFmtDetMeta dd{
  margin:0 !important; color:var(--k-on-stage) !important;
  font-size:.86rem !important; font-weight:800 !important;
}
#screenStart .kFmtDetResumo{
  margin:16px 0 0 !important; max-width:56ch !important;
  color:var(--k-on-stage-mut) !important;
  font-size:.98rem !important; line-height:1.55 !important;
}
#screenStart .kFmtDetEntrega{
  margin-top:18px !important; padding-top:16px !important;
  border-top:1px solid var(--k-stage-line) !important;
}
#screenStart .kFmtDetEntrega strong{
  display:block !important; margin-bottom:10px !important;
  color:var(--k-gold-ink) !important;
  font-size:.7rem !important; font-weight:900 !important;
  letter-spacing:.12em !important; text-transform:uppercase !important;
}
#screenStart .kFmtDetEntrega ul{
  margin:0 !important; padding:0 !important; list-style:none !important;
  display:grid !important; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)) !important;
  gap:8px 18px !important;
}
#screenStart .kFmtDetEntrega li{
  position:relative !important; padding-left:18px !important;
  color:var(--k-on-stage) !important; font-size:.88rem !important;
  font-weight:700 !important; line-height:1.4 !important;
}
#screenStart .kFmtDetEntrega li::before{
  content:"" !important; position:absolute !important; left:0 !important; top:.55em !important;
  width:7px !important; height:7px !important; border-radius:2px !important;
  background:var(--k-gold) !important;
}

@media (max-width:860px){
  #screenStart .kFmtCatalogo{ grid-template-columns:1fr !important }
  #screenStart .kFmtGrade{ grid-template-columns:repeat(auto-fill,minmax(118px,1fr)) !important }
}
@media (prefers-reduced-motion:reduce){
  #screenStart .kFmtChip{ transition:none !important }
}
/* O chip ativo troca o fundo para --k-surf2 (#f4f5f7) e isso derruba o cinza
   de 4.83 para 4.39 — reprova por pouco, mas reprova. No estado ativo o
   secundario escurece um passo. */
#screenStart .kFmtChip.is-ativo span{
  color:var(--k-mut) !important;
}