.uny-mascot-float {
  position: fixed;
  right: 57px;
  bottom: 24px;
  z-index: 9999;
  font-family: inherit;
}

.uny-mascot-float__button {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  position: relative;
  cursor: pointer;
  outline: none;
  border-radius: 50%;
}

.uny-mascot-float__button:focus-visible {
  outline: 3px solid rgba(126, 34, 206, .35);
  outline-offset: 4px;
}

.uny-mascot-float__svg {
  width: 95px;
  height: 95px;
  overflow: visible;
  filter: drop-shadow(0 8px 18px rgba(34, 18, 70, .24));
  transform-origin: 50% 75%;
}

.uny-mascot-float__label {
  position: absolute;
  right: -1px;
  top: -3px;
  min-width: 24px;
  height: 24px;
  padding: 0 6px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: #fff;
  color: #690099;
  font-size: 10px;
  line-height: 1;
  font-weight: 900;
  box-shadow: 0 4px 12px rgba(0,0,0,.16);
  animation: unyMascotLabelFloat 2.6s ease-in-out infinite;
}

.uny-mascot-float__aura {
  transform-origin: center;
  opacity: .82;
  stroke-dasharray: 7 6;
  animation: unyMascotAuraSpin 8s linear infinite;
}

.uny-mascot-float__face-panel {
  filter: drop-shadow(0 2px 6px rgba(12, 19, 41, .18));
}

.uny-mascot-float__eye {
  transform-box: fill-box;
  transform-origin: center;
  animation: unyMascotBlink 3.8s infinite;
}

.uny-mascot-float__arm--left {
  transform-box: fill-box;
  transform-origin: 100% 56%;
  animation: unyMascotWave 1.7s ease-in-out infinite;
}

.uny-mascot-float__hand--left {
  transform-box: fill-box;
  transform-origin: center;
  animation: unyMascotHandPop 1.7s ease-in-out infinite;
}

.uny-mascot-float__ticket {
  transform-box: fill-box;
  transform-origin: 10% 50%;
  animation: unyMascotTicketWiggle 2.1s ease-in-out infinite;
  filter: drop-shadow(0 4px 10px rgba(0, 111, 232, .30));
}

.uny-mascot-float__confetti > * {
  transform-box: fill-box;
  transform-origin: center;
  animation: unyMascotConfetti 3s ease-in-out infinite;
}

.uny-mascot-float__confetti > *:nth-child(2) { animation-delay: .4s; }
.uny-mascot-float__confetti > *:nth-child(3) { animation-delay: .8s; }
.uny-mascot-float__confetti > *:nth-child(4) { animation-delay: 1.2s; }

.uny-mascot-float__button:hover .uny-mascot-float__svg,
.uny-mascot-float.is-excited .uny-mascot-float__svg {
  animation: unyMascotBounce .7s cubic-bezier(.2,.9,.3,1.2);
}

.uny-mascot-float__bubble {
  position: absolute;
  right: 0;
  bottom: calc(100% + 14px);
  width: 270px;
  padding: 16px 16px 14px;
  border-radius: 16px;
  background: #fff;
  color: #1c2230;
  box-shadow: 0 18px 45px rgba(22, 15, 48, .20);
  border: 1px solid rgba(109, 0, 156, .12);
  z-index: 10000;
  transform-origin: bottom right;
  animation: unyMascotBubbleIn .22s ease-out;
}

.uny-mascot-float__bubble::after {
  content: "";
  position: absolute;
  right: 23px;
  bottom: -7px;
  width: 14px;
  height: 14px;
  background: #fff;
  border-right: 1px solid rgba(109, 0, 156, .12);
  border-bottom: 1px solid rgba(109, 0, 156, .12);
  transform: rotate(45deg);
}

.uny-mascot-float__bubble strong {
  display: block;
  margin-bottom: 4px;
  font-size: 16px;
}

.uny-mascot-float__bubble > span {
  display: block;
  color: #687083;
  font-size: 13px;
  line-height: 1.45;
  padding-right: 14px;
}

.uny-mascot-float__close {
  position: absolute;
  top: 6px;
  right: 8px;
  border: 0;
  background: transparent;
  color: #8a91a0;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  padding: 4px;
}

.uny-mascot-float__actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}

.uny-mascot-float__actions a {
  flex: 1 1 auto;
  min-height: 36px;
  padding: 0 10px;
  border-radius: 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none !important;
  font-size: 12px;
  font-weight: 800;
  color: #fff !important;
  background: linear-gradient(135deg, #f52b86 0%, #8600b6 50%, #058cff 100%);
}

.uny-mascot-float__actions a:last-child {
  color: #7200a0 !important;
  background: #f6f0fb;
  border: 1px solid #e9d9f5;
}

@keyframes unyMascotBlink {
  0%, 44%, 48%, 100% { transform: scaleY(1); }
  46% { transform: scaleY(.08); }
}

@keyframes unyMascotWave {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  18% { transform: rotate(-22deg) translateY(-1px); }
  36% { transform: rotate(14deg) translateY(-2px); }
  54% { transform: rotate(-18deg) translateY(-1px); }
  72% { transform: rotate(10deg) translateY(-2px); }
}

@keyframes unyMascotHandPop {
  0%, 100% { transform: scale(1); }
  25% { transform: scale(1.12); }
  50% { transform: scale(1.02); }
  75% { transform: scale(1.10); }
}

@keyframes unyMascotTicketWiggle {
  0%, 100% { transform: rotate(0deg) translate(0, 0); }
  25% { transform: rotate(7deg) translate(2px, -2px); }
  50% { transform: rotate(-3deg) translate(4px, -4px); }
  75% { transform: rotate(6deg) translate(2px, -1px); }
}

@keyframes unyMascotAuraSpin {
  to { transform: rotate(360deg); }
}

@keyframes unyMascotConfetti {
  0%, 100% { opacity: .4; transform: translateY(0) rotate(0); }
  50% { opacity: 1; transform: translateY(-4px) rotate(18deg); }
}

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

@keyframes unyMascotBounce {
  0% { transform: translateY(0) scale(1); }
  35% { transform: translateY(-5px) scale(1.06); }
  65% { transform: translateY(1px) scale(.98); }
  100% { transform: translateY(0) scale(1); }
}

@keyframes unyMascotBubbleIn {
  from { opacity: 0; transform: translateY(4px) scale(.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

/* UnyEventos V5.7.5: no mobile, acima da barra inferior fixa */
@media (max-width: 767px) {
  .uny-mascot-float { right: 40px; bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
  .uny-mascot-float__bubble { max-width: min(270px, calc(100vw - 36px)); }
}

@media (prefers-reduced-motion: reduce) {
  .uny-mascot-float *,
  .uny-mascot-float *::before,
  .uny-mascot-float *::after {
    animation: none !important;
    transition: none !important;
  }
}


/* Substitui somente na Home a regra legada que escondia o mascote. */
@media (max-width:767px) { html body .uny-mascot-float { display:block !important; } }
