/* Вертикальная навигация по разделам (только широкие экраны; на узких скрыта) */
.section-dots{
  display:none;
  position:fixed;
  right:max(12px, env(safe-area-inset-right));
  top:50%;
  transform:translateY(-50%);
  z-index:90;
  flex-direction:column;
  align-items:flex-end;
  gap:10px;
  margin:0;
  padding:8px 0;
  list-style:none;
}
@media (min-width:900px){
  .section-dots{
    display:flex;
  }
}
@media print{
  .section-dots{display:none!important;}
}

.section-dots__link{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  min-width:28px;
  min-height:28px;
  padding:4px 0 4px 12px;
  text-decoration:none;
  outline-offset:4px;
  border-radius:999px;
}
.section-dots__link:focus-visible{
  outline:2px solid rgba(167,139,250,.85);
}

.section-dots__dot{
  flex-shrink:0;
  width:8px;
  height:8px;
  border-radius:50%;
  background:rgba(167,139,250,.28);
  border:1px solid rgba(167,139,250,.45);
  box-sizing:border-box;
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.section-dots__link.is-active .section-dots__dot{
  width:10px;
  height:10px;
  margin-right:-1px;
  background:#a78bfa;
  border-color:rgba(221,214,254,.9);
  box-shadow:0 0 14px rgba(167,139,250,.55),0 0 4px rgba(167,139,250,.4);
}

.section-dots__hint{
  position:absolute;
  right:calc(100% + 10px);
  top:50%;
  transform:translate(8px,-50%);
  padding:6px 12px;
  border-radius:10px;
  font-size:12px;
  font-weight:600;
  letter-spacing:.02em;
  white-space:nowrap;
  color:#e9d5ff;
  background:linear-gradient(135deg,rgba(15,23,42,.92) 0%,rgba(30,27,75,.88) 100%);
  border:1px solid rgba(167,139,250,.35);
  box-shadow:0 8px 24px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.04) inset;
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease, transform .2s ease;
}
@media (prefers-reduced-motion:reduce){
  .section-dots__hint,
  .section-dots__dot{
    transition:none;
  }
}
.section-dots__link:hover .section-dots__hint,
.section-dots__link:focus-visible .section-dots__hint{
  opacity:1;
  transform:translate(0,-50%);
}
