/*! 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 */
  /* font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji; */
  font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif,"Twemoji Mozilla","Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji","EmojiOne Color","Android Emoji";
  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.16rem;
    line-height: 1.75rem;
    color: #2e3443;
    overflow-y: scroll;
    text-rendering: optimizeLegibility;
    word-wrap: break-word;

    font-variant-numeric: oldstyle-nums stacked-fractions;
    font-variant-ligatures: common-ligatures contextual;
    font-kerning: normal;

    -webkit-font-feature-settings: "liga" 1, "kern" 1,"liga" 1,"calt" 1;
       -moz-font-feature-settings: "liga" 1, "kern" 1,"liga" 1,"calt" 1;
        -ms-font-feature-settings: "liga" 1, "kern" 1,"liga" 1,"calt" 1;
         -o-font-feature-settings: "liga" 1, "kern" 1,"liga" 1,"calt" 1;
            font-feature-settings: "liga" 1, "kern" 1,"liga" 1,"calt" 1;

    -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 0 0 2em;
}

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 {
    --counter-name: counts;
    counter-reset: var(--counter-name);
    list-style: none;
}

li { padding-left: 0.5rem; }
ul > li { padding-left: 0.5em; }

ol > li {
    counter-increment: var(--counter-name);
    -webkit-box-align: baseline;
    align-items: baseline;
    margin-top: 0.25em;
    position: relative;
}

ol > li:before {
    content: counter(var(--counter-name));
    margin: 0 0 0 -1.75em;
    font-weight: bold;
    color: white;
    position: absolute;
    background: #18f;
    width: calc(1.5rem + 2px);
    height: calc(1.5rem + 2px);
    border-radius: 50%;
    left: 0;
    text-align: center;
}

.footnotes > ol { padding: 0; }

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

img {
    max-width: 100%;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: bold;
    -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 {
    font-size: 2rem;
    line-height: 1em;
}

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: 1px underline;
    text-underline-offset: 0.2em;
}

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 auto;
    border-left: 5px solid #18f;
    color: #555;
    font-style: italic;
    background: rgba(0, 0, 0, 0.03);
    max-width: 50em;
}

blockquote p { margin: 1em; }

blockquote h1,
blockquote h2,
blockquote h3,
blockquote h4,
blockquote h5,
blockquote p {
    max-width: 100%;
}

/*
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;
}

/* 2020-06-11: no idea where this came from
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;
    text-decoration: 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 1.6969rem 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.4em 0.25em 0 0.25em;
    word-break: keep-all;
}

#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;
    text-decoration: 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-decoration: 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 {
    font-family: inherit;
    color: #9999dd;
    font-size: 1.25em;
    text-align: center;
    line-height: 1.5em;
    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;
    text-decoration: none;
}

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

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

figure {
    display: table;
    margin: 2em auto 1em;
    font-size: small;
    color: #666;
    line-height: 1.5em;
}

.narrow-figure {
    width: 100%;
    max-width: 640px;
}

pre.narrow {
    max-width: 640px;
    margin: 0 auto 1em;
}

pre.narrow code {
    color: #d14;
}

video {
    max-width: 100%;
}

/* readability
section p,
section ol,
section ul,
section dl,
section .archivepage,
section table {
    font-family: "Bitstream Charter", Georgia, Cambria, "Times New Roman", Times, serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
} */


p,
ol,
ul,
dl,
h1,
h2,
h3,
h4,
h5,
.archivepage,
table {
    max-width: 42rem;
    margin: 0 auto 1em;
    text-wrap: pretty;
}

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

.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;
}

.footnote-back { font-size: small; }

/* 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: #rgba(0, 0, 0, 0.03);
    -webkit-border-radius: 0.125em;
    -moz-border-radius:    0.125em;
    -ms-border-radius:     0.125em;
    -o-border-radius:      0.125em;
    border-radius:         0.125em;
    border: 1px solid #ddd;
    padding: 0.5em;
    max-width: 50em;
    margin: 1em auto;
    line-height: 1.5em;
}

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

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: #555;
    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; }

.sourceLine:hover {
    color: inherit;
    text-decoration: none;
    background-image: none;
}

/*  ==============================================================================
                           Kate (pandoc built-in style)
    ==============================================================================
    Style based on Kate's default colors.

    This stylesheet was produced using Pandoc v2.7.2.

    Pandoc is (c) 2006-2017 John MacFarlane (jgm@berkeley.edu).
    Released under the GPL, version 2 or greater.
    ------------------------------------------------------------------------------
*/
a.sourceLine { display: inline-block; line-height: 1.25; }
a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; }
a.sourceLine:empty { height: 1.2em; }
code.sourceCode { white-space: pre; position: relative; }
div.sourceCode { margin: 1em auto; }
pre.sourceCode { margin: 0 auto; }
@media print {
    code.sourceCode { white-space: pre-wrap; }
    a.sourceLine { text-indent: -1em; padding-left: 1em; }
}

pre.numberSource a.sourceLine {
    position: relative;
    left: -4em;
}

pre.numberSource a.sourceLine::before {
    content: attr(title);
    position: relative;
    left: -1em;
    text-align: right;
    vertical-align: baseline;
    border: none;
    pointer-events: all;
    display: inline-block;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    padding: 0 4px;
    width: 4em;
    color: #a0a0a0;
  }
pre.numberSource { margin-left: 2em; border-left: 1px solid #ddd;  padding-left: 4px; width: 95%; width: calc(100% - 2em); }
div.sourceCode { color: #1f1c1b; overflow: auto; }

code span. { color: #1f1c1b; } /* Normal */
code span.al { color: #bf0303; background-color: #f7e6e6; font-weight: bold; } /* Alert */
code span.an { color: #ca60ca; } /* Annotation */
code span.at { color: #0057ae; } /* Attribute */
code span.bn { color: #b08000; } /* BaseN */
code span.bu { color: #644a9b; font-weight: bold; } /* BuiltIn */
code span.cf { color: #1f1c1b; font-weight: bold; } /* ControlFlow */
code span.ch { color: #924c9d; } /* Char */
code span.cn { color: #aa5500; } /* Constant */
code span.co { color: #898887; } /* Comment */
code span.cv { color: #0095ff; } /* CommentVar */
code span.do { color: #607880; } /* Documentation */
code span.dt { color: #0057ae; } /* DataType */
code span.dv { color: #b08000; } /* DecVal */
code span.er { color: #bf0303; text-decoration: underline; } /* Error */
code span.ex { color: #0095ff; font-weight: bold; } /* Extension */
code span.fl { color: #b08000; } /* Float */
code span.fu { color: #644a9b; } /* Function */
code span.im { color: #ff5500; } /* Import */
code span.in { color: #b08000; } /* Information */
code span.kw { color: #1f1c1b; font-weight: bold; } /* Keyword */
code span.op { color: #1f1c1b; } /* Operator */
code span.ot { color: #006e28; } /* Other */
code span.pp { color: #006e28; } /* Preprocessor */
code span.re { color: #0057ae; background-color: #e0e9f8; } /* RegionMarker */
code span.sc { color: #3daee9; } /* SpecialChar */
code span.ss { color: #ff5500; } /* SpecialString */
code span.st { color: #bf0303; } /* String */
code span.va { color: #0057ae; } /* Variable */
code span.vs { color: #bf0303; } /* VerbatimString */
code span.wa { color: #bf0303; } /* Warning */

/*
 * As responsive as I get
 * ======================= */
@media (max-width: 54em) {
    body {
        font-size: 1em;
        line-height: 1.6em;
    }

    ul { padding: 0 0 0 1em; }
    li { padding-left: 0; }
    ol > li:before { margin: 0 0 0 -2em; }

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

    .pageheader .header {
        margin: 2rem 0 1rem 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;
    }

    .footnotes > ol { padding: 0 0 0 1em; }
}

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

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