@media (prefers-color-scheme: light) {
    :root {
        --bkgnd: hsl(180, 10%, 95%);
        --imtext: hsl(180, 0%, 20%);
        --loudtxt: hsl(180, 40%, 30%);
        --text: hsl(180, 0%, 10%);
        --border: hsl(180, 30%, 70%);
        --hltxt: hsl(180, 55%, 85%);
        --bkgndblack: hsl(180, 0%, 0%);
        --txtwhite: hsl(180, 0%, 100%);
    }
}

@media (prefers-color-scheme: dark) {
    :root {
        --bkgnd: hsl(180, 20%, 10%);
        --imtext: hsl(180, 0%, 80%);
        --loudtxt: hsl(180, 50%, 70%);
        --text: hsl(180, 0%, 90%);
        --border: hsl(180, 40%, 20%);
        --hltxt: hsl(180, 20%, 15%);
        --bkgndblack: hsl(180, 0%, 0%);
        --txtwhite: hsl(180, 0%, 100%);
    }
}

@media (prefers-color-scheme: no-preference) {
    :root {
        --bkgnd: hsl(180, 10%, 95%);
        --imtext: hsl(180, 0%, 20%);
        --loudtxt: hsl(180, 40%, 30%);
        --text: hsl(180, 0%, 10%);
        --border: hsl(180, 30%, 70%);
        --hltxt: hsl(180, 40%, 70%);
        --bkgndblack: hsl(180, 0%, 0%);
        --txtwhite: hsl(180, 0%, 100%);
    }
}

html {
    font-family: 'Courier New', monospace;
    background-color: rgba(0, 0, 0, 0);
    width: 95%;
}

body {
    transition: 0.5s;
    background-color: var(--bkgnd);
    height: max-content;
    margin: 0;
    padding: calc(0.6rem + 0.5vw);
    width: 100%;
    font-size: calc(0.6rem + 0.5vw);
}

div {
    margin: 0;
    padding: 0;
    justify-content: center;
    align-items: center;
}

.stack {
    justify-self: center;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    width: 100%;
    max-height: 100vh;
    max-width: 200vh;
}

.module {
    flex: 1;
    flex-grow: 2;
    width: min-content;
    margin: 0 0 calc(0.6rem + 0.5vw) 0;
    padding: calc(1*(0.6rem + 0.5vw));

}

.module > *:not(table) {
    margin: 0 0 calc(0.6rem + 0.5vw) 0;
    padding: calc(0.5*(0.6rem + 0.5vw));
    display: block;
    max-width: 100%;
}

h1, h2, h3, h4, h5, h6 {
    color: var(--imtext);
    font-weight: bold;
    width: fit-content;
    height: min-content;
    text-align: left;
    background-color: var(--border);
    padding-left: calc(0.5*(0.6rem + 0.5vw));
    padding-right: calc(0.5*(0.6rem + 0.5vw));
    padding-top: calc(0.3*(0.6rem + 0.5vw));
    padding-bottom: calc(0.1*(0.6rem + 0.5vw));
    border-radius: calc(0.8*(0.6rem + 0.5vw));
}

p {
    color: var(--text);
    width: fit-content;
    height: min-content;
    text-align: left;
}  

pre {
    color: var(--txtwhite);
    background-color: var(--bkgndblack);
    border-radius: calc(0.3*(0.6rem + 0.5vw));
    width: 100%;
    height: min-content;
    padding: calc(0.6rem + 0.5vw);
    text-align: left;
}

code:not(pre > code) {
    color: var(--txtwhite);
    background-color: var(--bkgndblack);
    display: block;
    border-radius: calc(0.3*(0.6rem + 0.5vw));
    width: 100%;
    height: min-content;
    box-sizing: content-box;
    padding: calc(0.6rem + 0.5vw);
    text-align: left;
}

blockquote {
    color: var(--text);
    background-color: var(--hltxt);
    border-radius: calc(0.3*(0.6rem + 0.5vw));
    width: 100%;
    height: min-content;
    padding: calc(0.6rem + 0.5vw);
    text-align: left;
}

mark {
    color: var(--loudtxt);
    background-color: var(--hltxt);
}

a:link{
    transition-duration: 0.2s;
    color: var(--loudtxt);
    text-decoration: none; 
}

a:visited {
    transition-duration: 0.2s;
    color: var(--loudtxt);
    text-decoration: none; 
 }

a:hover {
    transition-duration: 0.2s;
    color: var(--text);
    text-decoration: none; 
 }

ol:not(ol ol), ul:not(ul ul) {
    color: var(--text);
    list-style-position: inside;
    width: fit-content;
    height: min-content;
    text-align: left;
}

table {
    color: var(--text);
    margin-left: auto;
    margin-right: auto;
    border-spacing: 0;
    border: calc(0.2*(0.6rem + 0.5vw)) solid var(--border);
    border-radius: calc(0.3*(0.6rem + 0.5vw));
    padding: 0;
}

th {
    border: calc(0.2*(0.6rem + 0.5vw)) solid var(--border);
    padding: calc(0.5*(0.6rem + 0.5vw));
}

td {
    border: calc(0.2*(0.6rem + 0.5vw)) solid var(--border);
    padding: calc(0.5*(0.6rem + 0.5vw));
}

hr {
    border: 0;
    border-top: calc(0.2*(0.6rem + 0.5vw)) solid var(--border);
    margin-left: auto;
    margin-right: auto;
    width: 95%;
}

img, video {
    height: auto;
    min-width: 20vh;
    max-width: 90vw;
    max-height: 90vh;
    margin-left: auto;
    margin-right: auto;
    display: block;
    border-radius: calc(2*(0.6rem + 0.5vw));
}

form {
    color: var(--text);
}

input[type="checkbox"] {
    appearance: none;
    transition: 0.2s;
    font-family: 'Courier New', monospace;
    background-color: var(--bkgnd);
    width: calc(1.2*(0.6rem + 0.5vw));
    height: calc(1.2*(0.6rem + 0.5vw));
    border: calc(0.2*(0.6rem + 0.5vw)) solid var(--border);
    border-radius: calc(0.3*(0.6rem + 0.5vw));
    outline: none;
    margin: 0;
    padding: calc(0.5*(0.6rem + 0.5vw));
}

input[type="checkbox"]:checked {
    appearance: none;
    transition: 0.2s;
    font-family: 'Courier New', monospace;
    background-color: var(--border);
    width: calc(1.2*(0.6rem + 0.5vw));
    height: calc(1.2*(0.6rem + 0.5vw));
    border: calc(0.2*(0.6rem + 0.5vw)) solid var(--border);
    border-radius: calc(0.3*(0.6rem + 0.5vw));
    outline: none;
    margin: 0;
    padding: calc(0.5*(0.6rem + 0.5vw));
}

input[type="checkbox"]:hover {
    appearance: none;
    transition: 0.2s;
    font-family: 'Courier New', monospace;
    width: calc(1.2*(0.6rem + 0.5vw));
    height: calc(1.2*(0.6rem + 0.5vw));
    border: calc(0.2*(0.6rem + 0.5vw)) solid var(--loudtxt);
    border-radius: calc(0.3*(0.6rem + 0.5vw));
    outline: none;
    margin: 0;
    padding: calc(0.5*(0.6rem + 0.5vw));
}

input[type="radio"] {
    appearance: none;
    transition: 0.2s;
    font-family: 'Courier New', monospace;
    background-color: var(--bkgnd);
    width: calc(1.2*(0.6rem + 0.5vw));
    height: calc(1.2*(0.6rem + 0.5vw));
    border: calc(0.2*(0.6rem + 0.5vw)) solid var(--border);
    border-radius: calc(2*(0.6rem + 0.5vw));
    outline: none;
    margin: 0;
    padding: calc(0.5*(0.6rem + 0.5vw));
}

input[type="radio"]:checked {
    appearance: none;
    transition: 0.2s;
    font-family: 'Courier New', monospace;
    background-color: var(--border);
    width: calc(1.2*(0.6rem + 0.5vw));
    height: calc(1.2*(0.6rem + 0.5vw));
    border: calc(0.2*(0.6rem + 0.5vw)) solid var(--border);
    border-radius: calc(2*(0.6rem + 0.5vw));
    outline: none;
    margin: 0;
    padding: calc(0.5*(0.6rem + 0.5vw));
}

input[type="radio"]:hover {
    appearance: none;
    transition: 0.2s;
    font-family: 'Courier New', monospace;
    width: calc(1.2*(0.6rem + 0.5vw));
    height: calc(1.2*(0.6rem + 0.5vw));
    border: calc(0.2*(0.6rem + 0.5vw)) solid var(--loudtxt);
    border-radius: calc(2*(0.6rem + 0.5vw));
    outline: none;
    margin: 0;
    padding: calc(0.5*(0.6rem + 0.5vw));
}

input:not(input[type="checkbox"], input[type="radio"]), select, textarea, button {
    transition: 0.2s;
    font-family: 'Courier New', monospace;
    color: var(--text);
    background-color: var(--hltxt);
    border: calc(0.2*(0.6rem + 0.5vw)) solid var(--hltxt);
    border-radius: calc(0.3*(0.6rem + 0.5vw));
    outline: none;
    margin: 0;
    padding: calc(0.5*(0.6rem + 0.5vw));
}

input:not(input[type="checkbox"], input[type="radio"]):focus, select:focus, textarea:focus, button:focus {
    transition: 0.2s;
    font-family: 'Courier New', monospace;
    color: var(--imtext);
    background-color: var(--bkgnd);
    border: calc(0.2*(0.6rem + 0.5vw)) solid var(--border);
    border-radius: calc(0.3*(0.6rem + 0.5vw));
    outline: none;
    margin: 0;
    padding: calc(0.5*(0.6rem + 0.5vw));
}
