/* ==========================================================================
   Table of Contents
   ========================================================================== */

/*

    0.  Normalize
    1.  Icons
    2.  General
    3.  Utilities
    4.  General
    5.  Single Post
    6.  Third Party Elements
    7.  Pagination
    8.  Footer
    9.  Media Queries (Tablet)
    10. Media Queries (Mobile)

 */

/* ==========================================================================
   0. Normalize.css v2.1.3 | MIT License | git.io/normalize | (minified)
   ========================================================================== */

article, aside, details,
figcaption, figure,
footer, header, hgroup,
main, nav, section,
summary { display: block; }
audio, canvas, video { display: inline-block; }
audio:not([controls]) { display: none; height: 0; }
[hidden], template { display: none; }
html {
   font-family: sans-serif;
   -ms-text-size-adjust: 100%;
   -webkit-text-size-adjust: 100%;
}
body { margin: 0; }
a { background: transparent; }
a:focus { outline: thin dotted; }
a:active, a:hover { outline: 0; }
h1 { font-size: 2em; margin: 0.67em 0; }
abbr[title] { border-bottom: 1px dotted; }
b, strong { font-weight: bold; }
dfn { font-style: italic; }
hr {
   -moz-box-sizing: content-box;
   box-sizing: content-box;
   height: 0;
}
mark { background: #ff0; color: #000; }
code, kbd, pre,
samp { font-family: monospace, serif; font-size: 1em; }
pre { white-space: pre-wrap; }
q { quotes: "\201C" "\201D" "\2018" "\2019"; }
small { font-size: 80%; }
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: 0; }
fieldset {
   border: 1px solid #c0c0c0;
   margin: 0 2px;
   padding: 0.35em 0.625em 0.75em;
}
legend { border: 0; padding: 0; }
button, input, select,
textarea { font-family: inherit; font-size: 100%; margin: 0; }
button, input { line-height: normal; }
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; }
input[type="checkbox"],
input[type="radio"] { box-sizing: border-box; padding: 0; }
input[type="search"] {
   -webkit-appearance: textfield;
   -moz-box-sizing: content-box;
   -webkit-box-sizing: content-box;
   box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
button::-moz-focus-inner,
input::-moz-focus-inner { border: 0; padding: 0; }
textarea { overflow: auto; vertical-align: top; }
table { border-collapse: collapse; border-spacing: 0; }

/* ==========================================================================
   2. General - Setting up some base styles
   ========================================================================== */

html {
    height: 100%;
    max-height: 100%;
    font-size: 62.5%;
}

body {
    height: 100%;
    max-height: 100%;
    font-family: 'Noto Serif__subset', 'Noto Serif', serif;
    font-size: 2.0rem;
    line-height: 1.6em;
    color: #3A4145;
}

::-moz-selection {
    color: #222;
    background: #D6EDFF;
    text-shadow: none;
}

::selection {
    color: #222;
    background: #D6EDFF;
    text-shadow: none;
}

h1, h2, h3,
h4, h5, h6 {
    text-rendering: optimizeLegibility;
    line-height: 1;
    margin-top: 0;
    font-family: 'Open Sans__subset', 'Open Sans', sans-serif;
}

h1 {
    font-size: 5rem;
    line-height: 1.2em;
    letter-spacing: -2px;
    text-indent: -3px;
}

h2 {
    font-size: 4rem;
    line-height: 1.2em;
    letter-spacing: -1px;
    text-indent: -2px;
}

h3 {
    font-size: 3.5rem;
}

h4 {
    font-size: 3rem;
}

h5 {
    font-size: 2.5rem;
}

h6 {
    font-size: 2rem;
}

a {
    color: #4a4a4a;
    transition: color ease 0.3s;
}

a:hover {
    color: #57A3E8;
}

h1 a, h2 a, h3 a,
h4 a, h5 a, h6 a {
    color: #50585D;
}


p, ul, ol, dl {
    margin: 1.6em 0;
}

ol ol, ul ul,
ul ol, ol ul {
    margin: 0.4em 0;
}

dl dt {
    float: left;
    width: 180px;
    overflow: hidden;
    clear: left;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: bold;
    margin-bottom: 1em
}

dl dd {
    margin-left: 200px;
    margin-bottom: 1em
}

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #efefef;
    margin: 1em 0;
    padding: 0;
}

blockquote {
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    margin: 1.6em 0 1.6em -2.2em;
    padding: 0 0 0 1.6em;
    border-left: #4a4a4a 0.4em solid;
}

blockquote p {
    margin: 0.8em 0;
    font-style: italic;
}

blockquote small {
    display: inline-block;
    margin: 0.8em 0 0.8em 1.5em;
    font-size:0.9em;
    color: #ccc;
}

blockquote small:before { content: '\2014 \00A0'; }

blockquote cite {
    font-weight:bold;
}

blockquote cite a { font-weight: normal; }

mark {
    background-color: #ffc336;
}

code, tt {
    padding: 1px 3px;
    font-family: Inconsolata, monospace, sans-serif;
    font-size: 0.85em;
    white-space: pre-wrap;
    border: 1px solid #E3EDF3;
    background: #F7FAFB;
    border-radius: 2px;
}

pre {
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    margin: 1.6em 0;
    border: 1px solid #E3EDF3;
    width: 100%;
    padding: 10px;
    font-family: Inconsolata, monospace, sans-serif;
    font-size: 0.9em;
    white-space: pre;
    background: #F7FAFB;
    border-radius: 3px;
}

pre[class*='language-'] {
  position: relative;
}

pre[class*='language-html']::before,
pre[class*='language-css']::before,
pre[class*='language-javascript']::before {
  position: absolute;
  top: 0;
  right: 0;
  transform: translateY(-100%);
  padding: 6px 10px;
  background-color: #ddd;
  font-weight: bold;
}

pre[class*='language-html']::before {
  content: 'HTML'
}

pre[class*='language-css']::before {
  content: 'CSS';
}

pre[class*='language-javascript']::before {
  content: 'JavaScript';
}

pre code, tt {
    font-size: inherit;
    white-space: -moz-pre-wrap;
    white-space: pre-wrap;
    background: transparent;
    border: none;
    padding: 0;
}

kbd {
    display: inline-block;
    margin-bottom: 0.4em;
    padding: 1px 8px;
    border: #ccc 1px solid;
    color: #666;
    text-shadow: #fff 0 1px 0;
    font-size: 0.9em;
    font-weight: bold;
    background: #f4f4f4;
    border-radius: 4px;
    box-shadow:
        0 1px 0 rgba(0, 0, 0, 0.2),
        0 1px 0 0 #fff inset;
}

table {
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    margin: 1.6em 0;
    width:100%;
    max-width: 100%;
    background-color: transparent;
}

table th,
table td {
    padding: 8px;
    line-height: 20px;
    text-align: left;
    vertical-align: top;
    border-top: 1px solid #efefef;
}

table th { color: #000; }

table caption + thead tr:first-child th,
table caption + thead tr:first-child td,
table colgroup + thead tr:first-child th,
table colgroup + thead tr:first-child td,
table thead:first-child tr:first-child th,
table thead:first-child tr:first-child td {
    border-top: 0;
}

table tbody + tbody { border-top: 2px solid #efefef; }

table table table { background-color: #fff; }

table tbody > tr:nth-child(odd) > td,
table tbody > tr:nth-child(odd) > th {
    background-color: #f6f6f6;
}

table.plain tbody > tr:nth-child(odd) > td,
table.plain tbody > tr:nth-child(odd) > th {
   background: transparent;
}

iframe, .fluid-width-video-wrapper {
    display: block;
    margin: 1.6em 0;
}

/* When a video is inside the fitvids wrapper, drop the
margin on the iframe, cause it breaks stuff. */
.fluid-width-video-wrapper iframe {
    margin: 0;
}


/* ==========================================================================
   3. Utilities - These things get used a lot
   ========================================================================== */

/* Clears shit */
.clearfix:before,
.clearfix:after {
    content: " ";
    display: table;
}
.clearfix:after { clear: both; }
.clearfix { *zoom: 1; }

/* Hides shit */
.hidden {
    text-indent: -9999px;
    visibility: hidden;
    display: none;
}

/* Creates a responsive wrapper that makes our content scale nicely */
.inner {
    max-width: 60ch;
    margin: 0 auto;
    padding: 0 16px;
}

/* Centres vertically yo. (IE8+) */
.vertical {
    display: table-cell;
    vertical-align: middle;
}


/* ==========================================================================
   4. General - The main styles for the the theme
   ========================================================================== */

/* Big cover image on the home page */
.site-head {
    width: 100%;
    padding-top: 5%;
    margin-bottom: 5rem;
    text-align: center;
    color: #fff;
    background: #303538 no-repeat center center;
    background-size: cover;
}

.blog-logo {
    text-decoration: none;
}

/* Yo-logo. Yolo-go. Upload one in ghost/settings/ */
.blog-logo img {
    display: block;
    height: 140px;
    width: auto;
    margin: 0 auto;
    line-height: 0;
}

/* The details of your blog. Defined in ghost/settings/ */
.blog-title {
    margin: 10px 0 10px 0;
    font-size: 5rem;
    letter-spacing: -1px;
    font-weight: bold;
    font-family: 'Open Sans__subset', 'Open Sans', sans-serif;
    text-shadow: 0 1px 6px rgba(0,0,0,0.1);
}

.blog-description {
    margin: 0;
    font-size: 1.8rem;
    line-height: 1.5em;
    font-weight: 300;
    font-family: 'Noto Serif__subset', 'Noto Serif', serif;
    letter-spacing: 0;
    text-shadow: 0 1px 3px rgba(0,0,0,0.15);
}

.nav-main {
    display: flex;
    justify-content: center;
    list-style: none;
    padding: 0;
    margin: 3% 0 0;
}


.nav-main a {
    display: block;
    padding: 5px 30px;
    color: #57A3E8;
    text-decoration: none;
}

.nav-main li.active a {
    color: #50585D;
    background: white;
}

main {
    max-width: 60ch;
    margin: auto;
    padding: 0 16px;
    word-break: break-word;
    hyphens: auto;
}

/* Every post, on every page, gets this style on its <article> tag */
.post {
    position: relative;
    margin: 4rem 0;
}

.post-video img,
.post-video video {
    width: 100%;
}

.talk-abstract-image {
    max-width: 50%;
    margin: 2em 0 0.8em 0.8em;
    float: right;
}

.talk-no-abstract-image {
    width: 100%;
    margin-top: 2em;
}

.post .post-video {
    margin: 1em 0;
}

.post .playable {
    display: block;
    position: relative;
    color: rgba(255, 255, 255, 0.7);
    transition: color 0.3s;
}

.post .playable:hover {
    color: rgba(255, 255, 255, 0.9);
}

.post .playable:before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    height: 80px;
    width: 80px;

    transform: translate(-50%, -50%);

    border: 5px solid;
    border-radius: 50%;
}

.post .playable:after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;

    transform: translate(-50%, -50%);

    border: 26px solid transparent;
    border-left: 42px solid currentColor;
    border-right: 0px;
    margin-left: 7px; /* visual centering */

}

.excerpts .post:not(:last-child) {
  padding-bottom: 4rem;
  border-bottom: 1px solid #EBF2F6;
}

.excerpts .post:not(:last-child):after {
    display: block;
    content: "";
    width: 7px;
    height: 7px;
    border: #E7EEF2 1px solid;
    position: absolute;
    bottom: -5px;
    left: 50%;
    margin-left: -5px;
    background: #fff;
    -webkit-border-radius: 100%;
    -moz-border-radius: 100%;
    border-radius: 100%;
    box-shadow: #fff 0 0 0 5px;
}

.post-title {
    margin:0;
}

.post-title a {
    text-decoration: none;
}

.post-excerpt p {
    margin: 1.6rem 0 0 0;
    font-size: 0.9em;
    line-height: 1.6em;
}

.post-meta .sharing {
  float: right;
  margin: 2px 0;
}

.post-meta .sharing iframe {
}

.post-meta {
    overflow: auto;
    margin: 0 0 5px 0;
    font-family: 'Open Sans__subset', 'Open Sans', sans-serif;
    font-size: 1.5rem;
    color: #9EABB3;
}

.post-meta a {
    color: #9EABB3;
    text-decoration: none;
}

.post-meta a:hover {
    text-decoration: underline;
}

.post-meta .category {
    color: #70c0ff;
}

.sharing iframe {
  margin: 1.6em auto;
}

.post-meta .sharing iframe {
  margin: 0;
}

.post-meta__prev {
    float: left;
}

.post-meta__next {
    float: right;
}

.publish-meta {
    position: absolute;
    top: 0;
    right: 0;
    padding: 4.3rem 0 4rem 0;
    text-align: right;
}

.publish-heading {
    display: block;
    font-weight: bold;
}

.publish-date {
    display: block;
    font-size: 1.4rem;
    line-height: 1.5em;
}

/* ==========================================================================
   5. Single Post - When you click on an individual post
   ========================================================================== */

/* Keep images centred and within the bounds of the post-width */
.post-content img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
    padding: 0.6em 0;
}

/* Break out larger images to be wider than the main text column
   the class is applied with jQuery */
.post-content .full-img {
    width: 126%;
    max-width: none;
    margin: 0 -13%;
}

.talks-list h4 {
    margin-bottom: 0;
}

/* ==========================================================================
   6. Third Party Elements - Embeds from other services
   ========================================================================== */

/* Github */

.gist table {
    margin: 0;
    font-size: 1.4rem;
}

.gist .line-number {
    min-width: 25px;
    font-size: 1.1rem;
}


/* ==========================================================================
   7. Pagination - Tools to let you flick between pages
   ========================================================================== */

/* The main wrapper for our pagination links */
.pagination {
    position: relative;
    max-width: 60ch;
    padding: 0 16px;
    margin: 4rem auto;
    font-family: 'Open Sans__subset', 'Open Sans', sans-serif;
    font-size: 1.3rem;
    color: #9EABB3;
    text-align: center;
}

.pagination a {
    color: #9EABB3;
}

/* Push the previous/next links out to the left/right */
.older-posts,
.newer-posts {
    position: absolute;
    display: inline-block;
    padding: 0 15px;
    border: #EBF2F6 2px solid;
    text-decoration: none;
    border-radius: 30px;
    transition: border ease 0.3s;
}

.older-posts {
    right: 0;
}

.page-number {
    display: inline-block;
    padding: 2px 0;
}

.newer-posts {
    left: 0;
}

.older-posts:hover,
.newer-posts:hover {
    border-color: #9EABB3;
}


/* ==========================================================================
   8. Footer - The bottom of every page
   ========================================================================== */

.site-footer {
    position: relative;
    display: table;
    width: 100%;
    margin: 8rem 0 0 0;
    padding: 4rem 0;
    font-size: 1.8rem;
    color: #fff;
    background: #303538;
}

.site-footer a {
    color: #BBC7CC;
    text-decoration: underline;
}

.site-footer a:hover {
    color: #57A3E8;
}

.author {
  margin: 2rem 0;
}

.author h4,
.author p {
  margin: 0;
}

.author-avatar {
    height: 12rem;
    border-radius: 50%;
    border: 4px solid white;
    float: left;
    margin-right: 20px;
}

/* The subscribe icon on the footer */
.subscriptions {
  margin-top: 2rem;
  display: flex;
  justify-content: center;
}

.subscriptions > * + * {
  margin-left: 10px;
}

.subscribe {
    width: 40px;
    height: 40px;
    transition: all 0.1s ease;

    background-position: center center;
    background-repeat: no-repeat;
    background-size: 80%;
}

.subscribe:hover {
    background-size: 100%;
}

.subscribe.social-mastodon {
    background-image: url(../images/social/social-mastodon.svg);
}

.subscribe.social-twitter {
    background-image: url(../images/social/social-twitter.svg);
}

.subscribe.social-github {
    background-image: url(../images/social/social-github.svg);
}

.subscribe.social-google {
    background-image: url(../images/social/social-gplus.svg);
}

.subscribe.social-linkedin {
    background-image: url(../images/social/social-linkedin.svg);
}

.subscribe.social-email {
    background-image: url(../images/social/social-email.svg);
}

.subscribe.social-rss {
    background-image: url(../images/social/social-feed.svg);
}

/* Visually hidden */
.sr-only:not(:focus):not(:active) {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}


/* ==========================================================================
   9. Media Queries - Smaller than 900px
   ========================================================================== */

@media only screen and (max-width: 900px) {

    blockquote {
        margin-left: 0;
    }

    .blog-title {
        font-size: 4rem;
        letter-spacing: -1px;
    }

    .blog-description {
        font-size: 1.7rem;
        line-height: 1.5em;
    }

    .post {
        font-size: 0.9em;
        line-height: 1.6em;
    }

    .post-template .post {
        padding-bottom: 1rem;
    }

    .post-template .post-header {
        padding: 40px 0;
    }

    h1 {
        font-size: 4.8rem;
        text-indent: -2px;
    }

    h2 {
        font-size: 3.8rem;
    }

    h3 {
        font-size: 3.3rem;
    }

    h4 {
        font-size: 2.8rem;
    }

}

/* ==========================================================================
   10. Media Queries - Smaller than 500px
   ========================================================================== */


@media only screen and (max-width: 500px) {

    .blog-logo img {
        height: 80px;
    }

    .post {
        font-size: 0.8em;
        line-height: 1.6em;
    }

    .talk-abstract-image {
        float: none;
        max-width: 100%;
        width: 100%;
        margin: 2em 0 0 0;
    }

    .blog-title {
        font-size: 3rem;
    }

    .blog-description {
        font-size: 1.5rem;
    }


    h1, h2 {
        font-size: 3rem;
        line-height: 1.1em;
        letter-spacing: -1px;
    }

    h3 {
        font-size: 2.8rem;
    }

    h4 {
        font-size: 2.3rem;
    }

    .post-template .post {
        padding-bottom: 0;
    }

    .post-template .post-header {
        padding: 30px 0;
    }

    .post-content img {
        padding: 0;
    }

    .post-content .full-img {
        width: auto;
        width: calc(100% + 32px); /* expand with to image + margins */
        margin: 0 -16px; /* get rid of margins */
        min-width: 0;
        max-width: 112%; /* fallback when calc doesn't work */
    }

    .post-meta {
        font-size: 1.3rem;
    }

    .post-footer {
        padding: 4rem 0;
        text-align: center;
    }

    .post-footer .author {
        margin: 0 0 2rem 0;
        padding: 0 0 1.6rem 0;
        border-bottom: #EBF2F6 1px dashed;
    }

    .post-footer .share {
        position: static;
        width: auto;
    }

    .post-footer .share a {
        margin: 1.4rem 0.8rem 0 0.8rem;
    }

    .older-posts,
    .newer-posts {
        position: static;
        margin: 10px 0;
    }

    .page-number {
        display: block;
    }

    .site-footer {
        margin-top: 6rem;
        font-size: 1.1rem;
    }

    .author {
      text-align: center;
    }

    .author-avatar {
      float: none;
      display: block;
      margin: 0 auto;
      margin-bottom: 1rem;
    }

}

/* ==========================================================================
   End of file. Media queries should be the last thing here. Do not add stuff
   below this point, or it will probably fuck everything up.
   ========================================================================== */
