/* Shared desktop/mobile loader used by the home and wine pages. */
.page-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 50%, rgba(201,163,91,0.12), transparent 28%),
    radial-gradient(circle at 50% 58%, rgba(110,31,36,0.16), transparent 42%),
    #080705;
  opacity: 1;
  visibility: visible;
  transition: opacity 680ms cubic-bezier(.16,1,.3,1), visibility 680ms step-end;
  animation: loaderAutoHide 680ms cubic-bezier(.16,1,.3,1) 2.65s forwards;
}
.page-loader::before {
  content: "";
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(circle at 50% 50%, rgba(224,191,128,0.22), transparent 12%),
    conic-gradient(from 120deg, transparent, rgba(224,191,128,0.16), transparent 28%, transparent);
  opacity: 0.38;
  filter: blur(18px);
  animation: loaderHalo 2.8s ease-in-out infinite;
}
.page-loader-glow {
  position: absolute;
  width: min(42vw, 340px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(224,191,128,0.34), rgba(201,163,91,0.12) 28%, transparent 68%);
  filter: blur(18px);
  animation: loaderBreath 1.8s ease-in-out infinite;
}
.page-loader-spade {
  position: relative;
  z-index: 1;
  font-family: var(--f-display, "Cormorant Garamond", "Iowan Old Style", Georgia, serif);
  font-size: clamp(76px, 11vw, 154px);
  line-height: 1;
  color: var(--gold-2, #e0bf80);
  text-shadow:
    0 0 18px rgba(224,191,128,0.62),
    0 0 60px rgba(201,163,91,0.42),
    0 18px 70px rgba(0,0,0,0.72);
  animation: loaderSpade 1.55s ease-in-out infinite;
}
.page-loader.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  animation: none;
}

@keyframes loaderBreath {
  0%, 100% { transform: scale(0.94); opacity: 0.62; }
  50% { transform: scale(1.08); opacity: 1; }
}

@keyframes loaderHalo {
  0%, 100% { transform: rotate(0deg) scale(0.98); opacity: 0.24; }
  50% { transform: rotate(12deg) scale(1.04); opacity: 0.46; }
}

@keyframes loaderSpade {
  0%, 100% {
    transform: translateY(0) scale(1);
    filter: brightness(0.96);
  }
  50% {
    transform: translateY(-4px) scale(1.035);
    filter: brightness(1.18);
  }
}

@keyframes loaderAutoHide {
  to {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}


.page-loader[hidden]{display:none}
.page-loader.wine-loader{animation:none}
html.wine-loading{overflow:hidden}
@media (prefers-reduced-motion:reduce){
  .page-loader::before,.page-loader-glow,.page-loader-spade{animation:none!important}
  .wine-loader{transition:none}
}
