/* ============================================================================
   OREM — landing page

   Duas leis governam este arquivo:

   1. A PRIMEIRA TELA É BRANCA E TEM DUAS ESCOLHAS. Nada de fundo colorido, de
      bolha, de menu comprido, de número piscando. Ilustração de um lado, uma
      frase e dois botões do outro. Quem chega decide baixar ou rolar — mais
      nada compete com isso.

   2. DEPOIS DA PRIMEIRA TELA, A PÁGINA GANHA COR. Cada seção tem fundo próprio,
      curva de transição, personagem e ritmo — porque aí a pessoa não está mais
      decidindo, está lendo.

   Nenhum emoji em lugar nenhum: emoji é desenhado por cada sistema operacional
   de um jeito, e o que fica bonito no Mac vira outra coisa no Android. Todo
   ícone daqui é SVG nosso, no <defs> do topo do HTML.
   ============================================================================ */
:root{
  --laranja:#ff7800;
  --laranja-vivo:#ffa100;
  --laranja-escuro:#d96500;
  --creme:#fff4e8;
  --creme-forte:#ffe6cc;
  --azul:#1b9fd8;
  --tinta:#141a1c;
  --carvao:#3d3d3d;
  --grafite:#767676;
  --borda:#e8e8e8;
  --fonte:'Nunito',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --largura:1140px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:90px}
/* overflow-x:clip, e nunca hidden: "hidden" transforma o body num container de
   rolagem próprio e mata o position:sticky do cabeçalho, que então some ao
   rolar em vez de ficar grudado no topo. "clip" corta igual e não faz isso. */
body{font-family:var(--fonte);font-weight:600;font-size:18px;line-height:1.55;color:var(--grafite);background:#fff;overflow-x:clip}
/* height:auto é obrigatório: as imagens declaram width/height no HTML (para o
   navegador reservar o espaço e a página não pular ao carregar), e sem isto o
   atributo height vira altura fixa em pixel e a imagem estica. */
img{max-width:100%;display:block;height:auto}
.sprite{display:none}
.ic{width:1em;height:1em;fill:currentColor;flex:none}

.faixa{max-width:var(--largura);margin:0 auto;padding:0 24px}
.faixa.apertado{max-width:880px}
section{padding:112px 0;position:relative;overflow:hidden}
section.curto{padding:64px 0 0}
h1,h2,h3,h4{color:var(--carvao);line-height:1.12;letter-spacing:-.025em}
h1{font-size:clamp(30px,3.4vw,42px);font-weight:800;line-height:1.2}
h2{font-size:clamp(31px,4vw,50px);font-weight:900}
h3{font-size:23px;font-weight:800;letter-spacing:-.015em}
p{max-width:54ch;margin-bottom:14px}
p:last-child{margin-bottom:0}
p.maior{font-size:20px}
strong{color:var(--carvao);font-weight:800}
a{color:var(--azul);text-decoration:none;font-weight:800}
.estreito{max-width:740px}
.centrado{margin-left:auto;margin-right:auto;text-align:center}
.centrado p{margin-left:auto;margin-right:auto}
.centro{display:flex;align-items:center;justify-content:center}
.meio{text-align:center}
.meio p{margin-left:auto;margin-right:auto}

.olho{
  display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:900;
  text-transform:uppercase;letter-spacing:.12em;color:var(--laranja);
  background:var(--creme);padding:8px 16px;border-radius:100px;margin-bottom:20px;
}
.olho.claro{background:rgba(255,255,255,.12);color:var(--laranja-vivo)}
.olho.tinge{background:#fff;color:var(--cor);box-shadow:0 0 0 2px var(--cor) inset;transition:color .5s}

/* ---------- movimento ---------- */
.sobe{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.2,.7,.3,1),transform .7s cubic-bezier(.2,.7,.3,1)}
.sobe.vis{opacity:1;transform:none}
.sobe.d1{transition-delay:.08s}.sobe.d2{transition-delay:.16s}
.sobe.d3{transition-delay:.24s}.sobe.d4{transition-delay:.32s}
@media(prefers-reduced-motion:reduce){
  .sobe{opacity:1;transform:none;transition:none}
  *{animation:none!important}
}

/* ---------- topo ----------
   Na primeira tela o cabeçalho é só a marca e uma palavra. O menu inteiro
   aparece quando a abertura sai de cena. */
header{position:sticky;top:0;z-index:60;background:#fff;border-bottom:2px solid transparent;transition:border-color .3s,box-shadow .3s}
header.rolou{border-bottom-color:#f2f2f2;background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(12px)}
.topo{display:flex;align-items:center;justify-content:space-between;height:82px;gap:20px}
.marca{display:flex;align-items:center;gap:11px;font-weight:900;font-size:25px;color:var(--carvao);letter-spacing:-.03em}
.marca img{width:42px;height:42px;border-radius:12px}
.marca.clara{color:#fff;margin-bottom:16px}
.menu{display:none;gap:30px}
header.rolou .menu{display:flex}
.menu a{color:var(--grafite);font-size:16px;font-weight:800;position:relative;padding:4px 0}
.menu a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:3px;background:var(--laranja);border-radius:3px;transition:right .25s}
.menu a:hover::after{right:0}
.atalho{font-size:14px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:var(--grafite)}
.atalho:hover{color:var(--laranja)}
/* Na primeira tela o topo não vende nada: os dois botões de baixar já estão
   ali embaixo, do lado da frase. Assim que a pessoa rola, o convite sobe para
   o topo e fica grudado no alto da tela até o fim da página. */
/* O seletor precisa do "header" na frente: .botao é declarado mais abaixo neste
   arquivo e, com a mesma força, venceria um .topo-cta sozinho — o botão
   apareceria já na primeira tela. */
header .topo-cta{display:none;font-size:13.5px;padding:14px 24px;box-shadow:0 4px 0 var(--laranja-escuro)}
header .topo-cta:active{transform:translateY(3px);box-shadow:0 1px 0 var(--laranja-escuro)}
header.rolou .atalho{display:none}
header.rolou .topo-cta{display:inline-flex}
@media(max-width:940px){header.rolou .menu{display:none}}
@media(max-width:420px){.topo-cta{font-size:12px;padding:13px 16px}.marca{font-size:21px}.marca img{width:36px;height:36px}}

/* ---------- botões ---------- */
.botao,.botao-2{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-weight:900;font-size:15px;text-transform:uppercase;letter-spacing:.06em;
  padding:16px 28px;border-radius:16px;border:none;cursor:pointer;
  transition:transform .08s,box-shadow .08s,background .2s,border-color .2s;
}
.botao{background:var(--laranja);color:#fff;box-shadow:0 5px 0 var(--laranja-escuro)}
.botao:hover{background:#ff8a1f}
.botao:active{transform:translateY(4px);box-shadow:0 1px 0 var(--laranja-escuro)}
.botao-2{background:#fff;color:var(--carvao);border:3px solid var(--borda);box-shadow:0 5px 0 var(--borda)}
.botao-2:hover{border-color:var(--laranja);box-shadow:0 5px 0 var(--creme-forte);color:var(--laranja)}
.botao-2:active{transform:translateY(4px);box-shadow:0 1px 0 var(--borda)}
.grande{width:100%;padding:19px 26px;font-size:16px}
.grande .ic{width:21px;height:21px}
.linha-forte{display:inline-flex;align-items:center;gap:6px;margin-top:18px;color:var(--laranja);font-size:17px}
.linha-forte .ic{width:20px;height:20px;transition:transform .2s}
.linha-forte:hover .ic{transform:translateX(4px)}

/* ---------- botões de loja ----------
   Sumiram na reescrita desta folha, porque a landing tinha trocado os botões da
   App Store por "Criar conta". Voltam aqui: as páginas de conta os usam para
   mandar a pessoa baixar o app depois do cadastro. */
.lojas{display:flex;gap:14px;flex-wrap:wrap}
.loja{
  display:inline-flex;align-items:center;gap:13px;background:var(--tinta);color:#fff;
  padding:13px 24px;border-radius:16px;min-width:212px;box-shadow:0 5px 0 #000;
  transition:transform .08s,box-shadow .08s,background .2s;
}
.loja:hover{background:#232c30;color:#fff}
.loja:active{transform:translateY(4px);box-shadow:0 1px 0 #000}
.loja .ic,.loja svg{width:26px;height:26px;fill:#fff;flex:none}
.loja i{display:block;font-style:normal;font-size:10.5px;text-transform:uppercase;
  letter-spacing:.09em;opacity:.72;font-weight:800;line-height:1.3}
.loja b{display:block;font-size:17px;font-weight:800;line-height:1.15;letter-spacing:-.01em}
.loja.em-breve{background:#e9e9e9;color:#9a9a9a;box-shadow:0 5px 0 #d8d8d8;cursor:default;pointer-events:none}
.loja.em-breve .ic,.loja.em-breve svg{fill:#9a9a9a}
@media(max-width:420px){.loja{min-width:100%;justify-content:center}}

/* ============================================================================
   PRIMEIRA TELA
   ============================================================================ */
.abertura{padding:20px 0 0;display:flex;flex-direction:column;justify-content:space-between;min-height:calc(100vh - 82px)}
.abertura-grade{
  flex:1;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;
  padding-top:10px;padding-bottom:40px;
}
.abertura-arte img{width:100%;max-width:620px;margin:0 auto;
  filter:drop-shadow(0 26px 30px rgba(20,26,28,.10));
  animation:passeia 7.5s ease-in-out infinite}
.abertura-fala{max-width:460px;justify-self:center;text-align:center}
.abertura-selo{display:block;font-size:12.5px;font-weight:900;text-transform:uppercase;letter-spacing:.16em;color:#b8b8b8;margin-bottom:16px}
.abertura-fala h1{color:#3c3c3c;margin-bottom:34px;font-size:clamp(32px,3.7vw,45px);letter-spacing:-.03em}
.abertura-botoes{display:flex;flex-direction:column;gap:14px;max-width:400px;margin:0 auto}
.abertura-nota{font-size:14.5px;font-weight:700;color:#afafaf;margin-top:20px;max-width:none}

/* a tira de nichos, no rodapé da primeira tela */
.tira{
  border-top:2px solid #f2f2f2;display:flex;align-items:center;gap:6px;
  max-width:1180px;margin:0 auto;padding:14px 12px 18px;width:100%;
}
/* "safe center" centraliza quando cabe e volta a alinhar à esquerda quando não
   cabe. Sem o safe, o flex centralizado corta o PRIMEIRO item e ninguém
   consegue rolar até ele — foi o que aconteceu com o Zeca. */
.tira-pista{display:flex;gap:6px;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;flex:1;
  justify-content:center;justify-content:safe center}
.tira-pista::-webkit-scrollbar{display:none}
.tira-pista a{
  display:flex;align-items:center;gap:8px;flex:none;padding:8px 12px 8px 6px;border-radius:14px;
  font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;
  color:var(--grafite);transition:background .2s,color .2s;
}
.tira-pista a:hover{background:var(--creme);color:var(--carvao)}
.tira-pista span{
  width:36px;height:36px;border-radius:50%;flex:none;background:#f6f6f6;
  background-image:var(--img);background-size:250%;background-position:var(--bx) var(--by);
}
.tira-seta{
  width:38px;height:38px;border-radius:50%;border:none;background:#fff;color:#c9c9c9;
  cursor:pointer;display:none;place-items:center;flex:none;transition:color .2s,background .2s;
}
@media(max-width:1180px){.tira-seta{display:grid}}
.tira-seta:hover{background:#f6f6f6;color:var(--carvao)}
.tira-seta .ic{width:24px;height:24px}
.tira-seta[data-lado="-1"] .ic{transform:rotate(180deg)}
@media(max-width:940px){
  .abertura{min-height:0;padding-bottom:0}
  .abertura-grade{grid-template-columns:1fr;gap:6px;padding-bottom:30px}
  .abertura-arte img{max-width:420px}
  .abertura-fala{max-width:520px}
  .tira-pista{justify-content:flex-start}
}

/* ============================================================================
   FUNDOS DAS SEÇÕES
   ============================================================================ */
.creme{background:var(--creme)}
.fundo-claro{background:linear-gradient(180deg,#fff 0%,#fffaf4 100%)}
.arredonda{border-radius:56px 56px 0 0;margin-top:-1px}
/* curva de transição entre uma faixa branca e uma creme */
.sep{display:block;width:100%;height:70px;margin-bottom:-2px}
.sep.vira{transform:rotate(180deg);margin:-2px 0 0}
/* manchas de cor bem suaves, para o branco não ficar chapado */
.bolha{position:absolute;border-radius:50%;background:radial-gradient(circle,var(--t) 0%,rgba(255,255,255,0) 70%);pointer-events:none;z-index:0;transition:background .6s}
.bolha.b-canto{top:-140px;right:-120px;width:560px;height:560px}
.bolha.b-dir{top:10%;right:-200px;width:620px;height:620px}
.bolha.b-esq{bottom:-160px;left:-180px;width:600px;height:600px}
.bolha.b-topo{top:-200px;left:-140px;width:680px;height:680px}
.bolha.b-baixo{bottom:-220px;right:-160px;width:700px;height:700px}
.faixa{position:relative;z-index:1}

/* ---------- números ---------- */
.numeros{background:var(--creme);border-radius:32px;padding:44px 32px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
.numeros b{display:block;font-size:46px;font-weight:900;color:var(--laranja);line-height:1;letter-spacing:-.04em}
.numeros span{display:block;font-size:15px;font-weight:800;color:var(--carvao);margin-top:8px}
@media(max-width:760px){.numeros{grid-template-columns:repeat(2,1fr);gap:32px 16px;padding:36px 20px}.numeros b{font-size:38px}}

/* ---------- dupla ---------- */
/* O vão entre as colunas é largo de propósito. Na referência do Duolingo o
   desenho nunca encosta na palavra: existe um respiro entre os dois, e é ele
   que faz o conjunto parecer arrumado em vez de apertado. */
.dupla{display:grid;grid-template-columns:1fr 1fr;gap:88px;align-items:center}
.dupla.inv .texto{order:2}
@media(max-width:940px){
  .dupla{grid-template-columns:1fr;gap:44px}
  .dupla.inv .texto{order:0}
  section{padding:78px 0}
  p{margin-left:auto;margin-right:auto}
}

/* ---------- personagem em cena ---------- */
/* O balão fica ABAIXO do desenho, nunca por cima: sobreposto, ele cobria os pés
   e as mãos — justo o que dá vida à ilustração. */
.retrato{max-width:380px;margin:0 auto;display:flex;flex-direction:column;align-items:center}
.retrato img{width:100%;filter:drop-shadow(0 24px 26px rgba(20,26,28,.16));
  animation:passeia 6.4s ease-in-out infinite}
.retrato.p-medio img{animation-duration:7.2s;animation-delay:-1.8s}
.p-figura img{animation:passeia 6.8s ease-in-out infinite}
.fecho-pinguim{animation:passeia 5.8s ease-in-out infinite}
.retrato.p-medio{max-width:320px}
.retrato.p-grande{max-width:400px}
.balao{
  position:relative;margin-top:18px;max-width:320px;background:#fff;
  border:3px solid var(--borda);border-radius:20px;padding:14px 20px;text-align:center;
  font-size:15.5px;font-weight:800;color:var(--carvao);line-height:1.35;
  box-shadow:0 10px 24px rgba(20,26,28,.08);
}
.balao::after{
  content:"";position:absolute;left:50%;top:-12px;width:19px;height:19px;margin-left:-9px;
  background:#fff;border-left:3px solid var(--borda);border-top:3px solid var(--borda);
  transform:rotate(45deg);border-radius:5px 0 0 0;
}
.balao.escuro-balao{background:#1b2225;border-color:#2b3336;color:#fff}
.balao.escuro-balao::after{background:#1b2225;border-color:#2b3336}

/* celular com um personagem ao lado.
   O personagem vem grande de propósito: no desenho do topo o pinguim tem quase
   a altura do celular, e é essa proporção que faz os dois parecerem da mesma
   cena. Pequeno demais, vira adesivo colado num anúncio. */
.cena{position:relative;padding-bottom:24px}
/* O celular encosta na borda EXTERNA da coluna e o personagem fica do lado de
   dentro. Assim os dois ficam juntos na mesma cena, e o vão inteiro entre as
   colunas sobra como respiro até o texto. */
.cena .celular{margin:0 0 0 auto}
.dupla.inv .cena .celular{margin:0 auto 0 0}
.acompanha{position:absolute;bottom:-14px;width:340px;z-index:2;
  filter:drop-shadow(0 20px 22px rgba(20,26,28,.20));
  animation:passeia 5.5s ease-in-out infinite}
.acompanha.esq{left:-36px}
.acompanha.dir{right:-36px;animation-delay:-2.4s}
@keyframes passeia{0%,100%{transform:translateY(0) rotate(-1.4deg)}50%{transform:translateY(-13px) rotate(1.4deg)}}
@media(max-width:940px){
  .cena .celular,.dupla.inv .cena .celular{margin:0 auto}
  .acompanha{width:250px}.acompanha.esq{left:-56px}.acompanha.dir{right:-56px}
}
@media(max-width:520px){.acompanha{width:180px}.acompanha.esq{left:-30px}.acompanha.dir{right:-30px}}

/* ---------- celular ilustrado ----------
   As cores saem da própria arte do topo do site: corpo azul-marinho #08307F,
   bisel e botões no azul vivo #3D77FF. Antes era um retângulo cinza de foto,
   que brigava com o traço dos personagens. Agora o celular é desenho também. */
.celular{
  width:264px;position:relative;margin:0 auto;flex:none;padding:13px;
  background:linear-gradient(158deg,#3D77FF 0%,#1450BE 34%,#08307F 100%);
  border-radius:50px;
  box-shadow:inset 0 0 0 4px rgba(255,255,255,.20),
             inset 0 0 0 5px rgba(6,31,90,.55),
             0 26px 36px rgba(8,26,60,.28);
}
/* os três botões da lateral direita saem de um elemento só, repetido por sombra */
.celular::before{
  content:"";position:absolute;right:-5px;top:120px;width:6px;height:60px;
  background:#3D77FF;border-radius:0 6px 6px 0;
  box-shadow:0 80px 0 #3D77FF,0 160px 0 #3D77FF;
}
/* e o de silenciar, do lado esquerdo */
.celular::after{
  content:"";position:absolute;left:-5px;top:106px;width:6px;height:34px;
  background:#3D77FF;border-radius:6px 0 0 6px;
}
.celular img{border-radius:38px;width:100%;box-shadow:0 0 0 3px #061F5A}
.flutua{animation:flutuar 6s ease-in-out infinite}
@keyframes flutuar{0%,100%{transform:translateY(0) rotate(-1.6deg)}50%{transform:translateY(-18px) rotate(1.6deg)}}
.flutua-2{animation:flutuar2 7s ease-in-out infinite}
@keyframes flutuar2{0%,100%{transform:translateY(-10px) rotate(1.8deg)}50%{transform:translateY(8px) rotate(-1.8deg)}}

/* ---------- cartões ---------- */
.grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.cartao{background:#fff;border:3px solid var(--borda);border-radius:24px;padding:26px;transition:transform .2s,border-color .2s,box-shadow .2s}
.cartao:hover{transform:translateY(-6px);border-color:var(--tom,var(--laranja));box-shadow:0 12px 26px rgba(20,26,28,.07)}
.cartao h3{font-size:20px;margin-bottom:8px}
.cartao p{font-size:16px;max-width:none}
.icone{
  width:52px;height:52px;border-radius:16px;display:grid;place-items:center;
  margin-bottom:16px;background:var(--tom-fraco,var(--creme));color:var(--tom,var(--laranja));
}
.icone .ic{width:27px;height:27px}
@media(max-width:940px){.grade{grid-template-columns:1fr!important}}

/* ---------- trilha ---------- */
.trilha-lista{display:flex;flex-direction:column;gap:12px;margin-top:26px}
.degrau{display:flex;gap:18px;align-items:flex-start;padding:18px 20px;border-radius:20px;border:3px solid #fff;background:#fff;transition:border-color .2s,transform .2s}
.degrau:hover{border-color:var(--laranja);transform:translateX(6px)}
.degrau .bola{width:44px;height:44px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:18px}
.degrau h3{font-size:19px;margin-bottom:2px}
.degrau p{font-size:16px;max-width:none}

/* ---------- gatilhos ---------- */
.gatilhos{display:flex;flex-wrap:wrap;gap:11px;align-content:center}
.gatilho{padding:11px 20px;border-radius:100px;font-weight:800;font-size:16px;border:3px solid var(--g);color:var(--g);background:#fff;transition:transform .18s}
.gatilho:hover{transform:translateY(-4px) rotate(-2deg)}

/* ---------- escuro ---------- */
.escuro{background:var(--tinta);color:#c3cbcd;
  background-image:radial-gradient(circle,rgba(255,255,255,.055) 1.3px,transparent 1.3px);
  background-size:26px 26px}
.escuro h2,.escuro h3,.escuro strong{color:#fff}
.escuro .cartao{background:#1b2225;border-color:#2b3336}
.escuro .cartao:hover{border-color:var(--tom)}
.escuro .cartao p{color:#98a3a6}

/* ---------- onda de áudio ---------- */
/* A altura base importa: quem liga "reduzir movimento" no sistema desliga a
   animação, e sem altura própria as barras simplesmente sumiriam da tela. */
.onda{display:flex;align-items:center;gap:5px;height:64px;margin-top:22px}
.onda i{width:6px;height:26px;background:var(--laranja);border-radius:100px;animation:pulsar 1.1s ease-in-out infinite}
@keyframes pulsar{0%,100%{height:12px;opacity:.5}50%{height:52px;opacity:1}}

/* ============================================================================
   PROJETO FRAGMENTADO
   O fundo inteiro é pintado a partir de --cor. Trocar o personagem troca a cor
   da seção — é a troca ficar visível no canto do olho que ensina que ela existe.
   ============================================================================ */
.fragmentado{background:var(--cor-fraca);transition:background .6s ease}
.p-escolha{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:38px 0 42px}
.p-bolinha{
  border:none;background:none;cursor:pointer;font-family:inherit;
  display:flex;flex-direction:column;align-items:center;gap:8px;padding:6px;
}
.p-bolinha span{
  width:78px;height:78px;border-radius:50%;display:block;background-color:#fff;
  background-image:var(--img);background-size:250%;background-position:var(--bx) var(--by);
  box-shadow:0 0 0 3px #fff inset,0 0 0 3px rgba(0,0,0,.06);
  transition:transform .25s,box-shadow .25s;filter:grayscale(.55) opacity(.75);
}
.p-bolinha b{font-size:14px;font-weight:900;color:#a8a8a8;letter-spacing:-.01em;transition:color .25s}
.p-bolinha:hover span{transform:translateY(-4px);filter:none}
.p-bolinha.on span{filter:none;transform:translateY(-4px) scale(1.08);box-shadow:0 0 0 3px #fff inset,0 0 0 4px var(--c),0 10px 20px rgba(20,26,28,.14)}
.p-bolinha.on b{color:var(--c)}
@media(max-width:520px){.p-bolinha span{width:60px;height:60px}.p-bolinha b{font-size:12px}}

.p-palco{position:relative}
/* Colunas de largura fixa nos dois lados: o personagem sempre ocupa a mesma
   caixa, então a troca de guia não desloca o texto nem muda o tamanho do
   desenho de um para o outro. */
.p-cartela{display:none;grid-template-columns:380px 1fr;gap:56px;align-items:center;
  background:#fff;border-radius:36px;padding:48px 52px;box-shadow:0 20px 50px rgba(20,26,28,.08)}
.p-cartela.on{display:grid;animation:entra .5s cubic-bezier(.2,.7,.3,1)}
@keyframes entra{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.p-figura{height:380px;display:flex;align-items:flex-end;justify-content:center}
.p-figura img{width:100%;max-width:380px;filter:drop-shadow(0 20px 24px rgba(20,26,28,.16))}
.p-tag{display:inline-block;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.11em;
  color:var(--cor);background:var(--cor-fraca);padding:7px 14px;border-radius:100px;transition:color .5s,background .5s}
.p-ficha h3{font-size:38px;font-weight:900;margin:14px 0 6px}
.p-frase{font-size:20px;font-weight:800;color:var(--cor);max-width:none;margin-bottom:16px;transition:color .5s}
.p-ficha p{font-size:16.5px;max-width:none}
.p-linha{margin-top:20px;padding-top:18px;border-top:2px solid #f2f2f2}
.p-linha h4{font-size:12.5px;font-weight:900;text-transform:uppercase;letter-spacing:.11em;color:#b4b4b4;margin-bottom:7px}
.p-gancho{font-weight:800;color:var(--carvao);font-size:17px!important}
@media(max-width:940px){
  .p-cartela{grid-template-columns:1fr;gap:22px;padding:30px 24px;text-align:center}
  .p-ficha p{margin-left:auto;margin-right:auto}
  .p-linha{text-align:left}
}

/* ---------- valores ---------- */
.valores{background:var(--creme);border-radius:36px;padding:64px 52px;position:relative;overflow:hidden}
/* no alto e à direita, onde o título deixa espaço vazio — embaixo ele cobria
   o texto do quarto valor */
.valores-pinguim{position:absolute;right:34px;top:24px;width:210px;pointer-events:none}
@media(max-width:1080px){.valores-pinguim{width:150px;right:10px;opacity:.5}}
.grade-valores{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:38px;position:relative}
.valor{display:flex;gap:16px}
.valor .marca-v{width:34px;height:34px;border-radius:11px;background:var(--laranja);color:#fff;font-weight:900;display:flex;align-items:center;justify-content:center;flex:none;font-size:16px}
.valor h3{font-size:19px;margin-bottom:5px}
.valor p{font-size:16px;max-width:none}
@media(max-width:940px){.grade-valores{grid-template-columns:1fr}.valores{padding:44px 26px}.valores-pinguim{display:none}}

/* ---------- ambição ---------- */
.elenco{margin-top:52px}
/* width:100% junto do max-width, senão a imagem sai pelos 1300px dela e estoura
   a tela do celular — o max-width sozinho substitui o max-width:100% global. */
.elenco img{width:100%;max-width:820px;margin:0 auto;filter:drop-shadow(0 26px 30px rgba(20,26,28,.13))}

/* ---------- planos ---------- */
/* Sem align-items:start os três cartões esticam até a altura do mais alto, e o
   flex:1 na lista empurra os botões para a mesma linha lá embaixo. Antes cada
   um terminava numa altura, e a diferença ficava gritante. */
.planos{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:44px}
.plano{background:#fff;border:3px solid var(--borda);border-radius:28px;padding:34px 30px;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.plano:hover{transform:translateY(-6px);box-shadow:0 14px 30px rgba(20,26,28,.07)}
.plano.top{border-color:var(--laranja);box-shadow:0 8px 0 var(--creme-forte)}
.eti{display:inline-flex;align-items:center;height:28px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;padding:0 14px;border-radius:100px;margin-bottom:16px;background:#f2f2f2;color:var(--grafite);align-self:flex-start}
.eti.on{background:var(--laranja);color:#fff}
.plano h3{font-size:21px}
/* altura fixa no preço: "R$ 0" e "R$ 49,90 /mês" ocupam a mesma faixa, então as
   listas dos três cartões começam na mesma linha */
.preco{display:flex;align-items:baseline;gap:6px;height:56px;font-size:38px;font-weight:900;color:var(--carvao);margin-top:12px;letter-spacing:-.04em}
.preco small{font-size:15px;font-weight:800;color:var(--grafite);letter-spacing:0}
.plano ul{list-style:none;margin:0;padding-top:22px;border-top:2px solid #f4f4f4;flex:1}
.plano li{font-size:16px;padding-left:28px;position:relative;margin-bottom:11px}
.plano .botao,.plano .botao-2{margin-top:26px;justify-content:center}
@media(max-width:940px){.planos{grid-template-columns:1fr}}
.plano li::before{content:"";position:absolute;left:0;top:6px;width:17px;height:17px;background:var(--laranja);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat}

/* ---------- perguntas ---------- */
details{border:3px solid #fff;background:#fff;border-radius:20px;padding:22px 26px;margin-bottom:14px;transition:border-color .2s}
details[open]{border-color:var(--laranja)}
summary{cursor:pointer;font-size:19px;font-weight:800;color:var(--carvao);list-style:none;display:flex;justify-content:space-between;gap:18px;align-items:center}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--laranja);font-weight:900;font-size:27px;line-height:1;flex:none;transition:transform .2s}
details[open] summary::after{transform:rotate(45deg)}
details p{margin-top:14px;font-size:16.5px;max-width:none}

/* ---------- fecho ---------- */
.fecho{background:linear-gradient(180deg,#fff 0%,var(--creme) 100%);padding-bottom:96px}
.fecho-pinguim{width:170px;margin:0 auto 26px;filter:drop-shadow(0 18px 20px rgba(20,26,28,.14))}
.fecho .abertura-botoes{max-width:400px}

/* ---------- rodapé ---------- */
footer{background:var(--laranja);color:#fff;padding:72px 0 40px}
footer h4{font-size:14px;text-transform:uppercase;letter-spacing:.09em;margin-bottom:16px;font-weight:900}
footer a{color:#ffe9d2;font-weight:700;font-size:16.5px}
footer a:hover{color:#fff}
.rodape{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:44px}
.rodape-frase{color:#ffe9d2;max-width:36ch}
.pilha{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.rodape-fim{border-top:2px solid rgba(255,255,255,.3);margin-top:48px;padding-top:24px;font-size:15px;color:#ffe9d2;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
@media(max-width:940px){.rodape{grid-template-columns:1fr;gap:32px}}

/* ============================================================================
   DOCUMENTO LEGAL (privacidade e termos)
   Mesma tipografia e mesmas cores do resto do site. Linha mais larga e mais
   espaçada que o normal: é texto para ler inteiro, não para varrer com o olho.
   ============================================================================ */
.doc-topo{background:var(--creme);padding:56px 0 48px;text-align:center}
.doc-topo h1{font-size:clamp(32px,4.4vw,50px);margin-bottom:12px}
.doc-topo .data{font-size:14.5px;font-weight:800;color:var(--grafite);margin:0 auto}
.doc{max-width:760px;margin:0 auto;padding:52px 24px 90px}
.doc h2{font-size:26px;margin:44px 0 14px;display:flex;align-items:flex-start;gap:14px}
.doc h2:first-of-type{margin-top:0}
.doc h2 b{width:34px;height:34px;border-radius:11px;background:var(--laranja);color:#fff;
  font-size:16px;font-weight:900;display:grid;place-items:center;flex:none;margin-top:2px}
.doc h3{font-size:19px;margin:26px 0 8px}
.doc p,.doc li{font-size:17px;line-height:1.65;max-width:none}
.doc p{margin-bottom:14px}
.doc ul{list-style:none;margin:0 0 18px}
.doc li{padding-left:26px;position:relative;margin-bottom:9px}
.doc li::before{content:"";position:absolute;left:2px;top:11px;width:8px;height:8px;
  border-radius:50%;background:var(--laranja)}
.doc .resumo{background:var(--creme);border-radius:24px;padding:30px 32px;margin-bottom:40px}
.doc .resumo h2{margin:0 0 12px;font-size:21px}
.doc .resumo h2 b{width:28px;height:28px;font-size:14px}
.doc .resumo li{font-size:16.5px}
.doc .destaque{background:#fff;border:3px solid var(--creme-forte);border-radius:20px;padding:22px 26px;margin:22px 0}
.doc .destaque p:last-child{margin-bottom:0}
.doc .aviso{border-left:6px solid var(--laranja);padding:4px 0 4px 20px;margin:22px 0}
.doc a{border-bottom:2px solid var(--creme-forte)}
.doc a:hover{border-bottom-color:var(--laranja)}
@media(max-width:640px){.doc{padding:36px 22px 70px}.doc h2{font-size:22px}.doc p,.doc li{font-size:16.5px}}

/* ============================================================================
   CELULAR — o ajuste fino, com a referência do Duolingo mobile

   Tudo aqui vive dentro de @media, então o desktop não muda uma vírgula.

   O que a referência faz e a gente não fazia:
   1. No celular ela CENTRALIZA olho, título e texto de cada seção. A gente
      mantinha tudo à esquerda, que é certo no desktop de duas colunas e vira
      um bloco desalinhado quando as colunas viram uma.
   2. O texto dela encolhe mais do que o título. Linha comprida em tela estreita
      cansa, e 20px de corpo em 430px de largura viram um paredão.
   3. Os desenhos dela respiram. Os nossos ocupavam quase a largura toda e
      alguns saíam cortados na borda.
   ============================================================================ */

@media(max-width:940px){
  /* ---------- o texto de cada seção vai para o meio ---------- */
  .texto,
  #planos .estreito,
  .faixa.apertado > .sobe{text-align:center}
  .texto .gatilhos,
  .texto .onda,
  .texto .lojas{justify-content:center}

  /* o que é lista continua alinhado à esquerda: número de um lado, texto do
     outro, centralizar quebraria a leitura */
  .texto .degrau,
  .texto .trilha-lista,
  details{text-align:left}

  /* ---------- cartão ---------- */
  .cartao{text-align:center;padding:24px 22px}
  .cartao .icone{margin-left:auto;margin-right:auto}

  /* ---------- respiro entre seções ---------- */
  section{padding:64px 0}
  .faixa{padding:0 26px}
  .dupla{gap:36px}
}

@media(max-width:600px){
  /* ---------- tipografia ----------
     O título quase não encolhe; o corpo encolhe bastante. É a proporção da
     referência, e é ela que faz o texto parecer arejado em vez de apertado. */
  h1{font-size:30px}
  h2{font-size:29px;line-height:1.18}
  h3{font-size:19px}
  p{font-size:16.5px;line-height:1.6}
  p.maior{font-size:17.5px}
  .cartao h3{font-size:18px}
  .cartao p,.degrau p,.valor p{font-size:15.5px}
  .olho{font-size:11.5px;padding:7px 14px;margin-bottom:16px}
  .abertura-selo{font-size:11.5px;letter-spacing:.14em}

  /* ---------- imagens ----------
     Menores do que estavam: a arte precisa caber com folga, e o título precisa
     de presença ao lado dela. */
  .abertura-arte img{max-width:330px}
  .retrato,.retrato.p-medio,.retrato.p-grande{max-width:270px}
  .balao{font-size:14.5px;padding:12px 16px;max-width:290px}
  .elenco img{max-width:100%}
  .fecho-pinguim{width:130px}

  /* o celular e o personagem: menores, e o personagem inteiro dentro da tela */
  .celular{width:226px;padding:11px}
  .celular img{border-radius:32px}
  .celular::before{top:100px;height:52px;box-shadow:0 66px 0 #3D77FF,0 132px 0 #3D77FF}
  .celular::after{top:88px;height:30px}
  .acompanha{width:162px;bottom:-8px}
  .acompanha.esq{left:0}
  .acompanha.dir{right:0}

  /* ---------- botões ---------- */
  .botao,.botao-2{font-size:14px;padding:15px 22px}
  .grande{padding:17px 20px;font-size:15px}
  .abertura-botoes{gap:12px}

  /* ---------- blocos ---------- */
  .numeros{padding:30px 18px;border-radius:26px}
  .numeros b{font-size:34px}
  .numeros span{font-size:13.5px}
  .valores{padding:38px 22px;border-radius:28px}
  .plano{padding:28px 24px}
  .degrau{padding:15px 16px}
  .arredonda{border-radius:38px 38px 0 0}
  .sep{height:44px}
  summary{font-size:17px}
  details{padding:18px 20px}
}

/* ============================================================================
   CELULAR — segunda passada

   1. A primeira tela fica com o mínimo: marca, desenho, frase e duas escolhas.
      A tira de nichos sai. Ela é ótima no desktop, onde sobra largura no rodapé
      da dobra, e no celular vira uma quarta coisa competindo por atenção numa
      tela que deveria ter só uma decisão.
   2. A proporção entre personagem e celular estava errada: o desenho tinha
      metade da altura que tem no desktop, e parecia um adesivo colado ao lado
      do aparelho em vez de alguém em pé ao lado dele.
   ============================================================================ */

@media(max-width:940px){
  /* a abertura ocupa a tela inteira e nada mais aparece nela */
  .abertura{
    min-height:calc(100vh - 78px);
    min-height:calc(100svh - 78px);   /* svh desconta a barra do navegador */
    justify-content:center;padding-bottom:26px;
  }
  /* sem o flex:1 o bloco para de esticar, e aí o justify-content:center
     centraliza de verdade em vez de empurrar tudo para baixo */
  .abertura-grade{flex:0 1 auto;padding-bottom:0}
  .tira{display:none}
}

@media(max-width:600px){
  /* ---------- primeira tela mais enxuta ---------- */
  .abertura-arte img{max-width:250px}
  .abertura-fala h1{font-size:28px;margin-bottom:26px}
  .abertura-botoes{max-width:330px}
  .grande{padding:15px 18px;font-size:14px}
  .abertura-nota{font-size:13.5px;margin-top:16px}

  /* ---------- personagem e celular na mesma escala ----------
     O celular encolhe um pouco e o personagem cresce bastante: assim ele volta
     a ter perto de 60% da altura do aparelho, que é a proporção do desktop e a
     do desenho do topo do site. */
  .celular{width:210px}
  .celular::before{top:92px;height:46px;box-shadow:0 60px 0 #3D77FF,0 120px 0 #3D77FF}
  .celular::after{top:82px;height:26px}
  /* o aparelho encosta à direita e o personagem fica à esquerda dele, sempre,
     independente do lado que ocupa no desktop */
  .cena .celular,.dupla.inv .cena .celular{margin:0 0 0 auto}
  .acompanha{width:265px;bottom:-10px}
  .acompanha.esq,.acompanha.dir{left:-16px;right:auto}
}
