/* Orbizinho · componente do mascote (Orbi 1.5). Par do orbi-mascot.js.
   Arte: só as peças do pacote de 110 imagens (esfera, anel fino em duas metades, arcos grossos, fragmentos âmbar e os 10 olhos),
   e as skins da 1.6 (líderes e datas), cada uma com as mesmas peças. Imagens em /assets/orbizinho/ (caminhos relativos a este arquivo).
   Caixa quadrada (--m-box) = palco de montagem de 1240 px recortado 3% de cada lado. Posições das peças em % do palco (orbz15/geo.json).
   Movimento: tudo o que se repete (respirar de cada peça, órbitas, piscar, olhar em volta e os gestos de vez em quando) é animação CSS
   infinita de translate/rotate/scale/transform/opacity, que o navegador roda na placa de vídeo sem trabalho da página a cada quadro.
   O JS só entra em resposta a alguém: olhos seguindo o ponteiro, emoções no clique e troca de expressão (Web Animations em transform).
   Cada mascote tem seus próprios tempos (variáveis no style, sorteadas pela semente), então vários juntos não se mexem em coro. */
.orbi-mascot{
  --m-size:120px; --m-box:var(--m-size); --om-t:0s;
  --om-glow:rgba(252,173,8,.55);
  position:relative; display:inline-block; flex:none; vertical-align:middle;
  width:var(--m-size); height:var(--m-size); line-height:0;
  user-select:none; -webkit-user-select:none; -webkit-touch-callout:none; -webkit-tap-highlight-color:transparent;
}
.orbi-mascot.om-click{cursor:pointer}
.orbi-mascot .om-inner{
  position:absolute; width:var(--m-box); height:var(--m-box);
  left:calc((var(--m-size) - var(--m-box)) / 2); top:calc((var(--m-size) - var(--m-box)) / 2);
  pointer-events:none;
}
/* 1.5.1: o palco é 25% maior que a caixa e as peças do anel ficam a 80% da distância original do centro: o orbe cresce e os anéis
   chegam mais perto dele, sem mudar o tamanho total do Orbizinho. */
.orbi-mascot .om-stage{position:absolute; left:-16.49%; top:-16.49%; width:132.97%; height:132.97%; transform-origin:50% 50%;
  animation:om-gest-stage var(--G,52s) ease-in-out calc(var(--om-t) + var(--gs,0s)) infinite}
.orbi-mascot.om-mirror .om-stage{scale:-1 1}
.orbi-mascot .om-art{position:absolute; inset:0; transform-origin:50% 50%; isolation:isolate}
.orbi-mascot .om-l{position:absolute; display:block; background:no-repeat 0 0/100% 100%}
.orbi-mascot .om-tsup{left:29.032%; top:16.774%; width:50.968%; height:20.000%; transform-origin:41.14% 166.13%; z-index:1; background-image:url(orbizinho/tsup.webp?v=1.6.6)}
.orbi-mascot .om-sup{left:19.355%; top:40.258%; width:63.871%; height:12.129%; transform-origin:50.61% 96.28%; z-index:2; background-image:url(orbizinho/sup.webp?v=1.6.6)}
.orbi-mascot .om-esfera{left:31.774%; top:32.097%; width:36.452%; height:35.806%; transform-origin:50% 50%; z-index:4; background-image:url(orbizinho/esfera.webp?v=1.6.6);
  filter:drop-shadow(0 0 calc(var(--m-box) * .022) var(--om-glow))}
.orbi-mascot .om-inf{left:19.419%; top:51.548%; width:65.419%; height:11.871%; transform-origin:49.31% 3.26%; z-index:6; background-image:url(orbizinho/inf.webp?v=1.6.6)}
.orbi-mascot .om-tinf{left:22.258%; top:62.774%; width:59.097%; height:17.032%; transform-origin:46.94% -75%; z-index:7; background-image:url(orbizinho/tinf.webp?v=1.6.6)}
/* olhos: uma faixa com as 10 expressões do pacote, trocadas pela posição do fundo (sem piscar de carregamento).
   .om-look olha em volta sozinho, .om-blink pisca, .om-eyes é a imagem (o JS aponta para o ponteiro e troca a expressão). */
.orbi-mascot .om-look{position:absolute; left:19.47%; top:19.59%; width:70.79%; height:56.31%;
  animation:om-glance var(--gl,12s) ease-in-out calc(var(--om-t) + var(--glo,0s)) infinite}
.orbi-mascot .om-blink{position:absolute; inset:0; animation:om-blink var(--bk,4.6s) linear calc(var(--om-t) + var(--bko,0s)) infinite}
.orbi-mascot .om-eyes{position:absolute; inset:0; display:block;
  background:url(orbizinho/olhos.webp?v=1.6.6) no-repeat 0 0/1000% 100%;
  transition:translate .2s cubic-bezier(.3,.7,.4,1), scale .2s ease-out}
.orbi-mascot[data-mood-shown=happy] .om-eyes{background-position-x:11.111%}
.orbi-mascot[data-mood-shown=sad] .om-eyes{background-position-x:22.222%}
.orbi-mascot[data-mood-shown=angry] .om-eyes{background-position-x:33.333%}
.orbi-mascot[data-mood-shown=surprised] .om-eyes{background-position-x:44.444%}
.orbi-mascot[data-mood-shown=wink] .om-eyes{background-position-x:55.556%}
.orbi-mascot[data-mood-shown=sleep] .om-eyes{background-position-x:66.667%}
.orbi-mascot[data-mood-shown=sleepy] .om-eyes{background-position-x:77.778%}
.orbi-mascot[data-mood-shown=think] .om-eyes{background-position-x:88.889%}
.orbi-mascot[data-mood-shown=curious] .om-eyes{background-position-x:100%}
.orbi-mascot[data-mood-shown=angry]{--om-glow:rgba(255,84,40,.7)}
.orbi-mascot[data-mood-shown=happy],.orbi-mascot[data-mood-shown=surprised]{--om-glow:rgba(255,196,40,.8)}

/* ---------- respirar de cada peça (vocabulário das poses: subir/descer, ir para os lados, giro, expandir/contrair) ---------- */
.orbi-mascot .om-inner,.orbi-mascot .om-stage,.orbi-mascot .om-art,.orbi-mascot .om-l,.orbi-mascot .om-look,.orbi-mascot .om-blink,.orbi-mascot .om-orb,.orbi-mascot .om-fp{animation-fill-mode:both}
.orbi-mascot.om-float .om-inner{animation:om-bob 2.9s ease-in-out calc(var(--om-t) * 1) infinite alternate}
.orbi-mascot .om-art{animation:om-sway 4.7s ease-in-out calc(var(--om-t) - 1.3s) infinite alternate, om-drift 6.1s ease-in-out calc(var(--om-t) - 2.2s) infinite alternate}
.orbi-mascot .om-esfera{animation:om-breathe 3.3s ease-in-out calc(var(--om-t) - .7s) infinite alternate, om-gest-sph var(--G,52s) ease-in-out calc(var(--om-t) + var(--gs,0s)) infinite}
.orbi-mascot .om-sup,.orbi-mascot .om-inf{animation:om-ring 5.3s ease-in-out calc(var(--om-t) - 2.6s) infinite alternate, om-ring-s 3.9s ease-in-out calc(var(--om-t) - 1.1s) infinite alternate, om-gest-ring var(--G,52s) ease-in-out calc(var(--om-t) + var(--gs,0s)) infinite}
.orbi-mascot .om-tsup{animation:om-swirl-a 6.6s ease-in-out calc(var(--om-t) - 3.4s) infinite alternate, om-swell 4.4s ease-in-out calc(var(--om-t) - .4s) infinite alternate, om-gest-ring var(--G,52s) ease-in-out calc(var(--om-t) + var(--gs,0s)) infinite}
.orbi-mascot .om-tinf{animation:om-swirl-b 7.4s ease-in-out calc(var(--om-t) - 1.9s) infinite alternate, om-swell 4.4s ease-in-out calc(var(--om-t) - 2.6s) infinite alternate, om-gest-ring var(--G,52s) ease-in-out calc(var(--om-t) + var(--gs,0s)) infinite}
@keyframes om-bob{from{translate:0 calc(var(--m-box) * -.017)}to{translate:0 calc(var(--m-box) * .017)}}
@keyframes om-sway{from{rotate:-2deg}to{rotate:2deg}}
@keyframes om-drift{from{translate:-1% 0}to{translate:1% 0}}
@keyframes om-breathe{from{scale:.985}to{scale:1.018}}
@keyframes om-ring{from{rotate:-3deg}to{rotate:3deg}}
@keyframes om-ring-s{from{scale:1.025 .97}to{scale:.975 1.035}}
@keyframes om-swirl-a{from{rotate:-5deg}to{rotate:6deg}}
@keyframes om-swirl-b{from{rotate:5deg}to{rotate:-6deg}}
@keyframes om-swell{from{scale:.975}to{scale:1.03}}
/* gestos das poses do pacote, uma vez a cada volta de --G (40 a 64 s): pulo, ir para os lados e diagonal no corpo todo;
   giro dos anéis e expandir/contrair nos anéis e na esfera */
@keyframes om-gest-stage{0%,8%{transform:none}8.6%{transform:translateY(-3.2%)}9.2%{transform:none}9.6%{transform:translateY(-1%)}10%,38%{transform:none}
  39%,40.2%{transform:translateX(calc(var(--gd,1) * 2.4%))}41.4%,42.4%{transform:translateX(calc(var(--gd,1) * -2.4%))}43.4%,70%{transform:none}
  71.2%,72.6%{transform:translate(1.5%,-1.3%) rotate(4deg)}74%,100%{transform:none}}
@keyframes om-gest-ring{0%,22%{transform:none}23.4%,25.6%{transform:rotate(calc(var(--gd,1) * 11deg))}27%,56%{transform:none}57%{transform:scale(1.07)}58.2%{transform:scale(.94)}59.4%,100%{transform:none}}
@keyframes om-gest-sph{0%,56%{transform:none}57%{transform:scale(1.07)}58.2%{transform:scale(.94)}59.4%,100%{transform:none}}
/* olhar em volta (paradas e olhadas rápidas) e piscar */
@keyframes om-glance{0%,15%{translate:0 0}18%,33%{translate:calc(var(--gx,1) * -9%) calc(var(--gy,1) * 3%)}36%,50%{translate:0 0}
  53%,66%{translate:calc(var(--gx,1) * 8%) calc(var(--gy,1) * -6%)}69%,82%{translate:calc(var(--gx,1) * 3%) calc(var(--gy,1) * 6%)}85%,100%{translate:0 0}}
@keyframes om-blink{0%,96%{scale:1 1}98%{scale:1 .1}100%{scale:1 1}}
/* olhar fixo, olhar para um alvo (xadrez) e expressões com olhar próprio: o JS aponta, sem olhar em volta */
.orbi-mascot:not([data-look=auto]) .om-look,.orbi-mascot[data-look-target] .om-look,.orbi-mascot[data-mood-shown=sleep] .om-look,
.orbi-mascot[data-mood-shown=think] .om-look,.orbi-mascot[data-mood-shown=sad] .om-look{animation:none}
.orbi-mascot[data-mood-shown=sleep] .om-blink,.orbi-mascot[data-mood-shown=happy] .om-blink,.orbi-mascot[data-mood-shown=wink] .om-blink{animation:none}

/* ---------- fragmentos em órbita (elipse do anel; atrás da esfera na metade de cima, na frente na de baixo) ----------
   .om-orb (centro do anel) anda na elipse inclinada: translate vai e volta no eixo maior, transform no menor (1/4 de volta depois, com a
   profundidade na escala). Dentro, .om-fp é a peça, que gira. Cada órbita vem em dupla: .om-bk atrás da esfera, sempre visível (a esfera
   a cobre quando passa por trás), e .om-fr na frente, que só aparece na meia volta de baixo (opacidade em degrau). */
.orbi-mascot .om-frags{position:absolute; inset:0; pointer-events:none} /* sem z-index: as camadas de cada fragmento disputam com as peças do corpo */
.orbi-mascot .om-orb{position:absolute; left:51.678%; top:51.935%; width:0; height:0; z-index:3;
  animation:om-x calc(var(--T) / 2) cubic-bezier(.37,0,.63,1) calc(var(--om-t) + var(--o)) infinite alternate,
    om-y calc(var(--T) / 2) cubic-bezier(.37,0,.63,1) calc(var(--om-t) + var(--o) - var(--T) / 4) infinite alternate}
.orbi-mascot .om-orb.om-fr{z-index:8;
  animation:om-x calc(var(--T) / 2) cubic-bezier(.37,0,.63,1) calc(var(--om-t) + var(--o)) infinite alternate,
    om-y calc(var(--T) / 2) cubic-bezier(.37,0,.63,1) calc(var(--om-t) + var(--o) - var(--T) / 4) infinite alternate,
    om-front var(--T) step-end calc(var(--om-t) + var(--o)) infinite}
.orbi-mascot .om-fp{position:absolute; display:block; width:max(5px, calc(var(--m-box) * var(--w) * var(--fz,1))); aspect-ratio:1 / var(--ar,1);
  translate:-50% -50%; background:no-repeat 50% 50%/contain;
  animation:om-spin var(--S,10s) linear calc(var(--om-t) * 1) infinite}
@keyframes om-front{0%{opacity:1}50%{opacity:0}100%{opacity:0}}
@keyframes om-x{from{translate:calc(var(--m-box) * var(--xa)) calc(var(--m-box) * var(--xb))}to{translate:calc(var(--m-box) * var(--xa) * -1) calc(var(--m-box) * var(--xb) * -1)}}
@keyframes om-y{from{transform:translate(calc(var(--m-box) * var(--ya) * -1), calc(var(--m-box) * var(--yb) * -1)) scale(.76)}
  to{transform:translate(calc(var(--m-box) * var(--ya)), calc(var(--m-box) * var(--yb))) scale(1.14)}}
@keyframes om-spin{from{rotate:0deg}to{rotate:var(--dir,360deg)}}
.orbi-mascot .om-k-ambar-p{background-image:url(orbizinho/ambar-p.webp?v=1.6.6)}
.orbi-mascot .om-k-ambar-m{background-image:url(orbizinho/ambar-m.webp?v=1.6.6)}
.orbi-mascot .om-k-ambar-g{background-image:url(orbizinho/ambar-g.webp?v=1.6.6)}
.orbi-mascot .om-k-losango-p{background-image:url(orbizinho/losango-p.webp?v=1.6.6)}
.orbi-mascot .om-k-losango-g{background-image:url(orbizinho/losango-g.webp?v=1.6.6)}
/* ---------- skins (Orbi 1.6): as mesmas peças e o mesmo movimento, com a arte de cada pacote ----------
   Líderes: lider-minas (Campo Minado), lider-xadrez (Xadrez), lider-orbit (Orbit). De época: halloween (outubro), natal (outubro a dezembro).
   Os anéis e os itens em órbita ocupam o mesmo lugar da base; a esfera muda de caixa porque traz chapéu, coroa ou capacete, então a caixa
   da esfera, o ponto de giro e a janela dos olhos (em % da esfera) são recalculados para o corpo ficar exatamente onde estava. */
.orbi-mascot[data-skin=lider-minas] .om-tsup{left:29.032%; top:16.774%; width:50.968%; height:20.0%; transform-origin:41.14% 166.13%; background-image:url(orbizinho/lider-minas-tsup.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-minas] .om-sup{left:19.355%; top:40.258%; width:63.871%; height:12.129%; transform-origin:50.61% 96.28%; background-image:url(orbizinho/lider-minas-sup.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-minas] .om-esfera{left:23.951%; top:25.968%; width:45.404%; height:45.645%; transform-origin:57.37% 52.65%; background-image:url(orbizinho/lider-minas-esfera.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-minas] .om-inf{left:19.419%; top:51.548%; width:65.419%; height:11.871%; transform-origin:49.31% 3.26%; background-image:url(orbizinho/lider-minas-inf.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-minas] .om-tinf{left:22.258%; top:62.774%; width:59.097%; height:17.032%; transform-origin:46.94% -75.0%; background-image:url(orbizinho/lider-minas-tinf.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-minas] .om-look{left:32.86%; top:28.79%; width:56.83%; height:44.17%}
.orbi-mascot[data-skin=lider-minas] .om-eyes{background-image:url(orbizinho/lider-minas-olhos.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-minas] .om-k-ambar-p{background-image:url(orbizinho/lider-minas-ambar-p.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-minas] .om-k-ambar-m{background-image:url(orbizinho/lider-minas-ambar-m.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-minas] .om-k-ambar-g{background-image:url(orbizinho/lider-minas-ambar-g.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-minas] .om-k-losango-p{background-image:url(orbizinho/lider-minas-losango-p.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-xadrez] .om-tsup{left:29.032%; top:16.774%; width:50.968%; height:20.0%; transform-origin:41.14% 166.13%; background-image:url(orbizinho/lider-xadrez-tsup.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-xadrez] .om-sup{left:19.355%; top:40.258%; width:63.871%; height:12.129%; transform-origin:50.61% 96.28%; background-image:url(orbizinho/lider-xadrez-sup.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-xadrez] .om-esfera{left:25.403%; top:23.952%; width:48.307%; height:46.774%; transform-origin:50.92% 55.69%; background-image:url(orbizinho/lider-xadrez-esfera.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-xadrez] .om-inf{left:19.419%; top:51.548%; width:65.419%; height:11.871%; transform-origin:49.31% 3.26%; background-image:url(orbizinho/lider-xadrez-inf.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-xadrez] .om-tinf{left:22.258%; top:62.774%; width:59.097%; height:17.032%; transform-origin:46.94% -75.0%; background-image:url(orbizinho/lider-xadrez-tinf.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-xadrez] .om-look{left:27.88%; top:32.41%; width:53.42%; height:43.11%}
.orbi-mascot[data-skin=lider-xadrez] .om-eyes{background-image:url(orbizinho/lider-xadrez-olhos.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-xadrez] .om-k-ambar-p{background-image:url(orbizinho/lider-xadrez-ambar-p.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-xadrez] .om-k-ambar-m{background-image:url(orbizinho/lider-xadrez-ambar-m.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-xadrez] .om-k-ambar-g{background-image:url(orbizinho/lider-xadrez-ambar-g.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-xadrez] .om-k-losango-p{background-image:url(orbizinho/lider-xadrez-losango-p.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-orbit] .om-tsup{left:29.032%; top:16.774%; width:50.968%; height:20.0%; transform-origin:41.14% 166.13%; background-image:url(orbizinho/lider-orbit-tsup.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-orbit] .om-sup{left:19.355%; top:40.258%; width:63.871%; height:12.129%; transform-origin:50.61% 96.28%; background-image:url(orbizinho/lider-orbit-sup.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-orbit] .om-esfera{left:27.258%; top:28.065%; width:42.097%; height:44.596%; transform-origin:54.02% 49.19%; background-image:url(orbizinho/lider-orbit-esfera.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-orbit] .om-inf{left:19.419%; top:51.548%; width:65.419%; height:11.871%; transform-origin:49.31% 3.26%; background-image:url(orbizinho/lider-orbit-inf.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-orbit] .om-tinf{left:22.258%; top:62.774%; width:59.097%; height:17.032%; transform-origin:46.94% -75.0%; background-image:url(orbizinho/lider-orbit-tinf.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-orbit] .om-look{left:27.59%; top:24.77%; width:61.3%; height:45.21%}
.orbi-mascot[data-skin=lider-orbit] .om-eyes{background-image:url(orbizinho/lider-orbit-olhos.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-orbit] .om-k-ambar-p{background-image:url(orbizinho/lider-orbit-ambar-p.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-orbit] .om-k-ambar-m{background-image:url(orbizinho/lider-orbit-ambar-m.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-orbit] .om-k-ambar-g{background-image:url(orbizinho/lider-orbit-ambar-g.webp?v=1.6.6)}
.orbi-mascot[data-skin=lider-orbit] .om-k-losango-p{background-image:url(orbizinho/lider-orbit-losango-p.webp?v=1.6.6)}
.orbi-mascot[data-skin=halloween] .om-tsup{left:29.032%; top:16.774%; width:50.968%; height:20.0%; transform-origin:41.14% 166.13%; background-image:url(orbizinho/halloween-tsup.webp?v=1.6.6)}
.orbi-mascot[data-skin=halloween] .om-sup{left:19.355%; top:40.258%; width:63.871%; height:12.129%; transform-origin:50.61% 96.28%; background-image:url(orbizinho/halloween-sup.webp?v=1.6.6)}
.orbi-mascot[data-skin=halloween] .om-esfera{left:20.887%; top:20.646%; width:53.63%; height:53.386%; transform-origin:54.29% 54.98%; background-image:url(orbizinho/halloween-esfera.webp?v=1.6.6)}
.orbi-mascot[data-skin=halloween] .om-inf{left:19.419%; top:51.548%; width:65.419%; height:11.871%; transform-origin:49.31% 3.26%; background-image:url(orbizinho/halloween-inf.webp?v=1.6.6)}
.orbi-mascot[data-skin=halloween] .om-tinf{left:22.258%; top:62.774%; width:59.097%; height:17.032%; transform-origin:46.94% -75.0%; background-image:url(orbizinho/halloween-tinf.webp?v=1.6.6)}
.orbi-mascot[data-skin=halloween] .om-look{left:33.53%; top:34.59%; width:48.12%; height:37.77%}
.orbi-mascot[data-skin=halloween] .om-eyes{background-image:url(orbizinho/halloween-olhos.webp?v=1.6.6)}
.orbi-mascot[data-skin=halloween] .om-k-ambar-p{background-image:url(orbizinho/halloween-ambar-p.webp?v=1.6.6)}
.orbi-mascot[data-skin=halloween] .om-k-ambar-m{background-image:url(orbizinho/halloween-ambar-m.webp?v=1.6.6)}
.orbi-mascot[data-skin=halloween] .om-k-ambar-g{background-image:url(orbizinho/halloween-ambar-g.webp?v=1.6.6)}
.orbi-mascot[data-skin=halloween] .om-k-losango-p{background-image:url(orbizinho/halloween-losango-p.webp?v=1.6.6)}
.orbi-mascot[data-skin=natal] .om-tsup{left:29.032%; top:16.774%; width:50.968%; height:20.0%; transform-origin:41.14% 166.13%; background-image:url(orbizinho/natal-tsup.webp?v=1.6.6)}
.orbi-mascot[data-skin=natal] .om-sup{left:19.355%; top:40.258%; width:63.871%; height:12.129%; transform-origin:50.61% 96.28%; background-image:url(orbizinho/natal-sup.webp?v=1.6.6)}
.orbi-mascot[data-skin=natal] .om-esfera{left:28.629%; top:25.565%; width:41.291%; height:45.241%; transform-origin:51.76% 54.01%; background-image:url(orbizinho/natal-esfera.webp?v=1.6.6)}
.orbi-mascot[data-skin=natal] .om-inf{left:19.419%; top:51.548%; width:65.419%; height:11.871%; transform-origin:49.31% 3.26%; background-image:url(orbizinho/natal-inf.webp?v=1.6.6)}
.orbi-mascot[data-skin=natal] .om-tinf{left:22.258%; top:62.774%; width:59.097%; height:17.032%; transform-origin:46.94% -75.0%; background-image:url(orbizinho/natal-tinf.webp?v=1.6.6)}
.orbi-mascot[data-skin=natal] .om-look{left:24.81%; top:29.94%; width:62.49%; height:44.57%}
.orbi-mascot[data-skin=natal] .om-eyes{background-image:url(orbizinho/natal-olhos.webp?v=1.6.6)}
.orbi-mascot[data-skin=natal] .om-k-ambar-p{background-image:url(orbizinho/natal-ambar-p.webp?v=1.6.6)}
.orbi-mascot[data-skin=natal] .om-k-ambar-m{background-image:url(orbizinho/natal-ambar-m.webp?v=1.6.6)}
.orbi-mascot[data-skin=natal] .om-k-ambar-g{background-image:url(orbizinho/natal-ambar-g.webp?v=1.6.6)}
.orbi-mascot[data-skin=natal] .om-k-losango-p{background-image:url(orbizinho/natal-losango-p.webp?v=1.6.6)}
/* pequenos: menos peças em órbita, um pouco maiores para continuarem reconhecíveis */
.orbi-mascot.om-sm .om-frags>.om-orb:nth-child(n+7){display:none}
.orbi-mascot.om-sm{--fz:1.1}

/* "zz" do sono */
.orbi-mascot .om-zz{position:absolute; left:63%; top:24%; width:0; height:0; display:none;
  font:800 calc(var(--m-box) * .075)/1 system-ui,-apple-system,"Segoe UI",sans-serif; color:#ffc94a;
  text-shadow:0 0 calc(var(--m-box) * .02) rgba(255,140,0,.85)}
.orbi-mascot.om-mirror .om-zz{left:30%}
.orbi-mascot[data-mood-shown=sleep]:not(.om-sm) .om-zz{display:block}
.orbi-mascot .om-zz i{position:absolute; left:0; top:0; font-style:normal; opacity:0; animation:om-zzz 3s ease-out infinite}
.orbi-mascot .om-zz i:nth-child(2){animation-delay:1s; font-size:.8em}
.orbi-mascot .om-zz i:nth-child(3){animation-delay:2s; font-size:.62em}
@keyframes om-zzz{0%{opacity:0; transform:translate(0,0) scale(.6)}20%{opacity:1}100%{opacity:0; transform:translate(1.1em,-2.4em) scale(1.15)}}

/* versão leve (miniaturas): a montagem pronta numa imagem só */
.orbi-mascot .om-pic{position:absolute; inset:0; display:block; background:no-repeat 50% 50%/contain}
.orbi-mascot .om-pic.om-k-base{background-image:url(orbizinho/orbizinho-base-128.webp?v=1.6.6)}
.orbi-mascot .om-pic.om-k-lider-minas{background-image:url(orbizinho/orbizinho-lider-minas-128.webp?v=1.6.6)}
.orbi-mascot .om-pic.om-k-lider-xadrez{background-image:url(orbizinho/orbizinho-lider-xadrez-128.webp?v=1.6.6)}
.orbi-mascot .om-pic.om-k-lider-orbit{background-image:url(orbizinho/orbizinho-lider-orbit-128.webp?v=1.6.6)}
.orbi-mascot .om-pic.om-k-halloween{background-image:url(orbizinho/orbizinho-halloween-128.webp?v=1.6.6)}
.orbi-mascot .om-pic.om-k-natal{background-image:url(orbizinho/orbizinho-natal-128.webp?v=1.6.6)}
.orbi-mascot.om-lite.om-mirror .om-pic{scale:-1 1}

/* tema claro */
html[data-theme=light] .orbi-mascot{--om-glow:rgba(232,140,0,.5)}
html[data-theme=light] .orbi-mascot .om-zz{color:#c97a00; text-shadow:none}

/* fora da tela, sem movimento (preferência do sistema ou "Animações" desligado no Orbi Play): tudo congela na pose atual */
.orbi-mascot.om-off *,.orbi-mascot.om-still *{animation-play-state:paused!important}
.orbi-mascot.om-still .om-zz i{opacity:1}
.orbi-mascot.om-still .om-zz i+i{display:none}
@media (prefers-reduced-motion:reduce){
  .orbi-mascot *{animation-play-state:paused!important}
  .orbi-mascot .om-zz i{opacity:1}
  .orbi-mascot .om-zz i+i{display:none}
  .orbi-mascot .om-eyes{transition:none}
}

/* ---------- Orbizinhos da sala (Início e página da sala de voz): um por pessoa, com a skin de cada uma ---------- */
.orbi-orbs{--orb-size:150px; display:flex; flex-wrap:wrap; justify-content:center; align-items:flex-end; gap:6px clamp(8px,2.4vw,28px); padding:clamp(14px,3vh,34px) 8px 6px; margin:0 auto; width:100%; max-width:980px; box-sizing:border-box}
.orbi-orbs[hidden]{display:none}
.orbi-orb{position:relative; display:flex; flex-direction:column; align-items:center; gap:2px; min-width:0; width:calc(var(--orb-size) + 16px);
  background:none; border:0; padding:0; color:inherit; font:inherit}
.orbi-orb .orbi-mascot{transition:filter .25s ease}
.orbi-orb::before{content:""; position:absolute; left:50%; top:calc(var(--orb-size) * .9); width:calc(var(--orb-size) * .58); height:calc(var(--orb-size) * .07);
  translate:-50% 0; border-radius:50%; background:radial-gradient(closest-side,rgba(252,173,8,.18),transparent); pointer-events:none}
html[data-theme=light] .orbi-orb::before{background:radial-gradient(closest-side,rgba(60,40,0,.14),transparent)}
.orbi-orb-name{max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12.5px; font-weight:700; color:var(--text-strong,#fff); line-height:1.3; margin-top:2px}
.orbi-orb-state{font-size:11px; color:var(--muted,#9aa0aa); line-height:1.3; white-space:nowrap}
.orbi-orb.is-me .orbi-orb-name::after{content:" (você)"; font-weight:500; color:var(--muted,#9aa0aa)}
.orbi-orb .orbi-orb-talk{position:absolute; left:50%; top:calc(var(--orb-size) * .5); width:calc(var(--orb-size) * .5); height:calc(var(--orb-size) * .5);
  translate:-50% -50%; border-radius:50%; pointer-events:none; opacity:0; border:2px solid rgba(76,195,138,.7); box-sizing:border-box}
.orbi-orb.speaking .orbi-orb-talk{animation:orbi-orb-talk 1.1s ease-out infinite}
.orbi-orb.speaking .orbi-orb-state{color:#4cc38a}
.orbi-orb.speaking .orbi-mascot{filter:drop-shadow(0 0 calc(var(--orb-size) * .05) rgba(76,195,138,.55))}
.orbi-orb.speaking .om-stage{animation:om-gest-stage var(--G,52s) ease-in-out calc(var(--om-t) + var(--gs,0s)) infinite, orbi-orb-bounce .42s ease-in-out infinite alternate}
@keyframes orbi-orb-talk{from{opacity:.9; scale:1}to{opacity:0; scale:1.8}}
@keyframes orbi-orb-bounce{from{translate:0 0}to{translate:0 -1.6%}}
.orbi-orb.is-away .orbi-mascot{filter:grayscale(.35) brightness(.9)}
@media (prefers-reduced-motion:reduce){.orbi-orb.speaking .orbi-orb-talk{animation:none; opacity:.8}.orbi-orb.speaking .om-stage{animation:none}}
@media (max-width:600px){.orbi-orbs{gap:4px 10px; padding-top:12px}.orbi-orb-name{font-size:12px}}

/* miniaturas (cartões da chamada, lista da lateral) e o Orbizinho no perfil */
.profile-orbi{display:flex; align-items:center; justify-content:center; gap:10px; margin:10px auto 2px; padding:4px 14px 4px 4px; width:max-content; max-width:100%;
  border:1px solid color-mix(in srgb,var(--brand,#fcad08) 28%,transparent); border-radius:999px; background:color-mix(in srgb,var(--brand,#fcad08) 7%,transparent)}
.profile-orbi-text{display:flex; flex-direction:column; align-items:flex-start; line-height:1.25; text-align:left}
.profile-orbi-text small{font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted,#9aa0aa)}
.profile-orbi-text b{font-size:13px; color:var(--text-strong,#fff)}
.orbi-profile-identity>div{min-width:0}
.orbi-profile-identity .profile-orbi{flex:none; flex-direction:column; gap:0; margin:0 0 0 auto; padding:0; width:auto; border:0; background:none}
.orbi-profile-identity .profile-orbi-text{align-items:center; text-align:center}
@media (max-width:600px){.orbi-profile-identity{flex-wrap:wrap}.orbi-profile-identity .profile-orbi{flex-direction:row; gap:8px; margin:2px 0 0; padding:2px 12px 2px 2px; border:1px solid color-mix(in srgb,var(--brand,#fcad08) 28%,transparent); background:color-mix(in srgb,var(--brand,#fcad08) 7%,transparent)}.orbi-profile-identity .profile-orbi-text{align-items:flex-start; text-align:left}}
