/* Fonts */
@font-face {
    font-family: "Marsden";
    src: url(/static/assets/fonts/Marsden.ttf);
}

@font-face {
    font-family: "Articulat";
    src: url(/static/assets/fonts/Articulat.otf);
}

@font-face {
    font-family: "Articulat-Medium";
    src: url(/static/assets/fonts/Articulat-Medium.otf);
}

@font-face {
    font-family: "JetBrains Mono";
    src: url(/static/assets/fonts/JetBrainsMono.ttf);
}

/* Variables */
@media (prefers-color-scheme: light) {
    :root {
        --theme-color-level-1: #f3f3f3;
        --theme-color-level-2: #f5f5f7;
        --theme-color-level-3: #ffffff;
        --theme-color-level-4: #dce8f6;
        --theme-color-level-5: #bdbdbd;

        --text-color: #1d1d1f;
        --accent-text-color: #515154;

        --link-color: #7330F8;
        --accent-link-color: #515154;

        --button-color: #7330F8;
        --accent-button-color: #913aff;

        --border-color: #b6c1cc;
    }
}

@media (prefers-color-scheme: dark) {
    :root {
        --theme-color-level-1: #151516;
        --theme-color-level-2: #1c1c1c;
        --theme-color-level-3: #1f1f22;
        --theme-color-level-4: #2a2b2f;
        --theme-color-level-5: #46474f;

        --text-color: #f5f5f7;
        --accent-text-color: #c3c3c5;

        --link-color: #ffa500;
        --accent-link-color: #a0a0a5;

        --button-color: #ff8800;
        --accent-button-color: #ff9900;

        --border-color: #3d3e3e;
    }
}

:root {
    --text-font: 1px "Articulat-Medium", sans-serif;
    --accent-text-font: 1px "Articulat", sans-serif;
    --code-font: 1px "JetBrains Mono", sans-serif;
    --logo-font: 1px "Marsden", sans-serif;
    --border: 2px solid var(--border-color);
}

/* Global configuration */
* {
    zoom: 100%;
    text-decoration: none !important;
}

*:not(input) {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

html, body {
    background-color: var(--theme-color-level-3);
}

/* Animations */
.in-view-animation {

}

@keyframes slide-from-left-animation {
    0% {
        transform: translateX(-100vw);
    }
    100% {
        transform: translateX(0);
    }
}

.slide-from-left-animation {
    animation: slide-from-left-animation 0.6s ease-out;
}

@keyframes slide-from-right-animation {
    0% {
        transform: translateX(100vw);
    }
    100% {
        transform: translateX(0);
    }
}

.slide-from-right-animation {
    animation: slide-from-right-animation 0.6s ease-out;
}

/* Navbar */
.navbar {
    background-color: var(--theme-color-level-2);
}

.nav-link {
    color: var(--accent-text-color);
    font: var(--text-font);
    font-size: 1rem;
}

.nav-link:hover {
    color: var(--text-color);
    cursor: pointer;
}

.nav-item {
    width: 90%;
    text-align: center;
    border-top: var(--border);
}

@media (min-width: 768px) {
    .nav-item {
        border: none;
    }
}

.nav-item i {
    font-size: 1.5rem;
}

.nav-link i {
    font-size: 1.25rem;
}

.navbar-toggler span {
    position: absolute;
    width: 25px;
    height: 1px;
    border-radius: 4px;
    background-color: var(--text-color);
    transition: 0.5s;
}

.navbar-toggler span:nth-child(1) {
    transform: translateX(-1px) translateY(-3px);
}

.navbar-toggler span:nth-child(2) {
    transform: translateX(1px) translateY(3px);
}
.navbar-toggler:not(.collapsed) span:nth-child(1) {
    transform: translateX(0px) translateY(0px) rotate(45deg);
    transition-delay: 0.15s;
}

.navbar-toggler:not(.collapsed) span:nth-child(2) {
    transform: translateX(0px) translateY(0px) rotate(-225deg);
    transition-delay: 0.025s;
}

/* Footer */

.footer {
    position: relative;
    background-color: var(--theme-color-level-3);
    border-top: var(--border);
    z-index: 1000;
}

.footer-section-title {
    color: var(--text-color);
    font-size: 1.5rem;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 0.25rem;
}

.footer-section-link {
    margin-bottom: 0.125rem;
}

.footer-section-link a {
    color: var(--accent-text-color);
    font: var(--accent-text-font);
    font-size: 0.95rem;
    transition: 0.25s;
    white-space: nowrap;
}

.footer-section-link a:hover {
    color: var(--text-color);
    text-decoration: underline !important;
}

.footer-newsletter {
    border-top: var(--border);
}

@media (min-width: 768px) {
    .footer-newsletter {
        border: none;
    }
}

.footer-newsletter-title {
    color: var(--text-color);
    font: var(--text-font);
    font-size: 1.7rem;
}

.footer-newsletter-text {
    color: var(--accent-text-color);
    font: var(--accent-text-font);
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

#NewsletterButton {
    background-color: var(--button-color);
    color: white;
    font: var(--text-font);
    font-size: 1rem;
    padding-top: 8px;
    border: none;
}

#NewsletterButton:hover {
    background-color: var(--accent-button-color);
}

.footer-end {
    margin-top: 2rem !important;
    border-top: var(--border);
}

.footer-brand {
    padding-top: 0.2rem;
    color: var(--accent-text-color);
    font: var(--accent-text-font);
    font-size: 0.8rem;
    filter: grayscale(80%);
}

.footer-brand img {
    padding-bottom: 5px;
    margin-right: 4px;
}

.footer-social-link {
    padding-top: 10px;
}

.footer-social-link + .footer-social-link {
    margin-left: 0.5rem;
}

.footer-social-link a {
    color: var(--accent-text-color);
    font-size: 1.2rem;
    transition-duration: 0.5s;
}

@media (prefers-color-scheme: dark) {
    .footer-social-link a {
        filter: brightness(0.7);
    }
}

.footer-social-link:hover a {
    color: var(--text-color);
}