/**************************************
* CSS Reset
* Eric Meyer's Reset CSS v2.0 - http://cssreset.com
*/

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}table{border-collapse:collapse;border-spacing:0}
/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
    display: block;
}
body {
    line-height: 1;
}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}


/** BEGIN OF CUSTOM CSS **/


html {
    --color-primary-text: #333;
    --color-secondary-text: rgba(0,0,0,0.54);
    --color-nav-text: #aaa;
    --color-nav-accent: #2518b5;
    --color-nav-active: #00356e;
    --color-accent: #D91F5D;
    --color-primary: #58595B;
    --color-base: #DBDBDB;
    --color-half-balance: #D1BDCB;
    --color-balance: #aa9c84;
    --color-inverse: #FFFFFF;
    --color-marker: rgb(254, 239, 195);

    width: 100vw;
    height: 100%;
    overflow-x: hidden;
}


body {
    display: flex;
    flex-direction: column;
    height: 100vh;
    min-height: 100vh;

    background: none repeat scroll 0 0 #fff;
    font-family: 'freight-macro-pro', Helvetica, Arial, sans-serif;
    font-weight: 400;
    font-size: inherit;
    color: var(--color-primary-text);
}

footer {
    padding-bottom: 3em;
}

.container {
    position: relative;
    width: 100%;
    max-width: 1020px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}


@media (min-width: 550px) {
    .container {
        width: 80%;
    }
}


@media (min-width: 400px) {
    .container {
        width: 85%;
        padding: 0;
    }

    #nav-container {
        padding: 1em 0 !important;
    }
}

@media (min-width: 1280px) {
	.container { max-width: 750px; }
}

p {
    line-height: 1.5em;
    margin-bottom: 3rem;
}


/** HEADER AND NAVIGATION **/

#nav-container {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: flex-start;
    padding: 1em 20px;

    font-family: 'freight-sans-pro', Helvetica, Arial, sans-serif;
}


#page-header {
    flex: 1;
    padding-top: 0;
    padding-bottom: 0;
}


#primary-navigation ul {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    padding: 0 0 1em 0;
}


#primary-navigation li:first-child {
    width: 100%;
    padding-left: 0;
}

#primary-navigation li {
    padding: 0.5em 1em 0.5em 0;
    list-style: none;
}


#primary-navigation a {
    color: var(--color-nav-text);
    font-size: 1.2em;
    letter-spacing: 1px;
    padding-bottom: 6px;
    border-bottom: 2px solid transparent;
}


#primary-navigation a:hover {
    color: var(--color-nav-accent);
}


#primary-navigation a.act {
    color: var(--color-nav-active);
}


@media screen and (min-width: 672px) {
    #nav-container {
        padding: 4em 0 0 0;
        margin-bottom: 1em;
    }

    #primary-navigation li {
        width: auto !important;
        padding-left: 1.5em;
    }

    #primary-navigation a {
        line-height: 1em;
    }
}


#nav-container .nav-separator {
    padding: 0 2em;
}


/** SECTION: ABOUT **/

section#about {
    padding: 0;
    font-size: 5vw;
}

section#about p {
		margin-bottom: 2rem;
}

section#about h3 {
		font-weight: bold;
		line-height: 1.75em;
		margin-bottom: .5em;
}

section#about ul {
		list-style: circle;
		margin-left: 2em;
}

section#about li {
		font-size: 0.86em;
		line-height: 1.5em;
    margin-bottom: 1em;
}

section#about li a {
		border-bottom: 0.1em solid transparent;
}

section#about li a:hover {
		border-bottom: 0.1em solid #2518b5;
}

@media screen and (min-width: 672px) {
    section#about {
        font-size: 1.75vw;
        max-width: 80vw;
    }
}

@media screen and (min-width: 1280px) {
    section#about {
        font-size: 1.15em;
        max-width: 640px;
    }
}


/** SECTION: POSTS **/

section#posts {
    font-size: 5vw;
}


section#posts ul {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}


section#posts ul > li {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    margin-bottom: 1em;
}


section#posts .date {
    width: 100%;
}


section#posts a {
    flex: 1;
    font-weight: 400;
    line-height: 1.15em;
    border: none;
}


section#posts a:hover {
    color: #2518b5 !important;
    border: none;
}


@media screen and (min-width: 672px) {
    section#posts {
        font-size: 1.5vw;
    }

    section#posts a {
        flex: none;
    }

    section#posts .date {
        width: auto !important;
        padding-right: 0.5em;
    }
}

@media screen and (min-width: 1280px) {
		section#posts {
				font-size: 1.15em;
		}
}


/** SECTION: TALKS **/

section#talks ul {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

section#talks ul > li {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: flex-start;
    margin-bottom: 3em;
}

section#talks .date {
    display: flex;
    flex-direction: column;
    min-width: 10em;
    line-height: 1.5em;
}

section#talks ul > li > .details {
    display: flex;
    flex-direction: column;
}

section#talks ul > li > .details > .at { color: var(--color-balance); }

section#talks ul > li > .details > .abstract {
    font-size: .875em;
    color: var(--color-secondary-text);
}

section#talks ul > li > .details > .abstract p {
    margin-bottom: 1em;
}

section#talks a.title {
    flex: 1;
    font-weight: 400;
    line-height: 1.5em;
    border: none;
    color: var(--color-primary-text);
    margin-bottom: .25em;
}

section#talks a.title:hover {
    color: #2518b5 !important;
    border: none;
}

section#talks .links > a {
    margin-right: .5em;
}



/** SECTION: CALL TO ARMS **/

section#call-to-arms {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    
    margin-top: 2em;
    padding-top: 1em;
    border-top: 1px solid rgba(0,0,0,0.54);
}

section#call-to-arms > div:nth-child(2) {
    text-align: right;
}

#mc_embed_signup label {
    display: block;
    line-height: 1.75em;
    color: var(--color-balance);
}


@media screen and (min-width: 672px) {
    section#call-to-arms {
        max-width: 60vw;
    }
}


/** POST LAYOUT **/

h1 {
    font-family: 'freight-sans-pro', Helvetica, Arial, sans-serif;
    font-size: 1.5em;
    font-weight: bold;
    color: #222;
    letter-spacing: 0;
    line-height: 1.8em;
    cursor: default;
}


article h1 {
    line-height: 1.25em;
    font-weight: bold;
    margin-bottom: 1em;
}


article h3 {
    margin-top: 2.5em;
    margin-bottom: 1em;
    font-weight: bold;
    line-height: 1.5em;
}


article p {
    margin-bottom: 1.5em;
    text-align: justify;
}

article ul {
    list-style: outside;
    margin-left: 1.75rem;
    margin-bottom: 2rem;
}

article ol {
    list-style: decimal;
    margin-left: 1.75rem;
    margin-bottom: 2rem;
}

article li {
    margin-bottom: .5em;
}

article li > a {
    text-decoration: none;
    border-bottom: none;
}

article li:target {
    background-color: var(--color-marker);
}


@media screen and (min-width: 672px) {
    article {
        max-width: 60vw;
        font-size: 1.15em;
    }
}

@media screen and (min-width: 1280px) {
    article {
        max-width: 520px;
        font-size: 1.15em;
    }
}


h2 {
    display: block;
    color: #555;
    margin: 18px 0 18px 0;
    font-size: 24px; font-weight: 600;
    line-height: 1.5em;
    font-weight: 400;
}


h4 { display: block; margin: 0 0 0 3px; font-size: 18px; font-weight: 400;  line-height: 1.5em;  }
h5 { display: block; margin: 0; font-size: 12px; font-weight: 400; line-height: normal; }
h6 { display: block; margin: 0; font-size: 12px; font-weight: 400; line-height: normal; }

.t1 { font-size: 42px; line-height: 1.35em; }
.t2 { font-size: 30px; line-height: 1.35em; }
.t3 { font-size: 1.2em; }
.t4 { font-size: 18px; line-height: 1.35em; }
.t5 { font-size: 16px; line-height: 1.35em; }
.t6 { font-size: 14px; line-height: 1.35em; }

.b1 { color: #222; }
.b2 { color: #262626; }
.b3 { color: #404040; }
.b4 { color: #555 !important; }
.b5 { color: #888 !important; }
.b6 { color: #b5b5b5; }
.b7 { color: #aa9c84; }

.snippet {
    display: block;
    font-weight: 400;
    max-height: 195px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sub-title {
    display: block;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 1px;
    line-height: 1em;
}

img {
    max-width: 100%;
}

code {
    padding: 0 .25em;
    /* background-color: #F8F8F8; */
    font-family: monospace;
}

pre > code {
    display: block;
    background: #F8F8F8;
    font-family: monospace;
    font-size: 0.869em;
    line-height: 1.35;
    padding: 1.5em 1.5em !important;
    margin-left: -1.5em;
    margin-right: -1.5em;
    margin-bottom: 1.75em;
    overflow-x: auto;
}

.changelog {
    display: block;
    background: var(--color-marker);
    font-family: monospace;
    font-size: 0.869em;
    line-height: 1.35;
    padding: 12px 12px !important;
    margin-bottom: 1.75em;
    overflow-x: auto;
}

.changelog ul {
    list-style: none;
    margin-left: 0;
    margin-bottom: 0;
}

.changelog ul > li:last-child {
    margin-bottom: 0;
}

.changelog a:hover {
    text-decoration: underline;
}

blockquote {
    font-style: italic;
    margin-left: -21px;
    margin-bottom: 1.75em;
    padding-left: 18px;
    border-left: 3px solid #444;
}

blockquote > p {
    padding: 3px 6px 12px 0;
}

.highlight {
    color: #42a2e2;
}


/**************************************
* Primitives
*/


a {
    text-decoration: none;
    color: #2518b5;
    font-weight: 400;
    border-bottom: 0.1em solid #2518b5;
}

a:hover {
    cursor: pointer;
}

time {
    font-weight: bold !important;
}

input[type="email"] {
    outline: none;

    border: 1px solid #c0c0c0;
    border-radius: 3px;
    background-color: #fff;
    padding: 6px 8px;
    min-width: 20em;

    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

input[type="text"]:focus,
input[type="password"]:focus,
input[type="email"]:focus {
    -webkit-box-shadow: inset 0 0 3px #c0c0c0;
    box-shadow: inset 0 0 3px #c0c0c0;
    border: 1px solid #777;
}

button {
    display: inline-block;

    font-size: 0.75em;
    text-transform: uppercase;
    text-align: center;
    letter-spacing: 1px;
    color: var(--color-primary-text);
    padding: .5em .75em;

    border: 1px solid transparent;
    border-radius: 3px;

    outline: none;
}

button:hover {
    cursor: pointer;
    color: var(--color-accent);
    border: 1px solid var(--color-accent);
}

button:active {
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.149);
    box-shadow: inset 0 0 6px rgba(0,0,0,0.149);
}


/**************************************
* Custom Elements
*/

.em {
    font-weight: bold;
}

em {
    font-style: italic;
}

strong {
    font-weight: bold;
}

ul.link-collection a {
    font-size: 1.44em;
}

ul.link-collection p {
    font-size: 1.2em;
}

table {
    margin-bottom: 2rem;
    margin-left: auto;
    margin-right: auto;
}

th {
    text-align: left;
    color: rgba(0,0,0,0.54);
    padding: 0 1.5em 0.5em 0;
}

td {
    padding: 0.25em 1.5em 0.25em 0;
}

.footnotes {
    border-top: 1px solid var(--color-base);
    margin: 3rem 0 2rem 0;
    padding-top: 2em;
    font-size: 0.862em;
    color: var(--color-secondary-text);
}

.footnotes > ol { list-style-type: decimal; }
.footnotes > ol > li > p { margin-bottom: .5rem; }
.footnotes > ol > li a { border-bottom: none; }

sup {
    padding-top: 250px;
    margin-top: -250px;
    position: relative;
    bottom: 5px;
    margin-right: 6px;
    left: 3px;
    font-size: 0.875em;
    text-decoration: underline;
}

sup a {
    text-decoration: none;
    border: none;
}

sup:target a {
    border-bottom: 6px solid var(--color-marker);
    background-color: var(--color-marker);
}
