html, body {
  height: 100%;
}

.breathing-bubble {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}

.breathing-bubble.satelite::before {
  content: '';
  width: 16px;
  height: calc(50% + 8px);
  position: absolute;
  display: block;
  top: -8px;
  left: calc(50% - 8px);
  z-index: 999;
  background-image:
    radial-gradient(
      circle at center 8px,
      #a855f7 0%,
      #a855f7 8px,
      transparent 8px,
      transparent 100%
    );
  transform-origin: center bottom;
}

.exercise-countdown {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* .exercise-countdown::before {
  display: block;
  align-items: center;
  justify-content: center;
  content: attr(data-second);
  font-size: inherit;
  transition: content 0.5s;
} */

.breathing-bubble.satelite.animate-coherentBreathing::before {
  animation: coherentRotate 12s infinite;
}

.breathing-bubble.satelite.animate-boxBreathing::before {
  animation: boxRotate 16s infinite;
}

.breathing-bubble.satelite.animate-fourSevenEightBreathing::before {
  animation: fourSevenEightRotate 19s infinite;
}

.breathing-instruction::after {
  content: var(--instruction-text-start, 'Press play to start');
  font-size: inherit;
  font-weight: 600;
  transition: content 0.5s;
  color: '#374151';
}

.breathing-instruction.animate-coherentBreathing::after {
  animation: coherentText 12s infinite;
}

.breathing-instruction.animate-boxBreathing::after {
  animation: boxText 16s infinite;
}

.breathing-instruction.animate-fourSevenEightBreathing::after {
  animation: fourSevenEightText 19s infinite;
}


@keyframes coherentRotate {
  0% {
    transform: rotate(0deg)
  }
  50% {
    transform: rotate(180deg)
  }
  100% {
    transform: rotate(360deg)
  }
}

@keyframes boxRotate {
  0%, 100% {
    transform: rotate(0deg)
  }
  25.5%, 50% {
    transform: rotate(180deg)
  }
  75.5%, 99.9% {
    transform: rotate(360deg)
  }
}

@keyframes fourSevenEightRotate {
  0% {
    transform: rotate(0deg)
  }
  21.06%, 57.89% {
    transform: rotate(180deg)
  }
  100% {
    transform: rotate(360deg)
  }
}

@keyframes coherentText {
  0%, 50% {
    content: var(--instruction-text-in, 'Breathe in');
  }
  50.01%, 100% {
    content: var(--instruction-text-out, 'Breathe out');
  }
}

@keyframes boxText {
  0%, 25% {
    content: var(--instruction-text-in, 'Breathe in');
  }
  25.5%, 50% {
    content: var(--instruction-text-hold, 'Hold');
  }
  50.5%, 75% {
    content: var(--instruction-text-out, 'Breathe out');
  }
  75.5%, 100% {
    content: var(--instruction-text-hold, 'Hold');
  }
}

@keyframes fourSevenEightText {
  0%, 21.05% {
    content: var(--instruction-text-in, 'Breathe in');
  }
  21.06%, 57.89% {
    content: var(--instruction-text-hold, 'Hold');
  }
  57.90%, 100% {
    content: var(--instruction-text-out, 'Breathe out');
  }
}

.flower-of-life {
  position: relative;
  width: 200px;
  height: 200px;
}

.circle {
  position: absolute;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: #3498db;
  box-shadow: 0 0 0 5px #3498db;
}

.flower-of-life::before,
.flower-of-life::after,
.flower-of-life .circle::before,
.flower-of-life .circle::after {
  content: '';
  position: absolute;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: #3498db;
  box-shadow: 0 0 0 5px #3498db;
}

.flower-of-life::before {
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}

.flower-of-life::after {
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.circle::before {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.circle::after {
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}

.flower-of-life .circle {
  top: 50%;
  left: 100%;
  transform: translate(-100%, -50%);
}
