body {
    background-color: #000000;
    color: #00ffff;
    font-family: monospace;
    user-select: none;
    font-size: clamp(0.8rem, 0.9vw, 2rem);
    -ms-overflow-style: none !important;
    scrollbar-width: none !important;
    max-width: 100%;
}

main {
    padding: 2rem;
    flex: 1;
}


html, body {
    height: 100%;
    margin: 0;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
}

footer {
    padding-bottom: 0.5rem;
}

.center {
    text-align: center;
}

::-webkit-scrollbar {
    display: none !important;
}

a {
    color: #ff00ff;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: border-color 0.3s ease, color 0.3s ease;
}

a:hover {
    color: #ffffff;
    border-color: #ffffff;
}

a.plain:hover {
    color: #ffffff;
    border-color: transparent;
}

@keyframes shake {
    0% {
        transform: translate(0, 0) skewX(0deg);
        filter: hue-rotate(0deg) blur(0);
    }
    15% {
        transform: translate(-8px, -8px) skewX(2deg);
        filter: hue-rotate(60deg) blur(1px);
    }
    30% {
        transform: translate(10px, 10px) skewX(-5deg);
        filter: hue-rotate(120deg) blur(2px);
    }
    45% {
        transform: translate(-8px, 10px) skewX(7deg);
        filter: hue-rotate(240deg) blur(1px);
    }
    60% {
        transform: translate(8px, -10px) skewX(-2deg);
        filter: hue-rotate(120deg) blur(2px);
    }
    75% {
        transform: translate(-10px, 8px) skewX(5deg);
        filter: hue-rotate(60deg) blur(1px);
    }
    100% {
        transform: translate(0, 0) skewX(0deg);
        filter: hue-rotate(0deg) blur(0);
    }
}

@keyframes blend_in {
    from { opacity: 0 }
    to { opacity: 1 }
}

@keyframes blink {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0;
    }
}

@keyframes glint {
    0% {
        color: #00ffff;
        text-shadow: none;
    }
    50% {
        color: #ff1e78;
        text-shadow: 0 0 5px #ff1e78, 0 0 10px #ff1e78;
    }
    100% {
        color: #00ffff;
        text-shadow: none;
    }
}

.glint_animation_2s {
    animation: glint 2s ease;
}

.glint_animation_1s {
    animation: glint 1s ease;
}

.shake_animation_600ms {
    animation: shake 0.6s ease;
}

.shake_animation_infinite {
    animation: shake 0.6s ease infinite;
}

.blink_animation_infinite {
    font-weight: bold;
    opacity: 1;
    animation: blink 0.7s infinite;
}

.dynamic-value {
    opacity: 0;
}

.dynamic-value:empty::before {
    content: "\00a0";
}

.dynamic-value-loaded {
    opacity: 1;
    transition: opacity 0.5s ease;
}