@charset "UTF-8";
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html { font-family: sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }

body { margin: 0; }

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; }

audio, canvas, progress, video { display: inline-block; vertical-align: baseline; }

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

[hidden], template { display: none; }

a { background-color: transparent; }

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

abbr[title] { border-bottom: 1px dotted; }

b, strong { font-weight: bold; }

dfn { font-style: italic; }

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

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

small { font-size: 80%; }

li small { color: #aaa; }

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

sup { top: -0.5em; }

sub { bottom: -0.25em; }

img { border: 0; }

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

figure { margin: 1em 40px; }

hr { box-sizing: content-box; height: 0; }

pre { overflow: auto; }

code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; }

button, input, optgroup, select, textarea { color: inherit; font: inherit; margin: 0; }

button { overflow: visible; }

button, select { text-transform: none; }

button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; cursor: pointer; }

button[disabled], html input[disabled] { cursor: default; }

button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }

input { line-height: normal; }

input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; }

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

input[type="search"] { -webkit-appearance: textfield; box-sizing: content-box; }

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

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

legend { border: 0; padding: 0; }

textarea { overflow: auto; }

optgroup { font-weight: bold; }

table { border-collapse: collapse; border-spacing: 0; }

td, th { padding: 0; }

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

body { background-color: #fbfbfb; background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0) 150px); background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0) 150px); background-repeat: no-repeat; color: #333; font-family: "Open Sans", sans-serif; font-size: 18px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; line-height: 28px; margin: 0; padding: 0; text-rendering: optimizeLegibility; }
@media (min-width: 768px) { body { font-size: 20px; line-height: 20px; } }

a { color: #333; text-decoration: none; transition: border-color .1s, color .1s; }

a:hover { color: #000; }

p, dl, dd, ul, ol, blockquote, pre, table { margin: 0 0 28px; }
@media (min-width: 768px) { p, dl, dd, ul, ol, blockquote, pre, table { margin: 0 0 10px; } }

dt { font-weight: bold; }

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

ul { list-style: disc; }

blockquote { font-size: 21px; font-style: italic; padding: 7px 0; }
@media (min-width: 768px) { blockquote { font-size: 25px; padding-bottom: 15px; padding-top: 15px; } }
blockquote p:last-child { margin-bottom: 0; }
blockquote .attribution { margin-top: -20px; font-size: 16px; font-style: normal; }

pre, code { font-family: "DejaVu Sans Mono", Menlo, Consolas, monospace; }

code { color: #000; }

pre { font-size: 14px; line-height: 21px; padding: 7px 20px; word-break: normal; word-wrap: normal; }
@media (min-width: 768px) { pre { font-size: 16px; line-height: 25px; padding-bottom: 15px; padding-top: 15px; } }

img { height: auto; max-width: 100%; vertical-align: middle; }

svg { fill: currentColor; }

hr { border: 0; border-bottom: 1px solid #eee; margin: 28px 0; }
@media (min-width: 768px) { hr { margin: 30px 0; } }

table { border-bottom: 1px solid #eee; border-collapse: collapse; margin-left: -10px; margin-right: -10px; width: 100%; }

caption, th, td { padding: 7px 10px; text-align: left; }
@media (min-width: 768px) { caption, th, td { padding-bottom: 5px; padding-top: 5px; } }

caption { color: #aaa; font-style: italic; }

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

main > *:last-child { margin-bottom: 0; }

ul.events { padding-left: 0; list-style: none; }
ul.events li { margin-bottom: 0; }
ul.events h4 span.location { font-weight: normal; }
ul.events .talk-title { padding-top: 4px; padding-bottom: 4px; margin-bottom: 0px; }


.site-header { position: relative; }
.site-header .container { padding-bottom: 28px; }
.site-header:after { background-color: rgba(0, 0, 0, 0.03); content: ""; height: 3px; left: 0; position: absolute; top: 100%; width: 100%; z-index: 1; }

.site-title { font-size: 30px; font-weight: bold; margin: 0 34px 0 0; }
@media (min-width: 768px) { .site-title { margin: 0; } }

.site-footer { background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.05)); background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.05)); color: #aaa; font-size: 14px; line-height: 21px; position: relative; }
@media (min-width: 768px) { .site-footer { line-height: 25px; } }
.site-footer:after { background-color: rgba(0, 0, 0, 0.03); bottom: 100%; content: ""; height: 3px; left: 0; position: absolute; width: 100%; }
.site-footer a.license { font-weight: normal; color: inherit; }
.site-footer a.license:hover { color: #333; }

ul.footer-links { list-style: none; margin: 0; padding: 0; font-size: 36px; color: #ccc; margin-bottom: 20px; display: flex; justify-content: space-between; }
@media (min-width: 768px) { ul.footer-links { display: block; }
  ul.footer-links li { display: inline-block; padding-right: 25px; } }

html { height: 100%; }

body { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -webkit-flex-direction: column; -ms-flex-direction: column; flex-direction: column; height: 100%; }

main { -webkit-box-flex: 1; -webkit-flex: 1 0 auto; -ms-flex: 1 0 auto; flex: 1 0 auto; min-height: 1px; width: 100%; }

.site-footer, .site-header { -webkit-box-flex: 0; -webkit-flex: none; -ms-flex: none; flex: none; }

.site-nav.is-toggled .site-nav-hamburger { display: none; }
.site-nav.is-toggled .site-nav-close { display: inline; }

.site-nav-toggle { background-color: transparent; border: 0; margin: -10px -16px; padding: 10px 16px; position: absolute; right: 20px; top: 28px; z-index: 1; }
@media (min-width: 768px) { .site-nav-toggle { display: none; } }
.site-nav-toggle:focus { outline: 0; }

.site-nav svg { height: 14px; width: 18px; }

.site-nav-close { display: none; }

.site-nav-list { border-bottom: 3px solid rgba(0, 0, 0, 0.03); display: none; list-style: none; margin: 0 -20px 28px; padding: 0 20px 11px; }
@media (min-width: 768px) { .site-nav-list { border: 0; display: block; margin: -44px 0 0px; padding: 0; } }
.site-nav-list li { display: block; padding: 0 0 9px; }
@media (min-width: 768px) { .site-nav-list li { float: left; padding: 0; } }
.site-nav-list a { color: #aaa; display: block; font-size: 12px; font-weight: bold; letter-spacing: 1px; line-height: 21px; padding: 6px 0; text-transform: uppercase; }
@media (min-width: 768px) { .site-nav-list a { line-height: 20px; margin: 0 20px 0 0; padding: 19px 0; } }
.site-nav-list a:hover { color: inherit; }
.site-nav.is-toggled .site-nav-list { display: block; }

.site-nav-current a { color: inherit; }

.post-list { margin: 0 0 28px; }
@media (min-width: 768px) { .post-list { margin-bottom: 60px; } }

.post { margin: 0 0 28px; word-break: break-word; word-wrap: break-word; }
@media (min-width: 768px) { .post { margin-bottom: 40px; } }
.post time { font-size: 11px; line-height: 11px; color: #999; }
.post-list .post:last-child { margin-bottom: 0; }

.post-header { margin: 0 0 28px; }
@media (min-width: 768px) { .post-header { margin-bottom: 30px; } }
.post-list .post-header { margin-bottom: 0; }

.post-title { font-size: 30px; line-height: 35px; margin: 0 0 7px; }
@media (min-width: 768px) { .post-title { font-size: 40px; line-height: 45px; margin: 0 0 5px; } }
.post-list .post-title { font-size: inherit; line-height: inherit; margin: 0; }
.post-title .external-domain { color: #444; font-weight: normal; }

.post-excerpt { color: #666; font-size: 15px; overflow: hidden; margin: 0 -5px; padding: 0 5px; }

.post-content h1, .post-content h2, .post-content h3, .post-content h4, .post-content h5, .post-content h6 { margin: 28px 0 14px; }
@media (min-width: 768px) { .post-content h1, .post-content h2, .post-content h3, .post-content h4, .post-content h5, .post-content h6 { margin: 45px 0 15px; } }
.post-content h1 { font-size: 30px; line-height: 35px; }
@media (min-width: 768px) { .post-content h1 { font-size: 35px; line-height: 40px; } }
.post-content h2 { font-size: 25px; line-height: 28px; }
@media (min-width: 768px) { .post-content h2 { font-size: 30px; line-height: 35px; } }
.post-content h3 { font-size: 21px; line-height: 28px; }
@media (min-width: 768px) { .post-content h3 { font-size: 25px; line-height: 30px; } }
.post-content h4 { font-size: 18px; line-height: 28px; }
@media (min-width: 768px) { .post-content h4 { font-size: 20px; line-height: 30px; } }
.post-content h4, .post-content h5, .post-content h6 { margin-bottom: 7px; }
@media (min-width: 768px) { .post-content h4, .post-content h5, .post-content h6 { margin-bottom: 10px; } }
.post-content h5, .post-content h6 { font-size: 14px; letter-spacing: 1px; line-height: 21px; text-transform: uppercase; }
@media (min-width: 768px) { .post-content h5, .post-content h6 { font-size: 16px; line-height: 25px; text-transform: uppercase; } }
.post-content a { border-bottom: 2px solid #ddd; color: #000; }
.post-content a:hover { border-bottom-color: #bbb; }
.post-content li { margin: 10px 0; }
.post-content img { padding: 10px 0; }

iframe, .gist, .fluid-width-video-wrapper { display: block; margin: 28px 0; }
@media (min-width: 768px) { iframe, .gist, .fluid-width-video-wrapper { margin: 30px 0; } }

.fluid-width-video-wrapper iframe { margin: 0; }

.footnotes { font-size: 14px; font-style: italic; line-height: 21px; }
@media (min-width: 768px) { .footnotes { font-size: 16px; line-height: 25px; } }
.footnotes p { margin: 0; }
.footnotes a:last-child { border: 0; }

.share { color: #ccc; font-size: 14px; line-height: 21px; }
@media (min-width: 768px) { .share { font-size: 16px; line-height: 25px; } }
.share a { font-weight: bold; }
.share .x-separated-list { display: inline; }

.share-title { color: #aaa; }

.post-author { border: 0; margin: 0 0 28px; position: relative; }
@media (min-width: 768px) { .post-author { margin-bottom: 60px; } }
.post-author.has-avatar { min-height: 56px; padding-left: 76px; }
@media (min-width: 768px) { .post-author.has-avatar { min-height: 60px; padding-left: 80px; } }

.post-author-avatar { background-color: #fff; background-position: center; background-size: cover; border-radius: 50%; height: 56px; left: 0; position: absolute; top: 0; width: 56px; }
@media (min-width: 768px) { .post-author-avatar { height: 60px; width: 60px; } }

.post-author-name, .post-author-bio { font-size: 14px; line-height: 21px; }
@media (min-width: 768px) { .post-author-name, .post-author-bio { font-size: 16px; line-height: 25px; } }

.post-author-name { display: block; font-weight: bold; }

.post-author-bio { color: #999; }

#disqus_thread { margin-bottom: 28px; }
@media (min-width: 768px) { #disqus_thread { margin-bottom: 60px; } }

.read-next ul { list-style: none; padding-left: 0; }
.read-next li { margin-bottom: 15px; }
.read-next a { border-bottom: 2px solid #ddd; color: #000; }
.read-next a:hover { border-bottom-color: #bbb; }

.read-next-label { display: block; color: #aaa; font-style: italic; }

.inline-left { float: left; margin: 0 20px 0 0; }

.container { margin: 0 auto; max-width: 810px; padding: 28px 20px; position: relative; }
@media (min-width: 768px) { .container { padding: 45px; }
  .container:after { background-color: rgba(0, 0, 0, 0.02); content: ""; height: 100%; left: 0; position: absolute; top: 0; width: 3px; z-index: 1; } }

.cover-image { margin: -28px -20px 28px; }
@media (min-width: 768px) { .cover-image { margin: -45px -45px 45px; } }
.cover-image img { width: 100%; }

.x-separated-list { list-style: none; margin: 0; padding: 0; }
.x-separated-list-small { font-size: 14px; }
@media (min-width: 768px) { .x-separated-list-small { font-size: 16px; } }
.x-separated-list-meta { color: #aaa; font-style: italic; }
.x-separated-list-meta a { color: #777; }
.x-separated-list-meta a:hover { color: #000; }
.x-separated-list li { display: inline-block; }
.x-separated-list li:not(:last-child):after { color: #ddd; content: " × "; font-style: normal; padding: 0 2px; speak: none; }

.clearfix:before, .clearfix:after { content: " "; display: table; }
.clearfix:after { clear: both; }

.screen-reader { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }

.post-header .author {
  font-weight: normal;
  font-size: 12px;
  color: #999;
}

.pagination {
  font-size: 12px;
}

/************************/
/** SYNTAX HIGHLIGHTING */
.highlight  { background: #ffffff; }
.highlight .c { color: #999988; font-style: italic } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { font-weight: bold } /* Keyword */
.highlight .o { font-weight: bold } /* Operator */
.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #999999 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #aaaaaa } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { font-weight: bold } /* Keyword.Constant */
.highlight .kd { font-weight: bold } /* Keyword.Declaration */
.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
.highlight .kr { font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #009999 } /* Literal.Number */
.highlight .s { color: #d14 } /* Literal.String */
.highlight .na { color: #008080 } /* Name.Attribute */
.highlight .nb { color: #0086B3 } /* Name.Builtin */
.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
.highlight .no { color: #008080 } /* Name.Constant */
.highlight .ni { color: #800080 } /* Name.Entity */
.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
.highlight .nn { color: #555555 } /* Name.Namespace */
.highlight .nt { color: #000080 } /* Name.Tag */
.highlight .nv { color: #008080 } /* Name.Variable */
.highlight .ow { font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mf { color: #009999 } /* Literal.Number.Float */
.highlight .mh { color: #009999 } /* Literal.Number.Hex */
.highlight .mi { color: #009999 } /* Literal.Number.Integer */
.highlight .mo { color: #009999 } /* Literal.Number.Oct */
.highlight .sb { color: #d14 } /* Literal.String.Backtick */
.highlight .sc { color: #d14 } /* Literal.String.Char */
.highlight .sd { color: #d14 } /* Literal.String.Doc */
.highlight .s2 { color: #d14 } /* Literal.String.Double */
.highlight .se { color: #d14 } /* Literal.String.Escape */
.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
.highlight .si { color: #d14 } /* Literal.String.Interpol */
.highlight .sx { color: #d14 } /* Literal.String.Other */
.highlight .sr { color: #009926 } /* Literal.String.Regex */
.highlight .s1 { color: #d14 } /* Literal.String.Single */
.highlight .ss { color: #990073 } /* Literal.String.Symbol */
.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
.highlight .vc { color: #008080 } /* Name.Variable.Class */
.highlight .vg { color: #008080 } /* Name.Variable.Global */
.highlight .vi { color: #008080 } /* Name.Variable.Instance */
.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */

/**********/
/* Layout */
header + main.container {
  padding-top: 15px;
  font-size: 0.8em;
}

/**************/
/* Typography */
a {
  color: #d00000;
}

a:hover {
  color: #900000;
}

h2 {
  font-size: 1.2em;
}

.entry-content h1 {
  font-size: 1.4em;
  margin-bottom: 0.3em;
}
.entry-content h2 {
  font-size: 1.3em;
  margin-bottom: 0.3em;
}
.entry-content h3 {
  font-size: 1.2em;
  margin-bottom: 0.3em;
}
.entry-content h4 {
  font-size: 1.1em;
  margin-bottom: 0.3em;
}
.entry-content h5 {
  font-size: 1em;
  margin-bottom: 0.3em;
}
.entry-content img {
  border: 5px solid #eee;
  margin: 15px 0;
}

/* Author info */
.author-info {
  font-size: 12px;
  opacity: 0.75;
  border-bottom: 1px solid #eee;
  padding-bottom: 10px;
  transition: 0.15s all;
}
.author-info:hover {
  opacity: 1;
}
.author-info .fn a {
  color: #c46a6a;
}
.author-info img {
  margin-right: 4px;
  margin-left: 10px;
}

.author-info--bottom {
  border-top: 1px solid #eee;
  padding-top: 10px;
  border-bottom: 0;
  padding-bottom: 0;
  margin-top: 30px;
}

.meta.author-info > .byline {
  font-style: italic;
}

/* Blog post - Single view */
.article-container .entry-title {
  border-left: 5px solid;
  padding-left: 10px;
  color: #100;
  margin-bottom: 8px;
}
.article-container .entry-content {
  font-size: 16px;
}
.article-container header time {
  font-size: 11px;
  line-height: 15px;
  color: #999;
}
.article-container .meta-container {
  border-bottom: 1px solid #eee;
  padding-bottom: 10px;
  margin-bottom: 20px;
}

/* Tidbits */
.inverse-heading {
  color: #fff;
  background-color: black;
  padding-left: 8px;
}

/* Homepage - Post list */
.post-list article time {
  font-size: 14px;
  line-height: 16px;
  background: #ccc;
  color: #fff;
  padding: 2px 4px;
  margin-bottom: 10px;
  display: inline-block;
}

/* Author-index */
.author-index .date-spacer {
  width: 90px;
  display: inline-block;
}
.author-index > h5.inverse-heading {
  margin-bottom: 5px;
  font-style: italic;
}
