.blog-main { width: min(1120px, calc(100% - 40px)); margin: 48px auto 80px; color: var(--theme-ink); }
.blog-heading { max-width: 760px; margin: 0 0 32px; }
.blog-heading h1 { font-size: var(--type-page-title); line-height: 1.04; letter-spacing: -.035em; margin: 16px 0 24px; overflow-wrap: break-word; }
.blog-meta { font-size: 13px; line-height: 1.7; color: var(--theme-ink-soft); }
.blog-lede { font-size: 20px; line-height: 1.5; }
.blog-back { display: inline-flex; align-items: center; min-height: 44px; color: inherit; text-decoration: none; margin-bottom: 24px; }
.blog-banner { display: block; width: 100%; height: auto; border-radius: 20px; margin-bottom: 40px; }
.blog-prose { max-width: 720px; font-size: 18px; line-height: 1.75; overflow-wrap: break-word; }
.blog-prose p, .blog-prose ul, .blog-prose ol { margin: 0 0 24px; }
.blog-prose h2 { font-size: 30px; line-height: 1.2; margin: 48px 0 20px; }
.blog-prose h3 { font-size: 24px; line-height: 1.3; margin: 36px 0 16px; }
.blog-prose a { color: inherit; text-decoration-color: var(--theme-accent-edge); text-underline-offset: 4px; }
.blog-prose figure { margin: 32px 0; }
.blog-prose img { max-width: 100%; height: auto; border-radius: 16px; }
.blog-prose iframe { display: block; max-width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: 16px; }
.blog-prose figcaption { color: var(--theme-ink-soft); font-size: 14px; line-height: 1.5; margin-top: 12px; }
.blog-prose blockquote { margin: 28px 0; border: 1px solid var(--theme-line); padding: 16px 20px; background: var(--theme-surface-raised); border-radius: 12px; }
.blog-prose blockquote p:last-child { margin-bottom: 0; }
.blog-prose pre { max-width: 100%; overflow-x: auto; }
.blog-grid { display: grid; gap: 24px; }
.blog-card { border-radius: 20px; background: var(--theme-surface-raised); overflow: hidden; }
.blog-card > a { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.blog-card img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.blog-card-copy { padding: 24px; display: flex; flex-direction: column; flex: 1; align-items: flex-start; }
.blog-card h2 { font-size: var(--type-card-title); line-height: 1.2; margin: 12px 0 16px; }
.blog-card-copy > p:not(.blog-meta) { font-size: 17px; line-height: 1.6; margin-bottom: 24px; }
.blog-card-action { margin-top: auto; font-size: 14px; font-weight: 600; min-height: 44px; display: inline-flex; align-items: center; }
.blog-card:hover { box-shadow: 0 0 0 1px var(--theme-accent-edge); }
.blog-page a:focus-visible { outline: 2px solid var(--palette-holly-400); outline-offset: 4px; }
.blog-main > .fw-extension { margin-top: 64px; padding: 0; }
@media (min-width: 768px) { .blog-main { width: min(1120px, calc(100% - 96px)); margin-top: 80px; } .blog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; } }

.blog-links { margin-top: 56px; }
.blog-links > h2 { font-size: var(--type-section-title); letter-spacing: normal; margin: 0 0 12px; }
.blog-link-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px 0; color: inherit; text-decoration: none; }
.blog-link-row h3 { font-size: var(--type-card-title); line-height: 1.2; margin: 8px 0 12px; }
.blog-link-row p:not(.blog-meta) { font-size: 17px; line-height: 1.6; max-width: 65ch; margin: 0 0 12px; }
.blog-link-source { font-size: 13px; color: var(--theme-ink-soft); }
.blog-link-arrow { flex: 0 0 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: var(--theme-surface-raised); font-size: 22px; }
.blog-link-row:hover .blog-link-arrow { background: var(--palette-golden-400); color: var(--palette-greyscale-950); }
@media (min-width: 1080px) { .blog-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; } }
