/* Block Loader by Brandon Boykin, adapted to CSS and the Batalhoti palette.
   Source and derivative license: /licenses/block-loader.txt */
.page-loading {
  display: grid;
  place-items: center;
  min-height: 100vh;
  min-height: 100svh;
  background: var(--ink);
}
.block-loader {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  width: 72px;
  height: 72px;
}
.block-loader > span {
  background: #6f706c;
  transform-origin: center;
  animation: block-loader-pulse 1.166667s cubic-bezier(.333, 0, .667, 1) infinite both;
}
.block-loader > span:nth-child(even) { background: #484841; }
.block-loader > span:nth-child(1),
.block-loader > span:nth-child(5),
.block-loader > span:nth-child(9) { animation-delay: .166667s; }
.block-loader > span:nth-child(2),
.block-loader > span:nth-child(6) { animation-delay: .25s; }
.block-loader > span:nth-child(3) { animation-delay: .333333s; }
.block-loader > span:nth-child(4),
.block-loader > span:nth-child(8) { animation-delay: .083333s; }
@keyframes block-loader-pulse {
  0%, 42.857143%, 100% { transform: scale(1); }
  21.428571% { transform: scale(0); }
}
@media (prefers-reduced-motion: reduce) {
  .block-loader > span { animation: none; transform: none; }
}
