    /* ── Focused reader overlay ───────────────── */
    body.reader-open { overflow: hidden; }
    .reader-overlay {
      position: fixed; inset: 0; z-index: 80; display: none;
      background: rgba(10,10,10,.32); backdrop-filter: blur(8px);
      padding: 24px 20px; overflow-y: auto;
    }
    .reader-overlay.open { display: flex; align-items: center; justify-content: center; }
    .reader-sheet {
      width: min(640px, 100%); background: var(--bg); border: 1px solid var(--divider);
      border-radius: 12px; box-shadow: 0 18px 60px rgba(0,0,0,.22);
      border-left: 4px solid var(--brand, var(--ink-muted));
      position: relative; overflow: hidden;
    }
    .reader-scroll {
      max-height: min(760px, calc(100vh - 48px)); overflow-y: auto;
      scrollbar-width: none; padding: 28px 24px 20px;
    }
    .reader-scroll::-webkit-scrollbar { display: none; }
    .reader-top {
      display: flex; align-items: center; justify-content: space-between;
      gap: 14px; margin-bottom: 20px;
    }
    .reader-meta {
      display: flex; align-items: center; gap: 10px; min-width: 0;
    }
    .reader-close {
      flex: 0 0 auto; border: none; background: none; color: var(--ink-muted);
      cursor: pointer; font-size: 22px; line-height: 1; padding: 0;
      display: inline-flex; align-items: center; justify-content: center;
    }
    .reader-close:hover { color: var(--ink); }
    .reader-close:focus:not(:focus-visible) { outline: none; }
    .reader-close:focus-visible { outline: 2px solid var(--ink-muted); outline-offset: 2px; border-radius: 4px; }
    /* Position-hue scrollbar — same design as the edition menu */
    /* Auto-hide: no rail; the rainbow thumb fades in only while scrolling / hovering. */
    .reader-bar { position: absolute; top: 12px; bottom: 12px; right: 6px; width: 5px; display: none; opacity: 0; transition: opacity .2s; }
    .reader-bar.show { opacity: 1; }
    .reader-thumb { position: absolute; left: 0; right: 0; top: 0; width: 5px; border-radius: 99px; background: #D54438; cursor: grab; touch-action: none; }
    .reader-thumb:active { cursor: grabbing; }
    @media (prefers-reduced-motion: reduce) { .reader-bar { transition: none; } }
    .reader-title {
      font-size: 22px; font-weight: 800; line-height: 1.2; letter-spacing: -.3px;
      color: var(--ink); margin-bottom: 12px; text-wrap: pretty;
    }
    .reader-text { font-size: 14.5px; line-height: 1.68; color: var(--ink-2); }
    .reader-lead { font-size: 15.5px; color: var(--ink); margin-bottom: 14px; }
    .reader-section { margin-top: 16px; }
    .reader-label {
      font-family: var(--mono); font-size: 8.5px; font-weight: 700;
      text-transform: uppercase; letter-spacing: .8px; color: var(--ink-muted); margin-bottom: 5px;
    }
    .reader-tags { margin-top: 16px; }
    @media (max-width: 560px) {
      .reader-overlay { padding: 56px 0 0; align-items: flex-end; }
      .reader-overlay.open { align-items: flex-end; }
      .reader-sheet {
        width: 100%; border-radius: 16px 16px 0 0;
        border-left-width: 0; border-top: 4px solid var(--brand, var(--ink-muted));
      }
      .reader-scroll { max-height: calc(100vh - 56px); padding: 22px 20px 20px; }
      .reader-title { font-size: 20px; }
    }

    /* Rich prose (bullets / numbered lists / bold) in the abstract + reader body */
    .card-abstract p, .reader-text p { margin: 0 0 8px; }
    .card-abstract p:last-child, .reader-text p:last-child { margin-bottom: 0; }
    .card-abstract ul, .card-abstract ol,
    .reader-text ul, .reader-text ol { margin: 6px 0; padding-left: 20px; }
    .card-abstract li, .reader-text li { margin-bottom: 6px; line-height: 1.55; padding-left: 2px; }
    .card-abstract li:last-child, .reader-text li:last-child { margin-bottom: 0; }
    .card-abstract strong, .reader-text strong { font-weight: 700; color: var(--ink); }

    .unverified-label {
      display: inline-flex; align-items: center; gap: 5px;
      font-family: var(--mono); font-size: 9px; font-weight: 600;
      text-transform: uppercase; letter-spacing: .6px; color: var(--ink-muted); margin-top: 10px;
    }
    .unverified-label::before {
      content: ''; width: 5px; height: 5px; border-radius: 50%; border: 1.5px solid var(--ink-muted);
    }
