/* ============================================================
   لودینگ اولیه — GAPYAR (پر شدن متن، الهام از dmroom.agency)
   ============================================================ */
.gpy-preloader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #030303;
  transition: opacity 0.55s ease, visibility 0.55s ease;
}
.gpy-preloader.is-done {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
body.gpy-preloader-active {
  overflow: hidden;
}

/* حلقهٔ چرخان تزئینی پشت لوگو */
.gpy-preloader-orbit {
  position: absolute;
  width: min(72vw, 420px);
  height: min(72vw, 420px);
  border-radius: 50%;
  border: 2px solid rgba(255, 107, 44, 0.45);
  box-shadow:
    0 0 80px rgba(255, 107, 44, 0.35),
    0 0 140px rgba(255, 154, 92, 0.15),
    inset 0 0 50px rgba(255, 107, 44, 0.12);
  animation: gpyPreloaderSpin 9s linear infinite;
}
.gpy-preloader-orbit::before {
  content: "";
  position: absolute;
  inset: 18%;
  border-radius: 50%;
  border: 1px dashed rgba(255, 154, 92, 0.35);
  box-shadow: inset 0 0 30px rgba(255, 107, 44, 0.08);
  animation: gpyPreloaderSpin 14s linear infinite reverse;
}
@keyframes gpyPreloaderSpin {
  to { transform: rotate(360deg); }
}

.gpy-preloader-core {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.75rem;
}

/* متن GAPYAR — خط دور + پر شدن */
.gpy-preloader-word {
  position: relative;
  font-family: var(--gpy-font, "Vazirmatn", Tahoma, sans-serif);
  font-size: clamp(2.4rem, 9vw, 4.5rem);
  font-weight: 900;
  letter-spacing: 0.22em;
  line-height: 1;
  user-select: none;
}
.gpy-preloader-outline,
.gpy-preloader-fill {
  display: block;
  white-space: nowrap;
}
.gpy-preloader-outline {
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(255, 255, 255, 0.92);
  text-stroke: 1.5px rgba(255, 255, 255, 0.92);
}
.gpy-preloader-fill {
  position: absolute;
  inset: 0;
  color: #fff;
  background: linear-gradient(135deg, #fff 0%, var(--gpy-orange-glow, #ff9a5c) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  clip-path: inset(0 100% 0 0);
  animation: gpyPreloaderTextFill 2.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
@keyframes gpyPreloaderTextFill {
  from { clip-path: inset(0 100% 0 0); }
  to   { clip-path: inset(0 0 0 0); }
}

/* نوار پیشرفت پایین */
.gpy-preloader-bar {
  width: min(280px, 70vw);
  height: 3px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  overflow: hidden;
}
.gpy-preloader-bar-fill {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--gpy-orange, #ff6b2c), var(--gpy-orange-glow, #ff9a5c));
  animation: gpyPreloaderBar 2.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
@keyframes gpyPreloaderBar {
  to { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .gpy-preloader-orbit { animation: none; }
  .gpy-preloader-orbit::before { animation: none; }
  .gpy-preloader-fill {
    animation-duration: 0.01s;
    clip-path: inset(0 0 0 0);
  }
  .gpy-preloader-bar-fill {
    animation-duration: 0.01s;
    width: 100%;
  }
}
