.DOMLoaded {
    #banner {
        .vertical {
            &.is-intersect:after {
                content: "";
                height: var(--height);
                background: var(--primary);
                position: absolute;
                top: 0;
                bottom: 0;
                left: 0;
                right: 0;
                z-index: 0;
                transition: all 1s;
                animation: fillDown 1s ease-in-out forwards;                
            }
        } 

        .right {
            .image {
                &.is-intersect img {
                    transform: translateY(0%);
                }               
            }
        }
    }
}


#banner {
    --radius: 96px;
    --margin: 64px;
    --border: 32px;

    position: relative;
    overflow: hidden;
    margin-top: 80px; 
    background: #000;
    padding: var(--border);
    margin-inline: var(--margin);
    border-top-left-radius: var(--radius);
    border-top-right-radius: var(--radius);
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;   

    @media only screen and (max-width: 980px) {
        --radius: 54px;
        --border: 16px;        
        --margin: 10px;  
    }

    &:before,
    &:after {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
    }    

    &:before {
        background: #fff;
        z-index: 0;
    }

    &:after {
        border: var(--border) solid #fff;
        border-top-left-radius: var(--radius);
        border-top-right-radius: var(--radius);
        border-bottom-left-radius: var(--radius);
        border-bottom-right-radius: var(--radius);
        background: transparent;
        pointer-events: none;
        z-index: 2;
    }  

    &[is-locked="yes"] {
        padding-bottom: 0px;

        &:after {
            border-bottom-left-radius: 0px;
            border-bottom-right-radius: 0px;   
            border-bottom: none;         
        }
    }

    .wrap {
        position: relative;
        z-index: 1;
        display: grid;
        grid-template-columns: 1fr 64px 1fr;
        overflow: hidden;
        background: #000;

        @media only screen and (max-width: 980px) {
            grid-template-columns: 1fr;         
        }

        .vertical {
            --height: 0%;
            background: var(--primary);
            background: #000;
            margin-top: 1px;
            position: relative;
            overflow: hidden;

            span:first-child {
                font-size: 34px;
                display: flex;
                aspect-ratio: 1/1;
                background: #fff;
                color: #000;
                align-items: center;
                justify-content: center;
                position: relative;
                z-index: 1;
            }

            @media only screen and (max-width: 980px) {
                display: none;         
            }

        }       


        .left {
            display: grid;
            gap: 64px;
            padding: 94px 64px;
            position: relative;
            align-content: space-between;
            overflow: hidden;

            @media only screen and (max-width: 980px) {
                padding: 94px 64px 64px 64px;  
            }

            &:after {
                content: "";
                z-index: 0;
                filter: grayscale();
                pointer-events: none;
                object-fit: cover;
                height: 50%;
                position: absolute;
                bottom: 0%;
                left: 0%;
                right: 0%;
                background-repeat: no-repeat;
                background-size: cover;
            }   

            .dots {
                width: 100%;
                filter: grayscale();
                pointer-events: none;
                object-fit: cover;
                height: 50%;
                position: absolute;
                bottom: 0%;
                left: 0%;
                right: 0%;

                @media only screen and (max-width: 980px) {
                    display: none;
                }
            }

            .carousel {
                display: flex;
                list-style: none;
                gap: 50px;
                flex-shrink: 1;
                overflow: hidden;

                .title {
                    position: relative;
                    min-width: 0;
                    flex-shrink: 0;
                    display: flex;
                    align-items: center;
                    justify-content: center;

                    .inner {
                        align-items: center;
                        display: flex;

                        span {
                            font-size: 320px;
                            font-weight: 500;
                            font-family: var(--font-heading);
                            text-transform: uppercase;
                            line-height: 0.8;                       
                        }

                        i {
                            font-size: 72px;
                            display: block;
                            margin-inline: 55px;
                            color: var(--primary);
                        }                
                    }
                }   

                @media only screen and (max-width: 980px) {
                    display: none;         
                }

            }

            .mobile-title {
                display: none;    
                font-size: 160px;
                font-weight: 500;
                font-family: var(--font-heading);
                text-transform: uppercase;
                line-height: 0.8;
                text-align: center;

                @media only screen and (max-width: 980px) {
                    display: block;         
                }
            }   

            .heading {
                font-size: 32px;

                @media only screen and (max-width: 980px) {
                    display: none;         
                }
            }

            .description {
                position: relative;
                z-index: 1;
                font-size: 20px;
                background: #000;
                border-radius: 32px;
                padding: 32px;
                border: 1px dashed #939393;

                @media only screen and (max-width: 980px) {
                    display: none;         
                }

            }
        }   

        .right {
            @media only screen and (min-width: 980px) {
                background-image: linear-gradient(rgba(255, 255, 255, 0.2) 0.05rem, transparent 0.05rem), linear-gradient(90deg, rgba(255, 255, 255, 0.2) 0.05rem, transparent 0.05rem);
                background-size: 25px 25px;
                background-position: center;
                padding-block: 96px;
                padding-inline: 64px;                
            }


            @media only screen and (max-width: 980px) {
                padding-block: 32px;
                padding-inline: 32px;
            }

            .image {
                img {
                    object-fit: cover;
                    z-index: 5;
                    aspect-ratio: 2 / 3;
                    border: 3px solid #fff;
                    border-radius: 64px;
                    background-color: #fff;
                    justify-content: center;
                    align-items: center;
                    height: 50em;
                    max-height: 70vh;
                    display: flex;
                    position: relative;
                    overflow: hidden;
                    text-align: center;
                    margin: auto;
                    transition: all 1s;
                    transform: translateY(200%);
                }
            }
        }
        
    }
}