/* V4.6 — Homepage loader follows the PUBLISHED/DRAFT Homepage Builder theme. */
.zn-home-loader{
  --loader-primary:var(--cb-builder-primary,var(--primary,#d7ad55));
  --loader-secondary:var(--cb-builder-secondary,var(--secondary,#8b6cd9));
  --loader-bg:var(--cb-builder-bg,#07090d);
  --loader-surface:var(--cb-builder-surface,#10151d);
  --loader-text:var(--cb-builder-text,#e8edf4);
  --loader-muted:var(--cb-builder-muted,#98a2b1);
  position:fixed;
  inset:0;
  z-index:2147483000;
  display:grid;
  place-items:center;
  min-height:100dvh;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 48%,color-mix(in srgb,var(--loader-primary) 15%,transparent),transparent 25%),
    radial-gradient(circle at 50% 48%,color-mix(in srgb,var(--loader-secondary) 8%,transparent),transparent 44%),
    linear-gradient(135deg,color-mix(in srgb,var(--loader-bg) 95%,black) 0%,var(--loader-bg) 52%,color-mix(in srgb,var(--loader-bg) 90%,var(--loader-surface)) 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,color-mix(in srgb,var(--loader-text) 1.2%,transparent) 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,.72);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,color-mix(in srgb,var(--loader-primary) 12%,transparent) 0%,color-mix(in srgb,var(--loader-secondary) 5%,transparent) 38%,transparent 70%);
  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 color-mix(in srgb,var(--loader-primary) 22%,transparent));
  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 color-mix(in srgb,var(--loader-primary) 45%,transparent);border-radius:50%;
  background:radial-gradient(circle at 50% 38%,color-mix(in srgb,var(--loader-primary) 18%,transparent),color-mix(in srgb,var(--loader-bg) 90%,black) 70%);
  color:var(--loader-primary);font-family:var(--cb-builder-heading-font,Georgia,"Times New Roman",serif);font-size:21px;font-weight:700;letter-spacing:.08em;
  box-shadow:0 0 34px color-mix(in srgb,var(--loader-primary) 16%,transparent)
}
.zn-home-loader-logo-glow{position:absolute;left:50%;top:50%;width:104px;height:104px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--loader-primary) 22%,transparent),color-mix(in srgb,var(--loader-secondary) 7%,transparent) 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 color-mix(in srgb,var(--loader-primary) 20%,transparent);border-radius:50%;box-shadow:inset 0 0 18px color-mix(in srgb,var(--loader-primary) 6%,transparent)}
.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:var(--loader-primary);border-right-color:var(--loader-secondary);filter:drop-shadow(0 0 5px color-mix(in srgb,var(--loader-primary) 34%,transparent));animation:zn-loader-spin 1.05s linear infinite}
.zn-home-loader-ring span{inset:12px;border:1px solid color-mix(in srgb,var(--loader-primary) 18%,transparent)}
.zn-home-loader-copy{display:grid;gap:5px;min-height:29px}
.zn-home-loader-copy strong{color:var(--loader-primary);font-family:var(--cb-builder-heading-font,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 color-mix(in srgb,var(--loader-primary) 22%,transparent)}
.zn-home-loader-copy small{color:var(--loader-muted);font-family:var(--cb-builder-body-font,system-ui,sans-serif);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,color-mix(in srgb,var(--loader-primary) 40%,transparent) 17%,color-mix(in srgb,var(--loader-primary) 40%,transparent) 83%,transparent)}
.zn-home-loader-line span{position:absolute;top:0;bottom:0;width:44%;background:linear-gradient(90deg,transparent,var(--loader-primary),transparent);box-shadow:0 0 8px color-mix(in srgb,var(--loader-primary) 42%,transparent);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}}
