/* Global Reset */
* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

/* Basic html and body css */
html {
    /* With font-size set to 62.5% 1rem = 10px */
    font-size: 62.5%;
    overflow-x: hidden;
    scroll-behavior: smooth;
}

body {
    font-family: "Roboto", sans-serif;
    line-height: 1;
    font-weight: 400;
    color: #555;

    margin: 4.8rem;

    /* Only works if nothing is relatively positioned to body */
    overflow-x: hidden;
}

.hidden {
    display: none !important;
}

header {
    display: flex;
    flex-direction: column;
    gap: 1.8rem;
    align-items: center;
    justify-content: center;

    margin-bottom: 4.8rem;
}

header h1 {
    font-size: 3.2rem;
    font-weight: 700;
}

header p {
    font-size: 1.6rem;
    font-weight: 400;
    color: #777;
}

.base-container {
    display: grid;
    grid-template-columns: 0.5fr 1fr 0.5fr;
}

@media (max-width: 555px) {
    .base-container {
        grid-template-columns: 1fr;
        justify-items: center;
    }
}

@media (min-width: 1325px) {
    .timers-container {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr 1fr;
        justify-items: center;
        align-items: center;
        gap: 2rem;
    }
}

@media (min-width: 1065px) and (max-width: 1324px) {
    .timers-container {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        justify-items: center;
        align-items: center;
        gap: 2rem;
    }
}

@media (min-width: 810px) and (max-width: 1064px) {
    .timers-container {
        display: grid;
        grid-template-columns: 1fr 1fr;
        justify-items: center;
        align-items: center;
        gap: 2rem;
    }
}

@media (max-width: 809px) {
    .timers-container {
        display: grid;
        grid-template-columns: 1fr;
        justify-items: center;
        align-items: center;
        gap: 2rem;
    }
}

.timers-container .timer .timer-set {
    display: flex;
    flex-direction: column;
    justify-items: start;
    gap: 1rem;

    margin: 2rem;
}

.timers-container .timer .timer-set h2 {
    font-size: 2.4rem;
    font-weight: 700;
}

.timers-container .timer .timer-set input[type="text"] {
    padding: 0.5rem;
    border: 1px solid #555;
    border-radius: 0.5rem;
    font-size: 1.8rem;
    font-weight: 400;
    text-align: center;
}

.timers-container .timer .timer-set .time-selects {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.timers-container .timer .timer-set .time-selects .time-select {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.timers-container .timer .timer-set .time-selects .time-select label {
    font-size: 1.6rem;
    font-weight: 400;
}

.timers-container .timer .timer-set .time-selects .time-select select {
    padding: 0.5rem;
    border: 1px solid #555;
    border-radius: 0.5rem;
    font-size: 1.8rem;
    font-weight: 400;
    text-align: center;
}

.timers-container .timer .timer-set button {
    font-size: 1.8rem;
    font-weight: 400;
    padding: 1rem;
}

.timers-container .timer .timer-control {
    display: flex;
    flex-direction: column;
    justify-items: start;
    gap: 1.5rem;

    margin: 2rem;
}

.timers-container .timer .timer-control h2 {
    font-size: 2.6rem;
    font-weight: 700;
    text-align: center;
}

.timers-container .timer .timer-control p {
    font-size: 5rem;
    font-weight: 400;
    text-align: center;
}


.timers-container .timer .timer-control-buttons {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.timers-container .timer .timer-control-buttons button {
    font-size: 1.8rem;
    font-weight: 400;
    padding: 1rem;
}

@keyframes flashRed {
    0%, 100% {
        color: black;
    }
    50% {
        color: red;
    }
}

.flash-red {
    animation: flashRed 1s infinite;
}