/* Page preloader: shown on first paint and between pages, so no screen ever blinks white. */
.preloader { --pl-bg: #0e0a07; --pl-fg: #f2e3c0; --pl-dim: rgba(242, 227, 192, .55); --pl-line: #e7c27d;
  position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; background: var(--pl-bg); color: var(--pl-fg);
  opacity: 1; visibility: visible; transition: opacity .55s cubic-bezier(.4, 0, .2, 1), visibility 0s linear 0s; }
.preloader.is-done { opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .55s cubic-bezier(.4, 0, .2, 1), visibility 0s linear .55s; }
.preloader.is-leaving { opacity: 1; visibility: visible; pointer-events: all; transition-duration: .28s; }
.preloader__inner { position: relative; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.preloader__mark { width: 54px; height: auto; filter: drop-shadow(0 0 22px rgba(231, 194, 125, .45)); animation: pl-breathe 2.2s ease-in-out infinite; }
.preloader__label { font: 600 .74rem/1 "Cinzel", "Trajan Pro", Georgia, serif; letter-spacing: .42em; text-transform: uppercase; color: var(--pl-dim); padding-left: .42em; }
.preloader__label strong { color: var(--pl-fg); font-weight: 600; }
.preloader__bar { width: 132px; height: 2px; border-radius: 2px; background: rgba(231, 194, 125, .18); overflow: hidden; }
.preloader__bar i { display: block; height: 100%; width: 38%; border-radius: 2px; background: var(--pl-line); animation: pl-slide 1.25s cubic-bezier(.45, 0, .25, 1) infinite; }
@keyframes pl-slide { from { transform: translateX(-110%); } to { transform: translateX(300%); } }
@keyframes pl-breathe { 0%, 100% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.045); opacity: 1; } }
body.adm .preloader { --pl-bg: #f4f3ef; --pl-fg: #1b2329; --pl-dim: #6b7681; --pl-line: #7c2f2b; }
body.adm body.adm .preloader__mark { filter: none; }
body.adm .preloader__bar { background: rgba(124, 47, 43, .14); }
@media (prefers-reduced-motion: reduce) { .preloader, .preloader.is-done { transition-duration: .01s; } .preloader__mark, .preloader__bar i { animation: none; } .preloader__bar i { width: 100%; } }
@media print { .preloader { display: none; } }
