/* Blog (/blog/, /blog/<slug>/): the pages are rendered by the site Worker (src/worker/blog.js) inside the shared shell.
   Only blog-specific layout here; type, chips, crumbs, prose and buttons come from ds.css. */
.bl-head { padding-bottom: clamp(20px, 1rem + 1.5vw, 36px); }
.bl-head h1 { max-width: none; }
.bl-meta { margin: 0 0 10px; color: var(--ux-muted); font-size: .875rem; }
.bl-wrap { padding-bottom: clamp(48px, 2rem + 4vw, 96px); }
.bl-tags ul, ul.bl-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 28px; padding: 0; list-style: none; }
ul.bl-tags--post { margin: 20px 0 0; }
.bl-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.bl-item article { position: relative; display: flex; flex-direction: column; height: 100%; overflow: hidden; border: 1px solid var(--ux-line); border-radius: var(--ux-r-lg); background: var(--ux-surface); transition: border-color .15s, box-shadow .15s; }
.bl-item article:hover, .bl-item article:focus-within { border-color: var(--ux-accent); box-shadow: var(--ux-e2, 0 6px 20px rgba(19, 11, 46, .1)); }
.bl-thumb { display: block; background: #16035E; }
.bl-thumb img { display: block; width: 100%; height: auto; aspect-ratio: 1200 / 630; object-fit: cover; }
.bl-item__body { display: flex; flex-direction: column; gap: 8px; padding: 16px 18px 20px; }
.bl-item__title { margin: 0; font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem); font-weight: 600; line-height: 1.3; }
.bl-item__title a { color: inherit; text-decoration: none; }
.bl-item__title a::after { content: ""; position: absolute; inset: 0; }   /* the whole card is the link; the title stays the one accessible name */
.bl-item__title a:hover { color: var(--ux-accent); }
.bl-item__title a:focus-visible { outline: none; }
.bl-item article:has(.bl-item__title a:focus-visible) { outline: 2px solid var(--ux-accent); outline-offset: 2px; }
.bl-item .bl-meta { margin: 0; }
.bl-item__desc { margin: 0; color: var(--ux-muted); font-size: .9375rem; }
.bl-list--small { grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 16px; }
.bl-list--small .bl-item__title { font-size: 1rem; }
.bl-list--small .bl-item__desc { display: none; }
.bl-empty { margin: 0; padding: 32px 0; color: var(--ux-muted); }
.bl-pager { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 28px; }
.bl-pager__at { color: var(--ux-muted); font-size: .875rem; }
.bl-cover { margin-block: 0 32px; }
.bl-cover img { display: block; width: 100%; height: auto; aspect-ratio: 1200 / 630; object-fit: cover; border-radius: var(--ux-r-lg); background: #16035E; }
.bl-body { max-width: none; padding-bottom: clamp(40px, 2rem + 3vw, 72px); overflow-wrap: anywhere; }
.bl-body img { max-width: 100%; height: auto; border-radius: var(--ux-r-sm); }
.bl-body pre { overflow-x: auto; padding: 16px; border-radius: var(--ux-r-sm); background: var(--ux-surface-2); font-size: .875rem; }
.bl-body blockquote { margin-inline: 0; padding-left: 16px; border-left: 3px solid var(--ux-line-strong); color: var(--ux-muted); }
.bl-related { padding-block: 0 clamp(48px, 2rem + 4vw, 96px); }
.bl-related h2 { margin-bottom: 8px; font-size: 1.25rem; }
