/* Root Variables */
/* Dark theme fallback (default) */
:root {
    /* Colors */
    --color: white;
    --background-color: rgba(32, 32, 32, 1);

    --button-background-color: rgba(64, 64, 64, 1);
    --button-background-color-hover: rgba(96, 96, 96, 1);
    --button-background-color-active: rgba(48, 48, 48, 1);

    --banner-tint: rgba(255, 255, 255, 0.0625);

    /* Dimensions */
    --banner-rounding: 48px;
    --banner-margin: 25px;
    --banner-padding: 50px;
    --title-font-size: 100px;
    --subtitle-font-size: 28px;
    --subtitle-title-offset-y: -8px;
}

/* Light Theme Variables */
@media (prefers-color-scheme: light) {
    :root {
        --color: black;
        --background-color: rgba(255, 255, 255, 1);

        --button-background-color: rgba(230, 230, 230, 1);
        --button-background-color-hover: rgba(220, 220, 220, 1);
        --button-background-color-active: rgba(200, 200, 200, 1);

        --banner-tint: rgba(255, 255, 255, 0.0625);
    }
}

/* Responsive Adjustments */
@media (max-width: 768px) {
    :root {
        --banner-rounding: 36px;
        --banner-margin: 18.75px;
        --banner-padding: 37.5px;
        --title-font-size: 75px;
        --subtitle-font-size: 21px;
        --subtitle-title-offset-y: -6px;
    }
}

@media (max-width: 480px) {
    :root {
        --banner-rounding: 24px;
        --banner-margin: 12.5px;
        --banner-padding: 25px;
        --title-font-size: 50px;
        --subtitle-font-size: 14px;
        --subtitle-title-offset-y: -4px;
    }
}

/* Global Styles */
* {
    /* Boilerplate */
    margin: 0;
    padding: 0;
    border: 0;
    box-sizing: border-box;

    /* Typography */
    font-family: "Inter", sans-serif;

    /* Scroll bar */
    scrollbar-width: thick;

    transition: all 0.25s ease-in-out;
}

/* Body Styles */
body {
    display: flex;
    flex-direction: column;
    height: 100vh;

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

/* Text Styles */
p, h1, h2, h3, h4, h5, h6, ul, ol, li, button {
    margin-top: 10px;
    margin-bottom: 10px;
    color: var(--color);
}

hr {
    height: 1px;

    margin-top: 20px;
    margin-bottom: 20px;

    border: none;
    background-color: rgb(96, 96, 96);
}

/* Link Styles */
a {
    color: #0077cc;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
    color: #0087e8;
}

/* Button Styles */
button {
    padding: 10px;

    background-color: var(--button-background-color);
    color: var(--color);

    border: none;
    border-radius: 10px;

    cursor: pointer;
}

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

button:active {
    background-color: var(--button-background-color-active);
}

/* Content Styles */
.content-container {
    display: flex;
    flex-direction: column;
    align-items: center;

    overflow-y: scroll;
    flex-grow: 1;
}

.content {
    width: 100%;
    max-width: 50rem;
    padding: 2rem;
}

/* Copyright Card Style */
.copyright-card {
    display: flex;
    align-items: center;
    justify-content: center;

    background-color: var(--button-background-color);
    border-radius: 10px;
}

/* Banner Styles */
.banner {
    position: relative;

    margin-top: var(--banner-margin);
    margin-bottom: var(--banner-margin);

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    border-radius: var(--banner-rounding);

    background-image: url(banners/adwaita-d.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* Banner Wallpaper */
.banner::before {
    content: '';
    position: absolute;

    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    background-color: var(--banner-tint);
    border-radius: inherit;
}

/* Title and Subtitle Styles */
.title, .subtitle {
    margin: 0;

    font-family: "Exo", sans-serif;
    font-optical-sizing: auto;
    font-weight: 800;
    font-style: normal;
    user-select: none;
}

.title {
    padding-top: var(--banner-padding);
    line-height: var(--title-font-size);
    font-size: var(--title-font-size);
    color: white;
}

.subtitle {
    padding-bottom: calc(var(--banner-padding) + var(--subtitle-title-offset-y));
    line-height: var(--subtitle-font-size);
    font-size: var(--subtitle-font-size);
    color: white;

    transform: translateY(var(--subtitle-title-offset-y));
}

.nav-buttons {
    display: flex;
    gap: 20px;
}

#scroll-to-top {
    position: absolute;
    bottom: 20px;
    right: 20px;
    width: 40px;
    height: 40px;
    border-radius: 100%;
    display: none;
}