@font-face {
    font-family: ComputoMonospace-web;
    src: url(/fonts/ComputoMonospace-Regular.otf);
    font-display: swap;
}

body {
    margin: 0;
    display: flex;
    height: 100vh;
    align-items: center;
    justify-content: center;
    overflow: hidden;

    color: white;
    font-family: "Computo Monospace", ComputoMonospace-web, monospace;
    user-select: none;
}

body a {
    /* Remove underline and color from links */
    color: inherit;
    text-decoration: none;

    scale: 1;
    transition: scale 0.1s ease;
}

body a:hover {
    color: yellow;
    scale: 1.1;
    display: inline-block;
}

body a:active {
    scale: 1;
}

#back-btn {
    position: absolute;
    top: clamp(16px, 4vw, 32px);
    left: clamp(16px, 4vw, 32px);
    font-size: clamp(1rem, 3vw, 2rem);
}

#info-btn {
    position: absolute;
    bottom: clamp(16px, 4vw, 32px);
    right: clamp(16px, 4vw, 32px);
    font-size: clamp(1rem, 3vw, 2rem);
}

#container {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;

    max-width: 100vw;
    padding: 0 16px;
    box-sizing: border-box;
}

#date {
    font-size: clamp(1rem, 6vw, 6rem);
    margin-bottom: 0.2em; /* Space between date and clock */
    white-space: nowrap;
}

#clock {
    color: white;
    font-size: clamp(2rem, 12vw, 16rem);
    line-height: 1;
    white-space: nowrap;
}

/* --- Effects --- */

/* Scanlines */
body::before {
    z-index: 1;
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;

    background:
        linear-gradient(transparent 50%, rgba(0, 0, 0, 0.1) 50%),
        linear-gradient(90deg, transparent 50%, rgba(0, 0, 0, 0.02) 50%);
    background-size:
        100% clamp(2px, 0.5vh, 8px),
        clamp(2px, 0.3vw, 6px) 100%;
}

/* Glow */
body {
    background: radial-gradient(circle at center, darkslateblue 0%, #181818 100%);
}

/* Glitch effect */
@keyframes glitch-shake {
    0% {
        transform: translate(0);
        text-shadow: none;
    }
    20% {
        transform: translate(-0.02em, 0.01em);
        text-shadow:
            4px 0 rgba(255, 0, 0, 0.6),
            -4px 0 rgba(0, 255, 255, 0.6);
    }
    40% {
        transform: translate(-0.02em, -0.01em);
        text-shadow:
            -4px 0 rgba(255, 0, 0, 0.6),
            4px 0 rgba(0, 255, 255, 0.6);
    }
    60% {
        transform: translate(0.02em, 0.01em);
        text-shadow:
            4px 0 rgba(0, 255, 0, 0.6),
            -4px 0 rgba(255, 0, 255, 0.6);
    }
    80% {
        transform: translate(0.02em, -0.01em);
        text-shadow:
            -4px 0 rgba(0, 255, 0, 0.6),
            4px 0 rgba(255, 0, 255, 0.6);
    }
    100% {
        transform: translate(0);
        text-shadow: none;
    }
}

/* Glitch effect timing */
.glitch-active {
    animation: glitch-shake 0.25s cubic-bezier(0.3, 0.2, 0.05, 0.99);
}
