/* Markdown series articles share the site's masthead, typography and footer. */
.series-layout { display: grid; grid-template-columns: minmax(12em, 1fr) minmax(0, 3fr); gap: 2em; }
#series-sidebar { position: sticky; top: 1em; align-self: start; max-height: calc(100vh - 2em); overflow: auto; padding: 1em; }
#series-sidebar summary { cursor: pointer; font-size: 1.1em; }
.series-toc { list-style: none; padding: 0; margin: 1em 0; }
.series-toc li { padding: 0; margin: 0.6em 0; }
.series-toc .toc-h3 { padding-left: 1em; font-size: 0.9em; }
.series-content { min-width: 0; }
.series-content h1 { font-size: clamp(1.9em, 3vw, 2.8em); line-height: 1.2; overflow-wrap: anywhere; }
.series-content h2 { font-size: 1.65em; margin: 1.75em 0 0.75em; scroll-margin-top: 1em; }
.series-content h3 { margin: 1.5em 0 0.6em; }
.series-content p, .series-content li { text-align: left; }
.series-content header .series-meta { font-size: 0.9em; margin: 1em 0; color: #514c51; }
.series-content .series-lead { font-size: 1.1em; }
.series-note { font-size: 0.9em; color: #514c51; padding-bottom: 1em; border-bottom: 1px solid #ddd; }
.series-content img { max-width: 100%; height: auto; display: block; margin: 1em auto; }
/* Use each SVG's authored size; wide diagrams scroll without shrinking their labels. */
.series-content .process-diagram { min-width: 0; max-width: none; }
.series-content .align-left { text-align: left; }
.series-content .align-center { text-align: center; }
.series-content .align-right { text-align: right; }
.series-content figure { margin: 1.5em 0; }
.series-table, .diagram-scroll { overflow-x: auto; max-width: 100%; }
.series-content table { border-collapse: collapse; font-size: 0.9em; width: 100%; }
.series-content td, .series-content th { padding: 0.6em; border: 1px solid #ddd; vertical-align: top; }
.series-content th { font-weight: 600; background: #f7f3ef; }
.series-content pre { overflow-x: auto; white-space: pre; font-size: 0.8em; line-height: 1.6; padding: 1em; border: 1px solid #ddd; border-radius: 0.2em; }
.series-content pre, .series-content code { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace; }
.series-content code { overflow-wrap: anywhere; }
.series-content pre code { overflow-wrap: normal; }
.series-content details { margin: 1.5em 0; border: 1px solid #ddd; padding: 0.8em; }
.series-content summary { cursor: pointer; font-weight: 600; }
.series-content details[open] summary { margin-bottom: 1em; }
.series-content mjx-container[display="true"] { overflow-x: auto; overflow-y: hidden; max-width: 100%; }
.series-chapters, .series-companions { padding-left: 1.5em; }
.series-chapters li, .series-companions li { padding: 0.8em 0 0.8em 0.4em; border-bottom: 1px solid #ddd; }
.series-chapters li > a, .series-companions li > a { font-size: 1.1em; }
.series-chapters p, .series-companions p { margin: 0.4em 0 0; font-size: 0.95em; }
.series-navigation { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1em; margin-top: 2em; padding-top: 1.5em; border-top: 1px solid #ddd; }
.series-navigation a { max-width: 22em; }
@media screen and (max-width: 840px) {
  .series-layout { display: block; }
  #series-sidebar { position: static; max-height: none; padding: 0 0 1em; }
  .series-content table { font-size: 0.85em; }
}

/* Syntax colours remain local and readable without JavaScript. */
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.code-highlight .hll { background-color: #ffffcc }
.code-highlight { background: #f8f8f8; }
.code-highlight .c { color: #3D7B7B; font-style: italic } /* Comment */
.code-highlight .err { border: 1px solid #F00 } /* Error */
.code-highlight .k { color: #008000; font-weight: bold } /* Keyword */
.code-highlight .o { color: #666 } /* Operator */
.code-highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
.code-highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
.code-highlight .cp { color: #9C6500 } /* Comment.Preproc */
.code-highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */
.code-highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */
.code-highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
.code-highlight .gd { color: #A00000 } /* Generic.Deleted */
.code-highlight .ge { font-style: italic } /* Generic.Emph */
.code-highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.code-highlight .gr { color: #E40000 } /* Generic.Error */
.code-highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.code-highlight .gi { color: #008400 } /* Generic.Inserted */
.code-highlight .go { color: #717171 } /* Generic.Output */
.code-highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.code-highlight .gs { font-weight: bold } /* Generic.Strong */
.code-highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.code-highlight .gt { color: #04D } /* Generic.Traceback */
.code-highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.code-highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.code-highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.code-highlight .kp { color: #008000 } /* Keyword.Pseudo */
.code-highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.code-highlight .kt { color: #B00040 } /* Keyword.Type */
.code-highlight .m { color: #666 } /* Literal.Number */
.code-highlight .s { color: #BA2121 } /* Literal.String */
.code-highlight .na { color: #687822 } /* Name.Attribute */
.code-highlight .nb { color: #008000 } /* Name.Builtin */
.code-highlight .nc { color: #00F; font-weight: bold } /* Name.Class */
.code-highlight .no { color: #800 } /* Name.Constant */
.code-highlight .nd { color: #A2F } /* Name.Decorator */
.code-highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */
.code-highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
.code-highlight .nf { color: #00F } /* Name.Function */
.code-highlight .nl { color: #767600 } /* Name.Label */
.code-highlight .nn { color: #00F; font-weight: bold } /* Name.Namespace */
.code-highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
.code-highlight .nv { color: #19177C } /* Name.Variable */
.code-highlight .ow { color: #A2F; font-weight: bold } /* Operator.Word */
.code-highlight .w { color: #BBB } /* Text.Whitespace */
.code-highlight .mb { color: #666 } /* Literal.Number.Bin */
.code-highlight .mf { color: #666 } /* Literal.Number.Float */
.code-highlight .mh { color: #666 } /* Literal.Number.Hex */
.code-highlight .mi { color: #666 } /* Literal.Number.Integer */
.code-highlight .mo { color: #666 } /* Literal.Number.Oct */
.code-highlight .sa { color: #BA2121 } /* Literal.String.Affix */
.code-highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
.code-highlight .sc { color: #BA2121 } /* Literal.String.Char */
.code-highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
.code-highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.code-highlight .s2 { color: #BA2121 } /* Literal.String.Double */
.code-highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */
.code-highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
.code-highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */
.code-highlight .sx { color: #008000 } /* Literal.String.Other */
.code-highlight .sr { color: #A45A77 } /* Literal.String.Regex */
.code-highlight .s1 { color: #BA2121 } /* Literal.String.Single */
.code-highlight .ss { color: #19177C } /* Literal.String.Symbol */
.code-highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
.code-highlight .fm { color: #00F } /* Name.Function.Magic */
.code-highlight .vc { color: #19177C } /* Name.Variable.Class */
.code-highlight .vg { color: #19177C } /* Name.Variable.Global */
.code-highlight .vi { color: #19177C } /* Name.Variable.Instance */
.code-highlight .vm { color: #19177C } /* Name.Variable.Magic */
.code-highlight .il { color: #666 } /* Literal.Number.Integer.Long */

.code-highlight .c, .code-highlight .ch, .code-highlight .cm, .code-highlight .c1, .code-highlight .cs { color: #466466; }
