:host {
  display: inline-block;
  line-height: 0.8em;
}

:host(:not(.autosize)) {
  width: 32px;
  height: 32px;
}

.shadow {
  box-shadow: -2px 1px 11px 0px rgba(0, 0, 0, 0.25);
}

.button-play {
  vertical-align: top;
  cursor: pointer;
  outline: none;
  border: 0;
  padding: 0;
  background-color: transparent;
  width: 100%;
  height: 100%;
  position: relative;
}
.button-play.circle {
  background: var(--staytuned-button-play-circle-color, #e5e7e9);
  border-width: var(--staytuned-button-play-circle-border-width, 0);
  border-color: var(--staytuned-button-play-circle-border-color, transparent);
  border-style: solid;
  border-radius: 50%;
}
.button-play.circle slot > * {
  transform: scale(0.35);
}
.button-play.circle .circle-overlay {
  border-radius: 50%;
}
.button-play svg,
.button-play img {
  fill: var(--staytuned-play-button-color, #1a1a1f);
  stroke: var(--staytuned-play-button-color, #1a1a1f);
  vertical-align: top;
  width: 100% !important;
  height: 100% !important;
}

.button-play.clicked .animationOnClick {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: #a6a6a6;
  border-radius: 50%;
  -webkit-animation: sk-scaleout 0.5s;
  animation: sk-scaleout 0.5s;
  animation-fill-mode: forwards;
}
@-webkit-keyframes sk-scaleout {
  0% {
    -webkit-transform: scale(0);
  }
  100% {
    -webkit-transform: scale(1);
    opacity: 0;
  }
}
@keyframes sk-scaleout {
  0% {
    -webkit-transform: scale(0);
    transform: scale(0);
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 0;
  }
}

.button-play:hover.circle .circle-overlay {
  background: var(--staytuned-circle-overlay-color, transparent);
  transition: 1s;
}

.spinner {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  opacity: 0;
  transition: opacity 0.3s ease-out;
  box-sizing: border-box;
  display: block;
}
.spinner span {
  display: block;
  box-sizing: border-box;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  clip: rect(20px, 40px, 40px, 0);
  opacity: 0;
  animation: none;
}
.spinner span::after {
  content: "";
  box-sizing: border-box;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  border: 2px solid var(--staytuned-button-play-spinner-color, #1a1a1f);
  border-radius: 50%;
}

.loading .spinner {
  opacity: 1;
  transition: opacity 0.3s ease-out 0.3s;
  animation: spin 3s linear infinite;
}
.loading .spinner span {
  opacity: 1;
  transition: opacity 0.3s ease-out;
  animation: spin 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(1turn);
  }
}