/* Reader additions to Forester 5.0's unmodified CC0 theme. */
:root {
  color-scheme:light;
  --paper:oklch(99% .003 90); --ink:oklch(24% .008 75);
  --muted:oklch(48% .009 75); --rule:oklch(78% .012 75);
  --faint:oklch(94% .008 75); --hover:oklch(92% .014 75);
  --focus:oklch(46% .07 230); --secondary:var(--rule);
  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-6:1.5rem; --space-8:2rem;
}
:root[data-theme="dark"] {
  color-scheme:dark;
  --paper:oklch(21% .008 75); --ink:oklch(88% .013 85);
  --muted:oklch(69% .012 85); --rule:oklch(43% .012 75);
  --faint:oklch(25% .01 75); --hover:oklch(29% .014 75);
  --focus:oklch(77% .06 230);
}
@media(prefers-color-scheme:dark) {
  :root:not([data-theme="light"]):not([data-theme="dark"]) {
    color-scheme:dark;
    --paper:oklch(21% .008 75); --ink:oklch(88% .013 85);
    --muted:oklch(69% .012 85); --rule:oklch(43% .012 75);
    --faint:oklch(25% .01 75); --hover:oklch(29% .014 75);
    --focus:oklch(77% .06 230);
  }
}
body { font-family:"Inria Sans",sans-serif; font-size:1rem; line-height:1.55; transition:none; background:var(--paper); color:var(--ink) }
a { color:inherit; text-underline-offset:.15em }
button,input { font:inherit; color:inherit }
.header { max-width:90ex; margin-bottom:var(--space-6) }
.nav { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--space-2) var(--space-4) }
.logo { font-size:1rem; font-weight:400; min-width:0 }
.logo a { display:inline-flex; align-items:center; min-height:28px; color:var(--muted) }
.logo a:hover { color:var(--ink) }
.site-actions { display:flex; align-items:center; gap:var(--space-4); margin-left:auto; color:var(--muted); font-size:.875rem; line-height:1.4 }
.site-actions>a,.site-actions>button { display:inline-flex; align-items:center; justify-content:center; min-width:28px; min-height:28px }
#grid-wrapper>article { width:100%; box-sizing:border-box }
.root-tree { overflow:visible }
.document-header { margin-bottom:var(--space-4) }
.document-header h1 { font-size:1.5rem; line-height:1.25; margin:0; overflow-wrap:anywhere }
.document-header .taxon { display:block; color:var(--muted); font-size:.875rem; font-weight:400; text-transform:capitalize; padding-bottom:var(--space-2) }
.metadata { font-size:.875rem; color:var(--muted); margin-top:var(--space-2) }
.slug { color:var(--muted); white-space:nowrap; font-weight:400 }
h1>.slug,.tree-heading>.slug { font-size:.875rem; margin-left:var(--space-1); vertical-align:baseline }
.tree-heading { display:inline; font-size:1rem; line-height:1.4; margin:0 }
span.taxon { color:var(--muted) }
.block>details>summary { cursor:pointer; line-height:1.4 }
.block>details>summary>header { display:inline }
.block:not(.root-tree)>details[open]>summary { margin-bottom:var(--space-2) }
.block.branch>details[open] { margin-bottom:var(--space-4) }
.block p,.block li { overflow-wrap:anywhere }
.block p { margin-bottom:var(--space-3) }
.block details>ul,.block details>ol { margin-top:var(--space-2); margin-bottom:var(--space-3); padding-bottom:0 }
.block li { margin-block:var(--space-1) }
.block img { max-width:100%; height:auto }
.block:hover { background:transparent }
.block>details>summary:hover,.block>details>summary:focus-visible { background:var(--faint) }
.caption,.citation,.unavailable:is(p) { color:var(--muted); font-size:.875rem }
.unavailable { color:var(--muted); text-decoration:underline dotted }
.unavailable:is(p) { text-decoration:none }
/* One quiet surface marks the source boundary, without boxing the contents. */
.transclusion { border:0; border-radius:0; margin:var(--space-3) 0; padding:0 var(--space-2) }
.transclusion>details>summary { padding:var(--space-1) var(--space-2); background:var(--faint) }
.transclusion>details>summary:hover { background:var(--hover) }
.transclusion>details>summary .sr-only { font-size:0 }
.transclusion>details>:not(summary) { margin-inline:var(--space-2) }
section.transclusion>details,section.transclusion>details[open] { margin-bottom:0 }
.branch>details>summary::before,.transclusion>details>summary::before,.outgoing>summary::before { content:'▾'; display:inline-block; width:1em; color:var(--muted); font-size:.8em }
.branch>details:not([open])>summary::before,.transclusion>details:not([open])>summary::before,.outgoing:not([open])>summary::before { content:'▸' }
article>footer { margin-top:var(--space-8); padding-top:var(--space-4) }
article>footer:empty { display:none }
article>footer h2 { font-size:1rem; line-height:1.4; margin:0 0 var(--space-1) }
.relation-count { color:var(--muted); font-size:.875rem; font-weight:400; margin-left:var(--space-2) }
.relation-description { color:var(--muted); font-size:.875rem; margin:0 }
.backlinks { padding-left:1.2em; margin-top:var(--space-2) }
.backlinks li { margin-bottom:var(--space-1) }
.expandable-relations { list-style:none; padding-left:0 }
.relation-note { margin:0; padding:0; overflow:visible }
.relation-note>details>summary { position:relative; background:transparent; padding:var(--space-1); padding-inline-start:1.25em }
.relation-note>details>summary::before { position:absolute; inset-inline-start:var(--space-1); top:.4em }
.relation-note>details[open]>summary { background:var(--faint) }
.relation-note>details[open] { padding-bottom:var(--space-4) }
.relation-note .preview-title { font-weight:400 }
.linked-note .preview-body { text-indent:0; padding-block:var(--space-2) }
.linked-note .preview-body>:last-child { margin-bottom:0 }
.preview-body ul { list-style-type:disc }
.preview-body ul ul { list-style-type:circle }
.preview-body ul ul ul { list-style-type:square }
.preview-status { color:var(--muted); font-size:.875rem; padding-block:var(--space-2) }
.foldable-note { list-style:none }
.foldable-note>.linked-note { margin-inline-start:-1.25em }
.note-expander { display:inline-block; vertical-align:baseline; border:0; border-radius:0; padding:0; margin-inline-start:.1em; min-width:1.25em; min-height:1.5em; background:none; color:var(--muted); font:inherit; cursor:pointer }
.note-expander:hover,.note-expander[aria-expanded="true"] { color:var(--ink); background:var(--faint) }
.home-page article>footer { margin-top:var(--space-6); padding-top:var(--space-2) }
.outgoing>summary { cursor:pointer }
.outgoing>summary>h2 { display:inline }
.outgoing[open]>summary { margin-bottom:var(--space-2) }
.footnotes { font-size:.875rem; margin-top:var(--space-6) }
.katex-display { overflow-x:auto; overflow-y:hidden }
blockquote { padding-inline-start:var(--space-4); margin-inline:var(--space-6) var(--space-3) }
pre,code { background:var(--faint) }
pre { padding:var(--space-3); border-radius:0; font-size:.875rem }
pre code { background:none; padding:0; font-size:inherit }
table { display:block; overflow:auto; max-width:100% }
hr { background:var(--rule) }
mark { color:var(--ink); background:var(--hover) }
a.slug:hover,a.bullet:hover,.link:hover { background:var(--hover) }
a.bare-url { color:var(--muted); font-size:.875rem; overflow-wrap:anywhere }
a.bare-url:hover { color:var(--ink) }
/* A book-like index: letters organize titles, and sections name their source. */
.index-summary { color:var(--muted); font-size:.875rem }
.index-jump { display:flex; flex-wrap:wrap; gap:var(--space-1) var(--space-2); margin:var(--space-3) 0 var(--space-6) }
.index-jump a { display:inline-flex; align-items:center; justify-content:center; min-width:28px; min-height:28px; color:var(--muted); font-size:.875rem }
.index-group { margin-bottom:var(--space-8); overflow:visible }
.index-group h2 { font-size:1.125rem; line-height:1.4; margin:0 0 var(--space-2) }
.note-index { padding-left:1.3em; margin:0 }
.note-index li { margin-bottom:var(--space-2) }
.index-context { display:inline; margin-inline-start:var(--space-2); font-size:.875rem; color:var(--muted) }
/* The outline has one current location and follows collapsed branches. */
nav#toc,nav#toc a { color:var(--muted) }
#toc>details>summary { cursor:pointer }
#toc h2 { font-size:1rem; margin:0 0 var(--space-3); line-height:1.4 }
#toc ul { padding-left:0; font-size:.875rem; line-height:1.45 }
#toc li { display:flex; align-items:baseline; gap:var(--space-2); margin-bottom:var(--space-2) }
#toc li[hidden] { display:none }
#toc .bullet { flex:none; opacity:.65 }
#toc .toc-depth-1 { padding-left:1em }
#toc .toc-depth-2 { padding-left:2em }
#toc li>.link { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; min-width:0 }
#toc li>.link:focus-visible { -webkit-line-clamp:unset }
#toc a[aria-current="location"],#toc a[aria-current="location"] .taxon { color:var(--ink); font-weight:700 }
#toc li:has([aria-current="location"]) .bullet { color:var(--ink); opacity:1 }
#toc span.taxon { font-weight:400 }
#toc .tree-tools { font-size:.875rem; margin-top:var(--space-4); padding-left:1em; color:var(--muted) }
.toc-disclosure { max-width:40ex }
.toc-disclosure .block { padding-bottom:var(--space-2) }
.tree-tools button,.text-control { font:inherit; color:var(--muted); border:0; background:none; padding:0; cursor:pointer; text-decoration:underline dotted; text-underline-offset:.2em }
.tree-tools button:hover,.text-control:hover { color:var(--ink) }
.text-control:active,.link:active { color:var(--ink); background:var(--faint) }
kbd { font-family:inherit; font-size:.875rem; font-weight:400; color:var(--muted); white-space:nowrap }
#search-toggle kbd { margin-left:var(--space-2) }
.utility { display:none; max-width:90ex; margin:var(--space-4) 0 var(--space-8); overflow:visible }
.utility:target,.utility.is-open { display:block }
.search-line { display:flex; gap:var(--space-4); align-items:center; border-bottom:1px solid var(--rule); padding:var(--space-2) 0 }
.search-line:focus-within { border-color:var(--focus) }
.search input { width:100%; min-width:0; padding:0; border:0; border-radius:0; outline:0; background:transparent; font-size:1.125rem; appearance:none }
.search input::placeholder { color:var(--muted); opacity:1 }
.search input::-webkit-search-cancel-button { display:none }
.search input:focus-visible { outline:0 }
.search-caption { display:flex; justify-content:space-between; gap:var(--space-4); color:var(--muted); font-size:.875rem; margin:var(--space-2) 0 }
#search-status { margin:0 }
#results { list-style:none; padding:0; margin:var(--space-2) 0 0; max-height:min(55vh,28em); overflow:auto; overscroll-behavior:contain }
#results:empty { display:none }
#results li { margin:0 }
#results a { display:block; padding:var(--space-2) var(--space-3); text-decoration:none }
#results [aria-selected="true"],#results li:hover { background:var(--hover) }
#results .result-title { font-weight:700 }
#results .result-context { display:block; font-size:.875rem; color:var(--muted) }
#results p { font-size:.875rem; color:var(--muted); margin:var(--space-1) 0 0; overflow-wrap:anywhere }
.utility-heading { display:flex; justify-content:space-between; align-items:baseline; border-bottom:1px solid var(--rule); padding-bottom:var(--space-2) }
.utility-heading h2 { font-size:1rem; margin:0 }
.shortcut-list { display:grid; gap:var(--space-2); margin:var(--space-3) 0 }
.shortcut-list>div { display:grid; grid-template-columns:9em 1fr; gap:var(--space-4) }
.shortcut-list dd { margin:0 }
.shortcut-setting,.utility-note { font-size:.875rem; color:var(--muted) }
.shortcut-setting { display:flex; gap:var(--space-2); align-items:center }
.utility-note { margin:var(--space-2) 0 0 }
.js-only { display:none }
.js .js-only { display:initial }
.js .site-actions>.js-only { display:inline-flex }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0 }
.skip { position:absolute; top:-100px; background:var(--paper); padding:var(--space-2) }
.skip:focus { top:0 }
a:focus-visible,summary:focus-visible,button:focus-visible,input:focus-visible,[tabindex="-1"]:focus-visible { outline:2px solid var(--focus); outline-offset:3px }
:target { scroll-margin-top:1rem }
@media(min-width:1000px) {
  #grid-wrapper { grid-template-columns:minmax(0,90ex) minmax(22ex,40ex); gap:var(--space-4) }
  #toc { position:sticky; top:var(--space-8); align-self:start; max-height:calc(100vh - 4rem); overflow:auto }
}
@media(min-width:600px) {
  .home-page #backlinks .backlinks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 var(--space-8) }
  .home-page #backlinks .expandable-relation:has(>.relation-note>details[open]) { grid-column:1/-1 }
  .home-page #backlinks li { break-inside:avoid }
}
@media(max-width:999px) {
  #grid-wrapper { display:flex; flex-direction:column }
  #grid-wrapper>nav { display:block; order:-1; margin:0 0 var(--space-4) }
  #grid-wrapper>article { max-width:100%; margin:0 }
  #toc h2 { margin:0 }
  #toc .toc-disclosure>summary::before { content:'▸'; display:inline; color:var(--muted); margin-right:var(--space-2) }
  #toc .toc-disclosure[open]>summary::before { content:'▾' }
  #toc .toc-disclosure>summary>h2 { display:inline }
  .toc-disclosure { max-width:none }
  #toc details[open]>summary { margin-bottom:var(--space-2) }
  .header { margin-bottom:var(--space-4) }
  .block { padding-right:5px }
}
@media(max-width:480px) {
  .site-actions { gap:var(--space-3) }
  .search-caption>span { display:none }
  .shortcut-list>div { grid-template-columns:7em 1fr; gap:var(--space-2) }
  .index-context { display:block; margin:0 }
}
@media(pointer:coarse) {
  .note-expander { min-width:24px; min-height:24px }
  .site-actions { gap:var(--space-3) }
  .site-actions>a,.site-actions>button,.index-jump a { min-height:44px; min-width:44px }
  .logo a,.search-line,.text-control,.tree-tools button,.toc-disclosure>summary { min-height:44px; align-content:center }
  .branch>details>summary,.transclusion>details>summary { min-height:44px; align-content:center }
}
@media print {
  :root { color-scheme:light; --paper:white; --ink:black; --muted:#555; --rule:#aaa; --faint:#eee }
  body>.header,.utility,#toc,.tree-tools { display:none!important }
  #grid-wrapper { display:block }
  #grid-wrapper>article { max-width:none }
  .block:hover { background:none }
}
