/* A post's body: type, figures (width and place from the Markdown's
   {width=40% align=right}), YouTube players and tool cards. Loaded by every
   public page and by the writing app's preview, so the two always match. */

.body { font-family: var(--font-display); font-size: 19px; line-height: 1.65; color: var(--text-2); }
.body::after { content: ""; display: table; clear: both; }
.body a { color: var(--accent-text); }
.body p { margin: 0 0 22px; }
.body h2 { margin: 40px 0 14px; font: 400 27px/1.25 var(--font-display); color: var(--text); clear: both; }
.body h3 { margin: 30px 0 10px; font: 500 21px/1.3 var(--font-display); color: var(--text); }
.body h4 { margin: 24px 0 8px; font: 600 15px/1.4 var(--font-ui); color: var(--text); }
.body ul, .body ol { margin: 0 0 22px; padding-left: 26px; }
.body li { margin: 0 0 8px; }
.body li > ul, .body li > ol { margin: 8px 0 0; }
.body blockquote { margin: 0 0 22px; padding: 2px 0 2px 20px; border-left: 2px solid var(--accent); font-style: italic; color: var(--text-muted); }
.body blockquote p:last-child { margin-bottom: 0; }
.body hr { margin: 36px auto; width: 120px; border: 0; border-top: 1px solid var(--border-strong); }
.body code { font: .82em var(--font-mono); background: var(--card-sunk); border: 1px solid var(--border-soft); border-radius: 4px; padding: 1px 5px; }
.body pre { margin: 0 0 22px; padding: 14px 16px; overflow-x: auto; background: var(--card-sunk); border: 1px solid var(--border); border-radius: 8px; font: 13px/1.6 var(--font-mono); }
.body pre code { background: none; border: 0; padding: 0; font-size: inherit; }
.body img.inline { max-width: 100%; height: auto; vertical-align: middle; }
.body .table { margin: 0 0 22px; overflow-x: auto; }
.body table { border-collapse: collapse; width: 100%; font: 14px/1.5 var(--font-ui); }
.body th, .body td { padding: 8px 10px; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; }
.body th { font-weight: 600; color: var(--text); }

/* Figures: width and place come from the Markdown ({width=40% align=right}) */
.fig { margin: 6px auto 24px; }
.fig img, .fig video { display: block; width: 100%; height: auto; border-radius: 6px; background: #1b1714; }
.fig figcaption { margin-top: 8px; font: 12.5px/1.45 var(--font-ui); color: var(--text-faint); }
.fig-center { margin-left: auto; margin-right: auto; }
.fig-right { float: right; margin: 6px 0 18px 32px; }
.fig-left { float: left; margin: 6px 32px 18px 0; }
.fig-full { width: auto; margin: 34px -140px; }
.fig .yt { position: relative; aspect-ratio: 16 / 9; border-radius: 6px; overflow: hidden; background: #000; }
.fig .yt iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.fig-missing { margin: 0 0 22px; padding: 12px 14px; border: 1px dashed var(--danger); border-radius: 8px; font: 13px/1.5 var(--font-ui); color: var(--danger); }

/* A tool card (::tool{key}) */
.toolcard { clear: both; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 14px; margin: 8px 0 28px; padding: 14px 16px; background: var(--card); border: 1px solid var(--border); border-radius: 10px; font-family: var(--font-ui); }
.toolcard .mark { width: 32px; height: 32px; border-radius: 7px; background: #d6236e; color: #fff; display: grid; place-items: center; font: 500 15px/1 var(--font-display); flex-shrink: 0; }
.toolcard .tc-b { flex: 1 1 220px; display: flex; flex-direction: column; }
.toolcard strong { font: 500 16px/1.3 var(--font-display); color: var(--text); }
.toolcard .tc-b span { font-size: 12.5px; line-height: 1.45; color: var(--text-muted); }

@media (max-width: 1000px) {
  .fig-full { margin: 28px 0; }
}
@media (max-width: 720px) {
  .body { font-size: 18px; }
  .body h2 { font-size: 24px; }
  .fig-right, .fig-left, .fig-center { float: none; width: 100% !important; margin: 6px 0 22px; }
  .fig-full { margin: 22px -16px; }
  .fig-full img, .fig-full video, .fig-full .yt { border-radius: 0; }
  .fig-full figcaption { padding: 0 16px; }
}
