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

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

.shadow {
  box-shadow: var(--staytuned-button-play-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;
  transition: var(--staytuned-button-play-transition-time, 0);
}
.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 > * {
  transition: var(--staytuned-button-play-transition-time, 0);
  transform: scale(0.35);
}
.button-play.circle slot[name=play] > * {
  transform: scale(var(--staytuned-button-play-scale-play-slot, 0.42)) translate(15%, 0px);
}
.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: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);
  }
}