html {
    font-family: -apple-system, BlinkMacSystemFont, 
                 'Segoe UI', Roboto,
                 'Helvetica Neue', Helvetica,
                 Arial, sans-serif;
    font-size: 16px;
    height: 100%;
}

body {
    margin: 0;
    padding: 0;
    height: 100%;
}

a {
    color: inherit;
}

header, footer {
    height: 48px;
    background: #24221c;
    color: white;
}

header .container, footer .container {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 16px;
}

header .icon {
    width: 20px;
    height: 20px;
    margin-right: 10px;
    display: inline;
    fill: white;
}
header .links a:last-child .icon {
    margin-right: 0;
}

main {
    overflow-x: hidden;
    margin: 0 auto;
    position: relative;
}

.content-section {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 192px 0;
    text-align: right;
    background: linear-gradient(135deg, #c8c4b7 0%, #918a6f 100%);
    color: #c8c4b7;
    border-color: #918a6f;
}

.content-section:before {
    flex: 25% 0 0;
    display: block;
    box-sizing: border-box;
    content: '*';
    font-size: 96px;
    color: #484537;
    text-align: center;
    font-weight: 800;
}

.content-section:after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(25% - 18px);
    width: 36px;
    background: url('../images/vines_green.svg?v=1.1.0');
    background-repeat: repeat-y;
}

.content-container {    
    flex: 75% 0 0;
    padding: 0 48px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.content-heading {
    padding: 24px 0;
    margin: 0;
    font-size: 24px;
    font-weight: 500;
    width: 100%;
    text-transform: uppercase;
}

ul.content-list {
    list-style: none;
    margin: 0;
    padding: 24px 0;
    width: 100%;
    font-family: ui-monospace, 
             Menlo, Monaco, 
             "Cascadia Mono", "Segoe UI Mono", 
             "Roboto Mono", 
             "Source Code Pro",
             "Courier New", monospace;
}

.content-section:nth-child(3n + 1) {
    background: linear-gradient(135deg, #c8c4b7 0%, #918a6f 100%);
    color: #24221c;
}

.content-section:nth-child(3n + 1):before {
    color: #918a6f;
}

.content-section:nth-child(3n + 1):after {
    background-image: url('../images/vines_tan.svg?v=1.1.0');
}

.content-section:nth-child(3n + 2) {
    background: linear-gradient(135deg, #536c5d 0%, #37483e 100%);
    color: #dbe3de;
}

.content-section:nth-child(3n + 2):before {
    color: #37483e;
}

.content-section:nth-child(3n + 2):after {
    background-image: url('../images/vines_green.svg?v=1.1.0');
}

.content-section:nth-child(3n + 3) {
    background: linear-gradient(135deg, #53676c 0%, #374548 100%);
    color: #dbe2e3;
}

.content-section:nth-child(3n + 3):before {
    color: #374548;
}

.content-section:nth-child(3n + 3):after {
    background-image: url('../images/vines_blue.svg?v=1.1.0');
}

.content-section#ben-lucas:before {
    content: '{}';
}

.content-section#professional-interests:before {
    content: '*';
}

.content-section#other-interests:before {
    content: '&';
}

.content-section#superpowers:before  {
    content: '+';
}

.content-section#dislikes:before {
    content: '!';
}

.content-section#not-found:before {
    content: '?';
}

.content-section[data-transition="true"]:after {
    opacity: 0;
    transition: opacity .5s ease-in;
}

.content-section[data-transition="true"].scrolled:after {
    opacity: 1;
}
.content-section[data-transition="true"]:nth-child(2n + 1) .content-container {
    opacity: 0;
    transition: opacity 1s ease-in;
}

.content-section[data-transition="true"]:nth-child(2n + 1).scrolled .content-container {
    opacity: 1;
}

.content-section[data-transition="true"]:nth-child(2n + 2) .content-container {
    transform: translateX(1000px);
    opacity: 0;
    transition: transform .5s ease-in, opacity .5s ease-in;
}

.content-section[data-transition="true"]:nth-child(2n + 2).scrolled .content-container {
    opacity: 1;
    transform: translateX(0);
}

@media screen and (min-width: 668px) {

    .content-heading {
        letter-spacing: 8px;
    }
    ul.content-list li {
        display: inline;
    }

    ul.content-list li:after {
        content: '//';
        margin: 0 1em;
        font-weight: 300;
    }

    ul.content-list li:last-child:after {
        content: '';
        margin: 0;
    }
}