/* Greystone door arrival · WWL through-motion (Simple Property) */
html.spt-door-arrival-lock body {
  overflow: hidden;
}

/* One SP mark during arrival · overlay only (hide hero door behind parchment) */
html.spt-door-arrival-lock .spt-door-scene .spt-door-monogram {
  visibility: hidden;
}

.spt-door-arrival {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  background: rgba(244, 240, 230, 0.94);
  transform-origin: 50% 48%;
  opacity: 1;
  animation: sptDoorThrough 1.18s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  animation-delay: 420ms;
}

.spt-door-arrival--done {
  opacity: 0;
  visibility: hidden;
  animation: none;
}

@keyframes sptDoorThrough {
  0% {
    opacity: 1;
    transform: scale(0.88);
  }
  18% {
    opacity: 1;
    transform: scale(0.92);
  }
  100% {
    opacity: 0;
    transform: scale(1.18);
    visibility: hidden;
  }
}

.spt-door-arrival__glow {
  position: absolute;
  width: min(72vmin, 420px);
  height: min(72vmin, 420px);
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(201, 162, 39, 0.22) 0%,
    rgba(107, 92, 74, 0.1) 45%,
    rgba(244, 240, 230, 0) 70%
  );
  animation: sptDoorGlow 1.6s ease-out forwards;
}

@keyframes sptDoorGlow {
  0%,
  26% {
    opacity: 0.35;
    transform: scale(0.85);
  }
  60% {
    opacity: 0.9;
    transform: scale(1.05);
  }
  100% {
    opacity: 0;
    transform: scale(1.22);
  }
}

.spt-door-arrival__player {
  position: relative;
  z-index: 1;
  width: min(78vmin, 460px);
  height: min(78vmin, 460px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.spt-door-arrival__lottie,
.spt-door-arrival__svg {
  width: 100%;
  height: 100%;
  display: block;
}

.spt-door-arrival__monogram {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Source Sans 3", system-ui, sans-serif;
  font-size: clamp(1.35rem, 5.5vmin, 2.1rem);
  font-weight: 600;
  letter-spacing: 0.22em;
  padding-left: 0.22em;
  color: rgba(230, 232, 236, 0.88);
  text-shadow:
    0 1px 0 rgba(0, 0, 0, 0.45),
    0 0 18px rgba(201, 162, 39, 0.2);
  pointer-events: none;
  user-select: none;
}

@media (prefers-reduced-motion: reduce) {
  .spt-door-arrival {
    animation-duration: 0.45s;
    animation-delay: 0ms;
  }
  .spt-door-arrival__glow {
    animation: none;
  }
}
