:root {
    --black: #000000;
    --white: #ffffff;
    --green: #00ff00;
    --anim-len: 1.5s;
}
@font-face {
    font-family: RetroRetconRegular;
    src: url("portfolio_files/retro_retcon_variable/retro_retcon_regular.otf");
}
@font-face {
    font-family: RetroRetconExtend;
    src: url("portfolio_files/retro_retcon_variable/retro_retcon_variable_extend.ttf");
}
@font-face {
    font-family: RetroRetconFracture;
    src: url("portfolio_files/retro_retcon_variable/retro_retcon_variable_fracture.ttf");
}
@font-face {
    font-family: RetroRetconGlint;
    src: url("portfolio_files/retro_retcon_variable/retro_retcon_variable_glint.ttf");
}
@font-face {
    font-family: RetroRetconSlant;
    src: url("portfolio_files/retro_retcon_variable/retro_retcon_variable_slant.ttf");
}
@font-face {
    font-family: RetroRetconSmooth;
    src: url("portfolio_files/retro_retcon_variable/retro_retcon_variable_smooth.ttf");
}
* {
    margin: 0;
    padding: 0;
    line-height: 1;
    box-sizing: border-box;
    font-weight: normal;
}
body {
    background: var(--black);
    padding: 2rem;
    font-family: "Open Sans", sans-serif;
    font-weight: normal;
}
main {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
section, h1 {
    padding: 0.5rem;
}
h1 {
    font-family: "RetroRetconRegular", monospace;
    font-weight: normal;
    font-size: clamp(1.875rem, 3.75vw, 3.75rem);
    color: var(--white);
}
#buttons {
    display: flex;
    gap: clamp(1rem, 2vw, 2rem);
}
#characters.paused {
    animation-play-state: paused;
}
p {
    font-size: clamp(2.5rem, 5vw, 5rem);
    line-height: 1.25;
    color: var(--green);
    text-wrap: balance;
}


/* BUTTONS */
button {
    display: block;
    font-family: "Open Sans", sans-serif;
    text-transform: uppercase;
    font-size: clamp(0.5rem, 1vw, 1rem);
    background: none;
    border: 0.1em solid var(--white);
    color: var(--white);
    outline: none;
    padding: 0.4em;
    border-radius: 0.25em;
    cursor: pointer;
}
button.active {
    background: var(--green);
    color: var(--black);
    border-color: transparent;
}
#font-buttons {
    display: flex;
    gap: clamp(0.25rem, 0.5vw, 0.5rem);
}
#play-pause button {
    width: clamp(1rem, 2vw, 2rem);
}
i {
    font-size: clamp(0.5rem, 1vw, 1rem);
    width: clamp(0.5rem, 1vw, 1rem);
}
i.button-icon-inactive {
    display: none;
}


/* FONT STYLES */
.extend {
    font-family: "RetroRetconExtend", monospace;
    animation: extend var(--anim-len) ease-in-out infinite alternate;
}
.fracture {
    font-family: "RetroRetconFracture", monospace;
    animation: fracture var(--anim-len) ease-in-out infinite alternate;
}
.glint {
    font-family: "RetroRetconGlint", monospace;
    animation: glint var(--anim-len) ease-in-out infinite alternate;
}
.slant {
    font-family: "RetroRetconSlant", monospace;
    animation: slant var(--anim-len) ease-in-out infinite alternate;
}
.smooth {
    font-family: "RetroRetconSmooth", monospace;
    animation: smooth var(--anim-len) ease-in-out infinite alternate;
}
@keyframes extend {
    from {
        font-variation-settings: "EXTD" 0;
    }
    to {
        font-variation-settings: "EXTD" 1000;
    }
}
@keyframes fracture {
    from {
        font-variation-settings: "FRCT" 0;
    }
    to {
        font-variation-settings: "FRCT" 1000;
    }
}
@keyframes glint {
    from {
        font-variation-settings: "GLNT" 0;
    }
    to {
        font-variation-settings: "GLNT" 1000;
    }
}
@keyframes slant {
    from {
        font-variation-settings: "PXSL" 0;
    }
    to {
        font-variation-settings: "PXSL" 1000;
    }
}
@keyframes smooth {
    from {
        font-variation-settings: "SMTH" 0;
    }
    to {
        font-variation-settings: "SMTH" 1000;
    }
}