/* Insights index (blog.html). Loaded after styles.css, home-b.css, pages.css and home-warm.css. Photo-led cards, captions over the photo, same treatment as the homepage Projects cards. */

.bl-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px 40px; margin-bottom: clamp(32px, 4vw, 48px); }
.bl-head .filters { margin: 0; }
.bl-count { margin: 0; font-size: 14px; letter-spacing: .04em; color: var(--text-on-dark-muted); }

.bl-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 20px); }
@media (max-width: 1023px) { .bl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .bl-grid { grid-template-columns: minmax(0, 1fr); } }

.post-card { position: relative; min-width: 0; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--radius-md); background: var(--char); border: 1px solid var(--line-dark); isolation: isolate; }
@media (max-width: 640px) { .post-card { aspect-ratio: 4 / 4.4; } }
.post-card__link { position: absolute; inset: 0; z-index: 3; border-radius: inherit; }
.post-card__link:focus-visible { outline: 2px solid var(--brass); outline-offset: 3px; }
.post-card__fig { position: absolute; inset: 0; margin: 0; }
.post-card__fig img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(.75) brightness(.78); transition: transform 1.4s var(--ease), filter 700ms ease; }
.post-card--image::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(0deg, rgba(13,12,11,.94) 0%, rgba(13,12,11,.6) 38%, rgba(13,12,11,0) 68%); }
.post-card::before { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; opacity: 0; transition: opacity 400ms ease; background: radial-gradient(380px circle at var(--mx, 50%) var(--my, 100%), rgba(196,165,124,.12), transparent 65%); }
.post-card:hover::before { opacity: 1; }
.post-card__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; display: flex; flex-direction: column; gap: 12px; padding: clamp(22px, 2.4vw, 32px); }
.post-card__meta { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font: var(--label); letter-spacing: .2em; text-transform: uppercase; color: var(--brass-soft); }
.post-card__meta::before { content: ""; width: 24px; height: 1px; background: var(--brass); }
.post-card__date { color: var(--text-on-dark-muted); letter-spacing: .12em; }
.post-card__date::before { content: ""; display: inline-block; width: 1px; height: 11px; margin-right: 12px; vertical-align: -1px; background: var(--line-dark-strong); }
.post-card__title { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: clamp(20px, 1.8vw, 25px); letter-spacing: .04em; text-transform: uppercase; line-height: 1.15; color: #fff; text-wrap: balance; }
.post-card__excerpt { margin: 0; font-size: 16px; font-weight: 300; line-height: 1.6; color: var(--text-on-dark); text-wrap: pretty; }
.post-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 14px; border-top: 1px solid var(--line-dark); font-size: 14px; color: var(--text-on-dark-muted); }
.post-card__go { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-display); font-weight: 700; font-size: 14px; letter-spacing: .14em; text-transform: uppercase; color: var(--brass-soft); transition: gap 400ms var(--ease), color 300ms ease; }
.post-card:hover .post-card__fig img { transform: scale(1.04); filter: saturate(.9) brightness(.86); }
.post-card:hover .post-card__go { gap: 14px; color: #fff; }

/* No-image card: text on charcoal, excerpt clamps (180-200 characters) */
.post-card--text { background: var(--char); }
.post-card--text .post-card__body { top: 0; justify-content: flex-end; }
.post-card--text .post-card__title { font-size: clamp(24px, 2.3vw, 32px); font-weight: 300; }
.post-card--text .post-card__excerpt { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.post-card--text:hover { border-color: rgba(196,165,124,.35); }

.post-card__flag { position: absolute; top: 16px; left: 16px; z-index: 2; padding: 6px 10px; border-radius: var(--radius-sm); background: rgba(13,12,11,.75); border: 1px solid rgba(196,165,124,.4); font: var(--label); letter-spacing: .14em; text-transform: uppercase; color: var(--brass-soft); }

.post-card.is-in { animation: blIn 700ms var(--ease) both; animation-delay: calc(var(--i, 0) * 70ms); }
@keyframes blIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .post-card.is-in { animation: none; } .post-card__fig img { transition: none; } }

.bl-empty { margin: 0; padding: clamp(48px, 6vw, 80px) 24px; text-align: center; border: 1px solid var(--line-dark); border-radius: var(--radius-md); color: var(--text-on-dark-muted); }
.bl-more { display: flex; justify-content: center; margin-top: clamp(40px, 5vw, 64px); }
