.page-placeholder {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-background);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--motion-slow), visibility var(--motion-slow);
}

.is-loading .page-placeholder {
  opacity: 1;
  visibility: visible;
  pointer-events: all;
}

.is-loaded .page-placeholder,
.page-placeholder.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.page-placeholder__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  text-align: center;
  opacity: 0;
  transition: opacity var(--motion-default);
}

.page-placeholder__logo {
  width: clamp(10rem 50vw 120rem) ;
  height: auto;
  filter: drop-shadow(0 18px 26px rgba(0, 0, 0, 0.18));
  animation: placeholderPulse 1.4s ease-in-out infinite;
}

.page-placeholder.is-logo-visible .page-placeholder__inner {
  opacity: 1;
}

@keyframes placeholderPulse {
  0%,
  100% {
    transform: scale(1);
    opacity: 0.9;
  }
  50% {
    transform: scale(1.04);
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-placeholder__logo {
    animation: none;
  }
}
