/* Article reading, scoped so the page/card layouts keep their established design. */
.reader-visually-hidden { position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important; }
.reader-toc { margin:0 0 32px;color:#ddd4d1;border:1px solid #615155;background:#292728; }
.reader-toc summary { display:flex;gap:10px;align-items:center;padding:12px 14px;cursor:pointer;font:600 14px/1.5 var(--sans);list-style:none; }
.reader-toc summary::-webkit-details-marker { display:none; }
.reader-toc summary svg { width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round; }
.reader-toc .reader-toc-caret { margin-left:auto;transition:transform .2s; }
.reader-toc[open] .reader-toc-caret { transform:rotate(180deg); }
.reader-toc nav { padding:0 14px 12px;max-height:min(420px,55vh);overflow:auto; }
.reader-toc :is(ol,ul) { list-style:none;margin:0;padding:0;font:14px/1.55 var(--sans); }
.reader-toc :is(ol,ul) :is(ol,ul) { padding-left:15px; }
.reader-toc li { padding-left:calc(var(--toc-depth,0) * 15px); }
.reader-toc a { display:block;padding:6px 9px;color:#c7babc;border-left:2px solid transparent;overflow-wrap:anywhere;text-decoration:none; }
.reader-toc a:hover,.reader-toc a[aria-current="location"] { color:#f1e3e5;background:#483138;border-left-color:var(--red); }
.reader-toc :is(a,summary):focus-visible,.reader-diagram :is(button,summary):focus-visible,.reader-diagram-dialog :is(button,.reader-diagram-viewport):focus-visible { outline:2px solid #ec7a87;outline-offset:3px; }
.reader-page .reader-body { min-width:0; }
.reader-body :is(h1,h2,h3,h4,h5,h6,[id]) { scroll-margin-top:22px; }
.reader-body :is(h1,h2,h3,h4,h5,h6):focus { outline:none; }
.reader-body h1 { font:700 1.65em/1.45 var(--serif);margin:1.8em 0 .8em; }
.reader-body :is(h2,h3,h4,h5,h6) { font-family:var(--serif);font-weight:700;line-height:1.5; }
.reader-body h4 { font-size:1.05em;margin:1.8em 0 .7em; }
.reader-body :is(h5,h6) { font-size:1em;margin:1.8em 0 .7em; }
.reader-body h6 { color:#c3b6b8; }
.reader-body :is(ul,ol) :is(ul,ol) { margin-block:.5em; }
.reader-body li > p { margin-block:.5em; }
.reader-body .task-list-item { list-style:none; }
.reader-body input[type="checkbox"] { margin-right:.55em;accent-color:var(--red);vertical-align:middle; }
.reader-body :is(dl,details) { margin-block:1.5em; }
.reader-body dt { font-weight:700; }
.reader-body dd { margin:.4em 0 1em 1.2em; }
.reader-body details > summary { cursor:pointer; }
.reader-body details[open] > summary { margin-bottom:1em; }
.reader-body blockquote { border:0;border-left:3px solid var(--red);box-shadow:none;background:#3a3033;padding:12px 18px; }
.reader-body blockquote > p + p { margin-top:1em; }
.reader-body blockquote blockquote { margin-block:1em; }
.reader-body figure { max-width:100%;margin:1.8em 0; }
.reader-body img { display:block;max-width:100%;height:auto;max-height:none;object-fit:contain;margin-inline:auto; }
.reader-body figcaption { margin-top:.7em;color:#b5a8ab;font:13px/1.65 var(--sans);text-align:center; }
.reader-table-scroll { width:100%;overflow-x:auto;margin:1.7em 0;scrollbar-color:#7d6268 #282626; }
.reader-body .reader-table-scroll table { display:table;width:100%;margin:0;border-collapse:collapse;overflow:visible; }
.reader-body :is(th,td) { min-width:95px;border:0;border-bottom:1px solid #645257;padding:10px 12px;vertical-align:top; }
.reader-body th { background:#2b2728;color:#f1e7e7;font-weight:600;white-space:nowrap; }
.reader-body tbody tr:nth-child(even) { background:#342d2f; }
.reader-body caption { color:#c8babc;text-align:left;caption-side:bottom;margin-top:.7em; }
.reader-body pre { margin:1.6em 0;padding:17px;max-width:100%;border:1px solid #58464d;border-radius:2px;white-space:pre;overflow:auto;background:#252324;color:#eee4e7; }
.reader-body pre > code { font:inherit;color:inherit;background:transparent;padding:0;white-space:inherit;text-shadow:none; }
.reader-body :is(kbd,samp) { font: .85em/1.5 var(--mono); }
.reader-body kbd { border:1px solid #79666c;border-bottom-width:2px;border-radius:3px;padding:1px 5px;background:#302b2d; }
.reader-body mark { background:#64424b;color:#fff0f2;padding:.1em .2em; }
.reader-body .footnotes { margin-top:3em;padding-top:1.2em;border-top:1px solid #685358;color:#c7b9bd;font-size:.88em; }
.reader-body .footnotes ol { margin-block:0;padding-left:1.5em; }
.reader-body .footnotes li { padding-left:.35em; }
.reader-body sup a { padding:0 .15em;text-decoration:none; }
.reader-body .reader-math:not(.reader-math-rendered) { font-family:var(--mono);font-size:.85em; }
.reader-body .reader-math[data-display="true"] { display:block;margin:1.8em 0;overflow-x:auto;overflow-y:hidden;padding-block:8px;max-width:100%; }
.reader-body .reader-math .katex-display { margin:0;text-align:center; }
.reader-body .reader-math .katex-display > .katex { white-space:nowrap; }
.reader-body .hljs-comment,.reader-body .hljs-quote { color:#a599a1;font-style:italic; }
.reader-body :is(.hljs-keyword,.hljs-selector-tag,.hljs-type) { color:#ee919e; }
.reader-body :is(.hljs-string,.hljs-regexp,.hljs-addition) { color:#b8cfa4; }
.reader-body :is(.hljs-number,.hljs-literal,.hljs-attr,.hljs-variable,.hljs-template-variable) { color:#d5b292; }
.reader-body :is(.hljs-title,.hljs-title.function_,.hljs-section) { color:#dcc592; }
.reader-body :is(.hljs-built_in,.hljs-symbol,.hljs-link) { color:#b6c5dd; }
.reader-body :is(.hljs-meta,.hljs-name,.hljs-selector-id,.hljs-selector-class) { color:#c7acdb; }
.reader-body .hljs-deletion { color:#f18b94;background:#7b303133; }
.reader-body .hljs-emphasis { font-style:italic; }.reader-body .hljs-strong { font-weight:bold; }
.reader-body .reader-diagram { margin:1.8em 0;min-width:0;position:relative; }
.reader-diagram-view { min-width:0;position:relative;overflow-x:auto;background:#282627;border:1px solid #5c484f;padding:22px 10px; }
.reader-diagram-view:empty { display:none; }
.reader-diagram-view > svg { display:block;max-width:100%;height:auto;margin:auto; }
.reader-diagram-expand { position:absolute;right:6px;top:6px; }
.reader-diagram :is(button,summary),.reader-diagram-controls button { display:inline-flex;align-items:center;justify-content:center;min-width:34px;min-height:34px;padding:7px;border:1px solid #725660;border-radius:3px;background:#302a2d;color:#e4c8ce;cursor:pointer; }
.reader-diagram :is(button,summary):hover,.reader-diagram-controls button:hover { border-color:#db768a;color:#fff0f3; }
.reader-diagram :is(button,summary) svg,.reader-diagram-controls svg { width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round; }
.reader-body .reader-diagram-source { margin:.35em 0 0; }
.reader-diagram-source > summary { list-style:none; }
.reader-diagram-source > summary::-webkit-details-marker { display:none; }
.reader-body .reader-diagram-source[open] > summary { margin-bottom:0; }
.reader-body .reader-diagram-source pre { margin:.5em 0 0; }
.reader-diagram-error { font:13px/1.65 var(--sans);color:#eaa1ac; }
.reader-diagram-scratch { position:fixed;left:-20000px;top:0;width:1000px;visibility:hidden;pointer-events:none; }
.reader-diagram-dialog { box-sizing:border-box;position:fixed;inset:0;width:calc(100vw - 24px);height:calc(100svh - 24px);max-width:none;max-height:none;margin:auto;padding:0;border:1px solid #86636e;border-radius:4px;background:#282627;color:#eee4e7;overflow:hidden; }
.reader-diagram-dialog::backdrop { background:#141214da; }
.reader-diagram-controls { position:absolute;top:12px;right:12px;display:flex;gap:8px;z-index:1; }
.reader-diagram-controls button { min-width:40px;min-height:40px; }
.reader-diagram-viewport { width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;cursor:grab; }
.reader-diagram-viewport.is-dragging { cursor:grabbing; }
.reader-diagram-stage { flex:none;transform-origin:center;will-change:transform; }
.reader-diagram-stage svg { user-select:none; }
@media(max-width:360px) { .reader-toc nav { padding-inline:9px; }.reader-toc li { padding-left:calc(var(--toc-depth,0)*10px); }.reader-toc :is(ol,ul) :is(ol,ul) { padding-left:10px; }.reader-body pre { padding:13px; }.reader-diagram-controls { gap:5px;right:8px; }.reader-diagram-controls button { min-width:36px;min-height:36px; } }
@media print { .reader-progress,.reader-toc,.reader-diagram-expand,.reader-diagram-source,.reader-diagram-dialog { display:none!important; }.reader-table-scroll,.reader-body pre { overflow:visible; }.reader-body pre { white-space:pre-wrap; } }
