.thorn3-bsky-feed {
  --bsky-ink: #171717;
  --bsky-muted: #5b5b60;
  --bsky-line: #d9dadd;
  --bsky-accent: #ffcc2f;
  color: var(--bsky-ink);
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  text-align: left;
  font-family: Inter, Arial, sans-serif;
}

.thorn3-bsky-feed *, .thorn3-bsky-feed *::before, .thorn3-bsky-feed *::after { box-sizing: border-box; }
.thorn3-bsky-heading { margin: 0 0 1.5rem; color: var(--bsky-ink); font-family: Jost, Inter, Arial, sans-serif; line-height: 1.15; }
.thorn3-bsky-grid { display: grid; grid-template-columns: repeat(var(--thorn3-bsky-columns, 2), minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.thorn3-bsky-post { min-width: 0; padding: clamp(1rem, 2vw, 1.5rem); border: 1px solid var(--bsky-line); border-radius: 14px; background: #fff; overflow: hidden; }
.thorn3-bsky-post-header { display: flex; align-items: center; gap: .7rem; min-width: 0; margin-bottom: 1rem; }
.thorn3-bsky-avatar { width: 42px; height: 42px; flex: none; border-radius: 50%; object-fit: cover; }
.thorn3-bsky-author { display: flex; flex: 1; flex-direction: column; min-width: 0; line-height: 1.25; }
.thorn3-bsky-author strong { font-weight: 700; }
.thorn3-bsky-author small, .thorn3-bsky-date { color: var(--bsky-muted); font-size: .82rem; }
.thorn3-bsky-date { flex: none; }
.thorn3-bsky-text { overflow-wrap: anywhere; line-height: 1.6; margin-bottom: 1rem; }
.thorn3-bsky-feed a { color: var(--bsky-ink); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: .2em; transition: text-decoration-color .18s ease; }
.thorn3-bsky-feed a:hover, .thorn3-bsky-feed a:focus-visible { color: var(--bsky-ink); text-decoration-color: var(--bsky-accent); }
.thorn3-bsky-feed a:focus-visible { outline: 2px solid var(--bsky-ink); outline-offset: 3px; }
.thorn3-bsky-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; margin: 1rem 0; overflow: hidden; border-radius: 8px; }
.thorn3-bsky-gallery.is-single { grid-template-columns: 1fr; }
.thorn3-bsky-image { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #f1f2f3; }
.thorn3-bsky-gallery.is-single .thorn3-bsky-image { aspect-ratio: auto; max-height: 540px; }
.thorn3-bsky-image img { display: block; width: 100%; height: 100%; min-height: 150px; object-fit: cover; }
.thorn3-bsky-gallery.is-single .thorn3-bsky-image img { max-height: 540px; object-fit: contain; }
.thorn3-bsky-video { margin: 1rem 0; }
.thorn3-bsky-video video { display: block; width: 100%; max-height: 540px; border-radius: 8px; background: #111; }
.thorn3-bsky-video-fallback { display: inline-block; margin-top: .45rem; font-size: .85rem; }
.thorn3-bsky-external { display: flex; align-items: center; gap: .75rem; margin: 1rem 0; border: 1px solid var(--bsky-line); border-radius: 8px; overflow: hidden; }
.thorn3-bsky-external img { width: min(35%, 160px); align-self: stretch; object-fit: cover; }
.thorn3-bsky-external span { display: grid; gap: .2rem; min-width: 0; padding: .75rem; }
.thorn3-bsky-external small { color: var(--bsky-muted); overflow-wrap: anywhere; }
.thorn3-bsky-post-footer { border-top: 1px solid var(--bsky-line); margin-top: 1rem; padding-top: .7rem; font-size: .87rem; }
.thorn3-bsky-profile { margin: 1.5rem 0 0; text-align: right; font-weight: 600; }

@media (max-width: 800px) { .thorn3-bsky-columns-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .thorn3-bsky-grid { grid-template-columns: minmax(0, 1fr); } .thorn3-bsky-post { padding: 1rem; } }
@media (prefers-reduced-motion: reduce) { .thorn3-bsky-feed a { transition: none; } }
