* {
    text-decoration: none;
    -webkit-text-fill-color: black;
    border-color: black;
}

@font-face {
    font-family: "Justice Cond Out";
    src: url("assets/fonts/justicecondout.ttf");
}
@font-face {
    font-family: "Justice Chrome";
    src: url("assets/fonts/justice.ttf");
}

body {
    overflow: scroll;
    background: linear-gradient(-45deg, magenta, #e73c7e, #23a6d5, cyan);
    background-size: 400% 400%;
    animation: gradient 15s ease infinite;
    height: 100vh;
    display: grid;
    grid-template-columns: 1fr 9fr;
    grid-template-areas:
        'header header'
        'main main'
        'main main'
        'aside aside';

}

.textform {
    border: 5px;
    padding: 10px;
    border-style: solid;
    margin-bottom: 20px;
    size-adjust: auto;
    overflow: wrap;
}

a {
    animation-name: onLoad;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    animation-iteration-count: 1;
}


header {

    grid-area: header;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-areas:
        "empty logo empty2";
}

footer {
    width: 100%;
    height: 100%;
    transition: 0.5s;
    grid-area: aside;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 10px;
    content-visibility: visible;
}

main {
    grid-area: main;
    display: flex;
    flex-wrap: wrap;
    justify-self: center;
    gap: 40px;
}

.bars {
    width: 40px;
    height: 40px;
    background-color: gray;
    border: 5px solid gray;
    border-radius: 10px;
}

.bars:hover {
    background-image: linear-gradient(magenta, #e73c7e, #23a6d5, cyan);
    animation-name: deborder;
    animation-timing-function: 1;
    animation-fill-mode: forwards;
    animation-duration: 0.5s;

}

/* As much as i wanted to use transitions they dont work for what i was trying to do */
@keyframes deborder {
    100% {
        scale: 110%
    }
}

.bar {
    padding: 0px;
}

.bar:hover {
    background-image: radial-gradient(magenta, #23a6d5, #e73c7e, cyan);
    border: 0px;
    padding: 5px;
    scale: 110%;
    background-size: 400% 400%;
    animation: gradient 10s ease infinite;
    animation-direction: alternate;
}

.bars:not(:hover) {
    transition: 0.5s;
    scale: 100%;
}


.card {
    background-color: cyan;
    width: 150px;
    height: 25%;
    text-align: center;
    display: flex;
    justify-content: center;
    font-family: Justice Cond Out;
    margin: 1em;
    border: 5px double black;
    align-self: center;
    animation-name: cards;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-duration: 3s;
    animation-timing-function: ease-in-out;
}

.cardAlt {
    background-image: radial-gradient(cyan, magenta, cyan);
    background-size: 400% 400%;
    width: 150px;
    height: 66%;
    text-align: center;
    display: flex;
    justify-content: center;
    font-family: Justice Cond Out;
    margin: 1em;
    border: 5px double black;
    align-self: center;
    animation-name: cards, gradient;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-duration: 3s;
    animation-timing-function: ease-in-out;
}

.cardAlt:nth-child(2) {
    background-image: radial-gradient(magenta, cyan, magenta);
}

.card:hover {
    background-color: cyan;
    width: 150px;
    height: 25%;
    text-align: center;
    display: flex;
    justify-content: center;
    font-family: Justice Cond Out;
    margin: 1em;
    border: 5px double black;
    align-self: center;
    animation-name: cardshov;
    animation-name: cards, cardshov;
    animation-iteration-count: infinite;
    animation-timeline: inherit;
    animation-direction: alternate;
    animation-duration: 3s;
    animation-timing-function: ease-in-out;
    scale: 110%;
}
.cardMult {
    background-image: linear-gradient(90deg,cyan,magenta);
    background-size: 400% 400%;
    width: 150px;
    height: auto;
    text-align: center;
    display: flex;
    justify-content: center;
    font-family: Justice Cond Out;
    margin: 1em;
    border: 5px double black;
    align-self: center;
    animation-name: cards, gradient;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-duration: 3s;
    animation-timing-function: ease-in-out;
}
.cardMult:hover {
    background-image: linear-gradient(90deg,cyan,magenta);
    background-size: 400% 400%;
    width: 150px;
    height: auto;
    text-align: center;
    display: flex;
    justify-content: center;
    font-family: Justice Cond Out;
    margin: 1em;
    border: 5px double black;
    align-self: center;
    animation-name: cardshov;
    animation-name: cards, cardshov, gradient;
    animation-iteration-count: infinite;
    animation-timeline: inherit;
    animation-direction: alternate;
    animation-duration: 3s;
    animation-timing-function: ease-in-out;
    scale: 110%;
}

.logo {
    grid-area: logo;
    animation-name: welcome;
    padding-top: 40px;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-duration: 3s;
    animation-timing-function: ease-in-out;
}
.subtext {
    grid-area: logo;
    animation-name: welcome;
    transform: translateY(200px);
    justify-self: center;
    padding-top: 40px;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-duration: 3s;
    animation-timing-function: ease-in-out;
}

.empty {
    grid-area: empty;
}

.empty2 {
    grid-area: empty2;
}
.back{
    float: left;
    border: 4px lightslategray;
    border-style: solid;
    background-color: lightslategray;
    border-radius:10%;
    font-family: Justice Chrome;
    text-align: left;
}
.back:hover{
    scale:110%;
    transition:0.5s;
}
.back:active{
    scale:100%;
    transition: 0.5s;
}
.back:not(:hover, :active){
    scale:100%;
    transition:0.5s;
}
/* Aside from this forming the base it also is what lets the scanlines go to the edge of the screen! */
.scanlines {
    overflow: hidden;
    position: static;
}

.scanlines:after {
    display: block;
    pointer-events: none;
    content: "";
    position: absolute;
}

.scanlines:before {
    width: 1000%;
    height: 2px;
    z-index: 2147483649;
    background: rgba(0, 0, 0, 0.3);
    opacity: 0.75;
    animation: scanline 6s linear infinite;
}

/* 32 bit unsigned limit for the z-index was totally neccasary */
.scanlines:after {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 2147483648;
    background: linear-gradient(to bottom,
            transparent 50%,
            rgba(0, 0, 0, 0.3) 51%);
    background-size: 100% 4px;
    animation: scanlines 1s steps(60) infinite;
}

@keyframes gradient {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

@keyframes scanline {
    0% {
        transform: translate3d(0, 200000%, 0);
    }
}

@keyframes scanlines {
    0% {
        background-position: 0 25%;
    }
}

@keyframes welcome {
    0% {
        rotate: 2deg;
    }

    100% {
        rotate: -2deg;
    }
}

@keyframes cards {
    0% {
        rotate: 4deg;
    }

    100% {
        rotate: -4deg;
    }
}

@keyframes cardshov {

    50% {
        text-shadow: 1px 1px black, 2px 2px black;
        border-bottom: double 8px black;
        border-right: double 8px black;

    }
}

@keyframes onLoad {
    0% {
        opacity: 0%;
        transform: translateY(10px);
    }

    100% {
        opacity: 100%;
        transform: translateY(0px)
    }
}