/* ══════════════════════════════════════
   Instant Navigation — CSS
══════════════════════════════════════ */

/* Top progress bar */
.appify-nav-progress {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: 3px;
  z-index: 999999;
  pointer-events: none;
  opacity: 0;
  transition: opacity .2s;
}
.appify-nav-progress.is-active { opacity: 1; }
.appify-nav-progress-bar {
  height: 100%;
  background: var(--appify-brand, #f60404);
  width: 0%;
  border-radius: 0 2px 2px 0;
  transition: width .3s ease, background .3s;
  box-shadow: 0 0 8px var(--appify-brand, #f60404);
}

/* ── Page Transitions ───────────────── */

/* Fade */
body.appify-transition-fade {
  animation: appify-fade-in .25s ease forwards;
}
@keyframes appify-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* Slide */
body.appify-transition-slide {
  animation: appify-slide-in 280ms cubic-bezier(.22,1,.36,1) forwards;
}
@keyframes appify-slide-in {
  from { opacity: 0; transform: translateX(24px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* Slide RTL */
html[dir=rtl] body.appify-transition-slide {
  animation: appify-slide-in-rtl 280ms cubic-bezier(.22,1,.36,1) forwards;
}
@keyframes appify-slide-in-rtl {
  from { opacity: 0; transform: translateX(-24px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* Zoom */
body.appify-transition-zoom {
  animation: appify-zoom-in 260ms cubic-bezier(.22,1,.36,1) forwards;
}
@keyframes appify-zoom-in {
  from { opacity: 0; transform: scale(.97); }
  to   { opacity: 1; transform: scale(1); }
}

/* Exit overlay (covers screen while navigating) */
#appifyPageExit {
  position: fixed;
  inset: 0;
  z-index: 999998;
  background: #fff;
  pointer-events: none;
  opacity: 0;
  transition: opacity 150ms ease;
}
#appifyPageExit.is-leaving { opacity: 1; }
.appify-dark #appifyPageExit { background: var(--appify-dark-bg, #121212); }
