html{
    font-size: 2.5vmin;
    font-family: sans-serif;
}
body{
    display: flex;
}
.centerContainer{
    margin: 0 auto;
}
.hidden{
    display: none;
}
.hidden-animated{
    transform: scale(0)!important;
}

/* mobile menu */
.mobileMenu{
    position: absolute;
    right: 0;
    top: 0;
}
.mobileMenu .icon{
    font-size: 3em;
}
.mobileMenu .menuContent{
    text-align: center;
    display: flex;
    flex-direction: column;
    height: 100vh;
}
.mobileMenu .menuItem{
    height: 100%;
    display: flex;
    flex-direction: column;
    background-color: lavender;
}
.mobileMenu .menuItem:before,.mobileMenu .menuItem:after{
    content: '';
    height: 100%;
    width: 80%;
    position: relative;
    left: 10%;
}
.mobileMenu .menuItem:before{
    border-top: 1px solid blue;
}
.mobileMenu .menuItem:after{
    border-bottom: 1px solid blue;
}

/*end mobile menu */

/* desktop menu */

#nav{
    position: sticky;
    top: 0px;
    float: left;
    width: 100%;
    z-index: 1;
}

.desktopMenu .menuContent{
    display: flex;
    background-color: black;
}
.desktopMenu .menuItem{
    width: 100%;
    margin: 1%;
    color: white;
    text-align: center;
    border: 1px solid rgba(200,200,200,.5);
    border-width: 0px 1px;
    padding: 1%;
    border-radius: 15%;
    cursor: pointer;
    text-transform: uppercase;
    font-size: 80%;
}
.desktopMenu .menuItem:hover{
    color: lightblue;
}

/* end desktop menu */

/* sections */

.centerContainer > * > .title{
    font-size: 5em;
    text-align: center;
    color: white;
    text-shadow: 2px 2px 4px black;
    padding: 2% 0%;
}

#skills, #projects, #articles, #experimentsAndFun, #guides, #contact{
    min-height: 80vh;
}
#nav .menuItem.selected{
    border-right-width: 10px;
    border-left-width: 10px;
}
/* about me section */

#aboutMe{
    background-image: url(../images/background-about-me_2.png);
    background-size: cover;
    background-position: top right;
    min-height: 98vh;
    border-top: 0x solid black;
}

#aboutMe .title{
    font-size: 4em;
    position: absolute;
    left: 50%;
    top: 20%;
    transform: translateX(-50%);
    color: white;
    text-shadow: 3px 3px rgba(61, 61, 150, 0.4);
}
#aboutMe .aboutMeCopy{
    position: absolute;
    bottom: 10%;
    width: 80%;
    left: 10%;
    color: black;
    background-color: rgba(255,255, 255,.8);
    padding: 2%;
    font-size: 1.2em;
    line-height: 1.8em;

}

/* skills section */

#skills .title{
    margin-bottom: 5vh;
}
.skillList{
    display: flex;
    justify-content: space-around;
    text-align: center;
}
.skillList .icon{
    position: relative;
    height: 15vmin;
    width: 15vmin;
    font-size: 8vmin;
    line-height: 15vmin;
    background-color: white;
    border-radius: 50%;
    color: lightskyblue;
    display: inline-block;
    margin-bottom: 2vh;
}

#skills{
    background-color: lightskyblue;
    color: white;
}
#skills > section{
    width: 20%;
}
#skills .sectionTitle{
    font-size: 1.5em;
    font-weight: bold;
    margin: 5% 0%;
}
#skills .item{
    margin: 3% 0%;
}

/* end skills section */

/* project section */

#projects{
    background-image: url(https://storage.needpix.com/rsynced_images/clouds-background-005.jpg);
    background-attachment: fixed;
}
#projects .subtitle{
    text-align: center;
    font-size: 1.5em;
    color: white;
    text-shadow: 2px 2px black;
}
#projects .items{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
}
#projects .item{
    width: 30%;
    display: inline-block;
    height: 50vh;
    background-color: black;
    color: white;
    position: relative;
    overflow: hidden;
    margin-bottom: 10%;
    transform: scale(1);
    transition-duration: 200ms;
}
#projects .item::before{
    content: '';
    background-size: 120% 120%;
    background-position: center;
    filter: blur(3px) grayscale(80%);
    transition-duration: .25s;
    height: 100%;
    width: 100%;
    position: absolute;
    left: 0;
    top: 0;
}
#projects .item:hover::before{
    filter: blur(0px) grayscale(0%);
    background-size: 100% 100%;
}
#projects .titleAndList{
    position: absolute;
    top: 10%;
    left: 10%;
    width: 80%;
    transform: scale(1);
    opacity: 1;
}
#projects .item .title{
    transition-duration: .1s;
    text-shadow: 3px 3px black;
    font-size: 3em;
    margin-bottom: 2%;
}
#projects .item .title > *{
    margin-left: .25em;
    font-size: .5em;
    text-shadow: initial;
}
#projects .item .title > *:first-child{
    margin-left: 1em;
}
#projects .item .techList{

}
#projects .item .techList > *{
    margin: 0% 1%;
    filter: drop-shadow(0px 0px 2px white);
    font-size: 2em;
}
#projects .item .links{
    width: 99%;
    height: 15%;
    background-color: white;
    color: black;
    position: absolute;
    bottom: 0;
    left: .5%;
    display: flex;
    justify-content: space-around;
    transform: translateY(100%);
    transition-duration: .5s;
}
#projects .item:hover .links{
    transform: translateY(0%);
}
#projects .item .links>*{
    transition-duration: .25s;
    transform: translateY(100%);
    transition-delay: 0s;
    margin: auto;
    cursor: pointer;
}
#projects .item .fa:hover{
    transition-duration: .2s;
    transition-delay: 0s;
    color: lime;
}
#projects .item:hover .links>*:nth-child(1){
    transition-delay: .1s;
    transform: translateY(0%);
}
#projects .item:hover .links>*:nth-child(2){
    transition-delay: .3s;
    transform: translateY(0%);
}
#projects .item:hover .links>*:nth-child(3){
    transition-delay: .4s;
    transform: translateY(0%);
}
#projects .fa{
    font-size: 2em;
}
#projects .item:hover .titleAndList{
    transition-duration: .5s;
    transform: scale(3);
    opacity: 0;
}

#projects .filters{
    display: flex;
    justify-content: center;
    margin: 2% 0%;
}
#projects .filters .techContainer > *{
    font-size: 5vmin;
}
#projects .filters .techContainer{
    opacity: .4;
    padding: 1vmin;
    margin: 0 1%;
    background-color: white;
    cursor: pointer;
    border-radius: 10%;
}
#projects .filters .techContainer.active{
    opacity: 1;
}
.testProject::before{
    background-image: url(https://files.realpython.com/media/13-Python-Projects-for-Intermediate-Developers_Watermarked.bb98d44bdb10.jpg);
}
.todoJqueryMysqlProject::before{
    background-image: url(../images/projects/todoexample_still.jpg);
    background-position: top left;
}
.todoJqueryMysqlProject:hover::before{
    background-image: url(../images/projects/todoexample.gif);
    background-position: top left;
}
.todoReactNodeMysqlProject::before{
    background-image: url(../images/projects/todoreactexample_still.jpg);
    background-position: top left;    
}
.todoReactNodeMysqlProject:hover::before{
    background-image: url(../images/projects/todoreactexample.gif);
    background-position: top left;    
}
.tankDesignerProject::before{
    background-image: url(../images/projects/tankdesigner_still.jpg);
    background-position: center;
}
.tankDesignerProject:hover::before{
    background-image: url(../images/projects/tankdesigner.gif);
    background-position: center;
}
.javascriptExerciseProject::before{
    background-image: url(../images/projects/javascriptexercises_still.jpg);
    background-position: center;    
}
.javascriptExerciseProject:hover::before{
    background-image: url(../images/projects/javascriptexercises.gif);
    background-position: center;    
}
.phpMemoryMatchProject::before{
    background-image: url(../images/projects/phpmemorymatch_still.jpg);
    background-position: center;    
}
.phpMemoryMatchProject:hover::before{
    background-image: url(../images/projects/phpmemorymatch.gif);
    background-position: center;    
}
.reactNewsApp::before{
    background-image: url(../images/projects/newsproject_still.jpg);
    background-position: center;    
}
.reactNewsApp:hover::before{
    background-image: url(../images/projects/newsproject.gif);
    background-position: top;    
}
.instagramProject::before{
    background-image: url(../images/projects/instagram_still.png);
    background-position: center;    
}
.instagramProject:hover::before{
    background-image: url(../images/projects/instagram_still.png);
    background-position: center;    
}
.url-shortener::before{
    background-image: url(../images/projects/url-shortener.png);
    background-position: center;    
}
.url-shortener:hover::before{
    background-image: url(../images/projects/urlshortenerdemo.gif);
    background-position: center;    
}

/* end project section */

/* article section */

#articles{

}
#articles .articleList{
    justify-content: space-between;
    display: flex;
    flex-wrap: wrap;
}
#articles .item{
    width: 30vmin;
    height: 30vmin;
    border: 1px solid black;
    margin: 2% 3%;
    position: relative;
    overflow: hidden;
}
#articles .item .title{
    color: black;
    text-align: left;
    padding: 3% 2%;
    transition-duration: .5s;
    z-index: 0;
    position: absolute;
    top: 30%;
}
#articles .item .title::before{
    content: '';
    background-image: linear-gradient(to right, white 0%, white 50%, transparent 100%);
    height: 100%;
    width: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    transform: translateX(0%);
    transition-duration: .5s;
}

#articles .background{
    background-size: 100% 100%;
    background-position: center;
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 100%;
    transition-duration: .75s;
}
#articles .intro{
    position: absolute;
    top: 30%;
    width: 100%;
    text-decoration: none;
}

#articles .intro .line{
    padding: 1% 0% 0% 5%;
    margin-bottom: 3%;
    background-color: white;
    transform: translateX(-100%);
    transition-duration: .5s;
    text-align: left;
    color: blue;
}
#articles .item:hover .background{
    background-size: 120% 120%;
    filter: brightness(70%);
}
#articles .item:hover .title{
    color: transparent;
}
#articles .item:hover .title::before{
    transform: translateX(-100%);
}
#articles .item:hover .line{
    transform: translateX(0%);
}
#articles .item:hover .line:nth-child(1){
    transition-delay: 0s;
}
#articles .item:hover .line:nth-child(2){
    transition-delay: .1s;
}
#articles .item:hover .line:nth-child(3){
    transition-delay: .2s;
}
#articles .item:hover .line:nth-child(4){
    transition-delay: .3s;
}
#articles .item:hover .line:nth-child(5){
    transition-delay: .4s;
}
#articles .smallText{
    font-size: 1.5em;
}

/* end article section */

/* fun stuff section */

#experimentsAndFun{
    background-color: lightseagreen;
}

/* end fun stuff section */

/* guide section */

#guides{
    background-image: url(../images/landscape.png);
    background-size: cover;
    background-position: center;
}

/* end guide section */

/* fun stuff section */

#experimentsAndFun .itemList{
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
}
#experimentsAndFun .item{
    width: 30vmin;
    height: 30vmin;
    background-color: lavender;
    margin: 2% 3%;
    position: relative;
}
#experimentsAndFun .infoContainer{
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    width: 100%;
    height: 100%;
    overflow: hidden;
}
#experimentsAndFun .info{
    margin: auto;
    transform: scale(2);
    transition-duration: .5s;
    width: 50%;
    height: 50%;
    border: 2px solid whitesmoke;
    opacity: 0;
    background-color: rgba(255,255, 255,.8);
}
#experimentsAndFun .info > *{
    position: absolute;
    font-size: 2em;
}
#experimentsAndFun .item:hover .info{
    transform: scale(1);
    opacity: 1;
}
#experimentsAndFun .info > *:nth-child(1){
    left: 5%;
    top: 5%;
}
#experimentsAndFun .info > *:nth-child(2){
    right: 5%;
    top: 5%;
}
#experimentsAndFun .info > *:nth-child(3){
    left: 5%;
    bottom: 5%;
}
#experimentsAndFun .info > *:nth-child(4){
    right: 5%;
    bottom: 5%;
}
#experimentsAndFun .item .background{
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    filter: blur(3px) grayscale(50%);
}
#experimentsAndFun .item .title, #experimentsAndFun .item .description{
    position: relative;
    background-color: darkslategrey;
    color: white;
    transition-duration: .75s;
}
#experimentsAndFun .item:hover .title{
    transform: scaleX(0);
    opacity: 0;
}
#experimentsAndFun .item .description{
    transform-origin: 0% 50%;
}
#experimentsAndFun .item .title{
    transform-origin: 100% 50%;
}
#experimentsAndFun .item:hover .description{
    transform: scaleX(0);
}
#experimentsAndFun .item:hover .background{
    filter: blur(0px) grayscale(0%);
}
#experimentsAndFun .title{
    font-weight: bold;
    text-align: center;
}
#experimentsAndFun .description{
    text-align: center;
}
/* end fun stuff section */

/* guide section */

#guides .itemList{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
}

#guides .item{
    height: 30vmin;
    width: 30vmin;
    background-size: cover;
    background-position: center;
    transition-duration: .75s;
    box-sizing: border-box;
    position: relative;
    overflow: hidden;
    background-color: rgba(0,0,0,.4);
    margin: 2% 3%;
}
#guides .item .title{
    position: absolute;
    left: 97%;
    bottom: 0;
    transition-duration: .5s;
    transform: translateX(-100%);
    color: black;
    text-shadow: 2px 2px white;
    z-index: 1;
    font-size: 3vmin;
    line-height: 6vmin;
    width: auto;

}
#guides .item .subTitle1, #guides .item .subTitle2{
    position: absolute;
}
#guides .item .subTitle1{
    position: absolute;
    opacity: .5;
    font-size: 15vmin;
    left: -5vmin;
    color: white;
}
#guides .item .subTitle2{
    writing-mode: vertical-lr;
    text-orientation: upright;
    font-weight: bold;
    font-size: 5vmin;
    left: 50%;
    top: 10%;
    color: lightseagreen;
    opacity: .3;
}
#guides .item .menu{
    position: absolute;
    right: 0%;
    color: white;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    transform: translateX(100%);
    height: 75%;
    width: 5vmin;
    align-items: center;
    transition-duration: .5s;
    z-index: 1;
    transform-origin: 100% 50%;
}
#guides .item .menu a:visited{
    color: lavender;
}
#guides .item:hover{
    background-color: rgba(255,255,255,1);
}
#guides .item:hover .subTitle{
    color: black;
}

#guides .item:hover .menu{
    transition-duration: .5s;
    transition-delay: .50s;
    transform: translateX(0);
}
#guides .item::after{
    content: '';
    position: absolute;
    box-sizing: border-box;
    left: 0;
    top: 0;
    background-color: rgba(255,255,255,0);
    border: 0px solid black;
    width: 100%;
    height: 100%;
    transition-duration: .5s;
}

#guides .item:hover::after{
    background-color: rgba(255,255,255,.4);
    border-color: black;
    border-style: solid;
    border-width: 2vmin 5vmin 5vmin 2vmin;
}
#guides .item:hover .title{
    left: 3%;
    color: white;
    transform: translateX(0%);
    text-shadow: 2px 2px black;
    transition-duration: .5s;
    transition-delay: .25s;
}
/* end guide section */

/* contact section */
.contactContainer{
    display: flex;
    justify-content: space-around;
}
.contactItem{
    display: inline-block;
    width: 35vmin;
    height: 35vmin;
    text-align: center;
    text-decoration: none;
    font-size: .7em;
}
.contactItem:visited{
    color: blue;
}
.contactItem i{
    font-size:3.5em;
    margin: 5% 2% 10%;
    display: block;
}

/* end contact section*/

/* end sections */

/* modal info */

#modalShadow{
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,.4);
}
#modalBody{
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    background-color: white;
    border: 1px solid grey;
    display: flex;
    min-height: 20vmin;
    min-width: 20vmin;
}
#modalContents{
    margin: auto;
    padding: 2em;
    padding-bottom: 1em;
}
#modalClose{
    position: absolute;
    right: 0;
    top: 0;
    background-color: black;
    cursor: pointer;
    color: white;
    padding: 1%;
}

/* end modal section */

/* coloring */

.fa-js{
    color: #F0DB4F;
    background-color: black;
}
.fa-html5{
    color: #f16529;
}
.fa-css3-alt{
    color: blue;
}
.fa-react{
    color: #61DBFB;
}
.fa-php{
    color: #787CB5;
}
.fa-node{
    color: #66cc33;
}
.fa-aws{
    color: #232F3E;
    color: #FFFFFF;
}
.filters .fa-aws{
    filter: drop-shadow(-1px -1px 3px black);
}
#projects .item .techList .fa-aws{
    filter: drop-shadow(-1px -1px 3px black);
}
.di{
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    height: 1em;
    width: 1em;
    display: inline-block;
}
.di-lambda{
    background-image: url(../images/logos/aws-lambda-1.svg);
}
.di-dynamodb{
    background-image: url(../images/logos/aws-dynamodb.svg);
}
.di-s3{
    background-image: url(../images/logos/aws-s3.svg);
}
.di-iam{
    background-image: url(../images/logos/aws-iam.svg);
}
.customIcon{
    height: 1em;
    width: 1em;
    background-size: contain;
    background-position: center;
    display: inline-block;
}
.customIcon.mysql{
    background-image:url(../images/tech/mysql_PNG9.png);
}
.customIcon.jquery{
    background-image:url(../images/tech/jquery-logo-png--512.png);
}

/* large devices*/
@media (min-width:1200px){
    body{
        margin: 0;
    }
    .centerContainer{
        width: 100%;
    }
}

/* medium devices */
@media (min-width: 992px){
    .centerContainer{
        width: 100%;
    }
}

/*small devices */
@media (max-width: 768px){
    body{
        margin: 0;
    }
    .centerContainer{
        width: 100%;
    }
    #skills {
        min-height: 20vh;
        padding-bottom: 5%;
    }
    #projects .item{
        width: 100%;
        height: 50vh;
    }
    #articles .item{
        width: 90%;
        margin: 1% auto;
        height: 10vh;
    }
    #articles .item .background{
        filter: grayscale(50%) contrast(50%);
    }
    #articles .item .title{
        padding: 5% 2%;
        width: 100%;
        color: white;
        filter: drop-shadow(2px 2px 3px blue);
    }
    #articles .item .title::before{
        background-image: none;
    }

}

/*extra small devices */
@media (max-width: 768px){
    .centerContainer{
        width: 100%;
    }

}

/* templates */

#template{
    display: none;
}