@font-face {
    font-family: "consola";
    src: url("res/consola.ttf");
}

:root {
    --h-footer: 80px;
}

.theme-default {
    --color: #cfbfaf;
    --color-bg: #001d1a;
    --color-alt: #FFFFFF;
    --color-alt2: #07f0e8;
}

*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    color: var(--color);
    background-color: var(--color-bg);
    font-family: "consola";
}

body::-webkit-scrollbar {
    width: 0;
}

a, a:visited, a:active {
    text-decoration: none;
}

a {
    color: var(--color);
    text-decoration: underline;
}

a:hover {
    color: var(--color-alt);
}

h1 {
    margin: 1rem 0;
}

p {
    text-align: justify;
}

hr {
    background: var(--color);
}

section {
    margin: 1rem 0;
}

li {
    list-style: none;
}

details {
    display: flex;
    flex-direction: column;
}

details[open] summary span:before {
    content: "[-]";
    margin-right: 0.5rem;
}

details * {
    margin: 0.5rem 0;
}

details .separator {
    margin: 0.5rem 0;
    border-top: 1px dashed currentColor;
}

details summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    list-style: none;
    cursor: pointer;
    margin: 0.5rem 0;
}

details summary span:before {
    content: "[+]";
    margin-right: 0.5rem;
}

details summary:hover:not(:has(a:hover)) {
    color: var(--color-alt);
}

details summary a {
    display: none;
    pointer-events: auto;
    margin: 0;
    padding: 0.5rem 0;
}

details[open] summary a {
    display: block;
}

.router {

}

.page {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    margin: auto;
    max-width: 48rem;
    min-height: 100vh;
}

header {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    padding: 2rem;
}

header a.selected:before {
    content: "#";
    position: absolute;
    margin-left: -1rem;
}

main {
    display: flex;
    flex-direction: column;
    flex-grow: 2;
    padding: 2rem;
}

footer {
    display: flex;
    flex-direction: row;
    justify-content: center;
    padding: 2rem;
}

footer a {
    margin: 0 1rem;
}

footer svg {
    color: var(--color);
    width: 1.5rem;
    height: 1.5rem;
    text-decoration: none;
}

footer svg:hover {
    color: var(--color-alt);
}

.content-home, .content-404 {
    margin: auto;
}

.content-root {
    display: flex;
    flex-direction: column;
    margin: auto;
}

.content-projects, .content-about {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.content-projects video {
    width: 100%;
}

.dynamic-text-type:after {
    content: "|";
}
