/* heimr-570m.css: the Heimr 570M model post. Depends on the site's theme.css variables (--ink, --ink2, --ink3, --void, --s1, --s2, --line, --line2, --accent, --accent-text, --accent-soft, --accent-ink, --heat-0..4, --mono, --sans, --grotesk). Figure vocabulary follows the sparse-down post so the two read as one series. */

/* figures (inline SVG generated by make-heimr-570m-data.mjs) */
.moe-fig{margin:38px auto;width:min(960px,100vw - 56px);position:relative;left:50%;transform:translateX(-50%);}
.moe-fig svg{display:block;width:100%;height:auto;background:var(--void);}
.moe-fig .moe-title{font-family:var(--grotesk);font-weight:500;font-size:22px;letter-spacing:-.01em;color:var(--h1);margin:0 0 10px;}
.moe-fig figcaption{font-family:var(--sans);font-size:13.5px;line-height:1.55;color:var(--ink2);margin-top:12px;max-width:70ch;}
.moe-fig text{font-family:var(--sans);fill:var(--ink);}
.moe-fig .lab{font-size:12.5px;fill:var(--ink);}
.moe-fig .tick{font-family:var(--mono);font-size:11px;fill:var(--ink2);}
.moe-fig .note{font-size:11.5px;fill:var(--ink2);}
.moe-fig .big{font-family:var(--grotesk);font-weight:700;font-size:22px;fill:var(--accent-text);}
.moe-fig .speed{font-family:var(--grotesk);font-weight:700;font-size:15px;fill:var(--accent-text);}
.moe-fig .head{font-family:var(--grotesk);font-weight:500;font-size:14px;fill:var(--ink);}
.moe-fig .headi{font-family:var(--grotesk);font-weight:500;font-size:14px;fill:var(--accent-ink);}
.moe-fig .grid{stroke:var(--line);stroke-width:1;}
.moe-fig .axis{stroke:var(--line2);stroke-width:1;}
.moe-fig .bar-base{fill:var(--line2);}
.moe-fig .bar-ours{fill:var(--accent);}
.moe-fig .bar-soft{fill:var(--accent-soft);}
.moe-fig .ln-ours{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round;}
.moe-fig .ln-ours-alt{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:6 5;stroke-linejoin:round;}
.moe-fig .ln-base{fill:none;stroke:var(--ink3);stroke-width:2;stroke-linejoin:round;}
.moe-fig .ln-base2{fill:none;stroke:var(--ink3);stroke-width:2;stroke-dasharray:3 4;stroke-linejoin:round;}
/* the two further baselines use the dataviz neutrals slate and stone (tokens color.dataviz.*), which theme.css does not expose */
.moe-fig .ln-slate{fill:none;stroke:#7B8494;stroke-width:1.6;stroke-linejoin:round;}
.moe-fig .ln-stone{fill:none;stroke:#8F8560;stroke-width:1.6;stroke-linejoin:round;}
.moe-fig .dot-ours{fill:var(--accent);}
.moe-fig .dot-base{fill:var(--ink3);}
.moe-fig .dot-hollow{fill:var(--void);stroke:var(--ink3);stroke-width:2;}
.moe-fig .box{fill:var(--s1);stroke:var(--line2);stroke-width:1;}
.moe-fig .box-ours{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1;}
.moe-fig .leader{stroke:var(--ink3);stroke-width:1;fill:none;}
@media(max-width:680px){.moe-fig .moe-title{font-size:18px;}}

/* the headline matrix, three columns */
.moe-matrix-fig{width:min(760px,100vw - 56px);}
.moe-matrix{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);font-family:var(--sans);}
.moe-matrix>div{background:var(--s1);padding:14px 16px;}
.moe-matrix .mx-col{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);line-height:1.5;text-align:center;align-self:end;}
.moe-matrix .mx-col span{display:block;letter-spacing:0;text-transform:none;font-size:12px;color:var(--ink2);margin-top:3px;}
.moe-matrix .mx-col.is-ours{color:var(--accent-text);}
.moe-matrix .mx-row{font-family:var(--sans);font-size:13.5px;color:var(--ink2);align-self:center;}
.moe-matrix .mx-cell{text-align:center;}
.moe-matrix .mx-cell b{display:block;font-family:var(--grotesk);font-weight:700;font-size:26px;letter-spacing:-.02em;line-height:1.05;color:var(--ink);}
.moe-matrix .mx-cell span{font-family:var(--mono);font-size:11px;color:var(--ink2);}
.moe-matrix .mx-cell.is-ours b{color:var(--accent-text);}
.moe-matrix .mx-cell.is-best{background:var(--accent-soft);}
@media(max-width:600px){.moe-matrix{grid-template-columns:1fr 1fr 1fr 1fr;}.moe-matrix>div{padding:10px 6px;}.moe-matrix .mx-cell b{font-size:17px;}.moe-matrix .mx-col{font-size:9px;letter-spacing:.06em;}.moe-matrix .mx-row{font-size:11px;}}

/* tables */
.moe-table{width:100%;border-collapse:collapse;margin:26px 0 38px;font-family:var(--sans);font-size:14.5px;line-height:1.45;}
.moe-table th,.moe-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top;}
.moe-table th{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);font-weight:500;}
.moe-table td.num{font-family:var(--mono);font-size:13.5px;white-space:nowrap;}
.moe-table td.tok{font-family:var(--mono);font-size:13.5px;color:var(--accent-text);white-space:nowrap;}
.moe-table td.dim{color:var(--ink3);}
@media(max-width:600px){.moe-table{font-size:13px;}.moe-table th,.moe-table td{padding:8px 6px;}}

/* the self-playing figures. Until their script lands they render as a framed still: the frame carries the figure's title, the beats read as an ordinary list. */
.aha{margin:30px 0 40px;}
.aha canvas{display:none;}
.aha.is-live canvas{display:block;width:100%;background:var(--void);cursor:pointer;}
.aha-frame{display:flex;align-items:center;justify-content:center;min-height:300px;border:1px solid var(--line2);background:var(--s1);}
.aha-tall .aha-frame{min-height:460px;}
.aha.is-live .aha-frame{display:none;}
.aha-frame span{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);text-align:center;padding:0 24px;line-height:1.7;}
.note .body .aha-beats{margin:14px 0 0;padding-left:22px;font-family:var(--sans);font-size:15px;line-height:1.55;color:var(--ink2);}
.note .body .aha-beats li{margin-bottom:6px;}
.note .body .aha-beats li::marker{font-family:var(--mono);font-size:11px;color:var(--accent-text);}
.aha.is-live .aha-beats{display:none;}

/* the architecture walk-through: five cards in the draft, the scroll storyboard once its script lands */
.story-cards{list-style:none;margin:30px auto 44px;padding:0;width:min(960px,100vw - 56px);position:relative;left:50%;transform:translateX(-50%);display:grid;gap:1px;background:var(--line);border:1px solid var(--line);}
.story-cards li{background:var(--s1);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px;padding:26px 28px;}
.story-cards .sc-fig{min-height:190px;display:flex;align-items:center;justify-content:center;background:var(--void);border:1px solid var(--line);}
.story-cards .sc-fig span{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);text-align:center;padding:0 20px;line-height:1.7;}
.story-cards .sc-fig svg{display:block;width:100%;height:auto;}
.story-cards .sc-fig canvas{display:none;width:100%;}
.story-cards .sc-fig.is-live{display:block;border:0;background:none;}
.story-cards .sc-fig.is-live canvas{display:block;}
.story-cards .sc-fig.is-live span{display:none;}
.note .body .story-cards h4{font-size:22px;margin:0 0 10px;}
.note .body .story-cards p{font-family:var(--sans);font-size:15.5px;line-height:1.6;color:var(--ink2);margin:0;}
.story-cards .sc-n{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--accent-text);display:block;margin-bottom:8px;}
@media(max-width:700px){.story-cards li{grid-template-columns:1fr;padding:20px 18px;}.story-cards .sc-fig{min-height:150px;}}

/* the live chrome of a self-playing figure: step chips, the play button, the live caption */
.aha-bar{display:flex;align-items:center;gap:6px;margin-top:12px;flex-wrap:wrap;}
.aha-chip{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);background:none;border:1px solid var(--line2);border-radius:999px;padding:5px 11px;cursor:pointer;line-height:1.2;}
.aha-chip:hover{color:var(--ink);border-color:var(--ink3);}
.aha-chip.is-active{color:var(--accent-ink);background:var(--accent);border-color:var(--accent);}
.aha-play{margin-left:auto;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);background:none;border:0;padding:5px 2px;cursor:pointer;}
.aha-play:hover{color:var(--accent-text);}
.note .body .aha-cap{font-family:var(--sans);font-size:16px;line-height:1.55;color:var(--ink);margin:12px 0 0;min-height:4.7em;}
@media(max-width:600px){.note .body .aha-cap{font-size:15px;min-height:6.2em;}.aha-chip{padding:4px 8px;font-size:10px;}}

/* a static figure: the chips are tabs, there is nothing to play */
.aha-static canvas{cursor:default;}
.aha-static .aha-cap{min-height:7.5em;}

/* the CORE table: our column in amber, best per row bold, the score row ruled */
.moe-table-core td.ours,.moe-table-core th.ours{color:var(--accent-text);}
.moe-table-core th.num{text-align:right;}
.moe-table-core td.num{text-align:right;}
.moe-table-core tr.total td{border-top:2px solid var(--line2);}
/* the best score in a row: a soft accent fill instead of bold, which reads poorly in the mono digits */
.moe-table-core td.best{background:var(--accent-soft);}
.moe-table-core{font-size:13px;}
.moe-table-core th,.moe-table-core td{padding:6px 10px;}

/* the references list, and the bracketed citations that jump to it */
.note .body ol.refs{font-family:var(--sans);font-size:14px;line-height:1.55;color:var(--ink2);padding-left:1.6em;margin:8px 0 0;}
.note .body ol.refs li{margin:0 0 8px;scroll-margin-top:80px;}
.note .body ol.refs a,.note .body a[href^="#ref-"]{color:var(--accent-text);}
.note .body a[href^="#ref-"]{font-family:var(--sans);font-size:.8em;text-decoration:none;}
.note .body ol.refs li:target{color:var(--ink);}

/* an inline equation never breaks across lines */
code.eq{white-space:nowrap;}
