.section-dots {
  position: fixed;
  z-index: 110;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  display: grid;
  padding: 4px 0;
}
.section-dots__link {
  position: relative;
  display: grid;
  place-items: center;
  width: 32px;
  height: 36px;
  border-radius: 50%;
}
.section-dots__link::after {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 4px;
  background: #686b75;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.72);
  transition: width 180ms ease, background 180ms ease;
}
.section-dots__link[aria-current]::after { width: 18px; background: #445ccc; }
.section-dots__link:hover::after { background: #111218; }
.section-dots__link:focus-visible { outline: 2px solid #5977e8; outline-offset: -2px; }
.section-dots__label {
  position: absolute;
  right: 100%;
  white-space: nowrap;
  padding: 8px 12px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 3px 16px #11121812;
  color: #252731;
  font: 500 12px/1.3 Inter, system-ui, sans-serif;
  opacity: 0;
  visibility: hidden;
  pointer-events: auto;
}
.section-dots__link:hover .section-dots__label,
.section-dots__link:focus-visible .section-dots__label { opacity: 1; visibility: visible; }
.modal-open .section-dots { visibility: hidden; }
@media (max-width: 700px) {
  .section-dots { right: 2px; }
  .section-dots__link { width: 24px; height: 32px; }
  .section-dots__link::after { width: 4px; height: 4px; }
  .section-dots__link[aria-current]::after { width: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .section-dots__link::after { transition: none; }
}
