:root {
  --bg: #181a1b;
  --fg: #e8e6e3;
  --muted: #a9a7a4;
  --inv-muted: #222222;
}

* {
  box-sizing: border-box;
  font-family: ui-sans-serif, sans-serif;
}

.mono {
  font-family: ui-monospace, monospace;
}

body {
  animation: fadeIn 0s ease-in forwards;
}

@keyframes fadeIn {
  to {
    opacity: 1;
  }
}

html, body {
  margin: 0;
  height: 100%;
  background: var(--bg);
  color: var(--fg);
  line-height: 1.5;
}

ul {
  padding-left: 1em;
  list-style-type: disc;
}

sup {
  vertical-align: baseline;
  text-decoration: underline;
  padding: 0 4px;
  border-left: 1px solid var(--muted);
  border-right: 1px solid var(--muted);
}

.layout {
  display: flex;
  height: 100vh;
  overflow: hidden;
}

.sidebar {
  padding: 1.5rem 1rem;
  flex: 1 1 0;
  overflow-y: auto;
  color: var(--muted);
}

.sidebar.left {
  padding-top: 0;
  order: 0;
}

.sidebar.left .text-right {
  text-align: right;
}

.sidebar.left ul {
    list-style: none;
}

.main-view {
  order: 1;
  width: 50em;
  max-width: 100%;
  overflow-y: auto;
  padding: 0 1rem;
  border-left: 1px solid black;
  border-right: 1px solid black;
}

.sidebar.right {
  order: 3;
  text-align: left;
}

code {
  color: #33ff91;
}

a {
  color: #3391ff;
  text-decoration: none;
}

a:visited {
  color: #578a9b;
}

.logo {
  margin: 0;
  text-align: center;
  padding-bottom: 2rem;
}

.logo img {
  width: 100%;
  height: 100%;
  display: none;
}

.logo-box {
  width: 15ch;
  height: 15ch;
  background-image: url("/onion-wht.svg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  margin: 0 auto;
}

code span.al { color: #ffcfaf; } /* Alert */
code span.an { color: #7f9f7f; font-weight: bold; } /* Annotation */
code span.at { } /* Attribute */
code span.bn { color: #dca3a3; } /* BaseN */
code span.bu { } /* BuiltIn */
code span.cf { color: #f0dfaf; } /* ControlFlow */
code span.ch { color: #dca3a3; } /* Char */
code span.cn { color: #dca3a3; font-weight: bold; } /* Constant */
code span.co { color: #7f9f7f; } /* Comment */
code span.cv { color: #7f9f7f; font-weight: bold; } /* CommentVar */
code span.do { color: #7f9f7f; } /* Documentation */
code span.dt { color: #dfdfbf; } /* DataType */
code span.dv { color: #dcdccc; } /* DecVal */
code span.er { color: #c3bf9f; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #c0bed1; } /* Float */
code span.fu { color: #efef8f; } /* Function */
code span.im { } /* Import */
code span.in { color: #7f9f7f; font-weight: bold; } /* Information */
code span.kw { color: #f0dfaf; } /* Keyword */
code span.op { color: #f0efd0; } /* Operator */
code span.ot { color: #efef8f; } /* Other */
code span.pp { color: #ffcfaf; font-weight: bold; } /* Preprocessor */
code span.sc { color: #dca3a3; } /* SpecialChar */
code span.ss { color: #cc9393; } /* SpecialString */
code span.st { color: #cc9393; } /* String */
code span.va { } /* Variable */
code span.vs { color: #cc9393; } /* VerbatimString */
code span.wa { color: #7f9f7f; font-weight: bold; } /* Warning */

pre {
  padding: 1em;
  border: 1px solid black;
  background-color: var(--inv-muted);
}

@media (max-width: 80em), print {
  .main-view {
    width: 40em;
  }
}

@media (max-width: 70em), print {
  .main-view {
    width: 35em;
  }
}

@media (max-width: 63em), print {
  .sidebar,
  .main-view,
  .layout {
    overflow: visible;
  }

  .layout {
    display: block;
    height: auto;
  }

  .main-view {
    border-left: initial;
    border-right: initial;
    border-top: 1px solid black;
    border-bottom: 1px solid black;
  }

  .sidebar,
  .main-view {
    flex: initial;
    width: initial;
    max-width: initial;
    padding: 0 1rem;
  }

  .sidebar.left .text-right {
    text-align: left;
  }

  .logo {
    display: flex;
    align-items: last baseline;
    gap: 0.6rem;
    text-align: left;
    padding-top: 1em;
    padding-bottom: 0;
  }

  .logo-box {
    order: -1;
    margin: 0;
    width: 5ch;
    height: 5ch;
  }
}

@media print {
  html, body, .sidebar, .main-view {
    color: black;
    background: white;
    height: auto;
    padding: initial;
  }

  .mdlink {
    display: none;
  }

  sup {
    text-decoration: underline;
    border-left: 1px solid var(--inv-muted);
    border-right: 1px solid var(--inv-muted);
  }

  .layout {
    padding: initial;
  }

  .logo img {
      display: initial;
  }

  a {
    color: black;
    text-decoration: underline;
  }
  a:visited {
    color: black;
  }
}
