@font-face {
    font-family: 'IBM';
    src: url('../fonts/IBMPlexMono-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'IBM';
    src: url('../fonts/IBMPlexMono-Italic.ttf') format('truetype');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}
@font-face {
    font-family: 'IBM';
    src: url('../fonts/IBMPlexMono-ExtraLight.ttf') format('truetype');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'IBM';
    src: url('../fonts/IBMPlexMono-ExtraLightItalic.ttf') format('truetype');
    font-weight: 200;
    font-style: italic;
    font-display: swap;
}
body {
    --color-black: #191919;
    --color-white: #e1e1e1;
    --color-grey: #898989;
    --color-green: #13f270;
    --color-red: #fc1a52;
    --color-purple: #cb06d9;
    --color-yellow: #c1de04;
    --color-blue: #03bfee;
    --font: 'IBM', monospace;
    --line: 3ch;
    --font-scale: 0.4vw;
}
body.invert {
    --color-black: #dcdcdc;
    --color-white: #191919;
    --color-grey: #6e6e6e;
    --color-green: #1f864a;
    --color-red: #c61340;
    --color-purple: #9e02e1;
    --color-yellow: #e37e02;
    --color-blue: #0856af;
}

* {
    box-sizing: border-box;
}

body{
    margin: 0;
    font-family: 'IBM', monospace;
    font-weight: 400;
    font-style: normal;
    font-size: calc(1rem + var(--font-scale));
    line-height: var(--line);
    color: var(--color-white);
    background-color: var(--color-black);
}
header, main, footer {
    width: 100%;
    max-width: 1260px;
    margin: 0 auto;
    padding: 24px;
}
h1 {
    color: var(--color-blue);
    font-size: calc(1.6rem + var(--font-scale));
    font-weight: 200;
    line-height: var(--line);
    margin: 0;
}
a {
    text-decoration: none;
}
nav > ul {
    list-style: none;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.link-blue,
.link-purple,
.link-green,
.link-grey,
.link-red
{
    cursor: pointer;
}
.link-blue {
    color: var(--color-blue);
}
.link-blue:hover {
    color: var(--color-black);
    background-color: var(--color-blue);
}
.link-purple {
    color: var(--color-purple);
}
.link-purple:hover {
    color: var(--color-black);
    background-color: var(--color-purple);
}
.link-green {
    color: var(--color-green);
}
.link-green:hover {
    color: var(--color-black);
    background-color: var(--color-green);
}
.link-grey {
    color: var(--color-grey);
}
.link-grey:hover {
    color: var(--color-black);
    background-color: var(--color-grey);
}
.link-red {
    color: var(--color-red);
}
.link-red:hover {
    color: var(--color-black);
    background-color: var(--color-red);
}
.text-black {
    color: var(--color-black);
}
.text-white {
    color: var(--color-white);
}
.text-grey {
    color: var(--color-grey);
}
.text-green {
    color: var(--color-green);
}
.text-yellow {
    color: var(--color-yellow);
}
.text-red {
    color: var(--color-red);
}
.text-blue {
    color: var(--color-blue);
}
.text-purple {
    color: var(--color-purple);
}
#page-logo {
    font-style: italic;
}
footer > ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
input {
    border: none;
    padding: 5px;
}
