/* The research paper under the replay app (rendered by guide.js into <section id="guide">).
   Typeset like a journal preprint: one serif column, numbered sections, booktabs tables, matplotlib-like figures. */
@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;0,8..60,700;1,8..60,400;1,8..60,600&display=swap');

#guide.paper {
  --p-bg: #fdfdfb; --p-ink: #1a1a1a; --p-ink2: #3d3d3d; --p-muted: #666; --p-rule: #1a1a1a; --p-hair: #cfcfcb;
  --p-grid: #ececea; --p-link: #1a4f9c; --p-code: #f2f2ee;
  --c-real: #d2600e; --c-damper: #1c6fd6; --c-null: #8c8c8c; --c-type: #0c8599; --c-bare: #1a1a1a;   /* real/damper = the app's --a/--b */
  --c-nullband: rgba(140, 140, 140, .22); --c-typeband: rgba(12, 133, 153, .20); --c-realband: rgba(210, 96, 14, .16);
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) #guide.paper {
    --p-bg: #141414; --p-ink: #e8e6e1; --p-ink2: #cfccc6; --p-muted: #a09d97; --p-rule: #e8e6e1; --p-hair: #44423e;
    --p-grid: #2a2927; --p-link: #8cb4ff; --p-code: #1f1f1d;
    --c-real: #f08a3c; --c-damper: #4f9dff; --c-null: #9a9a9a; --c-type: #3bc9db; --c-bare: #e8e6e1;
    --c-nullband: rgba(154, 154, 154, .22); --c-typeband: rgba(59, 201, 219, .20); --c-realband: rgba(240, 138, 60, .18);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] #guide.paper {
  --p-bg: #141414; --p-ink: #e8e6e1; --p-ink2: #cfccc6; --p-muted: #a09d97; --p-rule: #e8e6e1; --p-hair: #44423e;
  --p-grid: #2a2927; --p-link: #8cb4ff; --p-code: #1f1f1d;
  --c-real: #f08a3c; --c-damper: #4f9dff; --c-null: #9a9a9a; --c-type: #3bc9db; --c-bare: #e8e6e1;
  --c-nullband: rgba(154, 154, 154, .22); --c-typeband: rgba(59, 201, 219, .20); --c-realband: rgba(240, 138, 60, .18);
  color-scheme: dark;
}

#guide.paper {
  max-width: none; margin: 48px 0 0; padding: 56px 16px 96px; background: var(--p-bg); color: var(--p-ink);
  border-top: 1px solid var(--p-hair);
  font-family: "Source Serif 4", "STIX Two Text", "Libertinus Serif", Georgia, "Times New Roman", serif;
  font-size: 17.5px; line-height: 1.55; font-optical-sizing: auto;
  font-variant-numeric: lining-nums; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word;
}
#guide.paper * { box-sizing: border-box; }
#guide.paper article { max-width: 70ch; margin: 0 auto; }
#guide.paper a { color: var(--p-link); text-decoration: none; hyphens: manual; -webkit-hyphens: manual; }
#guide.paper a:hover { text-decoration: underline; text-underline-offset: 2px; }
#guide.paper :focus-visible { outline: 2px solid var(--p-link); outline-offset: 2px; }
#guide.paper p { margin: 0 0 .8em; }
#guide.paper p, #guide.paper figcaption, #guide.paper .tcap {
  text-align: justify; text-justify: inter-word; hyphens: auto; -webkit-hyphens: auto;
  hyphenate-limit-chars: 6 3 2; text-wrap: pretty;
}
#guide.paper section p + p { text-indent: 1.4em; }
#guide.paper p.noindent, #guide.paper .abstract p + p { text-indent: 0; }
#guide.paper i, #guide.paper em { font-style: italic; }
#guide.paper .sc { font-variant: small-caps; letter-spacing: .02em; }
#guide.paper sub, #guide.paper sup { font-size: .72em; line-height: 0; }

/* title block */
#guide.paper .title { text-align: center; margin: 0 0 28px; }
#guide.paper .title p { text-align: center; }
#guide.paper h1, #guide.paper h2, #guide.paper h3 { hyphens: manual; -webkit-hyphens: manual; }
#guide.paper h1 { font-size: 1.72em; line-height: 1.22; font-weight: 600; letter-spacing: -.005em; margin: 0 0 18px; color: var(--p-ink); }
#guide.paper .author { font-size: 1.05em; margin: 0 0 2px; }
#guide.paper .affil, #guide.paper .dateline { font-size: .9em; color: var(--p-ink2); margin: 0; }
#guide.paper .abstract { margin: 26px 2.2em 26px; font-size: .94em; line-height: 1.5; }
#guide.paper .abstract h2 { font-size: .82em; font-variant: small-caps; text-transform: lowercase; letter-spacing: .08em; text-align: center; margin: 0 0 6px; font-weight: 600; }
#guide.paper .keywords { font-size: .88em; color: var(--p-ink2); margin: 10px 0 0; }

/* contents */
#guide.paper nav.toc { margin: 0 0 28px; font-size: .92em; border-top: 1px solid var(--p-hair); border-bottom: 1px solid var(--p-hair); padding: 10px 0 12px; }
#guide.paper nav.toc h2 { font-size: .82em; font-variant: small-caps; text-transform: lowercase; letter-spacing: .08em; margin: 0 0 4px; font-weight: 600; }
#guide.paper nav.toc ol { margin: 0; padding-left: 0; list-style: none; columns: 2 16em; column-gap: 2em; }
#guide.paper nav.toc li { margin: 1px 0; break-inside: avoid; }
#guide.paper nav.toc a { color: var(--p-ink); }

/* headings */
#guide.paper section { scroll-margin-top: 16px; }
#guide.paper h2.sec { font-size: 1.12em; font-weight: 600; margin: 2.1em 0 .6em; line-height: 1.3; }
#guide.paper h3.sub { font-size: 1em; font-weight: 600; font-style: italic; margin: 1.5em 0 .4em; line-height: 1.35; }
#guide.paper .num { display: inline-block; min-width: 2.1em; font-variant-numeric: lining-nums; }
#guide.paper h3.sub .num { font-style: normal; }

/* display equations */
#guide.paper .eq { display: flex; align-items: center; gap: 12px; margin: .9em 0 1em; }
#guide.paper .eq-body { flex: 1; min-width: 0; overflow-x: auto; overflow-y: hidden; text-align: center; padding: 4px 0; font-size: 1.02em; }
/* table scroll cue: a soft edge shadow appears only on the side that has hidden content (background-attachment trick).
   Not used on .eq-body (it left hairlines at the box edges); equations are split to fit 390 px instead. */
#guide.paper .tbl {
  background:
    linear-gradient(to right, var(--p-bg) 30%, transparent) left / 32px 100% no-repeat local,
    linear-gradient(to left, var(--p-bg) 30%, transparent) right / 32px 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%, rgba(0, 0, 0, .22), transparent) left / 12px 100% no-repeat scroll,
    radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, .22), transparent) right / 12px 100% no-repeat scroll;
}
#guide.paper .eq-body .katex-display { margin: 0; }
#guide.paper .eq-body .katex { font-size: 1.1em; }
#guide.paper .eq-no { flex: none; font-variant-numeric: lining-nums; color: var(--p-ink); }
#guide.paper .eq-fallback { white-space: nowrap; font-style: normal; }
#guide.paper .eq-fallback i { font-style: italic; }
#guide.paper .eq-fallback .frac { display: inline-flex; flex-direction: column; vertical-align: middle; text-align: center; font-size: .92em; line-height: 1.15; margin: 0 2px; }
#guide.paper .eq-fallback .frac > span:first-child { border-bottom: 1px solid currentColor; padding: 0 2px; }

/* figures */
#guide.paper figure { margin: 1.6em 0 1.8em; }
#guide.paper figure .plot { width: 100%; min-height: 40px; }
#guide.paper figure svg { display: block; width: 100%; height: auto; overflow: visible; font-family: "Source Serif 4", Georgia, serif; }
#guide.paper figcaption { font-size: .88em; line-height: 1.45; margin-top: .6em; color: var(--p-ink); }
#guide.paper figcaption b, #guide.paper .tcap b { font-weight: 700; }
#guide.paper details.data { margin-top: .4em; font-size: .86em; }
#guide.paper details.data summary { cursor: pointer; color: var(--p-link); list-style: none; display: inline; }
#guide.paper details.data summary::-webkit-details-marker { display: none; }
#guide.paper details.data[open] summary::after { content: " (hide)"; color: var(--p-muted); }
#guide.paper details.data .tbl { margin-top: .5em; }

/* svg marks */
#guide.paper svg text { fill: var(--p-ink); font-size: 12px; }
#guide.paper svg .axlab { font-size: 12.5px; }
#guide.paper svg .panel-tag { font-weight: 700; font-size: 13px; }
#guide.paper svg .tick { fill: var(--p-ink2); font-size: 11.5px; font-variant-numeric: lining-nums tabular-nums; }
#guide.paper svg .frame { fill: none; stroke: var(--p-ink); stroke-width: 1; }
#guide.paper svg .tk { stroke: var(--p-ink); stroke-width: 1; }
#guide.paper svg .grid { stroke: var(--p-grid); stroke-width: 1; }
#guide.paper svg .ref { stroke: var(--p-muted); stroke-width: 1; stroke-dasharray: 2 3; fill: none; }
#guide.paper svg .zero { stroke: var(--p-ink2); stroke-width: 1; stroke-dasharray: 4 3; }
#guide.paper svg .lgbox { fill: var(--p-bg); stroke: var(--p-hair); }
#guide.paper svg .ln { fill: none; stroke-width: 1.8; stroke-linejoin: round; stroke-linecap: round; }
#guide.paper svg .thin { stroke-width: 1.2; }
#guide.paper svg .dash { stroke-dasharray: 5 3; }
#guide.paper svg .dot { stroke-dasharray: 1.5 3; }
#guide.paper svg .longdash { stroke-dasharray: 10 4; }
#guide.paper svg .dashdot { stroke-dasharray: 8 3 1.5 3; }
#guide.paper svg .sd { stroke-width: 1; opacity: .75; }
#guide.paper svg .s-real { stroke: var(--c-real); } #guide.paper svg .f-real { fill: var(--c-real); }
#guide.paper svg .s-damper { stroke: var(--c-damper); } #guide.paper svg .f-damper { fill: var(--c-damper); }
#guide.paper svg .s-null { stroke: var(--c-null); } #guide.paper svg .f-null { fill: var(--c-null); }
#guide.paper svg .s-type { stroke: var(--c-type); } #guide.paper svg .f-type { fill: var(--c-type); }
#guide.paper svg .s-bare { stroke: var(--c-bare); } #guide.paper svg .f-bare { fill: var(--c-bare); }
#guide.paper svg .s-ink { stroke: var(--p-ink); } #guide.paper svg .f-ink { fill: var(--p-ink); }
#guide.paper svg .b-null { fill: var(--c-nullband); } #guide.paper svg .b-type { fill: var(--c-typeband); } #guide.paper svg .b-real { fill: var(--c-realband); }
#guide.paper svg .mk { stroke: var(--p-bg); stroke-width: 1; }
#guide.paper svg .open { fill: var(--p-bg); stroke-width: 1.5; }
#guide.paper svg .ci { stroke: var(--p-ink); stroke-width: 2; }
#guide.paper svg .hit { fill: transparent; }
#guide.paper svg .hit:hover + .mk, #guide.paper svg g.pt:hover .mk { stroke: var(--p-ink); stroke-width: 1.5; }

/* tables (booktabs) */
#guide.paper .table { margin: 1.6em 0 1.8em; }
#guide.paper .tcap { font-size: .88em; line-height: 1.45; margin: 0 0 .5em; }
#guide.paper .tbl { overflow-x: auto; }
#guide.paper table { border-collapse: collapse; width: 100%; font-size: .86em; line-height: 1.35; margin: 0;
  font-variant-numeric: lining-nums tabular-nums; border-top: 1.4px solid var(--p-rule); border-bottom: 1.4px solid var(--p-rule); }
#guide.paper thead th { border-bottom: .8px solid var(--p-rule); font-weight: 600; white-space: normal; vertical-align: bottom; }
#guide.paper th, #guide.paper td { padding: 4px 8px; text-align: right; vertical-align: baseline; border: 0; white-space: nowrap; }
#guide.paper th:first-child, #guide.paper td:first-child { text-align: left; padding-left: 0; white-space: normal; min-width: 8.5em; hyphens: manual; -webkit-hyphens: manual; }
#guide.paper th:last-child, #guide.paper td:last-child { padding-right: 0; }
#guide.paper thead tr.grp th { border-bottom: 0; padding-bottom: 0; }
#guide.paper thead tr.grp th.span { border-bottom: .6px solid var(--p-rule); text-align: center; }
#guide.paper tbody tr.midrule td { border-top: .6px solid var(--p-rule); }
#guide.paper td .ci { color: var(--p-ink2); }
#guide.paper tr.grouprow td { padding-top: 6px; }
#guide.paper .tnote { font-size: .8em; color: var(--p-ink2); margin: .4em 0 0; line-height: 1.4; }

/* lists, references */
#guide.paper ul.plain, #guide.paper ol.plain { margin: 0 0 .9em; padding-left: 1.4em; }
#guide.paper ul.plain li, #guide.paper ol.plain li { margin: 0 0 .25em; }
#guide.paper ol.refs { font-size: .88em; line-height: 1.45; padding-left: 2.2em; margin: 0; }
#guide.paper ol.refs li { margin: 0 0 .45em; padding-left: .2em; }
#guide.paper ol.refs a, #guide.paper .title a { hyphens: manual; -webkit-hyphens: manual; overflow-wrap: anywhere; }
#guide.paper ol.refs li::marker { content: "[" counter(list-item) "]\00a0"; font-variant-numeric: lining-nums; }
#guide.paper .cite { white-space: nowrap; }
#guide.paper code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .84em; background: var(--p-code); padding: 0 3px; }
#guide.paper .ack { font-size: .92em; }
#guide.paper hr.end { border: 0; border-top: 1px solid var(--p-hair); margin: 2.4em 0 1.2em; }

@media (max-width: 560px) {
  #guide.paper { font-size: 17px; padding: 36px 16px 72px; }
#guide.paper h1 { font-size: 1.45em; }
  #guide.paper .abstract { margin: 22px 0; }
  #guide.paper table { font-size: .8em; }
  #guide.paper td .ci { display: block; }
  #guide.paper .eq-body .katex { font-size: .95em; }
  #guide.paper th, #guide.paper td { padding: 3px 4px; }
  #guide.paper th:first-child, #guide.paper td:first-child { min-width: 6em; }
}
@media (max-width: 520px) { #guide.paper .eq-body .katex { font-size: .9em; } }
@media (max-width: 480px) {
  #guide.paper p, #guide.paper figcaption, #guide.paper .tcap { text-align: left; }
}
@media print {
  #guide.paper { background: #fff; color: #000; border: 0; }
  #guide.paper details.data { display: none; }
}
