/* Scroll reveal (lightweight, safe) */
.reveal {
  --reveal-transform: translate3d(0, 10px, 0);
  --reveal-base-filter: none;
  --reveal-filter: none;
  --reveal-opacity-from: 0;
  --reveal-duration: 950ms;
  --reveal-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --reveal-delay: 0ms;
  opacity: var(--reveal-opacity-from);
  transform: var(--reveal-transform);
  filter: var(--reveal-base-filter) var(--reveal-filter);
  transition: opacity var(--reveal-duration) var(--reveal-ease) var(--reveal-delay),
    transform var(--reveal-duration) var(--reveal-ease) var(--reveal-delay),
    filter calc(var(--reveal-duration) + 120ms) var(--reveal-ease) var(--reveal-delay);
  will-change: opacity, transform, filter;
}

.reveal--up {
  --reveal-transform: translate3d(0, 16px, 0);
}
.reveal--left {
  --reveal-transform: translate3d(-20px, 0, 0);
}
.reveal--right {
  --reveal-transform: translate3d(20px, 0, 0);
}
.reveal--soft-blur {
  --reveal-filter: blur(6px);
  --reveal-opacity-from: 0.35;
}
.reveal--blur {
  --reveal-duration: 900ms;
  --reveal-filter: blur(8px);
  --reveal-transform: translate3d(0, 10px, 0);
  --reveal-opacity-from: 0.2;
}

/* Targeted tuning for specific UI groups (desktop vs mobile). */
.reveal--slow-desktop {
  --reveal-duration: 1350ms;
}
@media (min-width: 1024px) {
  .reveal--slow-desktop {
    --reveal-duration: 1750ms;
  }
}

.reveal--smooth-mobile {
  /* Default: no-op; only changes on small screens. */
}
@media (max-width: 640px) {
  .reveal--smooth-mobile {
    --reveal-duration: calc(var(--reveal-duration) + 150ms);
    --reveal-transform: translate3d(0, 24px, 0);
  }
}

.reveal.reveal-in,
.reveal-in {
  opacity: 1;
  transform: none;
  filter: var(--reveal-base-filter);
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
  }
}

/* Mobile menu animation disabled (explicit). */
#inst-mobile-menu.navbar-collapse [data-inst-mobile-menu-backdrop] {
  opacity: 1;
  transition: none;
}

#inst-mobile-menu.navbar-collapse [data-inst-mobile-menu-panel] {
  transform: none;
  opacity: 1;
  transition: none;
  will-change: auto;
}

