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

:root {
    font-size: 62.5%;
    --logo-large: 25vw;
    --logo-small: 15vw;
    --menu-toggle-radius: 8rem;
    --clr-yellow: rgba(255, 229, 131, 1);
    --clr-pink: #D8A0A6;
    --clr-yellow-hover: rgba(255, 245, 208, 1);
    --font-size-12: 1.2rem;
    --font-size-16: 1.6rem;
    --font-size-menu: 2.36rem;
    --font-size-60: 6rem;
}
@media screen and (width < 700px) {
  :root {
    --logo-large: calc(100vw - 2rem);
    --logo-small: 33vw;
    --menu-toggle-radius: 5.5rem;
    --font-size-60: 4rem;
  }
}

img,
picture {
    display: block;
    max-width: 100%;
}

ul {
    list-style: none;
}

@font-face {
    font-family: "HAL-Regular";
    src: url(/assets/fonts/HALFourGrotesk-Regular.otf) format("opentype");
}
@font-face {
    font-family: "HAL-Medium";
    src: url(/assets/fonts/HALFourGrotesk-Medium.otf) format("opentype");
}

html {
    overscroll-behavior: none;
}

body {
    font-size: 1.2rem;
    font-family: "HAL-Regular";
    background-color: white;
    display: flex;
    flex-direction: column;
    min-height: 100dvh;
}

.no-scroll {
  overflow: hidden;
}

/* Desktop Logo */

.desktop_logo {
    position: fixed;
    top: 1rem;
    left: 1rem;
    z-index: 15;
    width: var(--logo-large);
    transition: width 0.15s ease-out;
    mix-blend-mode: difference;
}
.desktop_logo:hover  {
    mix-blend-mode: normal;
}

.desktop_logo svg {
    width: 100%;
    height: auto;
}
.desktop_logo svg path {
    fill: white;
}
.desktop_logo:hover svg path {
    fill: var(--clr-pink);
}

@media screen and (width < 700px) {
    .desktop_logo {
        width: var(--logo-large);
        z-index: 5;
    }
}


/* Menu Toggle */

.menu_toggle {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    border-radius: 50rem;
    background-color: var(--clr-yellow);
    width: var(--menu-toggle-radius);
    height: var(--menu-toggle-radius);
    border: none;
    transition: background-color 0.3s ease;
    z-index: 15;
}
.menu_toggle:hover {
    cursor: pointer;
    background-color: var(--clr-yellow-hover);
    transition: background-color 0.3s ease;
}

/* Menu Overlay */

.menu_overlay {
    background-color: var(--clr-yellow);
    position: fixed;
    width: 100vw;
    height: 100vh;
    display: grid;
    grid-template-columns: 1fr 1fr;
    z-index: 10;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease;
}
@media screen and (width < 700px) {
    .menu_overlay {
        grid-template-columns: 1fr;
    }
}

.menu_overlay.visible {
    opacity: 1;
    visibility: visible;
    transition: opacity 0.3s ease;
}
.menu_overlay a {
    color: inherit;
    text-decoration: none;
    font-size: var(--font-size-menu);
}

body:has(.menu_overlay.visible) .menu_toggle {
    background-color: var(--clr-yellow-hover);
}
body:has(.menu_overlay.visible) .desktop_logo svg path {
    fill: black;
}
body:has(.menu_overlay.visible) .desktop_logo {
    mix-blend-mode: normal;
}

/* Project List */

.project_list {
    grid-column: 2;
    min-height: 100svh;
    overflow-y: scroll;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding-block: 1.5rem;
}

.project_list ul {
    list-style: none;
}
@media screen and (width < 700px) {
    .project_list {
        grid-column: 1;
        margin-inline: 1.5rem;
    }
    .project_list ul {
        margin-top: 0rem;
    }
}

.project_list ul li {
    transition: transform 0.2s ease;
}
.project_list ul li:hover {
    transform: translateX(1rem);
    transition: transform 0.2s ease;
}


/* Footer */

.footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100vw;
    margin-top: auto;
    padding-block: 1.5rem;
}
.footer_content {
    grid-column: 2;
    align-self: start;
}
.footer_content-top {
    display: flex;
    margin-top: 5rem;
}
.footer_content-top > span {
    flex: 1;
}
.footer_content-bottom {
    margin-top: 7rem;
}

@media screen and (width < 700px) {
    .footer {
        position: inherit;
        grid-template-columns: 1fr;
        margin-top: 2rem;
    }
    .footer_content {
        grid-column: 1;
        margin: 1rem;
    }
}

.footer_content-top > span a {
    display: inline-block;
    color: inherit;
    text-decoration: none;
    transition: transform 0.2s ease;
}

.footer_content-top > span a:hover {
    transform: translateX(0.5rem);
    transition: transform 0.2s ease;
}

