/* Minimal real eye-blink loader */

.loading-screen {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  background: var(--bg-primary, #fff);
  color: var(--text-primary, #1c0e0e);
  transition:
    opacity 0.28s ease,
    visibility 0.28s linear;
}

/* Landing pages with site chrome: shorter, quieter loader */
body.is-landing .loading-screen {
  background: var(--land-bg, var(--bg-primary, #fff));
}

body.is-landing .loading-eye__lid {
  background: var(--land-bg, var(--bg-primary, #fff));
}

body.is-bare-form .loading-screen {
  display: none !important;
}

[data-theme="dark"] .loading-screen {
  background: var(--bg-primary, #1f1f1f);
  color: var(--text-primary, #fff7f5);
}

.loading-screen.hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.loading-screen__stage {
  display: grid;
  justify-items: center;
  gap: 1.15rem;
}

.loading-text {
  margin: 0;
  position: relative;
  z-index: 2;
  color: var(--text-primary, #1c0e0e);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.3;
  opacity: 0.85;
}

[dir="rtl"] .loading-text {
  font-family: var(--font-persian, inherit);
  letter-spacing: 0;
}

[dir="ltr"] .loading-text {
  font-family: var(--font-english, Ubuntu, sans-serif);
}

[data-theme="dark"] .loading-text {
  color: var(--text-primary, #fff7f5);
}

.loading-eye {
  position: relative;
  width: min(9.5rem, 42vw);
  height: min(4.75rem, 21vw);
  display: grid;
  place-items: center;
  overflow: hidden;
  isolation: isolate;
}

.loading-eye__svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.loading-eye__stroke {
  fill: none;
  stroke: var(--primary-color, #911a1e);
  stroke-width: 2.5;
  stroke-linejoin: round;
}

.loading-eye__dot {
  fill: var(--primary-color, #911a1e);
  stroke: none;
}

.loading-eye__lid {
  position: absolute;
  left: -8%;
  right: -8%;
  height: 56%;
  background: var(--bg-primary, #fff);
  z-index: 2;
  pointer-events: none;
}

.loading-eye__lid--top {
  top: -2%;
  transform-origin: top center;
  animation: loadingLidTop 2.6s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}

.loading-eye__lid--bottom {
  bottom: -2%;
  transform-origin: bottom center;
  animation: loadingLidBottom 2.6s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}

.loading-eye__globe {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  animation: loadingEyeSquint 2.6s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}

[data-theme="dark"] .loading-eye__stroke {
  fill: none;
  stroke: var(--primary-color, #911a1e);
}

[data-theme="dark"] .loading-eye__dot {
  fill: var(--primary-color, #911a1e);
  stroke: none;
}

[data-theme="dark"] .loading-eye__lid {
  background: var(--bg-primary, #1f1f1f);
}

/* Lids meet in the middle (closed), then open */
@keyframes loadingLidTop {
  0%,
  12%,
  100% {
    transform: translateY(-102%);
  }
  18%,
  28% {
    transform: translateY(0);
  }
  36% {
    transform: translateY(-102%);
  }
  /* quick second blink */
  48% {
    transform: translateY(-102%);
  }
  52%,
  56% {
    transform: translateY(0);
  }
  62%,
  100% {
    transform: translateY(-102%);
  }
}

@keyframes loadingLidBottom {
  0%,
  12%,
  100% {
    transform: translateY(102%);
  }
  18%,
  28% {
    transform: translateY(0);
  }
  36% {
    transform: translateY(102%);
  }
  48% {
    transform: translateY(102%);
  }
  52%,
  56% {
    transform: translateY(0);
  }
  62%,
  100% {
    transform: translateY(102%);
  }
}

@keyframes loadingEyeSquint {
  0%,
  12%,
  100% {
    transform: scaleY(1);
  }
  18%,
  28% {
    transform: scaleY(0.12);
  }
  36% {
    transform: scaleY(1);
  }
  48% {
    transform: scaleY(1);
  }
  52%,
  56% {
    transform: scaleY(0.12);
  }
  62%,
  100% {
    transform: scaleY(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .loading-eye__lid--top,
  .loading-eye__lid--bottom,
  .loading-eye__globe {
    animation: none;
  }

  .loading-eye__lid--top {
    transform: translateY(-102%);
  }

  .loading-eye__lid--bottom {
    transform: translateY(102%);
  }
}
