body {
    overscroll-behavior: none;
    touch-action: manipulation;
    user-select: none;
    -webkit-user-select: none;
}

.dynamic-text-huge {
    font-size: min(40vh, 38vw);
    line-height: 0.9;
    white-space: nowrap;
}

.dynamic-text-lg {
    font-size: min(4vh, 4vw);
}

.dynamic-text-md {
    font-size: min(2.5vh, 3.5vw);
}

.font-mono-number {
    font-family: "SF Mono", "Roboto Mono", Menlo, monospace;
    font-variant-numeric: tabular-nums;
}

input[type=number] {
    -moz-appearance: textfield;
    appearance: textfield;
    text-align: center;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

@keyframes beat {

    0%,
    100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.05);
    }
}

.animate-beat {
    animation: beat 0.6s infinite ease-in-out;
}