.ji-pet {
  position: fixed;
  right: 24px;            /* fallback; JS switches to left/top */
  bottom: 28px;
  z-index: 9999;
  cursor: grab;
  touch-action: none;     /* allow touch dragging */
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.ji-pet.is-dragging { cursor: grabbing; }
.ji-pet.is-hidden { display: none !important; }

.ji-pet__float {
  width: 144px;
  height: 156px;
  transform-origin: 50% 100%;
  animation: ji-pet-bob 3.4s ease-in-out infinite;
  filter: drop-shadow(0 8px 10px rgba(0,0,0,.18));
  will-change: transform;
}
.ji-pet.is-dragging .ji-pet__float { animation-play-state: paused; }
.ji-pet.is-dragging { opacity: .9; }

.ji-pet__sprite {
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  image-rendering: -webkit-optimize-contrast;
}

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

@media (prefers-reduced-motion: reduce) {
  .ji-pet__float { animation: none; }
}

/* mobile: keep the whole cat visible, not clipped at screen edge */
@media (max-width: 640px) {
  .ji-pet__float { width: 104px; height: 113px; }
}
