html,
body {
    height: 100vh;
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

body a {
    text-decoration: none; 
    color: inherit; 
}

body a:visited {
    color: inherit; 
}

body a:hover {
    color: inherit;  
}

.container {
    z-index: 10;
    color: white;
    padding: 20px;
    text-align: center;
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

.card-container {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px 0;
}

.card {
    width: fit-content;
    min-width: 200px;
    padding: 15px 20px;
    margin: 10px 0;
    background-color: rgba(255, 255, 255, 0.3);
    color: white;
    border-radius: 8px;
    font-family: Arial, sans-serif;
}

.subtitle {
    margin-top: -20px;
}

.press-start-2p-regular {
    font-family: "Press Start 2P", system-ui;
    font-weight: 400;
    font-style: normal;
    font-size: 50px;
}

.quantico-regular {
    font-family: "Quantico", sans-serif;
    font-weight: 400;
    font-style: normal;
    color: lightgrey;
}

/* ParticlesJS */
#particles-js {
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: black;
    /* background-image: url("");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 50% 50%; */
}

/* Glitch Effects */
.glitch {
    position: relative;
    color: white;
    letter-spacing: .2em;
    font-variant: small-caps;
    font-weight: bold;
    text-align: center;
    /* Animation provies a slight random skew. Check bottom of doc
	for more information on how to random skew. */
    animation: glitch-skew 1s infinite linear alternate-reverse;
}

@media (max-width: 600px) {
    .glitch {
        font-size: 45px;
    }
}


.glitch::before {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    left: 2px;
    text-shadow: -2px 0 #ff00c1;
    /* Creates an initial clip for our glitch. This works in
		a typical top,right,bottom,left fashion and creates a mask
		to only show a certain part of the glitch at a time. */
    clip: rect(44px, 450px, 56px, 0);
    /* Runs our glitch-anim defined below to run in a 5s loop, infinitely,
		with an alternating animation to keep things fresh. */
    animation: glitch-anim 5s infinite linear alternate-reverse;
}

.glitch::after {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    left: -2px;
    text-shadow: -2px 0 #00fff9, 2px 2px #ff00c1;
    animation: glitch-anim2 1s infinite linear alternate-reverse;
}


/* Creates an animation with 20 steaps. For each step, it calculates 
a percentage for the specific step. It then generates a random clip
box to be used for the random glitch effect. Also adds a very subtle
skew to change the 'thickness' of the glitch.*/

@keyframes glitch-anim {
    0% {
        clip: rect(62px, 9999px, 76px, 0);
        transform: skew(0.81deg);
    }

    5% {
        clip: rect(16px, 9999px, 71px, 0);
        transform: skew(0.68deg);
    }

    10% {
        clip: rect(45px, 9999px, 63px, 0);
        transform: skew(0.07deg);
    }

    15% {
        clip: rect(85px, 9999px, 96px, 0);
        transform: skew(0.5deg);
    }

    20% {
        clip: rect(81px, 9999px, 74px, 0);
        transform: skew(0.05deg);
    }

    25% {
        clip: rect(32px, 9999px, 26px, 0);
        transform: skew(0.1deg);
    }

    30% {
        clip: rect(36px, 9999px, 76px, 0);
        transform: skew(0.66deg);
    }

    35% {
        clip: rect(65px, 9999px, 75px, 0);
        transform: skew(0.46deg);
    }

    40% {
        clip: rect(13px, 9999px, 40px, 0);
        transform: skew(0.33deg);
    }

    45% {
        clip: rect(31px, 9999px, 14px, 0);
        transform: skew(0.98deg);
    }

    50% {
        clip: rect(1px, 9999px, 17px, 0);
        transform: skew(0.58deg);
    }

    55% {
        clip: rect(93px, 9999px, 59px, 0);
        transform: skew(0.35deg);
    }

    60% {
        clip: rect(25px, 9999px, 8px, 0);
        transform: skew(0.44deg);
    }

    65% {
        clip: rect(3px, 9999px, 38px, 0);
        transform: skew(0.69deg);
    }

    70% {
        clip: rect(100px, 9999px, 49px, 0);
        transform: skew(0.41deg);
    }

    75% {
        clip: rect(58px, 9999px, 26px, 0);
        transform: skew(0.73deg);
    }

    80% {
        clip: rect(28px, 9999px, 72px, 0);
        transform: skew(0.06deg);
    }

    85% {
        clip: rect(46px, 9999px, 52px, 0);
        transform: skew(0.65deg);
    }

    90% {
        clip: rect(16px, 9999px, 93px, 0);
        transform: skew(0.72deg);
    }

    95% {
        clip: rect(88px, 9999px, 4px, 0);
        transform: skew(0.01deg);
    }

    100% {
        clip: rect(50px, 9999px, 9px, 0);
        transform: skew(0.6deg);
    }
}

@keyframes glitch-anim2 {
    0% {
        clip: rect(66px, 9999px, 92px, 0);
        transform: skew(0.47deg);
    }

    5% {
        clip: rect(23px, 9999px, 89px, 0);
        transform: skew(0.5deg);
    }

    10% {
        clip: rect(42px, 9999px, 3px, 0);
        transform: skew(0.7deg);
    }

    15% {
        clip: rect(20px, 9999px, 38px, 0);
        transform: skew(0.64deg);
    }

    20% {
        clip: rect(35px, 9999px, 26px, 0);
        transform: skew(0.44deg);
    }

    25% {
        clip: rect(67px, 9999px, 91px, 0);
        transform: skew(0.42deg);
    }

    30% {
        clip: rect(70px, 9999px, 33px, 0);
        transform: skew(0.28deg);
    }

    35% {
        clip: rect(42px, 9999px, 76px, 0);
        transform: skew(0.76deg);
    }

    40% {
        clip: rect(35px, 9999px, 42px, 0);
        transform: skew(0.58deg);
    }

    45% {
        clip: rect(3px, 9999px, 49px, 0);
        transform: skew(0.1deg);
    }

    50% {
        clip: rect(54px, 9999px, 95px, 0);
        transform: skew(0.24deg);
    }

    55% {
        clip: rect(17px, 9999px, 87px, 0);
        transform: skew(0.55deg);
    }

    60% {
        clip: rect(14px, 9999px, 22px, 0);
        transform: skew(0.66deg);
    }

    65% {
        clip: rect(66px, 9999px, 8px, 0);
        transform: skew(0.4deg);
    }

    70% {
        clip: rect(20px, 9999px, 25px, 0);
        transform: skew(0.47deg);
    }

    75% {
        clip: rect(40px, 9999px, 39px, 0);
        transform: skew(0.27deg);
    }

    80% {
        clip: rect(26px, 9999px, 38px, 0);
        transform: skew(0.58deg);
    }

    85% {
        clip: rect(35px, 9999px, 39px, 0);
        transform: skew(0.1deg);
    }

    90% {
        clip: rect(51px, 9999px, 66px, 0);
        transform: skew(0.4deg);
    }

    95% {
        clip: rect(85px, 9999px, 28px, 0);
        transform: skew(0.03deg);
    }

    100% {
        clip: rect(53px, 9999px, 34px, 0);
        transform: skew(0.76deg);
    }
}

@keyframes glitch-skew {
    0% {
        transform: skew(-3deg);
    }

    10% {
        transform: skew(5deg);
    }

    20% {
        transform: skew(0deg);
    }

    30% {
        transform: skew(-3deg);
    }

    40% {
        transform: skew(-1deg);
    }

    50% {
        transform: skew(2deg);
    }

    60% {
        transform: skew(4deg);
    }

    70% {
        transform: skew(4deg);
    }

    80% {
        transform: skew(-3deg);
    }

    90% {
        transform: skew(2deg);
    }

    100% {
        transform: skew(3deg);
    }
}