div#table-of-contents, main > article p {
    margin-left: auto;
    margin-right: auto;
}

img.latex {
    display: inline-block;
    vertical-align: middle;
}

main table {
    border-top: 1px solid black;
    border-bottom: 1px solid black;
    border-left: none;
    border-right: none;
    border-collapse: collapse;
    text-align: center;
    margin-top: 1em;
}

main table th {
    border-bottom: 1px solid black;
    border-left: 1px solid black;
    padding-left: 0.5em;
    padding-right: 0.5em;
}

main table th:first-child {
    border-left: none;
}

main table td {
    border-left: 1px solid black;
    padding-left: 0.5em;
    padding-right: 0.5em;
}

main table th:only-child {
    text-align: left;
}

main table td:only-child {
    text-align: left;
}

main table td:first-child {
    border-left: none;
}

@media screen {
    body > article {
    	width: var(--max-chars-per-line);
	overflow-x: scroll;
    }

    body > main * {
    	max-width: var(--max-chars-per-line);
    }

    /* mobile */
    @media
    (max-width: 1023px),
    (min-width: 1024px) and (max-width: 1279px) and (min-resolution: 147dpi),
    (min-width: 1280px) and (max-width: 1439px) and (min-resolution: 183dpi),
    (min-width: 1440px) and (max-width: 1919px) and (min-resolution: 206dpi),
    (min-width: 1920px) and (max-width: 2159px) and (min-resolution: 275dpi),
    (min-width: 2160px) and (max-width: 2559px) and (min-resolution: 309dpi),
    (min-width: 2560px) and (max-width: 2669px) and (min-resolution: 366dpi),
    (min-width: 2700px) and (max-width: 3839px) and (min-resolution: 386dpi),
    (min-width: 3840px) and (max-width: 4607px) and (min-resolution: 549dpi),
    (min-width: 4608px) and (max-width: 5119px) and (min-resolution: 659dpi),
    (min-width: 5120px) and (max-width: 8191px) and (min-resolution: 732dpi)
    {
	body > aside nav {
	    display: flex;
	    flex-direction: column;
	    align-items: center;
	}

	body > aside nav h2 {
	    text-align: center;
	}

	body > aside nav dt {
	    text-align: right;
	}
    }

    /* destop, tablet */
    @media
    (min-width: 8192px),
    (min-width: 5120px) and (max-width: 8191px) and (max-resolution: 731dpi),
    (min-width: 4608px) and (max-width: 5119px) and (max-resolution: 658dpi),
    (min-width: 3840px) and (max-width: 4607px) and (max-resolution: 548dpi),
    (min-width: 2700px) and (max-width: 3839px) and (max-resolution: 385dpi),
    (min-width: 2560px) and (max-width: 2669px) and (max-resolution: 365dpi),
    (min-width: 2160px) and (max-width: 2559px) and (max-resolution: 308dpi),
    (min-width: 1920px) and (max-width: 2159px) and (max-resolution: 274dpi),
    (min-width: 1440px) and (max-width: 1919px) and (max-resolution: 205dpi),
    (min-width: 1280px) and (max-width: 1439px) and (max-resolution: 182dpi),
    (min-width: 1024px) and (max-width: 1279px) and (max-resolution: 146dpi)
    {
    	body > aside {
	    grid-column: 2/3;
	}
	body > aside#related-posts {
	    grid-row-start: 1;
	    display: flex;
	    flex-flow: row wrap;
	    justify-content: space-around;
	}
	body > aside#generation-dates {
	    grid-row-start: 2;
	}
	code {
	    font-size: 0.8em;
	}
    }
    
    body > aside#generation-dates {
	text-align: center;
    }

    body > aside#generation-dates li {
	display: inline-block;
	padding-right: 2em;
    }
    div#table-of-contents {
	width: 80ch;
    }

    div#table-of-contents h2 {
	display: none;
    }

    aside#related-posts dl {
	display: grid;
	grid-template-columns: auto auto;
    }

    aside#related-posts dt {
	grid-column: 1/2;
    }

    aside#related-posts dd {
	grid-column: 2/3;
	margin-left: 1ch;
    }

    aside#related-posts ul {
	margin-left: 0px;
	padding-left: 0px;
    }

    .org-keyword {
	color: var(--highlight-color2);
    }

    .org-string {
	color: var(--highlight-color1);
    }

    .org-variable-name {
	color: var(--accent-color3);
    }

    .org-src-container {
	overflow: auto;
	width: auto;
	border: var(--border-hard);
	box-shadow: var(--cloud-shadow);
	background-color: var(--main-color);
    }

    .org-org-meta-line {
    }

    .org-org-table {
    }

    .org-org-block-begin-line {
    }

    .org-org-block {
    }

    .org-org-block-end-line {
    }

    .org-comment, .org-comment-delimiter {
	color: var(--highlight-color1-complement);
    }

    pre {
	display: block;
	font-size: 1rem;
    }

    pre.src {
	padding: 0.3rem 0 0 1rem;
	margin: 0;
    }
    div.org-src-container pre::before {
	display: block;
	font-weight: bold;
	top: 0px;
	right: 0px;
	padding: 3px;
	color: var(--highlight-color2);
	background-image: linear-gradient(90deg, var(--highlight-color2-complement), transparent);
    }

    /* .title { */
    /* 	text-align: center; */
    /* 	margin-top: 1.2em; */
    /* 	margin-bottom: 1.2em; */
    /* } */
    /* .subtitle { text-align: center; */
    /* 		font-size: medium; */
    /* 		font-weight: bold; */
    /* 		margin-top:0; } */
    /* .todo   { font-family: monospace; color: red; } */
    /* .done   { font-family: monospace; color: green; } */
    /* .priority { font-family: monospace; color: orange; } */
    /* .tag    { background-color: #eee; font-family: monospace; */
    /*           padding: 2px; font-size: 80%; font-weight: normal; } */
    /* .timestamp { color: #bebebe; } */
    /* .timestamp-kwd { color: #5f9ea0; } */
    /* .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; } */
    /* .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; } */
    /* .org-center { margin-left: auto; margin-right: auto; text-align: center; } */
    /* .underline { text-decoration: underline; } */
    /* #postamble p, #preamble p { font-size: 90%; margin: .2em; } */
    /* p.verse { margin-left: 3%; } */

    /* Languages per Org manual */
    pre.src-asymptote:before { content: 'Asymptote'; }
    pre.src-awk:before { content: 'Awk'; }
    pre.src-C:before { content: 'C'; }
    pre.src-clojure:before { content: 'Clojure'; }
    pre.src-css:before { content: 'CSS'; }
    pre.src-D:before { content: 'D'; }
    pre.src-ditaa:before { content: 'ditaa'; }
    pre.src-dot:before { content: 'Graphviz'; }
    pre.src-calc:before { content: 'Emacs Calc'; }
    pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
    pre.src-fortran:before { content: 'Fortran'; }
    pre.src-gnuplot:before { content: 'gnuplot'; }
    pre.src-haskell:before { content: 'Haskell'; }
    pre.src-hledger:before { content: 'hledger'; }
    pre.src-java:before { content: 'Java'; }
    pre.src-js:before { content: 'Javascript'; }
    pre.src-latex:before { content: 'LaTeX'; }
    pre.src-ledger:before { content: 'Ledger'; }
    pre.src-lisp:before { content: 'Lisp'; }
    pre.src-lilypond:before { content: 'Lilypond'; }
    pre.src-lua:before { content: 'Lua'; }
    pre.src-matlab:before { content: 'MATLAB'; }
    pre.src-mscgen:before { content: 'Mscgen'; }
    pre.src-ocaml:before { content: 'Objective Caml'; }
    pre.src-octave:before { content: 'Octave'; }
    pre.src-org:before { content: 'Emacs Org Mode'; }
    pre.src-oz:before { content: 'OZ'; }
    pre.src-plantuml:before { content: 'Plantuml'; }
    pre.src-processing:before { content: 'Processing.js'; }
    pre.src-python:before { content: 'Python'; }
    pre.src-R:before { content: 'R'; }
    pre.src-ruby:before { content: 'Ruby'; }
    pre.src-sass:before { content: 'Sass'; }
    pre.src-scheme:before { content: 'Scheme'; }
    pre.src-screen:before { content: 'Gnu Screen'; }
    pre.src-sed:before { content: 'Sed'; }
    pre.src-sh:before { content: 'shell'; }
    pre.src-sql:before { content: 'SQL'; }
    pre.src-sqlite:before { content: 'SQLite'; }
    pre.src-forth:before { content: 'Forth'; }
    pre.src-io:before { content: 'IO'; }
    pre.src-J:before { content: 'J'; }
    pre.src-makefile:before { content: 'Makefile'; }
    pre.src-maxima:before { content: 'Maxima'; }
    pre.src-perl:before { content: 'Perl'; }
    pre.src-picolisp:before { content: 'Pico Lisp'; }
    pre.src-scala:before { content: 'Scala'; }
    pre.src-shell:before { content: 'Shell Script'; }
    pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
    /* additional language identifiers per "defun org-babel-execute"
       in ob-*.el */
    pre.src-cpp:before  { content: 'C++'; }
    pre.src-abc:before  { content: 'ABC'; }
    pre.src-coq:before  { content: 'Coq'; }
    pre.src-groovy:before  { content: 'Groovy'; }
    /* additional language identifiers from org-babel-shell-names in
     ob-shell.el: ob-shell is the only babel language using a lambda to put
     the execution function name together. */
    pre.src-bash:before  { content: 'bash'; }
    pre.src-csh:before  { content: 'csh'; }
    pre.src-ash:before  { content: 'ash'; }
    pre.src-dash:before  { content: 'dash'; }
    pre.src-ksh:before  { content: 'ksh'; }
    pre.src-mksh:before  { content: 'mksh'; }
    pre.src-posh:before  { content: 'posh'; }
    /* Additional Emacs modes also supported by the LaTeX listings package */
    pre.src-ada:before { content: 'Ada'; }
    pre.src-asm:before { content: 'Assembler'; }
    pre.src-caml:before { content: 'Caml'; }
    pre.src-delphi:before { content: 'Delphi'; }
    pre.src-html:before { content: 'HTML'; }
    pre.src-idl:before { content: 'IDL'; }
    pre.src-mercury:before { content: 'Mercury'; }
    pre.src-metapost:before { content: 'MetaPost'; }
    pre.src-modula-2:before { content: 'Modula-2'; }
    pre.src-pascal:before { content: 'Pascal'; }
    pre.src-ps:before { content: 'PostScript'; }
    pre.src-prolog:before { content: 'Prolog'; }
    pre.src-simula:before { content: 'Simula'; }
    pre.src-tcl:before { content: 'tcl'; }
    pre.src-tex:before { content: 'TeX'; }
    pre.src-plain-tex:before { content: 'Plain TeX'; }
    pre.src-verilog:before { content: 'Verilog'; }
    pre.src-vhdl:before { content: 'VHDL'; }
    pre.src-xml:before { content: 'XML'; }
    pre.src-nxml:before { content: 'XML'; }
    /* add a generic configuration mode; LaTeX export needs an additional
     (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
    pre.src-conf:before { content: 'Configuration File'; }

    /* table { */
    /* 	border-collapse:collapse; */
    /* } */
    /* caption.t-above { */
    /* 	caption-side: top; */
    /* } */
    /* caption.t-bottom { */
    /* 	caption-side: bottom; */
    /* } */
    /* td, th { */
    /* 	vertical-align:top; */
    /* } */
    /* th.org-right  { */
    /* 	text-align: center; */
    /* } */
    /* th.org-left   { */
    /* 	text-align: center; */
    /* } */
    /* th.org-center { */
    /* 	text-align: center; */
    /* } */
    /* td.org-right  { */
    /* 	text-align: right; */
    /* } */
    /* td.org-left   { */
    /* 	text-align: left; */
    /* } */
    /* td.org-center { */
    /* 	text-align: center; */
    /* } */
    /* .footpara { */
    /* 	display: inline; */
    /* } */
    /* .footdef  { */
    /* 	margin-bottom: 1em; */
    /* } */
    /* .figure { */
    /* 	padding: 1em; */
    /* } */
    /* .figure p { */
    /* 	text-align: center; */
    /* } */
    /* .inlinetask { */
    /* 	padding: 10px; */
    /* 	border: 2px solid gray; */
    /* 	margin: 10px; */
    /* 	background: #ffffcc; */
    /* } */
    /* #org-div-home-and-up */
    /* { text-align: right; font-size: 70%; white-space: nowrap; } */
    /* textarea { overflow-x: auto; } */
    /* .linenr { font-size: smaller } */
    /* .code-highlighted { background-color: #ffff00; } */
}

@media print {
    body > aside#related-posts {
	display: none;
    }
    body > main {
	font-size: 10px;
    }
    .latex {
	height: 1em;
    }
    a {
	text-decoration: none;
	color: inherit;
    }

    li#markup-source * {
	display: none;
    }

    li#publication-date, li#update-date {
	display: inline-block;
    }

    li#update-date {
    	margin-left: 1in;
    }

    aside#generation-dates ul {
	text-align: center;
    }
    table {
	margin: auto;
    }
}
