/* ANVAROFF preloader v1.0 — kursor bilan yoziladi, bosiladi, belgilanadi.
   Fon #D7FF3B, logo #0C0C0D. Shrift kerak emas: logo SVG konturda. */
.anv-pl {
  --anv-acid: #D7FF3B; --anv-ink: #0C0C0D;
  position: fixed; inset: 0; z-index: 9999;
  display: grid; place-items: center;
  background: var(--anv-acid); color: var(--anv-ink);
  clip-path: inset(0 0 0 0);
  transition: clip-path .85s cubic-bezier(.76,0,.24,1);
}
.anv-pl.is-done { clip-path: inset(0 0 100% 0); pointer-events: none; }
.anv-pl-skip .anv-pl { display: none; }
/* ilova chizilguncha animatsiya kutib turadi (yuklanish paytidagi qotish uni buzmasin) */
.anv-pl:not(.is-play) .anv-pl__stage * { animation-play-state: paused !important; }
.anv-pl__stage { width: min(68vw, 560px); transition: transform .85s cubic-bezier(.76,0,.24,1), opacity .5s ease; }
.anv-pl.is-done .anv-pl__stage { transform: translateY(-14vh); opacity: 0; }
.anv-logo { display: block; width: 100%; height: auto; overflow: visible; }

/* 1) harflar birma-bir yoziladi, keyin bitta yaxlit kontur bilan almashadi */
.anv-l { fill: var(--anv-ink); opacity: 0;
  animation: anv-show 1ms step-end calc(0.3s + var(--i) * 0.120s + 0.120s) forwards, anv-hide 1ms step-end 1.30s forwards; }
.anv-full { fill: var(--anv-ink); opacity: 0;
  animation: anv-show 1ms step-end 1.28s forwards, anv-ink2acid 1ms step-end 2.20s forwards; }
/* qiymat boshida ham, oxirida ham bir xil: brauzer oxirgi kadrda progress=0.99999… beradi (1 emas) va
   step-end «to» qiymatini qo'llamay qoladi — shuning uchun «o», «f», «f» ko'rinmasdi */
@keyframes anv-show { from, to { opacity: 1; } }
@keyframes anv-hide { from, to { opacity: 0; } }
@keyframes anv-ink2acid { from, to { fill: var(--anv-acid); } }

/* 2) karet harf ortidan yuradi, miltillaydi, belgilanganda yo'qoladi */
.anv-caret { fill: var(--anv-ink); transform: translateX(-3565px);
  animation: anv-caret-type 0.96s steps(1, end) 0.3s forwards, anv-blink 1s steps(1) 1.26s infinite, anv-hide 1ms step-end 2.08s forwards; }
@keyframes anv-caret-type {
  0.000% { transform: translateX(-3565px); }
  12.500% { transform: translateX(-3057px); }
  25.000% { transform: translateX(-2536px); }
  37.500% { transform: translateX(-2067px); }
  50.000% { transform: translateX(-1559px); }
  62.500% { transform: translateX(-1203px); }
  75.000% { transform: translateX(-674px); }
  87.500% { transform: translateX(-334px); }
  99.990%, 100.000% { transform: translateX(0px); }
}
@keyframes anv-blink { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }

/* 3) kursor kirib keladi va bosadi */
.anv-ptr { fill: var(--anv-ink); stroke: var(--anv-acid); stroke-width: 2.2px; stroke-linejoin: round;
  transform-box: fill-box; transform-origin: 20% 10%; transform: translate(900px, 700px); opacity: 0;
  animation: anv-ptr-in 0.55s cubic-bezier(.16,1,.3,1) 1.36s forwards, anv-click .2s ease 1.96s; }
@keyframes anv-ptr-in { from { transform: translate(900px, 700px); opacity: 0; } 30% { opacity: 1; } to { transform: translate(0, 0); opacity: 1; } }
@keyframes anv-click { 0%, 100% { transform: translate(0, 0) scale(1); opacity: 1; } 45% { transform: translate(0, 0) scale(.78); opacity: 1; } }

/* 4) bosilgandan keyin yozuv belgilanadi (selection) */
.anv-hl { fill: var(--anv-ink); transform-box: fill-box; transform-origin: left center; transform: scaleX(0);
  animation: anv-sel .32s cubic-bezier(.65,0,.35,1) 2.08s forwards; }
@keyframes anv-sel { to { transform: scaleX(1); } }

/* pastki satr: yuklanish foizi */
.anv-pl__meta { position: absolute; left: clamp(20px, 4vw, 48px); right: clamp(20px, 4vw, 48px); bottom: clamp(20px, 4vw, 40px);
  display: flex; justify-content: space-between; font: 600 12px/1 'JetBrains Mono', ui-monospace, Menlo, monospace; letter-spacing: .14em; text-transform: uppercase; }
.anv-pl__count { font-variant-numeric: tabular-nums; }

@media (prefers-reduced-motion: reduce) {
  .anv-l, .anv-caret, .anv-ptr, .anv-hl, .anv-full { animation: none !important; }
  .anv-l { opacity: 0; } .anv-full { opacity: 1; } .anv-caret { transform: none; } .anv-ptr { transform: none; opacity: 1; }
  .anv-pl { transition: opacity .3s ease; } .anv-pl.is-done { clip-path: none; opacity: 0; }
}
