/* ═══════════════════════════════════════════════
   k.Ai Robot Loader — Animated character states
   ═══════════════════════════════════════════════ */

.kai-loader {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 24px;
  color: var(--accent);
}

.kai-loader.sm .kai-robot { width: 24px; height: 24px; }
.kai-loader.md .kai-robot { width: 40px; height: 40px; }
.kai-loader.lg .kai-robot { width: 64px; height: 64px; }

.kai-loader-text {
  font-family: var(--font-body);
  color: var(--stone);
  font-size: 14px;
  margin: 0;
}

.kai-loader-subtext {
  font-family: var(--font-mono);
  color: var(--pewter);
  font-size: 11px;
  margin: 0;
}

/* ── Thinking State (default) ── */

@keyframes kai-blink {
  0%, 90%, 100% { transform: scaleY(1); }
  95% { transform: scaleY(0.1); }
}

.kai-eye {
  transform-origin: center;
  animation: kai-blink 3s ease-in-out infinite;
}

.kai-eye-right {
  animation-delay: 0.1s;
}

@keyframes kai-antenna-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}

.kai-antenna {
  animation: kai-antenna-bob 2s ease-in-out infinite;
}

@keyframes kai-tip-glow {
  0%, 100% { opacity: 0.6; }
  50% { opacity: 1; }
}

.kai-antenna-tip {
  animation: kai-tip-glow 2s ease-in-out infinite;
}

@keyframes kai-pulse-fade {
  0%, 100% { opacity: 0; }
  50% { opacity: 0.6; }
}

.kai-pulse-dot {
  animation: kai-pulse-fade 2.5s ease-in-out infinite;
}

.kai-pulse-1 { animation-delay: 0s; }
.kai-pulse-2 { animation-delay: 0.6s; }
.kai-pulse-3 { animation-delay: 1.2s; }
.kai-pulse-4 { animation-delay: 1.8s; }

@keyframes kai-body-pulse {
  0%, 100% { opacity: 0.85; }
  50% { opacity: 1; }
}

.kai-robot {
  animation: kai-body-pulse 3s ease-in-out infinite;
}

@keyframes kai-ear-wiggle-left {
  0%, 85%, 100% { transform: translateX(0); }
  90% { transform: translateX(-1px); }
  95% { transform: translateX(0); }
}

@keyframes kai-ear-wiggle-right {
  0%, 85%, 100% { transform: translateX(0); }
  90% { transform: translateX(1px); }
  95% { transform: translateX(0); }
}

.kai-ear-left {
  animation: kai-ear-wiggle-left 4s ease-in-out infinite;
}

.kai-ear-right {
  animation: kai-ear-wiggle-right 4s ease-in-out infinite;
  animation-delay: 0.1s;
}

/* ── Working Hard State ── */

@keyframes kai-squint {
  0%, 40%, 100% { transform: scaleY(1); }
  50%, 70% { transform: scaleY(0.5); }
}

[data-state="working"] .kai-eye {
  animation: kai-squint 1.5s ease-in-out infinite;
}

@keyframes kai-antenna-scan {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(-5deg); }
  75% { transform: rotate(5deg); }
}

[data-state="working"] .kai-antenna {
  animation: kai-antenna-scan 1.5s ease-in-out infinite;
}

@keyframes kai-sway {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-1px); }
  75% { transform: translateX(1px); }
}

[data-state="working"] .kai-robot {
  animation: kai-sway 2s ease-in-out infinite;
}

/* ── Success State ── */

[data-state="success"] .kai-eye {
  animation: none;
  transform: scaleY(0.3);
}

@keyframes kai-perk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(-1px); }
}

[data-state="success"] .kai-antenna {
  animation: kai-perk 0.4s ease-out forwards;
}

@keyframes kai-success-glow {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.3); }
  100% { filter: brightness(1); }
}

[data-state="success"] .kai-robot {
  animation: kai-success-glow 0.5s ease-out forwards;
}

[data-state="success"] .kai-pulse-dot {
  animation: none;
  opacity: 0;
}

/* ── Error State ── */

[data-state="error"] .kai-eye {
  animation: none;
  opacity: 0.5;
}

[data-state="error"] .kai-antenna {
  animation: none;
  transform: translateY(2px);
}

[data-state="error"] .kai-robot {
  animation: none;
  opacity: 0.6;
  filter: saturate(0.5);
}

[data-state="error"] .kai-pulse-dot {
  display: none;
}

[data-state="error"] .kai-loader-text {
  color: var(--no-go);
}
