/* The coding pages: runnable Python blocks. */
.coding-page{--c:var(--c-coding);--c-soft:var(--c-coding-soft);--c-ink:var(--c-coding-ink)}
.pyrun{margin:16px 0;border-radius:var(--r-lg,18px);overflow:hidden;border:1px solid var(--line);background:var(--card);box-shadow:0 12px 28px -22px rgba(29,40,86,.5)}
.pyrun-title{margin:0;padding:10px 16px;font:700 13px var(--sans);color:var(--c-ink);background:var(--c-soft)}
.pyrun-bar{display:flex;gap:8px;align-items:center;padding:8px 12px;background:var(--c-soft);border-bottom:1px solid var(--line)}
.pyrun-bar b{font:800 12px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--c-ink);margin-right:auto}
.pyrun-src,.pyrun-code{margin:0;padding:14px 16px;background:#1D2142;color:#EDEBFF;font:500 14.5px/1.6 ui-monospace,Menlo,Consolas,monospace;overflow-x:auto;white-space:pre;tab-size:4}
.pyrun-code{display:block;width:100%;border:0;resize:vertical;min-height:84px;box-sizing:border-box;white-space:pre;outline:none}
.pyrun-code:focus{box-shadow:inset 0 0 0 2px var(--c)}
.pyrun-src code{font:inherit}
.pyrun-out{margin:0;padding:12px 16px;min-height:44px;background:#F7F5FF;color:var(--ink);font:500 14.5px/1.55 ui-monospace,Menlo,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;border-top:1px solid var(--line)}
.pyrun-out.err{background:#FBE8E2;color:#8F2F18}
.pyrun-out.ran{animation:pyIn .35s ease-out 1}
@keyframes pyIn{from{background:#E7DFFF}to{background:#F7F5FF}}
@media(prefers-reduced-motion:reduce){.pyrun-out.ran{animation:none}}
