/* A brief first-screen veil. JavaScript alone removes hidden; the page stays
   immediately available when scripting is unavailable. The lotus never spins. */
.site-loader[hidden] {
  display: none !important;
}

.site-loader {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  box-sizing: border-box;
  padding: max(28px, env(safe-area-inset-top)) max(28px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(28px, env(safe-area-inset-left));
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 50% 48%, #3b284a14 0, transparent 42%),
    #09070dfc;
  opacity: 1;
  transition: opacity 320ms ease-out;
}

.site-loader.is-leaving {
  opacity: 0;
  pointer-events: none;
}

.site-loader__seal {
  position: relative;
  display: grid;
  place-items: center;
  width: 88px;
  aspect-ratio: 1;
  flex: none;
}

.site-loader__seal > img {
  display: block;
  width: 82px;
  height: 82px;
  max-width: 100%;
  object-fit: contain;
  opacity: .88;
  filter: drop-shadow(0 0 5px #b591cc24);
}

/* Only this empty decorative ring rotates. A dim little moon traces its rim. */
.site-loader__orbit {
  position: absolute;
  inset: -19px;
  border: 1px solid #b89bb41a;
  border-top-color: #ccb5cb39;
  border-right-color: #93b8c528;
  border-bottom-color: #bfc99c1f;
  border-radius: 50%;
  box-shadow: 0 0 13px #b392d00b, inset 0 0 10px #ddbea507;
  transform-origin: center;
  pointer-events: none;
  animation: site-loader-orbit 3.6s linear infinite;
}

.site-loader__orbit::after {
  content: "";
  position: absolute;
  inset-block-start: -5px;
  inset-inline-start: calc(50% - 5px);
  width: 10px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #d7cdbb, #b9b0a4 42%, #706e7a 78%, #443d50);
  box-shadow: inset -2px -1px 3px #221b3555, 0 0 8px #d7c0c325;
  opacity: .78;
}

.site-loader.is-leaving .site-loader__orbit {
  animation-play-state: paused;
}

@keyframes site-loader-orbit {
  from { transform: rotate(-35deg); }
  to { transform: rotate(325deg); }
}

@media (max-width: 380px), (max-height: 420px) {
  .site-loader__seal { width: 76px; }
  .site-loader__seal > img { width: 70px; height: 70px; }
  .site-loader__orbit { inset: -16px; }
}

@media (prefers-reduced-motion: reduce) {
  .site-loader { transition: none; }
  .site-loader__orbit { animation: none; transform: rotate(-35deg); }
}

@media (forced-colors: active) {
  .site-loader { background: Canvas; }
  .site-loader__seal > img { filter: none; opacity: 1; }
  .site-loader__orbit { border-color: GrayText; box-shadow: none; }
  .site-loader__orbit::after { background: CanvasText; box-shadow: none; opacity: 1; }
}
