/* Homepage entrance loader — scoped to the public home only. */
.zn-home-loader{
  position:fixed;
  inset:0;
  z-index:2147483000;
  display:grid;
  place-items:center;
  min-height:100dvh;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 48%,rgba(128,75,15,.13),transparent 24%),
    radial-gradient(circle at 50% 48%,rgba(54,31,11,.11),transparent 42%),
    linear-gradient(135deg,#030303 0%,#0b0806 48%,#080503 100%);
  opacity:1;
  visibility:visible;
  transition:opacity .58s cubic-bezier(.22,.7,.18,1),visibility .58s step-end;
  animation:zn-loader-safety-hide .01s 5s forwards;
}
.zn-home-loader::before{
  content:"";
  position:absolute;
  inset:-30%;
  background:
    repeating-linear-gradient(118deg,rgba(255,255,255,.012) 0 1px,transparent 1px 7px),
    radial-gradient(ellipse at center,transparent 0 23%,rgba(0,0,0,.22) 68%,rgba(0,0,0,.76) 100%);
  opacity:.42;
  transform:rotate(-4deg);
  pointer-events:none;
}
.zn-home-loader::after{
  content:"";
  position:absolute;
  inset:0;
  box-shadow:inset 0 0 180px rgba(0,0,0,.82);
  pointer-events:none;
}
.zn-home-loader.is-leaving{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.zn-home-loader-ambient{
  position:absolute;
  left:50%;
  top:50%;
  width:min(620px,86vw);
  aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle,rgba(210,151,42,.095) 0%,rgba(123,72,15,.04) 35%,transparent 69%);
  filter:blur(12px);
  transform:translate(-50%,-50%);
  animation:zn-loader-breathe 2.7s ease-in-out infinite;
}
.zn-home-loader-center{
  position:relative;
  z-index:2;
  display:flex;
  width:min(330px,78vw);
  flex-direction:column;
  align-items:center;
  text-align:center;
  transform:translateY(-1.5vh);
}
.zn-home-loader-logo-wrap{
  position:relative;
  display:grid;
  place-items:center;
  width:94px;
  height:94px;
  margin-bottom:17px;
}
.zn-home-loader-logo{
  position:relative;
  z-index:2;
  display:block;
  max-width:88px;
  max-height:88px;
  width:auto;
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.75)) drop-shadow(0 0 13px rgba(219,162,48,.17));
  animation:zn-loader-logo-enter .9s cubic-bezier(.2,.75,.25,1) both;
}
.zn-home-loader-logo-fallback{
  position:relative;
  z-index:2;
  display:grid;
  place-items:center;
  width:68px;
  height:68px;
  border:1px solid rgba(230,175,64,.4);
  border-radius:50%;
  background:radial-gradient(circle at 50% 38%,rgba(226,166,54,.17),rgba(12,8,5,.86) 70%);
  color:#e0b653;
  font-family:Georgia,"Times New Roman",serif;
  font-size:21px;
  font-weight:700;
  letter-spacing:.08em;
  box-shadow:0 0 34px rgba(207,145,34,.13);
}
.zn-home-loader-logo-glow{
  position:absolute;
  left:50%;
  top:50%;
  width:104px;
  height:104px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(232,173,59,.18),rgba(206,135,23,.06) 42%,transparent 72%);
  filter:blur(6px);
  transform:translate(-50%,-50%);
}
.zn-home-loader-ring{
  position:relative;
  width:54px;
  height:54px;
  margin:0 0 17px;
  border:1px solid rgba(222,170,52,.18);
  border-radius:50%;
  box-shadow:inset 0 0 18px rgba(197,128,21,.045);
}
.zn-home-loader-ring::before,
.zn-home-loader-ring span{
  content:"";
  position:absolute;
  border-radius:50%;
}
.zn-home-loader-ring::before{
  inset:-1px;
  border:2px solid transparent;
  border-top-color:#e4b342;
  border-right-color:#a87518;
  filter:drop-shadow(0 0 5px rgba(221,164,43,.28));
  animation:zn-loader-spin 1.05s linear infinite;
}
.zn-home-loader-ring span{
  inset:12px;
  border:1px solid rgba(225,174,62,.16);
}
.zn-home-loader-copy{
  display:grid;
  gap:5px;
  min-height:29px;
}
.zn-home-loader-copy strong{
  color:#d9b454;
  font-family:Georgia,"Times New Roman",serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:.3em;
  line-height:1.2;
  text-indent:.3em;
  text-shadow:0 0 14px rgba(194,128,20,.18);
}
.zn-home-loader-copy small{
  color:#6f624f;
  font-size:7px;
  font-weight:800;
  letter-spacing:.22em;
  text-indent:.22em;
}
.zn-home-loader-line{
  position:relative;
  width:190px;
  height:1px;
  margin-top:20px;
  overflow:hidden;
  background:linear-gradient(90deg,transparent,rgba(205,151,42,.38) 17%,rgba(205,151,42,.38) 83%,transparent);
}
.zn-home-loader-line span{
  position:absolute;
  top:0;
  bottom:0;
  width:44%;
  background:linear-gradient(90deg,transparent,#edbd4f,transparent);
  box-shadow:0 0 8px rgba(232,177,62,.38);
  animation:zn-loader-line 1.35s ease-in-out infinite;
}
@keyframes zn-loader-safety-hide{to{opacity:0;visibility:hidden;pointer-events:none}}
@keyframes zn-loader-spin{to{transform:rotate(360deg)}}
@keyframes zn-loader-line{0%{left:-48%;opacity:.2}45%{opacity:1}100%{left:104%;opacity:.2}}
@keyframes zn-loader-breathe{0%,100%{opacity:.62;transform:translate(-50%,-50%) scale(.96)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}}
@keyframes zn-loader-logo-enter{0%{opacity:0;transform:translateY(9px) scale(.92)}100%{opacity:1;transform:none}}
@media(max-width:600px){
  .zn-home-loader-logo-wrap{width:82px;height:82px;margin-bottom:14px}
  .zn-home-loader-logo{max-width:76px;max-height:76px}
  .zn-home-loader-ring{width:48px;height:48px;margin-bottom:15px}
  .zn-home-loader-copy strong{font-size:10px;letter-spacing:.25em;text-indent:.25em}
  .zn-home-loader-line{width:150px;margin-top:17px}
}
@media(prefers-reduced-motion:reduce){
  .zn-home-loader-logo,.zn-home-loader-ambient{animation:none!important}
  .zn-home-loader{transition-duration:.2s!important}
  .zn-home-loader-ring::before{animation-duration:1.8s}
  .zn-home-loader-line span{animation-duration:2.2s}
}
