/* @font-face {
    font-family: JupiterMission;
    src: url(../fonts/JupiterMissionItalic.woff);
    font-style: italic;
}
@font-face {
    font-family: JupiterMission;
    src: url(../fonts/JupiterMissionRegular.woff);
} */
@font-face {
    font-family: leddot;
    src: url(../fonts/LED-Dot-Matrix.ttf);
}
@font-face {
    font-family: saga;
    src: url(../fonts/SEGA.TTF);
    font-weight: 400;
}
*{
    margin: 0;
    padding: 0;
    outline: 0;
    box-sizing: border-box;
}
body{
    background-color: #000000;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    color: #ffffff;
    cursor: url('../image/cursor.png') 1 1, auto;
}
a{
    cursor: url('../image/cursor.png') 1 1, auto;
}
.preloader{
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: #000000;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 100000;
}
.preloader.opacity{
    z-index: 100000;
}
/* .preloader.hide{
    display: none;
}
.preloader .light{
    position: relative;
}
.preloader .light::before{
    content: '';
    width: 100px;
    height: 100px;
    position: absolute;
    transform: scale(2);
    border-radius: 100px;
    background: radial-gradient(#ffffff, #ffffff4c,#ffffff00, #ffffff00);
    animation: light 2s infinite;
    opacity: 0;
}
@keyframes light {
    0%{opacity: 0;}
    60%{opacity: 1;}
    100%{opacity: 0;}
} 
.preloader img{
    width: 100px;
    position: relative;
}
*/
.preloader svg{
    width: 200px;
}
.preloader .preloader-b{
    opacity: 0;
    animation: opacityflicker 3s linear infinite;
    animation-delay: 1s;
}
.preloader .preloader-d{
    opacity: 0;
    animation: opacityflicker 3s linear infinite;
    animation-delay: 1s;
}

@keyframes opacityflicker {
	0%, 19%, 22%, 62%, 64%, 70%, 100% {
		opacity: 0.99;
	}
	20%, 21%, 63%, 65%, 69.9% {
		opacity: 0.4;
		text-shadow: none;
	}
}


.header.sticky{
    height: 110vh;
    position: relative;
    line-height: 0;
    z-index: 99995;
    background-color: #000;
}
/* Masks page content scrolling up behind the pinned logo / menu so nothing overlaps them */
body::before{
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 118px;
    background: linear-gradient(to bottom, #000 0, #000 84px, rgba(0,0,0,0) 118px);
    z-index: 99990;
    pointer-events: none;
}
.header.sticky .logo-wrapper{
    padding-top: calc(100vh - 304px);
    display: flex;
    justify-content: end;
    height: 100%;
    align-items: flex-start;
}
.header.sticky .logo{
    padding: 20px 40px;
    width: 670px;
    position: sticky;
    top: 0;
    color: #fff;
    display: block;
}
.header.sticky img{
    display: inline-block;
    width: 100%;
}
.header.sticky svg{
    width: 100%;
    /* filter: drop-shadow(0 0 10px #fff); */
    animation: flicker 3s linear infinite;
}
.header.sticky .logo.moved svg{
    animation: none;
}
.header.sticky .mobile-menu{
    display: none;
}

body{
    overflow-x: hidden;
}
.header.show-toggler,
.header:not(.sticky){
    padding: 20px 40px;
    display: flex;
    justify-content: space-between;
}
.header:not(.sticky) .logo{
    display: block;
    width: 140px;
    position: fixed;
    top: 18px;
    left: 40px;
    z-index: 99998;
}
/* reserve the space the now-fixed logo used to occupy */
.header:not(.sticky){
    min-height: 92px;
}
/* Homepage: once the intro logo animation finishes, pin it so the name stays visible */
.header.sticky.show-menu-toggler .logo{
    position: fixed;
    top: 0;
    z-index: 99998;
}
.header .mobile-menu{
    position: fixed;
    top: 25px;
    right: 40px;
    z-index: 99999;
    margin: 0;
}
.header .menu-toggler{
    position: relative;
    cursor: pointer;
    z-index: 99999;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-evenly;
    width: 44px;
    height: 44px;
    padding: 0;
    border: none;
    background: none;
}
.header .menu-toggler .bar{
    display: block;
    width: 28px;
    height: 2px;
    border-radius: 2px;
    transition: transform 0.4s cubic-bezier(0.23, 1, 0.32, 1),
                opacity 0.3s ease,
                box-shadow 0.3s ease;
    transform-origin: center;
}
.header .menu-toggler .bar:nth-child(1){
    background: #ffce1b;
    box-shadow: 0 0 6px #ffce1b, 0 0 14px rgba(255,206,27,0.6);
}
.header .menu-toggler .bar:nth-child(2){
    background: #ff1d0d;
    box-shadow: 0 0 6px #ff1d0d, 0 0 14px rgba(255,29,13,0.6);
}
.header .menu-toggler .bar:nth-child(3){
    background: #219ae5;
    box-shadow: 0 0 6px #219ae5, 0 0 14px rgba(33,154,229,0.6);
}
/* Hover: glows intensify */
.header .menu-toggler:hover .bar:nth-child(1){
    box-shadow: 0 0 10px #ffce1b, 0 0 24px rgba(255,206,27,0.9);
}
.header .menu-toggler:hover .bar:nth-child(2){
    box-shadow: 0 0 10px #ff1d0d, 0 0 24px rgba(255,29,13,0.9);
}
.header .menu-toggler:hover .bar:nth-child(3){
    box-shadow: 0 0 10px #219ae5, 0 0 24px rgba(33,154,229,0.9);
}
/* Open: top + bottom cross into X, middle fades */
.header .menu-toggler.toggle .bar:nth-child(1){
    transform: translateY(11px) rotate(45deg);
}
.header .menu-toggler.toggle .bar:nth-child(2){
    opacity: 0;
    transform: scaleX(0);
}
.header .menu-toggler.toggle .bar:nth-child(3){
    transform: translateY(-11px) rotate(-45deg);
}
.header .mobile-menu .menu{
    position: absolute;
    right: 0;
    background: #000000;
    margin-top: -65px;
    margin-right: -20px;
    padding: 85px 30px 30px;
    /* transform: translate(100%); */
    opacity: 0;
    pointer-events: none;
    transition: .3s;
    max-width: 100vw;
}
.header .mobile-menu .menu.show-menu{
    transform: translate(0);
    z-index: 9999;
    opacity: 1;
    pointer-events: all;
}
.header .mobile-menu .menu .links a{
    color: #fff;
    font-size: 30px;
    font-family: leddot;
    text-decoration: none;
    padding: 10px;
    display: inline-block;
    border-radius: 5px;
    transition: .3s;
    white-space: nowrap;
    line-height: 1;
}
.header .mobile-menu .menu .link:nth-child(4n+1) a:hover { 
    background-color: #ffce1b; 
}   
.header .mobile-menu .menu .link:nth-child(4n+2) a:hover { 
    background-color: #ff1d0d; 
}   
.header .mobile-menu .menu .link:nth-child(4n+3) a:hover { 
    background-color: #219ae5; 
}  
.header .mobile-menu .menu .link:nth-child(4n+4) a:hover { 
    background-color: #7d67c2; 
}

.header.show-menu-toggler{
    display: flex;
    justify-content: space-between;
}
.header.show-menu-toggler .mobile-menu{
    display: block;
}
.header.show-menu-toggler .logo-wrapper{
    width: 100%;
    margin-right: -80px;
}

@keyframes flicker {
    0%, 19%, 22%, 62%, 64%, 70%, 100% {
        opacity: 0.99;
        filter: 
        /* drop-shadow(-1px -1px 0 rgba(255,255,255, 0.4)) */
        /* drop-shadow(1px -1px 0 rgba(255,255,255, 0.4)) */
        /* drop-shadow(-1px 1px 0 rgba(255,255,255, 0.4)) */
        /* drop-shadow(1px 1px 0 rgba(255,255,255, 0.4)) */
        drop-shadow(0 -2px 5px)
        /* drop-shadow(0 0 2px) */
        /* drop-shadow(0 0 5px #999) */
        drop-shadow(0 0 10px #e9e9e9)
        drop-shadow(0 2px 3px #000)
        ;
	}
	20%, 21%, 63%, 65%, 69.9% {
        opacity: 0.4;
		text-shadow: none;
	}
}

@media screen and (max-width:767px) {
    .header.sticky .logo-wrapper{
        padding-top: calc(100vh - 320px);
    }
    .header.sticky .logo{
        width: 320px;
        padding: 20px 25px 20px;
    }
    .header:not(.sticky){
        padding: 20px 25px;
        /* width: 190px; */
    }
    .header:not(.sticky) .logo{
        width: 140px;
    }
    .header .mobile-menu{
        top: 20px;
        right: 20px;
    }
    .header .mobile-menu .menu{
        width: 100vw;
    }
}


.about-us{
    padding: 50px 0;
}
.about-us .container{
    padding: 0 40px;
}
.about-us h2{
    color: #fff;
    font-size: 40px;
    margin-bottom: 10px;
    font-family: saga;
    font-weight: 400;
}
.about-us p{
    color: #fff;
    font-size: 40px;
    max-width: 600px;
    font-family: saga;
    font-weight: 400;
}

@media screen and (max-width:767px) {
    .about-us .container{
        padding: 0 25px;
    }
    .about-us h2{
        font-size: 25px;
    }
    .about-us p{
        font-size: 25px;
    }
}

.home-intro{
    padding: 60px 0 20px;
}
.home-intro .container{
    padding: 0 40px;
    perspective: 1200px;
}
.home-intro-title{
    color: #ffffff;
    font-family: saga;
    font-weight: 400;
    font-size: 40px;
    margin-bottom: 24px;
    text-align: center;
    transform-origin: bottom;
    transform-style: preserve-3d;
    transform: rotateX(90deg) skewX(20deg);
    transition: transform 4.6s cubic-bezier(0.22, 1, 0.36, 1);
}
/* Opening line */
.home-intro-lead{
    color: #ffffff;
    font-family: leddot;
    font-size: 26px;
    line-height: 1.45;
    max-width: 48ch;
    margin: 0 auto 42px;
    text-align: center;
    text-wrap: balance;
    transform-origin: bottom;
    transform-style: preserve-3d;
    transform: rotateX(90deg) skewX(20deg);
    transition: transform 4.6s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: .35s;
}
/* Bullets — each folds up on its own, staggered like the Featured Projects list */
.home-intro-list{
    list-style: none;
    font-family: leddot;
    /* explicit px: a `ch` value here would resolve against the ul's own font,
       not leddot, and come out far too narrow */
    max-width: 820px;
    margin: 0 auto;
    text-align: left;
}
.home-intro-list li{
    position: relative;
    padding-left: 42px;
    margin-bottom: 22px;
    color: #ffffff;
    font-family: leddot;
    font-size: 22px;
    line-height: 1.45;
    transform-origin: bottom;
    transform-style: preserve-3d;
    transform: rotateX(90deg) skewX(20deg);
    transition: transform 4.6s cubic-bezier(0.22, 1, 0.36, 1);
}
/* Marker = the "A" (lampshade) from the BAD logo, used as a mask so each
   bullet keeps its own brand colour and glow. */
.home-intro-list li::before{
    content: "";
    position: absolute;
    left: 0;
    top: .30em;
    width: 22px;
    height: 22px;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='255.93 0 281.43 278.34'%3E%3Cpath d='M537.36,278.32H255.93L347.45,1.02l1.5-.54h90.3c3.6-.27,3.05,4.41,4.54,6.67l93.57,271.17Z'/%3E%3C/svg%3E") no-repeat center / contain;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='255.93 0 281.43 278.34'%3E%3Cpath d='M537.36,278.32H255.93L347.45,1.02l1.5-.54h90.3c3.6-.27,3.05,4.41,4.54,6.67l93.57,271.17Z'/%3E%3C/svg%3E") no-repeat center / contain;
}
/* tiny stagger only — each bullet now triggers as it scrolls into view */
.home-intro-list li:nth-child(2){ transition-delay:.10s; }
.home-intro-list li:nth-child(3){ transition-delay:.20s; }
.home-intro-list li:nth-child(4){ transition-delay:.30s; }
.home-intro-list li:nth-child(1)::before{ background-color:#ffce1b; filter:drop-shadow(0 0 7px rgba(255,206,27,.8)); }
.home-intro-list li:nth-child(2)::before{ background-color:#ff1d0d; filter:drop-shadow(0 0 7px rgba(255,29,13,.8)); }
.home-intro-list li:nth-child(3)::before{ background-color:#219ae5; filter:drop-shadow(0 0 7px rgba(33,154,229,.8)); }
.home-intro-list li:nth-child(4)::before{ background-color:#7d67c2; filter:drop-shadow(0 0 7px rgba(125,103,194,.8)); }
.home-intro-cta{
    text-align: center;
    margin-top: 50px;
    transform-origin: bottom;
    transform-style: preserve-3d;
    transform: rotateX(90deg) skewX(20deg);
    transition: transform 4.6s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: 1.75s;
}
.home-intro.in-view .home-intro-title,
.home-intro.in-view .home-intro-lead,
.home-intro.in-view .home-intro-cta{
    transform: rotateX(0deg) skewX(0deg);
}
/* bullets unfold individually, as each one scrolls into view */
.home-intro-list li.in-view{
    transform: rotateX(0deg) skewX(0deg);
}
@media screen and (max-width:767px) {
    .home-intro .container{
        padding: 0 25px;
    }
    .home-intro-title{
        font-size: 25px;
    }
    .home-intro-lead{
        font-size: 19px;
        margin-bottom: 32px;
    }
    .home-intro-list li{
        font-size: 17px;
        padding-left: 26px;
        margin-bottom: 16px;
    }
    .home-intro-list li::before{
        width: 9px; height: 9px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .home-intro-title,
    .home-intro-lead,
    .home-intro-list li,
    .home-intro-cta{
        transition: none;
        transform: none;
    }
}


.featured-project {
    /* padding: 50vh 0 0; */
    padding: 10vh 0 0;
    background-image: url(../image/featured-projects-section-background-bad-lighting-design.svg);
    background-attachment: fixed;
}
.featured-project .container{
    padding: 0 40px;
}
.featured-project .section-title{
    position: sticky;
    top: 130px;
    margin-bottom: 40px;
}
.featured-project .title{
    font-size: 40px;
    color: #ffffff;
    font-family: saga;
    font-weight: 400;
}
.featured-project .projects{
    padding-top: 100vh;
    display: flex;
}
.featured-project .project{
    padding-bottom: 80vh;
    position: relative;
    perspective: 900px;
    position: sticky;
}
.featured-project .project-group{
    width: 60%;
}
.featured-project .project-group::after{
    content: "";
    display: block;
    height: 100vh;
}
.featured-project .project-group .image{
    display: none;
}
.featured-project .project-group .image .image-inner{
    width: 100%;
    padding-bottom: 90%;
    position: relative;
}
.featured-project .project-group .image .image-inner img{
    width: 100%;
    height: 100%;
    position: absolute;
    top:0;
    left: 0;
    object-fit: cover;
}
.featured-project .project-group-image{
    width: 40%;
}
.featured-project .project-group-image .image{
    position: sticky;
    top:100px;
    min-height: calc(80vh + 55px);
}
.featured-project .project-group-image .image .image-inner{
    padding-bottom: 90%;
    position: relative;
}
.featured-project .project-group-image .image .image-inner img{
    width: 100%;
    height: 100%;
    position: absolute;
    top:0;
    left: 0;
    object-fit: cover;
}
.featured-project .project-group-image .image img{
    width: 100%;
}
/* .featured-project .project:last-child{
    background-color: #000000;
} */
.featured-project .project:nth-last-child(2):empty{
    top: 0;
    background-color: #000000;
    z-index: 999;
    padding-bottom: 100vh;
}
.featured-project .project:last-child{
    padding-bottom: 80vh;
}
.featured-project .project a{
    color: #fff;
    font-size: 36px;
    font-family: leddot;
    text-decoration: none;
    padding: 10px;
    display: inline-block;
    transform-style: preserve-3d;
    transform: rotateX(90deg) skewX(20deg);
    transform-origin: bottom;
    border-radius: 5px;
}
.featured-project .project:nth-child(4n+1) a:hover { 
    background-color: #ffce1b; 
}   
.featured-project .project:nth-child(4n+2) a:hover { 
    background-color: #ff1d0d; 
}   
.featured-project .project:nth-child(4n+3) a:hover { 
    background-color: #219ae5; 
}  
.featured-project .project:nth-child(4n+4) a:hover { 
    background-color: #7d67c2; 
}
.featured-project .project:nth-child(1){
    top:190px;
}
.featured-project .project:nth-child(2){
    top:240px;
}
.featured-project .project:nth-child(3){
    top:290px;
}
.featured-project .project:nth-child(4){
    top:340px;
}
.featured-project .project:nth-child(5){
    top:390px;
}
.featured-project .project:nth-child(6){
    top:440px;
}
.featured-project .project:nth-child(7){
    top:490px;
}
.featured-project .project:nth-child(8){
    top:540px;
}
.featured-project .project:nth-child(9){
    top:590px;
}
.featured-project .project:nth-child(9):empty{
    width: 100vw;
    margin-left: -40px;
}
.featured-project .project:nth-child(10){
    top:640px;
}
.featured-project .project.active a{
    animation: sk 3s forwards;
}
@keyframes sk {
    0%{
        transform: rotateX(90deg) skewX(20deg); 
    }
    100%{
        transform: rotateX(0deg) skewX(0deg); 
    }
}

@media screen and (max-width:1025px) {
    .featured-project .project a{
        font-size: 25px;
    }
    .featured-project .project-group-image .image{
        min-height: calc(80vh + 43px);
    }
}
@media screen and (max-width:767px) {
    .featured-project .container{
        padding: 0 25px;
    }
    .featured-project .title{
        font-size: 25px;
    }
    .featured-project .project{
        background-color: #000;
    }
    .featured-project .project a{
        color: #fff;
        font-size: 22px;
    }
    .featured-project .project:nth-child(1){
        top:170px;
    }
    .featured-project .project:nth-child(2){
        top:210px;
    }
    .featured-project .project:nth-child(3){
        top:250px;
    }
    .featured-project .project:nth-child(4){
        top:290px;
    }
    .featured-project .project:nth-child(5){
        top:330px;
    }
    .featured-project .project:nth-child(6){
        top:370px;
    }
    .featured-project .project:nth-child(7){
        top:410px;
    }
    .featured-project .project:nth-child(8){
        top:450px;
    }
    .featured-project .project:nth-child(9){
        top:490px;
    }
    .featured-project .project:nth-child(9):empty{
        margin-left: -25px;
    }
    .featured-project .project:nth-child(10){
        top:530px;
    }
    .featured-project .project-group{
        width: 100%;
    }
    .featured-project .project-group::after{
        height: 60vh;
    }
    .featured-project .project-group .image{
        display: block;
    }
    .featured-project .project-group .image img{
        width: 100%;
    }
    .featured-project .project-group-image{
        display: none;
    }
}



.spaces .container{
    padding: 0 40px;
}
.spaces .section-title{
    margin-bottom: 30px;
}
.spaces .title{
    font-size: 40px;
    color: #ffffff;
    font-family: saga;
    font-weight: 400;
}
.spaces .links{
    padding-bottom: 100px;
}
.spaces .links a{
    color: #fff;
    font-size: 40px;
    font-family: leddot;
    text-decoration: none;
    padding: 10px;
    display: inline-block;
    border-radius: 5px;
    transition: .3s;
}
.spaces .link:nth-child(4n+1) a:hover { 
    background-color: #ffce1b; 
}   
.spaces .link:nth-child(4n+2) a:hover { 
    background-color: #ff1d0d; 
}   
.spaces .link:nth-child(4n+3) a:hover { 
    background-color: #219ae5; 
}  
.spaces .link:nth-child(4n+4) a:hover { 
    background-color: #7d67c2; 
}


@media screen and (max-width:767px) {
    .spaces .container{
        padding: 0 25px;
    }
    .spaces .title{
        font-size: 25px;
    }
    .spaces .links a{
        font-size: 25px;
    }
}


.footer{
    padding: 30px 0;
}
.footer .container{
    padding: 0 40px;
}
.footer .logo-wrap{
    max-width: 90%;
    margin: auto;
    width: 230px;
}
.footer .footer-links{
    display: flex;
    justify-content: center;
    padding: 22px 10px ;
}
.footer .footer-links .link:not(:last-child){
    border-right: 2px solid #ffffff;
}
.footer .footer-links a{
    color: #fff;
    font-size: 15px;
    font-family: leddot;
    text-decoration: none;
    padding: 10px 0;
    display: inline-block;
    padding: 0 20px;
}
.footer .footer-links a:hover{
    color: #ffce1b;
}
.footer .copyright{
    font-size: 14px;
    color: #ffffff;
    font-family: "acumin-variable", sans-serif;
    text-align: center;
}

@media screen and (max-width:767px) {
    .footer .container{
        padding: 0 25px;
    }
    .footer .footer-links{
        flex-direction: column;
        padding-left: 0;
        padding-right: 0;
    }
    .footer .footer-links .link{
        text-align: center;
    }
    .footer .footer-links .link:not(:last-child){
        border-right: 0;
    }
    .footer .footer-links a{
        padding: 5px 0;
        text-align: center;
    }
    .footer .copyright{
        font-size: 12px;
    }
}


.gallery .container{
    padding: 0 40px;
}
.gallery .row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    grid-auto-flow: dense;
}
.gallery .row .col {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 8px;
}
/* projects tagged .big take a 2x2 feature tile; the rest pack densely around them */
.gallery .row .col.big {
    grid-column: span 2;
    grid-row: span 2;
}

.gallery .row .col a{
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
    padding-top: 100%;
}
.gallery .row h4{
    position: absolute;
    top: 20px;
    left: 20px;
    color: #fff;
    font-family: leddot;
    font-size: 20px;
    opacity: 0;
    transition: .3s;
    z-index: 2;
}
.gallery .row a::before{
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,.4);
    left: 0;top: 0;
    opacity: 0;
    transition: .3s;
    z-index: 1;
}
.gallery .row a:hover::before{
    opacity: 1;
}
.gallery .row a:hover h4{
    opacity: 1;
}
.gallery .row .col a img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    left: 0;
    top: 0;
}
.gallery .filter .filter-items{
    display: flex;
    list-style: none;
    border: 1px solid #fff;
    border-radius: 10px;
    display: inline-flex;
    margin: 20px 0 30px;
    padding: 0 10px;
    position: relative;
}
.gallery .filter .item{
    padding: 10px 15px;
    font-size: 30px;
    font-family: leddot;
    border-radius: 10px;
    transition: .3s;
}
.gallery .filter .item.active{
    color: #ffce1b; 
}
.gallery .filter .item:nth-child(4n+1):hover { 
    color: #ffce1b; 
}   
.gallery .filter .item:nth-child(4n+2):hover { 
    color: #ff1d0d; 
}   
.gallery .filter .item:nth-child(4n+3):hover { 
    color: #219ae5; 
}  
.gallery .filter .item:nth-child(4n+4):hover { 
    color: #7d67c2; 
}
.gallery .filter .borderDesign{
    position: absolute;
    height: calc(100% + 4px);
    width: 58px;
    top:-2px;
    pointer-events: none;
    left: 25px;
    transition: .2s ease;
}
.gallery .filter .borderDesign::after,
.gallery .filter .borderDesign::before{
    content: '';
    position: absolute;
    width: 100%;
    height: 3px;
    left: 0;
    background: linear-gradient(90deg, rgba(255,206,25,0) 0%, rgb(255, 206, 25) 10%, rgba(255,206,25,1) 90%, rgba(255,206,25,0) 100%); 
}
.gallery .filter .borderDesign::after{
    bottom: 0;
}
.gallery .filter .filter-mobile{
    display: none;
}

@media screen and (max-width:1200px) {
    .gallery .filter .item{
        padding: 10px;
        font-size: 20px;
    }
    .gallery .filter .filter-items{
        padding: 0 5px;
    }
    .gallery .filter .borderDesign{
        width: 39px;
        left: 15px;
    }
}
@media screen and (max-width:767px) {
    .gallery .container{
        padding: 0 25px;
    }
    .gallery .row {
        grid-template-columns: repeat(2, 1fr);
    }
    .gallery .col{
        grid-column: auto !important;
        grid-row: auto !important;
    }
    .gallery .row h4{
        font-size: 16px;
    }
    .gallery .filter {
        position: relative;
        margin-bottom: 30px;
        margin-top: 20px;
    }
    .gallery .filter .item{
        padding: 10px;
        font-size: 20px;
    }
    .gallery .filter .item.active{
        color: #ffce19;
    }
    .gallery .filter .filter-items{
        padding: 5px 5px;
        width: 100%;
        margin-top: 0;
        display: none;
        position: absolute;
        left: 0;
        top: 100%;
        z-index: 9;
        background: #000;
    }
    .gallery .filter .borderDesign{
        width: 29px;
        left: 15px;
        display: none;
    }
    .gallery .filter .borderDesign::after,
    .gallery .filter .borderDesign::before{
        background: linear-gradient(90deg, rgba(255,206,25,0) 0%, rgba(255,206,25,1) 15%, rgba(255,206,25,1) 85%, rgba(255,206,25,0) 100%); 
    }
    .gallery .filter .filter-mobile{
        display: block;
        font-size: 20px;
        font-family: leddot;  
        padding: 10px;
        border: 1px solid #fff;
        border-radius: 10px;      
        position: relative;
    }
    .gallery .filter .filter-mobile::after{
        content: "";
        position: absolute;
        border-left: 8px solid transparent;
        border-right: 8px solid transparent;
        border-top: 10px solid #fff;
        right: 15px;
        top: 16px;
    }
}
@media screen and (min-width:768px) {
    .gallery .filter-items{
        display: inline-flex !important;
    }
}



.project-gallery .container{
    padding: 0 40px;
}
.project-gallery .section-title{
    padding: 20px 0 20px;
    display: flex;
    justify-content: space-between;
}
.project-gallery .section-title h1{
    font-size: 40px;
    font-family: leddot;
    color: #219ae5;
}
.project-gallery .section-title h1{
    position: relative;
    z-index: 0;
    top: -2px;
}
.project-gallery .section-title h1 a{
    position: relative;
    z-index: 9;
    top: -2px;
}
.project-gallery .section-title h2{
    font-size: 30px;
    font-family:saga;
    font-weight: 400;
}
.project-gallery .row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: auto;
    gap: 10px;
    grid-auto-flow: dense;
}
.project-gallery .col:nth-child(6n + 1) { grid-column: 1 / span 2; grid-row: calc((var(--index) - 1) / 6 * 4 + 1) / span 2; }
.project-gallery .col:nth-child(6n + 2) { grid-column: 3; grid-row: calc((var(--index) - 2) / 6 * 4 + 1); }
.project-gallery .col:nth-child(6n + 3) { grid-column: 3; grid-row: calc((var(--index) - 3) / 6 * 4 + 2); }
.project-gallery .col:nth-child(6n + 4) { grid-column: 1; grid-row: calc((var(--index) - 2) / 6 * 4 + 2); }
.project-gallery .col:nth-child(6n + 5) { grid-column: 1; grid-row: calc((var(--index) - 3) / 6 * 4 + 3); }
.project-gallery .col:nth-child(6n + 6) { grid-column: 2 / span 2; grid-row: calc((var(--index) - 1) / 6 * 4) / span 2; }

.project-gallery .row .col {
    width: 100%;
    height: 100%;
    object-fit: cover;
    padding-top: 100%;
    position: relative;
}
.project-gallery .row .col img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
}
@media screen and (max-width:767px) {
    .project-gallery .container{
        padding: 0 25px;
    }
    .project-gallery .section-title {
        flex-direction: column;
    }
    .project-gallery .section-title h1{
        font-size: 25px;
        margin-bottom: 15px;
    }
    .project-gallery .section-title h1 img{
        width: 15px;
    }
    .project-gallery .section-title h1 a{
        top: 0;
    }
    .project-gallery .section-title h2{
        font-size: 20px;
    }
    .project-gallery .row {
        grid-template-columns: repeat(2, 1fr);
    }
    .project-gallery .col{
        grid-column: auto !important;
        grid-row: auto !important;
    }
}





/* contact us */

.contact-us{
padding: 0px 0 50px;
}

.contact-us .container{
    padding: 0 40px;
}
.contact-us .section-title{
    padding-top: 20px;
    margin-bottom: 35px;
    text-align: center;
}
.contact-us .title{
    font-size: 50px;
    color: #FFCE1B;
    font-family: saga;
    font-weight: 400;
    margin-bottom: 20px;
}
.contact-us .sub-title{
    font-size: 30px;
    color: #ffffff;
    font-family: "acumin-variable", sans-serif;
    font-weight: 200;
    margin-bottom: 25px;
    max-width: 550px;
}

.contact-us .row{
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    align-items: center;
    gap: 90px;
}
/* .contact-us .row .left-column{
    width: 65%;
}
.contact-us .row .right-column{
    width: 35%;
} */
.contact-us .locations{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    margin-top: 0;
}
.contact-us .location{
    width: auto;
    max-width: 260px;
}
.contact-us .location:first-child{
    padding-right: 0;
}

.contact-us .location img{
    max-width: 105px;
    max-height: 95px;
    display: block;
    margin: auto;
    object-position: contain;
    margin-bottom: 12px;
}
.contact-us .location h2{
    color: #fff;
    font-size: 34px;
    font-family: leddot;
    padding: 6px 10px;
    font-weight: 400;
    text-align: center;
}
.contact-us .location a,
.contact-us .location p{
    font-size: 25px;
    font-family: leddot;
    padding: 10px;
    font-weight: 400;
    color: #FFCE1B;
    line-height: 1.2;
    letter-spacing: .02em;
    max-width: none;
    white-space: nowrap;
    margin: auto;
    text-align: center;
}
.contact-us .location a{
    text-decoration: none;
    padding: 0;
}
.contact-us .location a:hover{
    color: #fff;
}
.contact-us form{
    width: 440px;
    max-width: 100%;
    margin: 0;
    padding-top: 0;
}
#formStatus{
    font-size: 18px;
    color: #ff1d0d;
    font-family: "acumin-variable", sans-serif;
    font-weight: 200;
    margin-top: 15px;
}
.contact-us form input{
    display: block;
    width: 100%;
    padding: 22px 20px;
    margin-bottom: 16px;
    border-radius: 10px;
    text-align: center;
    font-size: 30px;
    color: #fff;
    background-color: #7d67c2;
    outline: 0;
    border: 0 !important;
    font-family: "acumin-variable", sans-serif;
    font-weight: 200;
}
.contact-us form input[name="email"]{
    background-color: #219ae5;
}
.contact-us form textarea{
    display: block;
    width: 100%;
    margin-bottom: 16px;
    border-radius: 10px;
    text-align: center;
    font-size: 30px;
    color: #fff;
    background-color: #ff1d0d;
    outline: 0;
    border: 0 !important;
    min-height: 100px;
    resize: vertical;
    padding: 22px 20px;
    font-family: "acumin-variable", sans-serif;
    font-weight: 200;
}
.contact-us form input::placeholder,
.contact-us form textarea::placeholder{
    font-family: saga;  
    color: #000;
    line-height: 30px;
}
.contact-us form button{
    display: block;
    width: 100%;
    padding: 22px 20px;
    margin-bottom: 0;
    border-radius: 10px;
    text-align: center;
    font-size: 35px;
    color: #000;
    background-color: #FFCE1B;
    outline: 0;
    border: 0 !important;
    font-family: saga; 
    margin-top: 40px;
}
@media screen and (max-width:1200px) {
    .contact-us .location {
        max-width: 360px;
    }
    .contact-us .location h2{
        font-size: 30px;
    }
    .contact-us .location a,
    .contact-us .location p{
        font-size: 20px;
    }
}
@media screen and (max-width:991px) {
.contact-us .row .left-column{
    width: 100%;
}
.contact-us .row .right-column{
    width: 100%;
}
}
@media screen and (max-width:767px) {
    .contact-us .container{
        padding: 0 25px;
    }
    .contact-us .section-title{
        margin-bottom: 40px;
    }
    /* Phone: put the form first (above the locations) so the primary action is
       reachable without scrolling past both map graphics */
    .contact-us .row{
        flex-direction: column;
        align-items: center;
        gap: 55px;
    }
    .contact-us form{
        order: -1;
        width: 100%;
    }
    .contact-us .location img{
        max-width: 90px;
        max-height: 82px;
    }
    .contact-us .title{
        font-size: 25px;
    }
    .contact-us .sub-title{
        font-size: 20px;
        max-width: 400px;
    }
    .contact-us .locations{
        flex-direction: column;
        align-items: center;
    }
    .contact-us .location{
        width: 100%;
        padding-right: 0 !important;
        max-width: 250px;
    }
    .contact-us .location:first-child{
        margin-bottom: 30px;
    }
    .contact-us .location h2{
        font-size: 22px;
    }
    .contact-us .location a,
    .contact-us .location p{
        font-size: 18px;
    }
    .contact-us form{
        padding-top: 40px;
    }
    .contact-us form input{
        padding: 40px 20px 16px;
        margin-bottom: 20px;
        font-size: 20px;
    }
    .contact-us form textarea{
        margin-bottom: 20px;
        font-size: 20px;
        padding: 40px 20px 16px;
        min-height: 110px;
        height: auto;
    }
    .contact-us form .field label{
        top: 12px;
        font-size: 16px;
    }
    .contact-us form button{
        display: block;
        width: 100%;
        padding: 25px 20px 23px;
        margin-bottom: 30px;
        border-radius: 10px;
        text-align: center;
        font-size: 25px;
        margin-top: 30px;
    }
}

.sub-title-about {
    color:#fff;
    padding-bottom: 15px;
    font-size: 40px;
    font-family: leddot;
    line-height: 1.2;
}

.title-about {
    font-family: leddot;
    color: #219ae5;
    font-size: 50px;
    font-weight: 400;
    padding-bottom: 10px;
}

.title-h1 {
    font-size: 50px;
    color: #FFCE1B;
    font-family: saga;
    font-weight: 400;
    margin-bottom: 40px;
}

@media (max-width: 767px) {
    .sub-title-about {
        font-size: 25px;
    }
}

.privacy-policy{
    .container{
        padding: 0 40px;
        font-family: "acumin-variable", sans-serif;
    }
    .section-title{
        padding-top: 40px;
        margin-bottom: 100px;
    }
    .title-privacy{
        font-family: leddot;
        color: #219ae5;
        font-size: 50px;
        font-weight: 400;
        padding-bottom: 10px;
    }
    .date{
        padding-bottom: 30px;
    }
    h2{
      font-size: 30px;  
      padding-top: 20px;
      padding-bottom: 15px;
    }
    .point {
        margin-left: 15px;
        padding-bottom: 10px;
    }
    .parragraph{
        margin-left: 36px;
    }
    ul li{
        margin-left: 65px;
    }
    ul{
        margin-bottom: 20px;
        margin-top: 10px;
    }
    
}

.terms-use{
      .container{
        padding: 0 40px;
    }
    .section-title{
        padding-top: 40px;
        margin-bottom: 100px;
    }
    .title-terms{
        font-family: leddot;
        color: #219ae5;
        font-size: 50px;
        font-weight: 400;
        padding-bottom: 20px;
    }
    section{
        font-family: "acumin-variable", sans-serif;;
    }
    .date-terms{
        padding-bottom: 30px;
    }
    h2{
      font-size: 30px;  
      padding-top: 20px;
      padding-bottom: 10px;
    }
    .parragraph-term{
        color: white;
        text-decoration: none;
    }
    .parragraph-terms{
        margin-left: 36px;
    }
    .email-terms{
        color: #fff;
        text-decoration: none;
    }
}





.image-ticker {
    padding-top: 60px;
    padding-bottom: 100px;
    display: flex;
    gap: 40px;
    background-color: #000;
}
.image-ticker:hover{
    animation-play-state: paused;
}
.image-ticker .scrolling-bar {
    display: flex;
    gap: 40px;
    align-items: center;
}
.image-ticker .imgWrapper {
    margin-left: 40px;
    margin-right: 40px;
    border-radius: 0 !important;
}
.image-ticker .logo-item img{
    max-height: 40px;
    width: auto;
    max-width: 180px;

}

@media (max-width: 767px) {
    .image-ticker .imgWrapper {
        margin-left: 10px;
        margin-right: 10px;
        padding-right: 40px;
    }
}
@keyframes marquee{
    0% {
        transform: translate(0);
    }
    100% {
        transform: translate(-50%);
    }
}
.ticker {
    overflow: hidden;
}
.image-ticker {
    animation: marquee 15s linear infinite running;
}
.clients-ticker.home-clients-ticker{
    padding-top: 50px;
}
.clients-ticker .container,
.partners-ticker .container {
    padding: 0 40px;
}
.clients-ticker .title,
.partners-ticker .title {
    font-size: 40px;
    color: #ffffff;
    font-family: saga;
    font-weight: 400;
    text-align: center;
}
@media screen and (max-width: 767px) {
    .clients-ticker .title,
    .partners-ticker .title {
        font-size: 25px;
    }
    .clients-ticker .container,
    .partners-ticker .container {
        padding: 0 25px;
    }
}

.clients-details{
    padding-top: 60px;
    padding-bottom: 60px;
}
.clients-details .container{
    padding: 0 40px;
}
.clients-details .title{
    font-size: 40px;
    color: #ffffff;
    font-family: saga;
    font-weight: 400;
    margin-bottom: 40px;
}
.clients-details p{
    color: #fff;
    font-size: 40px;
    font-family: leddot;
    line-height: 1.2;
}
@media screen and (max-width: 767px) {
    .clients-details .title {
        font-size: 25px;
    }
    .clients-details p{
        font-size: 25px;
    }
}


.partners-details{
    padding-top: 60px;
    padding-bottom: 60px;
}
.partners-details .container{
    padding: 0 40px;
}
.partners-details .title{
    font-size: 40px;
    color: #ffffff;
    font-family: saga;
    font-weight: 400;
    margin-bottom: 40px;
}
.partners-details p{
    color: #fff;
    font-size: 40px;
    font-family: leddot;
    line-height: 1.2;
}
@media screen and (max-width: 767px) {
    .partners-details .title {
        font-size: 25px;
    }
    .partners-details p{
        font-size: 25px;
    }
}
/* ===== Redesigned lower half: Spaces grid + Contact CTA ===== */
.spaces-grid{
    padding: 40px 0 80px;
}
.spaces-grid .container{
    padding: 0 40px;
}
.spaces-grid .section-title{
    margin-bottom: 30px;
}
.spaces-grid .title{
    font-size: 40px;
    color: #ffffff;
    font-family: saga;
    font-weight: 400;
}
.spaces-grid .grid{
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
}
.spaces-grid .tile{
    position: relative;
    display: block;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    border-radius: 6px;
    text-decoration: none;
}
.spaces-grid .tile img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}
.spaces-grid .tile:hover img{
    transform: scale(1.06);
}
.spaces-grid .tile .label{
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 20px;
    font-family: leddot;
    font-size: 30px;
    color: #ffffff;
    background: linear-gradient(transparent, rgba(0,0,0,.75));
    transition: color .3s ease, text-shadow .3s ease;
}
.spaces-grid .tile:nth-child(1):hover .label{ color:#ffce1b; text-shadow:0 0 12px rgba(255,206,27,.85); }
.spaces-grid .tile:nth-child(2):hover .label{ color:#ff1d0d; text-shadow:0 0 12px rgba(255,29,13,.85); }
.spaces-grid .tile:nth-child(3):hover .label{ color:#219ae5; text-shadow:0 0 12px rgba(33,154,229,.85); }
.spaces-grid .tile:nth-child(4):hover .label{ color:#7d67c2; text-shadow:0 0 12px rgba(125,103,194,.85); }
.spaces-grid .tile:nth-child(5):hover .label{ color:#ffce1b; text-shadow:0 0 12px rgba(255,206,27,.85); }

.cta{
    padding: 110px 0 25px;
    text-align: center;
}
.cta .container{
    padding: 0 40px;
}
.cta-title{
    font-family: saga;
    font-weight: 400;
    font-size: 40px;
    color: #ffffff;
    line-height: 1.1;
    margin-bottom: 32px;
}
.cta .spaces-links{
    margin-top: 0;
    gap: 4px;
}
/* tighten the gap between the logo ticker and the closing statement */
.home-clients-ticker .image-ticker{
    padding-bottom: 45px;
}
.cta-btn{
    display: inline-block;
    font-family: leddot;
    font-size: 26px;
    color: #000000;
    background: #ffffff;
    padding: 16px 44px;
    border-radius: 6px;
    text-decoration: none;
    transition: background .3s ease, box-shadow .3s ease, color .3s ease;
}
.cta-btn:hover{
    background: #ffce1b;
    box-shadow: 0 0 24px rgba(255,206,27,.6);
}
@media screen and (max-width:900px){
    .spaces-grid .grid{ grid-template-columns: repeat(2, 1fr); }
}
@media screen and (max-width:767px){
    .spaces-grid .container{ padding:0 25px; }
    .spaces-grid .title{ font-size:25px; }
    .spaces-grid .grid{ grid-template-columns: repeat(2, 1fr); gap:10px; }
    .spaces-grid .tile .label{ font-size:22px; padding:14px; }
    .cta-title{ font-size:30px; }
    .cta-btn{ font-size:22px; padding:14px 32px; }
}

/* Restored quick-nav links under the Spaces grid */
.spaces-links{
    margin-top: 45px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}
.spaces-links a{
    font-family: leddot;
    font-size: 30px;
    color: #ffffff;
    text-decoration: none;
    padding: 10px 16px;
    border-radius: 5px;
    transition: .3s;
}
/* each link gets its own brand colour, with a soft neon glow */
.spaces-links a:nth-child(1){ color:#ffce1b; text-shadow:0 0 14px rgba(255,206,27,.45); }
.spaces-links a:nth-child(2){ color:#ff1d0d; text-shadow:0 0 14px rgba(255,29,13,.45); }
.spaces-links a:nth-child(3){ color:#219ae5; text-shadow:0 0 14px rgba(33,154,229,.45); }
/* hover: fill with that colour, text flips for contrast */
.spaces-links a:nth-child(1):hover{ background:#ffce1b; color:#000; text-shadow:none; }
.spaces-links a:nth-child(2):hover{ background:#ff1d0d; color:#fff; text-shadow:none; }
.spaces-links a:nth-child(3):hover{ background:#219ae5; color:#fff; text-shadow:none; }
@media screen and (max-width:767px){
    .spaces-links a{ font-size:22px; padding:8px 12px; }
}

/* Nav links row (moved under the partners+clients banner) */
.nav-links-row{
    padding-bottom: 70px;
}
.nav-links-row .container{
    padding: 0 40px;
}
.nav-links-row .spaces-links{
    margin-top: 0;
}
@media screen and (max-width:767px){
    .nav-links-row .container{ padding: 0 25px; }
}

/* Ampersand: the custom display fonts have no "&" glyph, so it falls back to a
   mismatched serif. Set it in the site's sans at a light weight so it reads as
   a deliberate choice and matches the weight of the LED letterforms. */
.amp{
    font-family: "acumin-variable", sans-serif;
    font-weight: 200;
    /* the substitute font has taller metrics than leddot and would grow the line
       box (adding ~13px of stray vertical space); zero line-height stops that */
    line-height: 0;
    vertical-align: baseline;
}

/* ===== Contact form: persistent top labels + focus feedback ===== */
/* Labels sit at the top of each box and stay put (a placeholder would vanish as
   soon as you type), so it's clear you fill in underneath. Same `saga` face as
   the SUBMIT button, just smaller. */
.contact-us form .field{
    position: relative;
}
.contact-us form .field label{
    position: absolute;
    top: 14px;
    left: 0;
    right: 0;
    text-align: center;
    font-family: saga;
    font-size: 19px;
    line-height: 1;
    color: #000;
    pointer-events: none;
    /* the focus style uses filter:, which creates a stacking context and would
       paint the field over this label — keep the label on top */
    z-index: 2;
}
/* extra top padding gives the label its own space above the typed text */
.contact-us form input,
.contact-us form textarea{
    padding: 46px 20px 18px;
}
.contact-us form textarea{
    min-height: 120px;
}
/* Visible focus state — `outline:0` removed the browser default and nothing
   replaced it, so clicking into a field gave no feedback at all. */
.contact-us form input,
.contact-us form textarea{
    caret-color: #fff;
    box-shadow: 0 0 0 0 rgba(255,255,255,0);
    transition: box-shadow .2s ease, filter .2s ease;
}
.contact-us form input:focus,
.contact-us form textarea:focus{
    outline: 0;
    box-shadow: 0 0 0 3px #000, 0 0 0 6px currentColor, 0 0 22px rgba(255,255,255,.25);
    filter: brightness(1.08);
}
.contact-us form input:focus::placeholder,
.contact-us form textarea:focus::placeholder{
    color: rgba(0,0,0,.4);
}
/* Selected text stays legible on the coloured fields */
.contact-us form input::selection,
.contact-us form textarea::selection{
    background: #000;
    color: #fff;
}
.contact-us form button{
    cursor: pointer;
    transition: filter .2s ease, box-shadow .2s ease;
}
.contact-us form button:hover{
    filter: brightness(1.08);
}
.contact-us form button:focus-visible{
    outline: 0;
    box-shadow: 0 0 0 3px #000, 0 0 0 6px #ffce1b;
}

/* ===== About page: branded headings, readable body ===== */
.about-page{
    padding: 30px 0 90px;
}
.about-page .container{
    padding: 0 40px;
    max-width: 900px;
    margin: 0 auto;
}
.about-eyebrow{
    display: block;
    font-family: leddot;
    color: #219ae5;
    font-size: 26px;
    text-shadow: 0 0 14px rgba(33,154,229,.5);
    margin-bottom: 8px;
}
.about-title{
    font-family: saga;
    color: #FFCE1B;
    font-size: 56px;
    font-weight: 400;
    line-height: 1.05;
    margin-bottom: 42px;
}
.about-body p{
    font-family: leddot;
    color: #ffffff;
    font-size: 24px;
    line-height: 1.6;
    max-width: 860px;
    margin-bottom: 28px;
}
.about-body p:last-child{ margin-bottom: 0; }
.about-founders{
    color: #ffce1b;
}
.about-cta{
    margin-top: 50px;
}
@media screen and (max-width:767px){
    .about-page .container{ padding: 0 25px; }
    .about-eyebrow{ font-size: 20px; }
    .about-title{ font-size: 34px; margin-bottom: 26px; }
    .about-body p{ font-size: 18px; line-height: 1.55; margin-bottom: 22px; }
    .about-cta{ margin-top: 36px; }
}
