.title {
    --percent: 0%;
    font-family: system-ui,-apple-system,system-ui,"Helvetica Neue",Helvetica,Arial,sans-serif;
    font-weight: 700;
    font-size: max(13vw, 60px);
    text-align: center;
    width: 90%;
    height: fit-content;
    position: relative;
    left: 5%;
    cursor: pointer;
    transition: transform 0.2s;
    margin-top: calc(40px - 2vw);

    background-color: var(--orange);
    background-image: linear-gradient(to top, rgb(178, 218, 255) 0%, rgb(114, 187, 255) var(--percent), var(--darkest-grey) var(--percent));
    background-repeat: repeat;
    background-position: center;
    letter-spacing: -2px;

    animation: title-gradient 2s cubic-bezier(.61,.04,.29,.98) forwards;
    
    background-clip: unset;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent; 
    -moz-background-clip: text;
    -moz-text-fill-color: transparent;
}

.full-background {
    width: 100%;
    height: fit-content;
    left: 0;
    top: 0;
    background-color: white;
    z-index: -10;
    top: 40px;
    padding: 0;
    padding-bottom: 80px;
    position: relative;
}

.background-divider {
    width: 100%; 
    height: 18px;
    background-image: url("../files/Images/Triangle.svg");
    background-repeat: repeat-x;
    background-size: 80px 20px;
    background-position: 0 -2px;
    background-color: white;
    animation: moving-divider infinite linear 3s, floating-divider infinite ease-in-out 2s;
    position: relative;
}

.body-text {
    font-size: calc(15px + 1.5vw);
    text-align: center;
    width: calc(90% - 40px);
    margin: 80px calc(5% + 20px);
}

.light-mode {
    color: #9e9e9e;
    font-weight: 600;
}

.light-mode.shadow {
    color: #aaa;
    font-size: calc(5px + 2vw);
    font-weight: 700;
}

.cool-text {
    --percent: 0%;
    font-weight: 700;

    background-color: var(--blue);
    background-image: linear-gradient(to right, var(--blue) 0%, var(--baby-blue) var(--percent), var(--darkest-grey) var(--percent));
    background-repeat: repeat;
    background-position: center;
    letter-spacing: -1px;
    
    text-shadow: 0 0 0 rgb(120, 196, 255, 0.2);
    background-clip: unset;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent; 
    -moz-background-clip: text;
    -moz-text-fill-color: transparent;
}

.cool-static-text {
    font-weight: 700;
    background-repeat: repeat;
    background-position: center;
    letter-spacing: -1px;
    background-clip: unset;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent; 
    -moz-background-clip: text;
    -moz-text-fill-color: transparent;
}

.cool-static-text.red { background-image: linear-gradient(to top, #bd5ad1 20%, #e37cf8 100%) }
.cool-static-text.orange { background-image: linear-gradient(to top, var(--orange) 20%, var(--yellow) 100%) }
.cool-static-text.blue { background-image: linear-gradient(to top, var(--blue) 20%, var(--baby-blue) 100%) }
.cool-static-text.white { background-image: linear-gradient(to top, rgb(207, 207, 207) 20%, var(--white) 100%) }
.cool-static-text.green { background-image: linear-gradient(to top, #5dac4a 20%, var(--green) 100%) }

.fav-grid {
    margin: 0 30px 0 30px;
    width: calc(100% - 60px);
    height: fit-content;
    position: relative;
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(max(200px, calc(20% - 16px)), 1fr));
    grid-gap: 20px 20px;
}

.mus-grid {
    margin: 0 30px 0 30px;
    width: calc(100% - 60px);
    height: fit-content;
    position: relative;
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(max(200px, calc(33% - 16px)), 1fr));
    grid-gap: 20px 20px;
}

.grid-item {
    width: calc(100% - 40px);
    height: 350px;
    padding: 20px;
    border-radius: 10px;
    border: 1px solid var(--border-grey);
    box-shadow: 0 0 20px 2px #0a0a0d;
    transition: all 0.2s;
    cursor: pointer;
}

.grid-img {
    height: calc(70%);
    width: 100%;
    position: relative;
    left: 0;
    top: 0;
    object-fit: contain;
    image-rendering: crisp-edges;
}

.grid-description {
    width: 100%;
    height: 30%;
    text-align: center;
    left: 0;
    top: 0;
    margin: 0;
    font-size: calc(15px + 1vw);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-weight: 600;
}

.grid-item:hover {
    background-color: var(--selected);
    transform: translateY(10px);
}

.carousel {
    width: 100%;
    height: fit-content;
    position: relative;
    top: 0;
    left: 0;
}

@media (max-width: 1000px) {
    .carousel > .mid { display: none; }
}

.carousel > .main {
    width: max(300px, 30%);
    position: relative;
    top: 0;
    left: calc(50vw - max(300px, 30%) / 2);
    margin: 0;
    border-radius: 10px;
    box-shadow: 0 0 40px 2px #0a0a0d;
}

.carousel > img {
    transition: rotate 0.15s ease-in-out;
}

.carousel > .mid {
    width: calc(max(300px, 30%) / 2);
    position: relative;
    top: 0;
    left: calc(-0.5 * max(300px, 30%));
    margin-right: 0;
    transform: translate(0, -50%);
    z-index: -2;
    border-radius: 10px;
    box-shadow: 0 0 40px 2px #0a0a0d;
}

.carousel > .mid:nth-child(3) {
    scale: 1.5;
    transform: translate(-20px, -33%);
    margin-right: calc(0.25 * max(300px, 30%));
    z-index: -1;
}
.carousel > .mid:nth-child(4) {
    scale: 1.5;
    transform: translate(20px, -33%);
    z-index: -1;
}

.small-img {
    width: min(40vw, 400px);
    position: relative;
    left: 0;
    top: 0;
    margin: -10px auto;
    display: block;
    border-radius: 20px;
    box-shadow: 0 0 20px grey;
}

.mid-img {
    width: min(60vw, 600px);
    position: relative;
    left: 0;
    top: 0;
    margin: -10px auto;
    display: block;
    border-radius: 20px;
    box-shadow: 0 0 20px grey;
}

@keyframes moving-divider {
    0% {
        background-position: 0 -2px;
        transform: translateY(-1px);
    }
    100% {
        background-position: 80px -2px;
        transform: translateY(-1px);
    }
}

@property --percent {
    syntax: "<percentage>";
    inherits: false;
    initial-value: 0%;
}

@keyframes title-gradient {
    0% {
        --percent: 0%;
        text-shadow: 0 0 80px rgb(113, 186, 255);
    }
    100% {
        --percent: 80%;
        text-shadow: 0 0 40px rgba(113, 186, 255, 0.5);
    }
}

@keyframes cool-gradient {
    100% {
        --percent: 100%;
    }
}

@keyframes floating-divider {
    0% {
        transform: translateY(-1px);
    }
    50% {
        transform: translateY(-1px);
    }
    100% {
        transform: translateY(-1px);
    }
}