/* =general
-----------------------------*/
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
:root {
    --side: 10px;
    --2side: 20px;
    --g: 15px;
    --2g: 30px;
    --3g: 45px;
    --4g: 60px;
    --6g: 90px;
    
    --header-face: "Roboto Slab Light", Georgia, serif;
    --title-face: Oswald, Impact, sans-serif;
    --display-face: "Oswald Light", Impact, sans-serif;
    --text-face: Lora, Arial, Georgia, serif;
    --mono-face: Menlo, Monaco, Consolas, "DejaVu Sans Mono", monospace;
    
    --darkest-text-color: #333;
    --dark-text-color: #666;
    --medium-text-color: #929294;
    --light-text-color: #b2b2b2;
    --dark-header-color: #444;
    --link-color: #0192DC;
    --light-link-color: #dcf3ff;
    --highlight-link-color: #01a9ff;
    --button-color: #0192DC;
    --dark-bg-color: #555557;
    --light-bg-color: #F4F4F5;
    --border-color: #e0e0e1;
    --light-border-color: #f4f4f5;
}
html, textarea, input, table {
    font-family: var(--text-face);
    font-size: 18px;
    line-height: var(--2g);
}
body {
    background-color: #fff;
    color: var(--darkest-text-color);
}
a {
    text-decoration: none;
    color: var(--link-color);
    transition: color .2s ease-in-out, border-bottom-color .2s ease-in-out;
}
a:hover {
    color: var(--highlight-link-color);
}
img {
    display: block; 
    max-width: 100%;
    height: auto;
}
ul, ol {
    list-style: none;
}
/* =utils
-----------------------------*/
.clearfix::after {
    display: table;
    content: " ";
    clear: both;
}

/* =headings
-----------------------------*/
.heading {
    color: var(--light-text-color);
    font-family: var(--display-face);
    border: 1px solid var(--border-color);
    border-width: 1px 0;
    height: calc(var(--3g) - 2px);
    line-height: var(--3g);
    margin: var(--2g) 0;
}

h1, h2, h3, h4, h5 {
    font-family: var(--title-face);
    font-weight: normal;
    color: var(--dark-header-color);
}
h1 {
    font-size: 1.7rem;
    line-height: var(--3g);
    letter-spacing: -0.3px;
}
h2 {
    font-size: 1.4rem;
    line-height: 30px;
    letter-spacing: -0.2px;
    position: relative;
    transition: all 0.3s linear;
}
#sidebar h2 {
    font-size: 1.2rem;
}
h1 a, h2 a, h4 a, h5 a  {
    color: var(--dark-header-color);
}
h3 a {
    color: var(--light-text-color);
}
h3 {
    font-size: 1.2rem;
    font-family: var(--display-face);
    color: var(--light-text-color);
    margin: var(--2g) 0 var(--g);
}
h4 {
    font-size: 1.1rem;
}
h5 {
    font-family: var(--title-face);
    font-size: 1rem;
}
/* =layout
-----------------------------*/
#page {
    max-width: 1390px;
    padding: 0 var(--side);
    margin: 0 auto;
}

/* =header
-----------------------------*/
header:after {
    display: table;
    content: " ";
    clear: both;
}
header .banner {
    font-family: var(--header-face);
    background: url(../i/logo.svg) no-repeat 0 0;
    background-size: 90px;
    display: block;
    position: relative;
}
body.blog header .banner {
    background-position: 0 33.333%;
}
body.about header .banner {
    background-position: 0 66.666%;
}
body.work header .banner, body.works header .banner {
    background-position: 0 100%;
}
header .banner > div {
    white-space: nowrap;
    color: var(--darkest-text-color);
    margin-left: calc(90px + var(--side));
    height: var(--2g);
}
header .banner .title {
    padding-top: 7px;
}
header .banner .subtitle {
    font-size: 0.8rem;
    padding-top: 9px;
}
header .navigation {
    margin-top: var(--g);
}
/* =search
-----------------------------*/
.searchform {
    position: relative;
    left: calc(-1 * var(--side));
    width: calc(100% + var(--2side));
    height: var(--3g);
}
.searchform label {
    display: none;
}
.searchform input[type=text]::placeholder {
    color: var(--light-text-color);
}
.searchform input[type=text] {
    width: 100%;
    position: relative;
    height: var(--3g);
    border: 0;
    padding: 0 10px;
    background-color: var(--light-bg-color);
}
.searchform button[type=submit] {
    position: absolute;
    border: 0;
    right: 10px;
    top: 11px;
    width: 24px;
    height: 23px;
    text-indent: -99999px;
    background: url(../i/icons.svg) no-repeat;
	background-position: 0 -105px;
}
/* =nav
-----------------------------*/
nav ul {
    display: flex;
    flex-wrap: nowrap;
    flex-direction: row;
    justify-content: space-between;
}
nav a {
    font-size: 0.9rem;
    display: block;
    color: var(--dark-header-color);
    font-family: var(--title-face);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
nav a:hover {
    color: var(--dark-text-color);
}
header nav {
    position: relative;
    overflow: hidden;
    padding-bottom: 2px;
    margin-top: 8px;
}
header nav a {
    padding: 5px 0 0;
}
header nav.underline {
    background: linear-gradient(to right, #9201dc 0%,#dc0192 20%,#dc0192 20%,#ffa900 38%,#f7f300 55%,#00DB12 80%,#0299e5 99%, #0299e5 100%);
}
header nav ul {
    background-color: #fff;
}

header nav .line {
    display: block;
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 2px;
    z-index: 0;
    background-color: #fff;
}
header nav .line.animated {
    transition: transform 0.3s ease-in-out;
}
header nav .line:nth-of-type(1) {
    left: -100%;
}
header nav .line:nth-of-type(2) {
    left: 0;
}
/* =details
-----------------------------*/
.details, .details a {
    font-size: 0.9rem;
    color: var(--light-text-color);
}
.details a:hover {
    color: var(--highlight-link-color);
}
.details > span {
    display: inline-block;
}
.details > span:not(:last-child):after {
    content: "·";
    margin: 10px;
    color: var(--darkest-text-color);
}
.details .date {
    white-space: nowrap;
}
/* =archives
-----------------------------*/
.description {
    margin: var(--g) 0 0;
}
.years-shortcuts {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
}
.years-shortcuts li {
    margin-right: 10px;
    min-width: var(--4g);
}

/* =content
-----------------------------*/
#content, #sidebar {
    margin-bottom: var(--2g);
}
.post {
    position: relative;
}
article:after {
    display: table;
    content: " ";
    clear: both;
}
article a {
    color: var(--darkest-text-color);
    border-bottom: 1px solid var(--link-color);
}
article a:visited {
    border-bottom-color: var(--light-text-color);
}
article a:hover {
    border-bottom-color: var(--highlight-link-color);
}
article ul, article ol {
    margin-left: var(--g);
    margin: var(--g) 0 var(--g) var(--g);
}
article ul {
    list-style-type: disc;
}
article ol {
    list-style-type: decimal;
}
p {
    margin: var(--g) 0;
}
blockquote {
    font-style: italic;
    padding-left: var(--g);
}
cite {
    display: block;
    font-style: normal;
    margin: var(--g) 0;
}
pre.code, code {
    font-size: 0.9rem;
    font-family: var(--mono-face);
}
pre.code.prettyprint {
    border-color: var(--border-color);
}
.summary {
    font-size: 1.2rem;
}
.sidenote {
    font-style: italic;
    font-size: 0.8rem;
}
/* =post list
-----------------------------*/
ul.posts {
    margin-bottom: var(--3g);
}
ul.posts>li {
    margin-bottom: var(--2g);
}
ul.posts .excerpt a {
    color: var(--darkest-text-color);
}
body.works #content {
    width: 100%;
}
ul.posts a img {
    transition: border-color 0.3s ease-in-out;
}
ul.posts a img {
    width: 180px;
    border-radius: 50%;
    border: 9px solid var(--light-link-color);
}
ul.posts a:hover img {
    border-color: var(--highlight-link-color);
}
.work-category ul.posts a img {
    margin: auto;
}
.work-category .heading {
    text-align: center;
}
.work-category ul.posts {
    text-align: center;
}
.work-category ul.posts li {
    margin-bottom: var(--3g);
}
/* =figures
-----------------------------*/
figure {
    margin: var(--2g) 0;
    display: table;
}
figure img {
    max-width: 100%;
    height: auto;
    margin-bottom: var(--g);
}
figure a img {
    border: 9px solid var(--light-link-color);
    transition: border-color 0.2s ease-in-out;
}
figure a:hover img {
    border-color: var(--highlight-link-color);
}
figcaption, caption {
    font-family: var(--display-face);
    color: var(--dark-text-color);
    display: table-caption;
    caption-side: bottom;
}
img.hero {
    border: 9px solid var(--light-border-color);
    border-radius: 50%;
    width: 180px;
}
/* =definition lists
-----------------------------*/
dt {
    font-weight: bold;
}
dd {
    margin-bottom: var(--g);
}
/* =tables
-----------------------------*/
table {
    border-collapse: collapse;
    width: 100%;
    margin: var(--2g) 0;
    font-size: 0.9rem;
}
th {
    text-align: left;
}
th, td {
    border: 1px solid var(--border-color);
    border-width: 1px 0;
    padding: 7px 0;
    vertical-align: baseline;
}
tr > .count {
    text-align: right;
}
caption {
    caption-side: bottom;
    text-align: left;
    padding-top: 7px;
}
/* =sharing
-----------------------------*/
.share {
    margin: var(--2g) 0;
    padding: 29px 0 0;
    border-top: 1px solid var(--light-border-color);
}
.share p {
    display: none;
    float: left;
    line-height: var(--3g);
    margin-top: 0;
    margin-right: var(--2g);
    color: var(--dark-text-color);
}
.share ul {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    flex-wrap: wrap;
}
.share li {
    overflow: hidden;
    width: var(--3g);
    height: var(--3g);
    text-indent: -99999px;
	background-image: url(../i/icons.svg);
    background-repeat: no-repeat;
    background-size: cover;
}
.share li.twitter {
	background-position: 0 -130px;
}
.share li.facebook {
    background-position: 0 -220px;
}
.share li.linkedin {
	background-position: 0 -175px;
}
.share li.email {
	background-position: 0 -265px;
}
.share li a {
    display: block;
    height: 100%;
}
/* =social media
-----------------------------*/
.social {
    margin: var(--2g) 0;
}
.social ul {
    list-style: none;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
}
.social li {
    height: 30px;
    margin: 0 var(--2g) var(--g) 0;
    min-width: 120px;
	background-image: url(../i/icons.svg);
    background-repeat: no-repeat;
}
.social li a {
    padding-left: 40px;
    border-bottom-width: 0;
}
.social li.twitter {
    background-position: 0 -440px;
}
.social li.github {
    background-position: 0 -320px;
}
.social li.linkedin {
    background-position: 0 -350px;
}
.social li.flickr {
    background-position: 0 -380px;
}
.social li.lastfm {
    background-position: 0 -410px;
}
/* =comments
-----------------------------*/
.comments {
    border-top: 1px solid var(--light-border-color);
    padding-top: 14px;
    margin-top: var(--2g);
}
.commentlist .head {
    overflow: auto;
}
.commentlist .head img {
    float: left;
    width: var(--4g);
    height: auto;
    border-radius: 50%;
}
.commentlist .meta {
    float: left;
    margin-left: 10px;
}
.commentlist li {
    margin-bottom: var(--2g);
}
.comment-notes {
    font-size: 0.9rem;
}
.comment-form div {
    margin-bottom: var(--g);
}
.comment-form label {
    display: none;
}
.comment-form textarea, .comment-form input {
    width: calc(100% + 20px);
    margin-left: -10px;
    padding: 0 10px;
    border: 0;
    background: var(--light-bg-color);
}
.comment-form input[type=submit] {
    width: auto;
    border-radius: 0;
	-webkit-appearance: none;
    text-align: left;
    color: #fff;
    background-color: var(--button-color);
}
/* =panel
-----------------------------*/
.panel {
    margin-top: var(--2g);
}
.panel .year {
    margin-bottom: var(--2g);
    border-top: 1px solid var(--light-border-color);
    padding-top: calc(var(--2g) - 1px);
}
.panel .year:after {
    display: table;
    content: " ";
    clear: both;
}
.panel .gallery figure:not(:last-of-type) {
    margin-bottom: var(--3g);
}
.panel .preview figcaption a {
    display: block;
    color: #fff;
    border-width: 0;
    background-color: var(--link-color);
    font-family: var(--text-face);
    height: var(--4g);
    border-radius: var(--4g);
    max-width: 330px;
    text-align: center;
    line-height: var(--4g);
    letter-spacing: 0.5px;
    transition: background 0.3s ease-in-out;
}
.panel .preview figcaption a:hover {
    background-color: var(--highlight-link-color);
}
/* =footer
-----------------------------*/
footer {
    position: relative;
    left: calc(-1 * var(--side));
    width: calc(100% + var(--2side));
    padding: 0 var(--side);
    margin-top: var(--2g);
    overflow: auto;
    background-color: var(--light-bg-color);
}
footer .global {
    position: relative;
    margin-left: calc(-1 * var(--side));
    width: calc(100% + var(--2side));
    background-color: var(--dark-bg-color);
    padding: var(--g) var(--side);
    overflow: hidden;
}
footer .hello figure {
    margin-bottom: 0;
    position: relative;
}
footer img.hero {
    border-color: #fff;
}
footer .global a {
    color: #fff;
}
footer a:hover {
    color: var(--highlight-link-color)
}
footer .essentials {
    margin-bottom: var(--2g);
}
footer .essentials li {
    background-image: url(../i/icons.svg);
    background-repeat: no-repeat;
    margin-bottom: var(--g);
}
footer .essentials a {
    padding-left: 40px;
}
footer .essentials li.email {
    background-position: 0 0;
}
footer .essentials li.twitter {
    background-position: 0 -30px;
}
footer .essentials li.rss {
    background-position: 0 -60px;
}
footer .license {
    display: block;
    font-size: 0.8rem;
    letter-spacing: 0.5px;
    margin: var(--g) auto 0;
    text-align: center;
}
/* =media queries
-----------------------------*/
@media (min-width: 601px) {
    :root {
        --side: 15px;
        --2side: 30px;
    }
    .heading {
        font-size: 1.3rem;
        height: calc(var(--6g) - 2px);
        line-height: var(--6g);
        margin: var(--3g) 0;
    }
    body.home #content .heading,
    body.single #content .heading,
    body.work #content .heading,
    body.about #content .heading
    {
        padding-left: 210px;
    }
    header .banner {
        background-size: 120px;
        float: left;
        width: 70%;
    }
    header .banner > div {
        margin-left: 135px;
        height: 40px;
    }
    header .banner .title {
        font-size: 1.3rem;
    }
    header .banner .subtitle {
        font-size: 1rem;
    }
    header .navigation {
       padding-top: 0;
       width: 30%;
       float: left;
    }
    header nav a {
       font-size: 0.8rem;
    }
    body.works #content {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: space-between;
    }
    .work-category {
        width: 30%;
    }
    .work-category h2 {
        min-height: var(--4g);
        font-size: 1.1rem;
        text-overflow: ellipsis;
    }
    blockquote {
        padding-left: var(--2g);
    }
    .post {
        margin-left: 210px;
        clear: both;
    }
    img.hero {
        float: left;
        margin-left: -210px;
        position: absolute;
        top: 0;
    }
    footer img.hero {
        margin-left: 0;
    }
    .archives {
        margin-left: 210px;
    }
    body.home #content ul.posts li {
        min-height: 180px;
    }
    .post figure:not(.wide), .post .sidenote {
        float: left;
        margin-top: 0;
        margin-left: -210px;
        margin-right: var(--2g);
        clear: both;
    }
    .post figure.marginal img {
        width: 180px;
    }
    .post .sidenote {
        width: 330px;
    }
    .panel .text:not(.wide) {
        float: left;
        width: 50%;
    }
    .panel .preview {
        margin-left: var(--2g);
        float: right;
        max-width: calc(50% - var(--2g));
    }
    .panel .preview figure {
        margin: var(--2g) 0 0;
    }
    .panel .gallery h3 {
        width: 100%;
    }
    .panel .gallery {
        clear: both;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    }
    .panel .gallery figure:not(.wide) {
        float: none;
        margin: 0 0 var(--3g);
        width: calc(50% - var(--2g));
    }
    footer .hello {
        margin: var(--2g) 0;
    }
    footer .hello figure {
        float: left;
        width: 180px;
    }
    footer .hello .text {
        margin-left: 210px;
        overflow: hidden;
    }
    footer .essentials {
        clear: both;
        margin-left: 210px;
        margin-bottom: var(--2g);
    }
}
@media (min-width: 1081px) {
    header .banner {
        background-size: 180px;
    }
    header .banner > div {
       margin-left: 210px;
       height: 60px;
    }
    header .banner .title {
       font-size: 1.8rem;
       line-height: 1.8;
       padding-top: 14px;
    }
    header .banner .subtitle {
       font-size: 1.1rem;
       padding-top: 4px;
    }
    header .navigation {
       padding-top: 30px;
    }
    header nav {
        margin-top: 13px;
    }
    header nav a {
        font-size: 1rem;
    }
    #content {
        float: left;
        width: calc(70% - var(--4g));
        margin-right: var(--4g);
    }
    #sidebar {
        float: left;
        width: 30%;
    }
    .work-category h2 {
        font-size: 1.3rem;
    }
    .share {
        margin-bottom: 0;
        padding-top: calc(21px + var(--2g));
        padding-bottom: var(--2g);
    }
    .share p {
        display: block;
    }
    .comments {
        padding-top: 21px;
    }
    footer .hello {
        float: left;
        width: calc(70% - var(--4g));
        margin-right: var(--4g);
    }
    footer .essentials {
        float: left;
        clear: none;
        margin-left: 0;
        margin-top: var(--2g);
        width: 30%;
    }
    footer .global {
        clear: both;
    }
    footer nav {
        float: left;
        margin-left: 210px;
        margin-right: var(--4g);
        width: calc(70% - 210px - var(--4g));
    }
    footer nav ul {
        justify-content: flex-start;
    }
    footer nav ul li {
        margin-right: var(--4g);
    }
    footer .license {
        float: left;
        margin: 0;
    }
}


/* =fonts
-----------------------------*/
@font-face {
    font-family: 'Lora';
    src: url('../fonts/Lora-Bold.woff2') format('woff2'),
         url('../fonts/Lora-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;

}
@font-face {
    font-family: 'Lora';
    src: url('../fonts/Lora-Bold-Italic.woff2') format('woff2'),
         url('../fonts/Lora-Bold-Italic.woff') format('woff');
    font-weight: bold;
    font-style: italic;

}
@font-face {
    font-family: 'Lora';
    src: url('../fonts/Lora-italic.woff2') format('woff2'),
         url('../fonts/Lora-italic.woff') format('woff');
    font-weight: normal;
    font-style: italic;

}
@font-face {
    font-family: 'Lora';
    src: url('../fonts/Lora-Regular.woff2') format('woff2'),
         url('../fonts/Lora-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;

}

@font-face {
    font-family: 'Oswald Light';
    src: url('../fonts/Oswald-Light.woff2') format('woff2'),
        url('../fonts/Oswald-Light.woff') format('woff');
    font-weight: 300;
    font-style: normal;
}
@font-face {
    font-family: 'Oswald';
    src: url('../fonts/Oswald-Regular.woff2') format('woff2'),
        url('../fonts/Oswald-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Roboto Slab Light';
    src: url('../fonts/Roboto-Slab-Light.woff2') format('woff2'),
        url('../fonts/Roboto-Slab-Light.woff') format('woff');
    font-weight: normal;
    font-style: normal;

}

@media print {
    header, footer, #sidebar, .heading, #respond, .share {
        display: none;
    }
}