:root {
    --text-default: rgb(192, 192, 192);
}

html, body {
    margin: 0;
    padding: 0;
    height: 100%;
    max-width: 100vw;
    background-color: oklch(19% 0 0);
    color: var(--text-default);
    font-family: 'DM Mono', monospace;
}

.cursor {
    display: inline-block;
    animation: blink 1s steps(2, start) infinite;
    color: inherit;
}

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

::selection {
    background-color: rgba(255, 255, 255, 0.25);
}

.tuiBox {
    border: 2px solid var(--text-default);
    padding: 10px;
    display: inline-block;
    margin: 4px;
    box-sizing: border-box;
    white-space: pre-wrap;
    width: 100%;
    height: 100%;
    cursor: default;
}

.tuiBox h1, h2, h3, h4, h5, h6 {
    margin: 0.5%;
}

.tuiBox .info {
    line-height: 25%;
}

.tuiBox-B {
    font-size: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    grid-column: span 2;
}

.tuiBtn {
    all: unset;
    display: inline;
    white-space: pre;
    font-size: 1rem;
    line-height: 1;
    user-select: none;
    color: var(--text-default);
}

.tuiBtn:focus {
    background-color: var(--text-default);
    color: oklch(19% 0 0);
}

#container {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: 8px;
    width: 100%;
    height: 100%;
    padding: 10px;
    box-sizing: border-box;
}

#mainMenu,
#linksMenu {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    justify-content: center;
}

#loadingTerminal {
    margin-left: 10px;
}

a {
    all: unset;
}

a:hover {
    background-color: var(--text-default);
    color: oklch(19% 0 0);
}

/* Responsive tweaks */

@media (max-width: 900px) {
    #container {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto auto;
        height: auto;
        padding: 8px;
    }

    .tuiBox-B {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto;
        gap: 8px;
        font-size: initial;
        margin: 8px 0;
        padding: 10px;
    }

    .tuiBox-B > * {
        width: 100%;
        box-sizing: border-box;
    }

    .tuiBox {
        height: auto;
    }

    .tuiBox .info {
        line-height: 120%;
    }

    .tuiBtn {
        font-size: 1.1rem;
        padding: 6px 10px;
    }
}

@media (max-width: 480px) {
    body {
        font-size: 14px;
    }

    .tuiBtn {
        font-size: 1.2rem;
        padding: 8px 12px;
    }

    .tuiBox {
        padding: 8px;
    }

    #loadingTerminal {
        margin-left: 0;
        margin-top: 10px;
    }
}
