body {
  scroll-behavior: smooth;
}

	.rotate-shrink {
  		animation-play-state: running!important;
		animation: rotate-shrink 30s linear infinite;
      animation-direction: alternate;
  		animation-iteration-count: infinite!;
	}
	.rotate-grow {
  		animation-play-state: running!important;
		  animation: rotate-grow 30s linear infinite;
  		animation-iteration-count: infinite!;
      animation-direction: alternate;
		transform: rotate(0deg) scale(0.5)
	}

@keyframes rotate-shrink {
  to {
    transform: rotate(360deg) scale(0.5)
  }
}
@keyframes rotate-grow {
  to {
    transform: rotate(360deg) scale(1)
  }
}

.progress {
  height: 4px;
  width: 0%;

  animation: progress 1s linear;
  /* Pause the animation */
  animation-play-state: paused;
  /* Bind the animation to scroll */
  animation-delay: calc(var(--scroll) * -1s);
  /* These last 2 properites clean up overshoot weirdness */
  animation-iteration-count: 1;
  animation-fill-mode: both;

  background-color: #0070f3;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
}
@keyframes progress {
  to {
    width: 100%;
  }
}

.microwave {

  animation: microwave 10s linear;
  animation-iteration-count: infinite;
  animation-fill-mode: both;
  transition: all 0.5s linear;

}
@keyframes microwave {
  to {
    transform: rotate(360deg);
  }
}

/* https://chriscoyier.net/2023/11/27/the-hanging-punctuation-property-in-css/ */

blockquote {
  text-indent: -0.45em; 
}
@​supports (hanging-punctuation: first) {
  blockquote {
    text-indent: 0;
    hanging-punctuation: first;
  }
}

.no-scrollbar {
    -ms-overflow-style: none;  /* Internet Explorer 10+ */
    scrollbar-width: none;  /* Firefox */
}
.no-scrollbar::-webkit-scrollbar { 
    display: none;  /* Safari and Chrome */
}