@import url('https://fonts.googleapis.com/css2?family=Marcellus&family=Quicksand&display=swap');


:root {
    --background: rgb(238, 238, 238);
    --base-text: #1f2827;
    --light-text: #ddf0ed;
    --medium-gray: #7b8687;
    --green-accent: #47684a;
    --light-green-accent: #c6ecc9;
    --red-accent: #b4746c;
    --light-blue: #a0b8d1;
    --blue-accent: #6294c8;
}

body {
    margin: 0;
    background-color: var(--background);
    font-family: "Marcellus", sans-serif;
}

a {
    text-decoration: none;
    transition: all 0.5s ease;
}

li {
    list-style-type: none;
}

h1 {
    font-size: 2.5em;
}

h2, h3, h4, h5 {
    font-size: 1.2em;
}

footer {
    background-color: var(--green-accent);
    padding: 35px 0;
}



#main-nav {
    justify-content: space-between;
    height: 100%;
    padding: 1em 0;
}

#header-logo:hover {
    color: var(--green-accent);
}

#hamburger-icon {
    display: none;
}

#heading-container {
    margin-top: 6em;
}

#description{
    font-size: 1.5em;
}

#slogan {
    font-size: 1.2em;
}

#bottom-intro-container {
    justify-content: center;
    height: 20%;
}

#learn-more {
    margin-top: 25px;
}

#projects-heading {
    padding-left: 3em;
}


#contact {
    justify-content: space-evenly;
    height: 50vh;

}

#email {
    color: var(--green-accent);
}

#email:hover {
    color: var(--red-accent);
}

#footer-nav {
    justify-content: space-between;
}

#left-footer-link-container {
    width: 40%;
    justify-content: space-between;   
}

#copyright {
    text-align: center;
}

#about-text-container {
    width: 50%;
}



.container {
    max-width: 85%;
    margin: auto;
}

/* Styles text colors */
.base-text {
    color: var(--base-text);
}

.green-text {
    color: var(--green-accent);
}

.light-text {
    color: var(--light-text);
}

.light-link {
    color: var(--light-text);
}

.quicksand {
    font-family: "Quicksand", sans-serif;
}

.logo {
    font-size: 4em;
}

/* Give shape to all page links */
.link {
    padding: 5px 10px;
    border-radius: 15px;
}

/* Style all links with green hover effect */
.green-link:hover {
    background-color: var(--green-accent);
    color: var(--background);
}

/* Style all links with light hover effect */
.light-link:hover {
    background-color: var(--background);
    color: var(--green-accent);
}

.flex-item {
    display: flex;
    align-items: center;
}

.flex-column {
    flex-direction: column;
}

.main-nav-item {
    margin-left: 75px;
}

.intro {
    height: 90vh;
    justify-content: space-evenly;
}

.top-intro-container {
    width: 100%;
    justify-content: space-between;
    margin: 0 3em;
}

.project-cards-container {
    flex-wrap: wrap;
    justify-content: center;
    margin: 25px 0;
}

.project-card {
    position: relative;
    margin: 0.5em;
    border: 3px solid var(--green-accent);
    height: 350px;
    width: 350px;
    transition: all 0.5s ease;
}

.project-card:hover {
    transform: scale(1.1);
}

.project-image {
    height: 100%;
}

.project-info {
    justify-content: space-evenly;
    background-color: var(--background);
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    opacity: 0;
    transition: all 0.5s ease;
}

.project-card:hover .project-info {
    opacity: 0.95;
}

.project-link {
    background-color: var(--red-accent);
    transition: all 0.5s ease;
}

.project-link:hover {
    background-color: var(--green-accent);
}



.footer-nav-item {
    margin: 0 10px;
}

.footer-link:hover {
    color: var(--light-green-accent);
}



/* Hamburger mobile nav button from Jonathan Suh - https://github.com/jonsuh/hamburgers */
.hamburger {
    padding: 15px 15px;
    display: inline-block;
    cursor: pointer;
    transition-property: opacity, filter;
    transition-duration: 0.15s;
    transition-timing-function: linear;
    font: inherit;
    color: inherit;
    text-transform: none;
    background-color: transparent;
    border: 0;
    margin: 0;
    overflow: visible; 
}
.hamburger:hover,
.hamburger.is-active:hover {
    opacity: 0.7;
}

.hamburger.is-active .hamburger-inner,
.hamburger.is-active .hamburger-inner::before,
.hamburger.is-active .hamburger-inner::after {
    background-color: #000; 
}

.hamburger-box {
    width: 40px;
    height: 24px;
    display: inline-block;
    position: relative; 
}
  
.hamburger-inner {
    display: block;
    top: 50%;
    margin-top: -2px;
}
.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {
    width: 40px;
    height: 4px;
    background-color: #000;
    border-radius: 4px;
    position: absolute;
    transition-property: transform;
    transition-duration: 0.15s;
    transition-timing-function: ease; 
}
.hamburger-inner::before, .hamburger-inner::after {
    content: "";
    display: block; 
}
.hamburger-inner::before {
    top: -10px; 
}
.hamburger-inner::after {
    bottom: -10px; 
}

.hamburger--collapse .hamburger-inner {
    top: auto;
    bottom: 0;
    transition-duration: 0.13s;
    transition-delay: 0.13s;
    transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); 
}
.hamburger--collapse .hamburger-inner::after {
    top: -20px;
    transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear; 
}
.hamburger--collapse .hamburger-inner::before {
    transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19); 
}

.hamburger--collapse.is-active .hamburger-inner {
    transform: translate3d(0, -10px, 0) rotate(-45deg);
    transition-delay: 0.22s;
    transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); 
}
.hamburger--collapse.is-active .hamburger-inner::after {
    top: 0;
    opacity: 0;
    transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear; 
}
.hamburger--collapse.is-active .hamburger-inner::before {
    top: 0;
    transform: rotate(-90deg);
    transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1); 
}


/* Tooltip for email address hover from Florin Pop - https://www.florin-pop.com/blog/2019/05/pure-css-tooltip/ */
.tooltip {
    position: relative;
    text-align: center;
    transition: all 0.5s easse;
}
  
.tooltip::after {
background-color: var(--base-text);
color: var(--light-text);
border-radius: 10px;
font-size: 0.8em;
display: none;
width: 150px;
padding: 10px;
position: absolute;
z-index: 999;
transition: all 0.5s easse;
}

.tooltip::before {
background-color: var(--base-text);
content: ' ';
display: none;
position: absolute;
width: 15px;
height: 15px;
z-index: 999;
transition: all 0.5s easse;
}

.tooltip:hover::after {
display: block;
}

.tooltip:hover::before {
display: block;
}

.tooltip.top::after {
content: attr(data-tooltip);
top: 0;
left: 50%;
transform: translate(-50%, calc(-100% - 10px));
}

.tooltip.top::before {
top: 0;
left: 50%;
transform: translate(-50%, calc(-100% - 5px)) rotate(45deg);
}




/* Media queries for smaller screens */

@media screen and (max-width: 992px) {
    h1 {
        font-size: 2em;
    }

    #description{
        font-size: 1.2em;
    }

    /* #about-text-container {
        width: 80%;
    } */

    .tucker-photo {
        height: 300px;
        width: 300px;
    }
}

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

    footer {
        padding: 35px 0 10px 0;
    }

    #nav-links {
        background-color: var(--background);
        display: none;
        position: absolute;
        top: 0;
        right: -1000;
        height: 100vh;
        width: 100vw;
        margin-top: 5em;
        z-index: 2;
    }

    #hamburger-icon {
        display: block;
    }

    #heading-container {
        text-align: center;
        margin-top: 0;
    }

    #project-container {
        padding-left: 3em;
    }

    #about-text-container {
        width: 100%;
    }

    #bottom-intro-container {
        text-align: center;
    }

    #footer-nav {
        margin-bottom: 25px;
    }


    .container {
        width: 85%;
    }

    .intro {
        height: auto;
    }


    .top-intro-container {
        flex-direction: column;
    }

    .footer-flex {
        flex-direction: column;
        align-items: flex-start;
    }

    .nav-list {
        flex-direction: column;
        justify-content: center;
        margin-top: 1em;
        padding: 0;
    }


    .main-nav-item {
        margin: 2em 0;
    }

    .footer-nav-item {
        margin: 0.4em 0;
    }
}


@media  screen and (max-height: 750px) {
    .intro {
        justify-content: flex-start;
    }
    
    .tucker-photo {
        height: 350px;
        width: 350px;
    }

    #heading-container {
        margin-top: 4rem;
    }

    #bottom-intro-container {
        margin-top: 25px;
    }


}