@import url('https://fonts.googleapis.com/css2?family=Fira+Mono:wght@400;500;700&display=swap');

body {
    width: 100vw;
    height: 100vh;
    margin: 0;
    display: grid;
}

main {
    color: #696979;
    font-family: "Fira Mono", monospace;
    max-width: 30rem;
    display: grid;
    grid-template-columns: 5rem auto 5rem;
    gap: 1rem;
    margin-top: 10rem;
    padding-bottom: 10rem;
    height: min-content;
    justify-self: center;
}

main ul {
    grid-column: span 3;
}

main img {
    align-self: center;
    justify-self: center;
}

main h1 {
    font-size: 2rem;
    margin: 0;
    grid-column: span 2;
    color: #42424a;
}

main h2 {
    margin: 0;
    grid-column: span 3;
    color: #42424a;
}

main p {
    margin: 0;
    grid-column: span 3;
}

main hr {
    grid-column: span 3;
    width: 100%;
    background-color: #aedae4;
    border: none;
    height: 2px;
}

main a {
    color: #aedae4;
    align-self: center;
    justify-self: right;
}

main a:hover {
    color: #9bc1cc;
}

#intro-text {
    grid-column: span 2;
}

.social-icon {
    width: 1.75rem;
    align-self: center;
    justify-self: right;
}

.social-icon > img {
    width: 100%;
}

.number-output {
    grid-column: span 3;
}

.number-output:empty::after {
    content: "No tones detected yet! Connect your DS and play some chatter!";
    font-style: italic;
    color: #aedae4;
}

.number-output input {
    display: inline-block;
    margin: .25rem;
    border: none;
    width: 2rem;
    -moz-appearance: textfield;
    appearance: textfield;
    color: #696979;
    font-family: "Fira Mono", monospace;
    font-size: 1.5rem;
}

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

.number-output :first-child {
    font-weight: bold;
    font-size: 3rem;
    width: 4rem;
    color: #42424a;
}

.input-label-box {
    display: flex;
    align-items: center;
    grid-column: span 2;
    gap: 1rem;
}

.input-label-box label {
    margin-left: .25rem;
}

.input-label-box > div {
    display: flex;
    align-items: center;
    flex-direction: column;
    flex-grow: 1;
}

.input-label-box > div {
    display: flex;
    align-items: center;
    flex-direction: row;
}

.input-label-box input[type="number"] {
    display: inline-block;
    margin: .25rem;
    border: none;
    width: 3.5rem;
    font-family: "Fira Mono", monospace;
    font-size: 1rem;
    color: #696979;
    background-color: #aedae4;
}

.input-label-box input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    background-color: #aedae4;
    margin: .25rem;
    width: 1.1rem;
    height: 1.1rem;
    display: grid;
    place-content: center;
}

.input-label-box input[type="checkbox"]:hover {
    background-color: #9bc1cc;
}

.input-label-box input[type="checkbox"]:checked::before {
    content: "";
    display: block;
    width: .75rem;
    height: .75rem;
    background-color: #696979;
}

button {
    border: none;
    border-radius: 0;
    color: #696979;;
    background-color: #aedae4;
    font-family: "Fira Mono", monospace;
    font-size: 1rem;
    padding: 0.25rem;
    height: min-content;
    width: min-content;
    place-self: center;
}

button:hover {
    background-color: #9bc1cc;
}

button:active {
    background-color: #696979;
    color: #fff;
}

#visualizer {
    width: 100%;
    background-color: #000;
    grid-column: span 3;
}

#visualizer-tooltip {
    position: absolute;
    margin-top: -.5rem;
    margin-left: .5rem;
    pointer-events: none;
    color: #fff;
    text-shadow: #aedae4 1px 1px 1px 1px;
}