/*
 *  Fonts Setup
 */

@font-face {
    font-family: "Lexend Deca";
    src: url("/assets/fonts/Lexend_Deca/LexendDeca-VariableFont_wght.ttf");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

/*
 *  CSS
 */

* {
    font-family: "Lexend Deca", sans-serif;
    box-sizing: border-box;
    line-height: 1.6;
    margin: 0px;
    transition: color .25s;
}

@keyframes slide-in {
    0% {
        opacity: 0;
        transform: translateY(32px);
    }

    100% {
        opacity: 1;
        transform: translateY(0px);
    }
}

@keyframes fade-in {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes rotate {
    0% {
        transform: rotate(0);
    }

    25% {
        transform: rotate(90deg);
    }

    50% {
        transform: rotate(180deg);
    }

    75% {
        transform: rotate(270deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

:root {
    --primary: #faf3dd;
    --primary-transparent: #faf3dd81;
    --secondary: #6685e9;
    --accent: #df928e;
    --on-primary: #4a5043;
    --on-secondary: #061a40;
    --accent-filter: invert(90%) sepia(17%) saturate(3016%) hue-rotate(298deg) brightness(98%) contrast(79%);
    --accent-filter-alt: invert(70%) sepia(53%) saturate(6056%) hue-rotate(204deg) brightness(95%) contrast(91%);
}

@media (prefers-color-scheme: dark) {
    :root {
        --primary: #061a40;
        --primary-transparent: #061a4081;
        --secondary: #df928e;
        --accent: #6685e9;
        --on-primary: #faf3dd;
        --on-secondary: #4a5043;
        --accent-filter: invert(70%) sepia(53%) saturate(6056%) hue-rotate(204deg) brightness(95%) contrast(91%);
        --accent-filter-alt: invert(90%) sepia(17%) saturate(3016%) hue-rotate(298deg) brightness(98%) contrast(79%);
    }
}

.desktop {
    display: none;
}

html,
body {
    background-color: var(--primary);
    color: var(--on-primary);
    width: 100%;
    height: 100%;
    border-bottom: solid var(--secondary) 4px;
    overflow: hidden;
}

a {
    color: var(--on-primary);
    font-weight: 600;
}

a>img {
    transition: transform .25s;
}

a:hover,
a:visited:hover {
    color: var(--secondary);
}

a:hover>img,
a:visited:hover>img {
    transform: scale(125%);
}

a:visited {
    color: var(--on-primary);
}

hr {
    border: 1px solid var(--on-primary);
    margin-block: 4px 8px;
    height: 2px;
    background-color: var(--on-primary);
}

li {
    list-style-type: square;
}

li::marker {
    color: var(--secondary);
}

.small {
    font-family: monospace;
    font-size: 14pt;
}

.container {
    width: 100%;
    height: 100%;
    display: grid;
    /*flex-direction: column;*/
    align-items: stretch;
    text-align: center;
    grid-template-rows: min-content 2fr min-content;
}

.container>.content {
    margin: 4px;
}

.header {
    font-weight: 900;
    font-size: 16pt;
    position: sticky;
    top: 0px;
    right: 0px;
    left: 0px;

    display: flex;
    gap: 4px;
    justify-content: space-between;
    align-items: center;
    opacity: 0.001;
}

.header,
.footer {
    padding: 16px;
}

header>a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 4px;

    font-weight: 900 !important;

    text-decoration: none;
}

header>.nav {
    gap: 16px;
}

.nav>a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-decoration: none;
    gap: 8px;
    font-weight: 700;
}

.nav>a.active {
    color: var(--secondary);
}

.nav>a.active>img {
    filter: var(--accent-filter-alt) !important;
}

.nav>a>img {
    width: 18px !important;
    transform: none !important;
    filter: var(--accent-filter);
}

.content {
    opacity: 0.001;
    display: grid;
    gap: 8px;
    place-content: center;
    margin-block: 16px;
    position: relative;
}

.content.slide-in {
    animation: slide-in 1s ease-out forwards;
}

.section-head {
    font-family: monospace;
    text-align: center;
}

.email {
    display: flex;
    justify-content: center;
    gap: 8px;
    align-items: center;
}

.buttons {
    display: flex;
    justify-content: space-evenly;
    align-items: stretch;
}

.buttons:not(.nav) {
    gap: 8px;
}

.buttons:not(.nav)>a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}

header img,
.email>img,
.buttons>a>img {
    object-fit: contain;
    width: 32px;
    max-width: 1.5em;
    height: auto;
}

.logo,
.email>img,
main .buttons:not(.nav)>a>img {
    filter: var(--accent-filter);
}

.logo {
    animation: rotate 10s linear infinite forwards;
}

/*.email > img {
    width: 12px;
}*/

.footer {
    position: sticky;
    left: 0px;
    right: 0px;
    bottom: 0px;
    text-align: center;
    opacity: 0.001;
    font-size: 12pt;
}

.italic {
    font-style: italic;
}

.header.fade-in,
.footer.fade-in {
    animation: fade-in 1s ease-out forwards;
}

@media (min-width: 720px) {
    .desktop {
        display: block;
    }

    .container>* {
        padding-inline: 10%;
    }

    .content {
        margin-block: 32px;
    }
}

@media (min-width: 2560px) {
    body {
        font-size: 1.3em;
    }
}

.hidden {
    display: none !important;
}

.hidden * {
    display: none !important;
}
