/* Access Hero: a held threshold, not an opening door. */
.access-hero .zf-access-signal-layer {
  opacity: 0;
  pointer-events: none;
}
.access-hero.zf-access-running .zf-access-signal-layer { opacity: 1; }
.access-hero .zf-access-signal-halo {
  fill: #7bcfff;
  filter: drop-shadow(0 0 5px rgba(65, 166, 245, .66));
}
.access-hero .zf-access-signal-trace {
  fill: #63baf6;
  filter: drop-shadow(0 0 2px rgba(57, 156, 234, .55));
}
.access-hero .zf-access-signal-dot {
  fill: #c6f1ff;
  filter: drop-shadow(0 0 3px rgba(93, 203, 255, .86));
}
@media (prefers-reduced-motion: no-preference) {
  .access-hero.zf-access-running [data-access-gate-glow] {
    animation: zf-access-gate-glow 9.6s ease-in-out infinite;
  }
  .access-hero.zf-access-running [data-access-boundary] {
    animation: zf-access-gate-line 9.6s ease-in-out infinite;
  }
  @keyframes zf-access-gate-glow {
    0%, 24%, 100% { opacity: .52; }
    58%, 72% { opacity: .65; }
  }
  @keyframes zf-access-gate-line {
    0%, 24%, 100% { stroke-opacity: .42; }
    58%, 72% { stroke-opacity: .72; }
  }
}
@media (max-width: 679px) {
  .access-hero .zf-access-signal-layer { opacity: .75; }
  .access-hero:not(.zf-access-running) .zf-access-signal-layer { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .access-hero .zf-access-signal-layer { display: none !important; }
  .access-hero [data-access-boundary],
  .access-hero [data-access-gate-glow] {
    animation: none !important;
    transition: none !important;
  }
}
