
body {
  margin:0;
  padding: 0;
  color: #333333;
  font-size: 4.6vw;
}

body.outline {
  background-image: url(images/bg1024.png);
  background-position: left top;
  background-repeat: no-repeat;
}

img {
  border: none;
}

#index #content {
  position: absolute;
  top: 50%;
  margin: -23vw 0 0 0;
  padding: 0;
  min-height: auto;
  background-color: #ffeeee99;
  background-size: 100% auto;
  background-image: url(images/catalyst-cover.jpg);
  width: 100vw;
  height: 45vw;
  font-family: Lato, Arial, sans-serif;
}

#index #title-header {
  margin: 13% 24% 0 12.2%;
  font-size: 110%;
  font-weight: bold;
}

#index #title-subtitle {
  margin: 0 34% 0 12.2%;
  font-size: 70%;
  font-style: italic;
}

#index #title-author {
  position: absolute;
  top: 27vw;
  left: 0;
  margin: 0 34% 0 12.3%;
  font-size: 65%;
  font-style: italic;
  color: #999999;
}

#title-logo {
  position: absolute;
  left: 12.2%;
  top: 76%;
  width: 20.5vw;
  height: 6.7vw;
  background-size: 100% auto;
  background-image: url(images/catalyst-logo.svg);
}

#content {
  position: relative;
  box-sizing: border-box;
  min-height: 100vh;
  margin: 0;
  padding: 3vw 4vw 80px 4vw;
  font-family: Lato, Arial, sans-serif;
  font-weight: normal;
}

h1 {
  font-weight: bold;
  font-size: 112%;
  line-height: 1;
  color: #bb2025;
  margin: 0 0 0.8em 0;
}

#content ul {
  margin: 0;
  padding: 0 0 0 1em;
}

#content ul li {
  margin: 1vw 0;
  padding: 0;
}


div.quotation {
  position: relative;
  margin: 80px 40px 0 40px;
  font-family: Qlassik Bold;
  font-style: italic;
}

div.quote-body:before {
  position: absolute;
  left: -0.5em;
  content: "“";
}

div.quote-body:after {
  content: "”";
}

div.quote-body {
  font-size: 46pt;
  text-align: left;
}

div.quote-body em {
  color: #ffff88;
}

div.quote-attrib {
    text-align: right;
    font-size: 28pt;
}

a {
  text-decoration: none;
  color: #555588;
}

a:hover {
  text-decoration: underline;
}

a:focus {
  outline: none;
}

#nav {
  position: absolute;
  right: 0;
  top: 0;
  padding: 3.5vw 2vw 4vw 4vw;
  opacity: 0.2;
  transition: opacity 0.3s;
}

#index #nav {
  opacity: 1;
}

#nav:hover {
  opacity: 1;
}

#nav a {
  display: block;
  float: left;
  width: 1.1em;
  height: 1.3em;
  font-size: 85%;
  line-height: 1;
  color: #bbbbbb;
  border: none;
  text-decoration: none;
  border-radius: 5px;
  text-align: center;
  transition: color 0.3s, text-shadow 0.3s;
}

.section #nav a:hover {
  color: #ffffff;
}

#nav-prev:before { content: '◀'; }
#nav-toc:before  { content: '𝌆'; line-height: 1.2; }
#nav-next:before { content: '▶'; }

#nav a:hover {
  color: #bb2025;
  text-shadow: 0px 0px 8px rgba(255, 205, 0, 0.6);
}

#index #footer {
  display: none;
}

body.section {
  background-color: #bb2025;
}

body.section #content {
  display: flex;
  justify-content: space-around;
  height: 90vh;
}

body.section.variant-a { background-color: #bb2025; }
body.section.variant-b { background-color: #dd8545; }
body.section.variant-c { background-color: #e6ad30; }
body.section.variant-d { background-color: #5b9aa9; }
body.section.variant-e { background-color: #889a3a; }
body.section.variant-y { background-color: #ffffff; }
body.section.variant-z { background-color: #000000; }

body.section #content > h1 {
  align-self: center;
  width: 40%;
  text-align: center;
  color: #ffffff;
  font-size: 160%;
  line-height: 120%;
  font-weight: 900;
}

body.section.variant-y #content > h1 {
  color: #000000;
}

@media only screen and (max-width: 500px) {

  #footer:before {
    display: none;
  }

}

#content #toc {
  float: left;
  margin: 0 0 0 1.0em;
  padding: 0;
  font-size: 72%;
  font-weight: bold;
}

#content #toc li {
  margin: 0.1em 0 0 0;
  padding: 0.15em 0 0.25em 0.2em;
  line-height: 1;
  border-radius: 3px;
}

#content #toc li.section {
  list-style: none;
  margin: 1.2em 0 0.6em -1.4em;
  border-bottom: 2px solid #eee;
  padding: 0.2em 6em 0.2em 0;
}

#content #toc li:hover {
  background-color: #666666;
}

#content #toc li.section:hover {
  background-color: #bb2025;
  border-bottom: 2px solid #bb2025;
}

#toc a {
  display: block;
  padding: 0 6px;
  color: #555555;
  text-decoration: none;
}

#toc li:hover a {
  color: white;
  background-color: #666666;
}

#toc li.section:hover a {
  background-color: #bb2025;
}

li tt {
  font-size: 75%;
  font-family: monospace;
  font-weight: bold;
}

#content ul li em {
  font-style: italic;
  text-decoration: underline;
  padding: 0 0.1em;
  color: #888888;
}

strike {
  color: #777777;
}

.code {
  margin: 1.0em 0 0.6em 0;
  padding: 0;
  color: #444444;
  background-color: #ffffff;
  font-family: monospace, Bitstream Vera Sans Mono, Courier New;
  font-size: 75%;
  font-weight: bold;
  line-height: 130%;
}

.code.huge {
  font-size: 130%;
}

.code.big {
  font-size: 115%;
}

.code.small {
  font-size: 61%;
}

.code.tiny {
  font-size: 45%;
}

.synComment    { color: #a0a0a0; font-weight: normal; font-style: italic; }
.synConstant   { color: #338833; }
.synIdentifier { color: #885500; }
.synStatement  { color: #1111ff; ; font-weight: bold; }
.synPreProc    { color: #a020f0; }
.synType       { color: #8b2e57; font-weight: bold; }
.synSpecial    { color: #6a5acd; }
.synUnderlined { color: #000000; text-decoration: underline; }
.synError      { color: #ffffff; background: #ff0000 none; }
.synTodo       { color: #0000FF; background: #ffff00 none; }
.synInput      { color: #2E8B57 ; font-weight: bold }

div.included {
  margin: 1.0em 14px 20px 14px;
  padding: 5px;
  border: 1px solid #dddddd;
  border-radius: 5px;
  min-height: 43vh;
  font: normal normal 22px serif;
  line-height: 120%;
}

div.included h1 {
  background-image: none;
  font-size: 24pt;
  font-family: serif;
  font-weight: bold;
  border: none;
}

div.included ul {
  font: normal normal 100% serif;
  list-style: disc;
  margin: 1em;
}

div.included li {
  background-image: none;
  padding: 0 0 0 0.8em;
  margin: 0.3em 1em;
}

::-moz-selection { background: #ffe7bf; }
::selection      { background: #ffe7bf; }

div.pic {
  float: right;
  padding: 12px 0 0 0;
  margin-left: 20px;
}

div.pic img {
  display: block;
  max-width: 28vw;
}

div.pic div.caption {
  font-size: 28%;
  font-family: Arial, Helvetica, sans-serif;
  text-align: right;
}

div.screenshot img {
  display: block;
  max-height: 70vh;
  max-width: 90vw;
}

div.screenshot .caption {
  display: block;
  font-size: 44%;
  font-style: italic;
  margin: 0.4em 0 0 0;
}

#credits li {
  font-size: 26pt;
}

