/* dog-animations.css — keyframes and animation utility classes for Kenji and Sheba sprites */

/* ── Shared ─────────────────────────────────────────────────── */

@keyframes blink {
  0%, 88%, 100% { opacity: 1; }
  93%            { opacity: 0; }
}

@keyframes ear-twitch {
  0%,  80%, 100% { transform: translateY(0); }
  85%            { transform: translateY(-1px); }
  92%            { transform: translateY(0); }
  95%            { transform: translateY(-1px); }
  98%            { transform: translateY(0); }
}

@keyframes breathe {
  0%,  100% { transform: scaleY(1);    transform-origin: bottom; }
  50%        { transform: scaleY(1.04); transform-origin: bottom; }
}

@keyframes bounce {
  0%,  100% { transform: translateY(0); }
  50%        { transform: translateY(-3px); }
}

@keyframes tongue-wag {
  0%,  100% { transform: translateY(0); }
  50%        { transform: translateY(1px); }
}

/* ── Kenji-specific ──────────────────────────────────────────── */

@keyframes tail-wag {
  0%,  100% { transform: rotate(0deg);   transform-origin: 2px 2px; }
  30%        { transform: rotate(25deg);  transform-origin: 2px 2px; }
  70%        { transform: rotate(-25deg); transform-origin: 2px 2px; }
}

@keyframes zoomies {
  0%   { transform: translateX(0)    scaleX(1);  }
  45%  { transform: translateX(52px) scaleX(1);  }
  50%  { transform: translateX(52px) scaleX(-1); }
  95%  { transform: translateX(0)    scaleX(-1); }
  100% { transform: translateX(0)    scaleX(1);  }
}

/* ── Sheba-specific ──────────────────────────────────────────── */

@keyframes tail-wag-big {
  0%,  100% { transform: rotate(0deg);   transform-origin: bottom center; }
  25%        { transform: rotate(30deg);  transform-origin: bottom center; }
  75%        { transform: rotate(-30deg); transform-origin: bottom center; }
}

@keyframes head-droop {
  0%,  100% { transform: translateY(0); }
  50%        { transform: translateY(2px); }
}

@keyframes zoomies-sheba {
  0%   { transform: translateX(0)    scaleX(1);  }
  45%  { transform: translateX(48px) scaleX(1);  }
  50%  { transform: translateX(48px) scaleX(-1); }
  95%  { transform: translateX(0)    scaleX(-1); }
  100% { transform: translateX(0)    scaleX(1);  }
}

@keyframes wiggle {
  0%,  100% { transform: rotate(0deg); }
  25%        { transform: rotate(-3deg); }
  75%        { transform: rotate(3deg); }
}

/* ── Utility classes ─────────────────────────────────────────── */

.anim-breathe       { animation: breathe        3s    infinite ease-in-out; }
.anim-ear           { animation: ear-twitch      4s    infinite; }
.anim-blink         { animation: blink           3.5s  infinite; }
.anim-tongue        { animation: tongue-wag      0.4s  infinite ease-in-out; }
.anim-tail          { animation: tail-wag        0.55s infinite ease-in-out; }
.anim-tail-big      { animation: tail-wag-big    0.4s  infinite ease-in-out; }
.anim-droop         { animation: head-droop      3s    infinite ease-in-out; }
.anim-wiggle        { animation: wiggle          0.4s  infinite ease-in-out; }
.anim-zoomies       { animation: zoomies         2.2s  infinite linear,
                                  bounce          0.22s infinite ease-in-out; }
.anim-zoomies-sheba { animation: zoomies-sheba   2s    infinite linear,
                                  bounce          0.2s  infinite ease-in-out; }
