html {
    font-family: Georgia, serif;
    font-size: 18px;
    line-height: calc(1ex/0.37);
}
#TOC {text-align: left;}
html,body { margin: 0; padding: 0; border: 0; }
.main { min-height: calc(100vh - 1em); }
h1,h2,h3,h4,h5,h6 {
    line-height: calc(1ex/0.42);
    margin: calc(1ex/0.42) 0; }
#preamble h1 { margin: 0; }
p { text-align: justify; hyphens: auto; }
pre { overflow-x: scroll; padding: 1em; border-left: dotted 1px; }
pre > code { background: none; font-size: 0.875em; padding: 0; }
code,pre { font-family: Menlo, Monaco, monospace; font-size: 0.825em; }
code { padding: 1px 3px; }
figure { margin: 1rem 0; padding: 0; }
hr { opacity: 0.3; }
.meta { font-size: small;}
.abstract,.notes { margin: 1rem 10% 0; font-size: 0.875em; }
.notes { border: dotted 1px; padding: 1em 2em;}
.abstract { font-style: italic; }
#logo { display: block;
        vertical-align: middle;
        text-align: center;
        padding: 1rem;
      }
#logo svg { width: 5em; }
#preamble, #postamble { text-align: center; }
#content,.content,#postamble {
    padding: 0 1rem;
    max-width: 62ch;
    overflow: hidden;
    margin: 0 auto;
}
#content, #preamble,#postamble { padding: 1rem; }
figure img { width: 100%; }
img { max-width: 100%; border: solid; }
li p { margin: 0; padding: 0; }
li > img, p > img { max-height: 1.5em; vertical-align: middle; }
abbr {border-bottom: dotted 1px;}
sup, sub {
    vertical-align: baseline;
    position: relative;
    top: -0.4em;
}
sub { top: 0.4em; }
.footdef > sup { vertical-align: top; font-size: medium; }
.footdef > sup > a { padding: 0.5em; }
.footpara { display: inline; }
footer { margin: 3em 0;
         padding: 1em 0;
         border-top: solid 1px;
         border-bottom: solid 1px;
         line-height: 1em;
         font-size: 0.875em;
       }
table { margin: 1rem 0; line-height: 1em; max-width: 100%; overflow: scroll;
        display: block;
        border: solid 1px;}
table th { padding: .1em 1em; }
table td { padding: .1em 1em; }
nav { text-align: center; padding: 1em 0;  }
pre { line-height: 1em; }
figcaption { text-align: right; font-style: italic; font-size: 0.875em; }
#table-of-contents { text-align: left; }
#toc { font-size: 0.875em; padding: 1rem; }
#toc ul { padding-left: 2em; }
#toc, blockquote, pre.example, .line-block { margin: 1rem; padding: 1rem; border-left: solid var(--gr); }
.pubDate { display: inline-block; width: 7em; font-size: .825em; opacity: 0.4; }

/* COLORS */
/* colortheme switch */
:root {
    --y: #c18600;
    --o: #d84100;
    --r: #e62729;
    --m: #ec0085;
    --v: #6c71c4;
    --b: #0095ff;
    --c: #00b0a3;
    --g: #879a00;

    --bg: #fff;
    --fg: #000;
    --gr: hsl(218,20%,95%);
}

img { filter: brightness(0.8) sepia(100%) hue-rotate(185deg) saturate(0.5); }
img:hover,svg:hover { filter: none; }

/* dark preferred */
@media (prefers-color-scheme: dark)
{
    :root {
        --y: #ae8c51;
        --o: #a9654a;
        --r: #af6255;
        --m: #ae5e7d;
        --v: #6774b2;
        --b: #3f8cc3;
        --c: #15a198;
        --g: #939452;
        --bg: hsl(218,20%,12%);
        --fg: hsl(218,20%,70%);
        --gr: hsl(218,20%,20%);
    }
    img { filter: brightness(0.6) sepia(100%) hue-rotate(185deg) saturate(0.5); }
    img:hover { filter:  brightness(0.7); }
    strong, b, i, emph, a:hover { color: hsl(218,50%,90%); }
}

pre,code { background: var(--gr); }
body, body > div {
    background: var(--bg);
    color: var(--fg);
}
a,a:visited { color: var(--fg); }
/* ---- SYNTAX HIGHLIGHTING ---- */
.ex { color:var(--v); }
.op, .fu, .ot {color:var(--b);}
.bu { color:var(--m); }
.dt  { color:var(--o); }
.kw { color:var(--y); }
.st { color:var(--g); }
.co { opacity: 0.4; }
.todo,.done { background: var(--r); color: #FFF; font-weight: bold; font-size: .66em; padding: .2em;}
.done { background: var(--g); }

/* LEGACY */
.inlineblockimg { display: inline-block; }
.inlineblockimg > img { display: inline-block; vertical-align: middle; width: 3em; }
