#talkchip {
  position: absolute;
  left: 16px;
  bottom: 16px;
  font-size: 13px;
  padding: 6px 12px;
  pointer-events: none;
}
#talkchip b {
  display: inline-block;
  min-width: 1.4em;
  padding: 0 5px;
  margin: 0 2px;
  border-radius: 5px;
  background: var(--paper);
  color: var(--ink);
  text-align: center;
}
#talkchip.tx {
  background: var(--red);
}
#talkchip.rx {
  background: #2f8a4fe0;
}
body.touch #talkchip {
  display: none;
}
/* Signal wheel: 16 crane hand signals in a ring around the worker, rim coloured by group, name in the middle. */
#emotes {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, #2b2a28c0 0, #2b2a2860 60%, transparent 72%);
}
#emotes button {
  position: absolute;
  width: 64px;
  height: 64px;
  padding: 0;
  border-radius: 50%;
  overflow: hidden;
  background: #fff8e6;
  border: 4px solid;
  box-shadow: 0 3px 0 #0005;
  transition: transform 0.08s;
}
#emotes button img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
#emotes button:hover,
#emotes button:focus-visible {
  transform: scale(1.15);
  background: var(--yellow);
  outline: none;
}
#emotes .g0 {
  border-color: var(--red);
}
#emotes .g1 {
  border-color: #3c8dde;
}
#emotes .g2 {
  border-color: #b06ad9;
}
#emotes .name {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 46%;
  text-align: center;
  font-weight: 600;
  font-size: 15px;
  line-height: 1.25;
  text-shadow: 0 2px 0 #0008;
  pointer-events: none;
}
#emotes .name small {
  display: block;
  font-size: 11px;
  font-weight: 400;
  opacity: 0.8;
}
body.touch #emotes {
  top: 42%;
}
/* Inside Discord, people already talk on Discord voice: no walkie, and the invite is the Activity itself. */
body.discord #talkchip,
body.discord #tbtn [data-b='talk'] {
  display: none;
}
