/* Slow smooth glitter border + button sweep */

@keyframes glitterBorderSweep {
  0% { background-position: 200% center; }
  100% { background-position: -200% center; }
}

@keyframes btnGlitterSweep {
  0% { left: -100%; }
  100% { left: 150%; }
}

.glitter-border {
  position: relative;
  isolation: isolate;
}

.glitter-border::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: var(--gradient-glitter-border);
  background-size: 200% 100%;
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  mask-composite: exclude;
  pointer-events: none;
  z-index: 1;
  opacity: 0.72;
  animation: glitterBorderSweep var(--glitter-border-duration) var(--glitter-border-easing) infinite;
  transition: opacity 0.6s ease, filter 0.4s ease;
  filter: drop-shadow(0 0 6px rgba(197, 162, 110, 0.35));
}

.glitter-border:hover::before {
  opacity: 1;
  filter: drop-shadow(0 0 10px rgba(242, 198, 132, 0.55)) drop-shadow(0 0 18px rgba(197, 162, 110, 0.4));
}

.glitter-border > * {
  position: relative;
  z-index: 2;
}

.btn-glitter {
  position: relative;
  overflow: hidden;
}

.btn-glitter::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 60%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.35), transparent);
  pointer-events: none;
}

.btn-glitter:hover::after {
  animation: btnGlitterSweep 1.4s ease-in-out forwards;
}

.glitter-divider {
  width: 80px;
  height: 1px;
  margin: 0 auto 24px;
  background: var(--gold);
  opacity: 0.45;
}

.masthead-glitter-line {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--rule);
}

@media (prefers-reduced-motion: reduce) {
  .glitter-border::before {
    animation: none !important;
    opacity: 0.45;
    filter: none;
  }

  .glitter-border:hover::before {
    opacity: 0.55;
  }

  .btn-glitter:hover::after {
    animation: none !important;
  }
}

/* Keep hero badge + top Nominate CTA glitter live in perf-lite; trim elsewhere */
html.perf-lite .rubric-card.glitter-border::before,
html.perf-lite .calendar-tag.glitter-border::before,
html.perf-lite .form-nav .glitter-border::before,
html.perf-lite .cta-btn-row .glitter-border::before {
  animation: none !important;
  filter: none;
  opacity: 0.5;
}

html.perf-lite .rubric-card.glitter-border:hover::before,
html.perf-lite .calendar-tag.glitter-border:hover::before,
html.perf-lite .form-nav .glitter-border:hover::before,
html.perf-lite .cta-btn-row .glitter-border:hover::before {
  opacity: 0.62;
}

html.perf-lite .form-nav .btn-glitter:hover::after,
html.perf-lite .cta-btn-row .btn-glitter:hover::after {
  animation: none !important;
}
