    /* ── Card ─────────────────────────────────── */
    .card {
      padding: 18px 22px 16px;
      border-bottom: 1px solid var(--divider);
      border-left: 4px solid var(--brand, #ccc);
      position: relative; cursor: pointer;
    }
    .card:hover { background: color-mix(in srgb, var(--brand, #888) 4%, white); }
    .card:last-child { border-bottom: none; }
    .card.unverified { border-left-color: var(--divider); }
    .card.unverified .card-title,
    .card.unverified .card-abstract,
    .card.unverified .card-summary,
    .card.unverified .tags { opacity: .4; }

    /* ── Edition overview card (top of the feed) ─ */
    .overview-card {
      padding: 18px 22px;
      border-bottom: 1px solid var(--divider);
      border-left: 4px solid var(--ink);
      background: var(--bg-subtle);
    }
    .overview-card-head {
      display: flex; align-items: center; justify-content: space-between;
      gap: 12px; margin-bottom: 8px;
    }
    .overview-card-label {
      font-family: var(--mono); font-size: 9.5px; font-weight: 700;
      text-transform: uppercase; letter-spacing: 1.2px; color: var(--ink);
    }
    .overview-card-text { font-size: 15px; line-height: 1.65; color: var(--ink-2); }
    .overview-card.zh { font-family: var(--sans-zh); }
    .overview-card.zh .overview-card-text { line-height: 1.8; }

    /* When a card is showing Chinese, use the CJK stack + looser lines — just for that card */
    .card.zh { font-family: var(--sans-zh); }
    .card.zh .card-title { letter-spacing: 0; line-height: 1.4; }
    .card.zh .card-abstract, .card.zh .card-summary, .reader-sheet.zh .reader-text { line-height: 1.75; }
    .card.zh .ann-text { font-style: normal; }

    .card-header {
      display: flex; align-items: center; justify-content: space-between;
      margin-bottom: 12px; gap: 10px;
    }
    .source-brand {
      display: inline-flex; align-items: center; gap: 7px; min-width: 0;
      color: var(--brand, #888);
    }
    .source-logo {
      width: 17px; height: 17px; flex: 0 0 17px; display: block; object-fit: contain;
    }
    /* White marks (e.g. Kimi) need a dark backing to be visible on the light card */
    .source-logo.on-dark {
      background: #0A0A0A; border-radius: 5px; padding: 2.5px; box-sizing: border-box;
    }
    .source-name {
      font-family: var(--mono); font-size: 10px; font-weight: 700;
      text-transform: uppercase; letter-spacing: .6px; color: var(--ink-2);
    }
    .card-meta { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
    .card-date { font-family: var(--mono); font-size: 10px; color: var(--ink-muted); }
    .card-title {
      font-size: 17px; font-weight: 700; line-height: 1.3;
      letter-spacing: -.3px; color: var(--ink); margin-bottom: 7px; text-wrap: pretty;
    }
    /* Title links straight to the source article */
    .card-title-link { color: inherit; text-decoration: none; }
    .card-title-link:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
    .card-abstract { font-size: 14px; line-height: 1.6; color: var(--ink-2); margin-bottom: 10px; }
    .card-summary { font-size: 14px; line-height: 1.6; color: var(--ink-2); margin-bottom: 10px; }

    .annotation {
      background: var(--ann-bg); border-left: 3px solid var(--ann-border);
      padding: 9px 12px; border-radius: 0 6px 6px 0; margin-bottom: 11px;
    }
    .ann-label {
      font-family: var(--mono); font-size: 8.5px; font-weight: 700;
      text-transform: uppercase; letter-spacing: .8px; color: #92400E; margin-bottom: 3px;
    }
    .ann-text { font-size: 13px; line-height: 1.55; color: var(--ann-text); font-style: italic; }

    .tags { display: flex; flex-wrap: wrap; gap: 5px; }
    .tag {
      font-size: 10px; font-weight: 600; padding: 3px 8px; border-radius: 5px;
      background: color-mix(in srgb, var(--brand, #888) 12%, white); color: var(--brand, #888);
    }
    .tag.neutral { background: var(--bg-subtle); color: var(--ink-muted); }
    .tag.verified {
      background: var(--verified-bg); color: var(--verified);
      border: 1px solid color-mix(in srgb, var(--verified) 18%, white);
    }
