*, *::before, *::after {
    box-sizing: border-box;
}

:root {
    background-color: oklch(0.9961 0.0034 325.6);
    font-family: "Funnel Sans", sans-serif;
    line-height: 1.6;
    scroll-behavior: smooth;
    font-size: 1rem;
    color: oklch(12% 0 0);

    --dark-blue: oklch(29.463% 0.06923 254.278);
    --main-blue: oklch(54.518% 0.11072 254.098);
    --light-blue: oklch(91.131% 0.01936 263.055);
    --very-light-blue: oklch(96.106% 0.00713 268.594);
    --white: oklch(96.869% 0.00211 14.324);
}

body {
    margin: 0;
    padding: 0;
    background-color: var(--white);
}

.container {
    max-width: 80rem;
    margin-inline: auto;
    padding-inline: 1.5rem;
}

h1 {
    color: var(--dark-blue);
}

.h1-title-transform {
    text-align: center;
    transform: translate(0, 21.75rem);
}

h2 {
    color: var(--main-blue);
    margin-block-start: 2.5rem;
}

h3 {
    margin: 0;
}

p {
    max-width: 40rem;
}

a {
    color: var(--dark-blue);
}

.icon {
    height: 1rem;
}

.button {
    background-color: var(--main-blue);
    padding-block: .5rem;
    padding-inline: 1rem;
    color: var(--white);
    text-decoration: none;
    font-size: 1.25rem;
    font-weight: bold;
    
    display: inline-block;
    text-decoration: none;
    border-radius: .75rem;

    transition: background-color 0.3s ease-in-out,
    color 0.3s ease-in-out;

    &:hover {
        background-color: var(--light-blue);
        color: var(--main-blue);
    }
}

.button-small {
    padding-block: 0.25rem;
}

.visually-hidden {
    border: 0;
    clip-path: inset(50%);
    height: 1px;
    margin: 0;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.section-title {
    text-align: center;
}

.mt--2 {
    margin-block-start: -2rem;
}

header {
    background-color: var(--dark-blue);    
    .container {
        display: flex;
        align-items: center;
        .logo {
            height: 5rem;
            margin-inline-end: 1rem;
            border-radius: 1rem;
        }
    
        nav {
            ul {
                list-style: none;
                margin-inline-start: -2.5rem;

                li {
                    a {
                        padding-block: .5rem;
                        padding-inline: 1rem;
                        color: var(--white);
                        text-decoration: none;
                        font-size: 1.2rem;
                        font-weight: bold;

                        display: inline-block;
                        text-decoration: none;
                        border-radius: .75rem;
                        transition: background-color 0.3s ease-in-out,
                            color 0.3s ease-in-out;
                    }

                    a:hover {
                        background-color: var(--white);
                        color: var(--dark-blue);
                    }

                    .current-page {
                        text-decoration: underline;                        
                    }
                }
            }
        }
    }
}

main {
    margin-block-end: 2rem;

    .intro {
        display: flex;
        gap: 2rem;
        flex-wrap: wrap;
        justify-content: center;
        margin-block-end: 2rem;

        .text {
            max-width: 40rem;
            text-align: center;
        }

        img {
            border-radius: 10rem;
            border: .25rem solid var(--main-blue);
            height: 15rem;
            margin-block-end: 2rem;
        }
    }

    .labs-cards {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        list-style: none;
        gap: 1.5rem;
        padding: 0;
        margin: 0;

        > li {
            display: flex;
            flex-direction: column;
            position: relative;
            background-color: var(--very-light-blue);
            border-radius: 1rem;
            overflow: hidden;           /*!!!!!*/
            box-shadow: 0 0 .2rem oklch(0 0 0 / .2), 0 0 2rem oklch(0 0 0 / .1);
            width: 18rem;          /*!!!!!*/
            transition: background-color 0.3s ease-in-out,
            color 0.3s ease-in-out;

            &:hover {
                background-color: var(--main-blue);
                color: var(--white);

                .button-small {
                    background-color: var(--white);
                    color: var(--main-blue);
                }
            }
            
            .content {
                margin: 1rem;
    
                .overlay-link {
                    position: absolute;
                    inset: 0;
                    text-indent: 100%;
                    white-space: nowrap;
                    overflow: hidden;
                }
    
                a:not(.overlay-link) {
                    z-index: 10;
                }
            }
        }

        img {
            order: -1;
        }
    }

    .information {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-evenly;
        div {
            background-color: var(--very-light-blue);
            border: .2rem solid var(--main-blue);
            border-radius: 1rem;
            width: 100%;
            height: fit-content;
            padding-inline: .75rem;
            align-items: center;
            margin: 1rem;

            h2 {
                margin-block: 1.25rem;
            }

            ul {
                list-style: none;
                margin-inline-start: -2.5rem;
            }
        }

        .skills ul {
            margin-inline-start: 0;
            list-style: unset;
        }
    }

    .goals-and-preview {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;

        .preview-picture {
            margin-block-start: auto;
            padding-block-start: 1rem;
            img {
                max-width: 95%;
                max-height: 19rem;
                border-radius: 1rem;
                border: .25rem solid var(--main-blue);
            }
        }
    }
}

footer {
    margin-block-start: 5rem;
    padding-block-start: .5rem;
    background-color: var(--light-blue);

    .container {
        display: flex;
        justify-content: center;

        h2 {
            margin-block: 1rem;
        }
    }

    ul {
        list-style: none;
        display: flex;
        flex-wrap: wrap;
        margin-inline-start: -2.4rem;

        li {

            img{
                width: 4rem;
            }
        }
    }

    .copyright {
        color: var(--dark-blue);
        
    }
}

@media (min-width: 345px) {

    .h1-title-transform {
        transform: translate(0, 20rem);
    }
}

@media (min-width: 535px) {
    header {

        .container {
            align-items: center;
            justify-content: space-between;

            .logo {
                margin-block: .75rem;
                margin-inline-end: .1rem;
            }

            nav {
                ul {
                    display: flex;

                    li a {
                        padding-inline: .5rem;
                    }
                }
            }
        }
    }
}

@media (min-width: 600px) {
    header {
        .container {
            align-items: center;
            justify-content: space-between;

            .logo {
                margin-block: .75rem;
                margin-inline-end: .1rem;
            }

            nav ul li a{
                font-size: 1.25rem;
            }
        }
    }

    main {
        .information {
            div {
                width: fit-content;
            }
        }

        .goals-and-preview .preview-picture img {
            max-width: 35rem;
        }
    }
}

@media (min-width: 960px) {
    .center-mobile {
        text-align: start;
    }

    main {
        .intro {
            align-items: center;
            justify-content: start;

            .text {
                text-align: start;
            }
        }

        .h1-title-transform {
            transform: translate(16rem, 4.5rem);
            max-width: 20rem;
        }

        .about-title {
            transform: translate(11.5rem, 3.5rem);
        }

        .information {
            padding-block: 4.5rem;
        }

        .labs-cards {
            justify-content: flex-start;
        }
    }
}