/* People are dialogue portraits, with independent neck and waist joints. */
.dialog-character.is-rigged-character {
  background:none;
  max-height:none;
  max-width:none;
  overflow:visible;
  isolation:isolate;
}
.character-rig-part {
  display:block;
  position:absolute;
  object-fit:contain;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
}
.character-torso-motion,.character-breathe,.character-head-motion {
  position:absolute;
  inset:0;
  pointer-events:none;
}
.character-torso-motion { animation:character-torso-turn var(--character-look-duration,8s) ease-in-out var(--character-idle-delay,0s) infinite; }
.character-breathe { animation:character-breathe 3.8s ease-in-out var(--character-idle-delay,0s) infinite; }
.character-head-motion { animation:character-head-look var(--character-look-duration,8s) ease-in-out var(--character-idle-delay,0s) infinite; }
.character-halo {
  position:absolute;
  inset:-3% -7% 8%;
  background:radial-gradient(ellipse closest-side at 50% 46%,#fffbe575 0%,#fffceb37 62%,#fffdf000 100%);
  pointer-events:none;
  z-index:-1;
}
.character-footlight {
  position:absolute;
  left:24%;
  right:24%;
  bottom:.5%;
  height:7%;
  background:radial-gradient(ellipse closest-side,#fff8dc70 0%,#fff8dc26 65%,#fff8dc00 100%);
  pointer-events:none;
  z-index:-1;
}
.dialog-character.hidden .character-torso-motion,
.dialog-character.hidden .character-breathe,
.dialog-character.hidden .character-head-motion { animation-play-state:paused; }
@keyframes character-breathe {
  0%,100% { transform:scale(1); }
  50% { transform:scale(1.009,1.014); }
}
@keyframes character-torso-turn {
  0%,10%,100% { transform:rotate(0) scaleX(1); }
  30%,41% { transform:rotate(-.45deg) scaleX(.996); }
  68%,79% { transform:rotate(.65deg) scaleX(1.008); }
}
@keyframes character-head-look {
  0%,10%,100% { transform:rotate(0) scaleX(1); }
  29%,42% { transform:rotate(calc(var(--character-head-angle,2deg) * -1)) scaleX(.985); }
  68%,80% { transform:rotate(var(--character-head-angle,2deg)) scaleX(1.006); }
}
@media(prefers-reduced-motion:reduce) {
  .character-torso-motion,.character-breathe,.character-head-motion { animation:none; }
}
