@keyframes rotation {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(359deg);
    }
}
main {
    background-color: #000;
}
:focus {
    outline: 3px dotted #fff;
    animation-name: outlinecolorpulse;
    animation-duration: 2.4s;
    animation-iteration-count: infinite;
}
.hero-overlay {
    /* Snooping around in my hand-written styles, huh? */
    margin-top:-100vh;
    height: 100vh;
    width:100%;
    overflow-x:hidden;
    overflow-y:hidden;
}
.logo {
    display:block;
    margin: 0;
    width:100%;
    background-position: center center;
    height:100%;
    background-size:contain;
    background-repeat: no-repeat;
    min-height:100vh;
    position:relative;
    z-index: 1;
}
.hero {
    width:100%;
    height:100vh;
    overflow-x:hidden;
    overflow-y:hidden;
}
.bg {
    position: relative;
    z-index:5;
    width:100%;
    height:auto;
    color:#fff;
}
.bg.blue {
    background-color:#4CD6FF;
    color:#000;
}
.bg.blue a {
    color: #000;
}
.bg.blue a.button {
    color: #fff;
}
.bg.blue a.button.disabled {
    color: rgba(0, 0, 0, 0.2);
}
.bg.red {
    background-color:#FA7C64;
    color:#000;
}
.bg.yellow {
    background-color:#FFEAAA;
    color:#000;
}
.bg.black {
    background-color:#000;
    color:#fff;
}
html {
    font-size: calc(16px + 0.5vw);
    font-family: 'Fredoka', sans-serif;
    background-color: #000;
    color: #fff;
}
h1 {
    text-align:center;
}
h2 {
    background-color:rgba(255, 255, 255, 0.2);
    padding: 10px 30px;
    border-radius: 20px 20px 0px 0px;
    width:max-content;
    margin: 0 0 -10px 10px;
    font-weight:300;
}
h3,h4,h5,h6 {
    margin-top: 0;
    margin-bottom: 6px;
}
p,body,footer,header {
    margin: 0;
}
p {
    font-family: 'Nunito', sans-serif;
    line-height: 1.4;
}
.row {
    display: grid;
    grid-auto-columns: 1fr;
    grid-auto-rows: auto;
}
.left {
    grid-area: l;
}
.right {
    grid-area: r;
}
.mid {
    grid-area: m;
}
.spacer {
    height: 90px;
}
.project-card {
    display: grid;
    grid-auto-columns: 1fr;
    grid-auto-rows: auto;
    padding: 30px;
    background-color: rgba(255, 255, 255, 0.2);
    border-radius: 10px;
    margin-top: 10px;
    margin-bottom: 10px;
}
.project-card-title {
    grid-area: title;
}
.project-card-image {
    display: block;
    grid-area: image;
    background-size: cover;
    background-repeat: no-repeat;
    border-radius: 10px;
    min-height: 200px;
    height: auto;
    min-width: 200px;
}
.project-card-buttons {
    grid-area: buttons;
    display: flex;
}
.project-card-text {
    grid-area: text;
}
.button {
    background-color: #000;
    color: #fff;
    padding: 15px 25px;
    border-radius: 10px;
    border: rgba(0, 0, 0, 0) 3px solid;
    width: auto;
    height: min-content;
    margin-bottom: 6px;
    margin-right: 6px;
    text-decoration-color:rgba(255, 255, 255, 0.25);
    font-weight: 800;
}
.button.disabled {
    background-color: rgba(0,0,0,0.1);
    color: rgba(0, 0, 0, 0.2);
}
@keyframes bordercolorpulse {
    0% { border-color: rgb(255, 255, 255); }
    50% { border-color: rgba(0, 0, 0, 0); }
    100% { border-color: rgb(255, 255, 255); }
}
@keyframes outlinecolorpulse {
    0% { outline-color: rgb(255, 255, 255); }
    50% { outline-color: rgba(0, 0, 0, 255); }
    100% { outline-color: rgb(255, 255, 255); }
}
.button:hover {
    animation-name: bordercolorpulse;
    animation-duration: 2.4s;
    animation-iteration-count: infinite;
}
.button.disabled:hover {
    animation: none;
}

@media (max-width: 800px) and (min-width: 0px) {
    .project-card {
        grid-template-areas:
            "title"
            "image"
            "buttons"
            "text";
        grid-gap: 10px;
    }
    .outline-card {
        grid-template-areas:
            "title"
            "image"
            "text";
        grid-gap: 10px;
        grid-auto-columns: 1fr;
    }
    .outline-card-title h3 {
        text-align: center;
    }
    .project-card-buttons {
        flex-direction: column;
    }
    .row {
        grid-template-areas: "m";
        margin-left:10px;
        margin-right:10px;
    }
}
@media (max-width: 1300px) and (min-width: 800px) {
    .project-card {
        grid-template-areas:
            "title title"
            "image buttons"
            "text text";
        grid-gap: 15px;
    }
    .outline-card {
        grid-template-areas:
            "title title"
            "image text";
        grid-gap: 15px;
        grid-auto-columns: auto;
    }
    .outline-card-title h3 {
        text-align: left;
    }
    .project-card-buttons {
        flex-direction: column;
    }
    .row {
        grid-template-areas: "l m m m m m r";
    }
}
@media (min-width: 1300px) {
    .project-card {
        grid-template-areas:
            "title title"
            "image text"
            "image buttons";
        grid-gap: 25px;
    }
    .outline-card {
        grid-template-areas:
            "title title"
            "image text";
        grid-gap: 25px;
        grid-auto-columns: auto;
    }
    .outline-card-title h3 {
        text-align: left;
    }
    .project-card-buttons {
        flex-direction: row;
    }
    .row {
        grid-template-areas: "l m m m r";
    }
}
hr {
    position: relative;
    z-index: 1;
    margin-top: 0px;margin-bottom: 0px;border-bottom: 0px; border-left:0px; border-right:0px;
}
hr.red {
    border-top: 5px solid #FA7C64;
}
hr.yellow {
    border-top: 5px solid #FFEAAA;
}
hr.blue {
    border-top: 5px solid #4CD6FF;
}
.outline-card {
    display: grid;
    grid-auto-rows: auto;
    border: 5px #fff solid;
    background: none;
    padding: 30px;
    border-radius: 10px;
}
.outline-card-text {
    grid-area: text;
}
.outline-card-image {
    grid-area: image;
}
.outline-card-title {
    grid-area: title;
}
.profile {
    border-radius:999px;
    width: 150px;
    height: 150px;
}