
:root {
    --back-color: #fcfcfc;
    --text-color: #202020;
}

* { box-sizing: border-box;}

html {
  scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 0;
    font-family: 'Roboto Flex';
    color: inherit;
    text-decoration: none;
    font-variation-settings: "wght" 400, "wdth" 190;

}

header {
    position: fixed; 
    top:0px;
    left: 0px;
    display: flex;
    justify-content: center;
    width: 100%;
    z-index: 1000;
    padding: 3rem;
}

label.gen-images {
    position: fixed;
    transform: rotate(-90deg) translateX(50%);
    top: 50%;
    right: 1.5rem;
    font-family: 'Roboto Flex', sans-serif;
    font-size: .75rem;
    opacity: .75;
    letter-spacing: 1px;
    transform-origin: center right;
    z-index: 1000;
    @media (max-width: 768px) {
        right: 1rem;
        font-size: .66rem;
    }
}

section.hero {
    position:sticky; top:0px;
    width: 100%;
    min-height: 100dvh;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    color: var(--back-color);
    gap:2rem;

    @media (max-width: 1024px) {
        position: relative;

    }

    #logo {
        height: 2.5rem;
    }

    .cursor-images {
        z-index:-1;
    }

    .cursor-images img {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        display:none;
    }
}

.cursor-images img {
    max-width: 100%;
}

section {
    background-color: var(--back-color);
    color: var(--text-color);
    position: relative;
    z-index: 100;
    padding: 5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    @media (max-width: 768px) {
        padding: 5rem 2rem;
    }
}

nav {
    position: sticky;
    top: 0;
    display: flex;
    justify-content: center;
    gap: 4rem;
    align-items: center;
    padding: 1rem;
    z-index: 1500;
    background: white;

    > div {
        display: flex;
        gap: 2rem;
        align-items: center;
    }
}

h1, h2, h3, h4 {
    font-family: 'Roboto Flex', sans-serif;
    margin: 0;
    max-width: 20em;
}

h1 {
    font-size: 20dvh;
    text-transform: uppercase;
    font-variation-settings: "wght" 700, "wdth" 30;
    letter-spacing: .0125em;
    text-wrap: balance;
    text-align: center;
    line-height: .8;
    @media (max-width: 768px){ 
        font-size: 16dvh;
    }    
    @media (max-width: 576px){ 
        font-size: 12dvh;
    }
}

h2 {
    font-size: 7dvh;
    text-transform: uppercase;
    font-variation-settings: "wght" 600, "wdth" 50;
    letter-spacing: .0125em;
    text-wrap: balance;
    text-align: center;
    line-height: .9;
    @media (max-width: 768px){ 
        font-size: 5.6dvh;
    }    
    @media (max-width: 425px){ 
        font-size: 4.2dvh;
    }    
}

h3 {
    font-size: 2rem;
    font-variation-settings: "wght" 500, "wdth" 90;
    letter-spacing: .0125em;
    text-wrap: balance;
    text-align: center;
    line-height: 1.2;
    @media (max-width: 768px){ 
        font-size: 1.6rem;
    }    
    @media (max-width: 425px){ 
        font-size: 1.2rem;
    }     
}

h4 {
    font-size: 1.5rem;
    font-variation-settings: "wght" 400, "wdth" 110;
    letter-spacing: .0125em;
    text-wrap: balance;
    text-align: center;
    line-height: 1.4;
    @media (max-width: 992px){ 
        font-size: 1.2rem;
    }    
    @media (max-width: 425px){ 
        font-variation-settings: "wght" 500, "wdth" 190;
        font-size: 1rem;
    } 
}

button {
    font-family: 'Roboto Flex', sans-serif;
    padding: 1rem;
    color: var(--back-color);
    background-color: var(--text-color);
    border: 2px solid var(--text-color);
    font-size: 1rem;
    font-variation-settings: "wght" 500, "wdth" 190;
    letter-spacing: .0125em;
    text-wrap: balance;
    text-align: center;
    line-height: 1.6;    
    cursor: pointer;
    &:hover {
        background-color: var(--back-color);
        color: var(--text-color);
        border: 2px solid var(--text-color);        
    }
}

p {
    max-width: 30em;
    line-height: 1.5;
}

a {
    font-family: 'Roboto Flex';
    color: inherit;
    text-decoration: none;
    font-variation-settings: "wght" 400, "wdth" 190;
    font-variation-settings: inherit;
}

section.clipping {
    padding: 0;
    position: relative;

    --flex-column-margin: 33%;
    --flex-column-margin-open: 25%;    

    @media (max-width: 1320px) {
        --flex-column-margin: 50%;
    }

    @media (max-width: 768px) {
        gap:0;    
    }


    .clipped {
        .flex-column-center {
            margin-left: var(--flex-column-margin);
            @media (max-width: 768px) {        
                margin-left: 0;
            }
        }
    }

    > div:not(.clipped){
        .flex-column-center {
            margin-left: calc(-1 * var(--flex-column-margin));
            @media (max-width: 768px) {
                margin-left: 0;
            }
        }            
    }

    &.show-right {
        .clipped {
            .flex-column-center {
                margin-left: var(--flex-column-margin-open);
            }
            clip-path: inset(0 0 0 25%);
            @media (max-width: 768px) {
                clip-path: none;
            }            
        }
    }
    &.show-left {
        .clipped {
            clip-path: inset(0 0 0 75%);
            @media (max-width: 768px) {
                clip-path: none;
            }
        }
        > div:not(.clipped){
            .flex-column-center {
                margin-left: calc(-1 * var(--flex-column-margin-open));
            }            
        }
    } 

    > div {
        width: 100%;
        height: 100dvh;
        position: relative;

        @media (max-width: 768px) {
            height: initial;
        }

        > img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            filter: brightness(0.8);
            @media (max-width: 768px) {
                position: absolute;
            }
        }
        &.clipped {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            clip-path: inset(0 0% 0 50%); 
            transition: clip-path 0.3s ease;
            z-index:100;    
            @media (max-width: 768px) {
                position:relative;
                clip-path: none;
                position: relative;
            }

        }
        .container.flex {
            position: absolute;
            z-index: 100;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            display: flex;
            justify-content: space-evenly;
            align-items:center;
            flex-direction: column;
            margin:auto;
            color: white;
            .flex-column-center {
                transition: .4s ease-out;
                h4 { max-width: 20em; min-height:6em; }
            }
            @media (max-width: 768px) {
                position: relative;
                height: fit-content;
                padding: 5rem 0;
                gap: 2rem;
            }
        }
    }
}

.hide-on-mobile {
    @media (max-width: 768px) {
        display:none;
    }
}

ol {
    li {
        &::marker {
            font-size: 2rem;
        }
        h2 {
            text-align: start;
            max-width: initial;
        }
    }
}

.scrolling-content {
    width: 800px;
    max-width: 90%;
    position: relative;
    &.aspect-ratio-4-3 {
        aspect-ratio: 4 / 3;
    }
    &.aspect-ratio-16-9 {
        aspect-ratio: 16 / 9;
    }    
    > * {
        position:absolute;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        display:none;
        &.active { display:block;}
    }

    &.contain > img { object-fit: contain; }

}

label.label {
    position: absolute;
    left: 0;
    top: 50%;
    z-index: 100;
    width: fit-content;
    height: fit-content;
    display: block;
    transform: translate(-0%, -50%);
    font-size: 2rem;
    text-transform: uppercase;
    font-variation-settings: "wght" 600, "wdth" 30;
    letter-spacing: .0125em;
    text-wrap: balance;
    text-align: center;
    line-height: .8;
    width: fit-content !important;
    color: black;
    background: white;
    padding: 1rem;

    @media (max-width:992px) {
        font-size: 1rem;
        padding: .5rem;
    }

}

section.sticky {
    display:flex;
    flex-direction: row;
    align-items:start;
    justify-content: center;

    h3 {
        position:sticky;
        top:0;
        height: 100dvh;
        display: flex;
        flex-direction: column;
        justify-content: start;
        align-items: center;
        flex-basis: 50%;
        text-align: left;
        padding: 6rem 1em;
        max-width: 20em;
    }
}

section.meta-sticky {
    display:flex;
    flex-direction: row;
    align-items:start;
    justify-content: center;

    > div {

        > *, > div > video {
            position: sticky;
            top: 3rem;
            width: 100%;
            height: 100%;
            max-width: 90%;            
            aspect-ratio: 16 / 9;
            @media (max-width:576px) {
                max-width: 100%;
            }

        }

        h3 {
            display:flex;
            align-items: center;
            @media (max-width: 768px) {
                aspect-ratio: initial;
                padding-bottom: 3rem;
            }
        }

        .scrolling-content {            
            > * {
                width: 100%;
            }
        }
        > div > video {
            object-fit: cover; 
            max-width: initial;
        }
    }
}

.flex-column-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

.image-center {
    position:relative;
    > img {
        max-width: 100%;
    }
    > *:not(img) {
        position:absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
}

.collapse {
    cursor:pointer;
    transition: .4s ease-out;
    .collapsed {
        display: flex;
        overflow: hidden;
        max-height: 0px;
        transition: .4s ease-out;

        @media (max-width: 992px) {
            flex-direction: column;
        }

        > * {
            flex-basis: 50%;
            max-width: 50%;

            @media (max-width: 992px) {
                flex-basis: 100%;
                max-width: 100%;
            }

        }

        img { height: auto; object-fit: cover; }

        h4 {
            text-transform: initial;
            text-align: left;
            padding: 2rem;
        }
    }
}

.collapse.open {
    margin: 2em 0;
    .collapsed {
        max-height: 80dvh;
        margin: 2rem 0 5rem;
        align-items:center;

        @media (max-width: 992px) {
            max-height: 100dvh;
            margin-left: -2rem;
            max-height: initial;
        }

        ul {
            list-style-type:disc ;
        }
        label {
            font-variation-settings: "wght" 300, "wdth" 150;
            display: block;
            font-size: .875rem;
            margin-top: 1rem;
        }
        img {
            aspect-ratio: 4/3;
        }
        @media (max-width: 992px) {
            h4 { order: 2; }
        }
    }
}

.flex-col {
    display: flex;
    flex-direction: column;
    gap: 3rem;
    align-items: center;
}

.flex-row {
    display: flex;
    gap: 3rem;
    flex-wrap: wrap;
    justify-content: center;
    > * {
        flex: 1;
        max-width: 20em;
        @media (max-width: 1024px) {
            flex-basis: 50%;
        }
        @media (max-width: 576px) {
            flex-basis: 100%;
        }        
    }

}

.lis { 
    ul {
        padding: 0;
        list-style: none;
        text-align: center;
        li {
            padding: .5rem;
            text-wrap: balance;
        }
    }
}

footer {
    font-family: 'Roboto Flex', sans-serif;
    background: var(--back-color);
    position: relative;
    z-index: 100;
    display: flex;
    padding: 1rem;
    gap: 1rem;
    justify-content: center;
    font-size: .875rem;

    @media (max-width: 576px) {
        flex-direction: column;
        align-items: center;
        font-size: .75rem;
        display: inline-block;
        text-align: center;
        width: 100%;

        > * {
            display: inline;
            &:after {
                content: '. ';
            }
        }
    }
}