/* The blog (/blog/, /blog/<slug>/), rendered by src/blog/public.js on top of styles.css.
   Served immutable: bump BLOG_CSS in src/blog/layout.js with every change. */
.bl-wrap{max-width:1240px;margin:0 auto}
.bl-head{text-align:left}
.bl-head .h-display{margin-top:28px;font-size:clamp(44px,6vw,96px)}
.cae .bl-head .lead{margin-top:24px}
.bl-list{padding:clamp(40px,5vw,72px) var(--edge) clamp(80px,10vw,140px)}
.bl-empty{padding:40px 0}

/* cards: hairlines are each card's own outline, as in .events */
.bl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.4vw,36px)}
.bl-card{display:flex;flex-direction:column;min-width:0}
.bl-card-img{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--wine-2);outline:1px solid var(--line-2)}
.bl-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease-out)}
.bl-card:hover .bl-card-img img{transform:scale(1.04)}
.bl-noimg{display:grid;place-items:center;width:100%;height:100%;opacity:.45}
.bl-card-img .bl-noimg img{width:84px;height:auto;transform:none}
.bl-card-body{padding-top:20px;display:flex;flex-direction:column;gap:12px}
.cae .bl-card-title{font-size:clamp(24px,2vw,30px);line-height:1.1;font-weight:400}
.cae .bl-card-title a{color:var(--cream);text-decoration:none;transition:color .3s}
.cae .bl-card-title a:hover{color:var(--gold)}
.bl-card-excerpt{font-size:15px;line-height:1.6;color:var(--ink-70);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.bl-featured{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(24px,3.4vw,56px);align-items:center}
.bl-featured .bl-card-body{padding-top:0}
.cae .bl-featured .bl-card-title{font-size:clamp(32px,3.4vw,54px);font-weight:300;line-height:1.02}
.bl-featured .bl-card-excerpt{font-size:17px;-webkit-line-clamp:5}
.bl-pager{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:clamp(48px,6vw,80px);padding-top:28px;border-top:1px solid var(--line)}

/* a post */
.bl-post-head .legal h1{font-size:clamp(38px,5vw,72px)}
.bl-post-head .kicker a{color:var(--gold);text-decoration:none}
.bl-post-head .kicker a:hover{color:var(--cream)}
.cae .bl-lead{margin-top:24px;max-width:none}
.cae .bl-post-head .meta{margin-top:22px}
.bl-draft{color:var(--gold)}
.bl-cover{margin:0 auto;max-width:1240px;padding:clamp(28px,4vw,56px) var(--edge) 0}
.bl-cover img{width:100%;height:auto;max-height:78vh;object-fit:cover}
.bl-body h2{font-size:clamp(26px,2.4vw,36px)}
.cae .bl-body h3{font-size:clamp(21px,1.8vw,26px);line-height:1.2;margin:32px 0 12px;color:var(--cream)}
.bl-body ol{margin:0 0 14px;padding-left:22px}
.bl-body ol li::marker{color:var(--gold);font-variant-numeric:tabular-nums}
.bl-body em{color:var(--cream)}
.bl-body blockquote{margin:28px 0;padding:4px 0 4px 24px;border-left:1px solid var(--gold)}
.bl-body blockquote p{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(22px,2vw,28px);line-height:1.35;color:var(--cream)}
.bl-body figure{margin:32px 0}
.bl-body img{width:100%;height:auto}
.bl-body figcaption{margin-top:10px;font-size:13px;line-height:1.5;color:var(--ink-50)}
.bl-body hr{border:0;height:1px;background:var(--line);margin:40px 0}
.bl-body code{font-size:.92em;color:var(--cream)}
.bl-tw{overflow-x:auto;margin:24px 0;-webkit-overflow-scrolling:touch}
.bl-body table{border-collapse:collapse;width:100%;font-size:15px;min-width:420px}
.bl-body th,.bl-body td{text-align:left;padding:10px 14px 10px 0;border-bottom:1px solid var(--line-2);vertical-align:top;color:var(--ink-70)}
.bl-body th{font-weight:600;color:var(--gold);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.bl-body .ql-align-center{text-align:center}.bl-body .ql-align-right{text-align:right}
.bl-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px;padding-top:28px;border-top:1px solid var(--line)}
.cae .bl-tags a{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--ink-70);border:1px solid var(--line);padding:9px 14px;transition:border-color .3s,color .3s}
.cae .bl-tags a:hover{color:var(--gold);border-color:var(--gold)}
.bl-edit{margin-top:28px}
.bl-more{padding:clamp(64px,8vw,120px) var(--edge);border-top:1px solid var(--line)}
.bl-grid-more{margin-top:40px}
.bl-back{margin-top:clamp(40px,5vw,64px);text-align:center}

@media (max-width:960px){
  .bl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bl-featured{grid-template-columns:1fr}
  .bl-featured .bl-card-body{padding-top:4px}
}
@media (max-width:600px){
  .bl-grid{grid-template-columns:1fr}
  .bl-pager .btn{padding:0 18px}
  .bl-cover{padding-left:0;padding-right:0}
}
