:root {
    /* fonts */
    --font-body: "FiraSans", sans-serif;

    /* colors */
    --color-bg: #000;
    --color-text: #ddd;
    --color-accent: #fa0;
    --color-heading: red;

    /* glassmorphism */
    --glass-bg: rgb(0 0 0 / 25%);
    --glass-border: rgb(255 255 255 / 12%);
    --glass-shadow: 0 8px 32px rgb(0 0 0 / 75%);
    --glass-blur: 8px;
    --glass-saturation: 300%;

    /* sizing */
    --radius: 16px;
    --space: 1rem;
    --icon-size: 48px;

    /* typography */
    --summary-size: 2rem;
    --hero-size: 20vh;

    /* textures */
    --noise-opacity: 0.15;
    --noise-size: 256px;
}

@font-face {
    font-family: "FiraSans";
    src: url("fonts/FiraSans-Medium.ttf");
}

body {
    margin: 0;
    font-family: var(--font-body);
    background-color: var(--color-bg);

    background-image:
        url("textures/backdrop1.webp"),
        url("textures/backdrop2.webp");

    background-repeat: no-repeat;

    background-size:
        auto 100vh,
        auto 100vh;

    background-position:
        center 0,
        center 100vh;
}

.container {
    display: flex;
}

.left {
    flex: 1;
}

.right {
    flex: 2;
}

h1 {
    display: flex;
    justify-content: center;
    align-items: center;

    margin-block: 30vh;

    font-size: var(--hero-size);
    color: var(--color-heading);

    mix-blend-mode: exclusion;
}

details {
    position: relative;
    overflow: hidden;

    margin: var(--space);
    padding: var(--space);

    color: var(--color-text);

    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius);
    box-shadow: var(--glass-shadow);

    backdrop-filter:
        blur(var(--glass-blur))
        saturate(var(--glass-saturation));

    -webkit-backdrop-filter:
        blur(var(--glass-blur))
        saturate(var(--glass-saturation));
}

/* acrylic noise */
details::before {
    content: "";

    position: absolute;
    inset: 0;
    z-index: 1;

    pointer-events: none;

    background:
        url("textures/LDR_LLL1_0.png")
        repeat;

    background-size: var(--noise-size);

    mix-blend-mode: color-burn;
    opacity: var(--noise-opacity);
}

/* keep content above noise */
details > * {
    position: relative;
    z-index: 2;
}

details > summary {
    display: flex;
    align-items: center;

    font-size: var(--summary-size);
    color: var(--color-accent);

    cursor: pointer;
}

details > summary::marker {
    content: "";
}

details > summary > img {
    margin-right: 2rem;
}

.icon {
    width: var(--icon-size);
    filter: drop-shadow(0 0 1px black);
}

a {
    color: var(--color-accent);
}

img.content {
    width: 100%;
    border: 3px solid var(--color-accent);
    border-radius: var(--radius);
}

iframe.video_embed {
    width: 100%;
    aspect-ratio: 16/9;
    height: auto;
    border: 3px solid var(--color-accent);
    border-radius: var(--radius);
}

p {
    text-align: justify;
}

.container {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.gallery {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 1fr;
    gap: var(--space);
}

.gallery > * {
    box-sizing: border-box;
}

@media (max-width: 1300px) {
    .container {
        flex-direction: column;
    }

    h1 {
        font-size: clamp(3rem, 12vw, 8rem);
        margin-block: 10vh;
        padding-left: 0;
        text-align: center;
    }

    .left {
        flex: 1;
        width: 100%;
    }

    .right {
        flex: 1;
        width: 100%;
    }

}
