.page-wrap {
    align-items: center;
    justify-content: center;

    gap: 30px;
    min-height: 100vh;
}

#top-wrap {
    align-items: center;
    justify-content: center;
    width: 100%;
}

.heart {
    position: fixed;
    height: 20px;
    stroke-width: 2px;
}

.heart path {
    transition: 0.3s;
    stroke: white;
}

.heart:hover {
    cursor: pointer;
}

.heart:hover > path {
    stroke: var(--error);
}

.rose {
    transform: translate(0, -100%);
    position: fixed;
    height: 11px;
    image-rendering: crisp-edges;
    z-index: -1000;
}

.grow-rose {
    animation: grow-rose forwards 0.1s linear;
}

@keyframes grow-rose {
    from {
        z-index: -10;
        transform: translate(0, 0);
    }
    to {
        z-index: -10;
        transform: translate(0, -100%);
    }
}

#heart-perry {
    transform: translate(0, -50px);
    right: calc(50% / 2 + 110px);
}

#color-pallet {
    position: fixed;
    left: 10px;
    gap: 10px;
}

#color-pallet > span > svg {
    border: 3px solid #4f5357;
    cursor: pointer;
}

#terminal {
    height: 50vh;
    width: 50vw;

    background-color: var(--dark-background);
    border-radius: 0 0 5px 5px;

    justify-content: start;
}

#cat {
    position: fixed;
    right: calc(50% / 2);
    width: 110px;
    transform: translate(17%, -77%);
    z-index: -100;
}

#cat-zoe {
    transform: translate(30%, -90%);
    height: 65px;
    position: fixed;
    left: 0;
    z-index: 10;
}

#heart-zoe {
    left: calc(52px + 52px * 0.7);
    transform: translate(0, -40px);
}

#terminal-title-bar {
    align-items: center;
    justify-content: space-between;

    background-color: var(--secondary);
    height: 2.5em;
    border-radius: 5px 5px 0 0;
}

#terminal-content {
    overflow: scroll;
}

#terminal-content-wrap {
    font-size: 14px;
    padding: 8px 10px 8px 10px;
}

@media only screen and (max-width: 600px) {
    #top-wrap {
        flex-direction: column !important;
        gap: 30px;
    }
    #terminal, #terminal-cursor {
        visibility: collapse;
        opacity: 0;
        height: 0;
    }
    #color-pallet {
        flex-flow: row wrap;
        display: flex;
        margin-top: 30px;
        left: auto;
        position: unset;
        flex-direction: row !important;
    }
    #color-pallet:nth-child(3) {
        flex-basis: 50%;
    }
    #projects {
        flex-direction: row !important;
    }
    #cat {
        visibility: hidden;
    }
    #heart-perry {
        visibility: hidden;
    }
    #cat-zoe {
        visibility: hidden;
    }
    #heart-zoe {
        visibility: hidden;
    }
  }

#projects {
    gap: 30px;
    max-width: 80%;
    flex-wrap: wrap;
}

#projects > a {
    color: white;
}

.project {
    gap: 10px;
}

.project > img {
    height: 50px;
}

#footer {
    position: fixed;
    height: 35px;
    width: 100vw;
    bottom: 0;
    background-color: var(--dark-background);
}