@font-face {
    font-family: 'kghappy-full';
    src: url('/static/font/KGHAPPY.ttf')  format('truetype');
}
@font-face {
    font-family: 'kghappy-solid';
    src: url('/static/font/KGHAPPYSolid.ttf')  format('truetype');
}

:root {
    --black: #120e1f;
    --gray: #9e8f84;
    --white: #ffface;
    --dark-red: #6a2435;
    --red: #ab3229;
    --pink: #f68b69;
    --orange: #d7793f;
    --yellow: #fff169;
    --green: #62ab46;
    --dark-green: #284646;
    --dark-blue: #312139;
    --blue: #525b80;
    --light-blue: #9dc1c0;
    --dark-brown: #654147;
    --brown: #95533d;
    --light-brown: #e0b56d;
}

html {
    background-color: var(--blue);
}

body {
    display: flex;
    flex-flow: column nowrap;
    background-color: var(--white);
    font-family: Arial, Helvetica, sans-serif;
    margin: 0 auto;
}

h1, h2, h3, h4, h5, h6 {
    text-align: center;
    margin: 0;
    padding: 8px;
    font-weight: normal;
}

main {
    box-sizing: border-box;
    padding: 0;
    min-height: 100vh;
    width: 100%;

    h2 {
        font-family: 'kghappy-solid', Arial, Helvetica, sans-serif;
        background-color: var(--dark-blue);
        color: var(--white);
    }
}

img {
    width: 80%;
    display: inline-block;
}

ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

li {
    margin: 0 8px;
}

a {
    color: var(--white);
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

article {
    text-align: justify;
    padding: 20px 10px;

    a {
        color: var(--blue);

        h3 {
            color: var(--black);
        }

        h3:hover {
            color: var(--black);
            text-decoration: none;
            font-family: 'kghappy-full', Arial, Helvetica, sans-serif;
        }
    }

    a:hover {
        text-decoration: none;
    }

    p {
        a:hover {
            color: var(--blue);
            text-decoration: underline;
            font-family: Arial, Helvetica, sans-serif;
        }
    }
}

nav {
    font-family: 'kghappy-solid', Arial, Helvetica, sans-serif;
    background-color: var(--blue);
    color: var(--white);
    display: flex;
    flex-flow: row-reverse nowrap;
    justify-content: space-between;

    ul {
        display: flex;
        flex-flow: column nowrap;
        justify-content: space-between;
        margin: 8px 16px;
    }

    section {
        align-self: end;
    }

    a:hover {
        text-decoration: none;
        font-family: 'kghappy-full', Arial, Helvetica, sans-serif;
    }

    .h-card {
        display: none;
    }
}

blockquote, details p {
    border-left: 4px solid var(--blue);
    padding-left: 8px;
}

pre {
    margin: none;
    border: 1px solid var(--blue);
    padding: 8px 4px;
    overflow-x: scroll;
}

code {
    color: var(--light-red)
}

summary {
    margin-bottom: 8px;
}

.list-view {
    padding: 0;
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start;
    text-align: center;
}

.list-full {
    padding: 0;
    display: flex;
    flex-flow: column nowrap;
    justify-content: flex-start;
    text-align: center;
}

.detail-view {
    padding: 0 24px;
    max-width: 600px;
    margin: 0 auto;
}

.blog-post {
    padding: 0;

    h3 {
        font-family: 'kghappy-solid', Arial, Helvetica, sans-serif;
    }

    img {
        width: 100%;
    }

    li {
        list-style: disc;
        margin-left: 1em;
    }
} 

.blog-nav {
    display: flex;
    flex-flow: row nowrap;

    a {
        color: var(--black);
        width: 25%;
    }

    a:hover {
        text-decoration: none;
    }

    li {
        text-align: center;
        font-family: 'kghappy-solid', Arial, Helvetica, sans-serif;
        font-size: 32px;
        width: 25%;
    }

    li:hover {
        font-family: 'kghappy-full', Arial, Helvetica, sans-serif;
    }
}

.image-desc {
    font-size: 0.8em;
}

.project-card {
    padding: 2.5%;
    width: 95%;

    h3 {
        font-family: 'kghappy-solid', Arial, Helvetica, sans-serif;
        height: 60px;
    }

    p {
        margin: 8px 0 0 0;
        color: var(--black);
        text-align: justify;
    }

    img {
        width: 100%;
        height: 300px;
        object-fit: cover;
        object-position: top;
    }
}

article.project-card:first-of-type {
    flex-grow: 2;
}

.resume-card {
    width: 95%;
    padding: 0 8px;

    h3 {
        font-family: 'kghappy-solid', Arial, Helvetica, sans-serif;
        text-align: left;
    }

    p {
        margin: 0;
        padding: 8px 8px 8px 32px;
    }
}

.skills {
    display: flex;
    flex-flow: row wrap;
    justify-content: space-evenly;
    padding-bottom: 8px;

    h3 {
        text-align: left;
    }
} 

.blogroll {
    border: 1px solid var(--blue);
    border-radius: 4px;
    margin: 8px;
    padding: 4px;
    text-align: left;
    flex-grow: 1;

    p {
        text-align: center;
    }
}

.topic {
    color: var(--white);
    background-color: var(--light-blue);
    padding: 4px;
    border-radius: 4px;
    line-height: 2em;
}

.h-card {
    display: flex;
    flex-flow: column wrap;
    align-items: end;
    align-self: end;
    background-color: var(--white);
    color: var(--black);
    text-align: right;
    padding: 8px;

    a {
        color: var(--black);
    }

    a:hover {
        color: var(--black);
    }

    a:visited {
        color: var(--black);
    }

    img {
        width: 100%;
        max-width: 200px;
        max-height: 200px;
    }

    p {
        margin: 0;
    }

    p.location {
        font-size: .75em;
    }

    .p-name {
        font-family: 'kghappy-full', Arial, Helvetica, sans-serif;
        font-size: 1.5em;
    }
}

main.home {
    background-image: url(/static/images/site/bg-tile.png);

    div.blur-applier {
        display: flex;
        box-sizing: border-box;
        height: 100vh;
        padding: 16px;
        flex-flow: row wrap;
        justify-content: space-between;
        align-items: baseline;
        backdrop-filter: blur(4px);
    }

    a {
        width: 100%;
        padding: auto;

        figcaption {
            opacity: 0;
            font-size: 2em;
            text-align: center;
        }
    }

    a:hover {
        background-image: radial-gradient(closest-side, var(--yellow), rgba(0, 0, 0, 0));
        text-decoration: none;

        figcaption {
            opacity: 1;
            background-color: var(--dark-blue);
            text-decoration: none;
            border-radius: 4px;
        }
    }

    img {
        width:100%;
    }

    .h-card {
        border-radius: 16px;

        img {
            display: inline-block;
            width: 80%;
            margin: 0 auto;
        }   
    } 
}

#about {
    max-width: 632px;
    margin: 0 auto;
    padding: 16px;

    ul li {
        padding-left: 2em;
    }
}

#resume {
    margin-bottom: 8px;
}

#print-resume {
    font-family: 'kghappy-solid', Arial, Helvetica, sans-serif;
    color: var(--black);
    text-align: center;
    width: 100%;
}

#print-resume:hover {
    text-decoration: underline;
}

@media (min-width: 600px) {
    nav {
        flex-flow: row nowrap;
        justify-content: flex-start;

        ul {
            height: 100%;
            flex-flow: row nowrap;
            align-items: baseline;
        }
    }

    main.home {
        div.blur-applier {
            a {
                width: 40vw;
            }
        }
    }

    .list-view {
        .project-card {
            width: 45%;
        }

        article.project-card:first-of-type {
            position: relative;
            width: 95%;

            a.u-url {
                float: left;
            }

            p {
                margin-top: 68px;
                padding-top: 8px;
            }
        }
    }

    .h-card {
        text-align: left;
    }
}

@media (min-width: 1000px) {
    .list-view {
        .project-card {
            width: 28.33333%;
        }
    }

    .resume-card {
        width: 45%;
    }

    .blogroll {
        max-width: 250px;
    }

    main.home {
        div.blur-applier {
            a {
                width: 30vw;
            }
        }
    }
}

@media (min-width: 1400px) {
    .list-view {
        .project-card {
            width: 20%;
        }
    }
}
