
/* DREAMSPIRE · PET BRET */
#bret-heart-button {
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent !important;
  -webkit-user-select: none;
  user-select: none;
}

/* Bret knows he is being gently petted */
#bret-heart-button.is-bret-petting .welcome-head {
  animation: bret-pet-head .30s ease-in-out infinite alternate !important;
}

#bret-heart-button.is-bret-petting .welcome-eyes,
#bret-heart-button.is-bret-happy .welcome-eyes {
  animation: none !important;
  transform-origin: 224px 169px !important;
  transform: scaleY(.08) !important;
}

#bret-heart-button.is-bret-petting .welcome-lids,
#bret-heart-button.is-bret-happy .welcome-lids {
  animation: none !important;
  opacity: 1 !important;
}

#bret-heart-button.is-bret-petting .dreamer-front-tail,
#bret-heart-button.is-bret-happy .dreamer-front-tail {
  animation: bret-happy-tail .22s ease-in-out infinite alternate !important;
}

#bret-heart-button.is-bret-happy .welcome-cat {
  animation: bret-happy-bounce .34s ease-in-out 2 alternate !important;
}

@keyframes bret-pet-head {
  from { transform: rotate(-2deg) translateY(1px); }
  to   { transform: rotate(2deg) translateY(3px); }
}

@keyframes bret-happy-tail {
  from { transform: rotate(-15deg); }
  to   { transform: rotate(20deg); }
}

@keyframes bret-happy-bounce {
  from { transform: translateY(0) scale(1); }
  to   { transform: translateY(-3px) scale(1.018); }
}

/* Tiny luxury reaction particles */
.bret-pet-particle {
  position: absolute;
  z-index: 8;
  pointer-events: none;
  font-size: 18px;
  line-height: 1;
  color: #ef476f;
  text-shadow: 0 3px 12px rgba(239,71,111,.28);
  animation: bret-pet-float .95s cubic-bezier(.2,.7,.25,1) forwards;
}

.bret-pet-particle.is-gold {
  color: #dcc28b;
  text-shadow: 0 3px 12px rgba(220,194,139,.24);
}

@keyframes bret-pet-float {
  0% {
    opacity: 0;
    transform: translate(-50%, 8px) scale(.7) rotate(-8deg);
  }
  18% { opacity: 1; }
  100% {
    opacity: 0;
    transform: translate(-50%, -48px) scale(1.08) rotate(9deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  #bret-heart-button.is-bret-petting .welcome-head,
  #bret-heart-button.is-bret-petting .dreamer-front-tail,
  #bret-heart-button.is-bret-happy .welcome-cat {
    animation: none !important;
  }

  .bret-pet-particle {
    display: none !important;
  }
}

/* DREAMSPIRE · BRET PLAYFUL ROLL */
#bret-heart-button.is-bret-roll .welcome-cat {
  transform-origin: 50% 58%;
  animation: bret-playful-roll 1.05s cubic-bezier(.34,.05,.18,1) both !important;
}

@keyframes bret-playful-roll {
  0% {
    transform: translateY(0) rotate(0deg) scale(1);
  }

  12% {
    transform: translateY(3px) rotate(-10deg) scale(1.02,.97);
  }

  38% {
    transform: translateY(-5px) rotate(115deg) scale(.98,1.02);
  }

  68% {
    transform: translateY(-3px) rotate(285deg) scale(1.01,.98);
  }

  88% {
    transform: translateY(2px) rotate(365deg) scale(1.02,.97);
  }

  100% {
    transform: translateY(0) rotate(360deg) scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  #bret-heart-button.is-bret-roll .welcome-cat {
    animation: none !important;
  }
}
