.site-loader { display: none; }
html.site-pending, html.site-loading { overflow: hidden; background: #e5dcf5; }
html.site-pending body { background: #e5dcf5; }
html.site-pending body > :not(.site-loader) { visibility: hidden; }
html.site-pending body > :not(.site-loader),
html.site-pending body > :not(.site-loader) * { animation: none !important; }
html.site-loading .site-loader,
html.site-revealing .site-loader {
  display: flex;
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  align-items: center;
  justify-content: center;
  background: #e5dcf5;
  pointer-events: all;
  opacity: 1;
  transition: opacity 180ms ease;
}
.site-loader-logo {
  width: min(620px, 82vw);
  aspect-ratio: 2172 / 844;
  display: grid;
  place-items: center;
}
.site-loader-logo > img,
.site-loader-logo > svg {
  display: block;
  width: 100%;
  height: auto;
}
.logo-wave {
  animation: collage-wave 2.4s ease-in-out infinite;
  animation-delay: var(--wave-delay);
}
@keyframes collage-wave {
  0%, 60%, 100% { transform: translateY(0); }
  20% { transform: translateY(-38px); }
  40% { transform: translateY(12px); }
}
html.site-revealing .site-loader {
  opacity: 0;
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  .logo-wave { animation: none; }
  html.site-revealing .site-loader { transition: none; }
}
@media print {
  .site-loader { display: none !important; }
  html.site-pending body > :not(.site-loader) { visibility: visible; }
}

/* Returning to the board should not replay the staggered entrance. */
html.site-instant .board-name,
html.site-instant .corkboard > *,
html.site-instant .corkboard > .pinned-item > .pushpin,
html.site-instant .graduation-note > .tape,
html.site-instant .visitor-sticky::before { animation: none !important; }
