/* L4｜圆点渐显轨：初始近乎隐形，读过的章节逐点显现，当前点展开章名。 */

@media (min-width: 1001px) {
  .rail {
    width: 208px;
    padding: clamp(28px, 4vh, 44px) 20px 20px 26px;
  }

  .rail-toc-label,
  .rail-toc .toc-track,
  .rail-toc .toc-num { display: none; }

  .rail-toc ol { gap: 10px; }

  .rail-toc a {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 44px;
    padding: 4px 0 4px 22px;
  }

  /* 基准 .toc-row 是 18px|1fr 网格；藏掉编号后章名会掉进窄列逐字竖排，改为流式 */
  .rail-toc .toc-row {
    display: flex;
    grid-template-columns: none;
  }
  .rail-toc .toc-text { white-space: nowrap; }

  /* 圆点：以当前章为界——之前=已读显现，当前=放大点亮，之后=近乎隐形 */
  .rail-toc a::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--muted);
    opacity: .55;
    transform: translateY(-50%);
    transition: opacity .25s ease, transform .25s ease, background .25s ease;
  }
  .rail-toc li:has(a[aria-current]) ~ li a::before {
    opacity: .12;
  }
  .rail-toc a[aria-current]::before {
    width: 10px;
    height: 10px;
    background: var(--ink-strong);
    opacity: 1;
  }

  /* 章名：只有当前章展开；已读章悬停时轻声出现 */
  .rail-toc .toc-text {
    font-size: .84rem;
    color: var(--ink);
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity .25s ease, transform .25s ease;
  }
  .rail-toc a[aria-current] .toc-text {
    opacity: 1;
    transform: none;
  }
  .rail-toc a:hover .toc-text,
  .rail-toc a:focus-visible .toc-text {
    opacity: .7;
    transform: none;
  }
  .rail-toc li:has(a[aria-current]) ~ li a:hover .toc-text,
  .rail-toc li:has(a[aria-current]) ~ li a:focus-visible .toc-text {
    opacity: .4;
  }

  /* 总进度淡到几乎消失，只在需要时被看见 */
  .rail-readpct { opacity: .6; }

  @media (max-width: 1259.98px) {
    .reading { padding-left: 232px; padding-right: 40px; }
  }
}
