.blog-preview-note { padding: 16px 0; color: #8f2e2a; font-weight: 700; }
.blog-article { padding-top: 44px; padding-bottom: 70px; }
.article-header { max-width: 900px; margin: 0 auto 48px; }
.article-header h1 { font-size: clamp(2rem, 4vw, 3.4rem); overflow-wrap: anywhere; }
.article-header .lead { margin: 24px 0; }
.blog-cover { aspect-ratio: 16 / 7; display: flex; flex-direction: column; justify-content: center; padding: 28px; background: #171513; color: #fff; font-size: clamp(1.5rem, 3vw, 2.5rem); letter-spacing: .05em; border-radius: 20px; }
.blog-cover span { font-size: 1rem; color: #f4bfaf; margin-top: 12px; }
.article-layout { display: grid; grid-template-columns: 250px minmax(0, 760px); gap: 50px; align-items: start; }
.article-toc { position: sticky; top: 110px; max-height: 70vh; overflow: auto; padding: 18px; border: 1px solid var(--line); border-radius: 14px; font-size: .85rem; }
.article-toc li { margin: 12px 0; }
.article-body { min-width: 0; font-size: 1.05rem; line-height: 1.85; }
.article-body h2 { font-size: 1.9rem; margin: 48px 0 20px; scroll-margin-top: 110px; }
.article-body h3 { font-size: 1.4rem; margin: 32px 0 16px; scroll-margin-top: 110px; }
.article-body p, .article-body ul, .article-body ol { margin: 20px 0; }
.article-body li { margin: 12px 0; }
.article-body a { color: #96382f; text-decoration: underline; overflow-wrap: anywhere; }
.article-table { max-width: 100%; overflow-x: auto; margin: 26px 0; }
.article-table table { border-collapse: collapse; min-width: 650px; width: 100%; font-size: .9rem; }
.article-table th, .article-table td { padding: 15px; text-align: left; border: 1px solid var(--line); vertical-align: top; }
.article-table th { background: var(--surface); }
.article-body blockquote { border-left: 3px solid var(--signal); margin: 24px 0; padding-left: 24px; }
.blog-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; padding-bottom: 60px; }
.blog-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--line); border-radius: 20px; overflow: hidden; }
.blog-card .blog-cover { border-radius: 0; }
.blog-card > div:last-child { padding: 26px; display: flex; flex-direction: column; flex: 1; }
.blog-card h2 { font-size: 1.6rem; }
.blog-card p { margin: 16px 0; }
.blog-card div > a:last-child { margin-top: auto; }
.article-related { margin-top: 48px; }
@media(max-width:900px) { .article-layout { grid-template-columns: 1fr; gap: 26px; } .article-toc { position: static; max-height: 260px; } }
@media(max-width:680px) { .blog-grid { grid-template-columns: 1fr; } .article-header h1 { font-size: 2.2rem; } .article-body h2 { font-size: 1.6rem; } .blog-cover { padding: 20px; } }
