@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:ital,wght@0,100..700;1,100..700&display=swap');

* {
    box-sizing: border-box;
}

body {
    background-color: white;
    counter-reset: which-one;
}

body, input {
    margin: 0;
    font-family: Josefin Sans, sans-serif;
    letter-spacing: -0.025em;
}

body > :not(nav, footer) {
    margin: 100px 14% 0;
}

hr {
    margin: 35px 0;
}

h1 {
    font-size: 1.7em;
    line-height: 1.25em;
}

img:not(#program-list img), iframe {
    box-shadow: #00000080 0 2px 4px;
}

li {
    line-height: 1.5em;
}

#portfolio-nav > div {
    margin: 0 23% 0;
}

nav:not(#portfolio-nav) {
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    text-align: center;
    z-index: 2;
}

nav a {
    margin: 0 10px;
}

nav a#logo > img {
    height: 40px;
}

nav a:not(#logo) > img {
    height: 26px;
}

nav, footer {
    color: white;
    background-color: black;
    padding: 20px 40px;
}

footer {
    position: fixed;
    display: grid;
    grid-template-columns: 3fr 1fr;
    column-gap: 30px;
    left: 0;
    right: 0;
    bottom: 0;
    font-size: 0.9em;
    z-index: 2;
}

iframe {
    width: 512px;
    height: 288px;
    border: none;
}

#copy {
    text-align: right;
}

nav a:hover:not(#logo) {
    filter: brightness(200%);
}

nav a:hover#logo {
    filter: brightness(0%) drop-shadow(0 0 4px white);
}

section {
    padding: 50px 0;
}

div#recent-projects {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 30px;
}

div#recent-projects > p.more-button {
    text-align: right;
}

div#journal-list, div#journal-preview {
    display: grid;
    grid-template-columns: 1fr 3fr;
    column-gap: 30px;
}

div#journal-preview {
    grid-template-columns: 1fr 4fr;
}

#journal-list > p.datetime, #journal-preview > p.datetime {
    text-align: right;
}

#journal-list > p:not(.datetime), #journal-preview > p:not(.datetime) {
    font-weight: 350;
}

.thin-header {
    font-weight: 400;
}

.highlight, p.more-button > a {
    color: #004071;
}

p.more-button {
    font-size: 1em;
    font-weight: bold;
    background-color: transparent;
    border: none;
    cursor: pointer;
    float: right;
}

p.more-button > a:link, p.more-button > a:active, p.more-button > a:visited {
    text-decoration: none;
}

p.more-button > a:hover {
    text-decoration: underline;
}

#programs {
    display: flex;
    text-align: right;
    justify-content: right;
    align-items: center;
}

#programs > h3 {
    margin: 0;
    padding: 0;
}

#program-list {
    list-style-type: none;
    margin: 0;
    padding-left: 20px;
}

#program-list > li {
    float: left;
    margin-left: 5px;
}

#program-list img {
    height: 40px;
}

#showcase {
    display: grid;
    grid-template-columns: auto auto;
    column-gap: 30px;
}

.showcase-image {
    width: 400px;
}

#portfolio-nav {
    display: grid;
    grid-template-columns: auto auto;
    background-color: #004071;
    color: white;
    align-items: center;
    padding: 10px 0;
    margin-bottom: 180px;
}

#portfolio-nav a {
    color: white;
    text-decoration: none;
    margin: 0;
}

#portfolio-nav div:last-of-type {
    text-align: right;
}

#port-thumbs {
    text-align: center;
}

#port-thumbs a {
    text-decoration: none;
}

#port-thumbs .port-container {
    display: inline;
}

#port-thumbs > div img {
    width: 18%;
    margin: 0 10px 10px 0;
}

#preview-thumbs img {
    width: 23%;
    margin: 0 10px 10px 0;
}

#supplementary-work {
    text-align: right;
    width: 100%;
}

#supplementary-work img {
    width: 100px;
    height: 100px;
    margin: 10px 0 0 10px;
    object-fit: cover;
}

#supplementary-work > img:first-of-type {
    margin-left: 0 !important;
}

.radio-circles, #word-name, #sport-name {
    text-align: right;
}

.footnote {
    font-size: small;
}

.radio-circles {
    display: block;
    margin: 10px 0 20px 20px;
}

.radio-options {
    position: relative;
    cursor: pointer;
    margin-left: 40px;
    user-select: none;
}

.radio-options:hover input ~ .variant-option {
    filter: brightness(75%);
}

.radio-circles input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
}

.variant-option {
    box-sizing: border-box;
    position: absolute;
    top: 0;
    right: 0;
    width: 32px;
    height: 32px;
    background-color: black;
    border-radius: 50%;
}

#counter .variant-option::after {
    counter-increment: which-one 1;
    content: counter(which-one);
    display: block;
    color: white;
    text-align: center;
    font-size: 1.25em;
    transform: translateY(25%);
}

.radio-circles input:checked ~ .variant-option {
    box-shadow: #0071BC 0 0 4px, #0071BC 0 0 4px, #0071BC 0 0 4px;
}

@media only screen and (max-width: 620px) {
    nav a#logo > img {
        height: 24px !important;
    }

    nav a:not(#logo) > img {
        height: 12px !important;
    }

    nav a {
        margin: 0 6px;
    }

    .showcase-image {
        width: 340px;
    }
}

@media only screen and (max-width: 660px) {
    #portfolio-nav {
        grid-template-columns: none;
        grid-template-rows: 1fr 1fr;
    }

    #portfolio-nav > div {
        margin: 0 10% 0;
    }

    #port-thumbs > div img {
        width: 46% !important;
        margin: 0 6px 6px 0;
    }
}

@media only screen and (max-width: 740px) {
    nav a#logo > img {
        height: 32px;
    }

    nav a:not(#logo) > img {
        height: 20px;
    }

    footer {
        font-size: 0.8em;
        display: block;
    }

    #portfolio-nav {
        margin-bottom: 240px;
    }

    div#journal-list, div#journal-preview {
        display: block;
    }

    #journal-list > p.datetime, #journal-preview > p.datetime {
        text-align: left;
    }
    #journal-list > p:not(.datetime), #journal-preview > p:not(.datetime) {
        padding-left: 40px;
        padding-bottom: 10px;
    }

    body > :not(nav, footer) {
        margin-top: 80px !important;
    }

    #preview-thumbs img {
        width: 46%;
    }

    #preview-thumbs {
        text-align: center;
    }
}

@media only screen and (max-width: 820px) {
    iframe {
        width: 362px !important;
        height: 204px !important;
    }
}

@media only screen and (max-width: 900px) {
    #port-thumbs > div img {
        width: 30%;
    }
}

@media only screen and (max-width: 992px) {
    #showcase {
        display: block;
    }

    #sport-name, .radio-circles, #supplementary-work, #showcase > div:first-of-type {
        text-align: center;
    }

    .radio-circles {
        margin-left: 0;
        margin-right: 0;
    }

    #supplementary-work, #showcase > div:first-of-type {
        padding-bottom: 10px;
    }

    #showcase > div:first-of-type {
        width: 100%;
    }

    iframe {
        width: 640px;
        height: 360px;
    }
}

@media only screen and (max-width: 1200px) {
    body > :not(nav, footer) {
        margin: 100px 10% 0;
    }

    #preview-thumbs img {
        margin: 0 8px 8px 0;
    }
}
