:root {
    --black: #12100E;
    --gold: #8F7D60;
    --gold-light: #D7BF98;

    --row-width: 1920px;
    --cols: 16;
}


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

html {
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;
    overflow-x: hidden;
    position: relative;

    background: var(--black);
    color: var(--gold-light);

    font-family: "montserrat", sans-serif;
}


.bg-dark,
.spikkels {
    position: fixed;
    inset: 0;

    pointer-events: none;
}

.bg-dark {
    z-index: 0;

    background: url("../images/background2.webp") center / cover no-repeat;
}

.spikkels {
    z-index: 1;

    background: url("../images/background.webp") center / 540px repeat;
    /* background: url("../images/background.jpg") center / 540px repeat; */

    opacity: 0.2;
    filter: blur(0.75px);
}


.wrapper {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr) repeat(var(--cols),
            minmax(0, calc(var(--row-width) / var(--cols)))) minmax(0, 1fr);
}

header,
main,
footer {
    grid-column: 3 / -3;
}

.text-lg {
    font-size: 10px;
}

.year {
    color: var(--gold);
    font-family: copperplate, sans-serif;
}

.logo {
    width: 100px;
}

.invisible {
    display: none;
}

header {
    grid-row: 1;
    z-index: 4;

    padding-top: 44px;
}

nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}


main {
    grid-row: 2;
}

.hero {
    position: relative;

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

    margin-top: 48px;
}

.hero-text {
    z-index: 4;

    width: 100%;
    margin-top: 32px;
    margin-bottom: 64px;

    font-size: 16px;
    font-weight: 500;
    line-height: 150%;
}

h1 {
    z-index: 4;

    width: 100%;

    color: var(--gold);

    font-family: copperplate, sans-serif;
    font-size: clamp(48px, 5.6vw, 80px);
    font-weight: 700;
    line-height: 100%;
    text-transform: uppercase;
}



.hero-visual {
    position: relative;

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

    width: 100%;
    max-width: 345px;
    min-height: 540px;
    height: 100%;
    margin: auto 0;

    overflow: hidden;
}

.crown-shell {
    position: absolute;
    left: 10%;
    bottom: 5%;
    z-index: 4;

    width: 150px;
}

.stack-grid {
    position: absolute;
    top: 5%;

    display: grid;
    overflow: hidden;
}

.stack-grid .laag {
    grid-area: 1 / 1;

    width: 250px;
    height: 100%;

    aspect-ratio: 37 / 81;
}


.rotate {
    transform: rotate(28.298deg);
}

.regular-crown {
    top: 10%;
    right: 0;
}

.diet-crown {
    left: 0;
}

.laag-1 {
    z-index: 1;

    mix-blend-mode: multiply;
}

.laag-2 {
    z-index: 2;
}

.laag-3 {
    z-index: 3;

    opacity: 0.4;
    mix-blend-mode: multiply;
}


button {
    appearance: none;

    margin: 24px 0 0;
    padding: 10px 16px;

    border: 0;

    background: var(--gold-light);
    color: var(--black);

    font: inherit;
    font-family: copperplate, sans-serif;

    cursor: pointer;
    transition: background-color 0.25s ease, color 0.25s ease, transform 0.2s ease, border-color 0.25s ease;
}

button:hover {
    background: var(--gold);
    transform: translateY(-1px);
    color: white;
}

.outline-btn {
    margin: 0 0 0 15px;

    border: 1px solid var(--gold-light);

    background: none;
    color: var(--gold-light);
}

.outline-btn:hover {
    background: var(--gold-light);
    color: var(--black);
    transform: translateY(-1px);
}

footer {
    grid-row: 3;
    z-index: 4;

    padding: 28px 0 40px;

    color: var(--gold);
    font-size: 13px;
}

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

footer a:hover {
    color: var(--gold-light);
}

@media (min-width: 768px) {
    .logo {
        width: 200px;
    }
}

@media (min-width: 992px) {


    .visible-large {
        display: block;
    }

    .invisible-large {
        display: none;
    }

    .text-lg {
        font-size: 24px;
    }



    .year {
        width: 300px;
        font-size: inherit;
    }

    .logo {
        width: 330px;
    }



    .hero {
        grid-template-columns: 1fr minmax(0, 200px) 1fr;
        gap: 20px;
        align-items: start;
    }

    h1 {
        max-width: 530px;
    }

    .hero-text {
        align-self: end;
        justify-self: end;

        width: 100%;
        max-width: 450px;
        margin-top: 32px;
        margin-bottom: 32px;

        font-size: 16px;
    }



    .hero-visual {
        align-self: center;

        max-width: 430px;

        overflow: visible;
    }

    .stack-grid {
        top: -10%;
    }

    .stack-grid .laag {
        width: 320px;
    }

    .regular-crown {
        top: 5%;
    }

    .diet-crown {
        top: 0;
    }

    .crown-shell {
        bottom: -15%;
        /* left: -50%; */
        left: 5%;

        width: 180px;
    }


    .outline-btn {
        margin: 0;
    }
}


@media (min-width: 1200px) {

    .hero {
        margin-bottom: 180px;
    }

    .hero-text {
        position: absolute;
        bottom: -30%;

        margin-bottom: 64px;
        width: 400px;
    }
}



@media (min-width: 1600px) {


    .hero {
        display: grid;

        grid-template-columns: 1fr minmax(0, 200px) 1fr;
        gap: 20px;
        align-items: start;

        height: 730px;
        margin-top: 0;
        margin-bottom: 0;
    }

    h1 {
        margin-top: 110px;
    }

    .hero-text {
        position: relative;
        bottom: 0;

        margin-top: auto;
    }


    .hero-visual {
        height: 720px;
    }

    .stack-grid {
        overflow: hidden;
        max-height: 800px;
    }

    .stack-grid .laag {
        width: 380px;
    }

    .regular-crown {
        top: 20px;
        right: -75%;
    }

    .diet-crown {
        top: 0;
        left: -75%;
    }

    .crown-shell {
        bottom: 1%;
        left: -50%;

        width: 180px;
    }



    footer {
        margin-top: 80px;
    }
}

.upper-gradient {
    height: 65vh;
    width: 100%;
    opacity: 0.8;
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.00) 0%, #000 100%);
    mix-blend-mode: multiply;
    position: absolute;
    top: 0;
    z-index: 2;
}

.bottom-gradient {
    height: 25vh;
    width: 100%;
    opacity: 0.6;
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.00) 0%, #000 100%);
    rotate: 180deg;
    mix-blend-mode: multiply;
    position: absolute;
    bottom: 0;
    z-index: 2;
}


:focus-visible {
    outline: 2px solid var(--gold-light);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}