body {
    background-color: rgb(245, 245, 245);
    font-family: "Oswald", sans-serif;
    margin: 0;
    padding: 0;
}



.page_layout {
    width: 100%;
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    padding: 2rem;
    box-sizing: border-box;
}

.main_left {
    width: 15%;
    display: block;
    text-align: left;
}

.name {
    font-size: 1rem;
    color: black;
    position: fixed;
    top: 2rem;
    left: 2rem;
}

.role {
    display: block;
    position: fixed;
    bottom: 2rem;
    left: 2rem;
}

.role_detail {
    font-size: 1rem;
    color: black;
    padding: 2px;
}

.main_middle {
    width: 60%;
    display: block;
    text-align: center;
}

.statement {
    
    font-size: 10rem;
    font-weight: 700;
    line-height: 95%;
    text-align: center;
    margin-top: 2rem;

    color: rgb(4, 32, 59);
}

.intro {
    width: 80%;
    font-size: 4rem;
    text-align:center;

    margin: 2rem auto;

     color: rgb(4, 32, 59);

}

.projects {
    font-family: "inter", sans-serif;
    display: block;
    margin: 4rem 0;
}

.projects a {
    text-decoration: none;
}

.thumbnail {
    width: 100%;
    margin: 1rem 0;
}

.thumbnail img {
    width: 100%;
    height: auto;
    display: block;
}

.project_explain {
    display: flex;
    justify-content: space-between;
}

.project_title {
    font-size: 2rem;
    color: black;

}

.project_intro {
    width: 60%;
    text-align: right;
    color: black;
}

.project_intro_type {
    font-size: 2rem;
    text-align: right;
    color: black;
}

.project_intro_body {
    font-size: 1.25rem;
    text-align: justify;
    color: black;

}

.main_right {
    width: 15%;
    display: block;
}

.connect {
    font-size: 1rem;
    color: black;
    text-align: right;
    text-decoration: none;
    position: fixed;
    top: 2rem;
    right: 2rem;
}

/* Sits on the same bottom line as .role, on the opposite side. */
.extras {
    display: block;
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    text-align: right;
}

.extras_item {
    display: block;
    font-size: 1rem;
    color: black;
    text-decoration: none;
    padding: 2px;
}

.extras_item:hover {
    opacity: 0.6;
}

/* =====================================================
   Responsive breakpoints
   Tablet and Mobile ranges are mutually exclusive
   (no overlap, no cascade between them) so each block
   is self-contained.
   ===================================================== */

/* =====================
   Tablet (601px - 1024px)
   ===================== */
@media (min-width: 601px) and (max-width: 1024px) {

    .page_layout {
        flex-direction: column;
        gap: 1rem;
        padding: 1.5rem;
    }

    .main_left,
    .main_middle,
    .main_right {
        width: 100%;
    }

    .main_left {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
    }

    .name {
        position: static;
        font-size: 1rem;
    }

    .role {
        position: static;
        text-align: right;
    }

    .connect {
        position: static;
        text-align: left;
        margin-top: 0.5rem;
    }

    .extras {
        position: static;
        text-align: left;
        margin-top: 0.5rem;
    }

    .statement {
        font-size: 6rem;
        margin-top: 1rem;
    }

    .statement-tagline {
        display: inline-block;
        margin-top: 1.5rem;
    }

    .intro {
        width: 100%;
        font-size: 2.25rem;
    }

    .project_title {
        text-align: left;
    }

    .project_explain {
        flex-direction: column;
        gap: 0.75rem;
    }

    .project_intro {
        width: 100%;
        text-align: left;
    }

    .project_intro_type {
        text-align: left;
    }

    .project_intro_body {
        text-align: left;
    }
}

/* =====================
   Mobile (<=600px)
   ===================== */
@media (max-width: 600px) {

    .page_layout {
        flex-direction: column;
        gap: 0.75rem;
        padding: 1rem;
    }

    .main_left,
    .main_middle,
    .main_right {
        width: 100%;
    }

    .main_left {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
    }

    .name {
        position: static;
        font-size: 0.9rem;
    }

    .role {
        position: static;
        text-align: right;
    }

    .connect {
        position: static;
        text-align: left;
        margin-top: 0.5rem;
    }

    .extras {
        position: static;
        text-align: left;
        margin-top: 0.5rem;
    }

    .statement {
        font-size: 3rem;
        margin-top: 1rem;
    }

    .statement-tagline {
        display: inline-block;
        margin-top: 1rem;
    }

    .intro {
        width: 100%;
        font-size: 1.25rem;
        margin: 1.5rem auto;
    }

    .projects {
        margin: 2rem 0;
    }

    .project_title {
        font-size: 1.5rem;
        text-align: left;
    }

    .project_explain {
        flex-direction: column;
        gap: 0.75rem;
    }

    .project_intro {
        width: 100%;
        text-align: left;
    }

    .project_intro_type {
        font-size: 1.25rem;
        text-align: left;
    }

    .project_intro_body {
        font-size: 1rem;
        text-align: left;
    }
}
