/*! Numeral Swarm (numeral-swarm 1.0.0) by Frontier Templates. Styles for the vanilla build.
Licensed gem: Licensed with Full Access, for the sites you build; do not resell the gem itself. https://frontiertemplates.com/gems/numeral-swarm */
/* Numeral Swarm. Every rule is scoped to .nsw. Give the element a size; the swarm fills it. */
.nsw {
  --nsw-bg: #07080c;
  --nsw-ink: #f3f4f8;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  min-height: 300px;
  background: var(--nsw-bg);
  color: var(--nsw-ink);
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
/* the root sizes itself the same whatever the host page's reset says */
.nsw, .nsw *, .nsw *::before, .nsw *::after { box-sizing: border-box; }
.nsw-stage, .nsw-stage canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.nsw-text {
  position: absolute;
  left: 0;
  right: 0;
  top: 72%;
  padding: 0 24px;
  text-align: center;
  pointer-events: none;
}
/* the figure itself is drawn by the particles; its text stays for screen readers, search and copy */
.nsw-value {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.nsw-label {
  margin: 0 auto;
  max-width: 34ch;
  font-size: clamp(15px, 1.6vw, 20px);
  line-height: 1.4;
  letter-spacing: -0.005em;
  opacity: 0.82;
}
.nsw-dots {
  position: absolute;
  left: 50%;
  bottom: clamp(18px, 4vh, 36px);
  transform: translateX(-50%);
  display: flex;
  gap: 4px;
}
.nsw-pick {
  position: relative;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.nsw-pick::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 7px;
  height: 7px;
  margin: -3.5px 0 0 -3.5px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.32;
  transition: opacity 0.25s, transform 0.25s;
}
.nsw-pick[aria-pressed="true"]::before { opacity: 1; transform: scale(1.15); }
.nsw-pick:hover::before { opacity: 0.7; }
.nsw-pick:focus-visible { outline: 2px solid currentColor; outline-offset: -2px; border-radius: 50%; }
@media (max-width: 639px) {
  .nsw-text { top: 64%; }
}
@media (prefers-reduced-motion: reduce) {
  .nsw-pick::before { transition: none; }
}
