@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,300italic,400italic");
@import url("fontawesome-all.min.css");

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: inherit;
    font-size: 100%;
    vertical-align: baseline;
}

html {
    box-sizing: border-box;
}

*, *::before, *::after {
    box-sizing: inherit;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
    display: block;
}

body {
    line-height: 1;
    -webkit-text-size-adjust: none;

    background:
        url("images/overlay.png"),
        url("images/bg.jpg") no-repeat;
    background-size: auto, 100% 100%;
    background-attachment: fixed;
    overflow-y: scroll;

    font-family: "Source Sans Pro", sans-serif;
    font-weight: 300;
    color: #777;
    font-size: 20pt;
    line-height: 1.5em;
}

body.is-preload *,
body.is-preload *::before,
body.is-preload *::after {
    animation: none !important;
    transition: none !important;
}

body, input, textarea, select {
    font-family: "Source Sans Pro", sans-serif;
    font-weight: 300;
    color: #777;
}


body {
    --text-scale: 0.8;
}

p,
ul,
ol,
dl,
table,
blockquote,
form,
input,
textarea,
select {
    font-size: 0.8em;
}

strong,
b,
h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: 400;
    color: #363636;
}

h1 {
    font-size: calc(1.92em * 0.8);
    letter-spacing: -.015em;
}

h2 {
    font-size: calc(1.44em * 0.8);
    letter-spacing: -.015em;
}

h3, h4, h5, h6 {
    font-size: calc(1em * 0.8);
    letter-spacing: -.015em;
}

blockquote {
    border-left: solid .5em #ddd;
    padding: 1em 0 1em 2em;
    font-style: italic;
}

em, i {
    font-style: italic;
}

hr {
    border: 0;
    border-top: solid 1px #ddd;
    padding: 1.5em 0 0;
    margin: 1.75em 0 0;
}

sub, sup {
    position: relative;
    font-size: .8em;
}

sub { top: .5em; }
sup { top: -.5em; }

br.clear {
    clear: both;
}

p, ul, ol, dl, table, blockquote, form {
    margin-bottom: 2em;
}


/*ROW / GRID*/

.row {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    box-sizing: border-box;
}

.row > * {
    box-sizing: border-box;
}

.row.gtr-uniform > * > :last-child {
    margin-bottom: 0;
}


/* Alignment */

.row.aln-left   { justify-content: flex-start; }
.row.aln-center { justify-content: center; }
.row.aln-right  { justify-content: flex-end; }

.row.aln-top    { align-items: flex-start; }
.row.aln-middle { align-items: center; }
.row.aln-bottom { align-items: flex-end; }

.row > .imp {
    order: -1;
}


/* Columns */

.row > .col-1  { width: 8.333333%; }
.row > .col-2  { width: 16.666667%; }
.row > .col-3  { width: 25%; }
.row > .col-4  { width: 33.333333%; }
.row > .col-5  { width: 41.666667%; }
.row > .col-6  { width: 50%; }
.row > .col-7  { width: 58.333333%; }
.row > .col-8  { width: 66.666667%; }
.row > .col-9  { width: 75%; }
.row > .col-10 { width: 83.333333%; }
.row > .col-11 { width: 91.666667%; }
.row > .col-12 { width: 100%; }


/* Offsets */

.row > .off-1  { margin-left: 8.333333%; }
.row > .off-2  { margin-left: 16.666667%; }
.row > .off-3  { margin-left: 25%; }
.row > .off-4  { margin-left: 33.333333%; }
.row > .off-5  { margin-left: 41.666667%; }
.row > .off-6  { margin-left: 50%; }
.row > .off-7  { margin-left: 58.333333%; }
.row > .off-8  { margin-left: 66.666667%; }
.row > .off-9  { margin-left: 75%; }
.row > .off-10 { margin-left: 83.333333%; }
.row > .off-11 { margin-left: 91.666667%; }
.row > .off-12 { margin-left: 100%; }


/* Gutters */

.row.gtr-0 {
    margin: 0;
}

.row.gtr-0 > * {
    padding: 0;
}

.row.gtr-25 {
    margin: -.3125em 0 0 -.3125em;
}

.row.gtr-25 > * {
    padding: .3125em 0 0 .3125em;
}

.row.gtr-50 {
    margin: -.625em 0 0 -.625em;
}

.row.gtr-50 > * {
    padding: .625em 0 0 .625em;
}

.row:not(.gtr-0):not(.gtr-25):not(.gtr-50):not(.gtr-150):not(.gtr-200) {
    margin: -1.25em 0 0 -1.25em;
}

.row:not(.gtr-0):not(.gtr-25):not(.gtr-50):not(.gtr-150):not(.gtr-200) > * {
    padding: 1.25em 0 0 1.25em;
}

.row.gtr-150 {
    margin: -1.875em 0 0 -1.875em;
}

.row.gtr-150 > * {
    padding: 1.875em 0 0 1.875em;
}

.row.gtr-200 {
    margin: -2.5em 0 0 -2.5em;
}

.row.gtr-200 > * {
    padding: 2.5em 0 0 2.5em;
}


/*RESPONSIVE COLUMNS*/

@media screen and (max-width: 1680px) {

    .row > .imp-xlarge {
        order: -1;
    }

    .row > .col-1-xlarge  { width: 8.333333%; }
    .row > .col-2-xlarge  { width: 16.666667%; }
    .row > .col-3-xlarge  { width: 25%; }
    .row > .col-4-xlarge  { width: 33.333333%; }
    .row > .col-5-xlarge  { width: 41.666667%; }
    .row > .col-6-xlarge  { width: 50%; }
    .row > .col-7-xlarge  { width: 58.333333%; }
    .row > .col-8-xlarge  { width: 66.666667%; }
    .row > .col-9-xlarge  { width: 75%; }
    .row > .col-10-xlarge { width: 83.333333%; }
    .row > .col-11-xlarge { width: 91.666667%; }
    .row > .col-12-xlarge { width: 100%; }

    .row > .off-1-xlarge  { margin-left: 8.333333%; }
    .row > .off-2-xlarge  { margin-left: 16.666667%; }
    .row > .off-3-xlarge  { margin-left: 25%; }
    .row > .off-4-xlarge  { margin-left: 33.333333%; }
    .row > .off-5-xlarge  { margin-left: 41.666667%; }
    .row > .off-6-xlarge  { margin-left: 50%; }
    .row > .off-7-xlarge  { margin-left: 58.333333%; }
    .row > .off-8-xlarge  { margin-left: 66.666667%; }
    .row > .off-9-xlarge  { margin-left: 75%; }
    .row > .off-10-xlarge { margin-left: 83.333333%; }
    .row > .off-11-xlarge { margin-left: 91.666667%; }
    .row > .off-12-xlarge { margin-left: 100%; }
}

@media screen and (max-width: 1280px) {

    .row > .imp-large {
        order: -1;
    }

    .row > .col-1-large  { width: 8.333333%; }
    .row > .col-2-large  { width: 16.666667%; }
    .row > .col-3-large  { width: 25%; }
    .row > .col-4-large  { width: 33.333333%; }
    .row > .col-5-large  { width: 41.666667%; }
    .row > .col-6-large  { width: 50%; }
    .row > .col-7-large  { width: 58.333333%; }
    .row > .col-8-large  { width: 66.666667%; }
    .row > .col-9-large  { width: 75%; }
    .row > .col-10-large { width: 83.333333%; }
    .row > .col-11-large { width: 91.666667%; }
    .row > .col-12-large { width: 100%; }

    .row > .off-1-large  { margin-left: 8.333333%; }
    .row > .off-2-large  { margin-left: 16.666667%; }
    .row > .off-3-large  { margin-left: 25%; }
    .row > .off-4-large  { margin-left: 33.333333%; }
    .row > .off-5-large  { margin-left: 41.666667%; }
    .row > .off-6-large  { margin-left: 50%; }
    .row > .off-7-large  { margin-left: 58.333333%; }
    .row > .off-8-large  { margin-left: 66.666667%; }
    .row > .off-9-large  { margin-left: 75%; }
    .row > .off-10-large { margin-left: 83.333333%; }
    .row > .off-11-large { margin-left: 91.666667%; }
    .row > .off-12-large { margin-left: 100%; }
}

@media screen and (max-width: 980px) {

    .row > .imp-medium {
        order: -1;
    }

    .row > .col-1-medium  { width: 8.333333%; }
    .row > .col-2-medium  { width: 16.666667%; }
    .row > .col-3-medium  { width: 25%; }
    .row > .col-4-medium  { width: 33.333333%; }
    .row > .col-5-medium  { width: 41.666667%; }
    .row > .col-6-medium  { width: 50%; }
    .row > .col-7-medium  { width: 58.333333%; }
    .row > .col-8-medium  { width: 66.666667%; }
    .row > .col-9-medium  { width: 75%; }
    .row > .col-10-medium { width: 83.333333%; }
    .row > .col-11-medium { width: 91.666667%; }
    .row > .col-12-medium { width: 100%; }

    .row > .off-1-medium  { margin-left: 8.333333%; }
    .row > .off-2-medium  { margin-left: 16.666667%; }
    .row > .off-3-medium  { margin-left: 25%; }
    .row > .off-4-medium  { margin-left: 33.333333%; }
    .row > .off-5-medium  { margin-left: 41.666667%; }
    .row > .off-6-medium  { margin-left: 50%; }
    .row > .off-7-medium  { margin-left: 58.333333%; }
    .row > .off-8-medium  { margin-left: 66.666667%; }
    .row > .off-9-medium  { margin-left: 75%; }
    .row > .off-10-medium { margin-left: 83.333333%; }
    .row > .off-11-medium { margin-left: 91.666667%; }
    .row > .off-12-medium { margin-left: 100%; }
}

@media screen and (max-width: 736px) {

    .row > .imp-small {
        order: -1;
    }

    .row > .col-1-small  { width: 8.333333%; }
    .row > .col-2-small  { width: 16.666667%; }
    .row > .col-3-small  { width: 25%; }
    .row > .col-4-small  { width: 33.333333%; }
    .row > .col-5-small  { width: 41.666667%; }
    .row > .col-6-small  { width: 50%; }
    .row > .col-7-small  { width: 58.333333%; }
    .row > .col-8-small  { width: 66.666667%; }
    .row > .col-9-small  { width: 75%; }
    .row > .col-10-small { width: 83.333333%; }
    .row > .col-11-small { width: 91.666667%; }
    .row > .col-12-small { width: 100%; }

    .row > .off-1-small  { margin-left: 8.333333%; }
    .row > .off-2-small  { margin-left: 16.666667%; }
    .row > .off-3-small  { margin-left: 25%; }
    .row > .off-4-small  { margin-left: 33.333333%; }
    .row > .off-5-small  { margin-left: 41.666667%; }
    .row > .off-6-small  { margin-left: 50%; }
    .row > .off-7-small  { margin-left: 58.333333%; }
    .row > .off-8-small  { margin-left: 66.666667%; }
    .row > .off-9-small  { margin-left: 75%; }
    .row > .off-10-small { margin-left: 83.333333%; }
    .row > .off-11-small { margin-left: 91.666667%; }
    .row > .off-12-small { margin-left: 100%; }
}


/*TABLE*/

table {
    width: 100%;
}

table.default tbody tr {
    border-bottom: solid 1px #f4f4f4;
}

table.default td,
table.default th {
    padding: .5em 1em;
}

table.default th {
    text-align: left;
    font-weight: 400;
}

table.default thead {
    border-bottom: solid 2px #f4f4f4;
}


/*FORM*/

form label {
    display: block;
    font-weight: 400;
    color: #363636;
    margin-bottom: 1em;
}

form input[type="text"],
form input[type="email"],
form input[type="password"],
form select,
form textarea {
    appearance: none;
    border: 0;
    background: #f4f4f4;
    padding: .75em;
    width: 100%;
    transition: background-color .25s ease-in-out;
}

form input[type="text"]:focus,
form input[type="email"]:focus,
form input[type="password"]:focus,
form select:focus,
form textarea:focus {
    background: #f8f8f8;
}

form input[type="text"],
form input[type="email"],
form input[type="password"],
form select {
    line-height: 1.35em;
}

form ::placeholder {
    color: #999;
}


/*SECTION / ARTICLE*/

section, article {
    margin-bottom: 3em;
}

section > :last-child,
section:last-child,
article > :last-child,
article:last-child {
    margin-bottom: 0;
}

header {
    margin-bottom: 1.5em;
}

header > p {
    margin-top: .5em;
    color: #aaa;
}


/*IMAGE*/

.image {
    display: inline-block;
}

.image img {
    display: block;
    width: 100%;
}

.image.fit,
.image.featured {
    display: block;
    width: 100%;
}

.image.featured {
    margin-bottom: 2em;
}

.image.left {
    float: left;
    margin: 0 2em 2em 0;
}

.image.centered {
    display: block;
    margin-bottom: 2em;
}

.image.centered img {
    width: auto;
    margin: 0 auto;
}


/*BUTTON*/

input[type="button"],
input[type="submit"],
input[type="reset"],
button,
.button {
    appearance: none;
    display: inline-block;
    background: #222;
    color: #fff;
    border: 0;
    cursor: pointer;
    outline: 0;
    padding: .7em 1.5em;
    transition: background-color .25s ease-in-out;
    font-size: .7em;
}

input[type="button"]:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
button:hover,
.button:hover {
    background: #333;
}

input[type="button"]:active,
input[type="submit"]:active,
input[type="reset"]:active,
button:active,
.button:active {
    background: #444;
}

input[type="button"].alt,
input[type="submit"].alt,
input[type="reset"].alt,
button.alt,
.button.alt {
    background: #777;
}

input[type="button"].alt:hover,
input[type="submit"].alt:hover,
input[type="reset"].alt:hover,
button.alt:hover,
.button.alt:hover {
    background: #888;
}

input[type="button"].alt:active,
input[type="submit"].alt:active,
input[type="reset"].alt:active,
button.alt:active,
.button.alt:active {
    background: #999;
}

input[type="button"].small,
input[type="submit"].small,
input[type="reset"].small,
button.small,
.button.small {
    font-size: calc(.75em * 0.8);
}

input[type="button"].large,
input[type="submit"].large,
input[type="reset"].large,
button.large,
.button.large {
    font-size: calc(1.25em * 0.8);
    padding: .5em 1.25em;
}

input[type="button"].xlarge,
input[type="submit"].xlarge,
input[type="reset"].xlarge,
button.xlarge,
.button.xlarge {
    font-size: calc(1.5em * 0.8);
    padding: .5em 1.25em;
}

@media screen and (max-width: 736px) {
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    button,
    .button {
        width: 100%;
    }
}


/*LIST*/

ul {
    list-style: disc;
    padding-left: 1em;
}

ul li {
    padding-left: .5em;
}

ol {
    list-style: decimal;
    padding-left: 1.25em;
}

ol li {
    padding-left: .25em;
}

ul.actions {
    list-style: none;
    padding-left: 0;
}

ul.actions li {
    display: inline-block;
    padding-left: 0;
    margin-left: .5em;
}

ul.actions li:first-child {
    margin-left: 0;
}

@media screen and (max-width: 736px) {
    ul.actions li {
        display: block;
        margin: .75em 0 0;
    }

    ul.actions li:first-child {
        margin-top: 0;
    }
}


/*ICONS*/

.icon {
    position: relative;
    text-decoration: none;
}

.icon::before {
    display: inline-block;
    font-family: "Font Awesome 5 Free";
    font-weight: 400;
    font-style: normal;
    font-variant: normal;
    line-height: inherit;
    text-rendering: auto;
    text-transform: none !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.icon.solid::before {
    font-weight: 900;
}

.icon.brands::before {
    font-family: "Font Awesome 5 Brands";
}

.icon > .label {
    display: none;
}


/*NAV*/

#nav {
    text-align: center;
    height: 4.25em;
    cursor: default;
}

#nav a {
    position: relative;
    display: inline-block;
    color: #fff;
    width: 1em;
    height: 1em;
    line-height: .9em;
    font-size: 2em;

    margin: 0 .25em;
    opacity: .35;
    outline: 0;
    transition: opacity .15s ease-in-out;
}

#nav a.icon::before {
    padding-right: 0;
}

#nav a::before {
    font-size: .8em;
}

#nav a::after {
    content: "";
    display: block;
    position: absolute;
    left: 50%;
    bottom: -.75em;
    margin-left: -.5em;
    border-bottom: solid 0 #fff;
    border-left: solid .5em transparent;
    border-right: solid .5em transparent;
    transition: border-bottom-width .25s ease-in-out;
}

#nav a span {
    display: block;
    position: absolute;
    background: #222;
    color: #fff;
    top: -2.75em;
    left: 50%;
    width: 5.5em;
    height: 2.25em;
    margin-left: -2.75em;
    font-size: .24em;

    line-height: 2.25em;
    opacity: 0;
    transition: opacity .25s ease-in-out;
}

#nav a span::after {
    content: "";
    display: block;
    position: absolute;
    bottom: -.4em;
    left: 50%;
    margin-left: -.6em;
    border-top: solid .6em #222;
    border-left: solid .6em transparent;
    border-right: solid .6em transparent;
}

#nav a:hover,
#nav a.active {
    opacity: 1;
}

#nav a:hover span {
    opacity: 1;
}

#nav a.active::after {
    border-bottom-width: .5em;
}

@media screen and (max-width: 980px) {
    #nav a span {
        display: none;
    }
}


/*WRAPPER*/

#wrapper {
    width: 45em;
    max-width: 100%;
    min-height: 100vh;
    margin: 0 auto;
    padding: 4em 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    transition: opacity 1s ease-in-out;
}

body.is-preload #wrapper {
    opacity: 0;
}

@media screen and (max-width: 1280px) {
    #wrapper {
        padding: 3em 0;
        max-width: calc(100% - 6em);
    }
}

@media screen and (max-width: 980px) {
    #wrapper {
        padding: 1.5em 0;
        max-width: calc(100% - 8em);
    }
}

@media screen and (max-width: 736px) {
    #wrapper {
        padding: 1em 0;
        max-width: calc(100% - 2em);
    }
}

@media screen and (max-width: 360px) {
    #wrapper {
        max-width: 100%;
    }
}


/*MAIN*/

#main {
    position: relative;
    overflow: hidden;
    width: 100%;
    background: #fff;
    box-shadow: 0 1px 0 rgba(0, 0, 0, .25);
    transition: min-height .5s ease-in-out, max-height .5s ease-in-out;
}

#main > .panel {
    position: relative;
    width: 100%;
    margin-bottom: 0;
    padding: 3.5em 2.5em 2.5em;
    transition: opacity .25s ease-in-out;
}

#main > .panel.inactive {
    opacity: 0;
}

@media screen and (max-width: 736px) {
    #main > .panel {
        padding: 2em 1.5em 1.5em;
    }
}


/*INTRO*/

#main > .panel.intro {
    display: flex;
    flex-direction: row;
    align-items: center;
    height: 20em;
    padding: 0;
}

#main > .panel.intro .pic {
    position: relative;
    flex: 0 0 17em;
    width: 17em;
    height: 100%;
    text-decoration: none;
}

#main > .panel.intro .pic::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: url("images/overlay.png");
}

#main > .panel.intro .pic img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

#main > .panel.intro .pic .arrow {
    display: block;
    position: absolute;
    right: 0;
    top: 50%;
    z-index: 1;
    width: 2.75em;
    height: 2.75em;
    margin-top: -1.375em;
    background: rgba(0, 0, 0, .75);
    color: #fff;
    text-align: center;
    line-height: 2.75em;

    font-size: 1.2em;

    transition: width .15s ease-in-out, padding-right .15s ease-in-out;
}

#main > .panel.intro .pic .arrow::before {
    position: relative;
    top: .125em;
    padding-right: 0;
}

#main > .panel.intro .pic .arrow span {
    display: block;
    text-indent: -9999px;
}

#main > .panel.intro .pic:hover .arrow {
    width: 3em;
    padding-right: .25em;
}

#main > .panel.intro header {
    flex: 1;
    width: 100%;
    margin-bottom: 0;
    padding: 3.5em 2.5em;
}

#main > .panel.intro header h2,
#main > .panel.intro header h1 {
    display: inline;
    margin: 0;
}

#main > .panel.intro header h2 {
    margin-right: 0.4em;
}

#main > .panel.intro header h1 {
    line-height: 1.25em;
}


#main > .panel.intro header p {
    margin: .5em 0 1em;
    letter-spacing: -.0009em;
    line-height: 1.5em;
    font-size: 0.65em;
}

@media screen and (max-width: 980px) {

    #main > .panel.intro {
        flex-direction: column;
        height: auto;
    }

    #main > .panel.intro .pic {
        width: 100%;
        height: 25em;
        flex-basis: auto;
    }

    #main > .panel.intro header {
        padding: 4em;
        text-align: center;
    }
}

@media screen and (max-width: 736px) {

    #main > .panel.intro .pic {
        height: 20em;
    }

    #main > .panel.intro header {
        padding: 2.75em 2em 2.5em;
    }

    #main > .panel.intro header p {
        margin-top: .25em;
        font-size: .8em;
    }
}


/* EXPERIENCE */

#main > .panel.experience {
    padding-bottom: 2.5em;
}

#main > .panel.experience > header {
    margin-bottom: 1.5em;
}

#main > .panel.experience > header h1 {
    line-height: 1.25em;
}

.experience-intro {
    margin: .5em 0 1.5em;
    letter-spacing: -.0009em;
    line-height: 1.5em;
    font-size: 0.65em;
}

.experience-section {
    margin-bottom: 0;
}

.experience-grid {
    display: flex;
    flex-direction: column;
    gap: 2.25em;
}

.experience-item {
    margin: 0;
}

.experience-item header {
    margin-bottom: 1em;
}

.experience-item header h2 {
    margin-bottom: .15em;
    line-height: 1.25em;
}

.experience-item header h3 {
    margin: 0;
    font-size: 0.65em;
    line-height: 1.4em;
    color: #777;
}

.experience-item header p {
    margin-top: .25em;
    font-size: 0.55em;
    line-height: 1.4em;
    color: #aaa;
}

.experience-item > p {
    margin: 0 0 1.15em;
    letter-spacing: -.0009em;
    line-height: 1.5em;
    font-size: 0.65em;
}

.experience-item > p:last-child {
    margin-bottom: 0;
}

@media screen and (max-width: 736px) {

    #main > .panel.experience {
        padding-bottom: 1.5em;
    }

    #main > .panel.experience > header {
        margin-bottom: 1.25em;
    }

    .experience-intro {
        margin: .25em 0 1.25em;
        font-size: .8em;
    }

    .experience-grid {
        gap: 1.75em;
    }

    .experience-item header {
        margin-bottom: .8em;
    }

    .experience-item header h2 {
        font-size: calc(1.375em * 0.8);
    }

    .experience-item header h3 {
        font-size: .75em;
    }

    .experience-item header p {
        font-size: .65em;
    }

    .experience-item > p {
        margin-bottom: 1em;
        font-size: .8em;
        line-height: 1.5em;
    }
}


/* TECHNOLOGIES */

#main > .panel.technologies {
    padding-bottom: 1.5em;
}

.technologies .tech-intro {
    margin-bottom: 1.25em;
    font-size: 0.65em;
    line-height: 1.5em;
}


/* Technology sections */

.technologies .tech-section {
    margin-top: 1.25em;
    margin-bottom: 1.25em;
}

.technologies .tech-section > header {
    position: relative;
    margin-bottom: 0.7em;
    padding-bottom: .4em;
}

.technologies .tech-section > header::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 2.5em;
    border-bottom: solid 2px #ddd;
}

.technologies .tech-section h3 {
    font-size: 0.9em;
    letter-spacing: -.015em;
}


/* Technology grid */

.technologies .tech-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 2.5em;
    row-gap: 1.15em;
}


/* Individual technology */

.technologies .tech-item {
    margin: 0;
}

.technologies .tech-item h4 {
    margin: 0 0 .2em;
    font-size: 0.72em;
    line-height: 1.3em;
    font-weight: 400;
    color: #363636;
}


/* Technology name links */

.technologies .tech-item h4 a,
.technologies .tech-item h4 a:visited {
    color: #363636;
    border-bottom: solid 1px #bbb;
    text-decoration: none;
    transition:
        color .2s ease-in-out,
        border-color .2s ease-in-out;
}

.technologies .tech-item h4 a:hover {
    color: #111;
    border-color: #363636;
}


/* Technology descriptions */

.technologies .tech-item p {
    margin: 0;
    font-size: 0.57em;
    line-height: 1.45em;
    color: #888;
}


/* Links inside descriptions */

.technologies .tech-item p a,
.technologies .tech-item p a:visited {
    color: #888;
    text-decoration: underline;
    text-decoration-color: #bbb;
    text-underline-offset: .15em;
}

.technologies .tech-item p a:hover {
    color: #363636;
}


/* Keeping links neutral */

.technologies a,
.technologies a:visited {
    color: #363636;
}


/* Technology page on smaller screens */

@media screen and (max-width: 736px) {

    #main > .panel.technologies {
        padding-bottom: 1.5em;
    }

    .technologies .tech-intro {
        margin-bottom: 1.25em;
        font-size: .8em;
    }

    .technologies .tech-section {
        margin-top: 1em;
        margin-bottom: 1em;
    }

    .technologies .tech-section > header {
        margin-bottom: .7em;
    }

    .technologies .tech-grid {
        grid-template-columns: 1fr;
        row-gap: 1.25em;
    }

    .technologies .tech-item h4 {
        font-size: .85em;
    }

    .technologies .tech-item p {
        font-size: .75em;
        line-height: 1.5em;
    }
}



/*FOOTER*/

#footer {
    padding-top: 2em;
    color: rgba(255, 255, 255, .45);
    text-align: center;
    font-size: .6em;
}

#footer a {
    color: rgba(255, 255, 255, .65);
    transition: color .25s ease-in-out;
}

#footer a:hover {
    color: #fff;
}

#footer .copyright {
    list-style: none;
    padding-left: 0;
}

#footer .copyright li {
    display: inline-block;
    padding-left: 1em;
    margin-left: 1em;
    border-left: solid 1px rgba(255, 255, 255, .25);
    line-height: 1;
}

#footer .copyright li:first-child {
    padding-left: 0;
    margin-left: 0;
    border-left: 0;
}

@media screen and (max-width: 736px) {
    #footer .copyright li {
        padding-left: .5em;
        margin-left: .5em;
    }
}


/*RESPONSIVE FONT SIZES*/

@media screen and (max-width: 1680px) {
    body, input, textarea, select {
        font-size: 0.8em;
    }
}

@media screen and (max-width: 736px) {
    h1 {
        font-size: calc(1.75em * 0.8);
    }

    h2 {
        font-size: calc(1.375em * 0.8);
    }
}

@media screen and (max-width: 360px) {
    body, input, textarea, select {
        font-size: 0.72em;
    }
}
/* PROJECTS */

.projects .project-intro {
    margin: .5em 0 1.5em;
    letter-spacing: -.0009em;
    line-height: 1.5em;
    font-size: 0.65em;
}

.projects .project-grid {
    display: flex;
    flex-wrap: wrap;
}

.projects .project-item {
    margin: 0;
}

/* Project title */

.projects .project-item h3 {
    margin: 0 0 .35em;
    font-size: 0.8em;
    line-height: 1.25em;
    letter-spacing: -.015em;
}

/* Project subtitle */

.projects .project-item > p strong {
    font-weight: 400;
    color: #363636;
}

.projects .project-item > p:first-of-type {
    margin: 0 0 1em;
    font-size: 0.55em;
    line-height: 1.4em;
    color: #aaa;
}

/* Project description */

.projects .project-item > p:not(:first-of-type) {
    margin: 0 0 1.15em;
    letter-spacing: -.0009em;
    line-height: 1.5em;
    font-size: 0.65em;
    color: #777;
}

.projects .project-item > p:last-child {
    margin-bottom: 0;
}


/* Keep the 3-card layout */

.projects .project-item {
    width: 33.333333%;
}


/* Mobile */

@media screen and (max-width: 980px) {

    .projects .project-item {
        width: 50%;
    }

}

@media screen and (max-width: 736px) {

    .projects .project-item {
        width: 100%;
    }

    .projects .project-item h3 {
        font-size: calc(1.375em * 0.8);
    }

    .projects .project-item > p:first-of-type {
        font-size: .65em;
    }

    .projects .project-item > p:not(:first-of-type) {
        margin-bottom: 1em;
        font-size: .8em;
        line-height: 1.5em;
    }

}
