.ki-bold-rig {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
  background: transparent;
  transform-origin: 50% 88%;
  contain: layout style;
}

.ki-bold-rig-pose {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  transform-origin: 50% 88%;
  transition: opacity 180ms ease, transform 260ms ease;
  will-change: opacity, transform;
}

.ki-bold-rig-pose-neutral {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  animation: ki-bold-rig-breathe 5.8s ease-in-out infinite;
}

.ki-bold-rig-pose-greetings,
.ki-bold-rig.is-greetings .ki-bold-rig-pose {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  animation: ki-bold-rig-point 2.8s ease-in-out 1;
}

.ki-bold-presence:not(.is-busy):not(.is-explaining) .ki-bold-rig,
.widget-presence:not(.is-busy):not(.is-explaining) .ki-bold-rig {
  animation: ki-bold-rig-idle-sway 24s ease-in-out infinite;
}

.ki-bold-presence:not(.is-busy):not(.is-explaining) .ki-bold-rig-pose-thinking,
.widget-presence:not(.is-busy):not(.is-explaining) .ki-bold-rig-pose-thinking {
  opacity: 0;
  animation: none;
}

.is-busy .ki-bold-rig-pose-neutral,
.is-explaining .ki-bold-rig-pose-neutral,
.ki-bold-rig.is-thinking .ki-bold-rig-pose-neutral,
.ki-bold-rig.is-explaining .ki-bold-rig-pose-neutral,
.ki-bold-rig.is-success .ki-bold-rig-pose-neutral,
.ki-bold-rig.is-hint .ki-bold-rig-pose-neutral {
  opacity: 0;
  animation: none;
}

.is-busy .ki-bold-rig-pose-explaining,
.is-explaining .ki-bold-rig-pose-explaining,
.ki-bold-rig.is-explaining .ki-bold-rig-pose-explaining {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  animation: none !important;
  transition: none;
}

.is-busy .ki-bold-rig-pose-thinking,
.is-explaining .ki-bold-rig-pose-thinking {
  opacity: 0;
  animation: none;
}

.is-explaining .ki-bold-rig-pose-explaining {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  animation: none !important;
  transition: none;
}

.is-busy .ki-bold-rig,
.is-explaining .ki-bold-rig,
.widget-presence.is-busy .ki-bold-rig,
.widget-presence.is-explaining .ki-bold-rig {
  animation: none !important;
  transform: none !important;
}

.is-busy .ki-bold-rig-pose,
.is-explaining .ki-bold-rig-pose,
.widget-presence.is-busy .ki-bold-rig-pose,
.widget-presence.is-explaining .ki-bold-rig-pose {
  animation: none !important;
  transition: none !important;
}

.ki-bold-rig.is-success .ki-bold-rig-pose-success,
.ki-bold-rig.is-hint .ki-bold-rig-pose-hint {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

.ki-bold-rig.is-success .ki-bold-rig-pose-success {
  animation: ki-bold-rig-celebrate 900ms cubic-bezier(0.2, 0.75, 0.2, 1) both;
}

.ki-bold-rig.is-hint .ki-bold-rig-pose-hint {
  animation: ki-bold-rig-point 3.8s ease-in-out infinite;
}

@keyframes ki-bold-rig-breathe {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
  48% { transform: translate3d(0, -2px, 0) scale(1.012); }
  52% { transform: translate3d(0, -2px, 0) scale(1.012); }
}

@keyframes ki-bold-rig-idle-sway {
  0%, 18%, 42%, 68%, 100% { transform: translate3d(0, 0, 0) rotate(0); }
  28% { transform: translate3d(1px, -1px, 0) rotate(0.7deg); }
  54% { transform: translate3d(-1px, 0, 0) rotate(-0.6deg); }
  78%, 86% { transform: translate3d(0, -2px, 0) rotate(0.4deg); }
}

@keyframes ki-bold-rig-idle-neutral {
  0%, 70% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
  74%, 85% { opacity: 0; transform: translate3d(0, 1px, 0) scale(0.99); }
  89%, 100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}

@keyframes ki-bold-rig-idle-thinking {
  0%, 70% { opacity: 0; transform: translate3d(0, 1px, 0) scale(0.99); }
  74%, 85% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
  89%, 100% { opacity: 0; transform: translate3d(0, 1px, 0) scale(0.99); }
}

@keyframes ki-bold-rig-calm-explaining {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
  50% { transform: translate3d(1px, -1px, 0) scale(1.004); }
}

@keyframes ki-bold-rig-celebrate {
  0% { transform: translate3d(0, 5px, 0) scale(0.94); }
  55% { transform: translate3d(0, -7px, 0) scale(1.04); }
  100% { transform: translate3d(0, 0, 0) scale(1); }
}

@keyframes ki-bold-rig-point {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
  50% { transform: translate3d(2px, -2px, 0) scale(1.015); }
}

/* Der optimierte Rig enthaelt nur die aktuell benoetigte Pose. */
.ki-bold-rig[data-ki-bold-state] .ki-bold-rig-pose {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) scale(1);
}

.ki-bold-rig.is-thinking .ki-bold-rig-pose,
.ki-bold-rig.is-explaining .ki-bold-rig-pose {
  animation: ki-bold-rig-calm-explaining 2.8s ease-in-out infinite;
}

.ki-bold-rig.is-success .ki-bold-rig-pose {
  animation: ki-bold-rig-celebrate 900ms cubic-bezier(0.2, 0.75, 0.2, 1) both;
}

.ki-bold-rig.is-hint .ki-bold-rig-pose {
  animation: ki-bold-rig-point 3.8s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .ki-bold-rig-pose { animation-duration: 1ms !important; animation-iteration-count: 1 !important; }
}
