/* Conceptors: An Introduction from First Principles — a single-column manuscript page.
   Text in Source Serif 4; tables, captions, and labels in Source Sans 3. */

:root {
    --cs-serif: 'Source Serif 4', 'Source Serif Pro', Charter, Georgia, 'Times New Roman', serif;
    --cs-sans: 'Source Sans 3', 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    --cs-ink: #1a1a1a;
    --cs-ink-2: #444;
    --cs-ink-3: #6b6b6b;
    --cs-rule: #1a1a1a;
    --cs-line: #d6d6d6;
    --cs-line-soft: #e8e8e8;
    --cs-link: #1f4e9c;
    --cs-bg: #fff;
    --cs-measure: 44rem;
}

/* ---- page frame ------------------------------------------------------- */

html { -webkit-text-size-adjust: 100%; }
body.cs-page {
    margin: 0;
    background: var(--cs-bg);
    color: var(--cs-ink);
    font-family: var(--cs-serif);
    font-size: 18px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
.cs-skip { position: absolute; left: -999px; top: 8px; padding: 6px 10px; background: #fff; color: var(--cs-ink); }
.cs-skip:focus { left: 8px; z-index: 10; }

.cs-topbar { border-bottom: 1px solid var(--cs-line); font-family: var(--cs-sans); font-size: 15px; background: #fff; }
.cs-topbar__inner { max-width: var(--cs-measure); margin: 0 auto; padding: 12px 20px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.cs-topbar__site { color: var(--cs-ink); text-decoration: none; font-weight: 600; letter-spacing: 0.01em; }
.cs-topbar__site:hover { text-decoration: underline; }
.cs-topbar__pdf { display: inline-flex; align-items: center; gap: 6px; color: var(--cs-ink); text-decoration: none; font-weight: 600; }
.cs-topbar__pdf:hover { text-decoration: underline; }

.cs-main { max-width: var(--cs-measure); margin: 0 auto; padding: 40px 20px 60px; }
.cs-main--embedded { padding-top: 0; }

.cs-footer { border-top: 1px solid var(--cs-line); font-family: var(--cs-sans); font-size: 14px; color: var(--cs-ink-3); }
.cs-footer p { max-width: var(--cs-measure); margin: 0 auto; padding: 16px 20px 28px; }
.cs-footer a { color: inherit; }

/* ---- links ------------------------------------------------------------ */

.cs-paper a { color: var(--cs-link); text-decoration: none; }
.cs-paper a:hover, .cs-paper a:focus { text-decoration: underline; }
.cs-paper a.cs-x { color: var(--cs-link); }
.cs-paper :target { scroll-margin-top: 16px; }

/* ---- title block ------------------------------------------------------ */

.cs-title { margin: 0 0 36px; padding-bottom: 24px; border-bottom: 1px solid var(--cs-line); }
.cs-title h1 { font-family: var(--cs-serif); font-size: 32px; line-height: 1.25; font-weight: 700; letter-spacing: -0.005em; margin: 0 0 18px; }
.cs-author { font-size: 19px; margin: 0 0 4px; display: flex; align-items: center; gap: 6px; }
.cs-orcid { display: inline-flex; line-height: 0; }
.cs-affiliation { font-size: 16px; color: var(--cs-ink-2); margin: 0 0 10px; line-height: 1.45; }
.cs-meta { font-family: var(--cs-sans); font-size: 15px; color: var(--cs-ink-3); margin: 0 0 18px; display: flex; flex-wrap: wrap; gap: 4px 18px; }
.cs-meta a { color: inherit; }
.cs-pdfline { margin: 0 0 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; font-family: var(--cs-sans); }
.cs-pdf { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border: 1.5px solid var(--cs-ink); border-radius: 3px; color: var(--cs-ink) !important; font-weight: 600; font-size: 15px; text-decoration: none !important; background: #fff; }
.cs-pdf:hover, .cs-pdf:focus { background: var(--cs-ink); color: #fff !important; }
.cs-pdfline__note { font-size: 15px; color: var(--cs-ink-3); }
.cs-status { font-family: var(--cs-sans); font-size: 14px; color: var(--cs-ink-3); margin: 0; line-height: 1.5; }

/* ---- headings --------------------------------------------------------- */

.cs-paper h2 { font-family: var(--cs-serif); font-size: 23px; line-height: 1.3; font-weight: 700; margin: 44px 0 14px; }
.cs-paper h2 .cs-num { display: inline-block; min-width: 1.6em; }
.cs-paper h2 .cs-num[aria-hidden="true"] { display: none; }
.cs-paper h3 { font-family: var(--cs-serif); font-size: 19px; line-height: 1.35; font-weight: 700; margin: 30px 0 10px; }
.cs-paper h2.cs-part { font-size: 27px; margin-top: 64px; padding-top: 28px; border-top: 1px solid var(--cs-line); }
.cs-abstract h2, .cs-citation h2, .cs-supplement--note h2 { margin-top: 0; }

/* ---- text ------------------------------------------------------------- */

.cs-paper p { margin: 0 0 1em; }
.cs-abstract { margin: 0 0 40px; }
.cs-abstract > p { font-size: 17px; }
.cs-keywords, .cs-pss { font-size: 16px; color: var(--cs-ink-2); }
.cs-section { margin: 0; }
.cs-identity { margin: 1.3em 1.8em 1.5em; padding: 0; font-size: 17.5px; line-height: 1.55; }
.cs-identity p { margin: 0; }
.cs-runin { }
.cs-supp__note { font-size: 16px; color: var(--cs-ink-2); }

/* ---- tables ----------------------------------------------------------- */

.cs-table { margin: 2em 0 2.2em; font-family: var(--cs-sans); }
.cs-table figcaption { font-size: 15.5px; line-height: 1.4; margin: 0 0 8px; }
.cs-table__num { font-weight: 700; }
.cs-table__num a { color: inherit; }
.cs-table__title { font-style: italic; }
.cs-table__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.cs-table table { width: 100%; border-collapse: collapse; font-size: 14.5px; line-height: 1.4; border-top: 1.5px solid var(--cs-rule); border-bottom: 1.5px solid var(--cs-rule); }
.cs-table thead th { text-align: left; font-weight: 600; padding: 8px 10px 8px 0; border-bottom: 1px solid var(--cs-rule); vertical-align: bottom; }
.cs-table tbody th, .cs-table tbody td { text-align: left; font-weight: 400; padding: 8px 10px 8px 0; border-bottom: 1px solid var(--cs-line-soft); vertical-align: top; }
.cs-table tbody tr:last-child th, .cs-table tbody tr:last-child td { border-bottom: 0; }
.cs-table tbody th { font-weight: 600; }
.cs-table th:last-child, .cs-table td:last-child { padding-right: 0; }
.cs-table table p { margin: 0 0 0.45em; }
.cs-table table p:last-child { margin-bottom: 0; }
.cs-table__note { font-size: 14px; line-height: 1.45; color: var(--cs-ink-2); margin: 8px 0 0; }

/* ---- figures ---------------------------------------------------------- */

.cs-figure { margin: 2em 0 2.2em; padding: 0; font-family: var(--cs-sans); }
.cs-figure svg { display: block; width: 100%; height: auto; border: 1px solid var(--cs-line-soft); }
.cs-figure figcaption { font-size: 15px; line-height: 1.45; margin: 10px 0 0; color: var(--cs-ink-2); }
.cs-figure figcaption .cs-table__num { color: var(--cs-ink); }

/* ---- references ------------------------------------------------------- */

.cs-refs { font-size: 16px; line-height: 1.5; }
.cs-ref { margin: 0 0 0.6em; padding-left: 2em; text-indent: -2em; overflow-wrap: break-word; }
.cs-ref a { overflow-wrap: anywhere; }

/* ---- supplement, citation -------------------------------------------- */

.cs-supplement--note { margin-top: 44px; }
.cs-citation { margin-top: 44px; padding-top: 24px; border-top: 1px solid var(--cs-line); }
.cs-citation__text { padding-left: 2em; text-indent: -2em; overflow-wrap: anywhere; }

/* ---- small screens ---------------------------------------------------- */

@media (max-width: 640px) {
    body.cs-page { font-size: 17px; }
    .cs-main { padding: 28px 16px 48px; }
    .cs-topbar__inner, .cs-footer p { padding-left: 16px; padding-right: 16px; }
    .cs-title h1 { font-size: 26px; }
    .cs-paper h2 { font-size: 21px; margin-top: 36px; }
    .cs-paper h3 { font-size: 18px; }
    .cs-identity { margin-left: 1em; margin-right: 1em; }
    .cs-table table { font-size: 13.5px; min-width: 520px; }
    .cs-refs { font-size: 15px; }
}

/* ---- print ------------------------------------------------------------ */

@media print {
    .cs-topbar, .cs-footer, .cs-skip, .cs-pdfline { display: none; }
    body.cs-page { font-size: 11pt; }
    .cs-main { max-width: none; padding: 0; }
    .cs-paper a { color: inherit; }
    .cs-table, .cs-figure { break-inside: avoid; }
    .cs-paper h2, .cs-paper h3 { break-after: avoid; }
}


/* ---- additions for the rotation paper ---------------------------------- */

.cs-subtitle { font-family: var(--cs-sans); font-size: 17px; line-height: 1.45; color: var(--cs-ink-2); margin: -8px 0 16px; }
.cs-author--list { display: block; line-height: 1.6; }
.cs-author__name { white-space: nowrap; }
.cs-author__name sup { font-size: 0.6em; margin-left: 1px; color: var(--cs-ink-2); }
.cs-author__name .cs-orcid { margin-left: 4px; vertical-align: -2px; }
.cs-affiliation__item { display: block; }
.cs-affiliation__item sup { font-size: 0.7em; margin-right: 3px; }

.cs-eqn { display: flex; align-items: center; margin: 0.6em 0 1em; font-size: 18px; }
.cs-eqn__body { flex: 1; text-align: center; }
.cs-eqn__no { width: 3em; text-align: right; color: var(--cs-ink-3); font-family: var(--cs-sans); font-size: 15px; }
.cs-prop { border: 1px solid var(--cs-line); border-left: 4px solid var(--cs-ink); background: #fafaf8; padding: 10px 14px; margin: 1em 0 1.3em; }
.cs-prop__label { font-family: var(--cs-sans); font-weight: 700; }
.cs-mono { font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace; font-size: 0.86em; }
.cs-ctx { font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace; font-size: 12.5px; }
.cs-note { font-size: 15.5px; color: var(--cs-ink-2); }
.cs-table td.num, .cs-table th.num { text-align: right; }
.cs-table--wide table { font-size: 13px; }
.cs-table--wide thead th, .cs-table--wide tbody td { padding: 6px 8px 6px 0; }
.cs-table table p { margin: 0; }
.cs-figure--w80 svg { max-width: 80%; margin: 0 auto; }
.cs-paper ol, .cs-paper ul { padding-left: 1.5em; margin: 0 0 1em; }
.cs-paper li { margin: 0 0 0.4em; }
.cs-section h2 .cs-num { color: var(--cs-ink-3); }
.cs-section[id^="appendix"] h2 .cs-num { color: var(--cs-ink-3); }

@media (max-width: 640px) {
    .cs-subtitle { font-size: 16px; }
    .cs-eqn { font-size: 16px; }
    .cs-figure--w80 svg { max-width: 100%; }
}

/* ---- additions for the conceptors article ------------------------------- */

.cs-lead { font-size: 19px; color: var(--cs-ink-2); }
.cs-box { border-left: 4px solid var(--cs-link); background: #eef4fc; padding: 12px 16px 6px; margin: 1.2em 0 1.4em; font-size: 17px; }
.cs-box p { margin: 0 0 0.8em; }
.cs-box__label { font-family: var(--cs-sans); font-weight: 700; font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: #123f75; margin: 0 0 6px !important; }
.cs-box--key { border-color: #008300; background: #eef8f2; } .cs-box--key .cs-box__label { color: #0a5a0a; }
.cs-box--warn { border-color: #d03b3b; background: #fdeeee; } .cs-box--warn .cs-box__label { color: #8a2727; }
.cs-box--source { border-color: #898781; background: #f4f4f1; } .cs-box--source .cs-box__label { color: #52514e; }
.cs-formula { font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace; font-size: 15px; background: #f4f4f1; padding: 10px 14px; margin: 0.6em 0 1em; text-align: center; overflow-x: auto; }
.cs-gen { font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace; font-size: 13px; background: #f4f4f1; padding: 1px 4px; border-radius: 2px; }
.cs-tokens span { display: inline-block; font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace; font-size: 14px; background: #e8eef7; border: 1px solid #c7d4ea; border-radius: 3px; padding: 1px 5px; margin: 2px 2px; }
.cs-tokens span.alt { background: #fbeada; border-color: #efc7a6; }
.cs-eq { font-style: italic; text-align: center; margin: 0.5em 0 0.8em; }
.cs-toc ol { list-style: none; padding-left: 0; font-family: var(--cs-sans); }
.cs-toc li { margin: 0 0 6px; }
.cs-gloss dt { font-family: var(--cs-sans); font-weight: 700; margin-top: 10px; }
.cs-gloss dd { margin: 0 0 6px; }
.cs-paper h4 { font-family: var(--cs-serif); font-size: 18px; font-weight: 700; margin: 24px 0 8px; }
.cs-figure--w70 svg { max-width: 70%; margin: 0 auto; }
.cs-figure--w60 svg { max-width: 60%; margin: 0 auto; }
.cs-table--plain { margin: 1.4em 0 1.6em; }
@media (max-width: 640px) {
    .cs-figure--w70 svg, .cs-figure--w60 svg { max-width: 100%; }
    .cs-lead { font-size: 17px; }
}
