/*!
 * So Simple Jekyll Theme 3.2.0
 * Copyright 2013-2019 Michael Rose - mademistakes.com | @mmistakes
 * Free for personal and commercial use under the MIT license
 * https://github.com/mmistakes/so-simple-theme/blob/master/LICENSE
*/
/* ========================================================================== Color Functions ========================================================================== */
/* EM conversion ========================================================================== */
/* ========================================================================== Fluid Type as seen on https://madebymike.com.au/writing/fluid-type-calc-examples/ ========================================================================== */
/* Compass YIQ Color Contrast https://github.com/easy-designs/yiq-color-contrast ========================================================================== */
/* ========================================================================== Variables ========================================================================== */
/* Breakpoint widths */
/* Fluid type */
/* Calculate Modular Scale */
/* small */
/* large */
/* Heading 1 */
/* Heading 2 */
/* Heading 3 */
/* Heading 4 */
/* Heading 5 */
/* Heading 6 */
/* Font Families */
/* YIQ color contrast */
/* Brands */
/* Max-width of the main content */
/* Max-width of the main content + sidebar */
/* Site logo */
/* Border radius */
/* Global transition */
/* ========================================================================== Clearfix Mixin ========================================================================== */
/* Provides an easy way to include a clearfix for containing floats. link http://cssmojo.com/latest_new_clearfix_so_far/  example scss - Usage  .element { @include clearfix; }  example css - CSS Output  .element::after { clear: both; content: ""; display: table; }
*/
/* ========================================================================== Float Mixins ========================================================================== */
/* ========================================================================== Image Mixins - Responsive image - Retina image ========================================================================== */
/* Responsive image Keep images from scaling beyond the width of their parents. ========================================================================== */
/* Retina image Short retina mixin for setting background-image and -size. ========================================================================== */
/* ========================================================================== List Mixins ========================================================================== */
/* ========================================================================== Text Truncate Mixin Requires inline-block or block for proper styling ========================================================================== */
/*! Lity - v3.0.0-dev - 2017-07-17
* http://sorgalla.com/lity/
* Copyright (c) 2015-2017 Jan Sorgalla; Licensed MIT */
.lity { z-index: 9990; position: fixed; top: 0; right: 0; bottom: 0; left: 0; white-space: nowrap; background: #0b0b0b; background: rgba(0, 0, 0, 0.9); outline: none !important; opacity: 0; -webkit-transition: opacity .3s ease; -o-transition: opacity .3s ease; transition: opacity .3s ease; }

.lity.lity-opened { opacity: 1; }

.lity.lity-closed { opacity: 0; }

.lity * { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }

.lity-wrap { z-index: 9990; position: fixed; top: 0; right: 0; bottom: 0; left: 0; text-align: center; outline: none !important; }

.lity-wrap:before { content: ''; display: inline-block; height: 100%; vertical-align: middle; margin-right: -0.25em; }

.lity-loader { z-index: 9991; color: #fff; position: absolute; top: 50%; margin-top: -0.8em; width: 100%; text-align: center; font-size: 14px; font-family: Arial, Helvetica, sans-serif; opacity: 0; -webkit-transition: opacity .3s ease; -o-transition: opacity .3s ease; transition: opacity .3s ease; }

.lity-loading .lity-loader { opacity: 1; }

.lity-container { z-index: 9992; position: relative; text-align: left; vertical-align: middle; display: inline-block; white-space: normal; max-width: 100%; max-height: 100%; outline: none !important; }

.lity-content { z-index: 9993; width: 100%; -webkit-transform: scale(1); -ms-transform: scale(1); -o-transform: scale(1); transform: scale(1); -webkit-transition: -webkit-transform .3s ease; transition: -webkit-transform .3s ease; -o-transition: -o-transform .3s ease; transition: transform .3s ease; transition: transform .3s ease, -webkit-transform .3s ease, -o-transform .3s ease; }

.lity-loading .lity-content, .lity-closed .lity-content { -webkit-transform: scale(0.8); -ms-transform: scale(0.8); -o-transform: scale(0.8); transform: scale(0.8); }

.lity-content:after { content: ''; position: absolute; left: 0; top: 0; bottom: 0; display: block; right: 0; width: auto; height: auto; z-index: -1; -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); }

.lity-close { z-index: 9994; width: 35px; height: 35px; /* Change to position: absolute to display close button inside content container */ position: fixed; right: 0; top: 0; -webkit-appearance: none; cursor: pointer; text-decoration: none; text-align: center; padding: 0; color: #fff; font-style: normal; font-size: 35px; font-family: Arial, Baskerville, monospace; line-height: 35px; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); border: 0; background: none; outline: none; -webkit-box-shadow: none; box-shadow: none; }

.lity-close::-moz-focus-inner { border: 0; padding: 0; }

.lity-close:hover, .lity-close:focus, .lity-close:active, .lity-close:visited { text-decoration: none; text-align: center; padding: 0; color: #fff; font-style: normal; font-size: 35px; font-family: Arial, Baskerville, monospace; line-height: 35px; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); border: 0; background: none; outline: none; -webkit-box-shadow: none; box-shadow: none; }

.lity-close:active { top: 1px; }

/* Image */
.lity-image img { max-width: 100%; display: block; line-height: 0; border: 0; }

/* iFrame */
.lity-iframe .lity-container { width: 100%; max-width: 964px; }

.lity-iframe-container { width: 100%; height: 0; padding-top: 56.25%; overflow: auto; pointer-events: auto; -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-overflow-scrolling: touch; }

.lity-iframe-container iframe { position: absolute; display: block; top: 0; left: 0; width: 100%; height: 100%; -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); background: #000; }

.lity-hide { display: none; }

/* Core Styles */
/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */
/** 1. Change the default font family in all browsers (opinionated). 2. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS. */
/* Document ========================================================================== */
html { font-family: "Source Sans Pro", sans-serif; /* 1 */ box-sizing: border-box; -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ }

*, *::before, *::after { box-sizing: inherit; }

/* Sections ========================================================================== */
/** Remove the margin in all browsers (opinionated). */
body { margin: 0; line-height: 1.5; }

/** Add the correct display in IE 9-. */
article, aside, footer, header, nav, section { display: block; }

/** Remove margin padding.  */
h1, h2, h3, h4, h5, h6, p, pre, blockquote, dl, table, address { margin-top: 0; margin-bottom: 1.5rem; }

/** Correct the font size and margin on `h1` elements within `section` and `article` contexts in Chrome, Firefox, and Safari. */
h1 { font-size: 2rem; }

/** Adjust heading line-height  */
h1, h2, h3, h4 { line-height: 1.2; }

/* Grouping content ========================================================================== */
/** Add the correct display in IE 9-. 1. Add the correct display in IE. */
figcaption, figure, main { /* 1 */ display: block; }

/** Reset the margins. */
figure { margin: 1rem 0 1.5rem; }

/** 1. Add the correct box sizing in Firefox. 2. Show the overflow in Edge and IE. */
hr { height: 0; /* 1 */ overflow: visible; /* 2 */ box-sizing: content-box; /* 1 */ }

/** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. 3. Add scrollbars to wide code blocks. */
pre { font-family: monospace, monospace; /* 1 */ font-size: 1rem; /* 2 */ overflow-x: auto; /* 3 */ }

/* 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; font-weight: bolder; /* Add the correct font weight in Chrome, Edge, and Safari. */ }

/** 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: 1rem; /* 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%; }

/** Change the margin and padding and add a line rule on the left-side in all browsers (opinionated). */
blockquote { margin-right: 0; margin-left: 0; padding: 2em 3em; border-left: solid 0.5em; }
blockquote *:last-child { margin-bottom: 0; }

/** Prevent `sub` and `sup` elements from affecting the line height in all browsers. */
sub, sup { position: relative; font-size: 75%; line-height: 0; vertical-align: baseline; }

sub { bottom: -0.25em; }

sup { top: -0.5em; }

/** Remove margin */
ul, ol { margin-top: 0; }

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

img { /* Responsive images (ensure images don't scale beyond their parents) */ max-width: 100%; /* part 1: Set a maximum relative to the parent*/ width: auto\9; /* IE7-8 need help adjusting responsive images*/ height: auto; /* part 2: Scale the height according to the width, otherwise you get stretching*/ border-style: none; /* Remove the border on images inside links in IE 10-.*/ vertical-align: middle; -ms-interpolation-mode: bicubic; }

/** 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 { margin: 0; /* 2 */ font-family: "Source Sans Pro", sans-serif; /* 1 */ font-size: 100%; /* 1 */ line-height: 1.15; /* 1 */ }

/** 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"], [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 { padding: 0; border-style: none; }

/** 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 { margin: 0 2px; padding: 0.35em 0.625em 0.75em; border: 1px solid #c0c0c0; }

/** 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 { display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ color: inherit; /* 2 */ white-space: normal; /* 1 */ box-sizing: border-box; /* 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"] { padding: 0; /* 2 */ box-sizing: border-box; /* 1 */ }

/** 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"] { outline-offset: -2px; /* 2 */ -webkit-appearance: textfield; /* 1 */ }

/** Remove the inner padding and cancel buttons in Chrome and Safari on macOS. */
[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 { font: inherit; /* 2 */ -webkit-appearance: button; /* 1 */ }

/* Interactive ========================================================================== */
/* Add the correct display in IE 9-. 1. Add the correct display in Edge, IE, and Firefox. */
details, 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; }

/* ========================================================================== Base elements ========================================================================== */
html { font-size: 16px; }
@media screen and (min-width: 320px) { html { font-size: calc(16px + 2 * ((100vw - 320px) / 960)); } }
@media screen and (min-width: 1280px) { html { font-size: 18px; } }

body { border-top: solid 0.25em; }

blockquote footer, q footer { font-size: 80%; font-style: normal; }
blockquote footer::before, q footer::before { padding-right: 0.25rem; content: "\2014"; }

code, kbd, samp, pre { font-family: Menlo, Consolas, Monaco, "Courier New", Courier, monospace; }

kbd { display: inline-block; margin: 0 0.125em; padding: 0.125em 0.5em; color: #000; border: 1px solid #cccccc; border-radius: 3px; background-color: #f7f7f7; font-size: 85%; text-shadow: 0 1px 0 #fff; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25), inset 0 0 0 2px #fff; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25), inset 0 0 0 2px #fff; }

h1, h2, h3, h4, h5, h6 { font-family: "Source Sans Pro", sans-serif; text-rendering: optimizeLegibility; /* enable common ligatures and kerning */ }

h1 { font-size: 20.7385152499px; }
@media screen and (min-width: 320px) { h1 { font-size: calc(20.7385152499px + 12.4390847501 * ((100vw - 320px) / 960)); } }
@media screen and (min-width: 1280px) { h1 { font-size: 33.1776px; } }

h2 { font-size: 19.436284208px; }
@media screen and (min-width: 320px) { h2 { font-size: calc(19.436284208px + 8.211715792 * ((100vw - 320px) / 960)); } }
@media screen and (min-width: 1280px) { h2 { font-size: 27.648px; } }

h3 { font-size: 18.215824px; }
@media screen and (min-width: 320px) { h3 { font-size: calc(18.215824px + 4.824176 * ((100vw - 320px) / 960)); } }
@media screen and (min-width: 1280px) { h3 { font-size: 23.04px; } }

h4 { font-size: 17.072px; }
@media screen and (min-width: 320px) { h4 { font-size: calc(17.072px + 2.128 * ((100vw - 320px) / 960)); } }
@media screen and (min-width: 1280px) { h4 { font-size: 19.2px; } }

h5 { font-size: 16px; }
@media screen and (min-width: 320px) { h5 { font-size: calc(16px + 0 * ((100vw - 320px) / 960)); } }
@media screen and (min-width: 1280px) { h5 { font-size: 16px; } }

h6 { font-size: 14.9953139644px; }
@media screen and (min-width: 320px) { h6 { font-size: calc(14.9953139644px + -1.6619806311 * ((100vw - 320px) / 960)); } }
@media screen and (min-width: 1280px) { h6 { font-size: 13.3333333333px; } }

dt { font-weight: bold; }
dt:not(:first-child) { margin-top: 1rem; }

dd { margin: 0; }

pre { font-size: 12px; }
@media screen and (min-width: 320px) { pre { font-size: calc(12px + 2 * ((100vw - 320px) / 960)); } }
@media screen and (min-width: 1280px) { pre { font-size: 14px; } }

figcaption { margin: 0.5rem 0; font-size: 80%; }

a { -webkit-transition: all 0.4s ease; transition: all 0.4s ease; }

/* ========================================================================== Tables ========================================================================== */
table { width: 100%; border-collapse: collapse; /* For Firefox to horizontally scroll wider tables */ word-break: normal; word-break: keep-all; }
table { font-size: 12px; }
@media screen and (min-width: 320px) { table { font-size: calc(12px + 6 * ((100vw - 320px) / 960)); } }
@media screen and (min-width: 1280px) { table { font-size: 18px; } }

th, td { border-bottom: 1px solid; }

th { padding: 0.5em; font-weight: bold; text-align: left; }

td { padding: 0.5em; }

tr, td, th { vertical-align: middle; }

/* Components */
/* ========================================================================== Site-wide ========================================================================== */
.skip-links ul { margin: 0; padding: 0; list-style: none; }

#menu-toggle { display: block; margin: 0; padding: 0.25em 0.75em 0.5em; text-transform: uppercase; text-decoration: none; text-align: center; }
@media (min-width: 48em) { #menu-toggle { display: none; } }

.site-nav { display: none; margin-bottom: 1em; text-align: center; }
.site-nav ul { display: block; margin: 0; padding: 0.25em 0.75em; list-style: none; border-radius: 0 0 0.5rem 0.5rem; }
@media (min-width: 48em) { .site-nav ul { display: inline-block; } }
.site-nav li { display: inline-block; font-size: 0.75rem; }
.site-nav a { display: block; padding: 0.5em 0.75em; text-transform: uppercase; text-decoration: none; border: 1px solid; border-radius: 0.25rem; }
@media (min-width: 48em) { .site-nav { display: block; } }
.site-nav.js-menu-is-open { display: block; -webkit-animation-name: initial; animation-name: initial; }

.masthead { clear: both; margin-bottom: 3em; text-align: center; }
.masthead::after { clear: both; content: ""; display: table; }

.site-title { margin: 0.5em 0 0; padding: 0; font-weight: 700; }
.site-title { font-size: 19.436284208px; }
@media screen and (min-width: 320px) { .site-title { font-size: calc(19.436284208px + 8.211715792 * ((100vw - 320px) / 960)); } }
@media screen and (min-width: 1280px) { .site-title { font-size: 27.648px; } }
.site-title a { text-decoration: none; }

.site-description { margin-bottom: 1em; font-family: "Lora", serif; font-weight: 400; font-style: italic; }
.site-description { font-size: 16px; }
@media screen and (min-width: 320px) { .site-description { font-size: calc(16px + 0 * ((100vw - 320px) / 960)); } }
@media screen and (min-width: 1280px) { .site-description { font-size: 16px; } }

.site-logo { display: inline-block; position: relative; z-index: 10; }

.site-logo-img { width: 75px; height: 75px; border: 5px solid; border-radius: 75px; }
@media (min-width: 48em) { .site-logo-img { width: 112.5px; height: 112.5px; border-radius: 112.5px; } }
@media (min-width: 64em) { .site-logo-img { width: 150px; height: 150px; border-radius: 150px; } }

.site-footer { clear: both; margin: 2em 0; padding: 2em 0; text-align: center; border-top: 1px solid; }
.site-footer::after { clear: both; content: ""; display: table; }
.site-footer .social-icons { margin-bottom: 0.5em; }
.site-footer .social-icon { display: inline-block; padding: 0 0.25em; }

.copyright { font-size: 0.75rem; }
.copyright p { margin: 0; padding: 0; }

.footnotes { margin: 2rem 0; padding-top: 1rem; border-top: 1px solid; font-size: 0.75rem; }

.more-link { font-weight: bold; text-decoration: none; }

.back-to-top { display: block; font-size: 0.75rem; text-transform: uppercase; text-align: right; text-decoration: none; }

.taxonomy-section { margin-bottom: 2em; padding-bottom: 1em; }
.taxonomy-section:not(:last-child) { border-bottom: solid 1px; }
.taxonomy-section + .taxonomy-section { margin-top: 2em; }

.taxonomy-title { margin-bottom: 0.5em; font-family: "Source Sans Pro", sans-serif; }
.taxonomy-title { font-size: 28px; }
@media screen and (min-width: 320px) { .taxonomy-title { font-size: calc(28px + 4 * ((100vw - 320px) / 960)); } }
@media screen and (min-width: 1280px) { .taxonomy-title { font-size: 32px; } }

.taxonomy-index { display: grid; grid-column-gap: 2em; grid-template-columns: repeat(2, 1fr); margin: 0; padding: 0; font-family: "Source Sans Pro", sans-serif; font-size: 0.9rem; list-style: none; }
@media (min-width: 64em) { .taxonomy-index { grid-template-columns: repeat(3, 1fr); } }
.taxonomy-index a { display: -webkit-box; display: -ms-flexbox; display: flex; padding: 0.25em 0; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; color: inherit; text-decoration: none; border-bottom: 1px solid; }
.taxonomy-index + .taxonomy-section { margin-top: 3em; }

.pagination { display: -webkit-box; display: -ms-flexbox; display: flex; grid-column: 1 / -1; margin: 2em 0; width: 100%; }
.pagination ul { margin: 0 auto; padding: 0; list-style-type: none; }
.pagination li { display: block; float: left; margin-left: -1px; }
.pagination li a { display: block; margin-bottom: 0.25em; padding: 0.5em 1em; font-size: 0.75rem; font-weight: bold; line-height: 1.5; text-align: center; text-decoration: none; border: 1px solid; border-radius: 0; }
.pagination li a.disabled { pointer-events: none; cursor: not-allowed; }
.pagination li:first-child { margin-left: 0; }
.pagination li:first-child a { border-top-left-radius: 0.25rem; border-bottom-left-radius: 0.25rem; }
.pagination li:last-child a { border-top-right-radius: 0.25rem; border-bottom-right-radius: 0.25rem; }

.search-input { margin-bottom: 2em; padding: 0.5em; width: 100%; font-size: 0.9rem; border: 2px solid; border-radius: 0.25rem; }

.toc-wrapper { display: inline-block; margin-bottom: 1.5em; border: 1px solid; border-radius: 0.25rem; }
.toc-wrapper h2 { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; -webkit-box-align: center; -ms-flex-align: center; align-items: center; margin: 0; padding: 0.75rem 1rem; font-family: "Source Sans Pro", sans-serif; font-size: 0.75rem; text-transform: uppercase; cursor: pointer; }
.toc-wrapper h2 .toc-toggle-icon { margin-left: 1rem; -webkit-transition: -webkit-transform 350ms ease; transition: -webkit-transform 350ms ease; transition: transform 350ms ease; transition: transform 350ms ease, -webkit-transform 350ms ease; }
.toc-wrapper h2.js-toc-is-open .toc-toggle-icon { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); }
.toc-wrapper #markdown-toc { display: none; height: 0; margin-bottom: 0; padding-left: 2rem; overflow: hidden; font-size: 0.9rem; -webkit-transition: height 350ms ease; transition: height 350ms ease; }
.toc-wrapper #markdown-toc.js-toc-is-open { display: block; height: auto; }
.toc-wrapper li { padding: 0.3em 0; font-family: "Source Sans Pro", sans-serif; }
.toc-wrapper li a { display: inline-block; color: inherit; font-size: 0.75rem; font-weight: 600; text-decoration: none; border-bottom: 1px dotted transparent; }
.toc-wrapper li ol { padding-left: 0.5rem; list-style-type: lower-roman; }

/* ========================================================================== Page ========================================================================== */
.page-wrapper { margin: 0 auto; padding-left: 1em; padding-right: 1em; max-width: 1024px; }

.page-title { margin-bottom: 0.5em; font-family: "Lora", serif; font-weight: bold; font-style: italic; letter-spacing: -2px; }
.page-title { font-size: 48px; }
@media screen and (min-width: 320px) { .page-title { font-size: calc(48px + 12 * ((100vw - 320px) / 960)); } }
@media screen and (min-width: 1280px) { .page-title { font-size: 60px; } }

.page-image { position: relative; text-align: center; margin-top: -37.5px; margin-bottom: 2em; z-index: 1; }
@media (min-width: 48em) { .page-image { margin-top: -56.25px; } }
@media (min-width: 64em) { .page-image { margin-top: -75px; } }
.page-image img { width: 100%; }

.page-image-caption { position: absolute; bottom: 0; right: 0; margin: 0 auto; padding: 0.25em 0.5em; color: #fff; font-size: 0.75rem; background: #000; text-align: right; z-index: 5; opacity: 0.5; border-radius: 4px 0 0 0; }
.page-image-caption > * { margin: 0; padding: 0; }
.page-image-caption a { color: #fff; }

.page-sidebar { font-size: 0.75rem; }
@media (min-width: 64em) { .page-sidebar { text-align: center; } }
.page-sidebar .page-date, .page-sidebar .read-time { font-family: "Lora", serif; font-style: italic; white-space: nowrap; }
@media (min-width: 64em) { .page-sidebar .read-time { display: block; } }
.page-sidebar .read-time + .page-date::before { content: "\2023"; padding: 0 0.5em; }
@media (min-width: 64em) { .page-sidebar .read-time + .page-date::before { content: ""; padding: 0; } }

.page-author { clear: both; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; margin-bottom: 1em; }
.page-author::after { clear: both; content: ""; display: table; }
@media (min-width: 64em) { .page-author { display: block; } }

.page-taxonomies-title { display: inline; padding-right: 0.5em; font-size: 1rem; font-weight: normal; text-transform: uppercase; }
@media (min-width: 64em) { .page-taxonomies-title { display: inline-block; margin: 1.5em 0 0.5em; padding: 0; font-size: 0.75rem; font-weight: normal; text-transform: uppercase; } }

.page-taxonomies { display: inline; margin-right: 1em; padding: 0; list-style: none; }
@media (min-width: 64em) { .page-taxonomies { display: block; margin: 0 0 1.5em 0; } }

.page-taxonomy { display: inline; }
.page-taxonomy:not(:last-child)::after { content: ", "; }

.page-share { margin-top: 2em; margin-bottom: 2em; }

.page-comments { margin-bottom: 2em; }

.page-pagination { margin: 2em 0 1em; clear: both; }
@media (min-width: 64em) { .page-pagination { display: -webkit-box; display: -ms-flexbox; display: flex; } }

.page-previous, .page-next { display: block; -webkit-box-flex: 1; -ms-flex: 1; flex: 1; text-decoration: none; }

.page-next { margin-top: 1em; }
@media (min-width: 64em) { .page-next { margin-top: 0; text-align: right; } }

.page-pagination-label { margin: 0; padding: 0; font-size: 1rem; }

.page-pagination-title { margin: 0; padding: 0; font-family: "Lora", serif; font-size: 0.9rem; font-style: italic; }

/* Wide Layout Overrides ========================================================================== */
.layout--home .page-wrapper, .layout--posts .page-wrapper, .layout--categories .page-wrapper, .layout--tags .page-wrapper, .layout--category .page-wrapper, .layout--tag .page-wrapper, .layout--collection .page-wrapper, .layout--search .page-wrapper { max-width: 768px; }
.layout--home .page-title, .layout--posts .page-title, .layout--categories .page-title, .layout--tags .page-title, .layout--category .page-title, .layout--tag .page-title, .layout--collection .page-title, .layout--search .page-title { text-align: center; }

@media (min-width: 64em) { .layout--post .page-wrapper { display: grid; grid-column-gap: 3em; grid-row-gap: 0; grid-template-columns: 175px 1fr; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } }
@media (min-width: 64em) { .layout--post .page-header { grid-column: 1 / -1; clear: both; } }
.layout--post .page-sidebar { margin-bottom: 1em; }
@media (min-width: 64em) { .layout--post .page-sidebar { float: left; width: 18%; } }
@supports (display: grid) { .layout--post .page-sidebar { width: auto; } }
.layout--post .page-sidebar a { color: inherit; text-decoration: none; }
.layout--post .page-sidebar a:hover { text-decoration: underline; }
@media (min-width: 64em) { .layout--post .page-content { float: right; width: 78%; min-width: 0; } }
@supports (display: grid) { .layout--post .page-content { width: auto; margin: 0; } }
.layout--post .page-share { clear: both; }

.page--wide .page-wrapper { max-width: 1024px; }

/* ========================================================================== Author ========================================================================== */
.author-avatar { margin-right: 1em; width: 50px; height: auto; border-radius: 50%; }
@media (min-width: 64em) { .author-avatar { margin-right: 0; margin-bottom: 1em; width: 100px; height: auto; } }

@media (min-width: 64em) { .author-name { margin-bottom: 0.5em; } }

.author-links { display: none; margin: 0 0 1.5em; padding: 0; list-style: none; }
@media (min-width: 64em) { .author-links { display: block; } }

.author-link { display: inline; padding-right: 0.5em; }
@media (min-width: 64em) { .author-link { padding: 0.25em; } }
.author-link a { text-decoration: none; }

/* ========================================================================== Entries (Posts, collection documents, etc.) ========================================================================== */
.entry { clear: both; position: relative; }
.entry::after { clear: both; content: ""; display: table; }
.entry a { color: inherit; }

.entry-header { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }

.entry-title { margin-bottom: 0.5rem; font-family: "Lora", serif; font-weight: bold; font-style: italic; letter-spacing: -1px; word-wrap: break-word; /* break long words that could overflow */ }
.entry-title a { text-decoration: none; }
.entry-title a[rel="bookmark"]::before { content: ''; position: absolute; left: 0; top: 0; right: 0; bottom: 0; }

.entry-image { -webkit-box-ordinal-group: 0; -ms-flex-order: -1; order: -1; width: 100%; margin-bottom: 0.5rem; }

.entry-meta .entry-date, .entry-meta .read-time { font-family: "Lora", serif; font-style: italic; white-space: nowrap; }
.entry-meta .read-time + .entry-date::before { content: "\2023"; padding: 0 0.5em; }

.entry-excerpt a, .u-bookmark-of { position: relative; z-index: 10; }

/* Entries List Layout ========================================================================== */
.entries-list .entry { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; margin-bottom: 2rem; }
.entries-list .entry-title { -webkit-box-ordinal-group: 2; -ms-flex-order: 1; order: 1; }
.entries-list .entry-title { font-size: 24px; }
@media screen and (min-width: 320px) { .entries-list .entry-title { font-size: calc(24px + 12 * ((100vw - 320px) / 960)); } }
@media screen and (min-width: 1280px) { .entries-list .entry-title { font-size: 36px; } }
.entries-list .entry-excerpt, .entries-list .entry-content { -webkit-box-ordinal-group: 4; -ms-flex-order: 3; order: 3; /* remove space after last child element */ }
.entries-list .entry-excerpt > *:last-child, .entries-list .entry-content > *:last-child { margin-bottom: 0; }
.entries-list .entry-excerpt { /* normalize font sizes */ }
.entries-list .entry-excerpt > * { font-size: 1rem; }
.entries-list .entry-meta { -webkit-box-ordinal-group: 3; -ms-flex-order: 2; order: 2; margin-bottom: 1em; font-size: 0.75rem; }
.entries-list .more-link { margin-top: -1em; }
.entries-list .more-link a { text-decoration: none; }

/* Entries Grid Layout ========================================================================== */
.entries-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); grid-gap: 2em; }
.entries-grid .entry { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; padding-bottom: 2rem; }
.entries-grid .entry-title { -webkit-box-ordinal-group: 2; -ms-flex-order: 1; order: 1; }
.entries-grid .entry-title { font-size: 18px; }
@media screen and (min-width: 320px) { .entries-grid .entry-title { font-size: calc(18px + 6 * ((100vw - 320px) / 960)); } }
@media screen and (min-width: 1280px) { .entries-grid .entry-title { font-size: 24px; } }
.entries-grid .entry-excerpt, .entries-grid .entry-content { -webkit-box-ordinal-group: 4; -ms-flex-order: 3; order: 3; /* remove space after last child element */ }
.entries-grid .entry-excerpt > *:last-child, .entries-grid .entry-content > *:last-child { margin-bottom: 0; }
.entries-grid .entry-excerpt { /* normalize font sizes */ }
.entries-grid .entry-excerpt > * { font-size: 1rem; }
.entries-grid .entry-meta { -webkit-box-ordinal-group: 3; -ms-flex-order: 2; order: 2; margin-bottom: 1em; font-size: 0.75rem; }
.entries-grid .more-link { margin-top: -1em; }
.entries-grid .more-link a { text-decoration: none; }

/* ========================================================================== BUTTONS ========================================================================== */
/* Default button ========================================================================== */
.btn { /* default */ display: inline-block; margin-bottom: 0.25em; padding: 0.5em 1em; font-family: "Source Sans Pro", sans-serif; font-size: 1rem; font-weight: bold; text-align: center; text-decoration: none; border-width: 0; border-radius: 0.25rem; cursor: pointer; /* fills width of parent container */ /* disabled */ /* extra large button */ /* large button */ /* small button */ }
.btn .icon { margin-right: 0.5em; }
.btn .icon + .hidden { margin-left: -0.5em; /* override for hidden text*/ }
.btn--block { display: block; width: 100%; }
.btn--block + .btn--block { margin-top: 0.25em; }
.btn--disabled { pointer-events: none; cursor: not-allowed; filter: alpha(opacity=65); box-shadow: none; opacity: 0.65; }
.btn--x-large { font-size: 2rem; }
.btn--large { font-size: 1.5rem; }
.btn--small { font-size: 0.75rem; }

/* ========================================================================== Icons ========================================================================== */
.icon { display: inline-block; position: relative; top: -0.05em; /* fine-tune alignment */ width: 1em; height: 1em; line-height: 1; vertical-align: middle; fill: currentColor; }
.icon--bitbucket { fill: #205081; }
.icon--codepen { fill: #000; }
.icon--dribbble { fill: #ea4c89; }
.icon--email { fill: #000; }
.icon--facebook { fill: #3b5998; }
.icon--flickr { fill: #0063dc; }
.icon--github { fill: #181717; }
.icon--gitlab { fill: #e24329; }
.icon--googleplus { fill: #dc4e41; }
.icon--instagram { fill: #e4405f; }
.icon--lastfm { fill: #d51007; }
.icon--linkedin { fill: #0077b5; }
.icon--pinterest { fill: #bd081c; }
.icon--rss { fill: #ffa500; }
.icon--soundcloud { fill: #f30; }
.icon--stackoverflow { fill: #fe7a16; }
.icon--tumblr { fill: #36465d; }
.icon--twitter { fill: #1da1f2; }
.icon--xing { fill: #005a5f; }
.icon--youtube { fill: #cd201f; }

/* ========================================================================== NOTICE TEXT BLOCKS ========================================================================== */
/** Default Kramdown usage (no indents!): <div class="notice" markdown="1"> #### Headline for the Notice Text for the notice </div> */
/* ========================================================================== Syntax highlighting ========================================================================== */
/* Inline code block */
code.highlighter-rouge { margin: 0; padding: 0.2em 0.4em; font-size: 85%; border-radius: 3px; }

/* Multi-line code blocks */
div.highlighter-rouge, figure.highlight { position: relative; margin-bottom: 1em; font-family: Menlo, Consolas, Monaco, "Courier New", Courier, monospace; line-height: 1.8; }
div.highlighter-rouge > pre, div.highlighter-rouge pre.highlight, figure.highlight > pre, figure.highlight pre.highlight { margin: 0; padding: 1em; }

.highlight table { margin-bottom: 0; font-size: 1rem; border: 0; }
.highlight table td { padding: 0; width: calc(100% - 1em); border: 0; /* line numbers*/ /* code */ }
.highlight table td.gutter { padding-right: 1em; width: 1em; border-right: 1px solid; text-align: right; }
.highlight table td.code { padding-left: 1em; }
.highlight table pre { margin: 0; }

.highlight pre { width: 100%; }

.gist td, .gist th { border-bottom: 0; }

/* Utility Clases */
/* ========================================================================== Accessibility Modules ========================================================================== */
/* Text meant only for screen readers */
.screen-reader-text, .screen-reader-text span, .screen-reader-shortcut { position: absolute !important; width: 1px; height: 1px; clip: rect(0, 0, 0, 0); border: 0; overflow: hidden; }
.screen-reader-text:focus, .screen-reader-text span:focus, .screen-reader-shortcut:focus { display: block; top: 5px; left: 5px; width: auto; height: auto; padding: 0.75em 1em; clip: auto !important; border-radius: 0.125em; color: #fff; font-weight: bold; line-height: normal; text-decoration: none; box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); z-index: 100000; }

.screen-reader-text:focus, .screen-reader-shortcut:focus { width: auto; height: auto; clip: auto !important; text-decoration: none; box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); z-index: 100000; }

/* ========================================================================== Animations ========================================================================== */
/* add .animated class to elements you wish to animate along with the type of animation (eg: <div class="animated fadeIn"></div>) */
.animated { -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation-duration: 1s; animation-duration: 1s; }

/* Fade-in animation .fadeIn ========================================================================== */
@-webkit-keyframes fadeIn { 0% { opacity: 0; }
  100% { opacity: 1; } }
@keyframes fadeIn { 0% { opacity: 0; }
  100% { opacity: 1; } }
.fadeIn { -webkit-animation-name: fadeIn; animation-name: fadeIn; }

/* Fade-in down animation .fadeInDown ========================================================================== */
@-webkit-keyframes fadeInDown { 0% { opacity: 0; -webkit-transform: translateY(-20px); }
  100% { opacity: 1; -webkit-transform: translateY(0); } }
@keyframes fadeInDown { 0% { opacity: 0; -webkit-transform: translateY(-20px); transform: translateY(-20px); }
  100% { opacity: 1; -webkit-transform: translateY(0); transform: translateY(0); } }
.fadeInDown { -webkit-animation-name: fadeInDown; animation-name: fadeInDown; }

/* Drop animation .drop ========================================================================== */
@-webkit-keyframes drop { 0% { -webkit-transform: translateY(-500px); }
  100% { -webkit-transform: translateY(0); } }
@keyframes drop { 0% { -webkit-transform: translateY(-500px); transform: translateY(-500px); }
  100% { -webkit-transform: translateY(0); transform: translateY(0); } }
.drop { -webkit-animation-name: drop; animation-name: drop; }

/* ========================================================================== Alignment ========================================================================== */
.align-baseline { vertical-align: baseline !important; }

/* Browser default */
.align-top { vertical-align: top !important; }

.align-middle { vertical-align: middle !important; }

.align-bottom { vertical-align: bottom !important; }

.align-text-bottom { vertical-align: text-bottom !important; }

.align-text-top { vertical-align: text-top !important; }

/* Image Alignment ========================================================================== */
.align-center, div.align-center, a img.align-center { display: block; margin-right: auto; margin-left: auto; }

figure.align-center img { display: block; margin-right: auto; margin-left: auto; }
figure.align-center figcaption { text-align: center; }

.align-right, a img.align-right { margin-bottom: 1rem; margin-left: 1rem; float: right; }

.align-left, a img.align-left { margin-right: 1rem; margin-bottom: 1rem; float: left; }

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

/* ========================================================================== Floats ========================================================================== */
.float-left { float: left !important; }

.float-right { float: right !important; }

.float-none { float: none !important; }

/* ========================================================================== Text ========================================================================== */
/* Alignment ========================================================================== */
.text-justify { text-align: justify !important; }

.text-nowrap { white-space: nowrap !important; }

.text-left { text-align: left !important; }

.text-right { text-align: right !important; }

.text-center { text-align: center !important; }

/* Transformation ========================================================================== */
.text-lowercase { text-transform: lowercase !important; }

.text-uppercase { text-transform: uppercase !important; }

.text-capitalize { text-transform: capitalize !important; }

.text-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Sizing ========================================================================== */
.small { font-size: 80%; }

/* ========================================================================== Responsive Embed Credit: Nicolas Gallagher and SUIT CSS.
 <!-- 16:9 aspect ratio --> <div class="responsive-embed responsive-embed-16by9"> <iframe class="responsive-embed-item" src="..."></iframe> </div>
 <!-- 4:3 aspect ratio --> <div class="responsive-embed responsive-embed-4by3"> <iframe class="responsive-embed-item" src="..."></iframe> </div> ========================================================================== */
.responsive-embed { display: block; position: relative; width: 100%; margin-bottom: 1.5rem; padding: 0; overflow: hidden; }
.responsive-embed::before { display: block; content: ""; }
.responsive-embed .responsive-embed-item, .responsive-embed iframe, .responsive-embed embed, .responsive-embed object, .responsive-embed video { position: absolute; top: 0; bottom: 0; left: 0; width: 100%; height: 100%; border: 0; }

.responsive-embed-21by9::before { padding-top: 42.8571428571%; }

.responsive-embed-16by9::before { padding-top: 56.25%; }

.responsive-embed-4by3::before { padding-top: 75%; }

.responsive-embed-1by1::before { padding-top: 100%; }
