.site-preloader[hidden] { display: none; }
.site-preloader {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: grid;
  place-items: center;
  padding: max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));
  background: radial-gradient(ellipse at 50% 38%, #660024, #3d0012 75%);
  color: #fff;
  opacity: 1;
  transition: opacity 300ms ease;
}
.site-preloader::before {
  content: '';
  position: absolute;
  inset: 20px;
  border: 1px solid #ffffff18;
  pointer-events: none;
}
.site-preloader.is-ready { opacity: 0; pointer-events: none; }
.preloader-brand { width: min(100%, 380px); text-align: center; }
.preloader-emblem {
  width: clamp(156px, 42vw, 212px);
  aspect-ratio: 1;
  margin: 0 auto 30px;
  filter: drop-shadow(0 18px 28px #1d000b66);
  perspective: 700px;
}
.preloader-logo { display: block; width: 100%; height: 100%; overflow: visible; }
.preloader-logo-disc { fill: #7b002d; transform-origin: 50% 50%; animation: preloader-disc-in .55s cubic-bezier(.2,.8,.2,1) both; }
.preloader-logo-ring {
  fill: none;
  stroke: #fff;
  stroke-width: 10;
  stroke-linecap: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  transform: rotate(-90deg);
  transform-origin: 50% 50%;
  animation: preloader-draw-ring 1.05s cubic-bezier(.65,0,.25,1) .08s forwards;
}
.preloader-letter {
  fill: #fff;
  opacity: 0;
  transform-box: fill-box;
  transform-origin: center;
  will-change: transform, opacity;
}
.preloader-letter-n { animation: preloader-letter-n .62s cubic-bezier(.2,.9,.25,1.15) .38s forwards; }
.preloader-letter-m { animation: preloader-letter-m .62s cubic-bezier(.2,.9,.25,1.15) .54s forwards; }
.preloader-name { margin: 0; font: 600 16px/1.5 'Josefin Sans', system-ui, sans-serif; letter-spacing: .14em; }
.preloader-caption { margin: 10px 0 32px; font: 400 10px/1.8 'Josefin Sans', system-ui, sans-serif; letter-spacing: .08em; color: #ffffffcc; }
.preloader-track { width: 160px; height: 3px; margin: 0 auto; overflow: hidden; border-radius: 4px; background: #ffffff25; }
.preloader-track::after { content: ''; display: block; width: 56px; height: 100%; border-radius: inherit; background: #fff; animation: preloader-sweep 1.6s ease-in-out infinite; }
.preloader-status { margin: 16px 0 0; font: 400 12px/1.5 'Josefin Sans', system-ui, sans-serif; color: #ffffffcc; }
@keyframes preloader-sweep { 0% { transform: translateX(-56px); } 100% { transform: translateX(160px); } }
@keyframes preloader-disc-in { from { opacity: 0; transform: scale(.82); } to { opacity: 1; transform: scale(1); } }
@keyframes preloader-draw-ring { to { stroke-dashoffset: 0; } }
@keyframes preloader-letter-n {
  from { opacity: 0; transform: translate3d(-22px, 15px, 0) rotateY(-35deg) scale(.92); }
  to { opacity: 1; transform: translate3d(0, 0, 0) rotateY(0) scale(1); }
}
@keyframes preloader-letter-m {
  from { opacity: 0; transform: translate3d(22px, 15px, 0) rotateY(35deg) scale(.92); }
  to { opacity: 1; transform: translate3d(0, 0, 0) rotateY(0) scale(1); }
}
@media (max-width: 479px) { .site-preloader::before { inset: 12px; } .preloader-name { font-size: 14px; } .preloader-caption { font-size: 9px; } }
@media (prefers-reduced-motion: reduce) {
  .site-preloader { transition: none; }
  .preloader-logo-disc, .preloader-logo-ring, .preloader-letter, .preloader-track::after { animation: none; }
  .preloader-logo-ring { stroke-dashoffset: 0; }
  .preloader-letter { opacity: 1; transform: none; }
  .preloader-track::after { width: 100%; }
}
