/* dig-me.ai — mobile first: parte dos 375 px; @media (min-width) só amplia. Alvos de toque ≥ 44 px.
   04/11 (Renata, Master da Escutatória): Violeta #6B4EFF · Damasco #FFB37A · Blush #FFD9E4 · Turquesa #AEE9E0 · Tinta #1F1B3A · Linho #FFF8F1;
   títulos Bricolage Grotesque, textos DM Sans (as fontes moram em /fontes — nada carregado de fora). Os 4 temas são as combinações da logo;
   os nomes internos ficam os de antes (o que a pessoa já escolheu continua valendo): jardim = Escutatória · entardecer = Fresco ·
   colo = Quente · noite = Noite. O Dig é sempre Damasco (é o personagem); muda o que está em volta. */
@font-face { font-family: "Bricolage Grotesque"; src: url("/fontes/bricolage-grotesque.woff2") format("woff2"); font-weight: 500 800; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url("/fontes/dm-sans.woff2") format("woff2"); font-weight: 400 700; font-display: swap; }
:root, [data-tema="jardim"] {
  /* 07/11 (Renata, "Paleta de cores, sugestão chat"): Marfim quente #FAF7F2 no fundo, Lilás claro #E9DDFB nos balões, Violeta #7458CE nos
     controles, Branco #FFFFFF, Grafite #292535 no texto; Damasco e Verde-água pastel #DDF0EB só em detalhes. Vale para o tema Escutatória (o padrão). */
  --p:#7458CE; --sobre-p:#fff; --p2:#F6F2FE; --bg:#FAF7F2; --sup:#fff; --t:#292535; --c:#5C566B; --linha:#ECE5DA;
  --eu:#E9DDFB; --sobre-eu:#292535; --acento:#FFD9E4; --folha:#7458CE; --folha2:#DDF0EB; --corpo:#FFB37A; --corpo2:#F2955A; --tronco:#8A6A9E;
  --chao:#F7BFD0; --jardim:#FFD9E4; --faixa:#DDF0EB; --sobre-faixa:#292535; --bochecha:#FF9EB8; --traco:#1F1B3A; --ouro:#FFB37A;
  --simbolo-a:#6B4EFF; --simbolo-b:#FFB37A; --simbolo-meio:#1F1B3A;
  --topo:var(--sup); --sobre-topo:var(--t); --amigo:var(--sup); --sobre-amigo:var(--t); --acao-amigo:var(--p);   /* 09/11: o que cada tema pinta à sua maneira */
  --aviso:#FFF1E4; --aviso-l:#FFD3B0; --ok:#1E7F5C; --erro:#C4261D; --sombra:rgba(31,27,58,.12); --fundo-menu:rgba(31,27,58,.45);
}
/* 09/11 (Douglas + pranchas 01–03 da Renata): o Escutatória fica; os 3 que não foram validados viram Claro (01), Lilás (03) e Escuro (02).
   Os nomes internos ficam (quem tinha Fresco cai no Claro, Quente no Lilás, Noite no Escuro). Damasco pastel #F9DFC9 = voz e detalhes; Verde-água #DDF0EB = ajuda. */
[data-tema="entardecer"] {      /* Claro: base marfim, topo lilás, balão da pessoa violeta, do Dig lilás claro */
  --p:#7458CE; --sobre-p:#fff; --p2:#F6F2FE; --bg:#FAF7F2; --sup:#fff; --t:#292535; --c:#5C566B; --linha:#ECE5DA;
  --topo:#D9C8EE; --sobre-topo:#292535; --eu:#7458CE; --sobre-eu:#fff; --amigo:#E9DDFB; --sobre-amigo:#292535; --acao-amigo:#6447BF;
  --acento:#F9DFC9; --folha:#7458CE; --folha2:#DDF0EB; --chao:#E9DDFB; --jardim:#E9DDFB; --faixa:#DDF0EB; --sobre-faixa:#292535;
  --simbolo-a:#7458CE; --simbolo-b:#F9DFC9;
}
[data-tema="colo"] {            /* Lilás: o lilás no fundo, marfim nos balões do Dig (o mauve do 03 escurecido: #8A6AA8 dava 4,46:1 com branco) */
  --p:#7D5D9C; --sobre-p:#fff; --p2:#F3ECF7; --bg:#F3EBF6; --sup:#FAF7F2; --t:#292535; --c:#5C566B; --linha:#E2D4EA;
  --topo:#7D5D9C; --sobre-topo:#fff; --eu:#7D5D9C; --sobre-eu:#fff; --amigo:#FAF7F2; --sobre-amigo:#292535; --acao-amigo:#7D5D9C;
  --acento:#F9DFC9; --folha:#7D5D9C; --folha2:#DDF0EB; --chao:#E4D3EE; --jardim:#E4D3EE; --faixa:#DDF0EB; --sobre-faixa:#292535;
  --simbolo-a:#7D5D9C; --simbolo-b:#F9DFC9;
}
[data-tema="noite"] {           /* Escuro: grafite no fundo; lilás, branco e marfim nas áreas de leitura */
  --p:#A795EC; --sobre-p:#292535; --p2:#3B3150; --bg:#292535; --sup:#352E45; --t:#FAF7F2; --c:#CFC3E3; --linha:#463C5C;
  --topo:#352E45; --sobre-topo:#FAF7F2; --eu:#7458CE; --sobre-eu:#fff; --amigo:#E9DDFB; --sobre-amigo:#292535; --acao-amigo:#6447BF;
  --acento:#F9DFC9; --folha:#A795EC; --folha2:#DDF0EB; --tronco:#C9A6D8; --chao:#3B3150; --jardim:#3B3150;
  --faixa:#24474A; --sobre-faixa:#E6FAF6; --traco:#292535; --simbolo-a:#A795EC; --simbolo-b:#F9DFC9; --simbolo-meio:#FAF7F2;
  --aviso:#3A2E2A; --aviso-l:#6B4A36; --ok:#7FD6B4; --erro:#FFA49C; --sombra:rgba(0,0,0,.45); --fundo-menu:rgba(0,0,0,.6);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; height: 100%; }
body { font-family: "DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; background: var(--bg); color: var(--t); font-size: 16px; line-height: 1.5;
       min-height: 100%; display: flex; flex-direction: column; transition: background-color .3s; }
body.com-gaveta { overflow: hidden; }
h1, h2, .serifa { font-family: "Bricolage Grotesque", "DM Sans", system-ui, sans-serif; font-weight: 800; letter-spacing: -.02em; }

/* topo: marca (antes de entrar) ou o Dig (depois) + menu */
.topo { position: sticky; top: 0; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 8px;
        padding: calc(6px + env(safe-area-inset-top, 0)) 10px 6px 12px; background: var(--topo); color: var(--sobre-topo); min-height: 60px; }
.marca { display: inline-flex; align-items: center; gap: 8px; background: none; border: 0; font: 800 1.3rem/1 "Bricolage Grotesque", system-ui, sans-serif;
         color: var(--t); min-height: 44px; padding: 0 4px; letter-spacing: -.02em; text-decoration: none; }
.marca em { font-style: normal; } .marca span { color: var(--p); }
.simbolo { width: 34px; height: 22px; flex: 0 0 34px; } .simbolo .a { fill: var(--simbolo-a); } .simbolo .b { fill: var(--simbolo-b); } .simbolo .m { fill: var(--simbolo-meio); }
.quem { display: flex; align-items: center; gap: 10px; background: none; border: 0; color: var(--t); min-height: 44px; text-align: left; padding: 0; }
.quem svg { width: 42px; height: 42px; flex: 0 0 42px; }
.quem b { display: block; font: 700 1.02rem/1.15 "Bricolage Grotesque", system-ui, sans-serif; } .quem small { color: var(--c); font-size: .78rem; }
.btn-menu { width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid var(--linha); background: var(--sup); color: var(--t); font-size: 1.25rem; }

main { flex: 1; width: 100%; max-width: 560px; margin: 0 auto; padding: 16px 16px calc(16px + env(safe-area-inset-bottom, 0)); }
h1 { font-size: 1.6rem; margin: 6px 0 4px; line-height: 1.2; }
.sub { color: var(--c); margin-bottom: 16px; }
.cartao { background: var(--sup); border: 1px solid var(--linha); border-radius: 20px; padding: 16px; margin-bottom: 12px; }
label { display: block; font-size: .9rem; color: var(--c); margin: 14px 0 6px; }
input[type=text], input[type=email], input[type=password], input[type=tel], input[type=date], textarea, select {
  width: 100%; min-height: 48px; padding: 10px 14px; font: inherit; font-size: 16px; border: 1.5px solid var(--linha); border-radius: 14px; background: var(--sup); color: var(--t); }
input:focus-visible, button:focus-visible, textarea:focus-visible, select:focus-visible, a:focus-visible { outline: 3px solid var(--folha2); outline-offset: 2px; }
.senha { position: relative; } .senha input { padding-right: 70px; }
.senha .ver { position: absolute; right: 2px; top: 2px; min-height: 44px; min-width: 60px; background: none; border: 0; color: var(--p); font: inherit; font-size: .9rem; font-weight: 600; }
button { font: inherit; cursor: pointer; }
.prim { width: 100%; min-height: 50px; margin-top: 18px; border: 0; border-radius: 999px; background: var(--p); color: var(--sobre-p); font-weight: 700; }
.prim[disabled] { opacity: .6; }
.sec { width: 100%; min-height: 48px; margin-top: 10px; border: 1.5px solid var(--linha); border-radius: 999px; background: var(--sup); color: var(--t); }
.perigo { color: var(--erro); border-color: color-mix(in srgb, var(--erro) 35%, var(--linha)); }
.link { min-height: 44px; padding: 0 8px; background: none; border: 0; color: var(--p); font-size: .95rem; font-weight: 600; }
.links { display: flex; flex-direction: column; align-items: center; margin-top: 12px; }
.erro { color: var(--erro); font-size: .92rem; margin-top: 12px; min-height: 1.2em; }
.conversa > .erro { margin: 2px 0 0; min-height: 0; text-align: center; }   /* na conversa: só ocupa lugar quando tem aviso */
.ok { color: var(--ok); font-size: .92rem; margin-top: 12px; }
.dica { font-size: .84rem; color: var(--c); margin-top: 6px; }
.mini { font-size: .84rem; color: var(--c); }
.aceite { display: flex; gap: 10px; align-items: flex-start; margin-top: 14px; font-size: .92rem; }
.aceite input { width: 24px; height: 24px; margin-top: 2px; flex: 0 0 24px; accent-color: var(--p); }
.aceite label { margin: 0; color: var(--t); font-size: .92rem; }
.passos { display: flex; gap: 6px; margin: 4px 0 14px; } .passos span { flex: 1; height: 4px; border-radius: 4px; background: var(--linha); }
.passos span.feito { background: var(--p); }
.aviso { background: var(--aviso); border: 1px solid var(--aviso-l); border-radius: 16px; padding: 12px 14px; font-size: .9rem; margin-bottom: 12px; }
.aviso button { margin-top: 6px; }
.lista > div { padding: 12px 0; border-top: 1px solid var(--linha); display: flex; align-items: center; gap: 8px; }
.lista > div:first-child { border-top: 0; } .lista .cresce { flex: 1; min-width: 0; }
.este { font-size: .78rem; color: var(--ok); font-weight: 600; }

/* tela de entrar: o Dig numa mancha macia */
.boas-vindas { display: flex; justify-content: center; margin: 4px 0 6px; }
.boas-vindas svg { width: 190px; height: auto; }

/* conversa */
.conversa { display: flex; flex-direction: column; min-height: calc(100dvh - 60px - 32px); }
.falas { flex: 1; display: flex; flex-direction: column; gap: 10px; padding-bottom: 12px; }
.fala { max-width: 86%; padding: 10px 14px; border-radius: 20px; white-space: pre-wrap; overflow-wrap: anywhere; }
.fala.amigo { align-self: flex-start; background: var(--amigo); color: var(--sobre-amigo); border: 1px solid var(--linha); border-bottom-left-radius: 6px; }
.fala.eu { align-self: flex-end; background: var(--eu); color: var(--sobre-eu); border-bottom-right-radius: 6px; }
.fala.pensando { color: var(--c); font-style: italic; }
.boas { text-align: center; color: var(--c); padding: 24px 8px; }
.compor { position: sticky; bottom: 0; display: flex; gap: 8px; align-items: flex-end; background: var(--bg); padding: 8px 0 calc(4px + env(safe-area-inset-bottom, 0)); }
.compor textarea { min-height: 48px; max-height: 160px; resize: none; overflow-y: hidden; border-radius: 24px; padding: 12px 16px; }
.compor button { flex: 0 0 48px; height: 48px; border-radius: 50%; border: 0; background: var(--p); color: var(--sobre-p); font-size: 1.2rem; }
.compor button[disabled] { opacity: .5; }
.compor .icone { flex: 0 0 44px; width: 44px; height: 48px; border-radius: 50%; border: 1.5px solid var(--linha); background: var(--sup); color: var(--p); font-size: 1.2rem; }
.compor .icone.gravando { background: var(--erro); border-color: var(--erro); color: #fff; }
/* os números de emergência: alvo de 44 px e sempre à vista; no Farol vermelho ganham destaque */
.ajuda { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 8px; text-align: center; font-size: .82rem; color: var(--c); margin-top: 4px; }
a.ligar { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border-radius: 999px; border: 1.5px solid var(--linha);
  background: var(--sup); font-weight: 600; font-size: .9rem; text-decoration: none; margin: 2px 2px; color: var(--p); }
.ajuda.destaque a.ligar { background: var(--p); color: var(--sobre-p); border-color: var(--p); font-size: 1rem; min-height: 50px; padding: 0 18px; }
a.link { display: inline-flex; align-items: center; min-height: 44px; }
/* AJUDA (02/11): um botão só na conversa; abre os 4 números (cada um liga direto) + avisar o contato */
.ajuda-btn { min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1.5px solid var(--linha); background: var(--sup); color: var(--p); font-weight: 700; font-size: .92rem; }
/* 07/11 (Renata): no tema padrão o "Precisa de ajuda?" é verde-água; o violeta fica um tom mais escuro porque #7458CE no verde-água dá 4,4:1 */
:root:not([data-tema]) .ajuda-btn, [data-tema="jardim"] .ajuda-btn { background: var(--faixa); border-color: #BFE3D8; color: #6447BF; }
.numeros { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.numero { display: flex; flex-direction: column; justify-content: center; min-height: 76px; padding: 10px 12px; border-radius: 16px; border: 1.5px solid var(--linha);
          background: var(--sup); color: var(--t); text-decoration: none; line-height: 1.25; }
.numero b { font-size: 1.15rem; color: var(--p); } .numero span { font-weight: 600; font-size: .92rem; } .numero small { color: var(--c); font-size: .78rem; }
.pedir { width: 100%; min-height: 52px; margin-top: 10px; border: 0; border-radius: 16px; background: var(--p); color: var(--sobre-p); font-weight: 700; font-size: .95rem; padding: 0 14px; }
.pedir[disabled] { opacity: .6; }
.faixa { background: var(--faixa); color: var(--sobre-faixa); border-radius: 14px; padding: 10px 14px; font-size: .92rem; margin: 10px 0 0; }
.ajuda-agora { margin-top: 10px; } .ajuda-agora > strong { display: block; font-size: .95rem; }
.texto-legal h2 { font-size: 1.05rem; margin: 22px 0 6px; }
.texto-legal p, .texto-legal li { margin-bottom: 8px; }
.texto-legal ul { padding-left: 20px; }
.texto-legal a, .aceite a { color: var(--p); }
.fala .ouvir { display: block; margin-top: 6px; min-height: 44px; padding: 0 12px; background: none; border: 1px solid var(--linha);
  border-radius: 22px; color: var(--p); font-size: .85rem; font-weight: 600; }
.fala .acoes-fala { display: flex; gap: 6px; margin-top: 6px; } .fala .acoes-fala .ouvir { margin-top: 0; }
.fala .reportar { flex: 0 0 44px; min-height: 44px; background: none; border: 1px solid var(--linha); border-radius: 22px; color: var(--c); font-size: .95rem; }
.voltar-fixo { position: sticky; top: 60px; z-index: 2; background: var(--bg); padding: 8px 0; margin: -8px 0 4px; }
.voltar { width: 100%; min-height: 48px; border: 0; border-radius: 999px; background: var(--p2); color: var(--p); font-weight: 700; font-size: 1rem; }
.modo-voz { position: sticky; bottom: 0; display: flex; flex-direction: column; gap: 10px; align-items: stretch; text-align: center; background: var(--p2);
  border-radius: 20px; padding: 16px; margin-top: 8px; font-weight: 600; color: var(--p); }
.mv-nivel { height: 8px; border-radius: 8px; background: var(--sup); overflow: hidden; } .mv-nivel span { display: block; height: 100%; width: 0; background: var(--p); transition: width .08s; }

/* aparência: os 4 temas */
.temas { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 10px; }
.tema { min-height: 64px; border-radius: 16px; border: 2px solid var(--linha); background: var(--sup); color: var(--t); display: flex; align-items: center; gap: 10px; padding: 8px 12px; text-align: left; font-weight: 600; font-size: .92rem; }
.tema[aria-pressed="true"] { border-color: var(--p); box-shadow: 0 0 0 2px var(--p2); }
.tema .amostra { width: 40px; height: 26px; flex: 0 0 40px; }   /* 04/11: cada tema mostra a SUA combinação da logo */

/* MENU: gaveta que desliza da direita, com o jardim no topo */
.gaveta-fundo { position: fixed; inset: 0; background: var(--fundo-menu); z-index: 10; animation: aparece .2s ease-out; }
.gaveta { position: fixed; top: 0; right: 0; bottom: 0; width: min(88vw, 360px); z-index: 11; background: var(--bg); display: flex; flex-direction: column;
          padding: calc(10px + env(safe-area-inset-top, 0)) 14px calc(14px + env(safe-area-inset-bottom, 0)); overflow-y: auto; box-shadow: -10px 0 30px var(--sombra);
          animation: desliza .22s ease-out; }
.gaveta > * { flex-shrink: 0; }   /* tela baixa (320×568): a gaveta ROLA; nada encolhe (o ✕ tinha caído para 31 px) */
@keyframes desliza { from { transform: translateX(40px); opacity: .5; } to { transform: none; opacity: 1; } }
@keyframes aparece { from { opacity: 0; } to { opacity: 1; } }
.gaveta .fechar { align-self: flex-end; width: 44px; height: 44px; border-radius: 50%; border: 0; background: none; color: var(--c); font-size: 1.3rem; }
.jardim { background: var(--jardim); border-radius: 24px; padding: 8px 10px 10px; text-align: center; }
.jardim svg { width: 190px; height: 168px; }
.jardim .t { font-family: "Bricolage Grotesque", system-ui, sans-serif; font-weight: 800; letter-spacing: -.01em; font-size: 1.08rem; }
.jardim .m { font-size: .8rem; color: var(--c); }
.itens { margin-top: 10px; display: flex; flex-direction: column; }
.gaveta .item { min-height: 50px; display: flex; align-items: center; gap: 12px; font-size: .95rem; font-weight: 600; border-radius: 14px; padding: 0 10px;
               background: none; border: 0; color: var(--t); text-align: left; text-decoration: none; width: 100%; }
.gaveta .item i { font-style: normal; width: 32px; height: 32px; border-radius: 10px; display: flex; align-items: center; justify-content: center; background: var(--p2); }
.gaveta .item.ativo { background: var(--p2); }
.gaveta .sair { margin-top: auto; padding-top: 8px; }

/* FOLHA de baixo (reportar uma resposta): sobe do pé da tela; o voltar do celular fecha */
.folha-fundo { position: fixed; inset: 0; background: var(--fundo-menu); z-index: 20; animation: aparece .2s ease-out; }
.folha { position: fixed; left: 0; right: 0; bottom: 0; z-index: 21; max-height: 92dvh; overflow-y: auto; background: var(--bg); border-radius: 22px 22px 0 0;
         padding: 18px 16px calc(16px + env(safe-area-inset-bottom, 0)); box-shadow: 0 -10px 30px var(--sombra); animation: sobe .22s ease-out; outline: none; }
.folha > * { max-width: 560px; margin-left: auto; margin-right: auto; }
.folha h2 { font-family: "Bricolage Grotesque", system-ui, sans-serif; font-weight: 800; letter-spacing: -.01em; font-size: 1.25rem; margin-bottom: 6px; }
@keyframes sobe { from { transform: translateY(30px); opacity: .5; } to { transform: none; opacity: 1; } }
.motivos { border: 0; margin-top: 10px; display: flex; flex-direction: column; gap: 8px; }
.motivos legend { font-size: .9rem; color: var(--c); margin-bottom: 6px; }
.opcao { display: flex; align-items: center; gap: 12px; min-height: 48px; margin: 0; padding: 0 14px; border: 1.5px solid var(--linha); border-radius: 14px;
         background: var(--sup); color: var(--t); font-size: .95rem; }
.opcao:has(input:checked) { border-color: var(--p); box-shadow: 0 0 0 2px var(--p2); }
.opcao input { width: 22px; height: 22px; accent-color: var(--p); flex: 0 0 22px; }
/* retornos (equipe) */
.retorno blockquote { margin: 8px 0; padding: 8px 12px; border-left: 3px solid var(--p); background: var(--p2); border-radius: 0 12px 12px 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.retorno p { margin-top: 6px; white-space: pre-wrap; overflow-wrap: anywhere; } .retorno.visto { opacity: .7; }
textarea { resize: vertical; }

/* o DIG (avatar) e as reações — o mesmo desenho; a classe muda o movimento */
.dig .fe, .dig .fd, .dig .corpo, .dig .luz, .dig .brilho, .dig .nova, .dig .pontos circle { transform-box: fill-box; }
.dig .fe { transform-origin: 100% 100%; } .dig .fd { transform-origin: 0% 100%; } .dig .corpo { transform-origin: 50% 100%; }
.dig .luz, .dig .brilho, .dig .nova, .dig .pontos { opacity: 0; }
.dig .c-folha { fill: var(--folha); } .dig .c-folha2 { fill: var(--folha2); } .dig .c-corpo { fill: var(--corpo); } .dig .c-corpo2 { fill: var(--corpo2); }
.dig .c-bochecha { fill: var(--bochecha); } .dig .c-luz { fill: var(--acento); } .dig .c-traco { stroke: var(--traco); } .dig .olhos-abertos circle { fill: var(--traco); } .dig .brilho path { fill: var(--ouro); }
.dig.ouvindo .fe { animation: concha-e 3.2s ease-in-out infinite; } .dig.ouvindo .fd { animation: concha-d 3.2s ease-in-out infinite; }
.dig.ouvindo .corpo { animation: respira 3.2s ease-in-out infinite; }
@keyframes concha-e { 0%,100% { transform: rotate(-38deg) translate(-2px, 10px); } 50% { transform: rotate(-44deg) translate(-3px, 11px); } }
@keyframes concha-d { 0%,100% { transform: rotate(38deg) translate(2px, 10px); } 50% { transform: rotate(44deg) translate(3px, 11px); } }
@keyframes respira { 0%,100% { transform: scale(1); } 50% { transform: scale(1.025, .985); } }
.dig.pensando .fe { animation: balanca 1.6s ease-in-out infinite; } .dig.pensando .fd { animation: balanca 1.6s ease-in-out .8s infinite; }
.dig.pensando .pontos { opacity: 1; } .dig.pensando .pontos circle { animation: ponto 1.2s ease-in-out infinite; }
.dig.pensando .pontos circle:nth-child(2) { animation-delay: .2s; } .dig.pensando .pontos circle:nth-child(3) { animation-delay: .4s; }
@keyframes balanca { 0%,100% { transform: rotate(-6deg); } 50% { transform: rotate(6deg); } }
@keyframes ponto { 0%,100% { opacity: .25; } 50% { opacity: 1; } }
.dig.acolhendo .fe { animation: abraca-e 4s ease-in-out infinite; } .dig.acolhendo .fd { animation: abraca-d 4s ease-in-out infinite; }
.dig.acolhendo .luz { animation: luz 4s ease-in-out infinite; }
@keyframes abraca-e { 0%,15% { transform: none; } 45%,85% { transform: rotate(-120deg) translate(6px, 34px); } 100% { transform: none; } }
@keyframes abraca-d { 0%,15% { transform: none; } 45%,85% { transform: rotate(120deg) translate(-6px, 34px); } 100% { transform: none; } }
@keyframes luz { 0%,100% { opacity: 0; } 50% { opacity: .55; } }
.dig.volta .nova { animation: abre 3.5s ease-out 2; }
@keyframes abre { 0% { opacity: 0; transform: scale(.2) rotate(-30deg); } 40%,85% { opacity: 1; transform: none; } 100% { opacity: 0; } }
.dig.risco .luz { opacity: .45; }       /* Farol vermelho: NADA se mexe */
.dig .olhos-abertos { display: none; } .dig.risco .olhos-abertos { display: inline; } .dig.risco .olhos-fechados { display: none; }

/* a ÁRVORE do jardim: cada parte aparece numa fase */
.arv .p { opacity: 0; transform-box: fill-box; transform-origin: 50% 100%; transform: scale(.6); transition: opacity 1.2s ease, transform 1.6s cubic-bezier(.2,.8,.2,1); }
.arv[data-fase="0"] .f0, .arv[data-fase="1"] :is(.f0,.f1), .arv[data-fase="2"] :is(.f0,.f1,.f2), .arv[data-fase="3"] :is(.f0,.f1,.f2,.f3),
.arv[data-fase="4"] :is(.f0,.f1,.f2,.f3,.f4), .arv[data-fase="5"] :is(.f0,.f1,.f2,.f3,.f4,.f5) { opacity: 1; transform: none; }
.arv:is([data-fase="3"],[data-fase="4"],[data-fase="5"]) .so-ate2, .arv:is([data-fase="2"],[data-fase="3"],[data-fase="4"],[data-fase="5"]) .so-ate1 { opacity: 0; }
.arv .copa { animation: brisa 7s ease-in-out infinite; transform-box: fill-box; transform-origin: 50% 100%; }
@keyframes brisa { 0%,100% { transform: rotate(0); } 50% { transform: rotate(1.2deg); } }
.arv .a-chao { fill: var(--chao); } .arv .a-tronco { stroke: var(--tronco); } .arv .a-folha { fill: var(--folha); } .arv .a-folha2 { fill: var(--folha2); }
.arv .a-flor { fill: var(--acento); } .arv .a-ouro { fill: var(--ouro); } .arv .a-terra { fill: var(--tronco); }

@media (prefers-reduced-motion: reduce) { .dig *, .arv *, .gaveta, .gaveta-fundo, .folha, .folha-fundo { animation: none !important; transition: none !important; } }
@media (min-width: 720px) { main { padding-top: 28px; } h1 { font-size: 1.8rem; } .fala { max-width: 75%; } }

/* 09/11 (Douglas + Renata, prancha 03): linhas suaves em todos os temas, rosto de escuta, barra de baixo com o ramo à vista */
:root { --curva: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 24' preserveAspectRatio='none'%3E%3Cpath d='M0 0h400v6C330 24 250 24 200 14S80 0 0 16z'/%3E%3C/svg%3E"); }
.topo::after { content: ''; position: absolute; left: 0; right: 0; bottom: -14px; height: 14px; background: var(--topo); pointer-events: none;
  -webkit-mask: var(--curva) center / 100% 100% no-repeat; mask: var(--curva) center / 100% 100% no-repeat; }
.topo .quem, .topo .quem b { color: var(--sobre-topo); } .topo .quem small { color: var(--sobre-topo); opacity: .85; }
main { padding-top: 24px; }
body::before { content: ''; position: fixed; left: 0; right: 0; bottom: 0; height: 90px; z-index: -1; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 170' preserveAspectRatio='none'%3E%3Cpath d='M0 100C90 62 170 130 260 98S360 52 400 76V170H0z' fill='%23E9DDFB' opacity='.6'/%3E%3C/svg%3E") bottom / 100% 100% no-repeat; }
[data-tema="noite"] body::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 170' preserveAspectRatio='none'%3E%3Cpath d='M0 100C90 62 170 130 260 98S360 52 400 76V170H0z' fill='%23FFFFFF' opacity='.05'/%3E%3C/svg%3E"); }
.fala { box-shadow: 0 2px 10px rgba(41,37,53,.05); } .fala.amigo { border-color: transparent; }
:root:not([data-tema]) .fala.amigo, [data-tema="jardim"] .fala.amigo { border-color: var(--linha); }
.fala.amigo .ouvir, .fala.amigo .reportar { color: var(--acao-amigo); border-color: rgba(41,37,53,.14); background: rgba(255,255,255,.55); }
.compor { align-items: center; background: color-mix(in srgb, var(--bg) 88%, transparent); }
.campo-msg { flex: 1; min-width: 0; display: flex; align-items: flex-end; gap: 2px; background: var(--sup); border: 1.5px solid var(--linha); border-radius: 26px; padding: 2px; }
.campo-msg:focus-within { border-color: var(--p); box-shadow: 0 0 0 2px var(--p2); }
.campo-msg textarea { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--t); padding: 12px 6px 12px 14px; box-shadow: none; outline: none; }
.compor .campo-msg .icone { flex: 0 0 44px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #F9DFC9; color: #6447BF; }
.compor #enviar { flex: 0 0 52px; width: 52px; height: 52px; box-shadow: 0 0 0 4px #F9DFC9; }
.acoes-baixo { position: relative; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; margin-top: 8px; min-height: 52px; }
.acoes-baixo .ramo { display: none; }
.pilula { min-height: 44px; padding: 0 12px; border-radius: 999px; font-weight: 700; font-size: .86rem; white-space: nowrap; }
.pilula.voz { background: #F9DFC9; border: 1.5px solid #F2C9A8; color: #6447BF; }
.acoes-baixo .ajuda-btn { background: #DDF0EB; border-color: #BFE3D8; color: #6447BF; padding: 0 12px; font-size: .86rem; white-space: nowrap; }
@media (min-width: 360px) {
  .acoes-baixo { flex-wrap: nowrap; justify-content: flex-end; padding-left: 50px; gap: 6px; }
  .acoes-baixo .ramo { display: block; position: absolute; left: -4px; bottom: -4px; width: 50px; height: 66px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 72'%3E%3Cpath d='M16 71C17 48 23 28 36 10' stroke='%239B86C9' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3Cpath d='M24 41C13 40 6 33 4 24c10 1 18 8 20 17z' fill='%23C9B6EA'/%3E%3Cpath d='M30 27c2-10 10-16 19-16-1 10-8 15-19 16z' fill='%23CDE9E1'/%3E%3Cpath d='M20 56c-9 2-16-2-19-9 9-2 15 2 19 9z' fill='%23CDE9E1'/%3E%3Cpath d='M35 17c-4-7-2-13 3-17 3 6 2 12-3 17z' fill='%23C9B6EA'/%3E%3C/svg%3E") center / contain no-repeat; }
}
/* o Dig de rosto: as folhas do raminho no cabelo só balançam (os movimentos de "braço" eram da semente) */
.dig .r .fe, .dig .r .fd { transform-origin: 50% 100%; }
.dig.ouvindo .r .fe { animation: balanca 3.2s ease-in-out infinite; } .dig.ouvindo .r .fd { animation: balanca 3.2s ease-in-out 1.6s infinite; }
.dig.acolhendo .r .fe, .dig.acolhendo .r .fd { animation: balanca 4s ease-in-out infinite; }
