.page-mascot {
  --mascot-size: 140px;
  position: fixed !important;
  bottom: 24px !important;
  top: auto !important;
  z-index: 9999 !important;
  width: var(--mascot-size) !important;
  height: var(--mascot-size) !important;
  max-width: var(--mascot-size) !important;
  max-height: var(--mascot-size) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 !important;
  pointer-events: auto;
  user-select: none;
  cursor: pointer;
}

.page-mascot--right {
  right: 24px !important;
  left: auto !important;
}

.page-mascot--left {
  left: 24px !important;
  right: auto !important;
}

.page-mascot__sprite {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  background-repeat: no-repeat;
  background-size: 300% 300%; /* the sheet is a 3x3 grid of cells */
  background-position: 50% 50%; /* centre cell = neutral/idle */
  margin: 0;
  padding: 0;
}

.page-mascot__sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* Gentle squash while the reaction sheet is showing, unless reduced motion is requested */
.page-mascot.is-poked .page-mascot__sprite {
  animation: mascot-squash 0.5s ease;
}

@keyframes mascot-squash {
  0%   { transform: scale(1, 1); }
  30%  { transform: scale(1.1, 0.9); }
  60%  { transform: scale(0.95, 1.05); }
  100% { transform: scale(1, 1); }
}

@media (prefers-reduced-motion: reduce) {
  .page-mascot.is-poked .page-mascot__sprite {
    animation: none;
  }
}
