/*! normalize.css v4.2.0 | MIT License | github.com/necolas/normalize.css */

/**
 * 1. Change the default font family in all browsers (opinionated).
 * 2. Correct the line height in all browsers.
 * 3. Prevent adjustments of font size after orientation changes in IE and iOS.
 */

/* Document
   ========================================================================== */

html {
  font-family: sans-serif; /* 1 */
  line-height: 1.15; /* 2 */
  -ms-text-size-adjust: 100%; /* 3 */
  -webkit-text-size-adjust: 100%; /* 3 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers (opinionated).
 */

body {
  margin: 0;
}

/**
 * Add the correct display in IE 9-.
 */

article,
aside,
footer,
header,
nav,
section {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in IE.
 */

figcaption,
figure,
main { /* 1 */
  display: block;
}

/**
 * Add the correct margin in IE 8.
 */

figure {
  margin: 1em;
}

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1rem; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */

a {
  background-color: transparent; /* 1 */
  -webkit-text-decoration-skip: objects; /* 2 */
}

/**
 * Remove the outline on focused links when they are also active or hovered
 * in all browsers (opinionated).
 */

a:active,
a:hover {
  outline-width: 0;
}

/**
 * 1. Remove the bottom border in Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */

b,
strong {
  font-weight: inherit;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font style in Android 4.3-.
 */

dfn {
  font-style: italic;
}

/**
 * Add the correct background and color in IE 9-.
 */

mark {
  background-color: #ff0;
  color: #000;
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Add the correct display in IE 9-.
 */

audio,
video {
  display: inline-block;
}

/**
 * Add the correct display in iOS 4-7.
 */

audio:not([controls]) {
  display: none;
  height: 0;
}

/**
 * Remove the border on images inside links in IE 10-.
 */

img {
  border-style: none;
}

/**
 * Hide the overflow in IE.
 */

svg:not(:root) {
  overflow: hidden;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */

button,
html [type="button"], /* 1 */
[type="reset"],
[type="submit"] {
  -webkit-appearance: button; /* 2 */
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Change the border, margin, and padding in all browsers (opinionated).
 */

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * 1. Add the correct display in IE 9-.
 * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  display: inline-block; /* 1 */
  vertical-align: baseline; /* 2 */
}

/**
 * Remove the default vertical scrollbar in IE.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding and cancel buttons in Chrome and Safari on OS X.
 */

[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 */

details, /* 1 */
menu {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Scripting
   ========================================================================== */

/**
 * Add the correct display in IE 9-.
 */

canvas {
  display: inline-block;
}

/**
 * Add the correct display in IE.
 */

template {
  display: none;
}

/* Hidden
   ========================================================================== */

/**
 * Add the correct display in IE 10-.
 */

[hidden] {
  display: none;
}

/*
 * Standard Base
 * ===================================== */

* {
    box-sizing: border-box;
}

body {
    font-size: 1.2em;
    line-height: 1.75em;
    color: rgba(0, 0, 0, 0.8);
    overflow-y: scroll;
    text-rendering: optimizeLegibility;
    word-wrap: break-word;

    font-variant-ligatures: common-ligatures additionalligatures;

    -webkit-font-feature-settings: "liga";
       -moz-font-feature-settings: "liga=1, dlig=0";
        -ms-font-feature-settings: "liga";
         -o-font-feature-settings: "liga";
            font-feature-settings: "liga";

    -webkit-font-smoothing: antialiased;
}
/* Higlighter colors */
::selection {
  background: #c0f541;
  text-shadow: none;
}
::-moz-selection {
  background: #c0f541;
  text-shadow: none;
}

th,
strong {
    color: black;
}

ol,
ul {
    padding: 0;
}

ul {
    list-style-type: disc;
    list-style-image: url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20width%3D%225%22%20height%3D%2213%22%3E%0A%3Ccircle%20cx%3D%222.5%22%20cy%3D%229.5%22%20r%3D%222.5%22%20fill%3D%22%2300528c%22%2F%3E%0A%3C%2Fsvg%3E%0A);
    list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAANCAIAAADuXjPfAAAABnRSTlMA/wD/AP83WBt9AAAAHklEQVR4AWP4jwrowWcI6oEgEBtIISNCfFT9mOYDACO/lbNIGC/yAAAAAElFTkSuQmCC);
}

ol ol,
ol ul,
ul ol,
ul ul {
    padding-left: 1.5em;
    margin: 0 auto;
}

img {
    max-width: 100%;
}

h1,
h2 {}

h1 {
    font-size: 1.25em;
    line-height: 1.5em;
}

h2 {
    font-size: 1em;
    line-height: 1.5em;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    -webkit-font-feature-settings: "kern" 1, "liga" 1, "swsh" 1;
       -moz-font-feature-settings: "kern=1, liga=1, swsh=1";
        -ms-font-feature-settings: "kern" 1, "liga" 1, "swsh" 1;
         -o-font-feature-settings: "kern" 1, "liga" 1, "swsh" 1;
            font-feature-settings: "kern" 1, "liga" 1, "swsh" 1;
}

h2 a {
    display: none;
}

h2:hover a {
    display: inline;
}

a:link,
a:active,
a:visited,
a:hover {
    text-decoration: none;
}

a:hover {
    color: #06c;
    text-decoration: underline\9;
    text-shadow: 2px 0 0 #fefefe, -2px 0 0 #fefefe;
    background-image: -webkit-gradient(linear, left top, right top, from(currentColor), to(currentColor));
    background-image: -webkit-linear-gradient(left, currentColor 0%, currentColor 100%);
    background-image:      -o-linear-gradient(left, currentColor 0%, currentColor 100%);
    background-image:      -o-linear-gradient(left, currentColor 0%, currentColor 100%);
    background-image:         linear-gradient(to right, currentColor 0%, currentColor 100%);
    background-repeat: repeat-x;
    background-position: 0 90%;
    -webkit-background-size: 100% 1px;
            background-size: 100% 1px;

}

a:link { color: #3498DB; }
a:visited { color: #6a4c96; }

a[href*="//"]:not([href*="tylercipriani.com"]) {
    break-after: avoid;
}

a[href*="//"]:not([href*="tylercipriani.com"]):after {
    content: "\0000a0" url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=);
}

blockquote {
    padding: 1em;
    margin: 1em 0;
    border-left: 2px solid rgba(100, 100, 150, 1);
    color: rgba(0, 0, 0, 0.6);
    font-style: italic;
}

/*
blockquote a {
    text-shadow: 2px 0 0 #ffe, -2px 0 0 #ffe;
}
*/

code {
    padding: 0.2em 0;
    white-space: no-wrap;
    color: #555;
    background: rgba(0, 0, 0, 0.05);
    font-size: 85%;

    -webkit-border-radius: .2em;
       -moz-border-radius: .2em;
        -ms-border-radius: .2em;
         -o-border-radius: .2em;
            border-radius: .2em;
}

code:before,
code:after {
    letter-spacing: -0.2em;
    content: "\00a0";
}

table {
    border-collapse: collapse;
    border: 1px solid #c6cbd1;
    width: 100%;
}


table tr {
    border-top: 1px solid #c6cbd1;
}

table .odd { background: #f6f8fa; }

table .header { border-top: none; }

table tr td,
table tr th {
    padding: 0.5em 1em;
    border: 1px solid #dfe2e5;
}

table .header { display: table-row; }

/*
 * Fiddly stuff
 * ==================================================== */
img.img { margin: 0; }

.logo,
.logo:visited,
.logo:hover,
.logo:active,
.logo:link {
    float: left;
    padding: 0.85em 2em 0;
    background-image: none;
}

.main-header {
    overflow: hidden;
    font-size: 1rem;
}

.main-header-nav {
    float: right;
}

.main-header-nav-list {
    list-style-type: none;
    list-style-image: none;
    overflow: hidden;
    margin: 0;
}

.main-header-nav-list-item {
    float: left;
}

.main-header-nav-list-item a {
    display: block;
    padding: 1em 2em;
}

.main-header-nav-list-item a:hover {
    text-decoration: none;
    text-shadow: 2px 0 0 white, -2px 0 0 white;
    background-image: -webkit-gradient(linear, left top, right top, from(currentColor), to(currentColor));
    background-image: -webkit-linear-gradient(left, currentColor 0%, currentColor 100%);
    background-image:      -o-linear-gradient(left, currentColor 0%, currentColor 100%);
    background-image:      -o-linear-gradient(left, currentColor 0%, currentColor 100%);
    background-image:         linear-gradient(to right, currentColor 0%, currentColor 100%);
    background-repeat: repeat-x;
    background-position: 0 100%;
    -webkit-background-size: 100% 5px;
            background-size: 100% 5px;


}

.logo .logo-img {
    width: 45px;
    margin: 0;
}

.sidebar {
    border: none;
    color: inherit !important;
}

.pageheader .header {
    display: block;
    font-size: 1.5em;
    margin: 2rem 0;
}

.pageheader .header .parentlinks {
    font-size: 1rem;
    font-weight: normal;
}

.pageheader .header .parentlinks a {
    margin-right: 0.35em;
}

.title {
    font-size: 2.75em;
    line-height: 1em;
    text-align: center;
    display: block;
    text-transform: capitalize;
    padding: 0.5em 0.25em 0 0.25em;
}

#footer {
    border-top: 1px solid #aaa;
    color: rgba(0, 0, 0, 0.7);
    font-size: small;
}

.license-icon:link,
.license-icon:hover,
.license-icon:active,
.license-icon:visited {
    float: right;
    background-image: none;
    display: block;
    margin: 0 0 1em 1em;
}

.feedlink {
    padding: 1em;
    background: #f9f9f9;
    border: 1px solid #ccc;
    margin: 0 0 2em 0;
}

a.feedbutton {
    background-image: none;
    text-shadow: none;
    border: none;
    padding: 0.25em 0.5em;
}

.inlineheader .header {
    font-weight: 300;
    margin: 1em 0;
}

.archivepagedate {
    font-style: normal;
}

.pagedate,
.pagelicense,
.pagecopyright {
    font-style: normal;
    margin-top: 0;
}

.inlinepage {
    padding: 0 0 2em;
    border: none;
    border-bottom: 1px solid #aaa;
}

.inlinecontent > hr {
    display: none;
}

#content > hr {
    display: none;
}

#content > p:first-child {
    color: rgba(0, 0, 50, 0.5);
    font-size: 1.25em;
    text-align: center;
    line-height: 1.75em;
    max-width: 40em;
}

/*
#content > p:first-child::first-letter {
    color: rgba(0, 0, 0, 0.8);
    float: left;
    font-size: 2em;
    padding: 0.15em 0;
    font-style: bold;
}*/

#pageinfo {
    border-top: none;
}

/* Top trails is different than footer trails */
.trails {}
#footer .trails {
    font-size: medium;
}

.trail {
    clear: both;
    position: relative;
    padding: 2em 0;
    background: #f9f9f9;
    border: 1px solid #ccc;
    overflow: hidden;
    margin: 1em 0;
}

.trailnext,
.trailprev {
    /* top: 50%; */
    /* transform: translateY(-50%); */
    /* display: table; */
}

.trailarrow {
    display: table-cell;
    vertical-align: middle;
}

.trailnext a:link,
.trailnext a:hover,
.trailnext a:active,
.trailnext a:visited,
.trailprev a:link,
.trailprev a:hover,
.trailprev a:active,
.trailprev a:visited {
    display: table-cell;
    vertical-align: middle;
    width: 98%;
}

.trailnext a:link,
.trailnext a:hover,
.trailnext a:active,
.trailnext a:visited {
    padding-right: 5%;
}

.trailnext {
    text-align: right;
    position: static;
    top: 0;
    right: 0;
    margin-right: 3%;
    float: right;
    width: 30%;
}

.trailup {
    display: block;
    text-align: center;
    margin-left: 0;
    margin-right: 0;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

.trailup:only-child {
    position: static;
    transform: none;
}

.trailprev {
    text-align: left;
    position: static;
    top: 0;
    left: 0;
    width: 30%;
    float: left;
    margin-left: 3%;
}

.trailprev a:link,
.trailprev a:hover,
.trailprev a:active,
.trailprev a:visited {
    padding-left: 5%;
}

.trail a:link,
.trail a:hover,
.trail a:active,
.trail a:visited {
    text-shadow: 2px 0 0 #f9f9f9, -2px 0 0 #f9f9f9;
    background-image: none;
}

.toc {
    float: right;
    background: #f9f9f9;
    padding: 1em;
    margin: 0 0 1em 1em;
    border: 1px solid #ccc;
}

.toc ol {
    padding-left: 1em;
}

figure {
    margin: 1em 0 2em;
    font-size: small;
    text-align: center;
}

/* readability */
p,
ol,
ul,
dl,
h1,
h2,
h3,
h4,
h5,
.archivepage,
table {
    max-width: 40rem;
    margin: 0 auto 2em;
}

h1,
h2,
h3,
h4,
h5 {
    margin: 0 auto 1em;
}

.page {
    max-width: 1280px;
    width: 75%;
    margin: 0 auto;
}

.actions ul {
    height: auto;
    border: none;
    margin: 0;
    padding: 0 0 0.5em 0;
}

.actions ul li {
    padding: 0 0.5em 0 0;
}

.pageheader .trails {
    display: none;
}

.inlinepage-header-info .author {
    font-weight: 400;
}

.inlinepage-header-info {
    font-size: 0.65em;
}

.month-calendar,
.year-calendar {
    width: 100%;
}

.year-calendar th,
.year-calendar td,
.month-calendar th,
.month-calendar td {
    text-align: center;
}

/* Beer alchemy crap */

.sectionHeading {
    border: none;
}

.sectionHeading tr,
.sectionHeading td {
    border: none;
}

.sectionHeading tr .title {
    text-align: left;
    padding: 0.5em 0;
    font-weight: 700;
}

.darkBackgroundAlignCenter,
.darkBackgroundAlignLeft,
.darkBackgroundAlignRight {
    background: #f6f8fa;
}

.lightBackgroundAlignRight,
.darkBackgroundAlignRight {
    text-align: right;
}

.lightBackgroundAlignLeft,
.darkBackgroundAlignLeft {
    text-align: left;
}

.lightBackgroundAlignCenter,
.darkBackgroundAlignCenter {
    text-align: center;
}


/*
 * Comments
 * ==================================================== */

.comment {
    border: none;
    border-top: 1px solid #aaa;
    padding: 1em 0;
    margin: 1em auto;
    max-width: 40em;
}

.addcomment {
    margin: 1em 0;
}

.comment-header {
    font-size: small;
}

/*
 * Syntax highlighting stuff
 * ================================== */

div.sourceCode,
pre {
    background: #f6f8ff;
    padding: 0.5em;
    width: 100%;
    overflow-y: hidden;
    overflow-x: auto;
    margin: 1em 0;
    line-height: 1.5em;
}

.sourceCode pre {
    background: none;
    padding: none;
    overflow: auto;
    margin: 0;
}

pre code {
    display: block;
    white-space: no-wrap;
    background: none;
    color: inherit;
    border: none;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    -ms-border-radius: 0;
    -o-border-radius: 0;
    border-radius: 0;
    padding: 0;
    margin: 0;
    color: #00428c;
    font-size: 0.85em;
}

.pull-right { float: right; }

/* Generated by pandoc. */
code {
    white-space: pre;
}

table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {
    margin: 0;
    padding: 0;
    vertical-align: baseline;
    border: none;
}

table.sourceCode { width: 100%; }
td.lineNumbers {
    text-align: right;
    color: #ddd;
    border-right: none;
    width: 2em;
    /*font-size: 0.84em;
    line-height: 1.5em;*/
}
td.sourceCode { padding-left: 5px; }
code > span.kw { color: #007020; font-weight: bold; }
code > span.dt { color: #902000; }
code > span.dv { color: #40a070; }
code > span.bn { color: #40a070; }
code > span.fl { color: #40a070; }
code > span.ch { color: #4070a0; }
code > span.st { color: #4070a0; }
code > span.co { color: #60a0b0; font-style: italic; }
code > span.ot { color: #007020; }
code > span.al { color: #ff0000; font-weight: bold; }
code > span.fu { color: #06287e; }
code > span.er { color: #ff0000; font-weight: bold; }
/*
 * As responsive as I get
 * ======================= */
@media (max-width: 54em) {
    body {
        font-size: 1em;
        line-height: 1.6em;
    }

    .title {
        font-size: 1.8em;
        padding: 0.25em 0 0;
    }

    .page {
        width: 85%;
    }

    .comment-avatar {
        width: 50px;
    }

    .wiki-image {
        text-align: center;
    }

    .toc {
        float: none;
        margin: 0 0 1em 0;
        padding-left: 2em;
    }

    .logo,
    .logo:visited,
    .logo:hover,
    .logo:active,
    .logo:link {
        padding: 0.85em 1em 0;
    }

    .main-header-nav-list-item a {
        padding: 1em 0.70em;
    }
}

@media (max-width: 320px) {
    .main-header-nav-list-item a {
        padding: 1em .4em;
    }

    .page {
        max-width: 95%;
    }
}
