.face{--face:168px;--blink:1;--mouth:0;--fala-lenta:0;--mic:0;--cor-rosto:#68c0ff;--cor-duracao:1.2s;color:var(--cor-rosto);width:var(--face);height:var(--face);transform:scale(calc(1 + var(--mic) * .1));transition:transform 90ms linear, color var(--cor-duracao) ease;position:relative}.face[data-face=neutro]{--cor-rosto:#68c0ff}.face[data-face=triste]{--cor-rosto:#7bd6ff}.face[data-face=muitotriste]{--cor-rosto:#8eedff}.face[data-face=ouvindo],.face[data-face=pensando]{--cor-rosto:#ff68e3}.face[data-face=muitosurpreso]{--cor-rosto:#68ffba}.face[data-face=muitofeliz]{--cor-rosto:#fdae3e}.face[data-face=muitobravo]{--cor-rosto:#ff686a}.face[data-face=bravo]{--cor-rosto:#ff8469}.face[data-face=feliz]{--cor-rosto:#fcdd3f}.face[data-face=surpreso]{--cor-rosto:#8cdfa6}.face[data-state=idle]{animation:4.5s ease-in-out infinite respirar}@keyframes respirar{50%{transform:scale(1.025)}}.chacoalho{--chacoalho:4px;animation:.45s ease-in-out .15s both chacoalhar}@keyframes chacoalhar{0%{transform:translate(0)}20%{transform:translateX(calc(var(--chacoalho) * -1))}45%{transform:translateX(var(--chacoalho))}70%{transform:translateX(calc(var(--chacoalho) * -1))}to{transform:translate(0)}}.face[data-face=ouvindo],.face[data-face=pensando]{transform:none}.face[data-face=ouvindo] .rosto:before,.face[data-face=pensando] .rosto:before{box-shadow:0 0 22px var(--brilho)}.cubo-normal{opacity:1}.cubo-ativo{opacity:0;filter:drop-shadow(0 0 2.5px #fff) drop-shadow(0 0 6px color-mix(in srgb, currentColor 80%, #fff))}.cubo-base-ativo .cubo-normal{opacity:0}.cubo-base-ativo .cubo-ativo{opacity:1}.cubos .cubo{--ciclo:1.8s}.cubos .cubo .cubo-normal{animation:cubo-normal var(--ciclo) ease-in-out infinite both;animation-delay:var(--atraso,0s)}.cubos .cubo .cubo-ativo{animation:cubo-ativo var(--ciclo) ease-in-out infinite both;animation-delay:var(--atraso,0s)}.cubos .cubo:nth-child(2){--atraso:.6s}.cubos .cubo:nth-child(3){--atraso:1.2s}@keyframes cubo-ativo{0%{opacity:0}10%,28%{opacity:1}40%,to{opacity:0}}@keyframes cubo-normal{0%{opacity:1}10%,28%{opacity:0}40%,to{opacity:1}}.aceno{--aceno:4px;animation:3s ease-in-out infinite acenar}@keyframes acenar{0%,62%,to{transform:translateY(0)}74%{transform:translateY(var(--aceno))}86%{transform:translateY(0)}}.face-camada{animation:.22s ease-out both face-entra;position:absolute;inset:0}.face-camada.saindo{pointer-events:none;animation:.22s ease-in both face-sai}.face.parado .face-camada{animation:none}@keyframes face-entra{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes face-sai{0%{opacity:1}to{opacity:0;transform:scale(1.02)}}.rosto{border-radius:50%;width:100%;height:100%;position:relative}.rosto:before{content:"";box-shadow:0 0 calc(22px + var(--mic) * 60px) var(--brilho);pointer-events:none;border-radius:50%;position:absolute;inset:2.5%}.rosto svg{width:100%;height:100%;display:block;position:relative;overflow:visible}.fundo{pointer-events:none;border-radius:50%;position:absolute;inset:-30%;overflow:hidden}.olho{transform-box:fill-box;transform-origin:50%;transform:scaleY(var(--blink))}.boca{transform-box:fill-box;transform-origin:50% 0;transform:scaleY(calc(1 + var(--mouth) * .8))}.boca-aberta{transform-box:fill-box;transform-origin:50% 0;transform:scaleY(calc(.3 + var(--mouth) * .7));opacity:clamp(0, calc((var(--mouth) - .05) * 8), 1)}.boca-fechada{opacity:clamp(0, calc(1 - (var(--mouth) - .05) * 8), 1)}.olho-aberto{opacity:clamp(0, calc((var(--blink) - .4) * 10), 1)}.olho-fechado{opacity:clamp(0, calc((.6 - var(--blink)) * 10), 1)}.boca-parada{opacity:clamp(0, calc(1 - (var(--mouth) - .08) * 6), 1)}.boca-falando{--boca-escala:calc(var(--escala-min,1) + (var(--escala-max,1) - var(--escala-min,1)) * var(--mouth));opacity:clamp(0, calc((var(--mouth) - .08) * 6), 1);transform-box:fill-box;transform-origin:50% 0;transform:scale(var(--boca-escala))}.boca-falando path{stroke-width:calc(var(--boca-traco,3) / var(--boca-escala));fill-opacity:clamp(0, calc((var(--fala-lenta) - var(--cheia-de,.31)) * var(--cheia-vel,30)), 1)}.sobrancelhas-paradas,.sobrancelhas-falando,.so-parado,.so-falando{transition:opacity .14s}.sobrancelhas-falando,.so-falando{opacity:0}.face[data-state=speaking] .sobrancelhas-falando,.face[data-state=speaking] .so-falando{opacity:1}.face[data-state=speaking] .sobrancelhas-paradas,.face[data-state=speaking] .so-parado{opacity:0}.anim-pulsar{transform-box:fill-box;transform-origin:50%;animation:1.2s ease-in-out infinite pulsar}@keyframes pulsar{50%{transform:scale(1.18)}}.anim-lagrima{transform-box:fill-box;transform-origin:50% 0;animation:3.2s ease-in infinite lagrima}@keyframes lagrima{0%{opacity:0;transform:translateY(-3px)scale(.5)}20%{opacity:.9}to{opacity:0;transform:translateY(38px)scale(1)}}.anim-pontos circle{animation:1.4s ease-in-out infinite ponto}.anim-pontos circle:nth-child(2){animation-delay:.2s}.anim-pontos circle:nth-child(3){animation-delay:.4s}@keyframes ponto{0%,70%,to{opacity:.25}30%{opacity:1}}.fundo-brilho{background:radial-gradient(circle, var(--cor) 0%, transparent 68%);animation:brilho var(--ritmo) ease-in-out infinite;border-radius:50%;position:absolute;inset:0}@keyframes brilho{0%,to{opacity:.55;transform:scale(.9)}50%{opacity:.95;transform:scale(1.05)}}.particula{left:var(--x);width:var(--tam);height:var(--tam);background:var(--cor);opacity:0;position:absolute}.particula-subir{animation:subir var(--dur) linear var(--atraso) infinite;bottom:4%}.particula-brasas{animation:subir calc(var(--dur) * .55) ease-out var(--atraso) infinite;bottom:6%}.particula-cair{animation:cair var(--dur) ease-in var(--atraso) infinite;top:2%}@keyframes subir{0%{opacity:0;transform:translateY(0)scale(.6)}15%{opacity:.9}to{transform:translateY(calc(var(--face) * -1.1)) scale(1);opacity:0}}@keyframes cair{0%{opacity:0;transform:translateY(0)scale(.7)}20%{opacity:.8}to{transform:translateY(calc(var(--face) * 1.1)) scale(1);opacity:0}}.onda{border:2px solid var(--cor);opacity:0;animation:onda 3.3s ease-out var(--atraso) infinite;border-radius:50%;position:absolute;inset:18%}.onda-entra{animation-name:onda-entra}@keyframes onda{0%{opacity:.7;transform:scale(.6)}to{opacity:0;transform:scale(1.5)}}@keyframes onda-entra{0%{opacity:0;transform:scale(1.5)}40%{opacity:.6}to{opacity:0;transform:scale(.6)}}@media (prefers-reduced-motion:reduce){.face,.face *,.face-camada{transition:none!important;animation:none!important}.face-camada{opacity:1!important}}:root{--bg:#0f1115;--surface:#181b22;--line:#262a33;--text:#e8eaf0;--muted:#8b92a3;--accent:#7c9cff;--user:#232a3d;--danger:#ff7a7a;--ok:#5fd39a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f6f7fb;--surface:#fff;--line:#e1e4ec;--text:#1b1e27;--muted:#6a7184;--accent:#4a6cf7;--user:#e6ebff;--danger:#d64545;--ok:#1f9d68;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}:root[data-theme=light]{--bg:#f6f7fb;--surface:#fff;--line:#e1e4ec;--text:#1b1e27;--muted:#6a7184;--accent:#4a6cf7;--user:#e6ebff;--danger:#d64545;--ok:#1f9d68;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#0f1115;--surface:#181b22;--line:#262a33;--text:#e8eaf0;--muted:#8b92a3;--accent:#7c9cff;--user:#232a3d;--danger:#ff7a7a;--ok:#5fd39a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--text);margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{max-width:720px;min-height:100dvh;padding:16px;padding-bottom:calc(var(--dock-h,120px) + 16px);flex-direction:column;gap:12px;margin:0 auto;display:flex}.top{justify-content:space-between;align-items:center;display:flex}.top h1{letter-spacing:-.01em;margin:0;font-size:20px}.badges{gap:8px;display:flex}.badge-link{pointer-events:auto;text-decoration:none}.badge-link:hover{color:var(--text);border-color:var(--accent)}.badge-toggle{font:inherit;cursor:pointer;background:0 0;font-size:12px}.badge-toggle[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.badge{color:var(--muted);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:12px;display:inline-flex}.conn i{background:var(--muted);border-radius:50%;width:8px;height:8px}.conn-open i{background:var(--ok)}.conn-closed i{background:var(--danger)}.masthead{z-index:5;background:linear-gradient(to bottom, var(--bg) 90%, transparent);pointer-events:none;margin:-4px 0 -16px;padding:12px 0 28px;position:sticky;top:0}.stage{justify-items:center;gap:8px;padding:12px 0 0;display:grid}.state{color:var(--muted);min-height:1.5em;margin:0;font-size:14px}.emotion-tag{color:var(--accent)}.gallery{max-width:960px;margin:0 auto;padding:24px 16px}.gallery h1{margin:0 0 4px;font-size:20px}.gallery-hint{color:var(--muted);margin:0 0 16px;font-size:14px}.gallery-hint code{background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:12px}.bench{z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:16px;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-bottom:20px;padding:10px 12px;font-size:14px;display:flex;position:sticky;top:0}.bench label{color:var(--muted);align-items:center;gap:8px;display:inline-flex}.bench label.check{color:var(--text)}.bench select{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:8px;padding:4px 8px}.bench button{padding:6px 14px}.demo-troca{border:1px solid var(--line);background:var(--surface);border-radius:18px;flex-wrap:wrap;align-items:center;gap:24px;margin:0 0 28px;padding:16px;display:flex}.demo-troca .face{--face:120px;flex:none}.demo-botoes{flex-wrap:wrap;gap:8px;display:flex}.demo-troca .gallery-hint{flex-basis:100%;margin:0}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:36px 20px;display:grid}.gallery figure{justify-items:center;gap:10px;margin:0;display:grid}.gallery figcaption{color:var(--muted);font-size:13px}.gallery .face{--face:140px}.tile-warn{color:var(--danger);text-align:center;margin:0;font-size:12px}.destaque .olho>*{stroke:#ff2bd6;stroke-width:2.5px}.destaque .boca>*,.destaque .boca-fechada>*,.destaque .boca-aberta>*{stroke:#00d68f;stroke-width:2.5px}.recolhivel{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .25s,opacity .2s;display:grid}.recolhivel[data-aberto=true]{opacity:1;grid-template-rows:1fr}.recolhivel-miolo{min-height:0;overflow:hidden}.recolhivel-log{flex:1}.recolhivel-log .recolhivel-miolo{flex-direction:column;display:flex}.recolhivel-log .log{flex:1}.campo-texto{opacity:0;pointer-events:none;flex:1;align-items:center;gap:8px;min-width:0;transition:opacity .2s;display:flex}.campo-texto[data-aberto=true]{opacity:1;pointer-events:auto;transition-delay:.2s}.controls{width:100%;max-width:720px;margin:0 auto;transition:max-width .45s cubic-bezier(.4,0,.2,1);overflow:hidden}.app[data-texto=false] .controls{max-width:58px}.app[data-texto=false] .campo-texto{flex:0 0 0}.stage,.dock-inner{transition:transform .5s cubic-bezier(.4,0,.2,1)}.app[data-texto=false] .stage{transform:translateY(max(0px,33.6dvh - 115.2px))}.app[data-texto=false] .dock-inner{transform:translateY(-12dvh)}@media (prefers-reduced-motion:reduce){.recolhivel,.campo-texto,.controls,.stage,.dock-inner{transition:none}}.log{flex-direction:column;flex:1;gap:8px;padding:4px 2px;display:flex}.empty{color:var(--muted);text-align:center;margin:auto;padding:0 16px}kbd{font:inherit;border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:1px 6px;font-size:12px}.msg{background:var(--surface);border:1px solid var(--line);overflow-wrap:anywhere;border-radius:14px;max-width:85%;padding:8px 12px}.msg.user{background:var(--user);border-color:#0000;align-self:flex-end}.msg.avatar{align-self:flex-start}.msg em{color:var(--muted);font-size:13px}.notice{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent);border-radius:10px;margin:0;padding:8px 12px;font-size:14px}.dock{z-index:10;padding:28px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to top, var(--bg) 55%, transparent);pointer-events:none;position:fixed;inset:auto 0 0}.dock-inner{pointer-events:auto;gap:8px;max-width:720px;margin:0 auto;display:grid}.controls{border:1px solid var(--line);background:var(--surface);border-radius:32px;align-items:center;gap:8px;padding:6px;display:flex;box-shadow:0 10px 32px #0003,0 2px 6px #0000001a}.controls:focus-within{border-color:color-mix(in srgb, var(--accent) 55%, var(--line))}.controls input{min-width:0;color:inherit;font:inherit;background:0 0;border:0;border-radius:24px;flex:1;padding:10px 6px}.controls input:focus-visible{outline:none}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{font:inherit;background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:999px;padding:10px 16px}button:disabled{opacity:.45;cursor:not-allowed}button.ghost{color:var(--text);border:1px solid var(--line);background:0 0}.mic{flex:none;place-items:center;width:44px;height:44px;padding:0;display:grid}.mic.on,.mic.stop{background:var(--danger)}.square{background:#fff;border-radius:3px;width:16px;height:16px}.timings{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:center;gap:4px 14px;font-size:12px;display:flex}.timings b{color:var(--text);font-weight:600}@media (width<=480px){.app{padding:12px 12px calc(var(--dock-h,120px) + 16px)}.face{--face:128px}}.control{gap:16px;max-width:640px;margin:0 auto;padding:20px 16px 48px;display:grid}.control-top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.control-top h1{margin:0;font-size:22px}.back{color:var(--accent);font-size:14px;text-decoration:none}.back:hover{text-decoration:underline}.control-conn{color:var(--muted);align-items:center;gap:8px;margin:0;font-size:13px;display:flex}.control-conn i{background:var(--muted);border-radius:50%;width:8px;height:8px}.control-conn.conn-open i{background:var(--ok)}.control-conn.conn-closed i{background:var(--danger)}.control-notice{min-height:22px}.control-notice p{border-radius:10px;margin:0;padding:6px 12px;font-size:14px}.notice-ok{color:var(--ok);background:color-mix(in srgb, var(--ok) 12%, transparent)}.notice-erro{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;gap:10px;padding:16px;display:grid}.card h2{margin:0;font-size:16px}.hint{color:var(--muted);margin:0;font-size:14px}.hint.warn{color:var(--danger)}.hint.foot{font-size:13px}.control code{background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:12px}.muted{color:var(--muted)}.seg{background:var(--bg);border:1px solid var(--line);border-radius:999px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.seg button{color:var(--text);background:0 0;padding:10px 12px}.seg button.on{background:var(--accent);color:#fff}.voice-group h3,.voice-group summary{color:var(--muted);margin:4px 0 6px;font-size:14px;font-weight:600}.voice-group summary{cursor:pointer}.voices{gap:6px;margin:0;padding:0;list-style:none;display:grid}.voices li{border:1px solid var(--line);background:var(--bg);border-radius:14px;align-items:center;gap:8px;padding:4px;display:flex}.voices li.ativa{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--bg))}.voice-main{text-align:left;min-width:0;color:var(--text);background:0 0;border-radius:12px;flex:1;align-items:baseline;gap:10px;padding:8px 12px;display:flex}.voice-name{font-weight:600}.voice-meta{color:var(--muted);font-size:13px}.voices .badge{color:var(--accent);border-color:var(--accent)}.voice-listen{white-space:nowrap;padding:8px 14px;font-size:14px}.field{gap:4px;font-size:14px;display:grid}.field>span:first-child{color:var(--muted);font-weight:600}.field-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.field-row>input{flex:1;min-width:0}.field input,.field textarea{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:10px;padding:8px 10px}.field input:focus-visible,.field textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.field textarea{resize:vertical;line-height:1.45}.prompt-preview{white-space:pre-wrap;background:var(--bg);border:1px solid var(--line);overflow-wrap:anywhere;border-radius:10px;margin:8px 0 0;padding:10px 12px;font-size:13px;line-height:1.45}.painel{inset:clamp(88px, 15dvh, 140px) 16px calc(var(--dock-h,120px) + 12px);z-index:6;pointer-events:none;opacity:0;place-items:center;transition:opacity .2s,transform .25s;display:grid;position:fixed;transform:translateY(16px)scale(.98)}.painel[data-aberto=true]{opacity:1;transition:opacity .4s ease var(--painel-atraso,.18s), transform .5s cubic-bezier(.2, .8, .2, 1) var(--painel-atraso,.18s);transform:none}.painel-moldura{pointer-events:auto;background:var(--surface);border:1px solid var(--line);border-radius:22px;width:min(100%,520px);max-height:100%;padding:22px 22px 16px;position:relative;overflow:auto;box-shadow:0 18px 48px #00000047}.painel-fechar{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;font-size:22px;line-height:1;display:grid;position:absolute;top:8px;right:10px}.painel-fechar:hover{color:var(--text);background:color-mix(in srgb, var(--text) 10%, transparent)}.painel-corpo{gap:2px;display:grid}.painel-titulo{letter-spacing:.02em;color:var(--muted);margin:0;padding-right:28px;font-size:14px;font-weight:600}.painel-valor{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:40px;font-weight:700;line-height:1.15}.painel-apoio{color:var(--muted);margin:0;font-size:14px}.painel-corpo[data-tendencia=sobe] .painel-apoio{color:var(--ok)}.painel-corpo[data-tendencia=desce] .painel-apoio{color:var(--danger)}.grafico{width:100%;height:auto;color:var(--accent);margin-top:12px;display:block}.painel-corpo[data-tendencia=sobe] .grafico{color:var(--ok)}.painel-corpo[data-tendencia=desce] .grafico{color:var(--danger)}.grafico-linha{fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.grafico-ponto{fill:currentColor}.grafico-guia{stroke:var(--line);stroke-width:1px;stroke-dasharray:3 4}.grafico-eixo{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:6px;font-size:12px;display:flex}.grafico-eixo i{opacity:.7;font-style:normal}.grafico-tempo{margin-top:0}html{overflow-x:hidden}.palco-saida{width:100%}.state{transition:opacity .2s}.palco-saida[data-fora=true] .state{opacity:0;transition-duration:.12s}@media (width<=480px){.painel-valor{font-size:34px}}.relogio-hora{letter-spacing:.01em;font-variant-numeric:tabular-nums;font-size:clamp(44px,12vw,64px)}@media (prefers-reduced-motion:reduce){.painel,.painel[data-aberto=true]{transition:none}}.control-links{flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:16px;display:inline-flex}.tool-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.tool-row{border:1px solid var(--line);background:var(--bg);border-radius:14px;gap:4px;padding:12px 14px;display:grid}.tool-row[data-enabled=false] .tool-title{color:var(--muted)}.tool-head{cursor:pointer;align-items:center;gap:10px;display:flex}.tool-head input{width:18px;height:18px;accent-color:var(--accent);flex:none}.tool-title{flex:1;font-weight:600}.tool-desc{margin:0 0 0 28px}.tool-more{color:var(--muted);margin-left:28px;font-size:13px}.tool-more summary{cursor:pointer}.tool-more p{margin:6px 0 0}.auth-page{place-items:center;min-height:100dvh;padding:24px;display:grid}.auth-card{text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:16px;flex-direction:column;align-items:center;gap:14px;width:min(360px,100%);padding:32px 24px;display:flex}.auth-card h1{margin:0;font-size:28px}.auth-card .muted{color:var(--muted);margin:0}.auth-error{color:var(--danger);margin:0;font-size:14px}.auth-google{color:#1f1f1f;background:#fff;border:1px solid #dadce0;border-radius:999px;align-items:center;gap:10px;padding:10px 18px;font-weight:500;text-decoration:none;display:inline-flex}.auth-google:hover{box-shadow:0 1px 4px #0000004d}.auth-google:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.offline-banner{z-index:50;background:var(--surface);border:1px solid var(--danger);width:min(560px,100% - 24px);color:var(--text);border-radius:12px;padding:10px 14px;font-size:14px;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.offline-banner strong{color:var(--danger)}
