
    /* single blog post — mast (image, category tag, title, byline) over a
       two-column layout: article body left, the journal's own sidebar
       (More from the journal / Categories) reused as-is on the right. */
    .postMast{position:relative;height:clamp(320px,46vw,460px);background:#111b23 center/cover no-repeat;overflow:hidden}
    .postMast__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
    .postMast__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,16,21,.15) 0%,rgba(10,16,21,.72) 100%)}
    /* .postMast isn't wrapped in the shared .sec (it needs its own fixed
       height + background-image sizing instead), so .wrap's max-width
       alone left the title/crumb/meta flush against both edges below
       --maxw — this restores the same horizontal gutter .sec would have
       supplied, boxing the mast content to the page's usual reading width. */
    .postMast__inner{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:0 var(--pad) clamp(26px,3.4vw,44px)}
    .postCrumb{font-size:12.5px;color:rgba(255,255,255,.75);margin:0 0 14px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
    .postCrumb a{color:rgba(255,255,255,.75);text-decoration:none}
    .postCrumb a:hover{color:#fff;text-decoration:underline}
    .postCrumb span{opacity:.6}
    .postTag{display:inline-flex;align-self:flex-start;background:var(--gold);color:#fff;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:7px 14px;border-radius:999px;margin:0 0 14px}
    .postTitle{margin:0 0 14px;font-size:clamp(26px,4vw,44px);font-weight:800;letter-spacing:-.015em;line-height:1.12;color:#fff;max-width:20ch}
    .postMeta{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:rgba(255,255,255,.82)}
    .postMeta span{display:inline-flex;align-items:center;gap:6px}
    .postMeta svg{width:15px;height:15px;flex:none}

    .postLayout{display:grid;grid-template-columns:1fr 300px;gap:clamp(32px,4vw,56px);align-items:start;padding:clamp(32px,4.2vw,52px) 0}
    @media (max-width:900px){.postLayout{grid-template-columns:1fr}}

    .postBody{font-size:16px;line-height:1.8;color:#33383F;max-width:70ch}
    .postBody h3{margin:30px 0 12px;font-size:clamp(19px,2.1vw,23px);font-weight:800;letter-spacing:-.01em;color:var(--ink)}
    .postBody h3:first-child{margin-top:0}
    .postBody h4{margin:22px 0 10px;font-size:16.5px;font-weight:700;color:var(--ink)}
    .postBody p{margin:0 0 16px}
    .postBody ul,.postBody ol{margin:0 0 16px;padding-left:22px}
    .postBody li{margin-bottom:8px}
    .postBody strong{color:var(--ink);font-weight:700}
    .postBody blockquote{
      margin:22px 0;padding:4px 0 4px 20px;border-left:3px solid var(--gold);
      font-size:17px;font-style:italic;color:#454a53;
    }

    .postGallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:0 0 30px}
    .postGallery img{width:100%;height:140px;object-fit:cover;border-radius:10px;display:block;background:var(--ink-lift)}

    .postTags{display:flex;flex-wrap:wrap;gap:9px;margin:34px 0 0;padding-top:26px;border-top:1px solid rgba(34,54,69,.12)}
    .postTags__label{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--haze-dim);width:100%;margin-bottom:2px}
    body.theme-light .postTags__label{color:#888}

    /* sidebar — the exact classes journal.html's own aside already uses */
    .jrnHead{max-width:56ch;margin-bottom:clamp(36px,4.6vw,56px)}
    .jrnSide__block + .jrnSide__block{margin-top:clamp(28px,3.6vw,40px)}
    .jrnSide__h{margin:0 0 18px;font-size:22px;font-weight:800;letter-spacing:-.01em;color:var(--ink)}
    .jrnChips{display:flex;flex-wrap:wrap;gap:9px}
    .jrnChip{
      border:1px solid rgba(34,54,69,.22);background:#fff;color:#223645;
      font-family:var(--f);font-size:12.5px;font-weight:600;text-decoration:none;
      padding:8px 15px;border-radius:999px;transition:border-color .25s var(--ease),color .25s var(--ease);
    }
    .jrnChip:hover{border-color:#BF2E2B;color:#BF2E2B}
    .jrnChip.is-current{background:var(--gold);border-color:var(--gold);color:#fff}
    .jrnPopular{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
    .jrnPopular a{display:flex;align-items:center;gap:12px;text-decoration:none}
    .jrnPopular__img{width:64px;height:52px;flex:none;border-radius:8px;overflow:hidden;background:var(--ink-lift)}
    .jrnPopular__img img{width:100%;height:100%;object-fit:cover;display:block}
    .jrnPopular__title{font-size:13.5px;font-weight:700;line-height:1.4;color:var(--ink)}
    .jrnPopular a:hover .jrnPopular__title{color:#BF2E2B}

    .jrnCta{height:clamp(420px,60vh,620px)}
  