/* ============================================
   Bob Bot — Mascot styles
   ============================================ */

.bob-bot {
  position: fixed;
  bottom: 0;
  left: 200px;
  z-index: 9999;
  width: 72px;
  height: 72px;
  cursor: pointer;
  pointer-events: auto;
  user-select: none;
  -webkit-user-select: none;
}

.bob-bot img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.12));
  transition: filter 0.2s ease;
}

/* ---- Idle — gentle breathing ---- */
.bob-bot--idle {
  animation: bot-breathe 3s ease-in-out infinite;
}

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

/* ---- Walk — bouncy step ---- */
.bob-bot--walk {
  animation: bot-step 0.35s ease-in-out infinite;
}

@keyframes bot-step {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

/* ---- Jump ---- */
.bob-bot--jump img {
  transition: transform 0.15s ease;
}

/* ---- Hover ---- */
.bob-bot:hover img {
  filter: drop-shadow(0 4px 12px rgba(37, 99, 235, 0.25));
}

.bob-bot:active {
  transform: scale(0.95);
}

/* ---- Speech bubble ---- */
.bob-bot__bubble {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  background: white;
  color: #111827;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 8px 12px;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  white-space: nowrap;
  animation: bubble-pop 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  pointer-events: none;
}

.bob-bot__bubble::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 6px solid transparent;
  border-top-color: white;
}

@keyframes bubble-pop {
  0% { opacity: 0; transform: translateX(-50%) translateY(6px) scale(0.8); }
  100% { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); }
}

/* ---- Stampede ---- */
.stampede-bot {
  position: fixed;
  z-index: 9998;
  pointer-events: none;
  user-select: none;
  animation: stampede-bounce 0.3s ease-in-out infinite;
}

.stampede-bot img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0.7;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,0.1));
}

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

/* ---- Responsive ---- */
@media (max-width: 768px) {
  .bob-bot {
    width: 52px;
    height: 52px;
    left: 20px !important;
  }
}
