/**
 * Reset some basic elements
 */
h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, figure, body, hr {
  margin: 0;
  padding: 0; }

/**
 * Set `margin-bottom` to maintain vertical rhythm
 */
h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, figure, .textualtable {
  margin-bottom: 15px; }

/**
 * Images
 */
img {
  max-width: 100%;
  vertical-align: middle;
  margin-bottom: 7.5px; }

/**
 * Lists
 */
ul, ol {
  margin-left: 30px; }

li > ul,
li > ol {
  margin-bottom: 0; }

/**
 * Headings
 */
h1, h2, h3, h4, h5, h6 {
  font-weight: 400;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }

/**
 * Links
 */
a {
  color: #2a7ae2;
  text-decoration: none; }
  a:visited {
    color: #1756a9; }
  a:hover {
    color: #111;
    text-decoration: underline; }

/**
 * Blockquotes
 */
blockquote {
  color: #5c5c5c;
  border-left: 4px solid #e8e8e8;
  padding-left: 15px;
  font-style: italic; }
  blockquote > :last-child {
    margin-bottom: 0; }

/**
 * Code formatting
 */
pre,
code {
  font-size: 15px;
  border: 1px solid #e8e8e8;
  border-radius: 3px;
  background-color: #eaeaf1; }
  @media print {
    pre,
    code {
      font-size: 13.5px;
      /* experimented until this got be 80 col printed in firefox */ } }

code {
  padding: 1px 5px; }

pre {
  padding: 8px 12px;
  margin-left: -8px;
  margin-right: -8px;
  overflow-x: auto; }
  pre > code {
    border: 0;
    padding-right: 0;
    padding-left: 0; }

/**
 * Figures
 */
figure > img {
  display: block;
  margin-left: auto;
  margin-right: auto; }

figcaption {
  font-size: 16.625px;
  color: #424242;
  font-style: italic; }

.overflowable {
  min-width: 600px;
  overflow-x: auto; }

/* Right-margin boxed floats, become full-width on mobile */
.rightbox {
  float: right;
  clear: right;
  font-size: 85%;
  /* de-emphasize this spot a little. */
  background-color: #f5f5f5;
  margin: 6px 0 6px 30px;
  padding: 8px 15px 0 15px;
  border: 1px solid #999;
  border-radius: 8px;
  min-width: 200px;
  max-width: 45%; }
  @media screen and (max-width: 600px) {
    .rightbox {
      float: none;
      margin: 6px 30px 6px 30px;
      max-width: 100%; } }

/* Full-width boxes, like figures in posts */
.boxed {
  width: calc(100% - (30px));
  box-sizing: border-box;
  border: 1px solid #999;
  border-radius: 8px;
  padding: 8px 15px 0 15px;
  background-color: #f5f5f5;
  margin: 0 15px 15px 15px; }

/**
 * Tables
 */
td {
  vertical-align: top; }

.textualtable td {
  padding: 2px 5px; }

/*** NOT SURE I WANT THIS?
Can probably media query this to migrate to footer somehow?
****/
.sidenote {
  margin-right: -170px;
  position: absolute;
  right: 0;
  top: auto;
  /* default */
  width: 150px; }

html {
  background-color: #6f6878; }

body {
  font: 400 19px/1.5 Times, "times new roman", serif;
  color: #111;
  -webkit-text-size-adjust: 100%;
  font-kerning: normal;
  background-color: #fdfdfd;
  max-width: calc(850px - (30px * 2));
  margin-right: auto;
  margin-left: auto; }
  @media screen and (max-width: 810px) {
    body {
      max-width: calc(850px - (30px)); } }

/**
 * Wrapper
 */
.wrapper {
  padding-right: 30px;
  padding-left: 30px; }
  @media screen and (max-width: 810px) {
    .wrapper {
      padding-right: 15px;
      padding-left: 15px; } }
  @media print {
    .wrapper {
      padding: 0;
      /* print doesn't need extra space */ } }

/**
 * Clearfix
 */
.wrapper:after {
  content: "";
  display: table;
  clear: both; }

/**
 * Site header
 */
header.site-header {
  border-top: 5px solid #c9afe9;
  border-bottom: 1px solid #e8e8e8;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 700;
  background-color: #f5f5f5; }

.site-header-flex {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap; }

.site-title {
  font-size: 57px;
  letter-spacing: -1px;
  display: block;
  float: left; }
  .site-title, .site-title:visited {
    color: #424242; }

.site-nav {
  font-size: 15.2px;
  display: block;
  text-transform: uppercase;
  max-width: 330px;
  float: right; }
  .site-nav ul {
    list-style-type: none;
    margin: 0; }
    .site-nav ul li {
      display: inline-block;
      text-align: right;
      width: 110px; }
  @media screen and (max-width: 810px) {
    .site-nav {
      max-width: 100%; }
      .site-nav ul {
        margin-bottom: 15px; }
        .site-nav ul li {
          display: inline; }
          .site-nav ul li:before {
            content: " / "; }
          .site-nav ul li:first-child:before {
            content: ""; } }
  @media print {
    .site-nav {
      display: none;
      /* no links necessary... */ } }

/**
 * Site footer
 */
footer.site-footer {
  border-top: 1px solid #e8e8e8;
  border-bottom: 5px solid #c9afe9;
  padding: 30px 0;
  font-size: 16.625px;
  color: #5c5c5c;
  font-style: italic; }

/**
 * Posts
 */
main.page-content {
  padding: 30px 0; }

/* Also an unused article.post */
header.post-header {
  margin-bottom: 30px; }

.post-title {
  font-size: 30.4px;
  letter-spacing: -1px;
  line-height: 1; }

.post-meta {
  font-size: 16.625px;
  color: #828282; }

/* div.post-content unused */
footer.post-footer {
  margin-top: 30px;
  border-top: 1px solid #e8e8e8;
  padding-top: 30px; }
  footer.post-footer .foot-box {
    box-sizing: border-box;
    border: 1px solid #999;
    border-radius: 8px;
    padding: 8px 15px 0 15px;
    background-color: #f5f5f5;
    margin: 0 7.5px 15px 7.5px;
    width: calc(50% - (15px));
    min-width: 250px;
    float: left; }
    footer.post-footer .foot-box h4 {
      font-weight: 800; }
    @media screen and (max-width: 600px) {
      footer.post-footer .foot-box {
        width: calc(100% - (15px)); } }
  footer.post-footer .foot-patreon {
    background-color: #f3e2dd; }

/**
 * Archive
 */
table.archive {
  width: 100%;
  margin-bottom: 15px; }
  table.archive td {
    vertical-align: top; }
  table.archive td.archive-date {
    font-size: 16.625px;
    color: #828282;
    width: 100px; }
  table.archive td.archive-icon {
    width: 22px; }

.post-desc {
  font-size: 16.625px;
  color: #5c5c5c;
  font-style: italic; }

/**
 * Syntax highlighting styles
 */
.highlight .c {
  color: #887;
  font-style: italic; }
.highlight .err {
  color: #a61717;
  background-color: #e3d2d2; }
.highlight .k {
  font-weight: bold; }
.highlight .o {
  font-weight: bold; }
.highlight .cm {
  color: #887;
  font-style: italic; }
.highlight .cp {
  color: #888;
  font-weight: bold; }
.highlight .c1 {
  color: #887;
  font-style: italic; }
.highlight .cs {
  color: #888;
  font-weight: bold;
  font-style: italic; }
.highlight .gd {
  color: #000;
  background-color: #fdd; }
.highlight .gd .x {
  color: #000;
  background-color: #faa; }
.highlight .ge {
  font-style: italic; }
.highlight .gr {
  color: #a00; }
.highlight .gh {
  color: #999; }
.highlight .gi {
  color: #000;
  background-color: #dfd; }
.highlight .gi .x {
  color: #000;
  background-color: #afa; }
.highlight .go {
  color: #888; }
.highlight .gp {
  color: #555; }
.highlight .gs {
  font-weight: bold; }
.highlight .gu {
  color: #aaa; }
.highlight .gt {
  color: #a00; }
.highlight .kc {
  font-weight: bold; }
.highlight .kd {
  font-weight: bold; }
.highlight .kp {
  font-weight: bold; }
.highlight .kr {
  font-weight: bold; }
.highlight .kt {
  color: #458;
  font-weight: bold; }
.highlight .m {
  color: #099; }
.highlight .s {
  color: #d14; }
.highlight .na {
  color: #008080; }
.highlight .nb {
  color: #0086B3; }
.highlight .nc {
  color: #458;
  font-weight: bold; }
.highlight .no {
  color: #008080; }
.highlight .ni {
  color: #800080; }
.highlight .ne {
  color: #900;
  font-weight: bold; }
.highlight .nf {
  color: #900;
  font-weight: bold; }
.highlight .nn {
  color: #555; }
.highlight .nt {
  color: #000080; }
.highlight .nv {
  color: #008080; }
.highlight .ow {
  font-weight: bold; }
.highlight .w {
  color: #bbb; }
.highlight .mf {
  color: #099; }
.highlight .mh {
  color: #099; }
.highlight .mi {
  color: #099; }
.highlight .mo {
  color: #099; }
.highlight .sb {
  color: #d14; }
.highlight .sc {
  color: #d14; }
.highlight .sd {
  color: #d14; }
.highlight .s2 {
  color: #d14; }
.highlight .se {
  color: #d14; }
.highlight .sh {
  color: #d14; }
.highlight .si {
  color: #d14; }
.highlight .sx {
  color: #d14; }
.highlight .sr {
  color: #009926; }
.highlight .s1 {
  color: #d14; }
.highlight .ss {
  color: #990073; }
.highlight .bp {
  color: #999; }
.highlight .vc {
  color: #008080; }
.highlight .vg {
  color: #008080; }
.highlight .vi {
  color: #008080; }
.highlight .il {
  color: #099; }
