/* Bat silhouette for motion only; the product logo remains the bat emoji. */
.bp-bat-shape { display: block; width: 100%; height: auto; fill: currentColor; overflow: visible; }
.bp-bat-wing { transform-box: view-box; transform-origin: 50% 55%; animation: bp-bat-wingbeat 280ms var(--ease-in-out, cubic-bezier(.77,0,.175,1)) infinite alternate; }
.bp-bat-wing-right { animation-delay: -35ms; }
@keyframes bp-bat-wingbeat {
  from { transform: scaleY(1); }
  to { transform: scaleY(.35); }
}
.bp-bat-welcome {
  position: fixed; inset: 0; z-index: 100; pointer-events: none;
  overflow: hidden; contain: strict; color: #a5c7b0;
}
.bp-bat-flight {
  position: absolute; left: -60px; opacity: 0;
  animation: bp-bat-depart 900ms linear both;
}
@keyframes bp-bat-depart {
  0% { opacity: 0; transform: translate3d(0,4vh,0) rotate(-12deg); }
  15% { opacity: .75; }
  35% { transform: translate3d(38vw,var(--bat-rise),0) rotate(-6deg); }
  65% { opacity: .65; transform: translate3d(72vw,-4vh,0) rotate(9deg); }
  100% { opacity: 0; transform: translate3d(calc(100vw + 120px),-16vh,0) rotate(-12deg); }
}
/* Keep the indicator inside the hit area and legible while disabled. */
.button.bp-bat-busy:disabled { position: relative; opacity: 1; padding-inline: 46px; cursor: progress; }
.bp-bat-working { pointer-events: none; position: absolute; left: 12px; top: calc(50% - 10px); width: 28px; color: currentColor; }
.bp-bat-working > span { display: block; animation: bp-bat-hover 700ms linear infinite; }
@keyframes bp-bat-hover {
  0%, 100% { transform: translate3d(0,1px,0) rotate(-4deg); }
  50% { transform: translate3d(0,-2px,0) rotate(4deg); }
}
@media (prefers-reduced-motion: reduce) {
  .bp-bat-welcome, .bp-bat-working { display: none !important; }
  .bp-bat-flight, .bp-bat-wing, .bp-bat-working > span { animation: none !important; }
}
