.article-main { margin-top: 30px; } .article-main img { max-width: 100%; height: auto; display: block; margin: 1.25rem auto; } .article-main h2, .article-main h3, .article-main h4, .article-main h5, .article-main h6 { margin-top: 2em; } .article-main p, .article-main ul, .article-main ol, .article-main blockquote, .article-main table { font-family: var(--main-body-font), serif; color: var(--color-text-mid); font-size: 1.4rem; line-height: 1.75; } .article-main table { font-size: 1.3rem; } .article-main table th, .article-main table td { border-bottom: 1px solid var(--color-text); } .card-header--article { display: flex; justify-content: space-between; align-items: flex-start; gap: 0.75rem; flex-wrap: wrap; /* .card-header { overflow: hidden } would clip the ⋯ dropdown; following siblings can paint on top. */ overflow: visible; position: relative; z-index: 5; } .card-header--article .card-title { flex: 1 1 12rem; min-width: 0; margin: 0; font-family: var(--heading-font), serif; font-weight: 700; line-height: 1.12; color: var(--color-primary); } /* Article + category page headers: global h1 is 300 weight; titles should read as the clear focal point. */ .card-header--article h1.card-title { font-size: clamp(1.85rem, 2.8vw, 2.75rem); } /* Hero summary: same “excerpt” level as list cards, not .lede’s 1.6rem body scale */ .card > .card-body > .lede { font-family: var(--main-body-font), serif; font-size: 1.1rem; line-height: 1.55; font-weight: 400; color: var(--color-text-mid); margin: 0 0 1.25rem; max-width: none; } /* Sibling .category-body would paint over the ⋯ popover; lift the title card above the list. */ .category-page__header-card { position: relative; z-index: 6; } .card.comment .metadata.comment-card__head { align-items: flex-start; } .card.comment .metadata__end { display: flex; align-items: center; gap: 0.4rem; flex-shrink: 0; } .byline { display: flex; justify-content: space-between; align-items: center; margin: 2rem 0; padding-top: 0.5rem; border-top: 1px solid var(--color-border); font-size: 0.88rem; font-weight: 400; color: color-mix(in srgb, var(--color-text-mid) 58%, var(--color-bg) 42%); font-family: var(--font-family), sans-serif; } .byline__author { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 0.35em; } /* Article body only — avoid 50px vertical margins on comment / quote cards (Atoms:Content markdown). */ .article-main blockquote { border-left: 6px solid var(--color-bg-light); padding-left: 3px; margin: 50px 0 50px 3px; } .article-main blockquote p { font-size: 1.6rem; font-style: italic; color: var(--color-text-mid); padding-left: 30px; } .table-of-contents { border-left: var(--color-secondary) 6px solid; margin: 2em 0; } .table-of-contents li { list-style: none; margin-left: 0; } .heading-permalink { float: left; padding-right: 0; margin-left: -30px; line-height: 1.2; color: var(--color-secondary); } .heading-permalink:hover { text-decoration: none; font-weight: bold; } .embedded-content iframe { width: 100%; height: auto; aspect-ratio: 16/9; } .article-comments-async .comments--pending { margin: 1rem 0; } .comments-quotes { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border); } .comments-quotes__title { font-size: 1.25rem; margin: 0 0 0.9rem; } .comments-quotes__sep { margin: 0 0.25rem; color: var(--color-text-mid); } .comment--quote .metadata { flex-wrap: wrap; gap: 0.35rem; } /* Tracebacks: same flex+gap as .comments so spacing isn’t lost to margin collapse or .card { margin } from app.css */ .comments-quotes__list { display: flex; flex-direction: column; gap: 0.4rem; min-height: 0; } .comments-quotes__list > .card.comment--quote { margin: 0; /* override app.css .card { margin-bottom: 50px } */ flex-shrink: 0; } .comments-quotes__list .card.comment--quote .card-footer.nostr-previews { margin-top: 0.75rem; } /* Thread: no depth indent; one accent color for all replies */ .comments { display: flex; flex-direction: column; gap: 0.55rem; } .comments .card.comment, .comments-quotes__list .card.comment { margin-left: 0; margin-bottom: 0; padding: 0.75rem 0.9rem 0.85rem; border-radius: 6px; border: 1px solid var(--color-border); border-left: 3px solid var(--color-primary); gap: 0.5rem; } .comments .card.comment--depth-0, .comments .card.comment--depth-1, .comments .card.comment--depth-2, .comments .card.comment--depth-3 { margin-left: 0; border-left-color: var(--color-primary); } .comments .card.comment .metadata, .comments-quotes__list .card.comment .metadata { margin-bottom: 0; } .comment__reply-blurb { padding: 0.4rem 0.55rem 0.45rem 0.55rem; margin: 0 0 0 0.2rem; border-left: 2px solid color-mix(in srgb, var(--color-border) 50%, transparent); background: color-mix(in srgb, var(--color-bg-light) 55%, transparent); border-radius: 0 3px 3px 0; font-size: 0.82em; line-height: 1.45; color: var(--color-text-mid); } /* Markdown blockquotes inside note bodies: tight rhythm (not .article-main blockquote). */ .comments .card.comment .card-body blockquote, .comments-quotes__list .card.comment .card-body blockquote { margin: 0.35rem 0 0.5rem; padding: 0.3rem 0 0.35rem 0.65rem; border-left: 3px solid color-mix(in srgb, var(--color-primary) 40%, var(--color-border)); } .comments .card.comment .card-body blockquote p, .comments-quotes__list .card.comment .card-body blockquote p { font-size: 1em; line-height: 1.45; font-style: italic; color: var(--color-text-mid); margin: 0; padding-left: 0; } .comments .card.comment .card-body > :first-child, .comments-quotes__list .card.comment .card-body > :first-child { margin-top: 0; } .comments .card.comment .card-body > :last-child, .comments-quotes__list .card.comment .card-body > :last-child { margin-bottom: 0; } .comments .card.comment .card-body, .comments-quotes__list .card.comment .card-body { line-height: 1.52; } .comment__reply-blurb blockquote, .comment__reply-blurb :where(blockquote) { border-left: none; margin: 0; padding-left: 0; } .comment__reply-blurb blockquote p, .comment__reply-blurb :where(blockquote) p { font-size: inherit; line-height: inherit; font-style: normal; margin: 0; padding-left: 0; } .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; white-space: nowrap; } .comment-reply { margin-top: 0.45rem; padding-top: 0.45rem; border-top: 1px solid var(--color-border); } .comment-reply--article { margin-bottom: 0.75rem; border: 1px solid var(--color-border); border-radius: 6px; border-top: 1px solid var(--color-border); } .comment-reply--article__inner { padding: 0.9rem 1rem 1rem; } .comment-reply__toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 0.75rem; margin-bottom: 0.35rem; } .comment-reply__lede { margin: 0; font-size: 0.9rem; line-height: 1.35; flex: 1 1 12rem; min-width: 0; } .comment-reply__toolbar--inline { margin-bottom: 0.15rem; margin-top: 0.3rem; justify-content: flex-end; } .comment-reply__heading { font-size: 1.05rem; margin: 0; } .comment-reply__panel { margin-top: 0.6rem; padding: 0.75rem 0.8rem 0.85rem; border-radius: 6px; background: var(--color-bg-light, rgba(0, 0, 0, 0.2)); border: 1px solid var(--color-border); box-sizing: border-box; } .comment-reply__panel--hidden { display: none; } .comment-reply--nested { margin-top: 0.3rem; } .comment-reply__head { font-size: 0.9rem; margin-bottom: 0.35rem; } .comment-reply__body .form-control { width: 100%; max-width: 100%; box-sizing: border-box; padding: 0.6rem 0.75rem; margin: 0; border: 1px solid var(--color-border); border-radius: 6px; background: var(--color-bg); color: var(--color-text); font: inherit; line-height: 1.5; min-height: 4.5rem; resize: vertical; } .comment-reply__actions { margin-top: 0.5rem; } .comment-reply__hint { font-size: 0.9rem; margin: 0.5rem 0 0; } .reply-toast { position: fixed; left: 50%; bottom: 1.2rem; transform: translateX(-50%) translateY(8px); z-index: 1200; min-width: 16rem; max-width: min(92vw, 32rem); padding: 0.55rem 0.85rem; border: 1px solid var(--color-border); color: var(--color-text); background: var(--color-bg); opacity: 0; transition: opacity 0.2s ease, transform 0.2s ease; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18); } .reply-toast--visible { opacity: 1; transform: translateX(-50%) translateY(0); } .reply-toast--success { border-color: #2f7a4b; background: #e7f5eb; } .reply-toast--error { border-color: #a12b2b; background: #fdecec; } /* NIP-84: kind-9802 marks in .article-main (fragment id highlight- for deep links) */ /* Full `context` quote + optional on the `content` substring (body copy, not a box) */ .user-highlight__body { margin: 0.35rem 0 0; font-size: 0.95rem; line-height: 1.65; color: var(--color-text); font-family: var(--main-body-font), serif; } /* In-flow + aside: same NIP-84 mark treatment; scroll-margin in article for #highlight-… links */ .article-main mark.user-highlight__marker, .home-aside-highlights__quote--html mark.user-highlight__marker { margin: 0; padding: 0.08em 0.1em 0.12em; border-radius: 0.12em; font: inherit; line-height: inherit; color: var(--color-highlight-mark-fg); background: color-mix(in srgb, #7ad67a 30%, #f0e8a0 70%); box-shadow: none; box-decoration-break: clone; -webkit-box-decoration-break: clone; } .article-main mark.user-highlight__marker, .article-main .user-highlight__fragment-target { scroll-margin-top: calc(var(--site-fixed-header-offset, 140px) + 0.75rem); } /* Invisible #highlight-{eid} anchors (same group as an older mark) — zero visual footprint. */ .article-main .user-highlight__fragment-target { display: inline; font-size: 0; line-height: 0; width: 0.01em; height: 0; overflow: hidden; margin: 0; padding: 0; border: 0; vertical-align: baseline; } /* When `content` is not a substring of `context` (rare) */ .user-highlight__marker-orphan { margin: 0.5rem 0 0; font-size: 0.9rem; line-height: 1.5; color: var(--color-text-mid); } /* Hover tooltip: all highlighters for this passage (from data-hl) */ .user-highlight__tip-popover { min-width: 10rem; max-width: min(22rem, 92vw); padding: 0.5rem 0.65rem 0.6rem; border-radius: 0.35rem; background: var(--color-bg, #fff); border: 1px solid color-mix(in srgb, var(--color-text-mid) 18%, var(--color-bg) 82%); box-shadow: 0 0.15rem 0.75rem color-mix(in srgb, #000 12%, transparent); font-size: 0.88rem; line-height: 1.35; pointer-events: auto; } .user-highlight__tip-popover[hidden] { display: none !important; } .user-highlight__tip-head { font-size: 0.72rem; font-style: normal; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--color-text-mid, #6b6b6b); margin-bottom: 0.4rem; } .user-highlight__tip-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.35rem; } .user-highlight__tip-item { margin: 0; } .user-highlight__tip-popover .user-badge--in-tip { display: flex; align-items: center; gap: 0.4rem; text-decoration: none; color: var(--color-text, #111); max-width: 100%; } .user-highlight__tip-popover .user-badge--in-tip:hover { text-decoration: underline; } .user-highlight__tip-popover .user-badge__avatar--in-tip { flex-shrink: 0; width: 1.5rem; height: 1.5rem; border-radius: 50%; overflow: hidden; display: flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--color-text-mid) 12%, var(--color-bg) 88%); font-size: 0.65rem; font-weight: 600; } .user-highlight__tip-popover .user-badge__avatar-fallback--dot { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; } .user-highlight__tip-popover .user-badge__name { font-size: 0.85rem; font-weight: 500; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }