
.blog-body{font-size:17px;line-height:1.75}
.blog-body h2{font-size:1.5rem;font-weight:600;margin:2.5rem 0 .75rem}
.blog-body h3{font-size:1.25rem;font-weight:600;margin:2rem 0 .5rem}
.blog-body p{margin:1rem 0}
.blog-body ul{list-style:disc;padding-left:1.5rem;margin:1rem 0}
.blog-body ol{list-style:decimal;padding-left:1.5rem;margin:1rem 0}
.blog-body li{margin:.25rem 0}
.blog-body a{color:#0B5F55;text-decoration:underline;text-underline-offset:2px}
.blog-body hr{border:0;border-top:1px solid #e3e0d6;margin:2rem 0}
.blog-body img{max-width:100%;border-radius:12px}
.blog-body code{background:#fff;border:1px solid #e3e0d6;border-radius:4px;padding:0 .25rem;font-size:15px}
.blog-body pre{background:#0f2b28;color:#e6edf3;border-radius:12px;padding:1rem;overflow-x:auto;margin:1.25rem 0;font-size:14px;line-height:1.6}
.blog-body pre code{background:none;border:0;padding:0;color:inherit;font-size:inherit}
.blog-body blockquote{border-left:4px solid #CCEFE6;padding-left:1rem;color:#4E5B57;margin:1.25rem 0}
.blog-body table{width:100%;margin:1.25rem 0;font-size:15px;border-collapse:collapse}
.blog-body th,.blog-body td{border-bottom:1px solid #e3e0d6;padding:.5rem 1rem .5rem 0;text-align:left;vertical-align:top}
.blog-body th{font-weight:600}
.blog-body input[type=checkbox]{margin-right:.4rem}
.blog-body del{color:#4E5B57}
.blog-body dl{margin:1rem 0}
.blog-body dt{font-weight:600;margin-top:.75rem}
.blog-body dd{margin-left:1.25rem;color:#33403c}
.blog-body .footnotes{font-size:14px;color:#4E5B57;border-top:1px solid #e3e0d6;margin-top:2.5rem}
.blog-body .callout{border-left:4px solid;border-radius:0 10px 10px 0;padding:.75rem 1rem;margin:1.25rem 0;color:inherit}
.blog-body .callout p{margin:.4rem 0}
.blog-body .callout-title{font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:.03em}
.blog-body .callout-note{border-color:#2f7fd1;background:#eef5fc}.blog-body .callout-note .callout-title{color:#2f7fd1}
.blog-body .callout-tip{border-color:#14B8A6;background:#e9f8f5}.blog-body .callout-tip .callout-title{color:#0B5F55}
.blog-body .callout-important{border-color:#7c4dd6;background:#f3eefc}.blog-body .callout-important .callout-title{color:#7c4dd6}
.blog-body .callout-warning{border-color:#d99a1e;background:#fdf6e7}.blog-body .callout-warning .callout-title{color:#a46f05}
.blog-body .callout-caution{border-color:#d1453b;background:#fdeeed}.blog-body .callout-caution .callout-title{color:#b3261e}
.blog-body .blog-details{border:1px solid #e3e0d6;border-radius:10px;padding:.5rem 1rem;margin:1.25rem 0;background:#fff}
.blog-body .blog-details summary{cursor:pointer;font-weight:600}
.blog-body pre.mermaid{background:#fff;color:#18211F;border:1px solid #e3e0d6;text-align:center}
.blog-body>:first-child{margin-top:0}

/* The list, the cards and the parts of a post around its body (the API emits these; see card() in http.go). */
.bc-empty{color:#5d646b;padding:2rem 0}
.bc-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}
.bc-chip{border:1px solid #e6e6e3;background:#fff;border-radius:999px;padding:.35rem .9rem;font-size:14px;color:#16191d;cursor:pointer;transition:border-color .15s,background .15s}
.bc-chip span{color:#5d646b;margin-left:.2rem}
.bc-chip:hover{border-color:#0b5f55}
.bc-chip[aria-pressed=true]{background:#0b5f55;border-color:#0b5f55;color:#fff}
.bc-chip[aria-pressed=true] span{color:#cdeee4}
.bc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin-top:2rem}
.bc-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e6e6e3;border-radius:18px;overflow:hidden;color:inherit;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s}
.bc-card:hover{transform:translateY(-2px);box-shadow:0 10px 30px -12px rgba(14,59,53,.25);border-color:#8fdcc9}
.bc-card[hidden]{display:none}
.bc-cover{display:block;width:100%;aspect-ratio:1200/630;object-fit:cover;background:#eef5f3}
.bc-cover-empty{background:linear-gradient(135deg,#0e3b35,#0b5f55 55%,#14b8a6)}
.bc-text{display:flex;flex-direction:column;gap:.5rem;padding:1.1rem 1.25rem 1.25rem;flex:1}
.bc-kicker{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#0b5f55}
.bc-title{font-size:1.2rem;line-height:1.3;font-weight:600;letter-spacing:-.01em}
.bc-card:hover .bc-title{color:#0b5f55}
.bc-desc{color:#5d646b;font-size:15px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.bc-meta{display:flex;flex-wrap:wrap;gap:.25rem .5rem;margin-top:auto;padding-top:.5rem;font-size:13px;color:#5d646b}
.bc-meta span+span::before{content:"\00b7";margin-right:.5rem}
.bc-grid:not([data-filter]) .bc-featured{grid-column:1/-1}
@media (min-width:768px){
  .bc-grid:not([data-filter]) .bc-featured{flex-direction:row;align-items:stretch}
  .bc-grid:not([data-filter]) .bc-featured .bc-cover{width:56%;aspect-ratio:auto;min-height:320px}
  .bc-grid:not([data-filter]) .bc-featured .bc-text{padding:2rem;justify-content:center}
  .bc-grid:not([data-filter]) .bc-featured .bc-title{font-size:1.9rem}
  .bc-grid:not([data-filter]) .bc-featured .bc-desc{font-size:17px;-webkit-line-clamp:4}
}
.bc-crumbs{display:flex;flex-wrap:wrap;gap:.4rem;font-size:14px;color:#5d646b}
.bc-crumbs a{color:#0b5f55}
.bc-crumbs a:hover{text-decoration:underline}
.bc-lede{margin-top:1rem;font-size:1.25rem;line-height:1.5;color:#5d646b}
.bc-byline{display:flex;flex-wrap:wrap;gap:.25rem .5rem;margin-top:1.25rem;font-size:15px;color:#5d646b}
.bc-byline span+span::before{content:"\00b7";margin-right:.5rem}
.bc-hero{display:block;width:100%;height:auto;margin-top:2rem;border-radius:18px;border:1px solid #e6e6e3;background:#eef5f3}
.bc-author{display:flex;gap:1rem;align-items:center;margin-top:3rem;padding:1.25rem;border:1px solid #e6e6e3;border-radius:18px;background:#fff}
.bc-author p{color:#5d646b;font-size:15px;margin-top:.15rem}
.bc-author-name{font-weight:600}
.bc-avatar{flex:none;display:grid;place-items:center;width:3rem;height:3rem;border-radius:999px;background:#0e3b35;color:#fff;font-weight:600;font-size:15px}
.bc-more{margin-top:4rem}
.bc-more h2{font-size:1.5rem;font-weight:700;letter-spacing:-.01em}
.bc-more .bc-grid{margin-top:1.25rem}
@media (max-width:640px){.bc-grid{gap:1rem}.bc-text{padding:1rem}}
@media (prefers-reduced-motion:reduce){.bc-card{transition:none}.bc-card:hover{transform:none}}
/* Background */ .bg { color: #e5e5e5; background-color: #000000; }
/* PreWrapper */ .chroma { color: #e5e5e5; background-color: #000000; }
/* Error */ .chroma .err { color: #ff0000 }
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
/* LineHighlight */ .chroma .hl { background-color: #191919 }
/* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #727272 }
/* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #727272 }
/* Line */ .chroma .line { display: flex; }
/* Keyword */ .chroma .k { color: #ffffff; font-weight: bold }
/* KeywordConstant */ .chroma .kc { color: #ffffff; font-weight: bold }
/* KeywordDeclaration */ .chroma .kd { color: #ffffff; font-weight: bold }
/* KeywordNamespace */ .chroma .kn { color: #ffffff; font-weight: bold }
/* KeywordPseudo */ .chroma .kp { color: #ffffff; font-weight: bold }
/* KeywordReserved */ .chroma .kr { color: #ffffff; font-weight: bold }
/* KeywordType */ .chroma .kt { color: #ffffff; font-weight: bold }
/* NameAttribute */ .chroma .na { color: #007f7f }
/* NameBuiltin */ .chroma .nb { color: #ffffff; font-weight: bold }
/* NameTag */ .chroma .nt { font-weight: bold }
/* LiteralDate */ .chroma .ld { color: #ffff00; font-weight: bold }
/* LiteralString */ .chroma .s { color: #00ffff; font-weight: bold }
/* LiteralStringAffix */ .chroma .sa { color: #00ffff; font-weight: bold }
/* LiteralStringBacktick */ .chroma .sb { color: #00ffff; font-weight: bold }
/* LiteralStringChar */ .chroma .sc { color: #00ffff; font-weight: bold }
/* LiteralStringDelimiter */ .chroma .dl { color: #00ffff; font-weight: bold }
/* LiteralStringDoc */ .chroma .sd { color: #00ffff; font-weight: bold }
/* LiteralStringDouble */ .chroma .s2 { color: #00ffff; font-weight: bold }
/* LiteralStringEscape */ .chroma .se { color: #00ffff; font-weight: bold }
/* LiteralStringHeredoc */ .chroma .sh { color: #00ffff; font-weight: bold }
/* LiteralStringInterpol */ .chroma .si { color: #00ffff; font-weight: bold }
/* LiteralStringOther */ .chroma .sx { color: #00ffff; font-weight: bold }
/* LiteralStringRegex */ .chroma .sr { color: #00ffff; font-weight: bold }
/* LiteralStringSingle */ .chroma .s1 { color: #00ffff; font-weight: bold }
/* LiteralStringSymbol */ .chroma .ss { color: #00ffff; font-weight: bold }
/* LiteralNumber */ .chroma .m { color: #ffff00; font-weight: bold }
/* LiteralNumberBin */ .chroma .mb { color: #ffff00; font-weight: bold }
/* LiteralNumberFloat */ .chroma .mf { color: #ffff00; font-weight: bold }
/* LiteralNumberHex */ .chroma .mh { color: #ffff00; font-weight: bold }
/* LiteralNumberInteger */ .chroma .mi { color: #ffff00; font-weight: bold }
/* LiteralNumberIntegerLong */ .chroma .il { color: #ffff00; font-weight: bold }
/* LiteralNumberOct */ .chroma .mo { color: #ffff00; font-weight: bold }
/* Comment */ .chroma .c { color: #007f7f }
/* CommentHashbang */ .chroma .ch { color: #007f7f }
/* CommentMultiline */ .chroma .cm { color: #007f7f }
/* CommentSingle */ .chroma .c1 { color: #007f7f }
/* CommentSpecial */ .chroma .cs { color: #007f7f }
/* CommentPreproc */ .chroma .cp { color: #00ff00; font-weight: bold }
/* CommentPreprocFile */ .chroma .cpf { color: #00ff00; font-weight: bold }
/* GenericHeading */ .chroma .gh { font-weight: bold }
/* GenericStrong */ .chroma .gs { font-weight: bold }
/* GenericSubheading */ .chroma .gu { font-weight: bold }
/* GenericUnderline */ .chroma .gl { text-decoration: underline }
