/* css styles */

/* ---------- blog posts: lede, figures, interactive widgets ---------- */
.post-lede { font-size: 1.16rem; line-height: 1.65; color: #2b3035; }
.post-lede strong { color: #1f2328; }

.quarto-figure figcaption, .figure-caption { font-size: 0.88rem; color: #5b636b; line-height: 1.45; }

.kv-keyidea { border-left: 4px solid #eb6834; background: #fdf6f2; padding: 0.9rem 1.1rem; margin: 1.4rem 0; border-radius: 0 10px 10px 0; }
.kv-keyidea p:last-child { margin-bottom: 0; }
.kv-keyidea .kv-kicker { text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.74rem; font-weight: 700; color: #b8461f; margin-bottom: 0.3rem; }

.kv-widget { border: 1px solid #e3e7eb; border-radius: 12px; padding: 16px 18px 12px; margin: 1.8rem 0; background: #fbfcfd; }
.kv-widget .kv-title { font-weight: 700; font-size: 1.02rem; color: #1f2328; margin: 0 0 0.15rem; }
.kv-widget .kv-sub { margin: 0 0 0.8rem; color: #57606a; font-size: 0.9rem; }
.kv-controls { display: flex; flex-wrap: wrap; gap: 10px 24px; align-items: center; margin-bottom: 12px; font-size: 0.9rem; color: #343a40; }
.kv-controls label { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.kv-controls input[type=range] { width: 170px; accent-color: #eb6834; }
.kv-controls output { font-variant-numeric: tabular-nums; min-width: 2.4em; font-weight: 600; }
.kv-seg { display: inline-flex; flex-wrap: wrap; border: 1px solid #d0d7de; border-radius: 8px; overflow: hidden; }
.kv-seg button { border: 0; background: #fff; padding: 5px 11px; font-size: 0.84rem; color: #343a40; cursor: pointer; border-right: 1px solid #d0d7de; }
.kv-seg button:last-child { border-right: 0; }
.kv-seg button:hover { background: #f3f4f6; }
.kv-seg button.on { background: #1f2328; color: #fff; }
.kv-panels { display: grid; grid-template-columns: 1fr 1.7fr; gap: 14px; align-items: start; }
.kv-panels.kv-even { grid-template-columns: 1fr 1.45fr; }
@media (max-width: 720px) { .kv-panels, .kv-panels.kv-even { grid-template-columns: 1fr; } }
.kv-panels svg { width: 100%; height: auto; display: block; background: #fff; border: 1px solid #eef0f2; border-radius: 8px; }
.kv-readout { width: 100%; font-size: 0.86rem; margin-top: 10px; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.kv-readout th, .kv-readout td { padding: 4px 8px; border-bottom: 1px solid #eef0f2; text-align: right; }
.kv-readout th { color: #57606a; font-weight: 600; }
.kv-readout th:first-child, .kv-readout td:first-child { text-align: left; }
.kv-swatch { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; vertical-align: middle; }
.kv-legend { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 0.84rem; color: #343a40; margin: 8px 0 2px; }
.kv-note { font-size: 0.88rem; color: #343a40; margin: 10px 0 0; min-height: 2.6em; }
.kv-margin { font-size: 0.88rem; color: #343a40; margin: 4px 0 0; }

.kv-table { font-size: 0.9rem; }
table.kv-table { table-layout: fixed; width: 100%; }
.kv-table td, .kv-table th { vertical-align: top; }
.kv-cite pre { font-size: 0.8rem; }

/* posts carry a subtitle and a lede; the listing/social description need not repeat in the title block */
#title-block-header .description { display: none; }

/* long display equations scroll sideways on narrow screens instead of widening the page */
mjx-container[display="true"] { display: block; max-width: 100%; overflow-x: auto; overflow-y: hidden; padding-bottom: 2px; }
