
:root{
    --main-color: #ffb235;
    --accent-color: #2E4052;
    --alt-color: #A8591D;
}

* {
    font-family: Arial, Helvetica, sans-serif;
}

html{
    height: 100%;
}

h1, h2 p{
    text-align: left;
    font-style: normal;
}

h1{
    margin-bottom: 0;
}

h2{
    margin-top: 2em;
    margin-bottom: 0;
}

p{
    margin-top: .5em;
}

button{
    cursor: pointer;
}

/* BODY */
body{
    background-color: var(--main-color);
    display: flex;
    flex-direction: column;
    min-height: 100%;
    margin: 0;
}

@media (min-width: 700px) {
    body{
        display: grid;
        grid-template-columns: 10em minmax(250px, 1fr) 10em;
        grid-template-rows: auto 1fr auto;
    }
}

.main-content{
    margin-top: 4em;
    padding-left: 1em;
    padding-right: 1em;
}

@media (min-width: 700px) {
    .main-content{
        padding: 0;
        margin: 0;
        grid-column: 2/3;
    }
    
    .page-text{
        align-items: left;
    }
}

/* END BODY */



/*FOOTER*/
.footer{
    grid-row: 3/4;
    grid-column: 1/4;
    background-color: var(--alt-color);
}

.footer ul{
    list-style: none;
    display: flex;
    margin: 0;
    padding: 0;
    justify-content: center;
    margin-top: 1em;
}

.footer ul::after{
    content: '';
    display: block;
    margin-top: 2.5em;
    position: absolute;
    border-radius: 50%;
    background-color: white;
    height: .15em;
    width: 12em;
}

.footer li{
    margin-left: 1em;
    margin-right: 1em;
    margin-bottom: 0;
}

.footer a{
    color: white;
    text-decoration: none;
    transition: 250ms ease-in-out;
}

.footer a:hover{
    color: var(--accent-color);
}

.footer .contact{
    display: flex;
    justify-content: center;
    font-weight: 100;
    margin-bottom: 1em;
}

.footer .contact i{
    padding-right: .25em;
}

.footer p{
    display: flex;
    justify-content: center;
    font-size: small;
    font-style: oblique;
    margin-top: 2em;
    margin-bottom: .25em;
    font-weight: 50;
    color: white;
    padding: 0;
}

/* small screen */
@media (max-width: 700px){
    .footer{
        display: flex;
        flex-direction: column;
        margin-top: auto;
    }

    .footer ul{
        display: flex;
        justify-content: center;
        margin-top: .5em;
    }
    
    .footer p{
        display: flex;
        margin-top: 1.5em;
        margin-bottom: .5em;
    }

    .footer .contact{
        position: absolute;
        visibility: hidden;        
        /* margin-bottom: .5em; */
    }
}

/* END FOOTER */


/* NAV BAR */
/*
Credit to Kevin Powell tutorial for helping with designing navbar.
https://www.youtube.com/watch?v=8QKOaTYvYUA&t=4s
*/
header{
    background-color: var(--accent-color);
    z-index: 200;
    padding: 1em;
    position: fixed;
    text-align: center;
    width: 100%;
    top: 0;
}

.toggle{
    visibility: hidden;
}

#toggle:checked ~ nav{
    display: block;
    transform: scale(1,1);
    transition: 250ms ease-in-out 50ms;
}

#toggle:checked ~ nav a{
    opacity: 1;
    transition: opacity 150ms ease-in-out 170ms;
}

.toggle-label{
    position: absolute;
    top: 0;
    left: 0;
    margin-left: 1em;
    height: 100%;
    display: flex;
    align-items: center;
}

.toggle-label span,
.toggle-label span::before,
.toggle-label span::after {
  display: block;
  background: white;
  height: 2px;
  width: 2em;
  border-radius: 2px;
  position: relative;
  
}

.toggle-label span::before,
.toggle-label span::after {
  content: '';
  position: absolute;
}

.toggle-label span::before {
    bottom: 7px;
}
  
.toggle-label span::after {
    top: 7px;
}

nav{
    position: absolute;
    left: 0;
    background-color: var(--accent-color);
    width: 100%;
    transform-origin: top;
    transform: scale(1,0);
    transition: 250ms ease-in-out;
}

nav ul{
    padding: 0;
    margin-left: 1em;
    list-style: none;
    text-align: left;
}

nav li{
    margin: 0;
    margin-top: 1em;
    padding: 0;
}

nav a{
    position: relative;
    color: white;
    text-decoration: none;
    font-size: 1em;
    font-weight: 700;
    opacity: 0;
    transition: opacity 150ms ease-in-out;
}

nav a::before{
    content: '';
    height: 1px;
    display: flex;
    justify-content: flex-end;
    background: white;
    position: absolute;
    top: 1.1em;
    left: 0;
    right: 0;
}

nav .visited{
    color: gray;
}

nav .visited::before{
    visibility: hidden;
}

.nav-home{
    color: white;
    text-align: center;
    align-items: center;
    position: relative;
    text-decoration: none;
    font-size: 1.3rem;
    z-index: 999;
    font-weight: 700;
}

/* large screen */
@media (min-width: 700px) {
    .toggle-label{
        display: none;
    }

    .toggle{
        display: none;
    }

    header{
        position: -webkit-sticky;
        position: sticky;
        min-height: 2em;
        grid-row: 1/2;
        grid-column: 1/4;
        padding: 0;
        margin: 0;
    }
    
    nav{
        all:unset;
        display: grid;
        grid-template-columns: 10em auto minmax(400px, 3fr) 10em;
        align-items: left;
    }
    
    nav ul{
        all:unset;
        list-style: none;
        grid-column: span 2;
        display: flex;
        justify-content: flex-end;
        margin: 0;
        padding: 0;
    }
    
    nav li{
        all:unset;
        margin: 5px;
        padding: 5px;
    }
    
    nav a{
        opacity: 1;
        position: relative;
    }
    
    nav a:hover{
        color: grey;
        transition: 150ms ease-in-out;
    }
    
    nav a::before{
        content: '';
        height: 2px;
        display: flex;
        justify-content: flex-end;
        background: white;
        position: absolute;
        top: 1.3em;
        left: 0;
        right: 0;
        transform-origin: right;
        transform: scale(0,1);
        transition: 250ms ease-in-out;
    }
    
    nav a:hover::before{
        transform: scale(1,1);
        animation: grow-in 250ms;
    }

    .nav-home{
        font-size: 1.25rem;
        position: absolute;
        top: .4em;
        left: 8em;
        transition: 250ms ease-in-out;
    }

    .nav-home:hover{
        transform: scale(1.2,1.2);
        color: var(--alt-color);
    }
}

/* END NAV BAR */



/* 
    _MAIN
*/

/* 
    _PROJECTS
*/
.projects h1{
    font-size: calc(1rem + 2vw);
    margin-bottom: 0;
}

.projects p{
    
    margin-top: 0;
}

.card{
    display: grid;
    z-index: 0;
    background-size: cover;
    grid-template-columns: 1fr;
    grid-template-rows: 35% 1fr 13%;
    width:100%; /*container-width*/
    max-width: 800px;
    background-repeat: no-repeat;
    height: 50vh;
    justify-content: center;
    overflow:hidden;
    object-fit: contain;
    border-radius: 5px;
    transition: 250ms ease-in-out;
    margin: 5vh 0 5vh 0;
    box-shadow: 0 0 7px 0 rgb(46,64,82,0.7);
}

.card::after{
    content: '';
    grid-column: 1/2;
    /* Add this back in */
    /* grid-row: 2/3; */
    grid-row: 2/4;
    background: white;
    width: 100%;
    height: 100%;
    transition: 250ms ease-in-out;
    transform-origin: bottom;
}

.card .info{
    grid-column: 1/2;
    /* Add this back in */
    /* grid-row: 2/3; */
    grid-row: 2/4;
    z-index: 2;
    transition: 150ms ease-in-out 130ms;

}

.card h2, .card h3, .card p{
    padding: .5rem .5rem 0 2rem;
    margin: 0;
}

.card h2{
    font-size: calc(1rem + 1vw);
}

.card h3{
    font-size: calc(.5rem + 1vw);
    padding-top: 0;
    font-weight: 100;

}

.card p{
    /* width: 100%; */
    padding-bottom: 1rem;
    padding-top: 1rem;
    padding-right: 2rem;
    font-size: calc(.8rem + 1vw);
    grid-column: 1/2;
}

.card button{
    font-family: Arial, Helvetica, sans-serif;
    grid-row: 3/4;
    border: none;
    background: var(--alt-color);
    color: white;
    width: 100%;
}

.card .details{
    all: unset;
    visibility: hidden;
    z-index: 100;
    background: white;
    border-radius: 5px;
    position: absolute;
    display: block;
    margin: auto;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 95%;
    height: 95%;
}

/* large screen */
@media (min-width: 700px){
    .projects{
        display: grid;
        grid-template-columns: auto 20%;
        grid-template-rows: auto auto auto;
        gap: 2em;
    }

    .page-text{
        grid-column: 1/3;
        grid-row: 1/2;
    }

    .sidefill{
        grid-column: 2/3;
        grid-row: 2/12;
    }

    .card{
        /* cursor: pointer; */
        grid-area: span 1;
        grid-row: span 1;
        margin: 0;
    }

    .card:hover{
        transform: scale(1.02,1.02);
    }

    .card:hover::after{
        transform: scale(1,0);
    }
    
    .card:hover .info{
        opacity: 0;
        transition: 100ms ease-in-out;
    }

    .card .info p{
        font-size: calc(.7rem + 1vw);
        margin-top: 4%;
    }

}

/* 
    _EVENTS
*/


/* 
    _ABOUT
*/

.aboutme{
    margin: 0;
    padding: 0;
}

.pagecontent h1, .pagecontent h2, .pagecontent h3, .pagecontent h4, .pagecontent p{
    margin: 0;
}

.pagecontent ul{
    list-style: none;
}

.about, .action, .education, .skills{
    padding: 2rem 1rem;
}

.about{
    margin-top: 3rem;
    background: var(--alt-color);
    color: white;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 97%);
}

.about h1{
    color: var(--accent-color);
    text-shadow: .05em .05em white;

}

.about h2, .action h2{
    margin-bottom: 1rem;
}

.about i{
    font-style: normal;
    font-weight: 10;
}

.about b{
    font-size: xx-large;
}

.about::after{
    content: '';
    position: absolute;
    clip-path: polygon(0 0, 100% 0, 100% 49%, 0 61%);
    background: var(--main-color);
    width: 100%;
    left: 0;
    right: 0;
    bottom: 0;
    top: 0;
}

.about>*{
    position: relative;
  z-index: 2;
}

.lead{
    display: flex;
    align-items: center;
    flex-direction: column;
}

.facelogo{
    display: flex;
    z-index: 100;
    background: wheat;
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 40%;
    box-shadow: 0 0 7px 0 rgb(46,64,82,0.7);
    width: 15rem;
    height: 15rem;
    margin: 1rem 0;
}

.education, .skills{
    margin: 0 1em 1em;
    border-radius: 10%;
    box-shadow: 0 0 7px 0 rgb(46,64,82,0.7);
    background: white;

}

.education{
    display: flex;

    flex-direction: column;
    justify-content: center;
    text-align: center;

}

.education ul{
    margin: 0;
    padding: 1rem;
}

.education h3, .education h4{
    padding-left: 2rem;
    text-align: left;
}

.education li{
    text-align: left;
    padding-left: 3rem;
}

.education h4{
    font-weight: 100;
}

.skills{
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    color: var(--accent-color);
}

.list{
    display: flex;
    flex-direction: row;
    justify-content: center;
}

.skills ul{
    margin: 0;
    padding: 1rem;
}

.skills ul::before{
    content:attr(aria-label);
    font-size:120%;
    font-weight:bold;
    margin-left:-15px;
}

.skills li{
    text-align: left;
    padding-left: 1rem;
}

/* large screens */
@media (min-width:700px){
    .aboutme{
        grid-column: 1/4;
    }

    .about{
        margin: 0;
    }

    .about::after{
    clip-path: polygon(0 0, 100% 0, 100% 31%, 0 47%);

    }

    .about, .action{
        padding: 2em 10em;
    }

    .about h2{
        text-align: center;
        align-items: center;
    }

    .qualifications{
        display: grid;
        grid-template-columns: 10em minmax(250px, 1fr) 1em minmax(250px, 1fr) 10em;
    }

    .education{
        margin-right: .5rem;
        grid-column: 2/3;
    }

    .skills{
        margin-left: .5rem;
        grid-column: 4/5;
    }

    .education, .skills{
        margin: 0;
        padding: 0;
        width: 100%;
    }

}



/* 
    _CONTACT
*/
.main-content{
    color: var(--accent-color);
}

.contact h1{
    text-align: center;
    font-size: 1.3rem;
    margin-bottom: 0;
}

.contact p{
    font-size: .9rem;
    font-style: oblique;
    text-align: center;
    margin-top: 0;
}

.form-wrapper{
    /* box-shadow: 2px solid var(--accent-color); */
    box-shadow: 0 0 7px 0 rgb(46,64,82,0.7);
    background: white;
    border-radius: 5px;
    padding: 1em;
}

.form-wrapper h1{
    text-align: left;
    margin: 0;
    margin-bottom: .5em;
    font-size: medium;
}

.form-wrapper form{
    display: grid;
    grid-template-columns: .5fr .5fr;
    grid-gap: 10px;

}

.form-wrapper form .required::after{
    content: '*';
    color: rgb(199, 37, 15);
    padding-left: .25em;
}

.form-wrapper p{
    font-weight: 600;
    text-align: left;
    font-size: small;
    font-style: normal;
}

.form-wrapper input{
    width: 90%;
}

.form-wrapper form button, .form-wrapper form textarea{
    width: 100%;
    margin: 0;
}

.form-wrapper .filled{
    grid-column: 1/3;
    padding: 0;
    margin: 0;
}

.form-wrapper form button{
    background-color: var(--alt-color);
    padding: 1em;
    border: none;
    color: white;
    font-weight: 700;
    font-size: medium;
    transition: 150ms ease-in-out;
}

.form-wrapper form button:hover{
    background-color: #a8591db7;
    transition: 150ms ease-in-out;
}

@media (min-width: 700px){
    .main-content{
        margin-bottom: 2em;
    }

    .main-content h1{
        font-size: x-large;
    }

    .main-content p{
        font-size: medium;
        margin-bottom: 2em;
    }

    .form-wrapper h1{
        font-size: large;
        margin-bottom: 1em;
    }

    .form-wrapper label{
        font-size: medium;
    }

    .form-wrapper .filled{
        width: 100%;
    }

    .form-wrapper form input, .form-wrapper form textarea{
        box-sizing: border-box;
        padding: 7px;
    }
}


/* KEYFRAMES */
@keyframes grow-in{
    0%{
        transform-origin: left;
        transform: scale(0,1);
    }

    100%{
        transform-origin: left;
        transform: scale(1,1);
    }
}

@keyframes grow-out{
    0%{
        transform-origin: right;
        transform: scale(1,1);
    }

    100%{
        transform-origin: right;
        transform: scale(0,1);
    }
}

@keyframes flip-box{
    0%{
        transform: rotate(0deg);
      }
    80%{
        transform: rotate(190deg);
    }
    90%{
        transform: rotate(175deg);

    }
    100% {
        transform: rotate(180deg);
    }
}

@keyframes grow-box{
    0%{
        transform: scale(50%);
    }
    80%{
        transform: scale(110%);
    }
    90%{
        transform: scale(95%);

    }
    100%{
        transform: scale(100%);
    }
}

@keyframes body-load{
    0%{
        transform: translateY(-100%);
        transform: translateX(-100%);
    }

    80%{
        transform: translateX(2%);
    }

    100%{
        transform: translateX(0%);
        transform: translateY(0%);
    }
}

/* END KEYFRAMES */
