/* Lightweight, theme-aware diagrams and article navigation. */
.academy-article .ast-summary{border:1px solid var(--line);border-left:4px solid var(--reader-link);border-radius:18px;padding:22px 26px;margin:24px 0 30px;background:var(--panel)}
.academy-article .ast-eyebrow{font-size:11px;letter-spacing:.12em;font-weight:700;color:var(--muted)}
.academy-article .ast-summary p{font-size:19px;line-height:1.65;margin:10px 0 18px;color:var(--ink)}
.academy-article .ast-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px 22px}
.academy-article a.ast-primary,.academy-article a.ast-primary:visited{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 18px;border-radius:12px;background:var(--reader-action);color:var(--reader-action-ink);font-weight:700;line-height:1.5;text-decoration:none}
.academy-article .ast-primary:hover{filter:brightness(.96)}
.academy-article .ast-lab{margin:22px 0;padding:22px;border:1px solid var(--line);border-radius:20px;background:var(--bg);min-width:0}
.academy-article .ast-lab h3{font-size:24px;line-height:1.3;margin:10px 0 14px}
.academy-article .ast-lab p{font-size:15px;line-height:1.65}
.academy-article .ast-lab output{display:block;color:var(--ink);font-size:19px;font-weight:700;line-height:1.5;margin:18px 0 6px;min-height:2.9em}
.academy-article .ast-controls,.academy-article .ast-switches{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:18px 0}
.academy-article .ast-controls button,.academy-article .ast-switches button,.academy-article .ast-copy{border:1px solid var(--line);border-radius:10px;min-height:44px;padding:9px 13px;background:var(--panel);color:var(--ink);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.academy-article .ast-controls button[data-ast-next],.academy-article .ast-switches button[aria-pressed=true]{background:var(--reader-action);color:var(--reader-action-ink);border-color:var(--reader-action)}
.academy-article .ast-controls button:disabled{opacity:.45;cursor:default}
.academy-article [data-ast-position]{font-variant-numeric:tabular-nums;font-size:13px;color:var(--muted);min-width:36px;text-align:center}
.academy-article .ast-select{display:grid;gap:6px;font-size:14px;font-weight:600}
.academy-article .ast-select select{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:10px;max-width:100%;font:inherit;min-height:44px}
.academy-article .ast-sheet{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:16px}
.academy-article .ast-sheet>div{display:grid;text-align:center;border:2px solid var(--line);border-radius:10px;padding:8px;background:var(--panel)}
.academy-article .ast-sheet small{font-size:12px;color:var(--muted);border-bottom:1px solid var(--line);margin-bottom:6px}
.academy-article .ast-sheet b{font-size:28px;font-variant-numeric:tabular-nums}
.academy-article .ast-sheet>div.is-active{border-color:var(--reader-link);box-shadow:inset 0 0 0 1px var(--reader-link)}
.academy-article .ast-key{color:var(--muted);font-size:12px!important}
.academy-article .ast-formula{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}
.academy-article .ast-trace{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(110px,1fr);gap:12px}
.academy-article .ast-trace pre{margin:0;padding:12px 0;background:var(--panel);font-size:14px;line-height:2;border:1px solid var(--line)}
.academy-article [data-ast-line]{display:block;padding:4px 12px;white-space:pre;border-left:3px solid transparent}
.academy-article [data-ast-line].is-active{background:var(--reader-action);color:var(--reader-action-ink);border-color:var(--reader-action-ink)}
.academy-article .ast-values{display:grid;gap:8px}
.academy-article .ast-values>div{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.academy-article .ast-values small{display:block;color:var(--muted);font-size:12px}.academy-article .ast-values strong{font-size:22px}
.academy-article .ast-flow{display:flex;gap:10px;align-items:center}
.academy-article .ast-flow>div{flex:1;border:1px solid var(--line);padding:14px;border-radius:12px;background:var(--panel)}
.academy-article .ast-flow small,.academy-article .ast-flow b{display:block}.academy-article .ast-flow small{font-size:12px;color:var(--muted)}
.academy-article .ast-graph-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:center}
.academy-article .ast-graph,.academy-article .ast-tree{display:block;width:100%;height:auto;color:var(--ink)}
.academy-article .ast-tree{max-width:480px;margin:auto}
.academy-article .ast-edges path{fill:none;stroke:var(--muted);stroke-width:2.5}
.academy-article :is(.ast-graph,.ast-tree) circle{fill:var(--panel);stroke:var(--line);stroke-width:2}
.academy-article :is(.ast-graph,.ast-tree) text{fill:var(--ink);font:600 17px system-ui}
.academy-article :is(.ast-graph,.ast-tree) .is-active circle{fill:var(--reader-action);stroke:var(--reader-action)}
.academy-article :is(.ast-graph,.ast-tree) .is-active text{fill:var(--reader-action-ink)}
.academy-article .ast-tree .is-blocked circle{stroke-dasharray:4 3;stroke:var(--muted)}
.academy-article .ast-edges path.is-active{stroke:var(--reader-link);stroke-width:6}
.academy-article .ast-table-wrap{overflow:auto}.academy-article .ast-table-wrap table{font-size:13px;min-width:0;width:100%;margin:0;line-height:1.4}
.academy-article .ast-table-wrap :is(th,td){padding:8px 5px;text-align:center}
.academy-article .ast-table-wrap .is-active{background:var(--reader-action);color:var(--reader-action-ink)}
.academy-article .ast-table-wrap tr.is-active>*{background:var(--reader-action);color:var(--reader-action-ink)}
.academy-article .ast-table-wrap caption{font-size:12px;padding:8px;color:var(--muted)}
.academy-article .ast-next,.academy-article .ast-video,.academy-article .ast-author{padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--panel);margin:28px 0}
.academy-article .ast-next h2{margin:8px 0;font-size:28px;line-height:1.3}
.academy-article .ast-follow{border-top:1px solid var(--line);padding-top:16px;margin-top:20px;display:grid;gap:10px;font-size:14px}
.academy-article .ast-video{display:flex;gap:18px;align-items:flex-start}
.academy-article .ast-play{flex:0 0 52px;height:52px;display:grid;place-items:center;border-radius:16px;background:var(--reader-action);color:var(--reader-action-ink);font-size:32px}
.academy-article .ast-video h2{font-size:24px;line-height:1.4;margin:6px 0}
.academy-article .ast-video p{font-size:15px}.academy-article .ast-video a{font-weight:700}
.academy-article .ast-related>div{display:grid;gap:10px}.academy-article .ast-related a{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:12px;text-decoration:none;background:var(--panel);color:var(--ink)}
.academy-article .ast-author{display:flex;gap:18px;align-items:flex-start;font-size:14px}.academy-article .ast-author img{border-radius:50%;object-fit:cover;flex-shrink:0}.academy-article .ast-author p{margin:6px 0 10px;color:var(--muted)}
.academy-article .ast-author-links{display:flex;gap:10px 18px;flex-wrap:wrap}
.academy-article .ast-copy{margin:-8px 0 14px;font-size:12px}
.academy-article .ald-toc{max-height:calc(100dvh - 130px);overflow:auto}
.academy-article .ald-toc a[aria-current=true]{border-left:3px solid var(--reader-link);padding-left:8px}
.academy-article :is(#article-lab,#article-next,#article-video,#article-social){scroll-margin-top:110px}
@media(max-width:760px){.academy-article .ald-toc{max-height:60dvh;position:sticky;top:70px;z-index:4;box-shadow:0 6px 18px #0001}.academy-article .ald-toc details>summary{cursor:pointer;min-height:40px;display:flex;align-items:center}.academy-article .ast-summary{padding:18px}.academy-article .ast-summary p{font-size:17px}.academy-article .ast-lab{padding:16px}.academy-article .ast-trace,.academy-article .ast-graph-grid{grid-template-columns:1fr}.academy-article .ast-values{grid-template-columns:repeat(3,minmax(0,1fr))}.academy-article .ast-values>div{padding:8px}.academy-article .ast-values strong{font-size:17px}.academy-article .ast-graph{max-width:350px;margin:auto}.academy-article .ast-author{flex-direction:column}.academy-article .ast-next,.academy-article .ast-video{padding:18px}.academy-article .ast-video{display:block}.academy-article .ast-play{width:46px;margin-bottom:10px}.academy-article .ast-controls button[data-ast-next]{flex:1}.academy-article .ast-controls button[data-ast-reset]{width:100%}.academy-article .ast-flow{gap:6px}.academy-article .ast-flow>div{padding:10px}}
@media print{.academy-article :is(.ast-controls,.ast-switches,.ast-copy,.ast-actions,.ast-select,.ast-follow){display:none}.academy-article .ald-toc{position:static;max-height:none;overflow:visible}.academy-article .ast-lab{break-inside:avoid}.academy-article details{display:block}.academy-article .ast-graph,.academy-article .ast-tree{max-width:350px}.academy-article .ast-lab pre{white-space:pre-wrap}}

@media(max-width:760px){.academy-article .ald-toc summary::after{content:"⌄";margin-left:auto;font-size:22px}.academy-article .ald-toc details[open]>summary::after{content:"⌃"}}
