/* CSS to be used for HTML Org-mode export
   Author: Yann Esposito
*/
/* Fonts */
:root {
    --lh: 26px;
}
body {
    font-size: 18px;
    font-family: Palatino, Georgia, serif;
    line-height: var(--lh);
}
pre, pre code {
    line-height: 1em;
    font-size: 13px;
    font-family: Menlo, monospace;
}
blockquote pre {
    line-height: var(--lh);
}
/* Layout */
body, h1, h2, h3, h4, h5, h6, pre, code, blockquote, ol, ul, ol ol, ul ul, ul ol, ol
ul, li, p, section, header, footer, img {
    float: none;
    margin: 0;
    padding: 0;
    border: 0;
    hyphens: auto;
}
h1, h2, h3, h4, h5, h6, pre, code, blockquote, p, ul, ol, section, header,
figure,table {
    margin-top: var(--lh);
    margin-bottom: var(--lh);
}
li {
    display: block;
    padding-left: 2ch;
}
ol > li:before, ul > li:before {
    content: "– ";
    float: left;
    position: relative;
    left: -2ch;
    text-align: right;
    width: 0;
}
ol {
    counter-reset: ol;
}
ol > li:before {
    content: counter(ol) ". ";
    counter-increment: ol;
}
ol > li:nth-child(n+10) {
    padding-left:3ch;
}
ol > li:nth-child(n+10):before {
    left: -3ch;
}
img {
    width: 100%;
    max-height: 100vh;
    margin: 1em auto;
}
p > img, li > img {
    max-height: 1cap;
    width: auto;
    margin: 0;
    vertical-align: middle;
}
table {
    display: block; /* for overflow to work */
    max-width: 100%;
    border-collapse: collapse;
    overflow: scroll;
    border-top: dashed 2px;
    border-bottom: dashed 2px;
}
td, th {
    height: 1em;
    padding: 0 10px;
    text-align: left;
    vertical-align: middle;
    border-left: dashed 2px;
    border-right: dashed 2px;
}
sup {
    vertical-align: top;
    position: relative;
    top: -.25em;
}
sup > a {
    text-decoration: none;
    padding: 1px 2px;
    font-weight: bold;
}

/* Markdown tricks */
h1,h2,h3,h4,h5,h6 {
    font-size: 1em;
}
h1::before {
    content: "# ";
}
h2::before {
    content: "## ";
}
h3::before {
    content: "### ";
}
h4::before {
    content: "#### ";
}
h5::before {
    content: "##### ";
}
h6::before {
    content: "###### ";
}
hr {
    border: 0;
}
#preamble h1 {
    margin-top: 0;
}
#table-of-contents,
#table-of-contents ul,
#table-of-contents h2
{
    padding:0;
    margin:0;
}
#table-of-contents {
    margin-bottom: var(--lh);
}
#postamble:before, hr:after {
    text-align: center;
    content: "--------------------------------------------------------------------------------";
    display:block;
    width: 100%;
    overflow: hidden;
    opacity: .5;
    height: 1em;
}
pre {
    max-width: 100%;
    overflow-x: scroll;
    overflow-y: hidden;
}
pre:after,pre:before {
    content: "~~~~~~~~~";
    display: block; }
pre:before {
    content: "~~~~~~~~~ " attr(class);
}
pre code {
    background: none;
}
blockquote,#table-of-contents {
    margin-left: 0;
    position: relative;
    padding-left: 17px;
    padding-left: 2ch;
    overflow: hidden;
}
#table-of-contents:after, blockquote:after {
    content: ">\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>\A>";
    white-space: pre;
    position: absolute;
    top: 0;
    left: 0;
}
nav {
    font-weight: bold;
    display: block;
    padding: 10px 0;
}
nav > a {
    margin-right: 10px;
}

/* org mode ids and classes */
figure, .figure {
    margin: 1em 0;
}
#content,.content {
    max-width: 48em;
    margin: 0 auto;
    padding: 0 1em;
}
#content:last-child, .notes *:last-child, blockquote *:last-child {
    margin-bottom: 0;
}
#content:first-child, .notes *:first-child, blockquote *:first-child{
    margin-top: 0;
}
#postamble {
    margin-top: var(--lh);
}
.timestamp-wrapper {
    font-size: 12px;
}
.todo, .done {
    font-size: 12px;
    font-weight: bold;
    padding: 1px 1ex;
}
.article-date {
    font-size: 0.8em;
    font-style: italic;
    float: right;
}
.footpara {
    display: inline;
}
.footdef > sup {
    vertical-align: middle;
}
.footdef > sup::after {
    content: ": ";
}
.notes {
    padding: 1ex;
}
.underline {
    text-decoration: underline;
}
#h {
    float: left;
}
.main {
    padding-top: 1em;
}
#labels {
    width: 100%;
    text-align: right;
}
#labels label {
    text-decoration: underline;
    cursor: pointer;
    font-style: italic;
}

/* colors theme */
:root {
    color-scheme: light dark; /* support color scheme */
    --b03:  #202631;
    --b02:  #2b313c;
    --b01:  #656b74;
    --b00:  #727781;
    --b0:   #8b919b;
    --b1:   #989ea8;
    --b2:   #e5e8ed;
    --b3:   #f4f7ff;
    --y: #a98d50;
    --o: #aa6550;
    --r: #b85a64;
    --m: #af53b0;
    --v: #846f93;
    --b: #5679a4;
    --c: #4c8493;
    --g: #728b5c;

    /* Solaryzed accented colors */
    --bg: var(--b03);
    --fg: var(--b2);
    --fg0: var(--b00);
    --bg2: var(--b02);
    --fg2: var(--b1);
    --rfg: var(--b1);
    --rbg: var(--b02);
    --bdr: var(--b02);
    --l-fg: var(--bg);
    --l-bg: var(--g);
}

/* org colors */
@media (prefers-color-scheme: light) {
    :root {
        --bg: var(--b3);
        --fg0: var(--b00);
        --fg: var(--b02);
        --bg2: var(--b2);
        --fg2: var(--b01);
        --rfg: var(--b01);
        --rbg: var(--b2);
        --bdr: var(--b2);
        --l-fg: var(--bg);
        --l-bg: var(--o);
    }
    img {
        filter: sepia(100%) hue-rotate(182deg) saturate(0.6);
    }
}
/* Dark themes soften and darken images */
@media (prefers-color-scheme: dark) {
  img {
      filter: brightness(0.8) sepia(100%) hue-rotate(182deg) saturate(0.6);
  }
}
/* Light themes does not soften and darken images */
#l:checked ~ .main img { filter: sepia(100%) hue-rotate(182deg) saturate(0.6); }
#d:checked ~ .main img { filter: brightness(0.8) sepia(100%) hue-rotate(182deg) saturate(0.6); }

/* --------------------------------------------------------------------------- */
/* Dark theme selected */
#d:checked ~ .main, #d:checked ~ #labels {
    --bg: var(--b03);
    --fg: var(--b1);
    --fg0: var(--b2);
    --bg2: var(--b02);
    --fg2: var(--b1);
    --rfg: var(--b1);
    --rbg: var(--b02);
    --bdr: var(--b02);
    --l-fg: var(--bg);
    --l-bg: var(--g);
}

/* --------------------------------------------------------------------------- */
/* Light theme selected */
#l:checked ~ .main, #l:checked ~ #labels {
    --bg: var(--b3);
    --fg0: var(--b00);
    --fg: var(--b02);
    --bg2: var(--b2);
    --fg2: var(--b01);
    --rfg: var(--b01);
    --rbg: var(--b2);
    --bdr: var(--b2);
    --l-fg: var(--bg);
    --l-bg: var(--o);
}

/* --------------------------------------------------------------------------- */
/* Default color theme */
body,.main {
    background: var(--bg);
    color: var(--fg);
    min-height: 100vh;
}
::selection, .main ::selection {
    color: white;
    background: var(--v);
}

a, a:visited,
.main a, .main a:visited {
    color: var(--rfg);
}

b, strong, i, em {
    color: var(--rfg);
}

sup > a {
    background: var(--rbg);
}

body > input { display:none; }

#labels {
    background: var(--bg2);
    color: var(--fg2);
}

li .keywords {
    font-style: italic;
    color: var(--fg0);
}

.main ol > li:before, ol > li:before,
pre::after,pre::before,hr:after,
.main pre::after,.main pre::before,.main hr:after,
nav a, nav a:visited, .main nav a,.main nav a:visited {
    color: var(--fg0);
}
#labels label:hover,
a:hover,
a:hover *,
.main a:hover,
.main a:hover *,
nav a:hover,
.main nav a:hover {
    color: var(--l-fg);
    background: var(--l-bg);
}

abbr { border-bottom: dashed 1px;
       display: inline-block;
     }

thead, .main thead, tr:hover, .main tr:hover {
    background: var(--rbg);
    color: var(--rfg);
}
.description {
    color: var(--fg2);
}
h1, .main h1,
h2, .main h2,
h3, .main h3,
h4, .main h4,
h5, .main h5,
h6, .main h6,
{
    color: var(--rfg);
}
table, td, th,
.main table,.main td,.main th {
    border-color: var(--fg0);
}
code, .main code {
    background: var(--rbg);
}
blockquote:after, .main blockquote:after {
    color: var(--fg2);
}
#preamble,#postamble,.main #preamble, .main #postamble {
    border-color: transparent;
}
.article-date, .main .article-date {
    color: var(--fg2);
}
/* -------- */
/* org colors */
.todo, .done, .main .todo, .main .done {
    height: 10px;
    display: inline-block;
    line-height: 12px;
    font-weight: bold;
    font-size: 10px;
    border-left: solid 2px;
    border-right: solid 2px;
    padding: 0 3px;
}
.notes, .main .notes {
    background: var(--rbg);
    color: var(--rfg);
    margin: 1em 0;
}
/* ---- SYNTAX HIGHLIGHTING ---- */
.org-rainbow-delimiters-depth-1, .org-rainbow-delimiters-depth-9,
.org-css-selector, .org-nix-attribute, .org-builtin,
.IN_REVIEW, a {
    color:var(--c);
}

.org-rainbow-delimiters-depth-2, .org-nix-builtin, .org-variable-name,
.org-haskell-definition, .org-haskell-operator, .org-function-name, .org-diff-changed {
    color:var(--b);
}

.org-rainbow-delimiters-depth-3, .HOLD, .WAITING {
    color:var(--v);
}

.org-rainbow-delimiters-depth-4, .org-diff-hunk-header, .org-sh-quoted-exec,
.CANCELED {
    color:var(--m);
}
.org-rainbow-delimiters-depth-5, .org-diff-removed, .TODO {
    color:var(--r);
}
.org-rainbow-delimiters-depth-6, .org-haskell-constructor  {
    color:var(--o);
}
.org-rainbow-delimiters-depth-7, .org-type, .org-constant, .org-diff-header,
.org-haskell-keyword, .org-haskell-type, .IN_PROGRESS {
    color:var(--y);
}
.org-rainbow-delimiters-depth-8, .org-sh-heredoc, .org-diff-added, .org-string,
.org-doc, .org-keyword, .DONE {
    color:var(--g);
}

.org-diff-none, .org-preprocessor, .org-comment-delimiter, .org-comment,
.org-outshine-level-1, .org-outshine-level-2, .org-outshine-level-3,
.org-outshine-level-4, .org-outshine-level-5, .org-outshine-level-6,
.org-outshine-level-7, .org-outshine-level-8, .org-outshine-level-9 {
    color:var(--fg2);
}

.org-highlight-numbers-number, .org-highlight-number-number
 {
    color:var(--rfg);
}
