@font-face{font-family:'Caveat';font-weight:700;font-style:normal;font-display:swap;src:url(fonts/caveat-700.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-weight:500;font-style:normal;font-display:swap;src:url(fonts/montserrat-500.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-weight:700;font-style:normal;font-display:swap;src:url(fonts/montserrat-700.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-weight:800;font-style:normal;font-display:swap;src:url(fonts/montserrat-800.woff2) format('woff2')}
@font-face{font-family:'Playfair Display';font-weight:800;font-style:normal;font-display:swap;src:url(fonts/playfair-display-800.woff2) format('woff2')}
:root{--noite:#0c1c0f;--verde-esc:#17301a;--verde:#2D5A27;--verde-suave:#7A9E71;--creme:#F4F1EA;--creme2:#E8E1D1;--cobre:#B87333;--cobre-claro:#e3a468;--ouro:#D4AF37;--texto:#1E2A1C;--mudo:#66735f;--alerta:#9c3b22;--raio:28px;--sombra:0 18px 40px -18px rgba(0,0,0,.55),0 2px 8px rgba(0,0,0,.18);--serif:'Playfair Display',Georgia,'Times New Roman',serif;--sans:'Montserrat',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;--mao:'Caveat','Segoe Script',cursive;--foto-meg:none}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%}
body{background:var(--noite);background-image:radial-gradient(1100px 650px at 92% -8%,rgba(184,115,51,.38),transparent 62%),radial-gradient(900px 650px at -8% 108%,rgba(61,122,52,.5),transparent 58%);background-attachment:fixed;color:var(--creme);font-family:var(--sans);font-weight:500;font-size:18px;line-height:1.45}
body.totem{font-size:22px;user-select:none;-webkit-user-select:none;overscroll-behavior:none}
[hidden]{display:none!important}
#app{min-height:100vh;padding:14px 16px 24px;max-width:1240px;margin:0 auto}
body.totem #app{max-width:none;padding:16px 32px 24px}
.view{display:none}.view.ativa{display:block;animation:entra .5s cubic-bezier(.2,.8,.2,1) both}
@keyframes entra{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.faixa-teste{position:sticky;top:0;z-index:70;background:var(--ouro);color:#2a2200;font-weight:800;text-align:center;padding:7px;letter-spacing:.06em;font-size:.75em}
.aviso-rede{position:sticky;top:0;z-index:80;background:var(--alerta);color:#fff;font-weight:700;text-align:center;padding:14px}

/* cabeçalho */
.topo{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.logo-pilula{background:var(--creme);border-radius:20px;padding:8px 16px;box-shadow:var(--sombra)}
.logo-pilula img{display:block;height:44px;width:auto}
body.totem .logo-pilula img{height:54px}
.chip-meg{display:inline-flex;align-items:center;gap:10px;font-family:var(--mao);font-weight:700;font-size:1.7em;line-height:1;color:var(--cobre-claro)}

/* avatar da Meg: foto real quando liberada (config.fotoMeg); senão o símbolo da marca */
.avatar{display:block;border-radius:50%;background:#fff var(--marca,url(img/marca.png)) center/58% no-repeat;border:4px solid var(--cobre);box-shadow:0 0 0 7px rgba(212,175,55,.22),var(--sombra);flex:none}
body.tem-meg .avatar{background:var(--foto-meg) center top/cover no-repeat}
.avatar.grande{width:150px;height:150px;margin:0 auto 14px;animation:flutua 5s ease-in-out infinite}
.avatar.media{width:92px;height:92px;margin:0 auto 14px}
.avatar.mini{width:38px;height:38px;border-width:3px;box-shadow:none}
.avatar.pulsa{animation:pulsa 1.5s ease-in-out infinite}
@keyframes flutua{50%{transform:translateY(-6px)}}
@keyframes pulsa{50%{box-shadow:0 0 0 16px rgba(212,175,55,.14),var(--sombra)}}

/* botões */
.btn{font:inherit;font-weight:800;border:0;background:var(--creme);color:var(--verde);border-radius:22px;padding:.7em 1.3em;cursor:pointer;min-height:64px;display:inline-flex;align-items:center;justify-content:center;gap:.6em;box-shadow:var(--sombra);transition:transform .12s,background .15s,color .15s,box-shadow .15s}
.btn:active{transform:scale(.96)}
.btn:focus-visible,input:focus-visible{outline:4px solid var(--ouro);outline-offset:2px}
.btn:disabled{opacity:.55}
.btn.principal{background:linear-gradient(180deg,#3a7a31,var(--verde));color:#fff}
.btn.principal:active{background:var(--verde-esc)}
.btn.foto{background:linear-gradient(180deg,var(--cobre-claro),var(--cobre) 70%);color:#fff;font-size:1.1em;letter-spacing:.02em;text-shadow:0 1px 0 rgba(0,0,0,.15)}
.btn.foto:active{background:#8f5524}
.btn.vidro{background:rgba(244,241,234,.1);color:var(--creme);box-shadow:inset 0 0 0 2px rgba(244,241,234,.28);backdrop-filter:blur(6px);font-size:.82em;min-height:60px}
.btn.vidro:active{background:rgba(244,241,234,.28)}
.btn.vidro.escuro{background:transparent;color:var(--verde);box-shadow:inset 0 0 0 2px rgba(45,90,39,.35)}
.btn.vidro.escuro:active{background:var(--creme2)}
.btn.voltar{background:rgba(244,241,234,.1);color:var(--creme);box-shadow:inset 0 0 0 2px rgba(244,241,234,.28);min-height:54px;padding:.4em 1.2em;font-size:.85em;margin:4px 0 14px}
.btn.largo{width:100%;margin:8px 0 8px;min-height:84px;font-size:1.05em}
.ic{width:1.5em;height:1.5em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.btn .ico{width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.22);display:grid;place-items:center}
.btn .ico .ic{width:26px;height:26px}
.status{min-height:1.4em;text-align:center;font-weight:700;margin:8px 0 4px;font-size:.85em;color:var(--verde)}
.status.erro{color:var(--alerta)}
.sub{text-align:center;opacity:.85;margin:0 0 20px}

/* ===== INÍCIO ===== */
.home{display:grid;gap:16px}
.coluna-cam{display:flex;flex-direction:column;gap:14px;min-width:0}
.palco{position:relative;border-radius:36px;overflow:hidden;background:#000;aspect-ratio:4/5;max-height:56dvh;width:100%;box-shadow:0 0 0 3px var(--cobre),0 0 0 9px rgba(212,175,55,.18),var(--sombra)}
#cam-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#101a12}
.palco.espelho #cam-video{transform:scaleX(-1)}
.palco::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,28,15,.35),transparent 28%,transparent 55%,rgba(12,28,15,.82));pointer-events:none}
.mira{position:absolute;inset:12% 14% 22%;z-index:2;pointer-events:none;transition:inset .4s,opacity .3s}
.mira i{position:absolute;width:15%;aspect-ratio:1;border:0 solid var(--creme);opacity:.9;transition:border-color .3s}
.mira i:nth-child(1){left:0;top:0;border-width:6px 0 0 6px;border-top-left-radius:22px}
.mira i:nth-child(2){right:0;top:0;border-width:6px 6px 0 0;border-top-right-radius:22px}
.mira i:nth-child(3){left:0;bottom:0;border-width:0 0 6px 6px;border-bottom-left-radius:22px}
.mira i:nth-child(4){right:0;bottom:0;border-width:0 6px 6px 0;border-bottom-right-radius:22px}
.palco[data-estado="espera"] .mira i{animation:respira 2.4s ease-in-out infinite}
@keyframes respira{50%{opacity:.35;transform:scale(.97)}}
.palco[data-estado="segurando"] .mira i,.palco[data-estado="lendo"] .mira i{border-color:var(--ouro)}
.palco[data-estado="aviso"] .mira i{border-color:#ff9d6b}
.anel{position:absolute;left:50%;top:44%;width:34%;max-width:170px;aspect-ratio:1;transform:translate(-50%,-50%);z-index:3;display:grid;place-items:center;opacity:0;transition:opacity .25s;pointer-events:none}
.palco[data-estado="segurando"] .anel{opacity:1}
.anel svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.anel circle{fill:rgba(12,28,15,.35);stroke-width:9}
.anel .trilho{stroke:rgba(244,241,234,.3)}
.anel .prog{fill:none;stroke:var(--ouro);stroke-linecap:round;stroke-dasharray:339.3;stroke-dashoffset:339.3;transition:stroke-dashoffset .22s linear;filter:drop-shadow(0 0 6px rgba(212,175,55,.7))}
.anel span{position:relative;font-family:var(--serif);font-weight:800;font-size:3em;color:var(--creme)}
.cam-msg{position:absolute;left:14px;right:14px;bottom:14px;z-index:4;text-align:center;font-weight:800;font-size:1em;line-height:1.2;padding:.8em 1em;border-radius:20px;background:rgba(12,28,15,.72);backdrop-filter:blur(8px);box-shadow:inset 0 0 0 2px rgba(244,241,234,.2);transition:background .3s}
.palco[data-estado="segurando"] .cam-msg{background:rgba(120,90,10,.82)}
.palco[data-estado="aviso"] .cam-msg{background:rgba(140,60,25,.88)}
.cam-erro,.lendo{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;text-align:center;background:rgba(12,28,15,.9);backdrop-filter:blur(10px)}
.cam-erro p,.lendo p{margin:0 0 6px;font-weight:700;font-size:1.05em;max-width:24em}
.lendo p{font-family:var(--serif);font-weight:800;font-size:1.7em;animation:pisca 1.4s ease-in-out infinite}
@keyframes pisca{50%{opacity:.55}}
.acoes-cam{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.acoes-cam .foto{grid-column:1/-1;min-height:78px;font-size:1.15em}
.acoes-cam .vidro{flex-direction:column;gap:.2em;min-height:72px;font-size:.72em;padding:.5em .3em}
.cartao-meg{background:var(--creme);color:var(--texto);border-radius:var(--raio);padding:22px 20px;text-align:center;box-shadow:var(--sombra);position:relative;overflow:hidden}
.cartao-meg::before{content:"";position:absolute;right:-70px;top:-70px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(184,115,51,.28),transparent 68%)}
.oi{position:relative;font-family:var(--serif);font-weight:800;font-size:1.9em;line-height:1.05;margin:0;color:var(--verde)}
.nome-meg{color:var(--cobre)}
.mao{position:relative;font-family:var(--mao);font-weight:700;font-size:1.55em;margin:.15em 0 .6em;color:var(--cobre);line-height:1}
.passos{list-style:none;margin:0;padding:0;display:grid;gap:10px;text-align:left;position:relative}
.passos li{display:flex;align-items:center;gap:12px;font-size:.78em;font-weight:700;line-height:1.25;background:#fff;border-radius:18px;padding:10px 14px;box-shadow:0 6px 14px -10px rgba(23,48,26,.5)}
.passos b{flex:none;width:34px;height:34px;border-radius:50%;background:linear-gradient(180deg,var(--cobre-claro),var(--cobre));color:#fff;display:grid;place-items:center;font-family:var(--serif);font-size:1.1em}
@media(min-width:900px){
  .home{grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:stretch}
  .palco{aspect-ratio:auto;max-height:none;flex:1;min-height:0}
  body.totem .home{height:calc(100dvh - 120px)}
  body.totem .coluna-cam{height:100%}
  .acoes-cam{grid-template-columns:2.2fr 1fr 1fr 1fr}
  .acoes-cam .foto{grid-column:auto;min-height:84px}
  .acoes-cam .vidro{min-height:84px}
  body.totem .cartao-meg{display:flex;flex-direction:column;justify-content:center}
  body.totem .passos li{font-size:.72em}
}
@media(max-width:560px){
  .cartao-meg{display:grid;grid-template-columns:76px 1fr;column-gap:14px;align-items:center;text-align:left;padding:14px 16px;order:-1}
  .cartao-meg .avatar.grande{grid-row:1/3;width:76px;height:76px;margin:0;animation:none;border-width:3px;box-shadow:0 0 0 5px rgba(212,175,55,.2)}
  .oi{font-size:1.45em}.mao{font-size:1.2em;margin:0}
  .passos{display:none}
  .palco{aspect-ratio:3/4;max-height:50dvh}
  .chip-meg span{display:none}
}

/* ===== busca / mic: folhas ===== */
.overlay{position:fixed;inset:0;background:rgba(8,18,10,.84);backdrop-filter:blur(8px);z-index:100;display:flex;align-items:center;justify-content:center;padding:14px;animation:entra .3s both}
.folha{background:var(--creme);color:var(--texto);border-radius:34px;padding:22px;max-width:860px;width:100%;box-shadow:0 30px 80px -20px rgba(0,0,0,.7);max-height:96dvh;overflow:auto}
.folha.centro{text-align:center;max-width:620px}
.folha h2{margin:0 0 14px;font-size:1.5em}
.folha .fechar{width:100%;margin-top:12px;min-height:56px}
.folha .acoes{display:flex;gap:12px;justify-content:center;margin-top:10px}
.mic-texto{min-height:2.8em;font-size:1.2em;font-weight:700;color:var(--verde)}
.busca{display:flex;gap:10px;align-items:stretch;background:#fff;padding:8px;border-radius:26px;box-shadow:0 8px 22px -14px rgba(23,48,26,.6);border:2px solid transparent;transition:border-color .2s}
.busca:focus-within{border-color:var(--cobre)}
.busca input{flex:1;min-width:0;font:inherit;font-weight:600;font-size:1.1em;padding:.55em .8em;border:0;background:transparent;color:var(--texto);outline:0}
.busca input::placeholder{color:#8a9887;font-weight:500}
.busca .btn{box-shadow:none;border-radius:18px;min-height:56px}
.teclado{margin-top:12px;display:grid;gap:7px}
.teclado .linha{display:flex;gap:7px;justify-content:center}
.teclado button{font:inherit;font-weight:700;font-size:.85em;min-width:0;flex:1;max-width:84px;height:60px;border:0;background:#fff;border-radius:14px;color:var(--texto);box-shadow:0 3px 0 var(--creme2),0 6px 12px -8px rgba(23,48,26,.5);transition:transform .08s,background .1s}
.teclado button:active{background:var(--ouro);transform:translateY(2px)}
.teclado .larga{max-width:none;flex:3}.teclado .media{max-width:150px;flex:2}
.teclado .acao{background:var(--verde);color:#fff;box-shadow:0 3px 0 var(--verde-esc)}

/* ===== títulos internos ===== */
h2{font-family:var(--serif);font-weight:800;line-height:1.1;font-size:1.9em;margin:.2em 0 .4em}
#v-escolha h2{text-align:center;color:var(--creme);font-size:2em}

/* ESCOLHA */
.lista-escolha{display:flex;flex-wrap:wrap;justify-content:center;gap:18px}
.cartao{flex:0 1 330px;width:330px;max-width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;background:var(--creme);color:var(--texto);border:0;border-radius:var(--raio);padding:14px 14px 18px;font:inherit;cursor:pointer;box-shadow:var(--sombra);transition:transform .15s,box-shadow .15s;animation:entra .5s both}
.cartao:nth-child(2){animation-delay:.07s}.cartao:nth-child(3){animation-delay:.14s}.cartao:nth-child(4){animation-delay:.21s}
.cartao:active{transform:scale(.97);box-shadow:0 0 0 5px var(--ouro),var(--sombra)}
.cartao img{width:100%;height:230px;object-fit:contain;background:radial-gradient(circle at 50% 40%,#fff,var(--creme2));border-radius:20px}
.cartao .sem-foto,.foto-grande .sem-foto{width:100%;height:230px;display:flex;align-items:center;justify-content:center;background:var(--creme2);border-radius:20px;color:var(--mudo);font-size:.8em;font-weight:600;border:2px dashed rgba(45,90,39,.3)}
.cartao strong{font-size:.9em;font-weight:700;line-height:1.25}
.cartao::after{content:"É este";display:inline-block;margin-top:auto;background:var(--verde);color:#fff;font-weight:800;font-size:.7em;letter-spacing:.1em;text-transform:uppercase;padding:.6em 1.6em;border-radius:99px}
@media(max-width:560px){.cartao{flex-basis:100%;width:100%}}

.centro{max-width:760px;margin:20px auto;text-align:center}
.centro h2{color:var(--creme)}
.centro .acoes{display:flex;flex-direction:column;gap:12px;max-width:460px;margin:0 auto}
.centro .status{color:var(--ouro)}

/* PRODUTO */
.barra-prod{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:4px}
.barra-prod .btn.vidro{margin:4px 0 14px;min-height:54px;font-size:.85em}
.produto{display:grid;grid-template-columns:minmax(280px,5fr) 7fr;gap:26px;align-items:start;margin-bottom:18px}
@media(max-width:820px){.produto{grid-template-columns:1fr}}
.foto-grande{background:var(--creme);border-radius:34px;padding:14px;text-align:center;box-shadow:var(--sombra);position:sticky;top:12px}
@media(max-width:820px){.foto-grande{position:static}}
.foto-grande img.principal{width:100%;max-height:60dvh;object-fit:contain;border-radius:24px;background:radial-gradient(circle at 50% 40%,#fff,var(--creme2));display:block}
body.totem .foto-grande img.principal{max-height:62dvh}
.foto-grande .sem-foto{height:320px}
.miniaturas{display:flex;gap:10px;justify-content:center;margin-top:12px;flex-wrap:wrap}
.miniaturas img{width:66px;height:66px;object-fit:contain;border:3px solid transparent;border-radius:14px;background:#fff;cursor:pointer}
.miniaturas img.sel{border-color:var(--cobre)}
.produto h2{font-size:2.3em;margin:.05em 0 .55em;padding-bottom:.4em;position:relative;color:var(--creme)}
.produto h2::after{content:"";position:absolute;left:0;bottom:0;width:100px;height:6px;border-radius:6px;background:linear-gradient(90deg,var(--cobre),var(--ouro))}
.bloco{background:var(--creme);color:var(--texto);border-radius:26px;padding:18px 22px 20px 82px;margin:0 0 14px;box-shadow:var(--sombra);position:relative;overflow:hidden;animation:entra .5s both;counter-increment:b}
.produto>div{counter-reset:b}
.bloco:nth-of-type(2){animation-delay:.07s}.bloco:nth-of-type(3){animation-delay:.14s}.bloco:nth-of-type(4){animation-delay:.21s}
.bloco::before{content:"0" counter(b);position:absolute;left:0;top:0;bottom:0;width:62px;display:grid;place-items:center;align-content:start;padding-top:18px;font-family:var(--serif);font-weight:800;font-size:1.6em;color:#fff;background:linear-gradient(180deg,var(--verde),#3d7a34)}
.bloco h3{margin:0 0 6px;font-family:var(--sans);font-weight:800;font-size:.76em;text-transform:uppercase;letter-spacing:.16em;color:var(--cobre)}
.bloco p{margin:0;white-space:pre-line;line-height:1.55;font-size:.95em}
.bloco.vazio{background:rgba(244,241,234,.07);color:rgba(244,241,234,.78);box-shadow:inset 0 0 0 2px rgba(244,241,234,.22);border-radius:26px}
.bloco.vazio::before{background:rgba(244,241,234,.14);color:rgba(244,241,234,.7)}
.bloco.vazio h3{color:var(--cobre-claro)}
.bloco.vazio p{font-style:italic}
.bloco.vazio p::before{content:"";display:inline-block;width:1.1em;height:1.1em;margin-right:.55em;vertical-align:-.2em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e3a468' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center/contain no-repeat}
.bloco.alerta{background:#fff3ea}
.bloco.alerta::before{background:linear-gradient(180deg,var(--alerta),var(--cobre))}
.bloco.alerta h3{color:var(--alerta)}
.combina{display:flex;gap:8px;flex-wrap:wrap}
.combina span{background:var(--creme2);border-radius:999px;padding:.35em 1em;font-size:.85em;font-weight:700;color:var(--verde)}
@media(max-width:560px){.bloco{padding:16px 16px 18px 66px}.bloco::before{width:50px;font-size:1.3em}.produto h2{font-size:1.8em}}

/* CONVERSA */
.painel-chat{background:var(--creme);color:var(--texto);border-radius:34px;padding:18px;box-shadow:var(--sombra);display:flex;flex-direction:column;height:calc(100dvh - 190px);min-height:380px}
.painel-chat h2{font-size:1.2em;margin:0 0 4px;padding-bottom:8px;color:var(--verde);border-bottom:3px solid;border-image:linear-gradient(90deg,var(--cobre),var(--ouro),transparent) 1}
.chat-msgs{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:14px;padding:14px 4px 14px;scroll-behavior:smooth}
.msg{max-width:calc(100% - 60px);padding:.7em 1.1em;border-radius:22px;white-space:pre-line;line-height:1.45;animation:entra .35s both;font-size:.85em}
.msg.eu{align-self:flex-end;max-width:84%;background:linear-gradient(180deg,#3a7a31,var(--verde));color:#fff;border-bottom-right-radius:6px}
.msg.meg{align-self:flex-start;background:#fff;box-shadow:0 8px 18px -12px rgba(23,48,26,.5);border-bottom-left-radius:6px;position:relative;margin-left:52px}
.msg.meg::before{content:"";position:absolute;left:-52px;bottom:0;width:40px;height:40px;border-radius:50%;border:3px solid var(--cobre);background:#fff var(--marca,url(img/marca.png)) center/58% no-repeat}
body.tem-meg .msg.meg::before{background:var(--foto-meg) center top/cover no-repeat}
.msg.nota{align-self:center;font-size:.75em;color:var(--mudo);background:transparent;font-style:italic}
#form-chat{background:var(--creme2);box-shadow:none;flex-wrap:nowrap}
#form-chat .btn{min-height:52px;padding:.5em 1em;flex:none;box-shadow:none}
@media(max-width:560px){.painel-chat{height:calc(100dvh - 170px);padding:14px}}

/* ajustes pós-captura */
.folha h2{color:var(--verde)}
.folha.centro h2{color:var(--verde)}
.painel-chat{height:calc(100dvh - 214px)}
body:has(.faixa-teste:not([hidden])) .painel-chat{height:calc(100dvh - 254px)}
@media(max-width:560px){.painel-chat{height:calc(100dvh - 190px)}body:has(.faixa-teste:not([hidden])) .painel-chat{height:calc(100dvh - 228px)}}
@media(max-width:560px){.folha .busca{flex-wrap:wrap}.folha .busca input{flex-basis:100%}.folha .busca .btn{flex:1}}
@media(max-width:560px){#form-chat{gap:6px}#form-chat input{padding:.5em .4em .5em .6em}#form-chat .btn{padding:.4em .75em}#form-chat #b-chat-mic{padding:.4em .6em}}
