/* Original Harmonica card river: balanced columns, one document scrollbar. */
.observatory-timeline { min-width:0; width:100%; }
.observatory-timeline .feed-river-controls { display:grid; gap:14px; padding:16px; margin-bottom:14px; background:var(--color-surface); border:1px solid var(--color-border-subtle); border-radius:8px; box-shadow:0 10px 26px rgba(23,33,29,.06); }
.observatory-timeline .feed-river-summary { display:flex; align-items:baseline; flex-wrap:wrap; justify-content:space-between; gap:8px 14px; }
.observatory-timeline .feed-river-summary strong { font-size:1rem; }
.observatory-timeline .feed-river-summary > span { color:var(--color-text-muted); font-size:.8rem; }
.observatory-timeline .filter-bar { margin:0; padding:0; border:0; }
.observatory-timeline .feed-river { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:14px; align-items:start; width:100%; max-width:100%; min-width:0; overflow:visible; height:auto; }
.observatory-timeline .feed-river-column { display:grid; gap:14px; align-content:start; min-width:0; height:auto; overflow:visible; }
.observatory-timeline .home-feed-card { display:grid; box-sizing:border-box; gap:14px; align-content:start; width:100%; max-width:100%; min-height:0; margin:0; padding:16px; overflow:hidden; background:var(--color-surface); border:1px solid var(--color-border-subtle); border-radius:8px; box-shadow:0 10px 26px rgba(23,33,29,.06); }
.observatory-timeline .home-feed-source { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:start; }
.observatory-timeline .home-feed-source-main { display:grid; grid-template-columns:auto minmax(0,1fr); gap:10px; align-items:center; min-width:0; }
.observatory-timeline .home-feed-source-main > div { min-width:0; }
.observatory-timeline .timeline-avatar-link { display:block; }
.observatory-timeline .timeline-avatar-link .avatar { width:42px; height:42px; }
.observatory-timeline .home-feed-source strong { display:block; min-width:0; line-height:1.25; overflow-wrap:anywhere; }
.observatory-timeline .source-name-link { color:var(--color-text-primary); font-size:.94rem; }
.observatory-timeline .source-name-link:hover { color:var(--color-text-brand); text-decoration:underline; }
.observatory-timeline .feed-latest-meta { display:block; color:var(--color-text-muted); font-size:.75rem; font-weight:600; line-height:1.4; }
.observatory-timeline .timeline-platform { display:inline-grid; place-items:center; width:32px; height:32px; color:var(--color-text-secondary); }
.observatory-timeline .timeline-platform svg { display:block; width:24px; height:24px; fill:currentColor; }
.observatory-timeline .timeline-platform .platform-icon-stroke { fill:none; stroke:currentColor; stroke-width:1.7; }
.observatory-timeline .timeline-platform .external,.observatory-timeline .home-feed-thumb .external { display:none; }
.observatory-timeline .home-feed-body { display:grid; grid-template-columns:minmax(0,1fr); grid-template-areas:"title" "thumb" "excerpt" "toggle"; gap:10px; align-items:start; min-width:0; max-width:100%; }
.observatory-timeline .home-feed-title { grid-area:title; margin:0; min-width:0; font-size:1.08rem; line-height:1.38; overflow-wrap:anywhere; }
.observatory-timeline .home-feed-thumb { grid-area:thumb; display:block; width:100%; max-width:100%; aspect-ratio:var(--feed-image-aspect,4/3); overflow:hidden; background:var(--color-surface-soft); border:1px solid var(--color-border-subtle); border-radius:8px; }
.observatory-timeline .home-feed-thumb img { display:block; width:100%; height:100%; max-width:100%; object-fit:contain; }
.observatory-timeline .feed-latest-excerpt { grid-area:excerpt; display:-webkit-box; -webkit-line-clamp:6; -webkit-box-orient:vertical; overflow:hidden; margin:0; min-width:0; white-space:pre-line; color:var(--color-text-secondary); font-size:.84rem; font-weight:500; line-height:1.55; overflow-wrap:anywhere; word-break:break-word; }
.observatory-timeline .feed-latest-excerpt.is-expanded { display:block; -webkit-line-clamp:unset; overflow:visible; }
.observatory-timeline .feed-text-toggle { grid-area:toggle; justify-self:start; min-height:28px; padding:0; color:var(--color-text-brand); font-size:.84rem; font-weight:700; background:transparent; border:0; cursor:pointer; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:4px; }
.observatory-timeline .home-feed-body-no-image { grid-template-areas:"title" "excerpt" "toggle"; }
.observatory-timeline .home-feed-body-no-title { grid-template-areas:"thumb" "excerpt" "toggle"; }
.observatory-timeline .home-feed-body-no-image.home-feed-body-no-title { grid-template-areas:"excerpt" "toggle"; }
.observatory-timeline .home-feed-card-landscape .home-feed-thumb { aspect-ratio:var(--feed-image-aspect,16/9); }
.observatory-timeline .home-feed-card-portrait .home-feed-thumb { aspect-ratio:var(--feed-image-aspect,3/4); }
.observatory-timeline .home-feed-footer { display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:space-between; min-width:0; margin-top:2px; border-top:1px solid var(--color-border-subtle); padding-top:12px; }
.observatory-timeline .timeline-meta { display:flex; flex-wrap:wrap; gap:5px; align-items:center; color:var(--color-text-muted); font-size:.76rem; }
.observatory-timeline .timeline-actions { display:flex; flex-wrap:wrap; gap:6px; }
.observatory-timeline .timeline-action { display:inline-flex; align-items:center; gap:5px; min-height:34px; padding:3px; background:transparent; color:var(--color-text-brand); border:0; cursor:pointer; font:inherit; font-size:.78rem; }
.observatory-timeline .timeline-action svg { width:17px; height:17px; }
.observatory-timeline .feed-card-links { display:flex; flex:1 1 100%; flex-wrap:wrap; align-items:center; justify-content:space-between; width:100%; gap:8px 12px; }
.observatory-timeline .feed-card-links > a { color:var(--color-text-brand); font-size:.84rem; font-weight:700; line-height:1.5; overflow-wrap:anywhere; }
.observatory-timeline .timeline-events { display:grid; gap:6px; }
.observatory-timeline .timeline-event { display:grid; gap:3px; padding:8px; background:var(--color-surface-soft); border-radius:8px; font-size:.8rem; color:var(--color-text-brand); }
.observatory-timeline .timeline-event > span { font-size:.74rem; color:var(--color-text-muted); }
.observatory-timeline .story-expired { margin:0; color:var(--color-text-muted); font-size:.78rem; }
.observatory-timeline .feed-load-more-wrap { display:flex; flex-wrap:wrap; gap:10px 14px; align-items:center; justify-content:center; padding:20px 0 2px; }
.observatory-timeline .feed-load-more-status { color:var(--color-text-muted); font-size:.9rem; font-weight:600; }
.observatory-timeline .feed-load-more-button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 18px; color:var(--color-action-on-primary); font-weight:700; background:var(--color-action-primary); border:1px solid var(--color-action-primary); border-radius:8px; cursor:pointer; box-shadow:0 10px 22px rgba(23,33,29,.12); }
@media(min-width:901px) { .observatory-timeline .feed-river { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.observatory-timeline .home-feed-card-text-expanded .home-feed-body { grid-template-columns:minmax(0,1fr); grid-template-areas:"title" "thumb" "excerpt" "toggle"; }
.observatory-timeline .home-feed-card-text-expanded .home-feed-body-no-image { grid-template-areas:"title" "excerpt" "toggle"; }
.observatory-timeline .home-feed-card-text-expanded .home-feed-body-no-title { grid-template-areas:"thumb" "excerpt" "toggle"; }
.observatory-timeline .home-feed-card-text-expanded .home-feed-body-no-image.home-feed-body-no-title { grid-template-areas:"excerpt" "toggle"; }
@media(max-width:640px) { .observatory-timeline .feed-river { grid-template-columns:minmax(0,1fr); }.observatory-timeline .feed-river-controls { padding:12px; }.observatory-timeline .home-feed-card { padding:14px; } }

.observatory-timeline .feed-river > .empty-state { grid-column:1 / -1; }
