@import url("reset.css");
@import url("pygment.css");
/* @import url("typogrify.css"); */
@import url(//fonts.googleapis.com/css?family=Open+Sans:400|Roboto+Slab:400);

body {
  font-family: 'Open Sans', Arial, sans-serif;
  font-size: 112%;
  background: #fcfcfc;
  color: #404040;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Roboto Slab', Georgia, serif;
  font-weight: bold;
}

h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
  color: inherit;
  text-decoration: none;
}

h1 { font-size: 150% }
h2 { font-size: 135% }
h3 { font-size: 120% }
h4 { font-size: 110% }
h5 { font-size: 105% }
h6 { font-size: 100% }

#site-header > *, #site-main, #site-footer > * {
  margin: 0 auto;
  max-width: 1200px;
}

#site-header {
  background: #07446f;
  color: #fcfcfc;
  padding: 20px 20px 30px;
  line-height: 1.2;
  font-weight: bold;
  font-size: 150%;
  text-shadow: 2px 3px 0 #111;
}

#site-main {
  padding: 0 20px;
  line-height: 1.5;
  display: -webkit-flex;
  display:         flex;
  -webkit-flex-direction: row;
          flex-direction: row;
}

#site-main:after {
  content: "";
  display: table;
  clear: both;
}

#site-main header {
  margin-bottom: 1.5em;
}

#site-main > main {
  min-width: 0;
  -webkit-flex: 3 1 75%;
          flex: 3 1 75%;
  -webkit-order: 1;
          order: 1;
}

main > header {
  margin-top: 20px;
}

main > nav {
  margin: 20px 0;
}

article {
  padding: 1.5em 0;
}

article + article {
  border-top: 1px solid #aaa;
}

header > time, header > p {
  font-family: 'Roboto Slab', Georgia, serif;
}

.content p {
  padding-top: 1px;
  margin-bottom: 1.5em;
}

.content p:before {
  content: "";
  width: 10em;
  height: auto;
  display: block;
  overflow: hidden;
}

.group:after {
  content: "";
  display: table;
  clear: both;
}

#site-nav {
  margin: 0 20px;
  -webkit-flex: 1 6 25%;
          flex: 1 6 25%;
  -webkit-order: 2;
          order: 2;
}

#site-nav > section {
  margin: 20px;
}

#site-nav h2 {
  font-size: 115%;
  border-bottom: 1px solid #000;
}

#site-nav li {
  padding: 3px 0;
}

#site-footer {
  border-top: 1px solid #aaa;
  line-height: 1.2;
  padding: 20px;
}

div.highlight {
  margin: 20px 5px;
  overflow: auto;
}

pre {
  padding: 10px;
  overflow: auto;
}

p.continue {
  font-size: 90%;
  font-style: italic;
}

.figure {
  border: 1px solid #bbb;
  border-radius: 3px;
  padding: 4px;
  box-shadow: 4px 4px 4px 0px rgba(128, 128, 128, 0.5);
}

.figure p.caption {
  margin: 0;
  font-size: 80%;
  padding: 4px;
  float: left;
  text-align: left;
}

.figure div.legend {
  padding: 4px;
  font-size: 80%;
  color: #aaa;
  font-style: italic;
  float: left;
}

.align-left {
  float: left;
  margin: 0 16px 16px 0;
}

.align-right {
  float: right;
  margin: 0 0 16px 16px;
}

li ul, li ol {
  margin: 0 1.5em;
}
ul, ol {
  margin: 0 1.5em 1.5em 1.5em;
}
ul {
  list-style-type: disc;
}
ol {
  list-style-type: decimal;
}
ol ol {
  list-style: upper-alpha;
}
ol ol ol {
  list-style: lower-roman;
}
ol ol ol ol {
  list-style: lower-alpha;
}
dl {
  margin: 0 0 1.5em 0;
}
dl dt {
  font-weight: bold;
}
dd {
  margin-left: 1.5em;
}

@media all and (max-width: 1000px) {
  #site-main {
    -webkit-flex-direction: column;
            flex-direction: column;
  }

  #site-main > main, #site-nav {
    margin: 0;
    -webkit-flex: 0 1 auto;
            flex: 0 1 auto;
    -webkit-order: 0;
            order: 0;
  }

  #site-nav > section {
    margin: 0;
  }

  #site-nav ul {
    content: " ";
    display: table;
  }

  #site-nav li {
    display: block;
    float: left;
  }

  #site-nav li * {
    padding: 10px 15px;
  }
}

@media print {
  body {
    font-size: 12pt;
  }
  #site-header {
    text-shadow: none;
  }
  #site-nav {
    display: none;
  }
  #site-main {
    display: block;
  }
}
