/* ===== Preloader (same as adminse) ===== */
#preloader.uib-pl { position: fixed; inset: 0; z-index: 3000; display: grid; place-items: center; background: none; color: #e8f5ea; overflow: hidden; font-family: 'Inter', system-ui, sans-serif; opacity: 1; visibility: visible; transition: none; }
.uib-pl .pl-curtain { position: absolute; left: 0; right: 0; height: 50.6%; background: radial-gradient(140% 160% at 50% 0%, #163a24, #06100a 70%); transition: transform .95s cubic-bezier(.76, 0, .24, 1) .12s; }
.uib-pl .pl-curtain.top { top: 0; }
.uib-pl .pl-curtain.bottom { bottom: 0; background: radial-gradient(140% 160% at 50% 100%, #163a24, #06100a 70%); }
#preloader.uib-pl.done .pl-curtain.top { transform: translateY(-101%); }
#preloader.uib-pl.done .pl-curtain.bottom { transform: translateY(101%); }
.uib-pl .pl-glow { position: absolute; width: 520px; height: 520px; max-width: 120vw; border-radius: 50%; background: radial-gradient(circle, rgba(111, 220, 63, .28), transparent 65%); filter: blur(20px); animation: plGlow 3s ease-in-out infinite alternate; }
.uib-pl .pl-core { position: relative; z-index: 2; display: grid; gap: 22px; justify-items: center; transition: opacity .4s, transform .6s cubic-bezier(.2, .8, .2, 1); }
#preloader.uib-pl.done .pl-core { opacity: 0; transform: scale(.88); }
.uib-pl .pl-mark { width: 84px; height: 84px; display: grid; place-items: center; position: relative; }
.uib-pl .pl-dot { width: 16px; height: 16px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #d3ffb0, #6fdc3f 70%); box-shadow: 0 0 18px #6fdc3f, 0 0 40px rgba(111, 220, 63, .55); animation: plPop 1.8s cubic-bezier(.2, .8, .2, 1) infinite; }
.uib-pl .pl-orbit { position: absolute; inset: -34px; animation: plSpin 3.2s linear infinite; }
.uib-pl .pl-orbit i { position: absolute; width: 9px; height: 9px; border-radius: 50%; background: #6fdc3f; box-shadow: 0 0 12px #6fdc3f; }
.uib-pl .pl-orbit i:nth-child(1) { top: 0; left: 50%; }
.uib-pl .pl-orbit i:nth-child(2) { bottom: 8%; left: 8%; background: #8f7cff; box-shadow: 0 0 12px #8f7cff; width: 7px; height: 7px; }
.uib-pl .pl-orbit i:nth-child(3) { bottom: 8%; right: 8%; background: #4cc9f0; box-shadow: 0 0 12px #4cc9f0; width: 6px; height: 6px; }
.uib-pl .pl-word { display: flex; flex-wrap: wrap; justify-content: center; max-width: 320px; font-size: 1.15rem; font-weight: 700; letter-spacing: .04em; gap: 1px; }
.uib-pl .pl-word span { display: inline-block; opacity: 0; translate: 0 18px; animation: plLetter .7s cubic-bezier(.2, .8, .2, 1) forwards; animation-delay: calc(var(--i) * .06s + .2s); }
.uib-pl .pl-word .pl-sp { width: .4em; }
.uib-pl .pl-bar { width: 240px; height: 4px; border-radius: 9px; background: rgba(255, 255, 255, .12); overflow: hidden; }
.uib-pl .pl-bar i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, #6fdc3f, #d3ffb0); box-shadow: 0 0 16px #6fdc3f; }
.uib-pl .pl-foot { width: 240px; display: flex; justify-content: space-between; font-size: .8rem; color: rgba(232, 245, 234, .65); }
.uib-pl .pl-foot b { color: #fff; font-variant-numeric: tabular-nums; }
@keyframes plGlow { from { transform: scale(.85); opacity: .7; } to { transform: scale(1.15); opacity: 1; } }
@keyframes plPop { 0%, 100% { transform: scale(1) rotate(0); } 50% { transform: scale(1.1) rotate(-6deg); } }
@keyframes plSpin { to { transform: rotate(360deg); } }
@keyframes plLetter { to { opacity: 1; translate: 0 0; } }
@media (prefers-reduced-motion: reduce) { .uib-pl .pl-glow, .uib-pl .pl-dot, .uib-pl .pl-orbit { animation: none; } .uib-pl .pl-word span { animation-duration: .01s; } }

/* if the page script cannot load, the preloader still goes away after 8 seconds */
#preloader.uib-pl { animation: plGone 0s 8s forwards; }
@keyframes plGone { to { visibility: hidden; opacity: 0; pointer-events: none; } }
