@import url('https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap');

@media (max-width: 768px) {
    .courses-grid {
        grid-template-columns: 1fr;
        gap: 4vw;
        padding: 0 5vw;
    }
    .course-box {
        padding: 5vw;
        border-radius: 3vw;
    }
    .course-box h2 {
        font-size: 5vw;
    }
    .course-box p {
        font-size: 4vw;
    }
    #course1 .p1 {
        font-size: 5vw;
    }
    #course1 {
        padding: 5vw 0;
    }
}

body {
    height: 100%;
    min-height: 100%;
    justify-content: center;
    align-items: center;
    background-attachment: fixed;
    margin:0;
    padding:0;
    background: white;
}

.lancelot-regular {
    font-family: "Lancelot", serif;
    font-weight: 400;
    font-style: normal;
}

section {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    width: 100%;
    align-items: center;
}

#Welcome {
    background-image: linear-gradient(to bottom, #ffe1f2 10%, #ffffff 90%);
    display: flex;
    justify-content: space-between;
    flex-direction: row;
    min-height: 100vh; 
    text-align: center;
    align-items: center;
}

#Welcome h1 {
    font-family: 'Phudu';
    font-size: 6vw;
    text-align: center;
    font-weight: 300;
}

#Welcome p {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 150;
}

#Welcome .p1 {
    font-family: 'Montserrat';
    font-size: 1.3vw;
    font-weight: 100;
}

#Welcome img{
    width: 42.5%;
}

#Welcome .text-content {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
}

#Welcome .text-wrapper {
    text-align: center;
    width: 100%;
}

#AboutMe {
    background: white;
    display: flex;
    justify-content: center;
    flex-direction: row;
    min-height: 100vh; 
    text-align: center;
    align-items: center;
}

#AboutMe h1 {
    font-family: 'Phudu';
    font-size: 6vw;
    text-align: center;
    font-weight: 300;
}

#AboutMe p {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 200;
}

#AboutMe .p1 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 400;
}

#AboutMe .text-content {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
}

#AboutMe .text-wrapper {
    text-align: left;
    max-width: 45vw;
    margin-left: 10vw;
}

#AboutMe .mypic {
    width: 25%;
    margin-left: 5vw;
    box-shadow: 0px 0px 1vw #ffb5df;
}

#AboutMe .sparkle {
    width: 10%;
}

#project1 {
    background: white;
    display: flex;
    justify-content: center;
    flex-direction: row;
    min-height: 100vh; 
    text-align: center;
    align-items: center;
}

#project1 h1 {
    font-family: 'Phudu';
    font-size: 6vw;
    text-align: center;
    font-weight: 300;
}

#project1 p {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 200;
}

#project1 .p1 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 400;
}

#project1 .text-content {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
}

#project1 .text-wrapper {
    text-align: left;
    max-width: 45vw;
    margin-right: 6vw;
}

#project1 img {
    width: 75%;
    box-shadow: 0px 0px 1vw #ffb5df;
}

#project1 .image-stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2vw;
}

#project1 .p2 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 200;
}

#project1-1 {
    background: white;
    display: flex;
    justify-content: center;
    flex-direction: row;
    min-height: 100vh; 
    text-align: center;
    align-items: center;
}

#project1-1 h1 {
    font-family: 'Phudu';
    font-size: 6vw;
    text-align: center;
    font-weight: 300;
}

#project1-1 p {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 200;
}

#project1-1 .p1 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 400;
}

#project1-1 .text-content {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
}

#project1-1 .text-wrapper {
    text-align: left;
    max-width: 45vw;
    margin-right: 9vw;
}

#project1-1 img {
    width: 75%;
    box-shadow: 0px 0px 1vw #ffb5df;
}

#project1-1 .image-stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2vw;
}

#project1-1 .p2 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 200;
}

#project2 {
    background: white;
    display: flex;
    justify-content: center;
    flex-direction: row;
    min-height: 100vh; 
    text-align: center;
    align-items: center;
}

#project2 h1 {
    font-family: 'Phudu';
    font-size: 6vw;
    text-align: center;
    font-weight: 300;
}

#project2 p {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 200;
}

#project2 .p1 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 400;
}

#project2 .text-content {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
}

#project2 .text-wrapper {
    text-align: left;
    max-width: 45vw;
    margin-left: 9vw;

}

#project2 img {
    width: 75%;
    box-shadow: 0px 0px 1vw #ffb5df;
}

#project2 .image-stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2vw;
}

#project2 .p2 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 200;
}

#course1 {
    background: white;
    display: flex;
    justify-content: center;
    min-height: 100vh; 
    text-align: center;
    align-items: center;
}

.courses-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3vw;
    width: 100%;
    max-width: 1200px;
}

.course-box {
    padding: 1.5vw;
    border: 1px solid #ffb5df;
    box-shadow: 0px 0px 0.5vw #ffb5df;
    border-radius: 1vw;
    background-color: #ffffff;
}

.course-box h2 {
    font-family: 'Montserrat';
    font-size: 1.3vw;
    margin-bottom: 0.2vw;
    font-weight: 400;
}

.course-box p {
    font-family: 'Montserrat';
    font-size: 1vw;
    font-weight: 100;
    text-align: left;
}

#course1 h1 {
    font-family: 'Phudu';
    font-size: 6vw;
    text-align: center;
    font-weight: 300;
}

#course1 .p1 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 400;
}

#course1 .text-content {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
}

#course1 .text-wrapper {
    text-align: left;
    max-width: 45vw;
    margin-left: 9vw;

}

#course1 img {
    width: 75%;
    box-shadow: 0px 0px 1vw #ffb5df;
}

#course1 .image-stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2vw;
}

#course1 .p2 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 200;
}

#course2 {
    background: white;
    display: flex;
    justify-content: center;
    min-height: 100vh; 
    text-align: center;
    align-items: center;
}

#course2 h1 {
    font-family: 'Phudu';
    font-size: 6vw;
    text-align: center;
    font-weight: 300;
}

#course2 .p1 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 400;
}

#course2 .text-content {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
}

#course2 .text-wrapper {
    text-align: left;
    max-width: 45vw;
    margin-left: 9vw;

}

#course3 h1 {
    font-family: 'Phudu';
    font-size: 6vw;
    text-align: center;
    font-weight: 300;
}

#course3 .p1 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 400;
}

.courses3-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 5vw;
    width: 60%;
    max-width: 1200px;
}

.course3-box {
    padding: 2vw;
    border: 1px solid #ffb5df;
    box-shadow: 0px 0px 0.5vw #ffb5df;
    border-radius: 1vw;
    background-color: #ffffff;
}

.course3-box h2 {
    font-family: 'Montserrat';
    font-size: 1.3vw;
    margin-bottom: 0.2vw;
    font-weight: 400;
}

.course3-box p {
    font-family: 'Montserrat';
    font-size: 1vw;
    font-weight: 100;
    text-align: left;
}

#course2-2 {
    background: white;
    display: flex;
    justify-content: center;
    min-height: 100vh; 
    text-align: center;
    align-items: center;
}

#course2-2 h1 {
    font-family: 'Phudu';
    font-size: 6vw;
    text-align: center;
    font-weight: 300;
}

#course2-2 .p1 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 400;
}

#course2-2 .text-content {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
}

#course2-2 .text-wrapper {
    text-align: left;
    max-width: 45vw;
    margin-left: 9vw;

}

#artwork {
    background-color: #ffffff;
}

#artwork .p1 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 400;
}

.artwork-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    max-width: 1200px;
    margin: 0 auto;
}

.artwork-box {
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.artwork-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.artwork-box img:hover {
    transform: scale(1.05);
}

@media (max-width: 768px) {
    .artwork-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

#resume {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    flex-direction: row;
    min-height: 100vh; 
    text-align: center;
    align-items: center;
}

#resume .resume-img {
    width: 40%;
    height: auto;
    object-fit: cover;
    border-radius: 8px;
    margin-left: 6vw;
    border: 1px solid #ffb5df;
    box-shadow: 0px 0px 0.5vw #ffb5df;
}

#resume .text-wrapper {
    width: 40%;
    margin-right: 6vw;
}

#resume .p1 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 400;
}

#resume .p2 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 400;
    color: #ffb5df;
}

#resume p {
    font-family: 'Montserrat';
    font-size: 1.0vw;
    font-weight: 150;
}

#contact {
    display: flex;
    justify-content: space-between;
    flex-direction: row;
    min-height: 100vh; 
    text-align: center;
    align-items: center;
    background-image: linear-gradient(to top, #ffe1f2 10%, #ffffff 90%);
}

#contact .p1 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 150;
}

#contact .h1 {
    font-family: 'Phudu';
    font-size: 2vw;
    text-align: left;
    font-weight: 300;
}

#contact .text-content {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
}

#contact .text-wrapper {
    text-align: left;
    max-width: 45vw;
    margin-left: 6vw;
}

#contact .mypic {
    width: 50%;
    margin-left: 6vw;
    box-shadow: 0px 0px 1vw #ffb5df;
}

@media (max-width: 768px) {
    #resume {
        flex-direction: column;
    }
    
    #resume .resume-img,
    #resume .text-wrapper {
        width: 100%;
    }
}

#internship {
    background: white;
    display: flex;
    justify-content: center;
    flex-direction: row;
    min-height: 100vh; 
    text-align: center;
    align-items: center;
}

#internship h1 {
    font-family: 'Phudu';
    font-size: 6vw;
    text-align: center;
    font-weight: 300;
}

#internship p {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 200;
}

#internship .p1 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 400;
}

#internship .text-content {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
}

#internship .text-wrapper {
    text-align: left;
    max-width: 45vw;
    margin-left: 9vw;
}

#internship img {
    width: 75%;
    box-shadow: 0px 0px 1vw #ffb5df;
    max-height: 50vh;
}

#internship .image-stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2vw;
}

#internship .p2 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 200;
}

#project3 {
    background: white;
    display: flex;
    justify-content: center;
    flex-direction: row;
    min-height: 100vh; 
    text-align: center;
    align-items: center;
}

#project3 h1 {
    font-family: 'Phudu';
    font-size: 6vw;
    text-align: center;
    font-weight: 300;
}

#project3 p {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 200;
}

#project3 .p1 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 400;
}

#project3 .text-content {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
}

#project3 .text-wrapper {
    text-align: left;
    max-width: 45vw;
    margin-left: 9vw;

}

#project3 img {
    width: 75%;
    box-shadow: 0px 0px 1vw #ffb5df;
}

#project3 .image-stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2vw;
}

#project3 .p2 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 200;
}

@keyframes slideInRight {
    from {
      transform: translateX(100%);
      opacity: 0;
    }
    to {
      transform: translateX(0);
      opacity: 1;
    }
}

@keyframes slideInLeft {
    from {
      transform: translateX(-50%);
      opacity: 0;
    }
    to {
      transform: translateX(0);
      opacity: 1;
    }
}

#course3 {
    background: white;
    display: flex;
    justify-content: center;
    min-height: 100vh; 
    text-align: center;
    align-items: center;
}

#extra {
    background: white;
    display: flex;
    justify-content: center;
    min-height: 100vh; 
    text-align: center;
    align-items: center;
}

#extra h1 {
    font-family: 'Phudu';
    font-size: 6vw;
    text-align: center;
    font-weight: 300;
}

#extra .p1 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    font-weight: 400;
}

.extra-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 5vw;
    width: 85%;
    max-width: 90vw;
}

.extra-box {
    padding: 2vw;
    border: 1px solid #ffb5df;
    box-shadow: 0px 0px 0.5vw #ffb5df;
    border-radius: 1vw;
    background-color: #ffffff;
}

#extra h2 {
    font-family: 'Montserrat';
    font-size: 1.5vw;
    margin-bottom: 0.2vw;
    font-weight: 400;
}

#extra h3 {
    font-family: 'Montserrat';
    font-size: 1.3vw;
    margin-bottom: 0.2vw;
    font-weight: 400;
}

#extra p {
    font-family: 'Montserrat';
    font-size: 1.2vw;
    font-weight: 100;
    text-align: left;
}

#extra img{
    width: 60%;
    margin-top: 2vw;
}

.nav-menu {
    position: absolute;
    top: 10px;
    left: 5%;
    display: flex;
    gap: 6px;
    z-index: 1000;
    align-items: center;
    align-self: center;
    flex: 1;
    justify-content: center;
    flex-direction: row;
    text-align: center;
}

.nav-menu a {
    display: inline-block;
    transition: transform 0.3s ease, opacity 0.3s ease;
    opacity: 0.8;
}

.nav-menu a:hover {
    transform: scale(1.2);
    opacity: 1;
}

.nav-menu img {
    width: 90px;
    height: 90px;
    display: block;
}

.nav-menu.fixed {
    position: fixed;
    background: rgba(255, 255, 255, 0.95);
    padding: 15px 20px;
    border-radius: 50px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

@media (max-width: 768px) {
    .nav-menu {
        top: 20px;
        left: 20px;
        gap: 12px;
    }
    
    .nav-menu img {
        width: 24px;
        height: 24px;
    }
}

@keyframes slideInTop {
    from {
      transform: translateY(-50%);
      opacity: 0;
    }
    to {
      transform: translateY(0);
      opacity: 1;
    }
}

.slide-in-right {
    animation: slideInRight 3s ease-out forwards;
}

.slide-in-top {
    animation: slideInTop 3s ease-out forwards;
}

.slide-in-left {
    animation: slideInLeft 3s ease-out forwards;
}

footer {
    width: 100%;
    background-color: #ffe1f2;
    text-align: center;
    padding: 20px 0;
    font-family: 'Montserrat';
}

@media (max-width: 768px) {

    .courses-grid {
        grid-template-columns: 1fr;
        gap: 5vw;
        width: 90%;
    }
    
    .course-box {
        padding: 5vw;
        border-radius: 3vw;
    }
    
    .course-box h2 {
        font-size: 5vw;
    }
    
    .course-box p {
        font-size: 4vw;
    }

    #Welcome {
        flex-direction: column;
        padding: 5vw;
    }
    
    #Welcome h1 {
        font-size: 10vw;
    }
    
    #Welcome p {
        font-size: 4.5vw;
    }
    
    #Welcome .p1 {
        font-size: 4vw;
    }
    
    #Welcome img {
        width: 80%;
        margin-top: 5vw;
    }

    #AboutMe {
        flex-direction: column;
        padding: 5vw;
    }
    
    #AboutMe h1 {
        font-size: 10vw;
    }
    
    #AboutMe p {
        font-size: 4.5vw;
    }
    
    #AboutMe .p1 {
        font-size: 4.5vw;
    }
    
    #AboutMe .text-wrapper {
        max-width: 90vw;
        margin-left: 0;
        text-align: center;
    }
    
    #AboutMe .mypic {
        width: 60%;
        margin-left: 0;
        margin-top: 5vw;
    }

    #project1 {
        flex-direction: column;
        padding: 5vw;
    }
    
    #project1 h1 {
        font-size: 10vw;
    }
    
    #project1 p, #project1 .p2 {
        font-size: 4.5vw;
    }
    
    #project1 .p1 {
        font-size: 4.5vw;
    }
    
    #project1 .text-wrapper {
        max-width: 90vw;
        margin-right: 0;
        text-align: center;
    }
    
    #project1 img {
        width: 90%;
    }

    #project1-1 {
        flex-direction: column;
        padding: 5vw;
    }
    
    #project1-1 h1 {
        font-size: 10vw;
    }
    
    #project1-1 p, #project1-1 .p2 {
        font-size: 4.5vw;
    }
    
    #project1-1 .p1 {
        font-size: 4.5vw;
    }
    
    #project1-1 .text-wrapper {
        max-width: 90vw;
        margin-right: 0;
        text-align: center;
    }
    
    #project1-1 img {
        width: 90%;
    }

    #project2 {
        flex-direction: column;
        padding: 5vw;
    }
    
    #project2 h1 {
        font-size: 10vw;
    }
    
    #project2 p, #project2 .p2 {
        font-size: 4.5vw;
    }
    
    #project2 .p1 {
        font-size: 4.5vw;
    }
    
    #project2 .text-wrapper {
        max-width: 90vw;
        margin-left: 0;
        text-align: center;
    }
    
    #project2 img {
        width: 90%;
    }

    #project3 {
        flex-direction: column;
        padding: 5vw;
    }
    
    #project3 h1 {
        font-size: 10vw;
    }
    
    #project3 p, #project3 .p2 {
        font-size: 4.5vw;
    }
    
    #project3 .p1 {
        font-size: 4.5vw;
    }
    
    #project3 .text-wrapper {
        max-width: 90vw;
        margin-left: 0;
        text-align: center;
    }
    
    #project3 img {
        width: 90%;
    }

    #internship {
        flex-direction: column;
        padding: 5vw;
    }
    
    #internship h1 {
        font-size: 10vw;
    }
    
    #internship p, #internship .p2 {
        font-size: 4.5vw;
    }
    
    #internship .p1 {
        font-size: 4.5vw;
    }
    
    #internship .text-wrapper {
        max-width: 90vw;
        margin-left: 0;
        text-align: center;
    }
    
    #internship img {
        width: 90%;
    }

    #course2 h1 {
        font-size: 10vw;
    }
    
    #course2 .p1 {
        font-size: 4.5vw;
    }
    
    #course2 .text-wrapper {
        max-width: 90vw;
        margin-left: 0;
    }

    #course2-2 h1 {
        font-size: 10vw;
    }
    
    #course2-2 .p1 {
        font-size: 4.5vw;
    }
    
    #course2-2 .text-wrapper {
        max-width: 90vw;
        margin-left: 0;
    }

    #course3 h1 {
        font-size: 10vw;
    }
    
    #course3 .p1 {
        font-size: 4.5vw;
    }
    
    .courses3-grid {
        grid-template-columns: 1fr;
        width: 90%;
        gap: 5vw;
    }
    
    .course3-box h2 {
        font-size: 5vw;
    }
    
    .course3-box p {
        font-size: 4vw;
    }

    #extra h1 {
        font-size: 10vw;
    }
    
    #extra .p1 {
        font-size: 4.5vw;
    }
    
    .extra-grid {
        grid-template-columns: 1fr;
        width: 90%;
    }
    
    #extra h2 {
        font-size: 5.5vw;
    }
    
    #extra h3 {
        font-size: 5vw;
    }
    
    #extra p {
        font-size: 4vw;
    }

    #artwork .p1 {
        font-size: 4.5vw;
    }

    #resume {
        flex-direction: column;
        padding: 5vw;
    }
    
    #resume .resume-img {
        width: 90%;
        margin-left: 0;
        margin-bottom: 5vw;
    }
    
    #resume .text-wrapper {
        width: 90%;
        margin-right: 0;
        text-align: center;
    }
    
    #resume .p1, #resume .p2 {
        font-size: 4.5vw;
    }
    
    #resume p {
        font-size: 4vw;
    }

    #contact {
        flex-direction: column;
        padding: 5vw;
    }
    
    #contact .p1 {
        font-size: 4.5vw;
    }
    
    #contact .h1 {
        font-size: 6vw;
    }
    
    #contact .text-wrapper {
        max-width: 90vw;
        margin-left: 0;
        text-align: center;
        order: 2;
    }
    
    #contact .mypic {
        width: 80%;
        margin-left: 0;
        order: 1;
        margin-bottom: 5vw;
    }

    #nav-menu {
        left: 50%;
        transform: translateX(-50%);
        gap: 8px;
    }
    
    .nav-menu img {
        width: 60px;
        height: 60px;
    }
}