@keyframes nf-navbar-glow-pulse {
  0%, 76% {
    box-shadow: var(--nf-shadow-soft);
    border-color: rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.04);
  }
  82% {
    box-shadow:
      var(--nf-shadow-soft),
      0 0 10px -4px rgba(0, 234, 255, 0.12);
    border-color: rgba(0, 234, 255, 0.08);
    background:
      radial-gradient(circle at 15% 50%, rgba(0, 234, 255, 0.035), transparent 42%),
      rgba(255, 255, 255, 0.04);
  }
  88% {
    box-shadow:
      var(--nf-shadow-soft),
      0 0 24px -8px rgba(0, 234, 255, 0.32),
      0 0 36px -18px rgba(122, 92, 255, 0.22);
    border-color: rgba(0, 234, 255, 0.22);
    background:
      radial-gradient(circle at 12% 50%, rgba(0, 234, 255, 0.1), transparent 42%),
      radial-gradient(circle at 88% 50%, rgba(255, 79, 216, 0.07), transparent 46%),
      rgba(255, 255, 255, 0.045);
  }
  93%, 95% {
    box-shadow:
      var(--nf-shadow-soft),
      0 0 56px -4px rgba(0, 234, 255, 0.78),
      0 0 88px -18px rgba(122, 92, 255, 0.62),
      0 0 120px -28px rgba(255, 79, 216, 0.5);
    border-color: rgba(0, 234, 255, 0.72);
    background:
      radial-gradient(circle at 8% 50%, rgba(0, 234, 255, 0.22), transparent 40%),
      radial-gradient(circle at 50% 50%, rgba(122, 92, 255, 0.14), transparent 62%),
      radial-gradient(circle at 92% 50%, rgba(255, 79, 216, 0.2), transparent 42%),
      rgba(255, 255, 255, 0.065);
  }
  98% {
    box-shadow:
      var(--nf-shadow-soft),
      0 0 20px -6px rgba(0, 234, 255, 0.26),
      0 0 32px -16px rgba(122, 92, 255, 0.18);
    border-color: rgba(0, 234, 255, 0.16);
    background:
      radial-gradient(circle at 14% 50%, rgba(0, 234, 255, 0.07), transparent 42%),
      radial-gradient(circle at 86% 50%, rgba(255, 79, 216, 0.05), transparent 46%),
      rgba(255, 255, 255, 0.04);
  }
  100% {
    box-shadow: var(--nf-shadow-soft);
    border-color: rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.04);
  }
}

@keyframes nf-navbar-logo-shimmer {
  0%, 76% {
    box-shadow: var(--nf-shadow-soft);
    border-color: rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.04);
    filter: brightness(1);
    transform: scale(1);
  }
  82% {
    box-shadow:
      var(--nf-shadow-soft),
      0 0 8px -4px rgba(0, 234, 255, 0.16);
    border-color: rgba(0, 234, 255, 0.1);
    filter: brightness(1.015);
  }
  88% {
    box-shadow:
      var(--nf-shadow-soft),
      0 0 20px -6px rgba(0, 234, 255, 0.38),
      0 0 32px -14px rgba(255, 79, 216, 0.24);
    border-color: rgba(122, 92, 255, 0.26);
    filter: brightness(1.06);
    transform: scale(1.005);
  }
  93%, 95% {
    box-shadow:
      var(--nf-shadow-soft),
      0 0 48px 0 rgba(0, 234, 255, 0.82),
      0 0 72px -8px rgba(122, 92, 255, 0.66),
      0 0 92px -18px rgba(255, 79, 216, 0.54);
    border-color: rgba(0, 234, 255, 0.68);
    filter: brightness(1.28);
    transform: scale(1.03);
  }
  98% {
    box-shadow:
      var(--nf-shadow-soft),
      0 0 18px -4px rgba(0, 234, 255, 0.32),
      0 0 28px -12px rgba(122, 92, 255, 0.2);
    border-color: rgba(0, 234, 255, 0.14);
    filter: brightness(1.04);
    transform: scale(1.004);
  }
  100% {
    box-shadow: var(--nf-shadow-soft);
    border-color: rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.04);
    filter: brightness(1);
    transform: scale(1);
  }
}

@keyframes nf-navbar-navlink-highlight {
  0%, 78% {
    text-shadow: none;
    color: var(--nf-text-300);
  }
  84% {
    text-shadow: 0 0 4px rgba(0, 234, 255, 0.18);
  }
  89% {
    text-shadow:
      0 0 6px rgba(0, 234, 255, 0.4),
      0 0 10px rgba(122, 92, 255, 0.18);
    color: var(--nf-text-250);
  }
  93%, 95% {
    text-shadow:
      0 0 12px rgba(0, 234, 255, 0.85),
      0 0 26px rgba(122, 92, 255, 0.52),
      0 0 38px rgba(255, 79, 216, 0.3);
    color: #fff;
  }
  98% {
    text-shadow:
      0 0 6px rgba(0, 234, 255, 0.3),
      0 0 12px rgba(122, 92, 255, 0.16);
    color: var(--nf-text-250);
  }
  100% {
    text-shadow: none;
    color: var(--nf-text-300);
  }
}

@keyframes nf-navbar-brand-title-shimmer {
  0%, 76% {
    background-position: 0% 50%;
    -webkit-text-fill-color: var(--nf-text-100);
    background-image: none;
    text-shadow: none;
    filter: brightness(1);
  }
  83% {
    -webkit-text-fill-color: transparent;
    background-image: linear-gradient(90deg, var(--nf-text-100), #e5fcff, var(--nf-text-100));
    background-size: 200% 100%;
    background-position: 20% 50%;
    -webkit-background-clip: text;
    background-clip: text;
  }
  89% {
    background-position: 65% 50%;
    text-shadow: 0 0 8px rgba(0, 234, 255, 0.18);
    filter: brightness(1.04);
  }
  93%, 95% {
    -webkit-text-fill-color: transparent;
    background-image: linear-gradient(90deg, #00eaff, #7a5cff, #ff4fd8, #00eaff);
    background-size: 200% 100%;
    background-position: 96% 50%;
    -webkit-background-clip: text;
    background-clip: text;
    text-shadow: 0 0 22px rgba(122, 92, 255, 0.46);
    filter: brightness(1.14);
  }
  98% {
    background-position: 110% 50%;
    text-shadow: 0 0 10px rgba(122, 92, 255, 0.2);
    filter: brightness(1.03);
    -webkit-text-fill-color: transparent;
    background-image: linear-gradient(90deg, #e5fcff, var(--nf-text-100), #f5e9ff);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
  }
  100% {
    -webkit-text-fill-color: var(--nf-text-100);
    background-image: none;
    text-shadow: none;
    filter: brightness(1);
  }
}

.has-reveal {
  animation: nf-fade-up 600ms var(--nf-ease-standard) both;
}

.has-reveal[data-reveal-delay="1"] {
  animation-delay: 80ms;
}

.has-reveal[data-reveal-delay="2"] {
  animation-delay: 160ms;
}

.has-reveal[data-reveal-delay="3"] {
  animation-delay: 240ms;
}

@media (prefers-reduced-motion: reduce) {
  .has-reveal {
    animation: none;
  }
  .nf-site-header,
  .nf-site-brand__media,
  .nf-site-nav a,
  .nf-site-brand__name {
    animation: none !important;
  }
}
