/* Blog library: isolated from the existing website styles. */
.blog-library{padding:56px 0 88px}
.blog-library-intro{margin-bottom:30px;max-width:740px}
.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.blog-card{min-width:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--white);transition:transform .2s,box-shadow .2s}
.blog-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -24px rgba(5,40,88,.4)}
.blog-card-link{display:flex;flex-direction:column;height:100%;color:var(--text)}
.blog-card-link:hover{color:var(--text)}
.blog-card-link:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
.blog-card img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.blog-card-body{padding:24px;display:flex;flex-direction:column;flex:1;gap:13px}
.blog-category{font-size:.75rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--blue-600)}
.blog-card h2,.blog-card h3{font-size:1.12rem;line-height:1.45;letter-spacing:-.02em}
.blog-card p{font-size:.92rem;line-height:1.7}
.blog-card-meta{font-size:.78rem;color:var(--muted)}
.blog-read-more{font-size:.88rem;font-weight:700;color:var(--blue-600);margin-top:auto;padding-top:8px}
.blog-hero .wrap{max-width:1000px}
.blog-hero h1{max-width:950px;font-size:clamp(2rem,4vw,3rem);margin:14px 0 18px}
.blog-hero .lead{max-width:850px}
.blog-meta{margin-top:22px;display:flex;flex-wrap:wrap;gap:8px 20px;font-size:.85rem;color:var(--muted)}
.blog-feature{max-width:1000px;margin:40px auto 0;padding:0 24px}
.blog-feature img{width:100%;height:auto;border-radius:16px;aspect-ratio:16/9}
.blog-layout{padding-top:44px}
.blog-layout .toc{max-height:calc(100vh - 120px);overflow:auto}
.blog-layout .prose{width:100%}
.blog-layout .prose > section{margin-top:48px}
.blog-layout .prose a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.blog-layout code{font-size:.9em;overflow-wrap:anywhere}
.blog-layout .table-wrap{overflow-x:auto}
.blog-layout table{min-width:500px}
.blog-layout h2{scroll-margin-top:115px}
.blog-layout .faq{margin-top:18px}
.blog-related{padding:0 0 80px}
.blog-related h2{margin-bottom:26px}
@media(max-width:960px){.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blog-layout .toc{max-height:none}.blog-layout{gap:0}}
@media(max-width:640px){.blog-grid{grid-template-columns:1fr;gap:22px}.blog-library{padding:36px 0 60px}.blog-card-body{padding:22px}.blog-feature{padding:0 16px;margin-top:28px}.blog-related{padding-bottom:56px}}
