*{
    margin:0;
    padding: 0;	
    max-width:100vw;
    /* overflow-x:hidden; */
    /* border:solid red 1px; */
    scroll-behavior:smooth;
    line-height:1.25;
    font-display:swap;
}
:root{
    --accent: rgb(86, 126, 187);
    --lightaccent: rgb(120, 192, 238);
    --reg: #141414;
    --gridcolor: #242424;
    --h1: 2.5rem;
    --h2: 1.875rem;
    --h3: 1.563rem;
    --h4: 1.25rem;
    --p: 1.063rem;
    --small:.875rem;
    --colorturnpoint:.65;
    --colorturnpointplay:0.04;
    --colorturnpointLG:0.05;
    --colorturnpointLG2:0.9;
    --colorturnpointMM:0.5;
    --colorturnpointMM2:0.95;
    --headerfam: "forma-djr-text", sans-serif;
    --paragraphfam: "forma-djr-text", sans-serif;
    --emphasisfam: "forma-djr-text", sans-serif;
    --secondaryfamfine: "PPRightSerifMono-Fine";
    --secondaryfamregular: "PPRightSerifMono-Regular";
    --regular: 400;
    --bold:500;
    --emphasisweight:500;
}
/*fonts*/
@font-face{
    font-family: "PPRightSerifMono-Fine";
    src: url("fonts/PPRightSerifMono-Fine.otf")
    format("opentype");
}
@font-face{
    font-family: "PPRightSerifMono-Regular";
    src: url("fonts/PPRightSerifMono-Regular.otf")
    format("opentype");
}
h1{
    color:var(--reg);
    font-family:var(--headerfam);
    font-size: var(--h1);
    font-weight: var(--bold);
}
h2{
    color:var(--reg);
    font-family:var(--headerfam);
    font-size: var(--h2);
    font-weight: var(--bold);
    letter-spacing:.5px;
}
h3{
    color:var(--reg);
    font-family:var(--secondaryfamregular);
    font-size: var(--h3);
    letter-spacing:.5px;
}
h4{
    color:var(--reg);
    font-family:var(--headerfam);
    font-size: var(--h4);
    font-weight: var(--bold);
    letter-spacing:.5px;
}
h5{
    color:var(--reg);
    font-family:var(--secondaryfamregular);
    font-size:var(--h4);
}
p{
    color:var(--reg);
    font-family:var(--paragraphfam);
    font-size: var(--p);
    font-weight: var(--regular);
    letter-spacing:.75px;
}
small{
    color:var(--reg);
    font-family:var(--paragraphfam);
    font-size: var(--small);
    letter-spacing:.75px;
}
.emphasis{
    color:var(--reg);
    font-weight:var(--emphasisweight);
}

/*wholepageani*/

.wholepagedark{
    animation: bg .5s ease-in;
    animation-iteration-count:1;
    animation-fill-mode:both;
    background-size:2% .7%;
    background-image: linear-gradient(var(--gridcolor) 0.5px, transparent 0.5px, transparent calc(100% - 0.5px), var(--gridcolor) calc(100% - 0.5px)), linear-gradient(90deg, var(--gridcolor) 0.5px, transparent 0.5px, transparent calc(100% - 0.5px), var(--gridcolor) calc(100% - 0.5px));
}

.wholepagelight{
    animation:bgreverse .5s ease-out;
    animation-iteration-count:1;
    animation-fill-mode:both;
    background-size:2% .7%;
    background-image: linear-gradient(var(--gridcolor) 0.5px, transparent 0.5px, transparent calc(100% - 0.5px), var(--gridcolor) calc(100% - 0.5px)), linear-gradient(90deg, var(--gridcolor) 0.5px, transparent 0.5px, transparent calc(100% - 0.5px), var(--gridcolor) calc(100% - 0.5px));
}
@keyframes bg{
    0%{
        background-color: white;
        --reg:#141414;
        --gridcolor:white;
    }
    100%{
        background-color:#141414;
        --reg:white;
        --gridcolor: #242424
    }
}

@keyframes bgreverse{
    0%{
        background-color: #141414;
        --reg:white;
        --gridcolor: #242424;
    }
    100%{
        background-color:white;
        --reg:#141414;
        --gridcolor:white;
    }
}
@keyframes AnimationName {
    0% {
      background-position: calc(200vw/sin(90deg)) 0;
    }
  }



body .wholepagemargin{
    margin:0px auto;
    padding: 0px 1rem;
    max-width:70rem;
}
.header{
    /* min-height: 260vh; */
    width: 100%;
    background-position:center;
    background-size:cover;
    position:relative;
}

.linkhover:hover{
    cursor: url(images/cursor/cursorselectaccent.svg) -10 -10, pointer;
}
img{
    width:100%;
}
video{
    width:100%
}

/*NAVIGATION*/

nav{
    display:flex;
    padding: 25px 0px;
    justify-content: space-between;
    align-items: center;
    position:sticky;
}
nav img{
    width: 80px;
    transition: transform .3s ease-in-out;
}
nav img:hover {
    transform: rotate(-30deg);
}
.nav-links{
    flex: 1;
    text-align:right;
}
.nav-links ul li{
    list-style: none;
    display: inline-block;
    position: relative;
}
.nav-links ul li a{
    font-family: var(--secondaryfamregular);
    color: var(--reg);
    text-decoration: none;
    font-size: var(--h4);
    transition: .3s;
    margin-left:50px;
}
.currentpage{
    font-family:var(--secondaryfamfine);
    color:var(--accent);
    text-decoration:underline;
}
.nav-links ul li a:hover{
    color: var(--accent);
}

nav .fa{
    display: none;
}

/*GRADIENT*/
.top-thing{
    height: 5px;
    position:fixed;
    width:100vw;
    background: repeating-linear-gradient(90deg, var(--lightaccent), #4c16ff, #ffe89b, #faffdf, #d9f9ff, var(--lightaccent) 200vw);
    background-size: calc(200vw/sin(90deg)) 100%;
    animation: AnimationName 15s linear infinite reverse;
    top:0;
    overflow:hidden;
    z-index:1;
}

.top-thing2{
    height: 5px;
    position:fixed;
    width:100vw;
    background: repeating-linear-gradient(90deg, var(--accent), #4c16ff, #ffe89b 150vw);
    background-size: calc(150vw/sin(90deg)) 100%;
    top:0;
    overflow:hidden;
    z-index:1;
}
.divider{
    height: 1px;
    background-color:var(--reg);
    border:none;
}

/*Topper*/
.topper{
    padding: 50px 0px;
}
.two-column-flex{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    column-gap:50px;
    row-gap:75px;
}
.bot-align{
    align-items: flex-end;
}
.top-align{
    align-items: flex-start;
}
.two-column-flex div{
    width:calc(50% - 25px);
}
.two-column-flex div a h5{
    margin-top:15px;
}
.two-column-flex div a h4{
    margin-top:5px;
}

/* Portfolio Gallery */
.project{
    text-decoration:none;
    color:var(--reg);
}
.project:hover h1{
    color:var(--accent);
}
.project:hover h4{
    color:var(--accent);
}
.project:hover h5{
    color:var(--accent);
}

/*Misc Play Highlights*/

.misc{
    position:relative;
    height: 180vh;
}
.miscimages{
    width:25vw;
    position:absolute;
    max-height:min-content;
}
.miscimages:hover{
    cursor:url(images/cursor/cursormoveaccent.svg) -10 -10, move;
}
.miscimages img{
    outline:solid 1px white;
    display:block;
}
.miscimages{
    width:300px;
    position:absolute;
    max-height:min-content;
}
.miscimages video{
    width:300px;
    outline:solid 1px white;
    display:block;
}
.misc p{
    position: absolute;
    font-family: var(--paragraphfam);
    font-weight: var(--regular);
    font-size: var(--p);
    width:290px;
    outline:solid 1px white;
    padding:5px;
    background-color:var(--gridcolor);
}

.pos1{
    top:5vh;
    left: 56%;
}

.pos2{
    top:10vh;
    left: 26%;
}
.pos3{
    top:20vh;
    left: 5%;
}
.pos4{
    top:30vh;
    left: 20%;
}
.pos5{
    top:40vh;
    left: 63%;
}
.pos6{
    top:50vh;
    left: 62%;
}
.pos7{
    top:60vh;
    left:38%;
}
.pos8{
    top:70vh;
    left:43%;
}
.pos9{
    top:80vh;
    left:3%;
}
.pos10{
    top:90vh;
    left:47%;
}
.pos11{
    top:100vh;
    left:9%;
}
.pos12{
    top: 110vh;
    left: 41%;
}
.pos13{
    top:120vh;
    left:14%;
}
.pos14{
    top: 130vh;
    left:54%;
}
.pos15{
    top:140vh;
    left:19%;
}
.pos16{
    top:150vh;
    left:43%;
}
.button{
    width:fit-content;
    padding:10px;
    padding-left:15px;
    padding-right:15px;
    margin:50px;
    margin-left:30px;
    border: 1px var(--reg) solid;
    text-align:center;
    background-color:#141414;
}
.button-content{
    font-size:var(--h2);
    font-family: var(--secondaryfamregular);
    font-weight: var(--bold);
    text-decoration:none;
    color:white;
}

.button:hover{
    padding:15px;
    padding-left:20px;
    padding-right:20px;
    transition-duration:0.2s;
    border: 1px var(--lightaccent) solid;
    color:var(--lightaccent);
    cursor: url(images/cursor/cursorselectaccent.svg) -10 -10, pointer;
}
.button:hover .button-content{
    color:var(--lightaccent);
    transition-duration:.2s;
    cursor: url(images/cursor/cursorselectaccent.svg) -10 -10, pointer;
}
.footer{
    margin: 30px;
    margin-left:0px;
    font-family: var(--paragraphfam);
    font-weight: var(--regular);
    font-size: var(--p);
    color: var(--reg);
    width:auto;
}
.footerlink{
    color: var(--reg);
    text-decoration:none;
}
.footerlink:hover{
    color: var(--lightaccent);
    text-decoration:underline;
    text-decoration-thickness:2px;
}
/*Play Page*/
.triflex {
    display:flex;
    flex-direction:row;
    justify-content:space-around;
    flex-wrap:wrap;
    align-items:top;
    gap: 20px;
}
.singleflex{
    width:32%;
    display:flex;
    flex-direction:column;
    gap:20px;
}
.triflex .playitems {
    width: 100%;
    border:1px solid var(--reg);
}
.triflex .playitems video{
    width: 100%;
}
.triflex .playitems-emphasis{
    width: 64%;
    border:1px solid var(--reg);
}
.triflex .playclickable{
    border:1px solid var(--lightaccent);
    color: var(--lightaccent);
}
.triflex .playclickable .link{
    font-size:var(--p);
    font-family: var(--paragraphfam);
    font-weight: var(--regular);
    color: var(--lightaccent);
    text-decoration:none;
}
.triflex .playclickable .link:hover{
    cursor:url(images/cursor/cursorselectaccent.svg) -10 -10, pointer;
}
.triflex .slideshow-container{
    width:100%;
    position: relative;
    margin-left:0px;
    border:1px solid var(--reg);
}
.triflex .slideshow-container-clickable{
    width:100%;
    position: relative;
    margin-left:0px;
    border:1px solid var(--lightaccent);
}
.triflex .slideshow-container-emphasis{
    width:64%;
    position: relative;
    margin-left:0px;
    border:1px solid var(--reg);
}
.triflex .slideshow-container img{
    border-radius: 0px;
    border:none;
}
.triflex p{
    font-family: var(--paragraphfam);
    font-weight: var(--regular);
    font-size: var(--p);
    color:var(--reg);
    padding-top:10px;
    padding-bottom:20px;
    padding-left:10px;
    padding-right:10px;
}
.triflex .prev, .next {
    cursor: pointer;
    position: absolute;
    top: 50%;
    width: auto;
    margin-top: -22px;
    padding: 16px;
    color: white;
    font-weight: var(--bold);
    font-size: 18px;
    transition: 0.6s ease;
    border-radius: 0 3px 3px 0;
    user-select: none;
  }
  
  /* Position the "next button" to the right */
 .triflex .next {
    right: 0;
    border-radius: 3px 0 0 3px;
  }
  
  /* On hover, add a black background color with a little bit see-through */
  .triflex .prev:hover, .next:hover {
    background-color: var(--accent);
  }
.blockpage{
    margin-left: 100px;
    margin-right:100px;
    display:block;
}
.blockitems{
    width: 100%;
    height:max-content;
}
  /* Hide the images by default */
  .mySlides {
    display: none;
  }
  
  /* Next & previous buttons */
  .prev, .next {
    cursor: pointer;
    position: absolute;
    top: 50%;
    width: auto;
    margin-top: -22px;
    padding: 16px;
    color: white;
    font-weight: var(--bold);
    font-size: 18px;
    transition: 0.6s ease;
    border-radius: 0 3px 3px 0;
    user-select: none;
  }
  
  /* Position the "next button" to the right */
  .next {
    right: 0;
    border-radius: 3px 0 0 3px;
  }
  
  /* On hover, add a black background color with a little bit see-through */
  .prev:hover, .next:hover {
    background-color: var(--accent);
  }
  
  /* The dots/bullets/indicators */
  .dot {
    cursor: pointer;
    height: 15px;
    width: 15px;
    margin: 0 2px;
    background-color: var(--lightaccent);
    border-radius: 50%;
    display: inline-block;
    transition: background-color 0.6s ease;
  }
  
  .active, .dot:hover {
    background-color: var(--accent);
  }

  .vimeovideo{
    margin-left: 100px;
    margin-right:100px;
  }
  .imgmargin{
    width:100%;
    margin: 25px 0px;
}
/* Case Studies */
.titletextbox{
    color:var(--reg);
    margin-top:20px;
}
.titletextbox .leftside{
    margin-top:35px;
    color:var(--accent);
}
.titletextbox .leftside p span:hover{
    text-decoration:underline;
    color:var(--lightaccent);
    cursor:pointer;
}
.leftside{
    width: calc(12% - 25px);
    color:var(--reg);
}
.leftside p{
    margin-top:15px;
}
.rightpart{
    width: calc(88% - 25px);
}
.rightpart img{
    margin: 30px 0px;
}
.rightpart video{
    margin:30px 0px;
    width:100%
}
.rightpart object{
    margin: 50px 0px;
}
.rightside{
    display:flex;
    flex-direction:row;
}
.photosflex{
    display:flex;
    flex-direction:row;
    justify-content:space-evenly;
    margin:25px 0px;
    column-gap:15px;
}
.photosflex div{
    flex: 1;
    object-fit:contain;
}
.photosflex div img{
    object-fit:contain;
    width: 100%;
    margin:0px;
}
.textspace{
    width:30vw;
}
.otherspace{
    width:45vw;
    display:flex;
    flex-direction:row;
    align-items:end;
    padding-left:50px;
    padding-right:50px;
    justify-content:left;
    column-gap:75px;
}
.otherspace img{
    width:35vw;
}
.otherspace video{
    width:35vw;
}
.rightleft{
    display:flex;
    flex-direction:row;
    column-gap:50px;
}
.rightleft h1{
    margin-bottom:15px;
}
.rightleft p{
    margin-bottom:15px;
}
.rightleft h3{
    font-size:var(--h3);
    font-family: var(--headerfam);
    font-weight: var(--bold);
    margin-top:15px;
    margin-bottom:15px;
}
.casestudydivider{
    border-top:1px var(--reg) solid;
    border-bottom:1px var(--reg) solid;
    padding-top:15px;
    padding-bottom:15px;
    text-align:center;
    margin-top:30px;
    margin-bottom:30px;
    color:var(--accent);
}
#loadOverlay{display: none;}
/*MOBILE ADJUSTMENTS*/
@media(max-width: 1025px){
    *{
        overflow-x: clip;
        --colorturnpoint:1.5;
        --colorturnpointplay:0;
        --gridcolor: #161616;
    }
    @media(max-width:539px){
        *{
            --colorturnpoint:1.5;
        }
        nav{
            margin-top:20px;
        }
    }
    body .wholepagemargin{
        padding:5px;
    }
    .hideonmobile{
        display:none;
    }
    .two-column-flex{
        display:block;
    }
    .two-column-flex div{
        width:100%;
        margin: 50px 0px;
    }
    .nav{
        position:sticky;
    }
    .nav-links ul li a{
        display: block;
        font-size:var(--h3);
        font-weight:var(--bold);
    }
    .nav-links{
        position:absolute;
        background-color:white;
        background-size: cover;
        border-left:solid;
        border-color:var(--reg);
        border-width:1px;
        height:100vh;
        width:80vw;
        top:0;
        right:-100vw;
        z-index:1;
        opacity: 1;
        transition:.5s;
    }    
    nav .fa{
        display: inline-flex;
        color: var(--reg);
        margin:10px;
        font-size: var(--h3);
    }
    nav .fa-times{
        margin:30px;
    }
    .nav-links ul{
        padding-left: 15px;
        width:40vw;
        background-image:white;
        text-align:left;
    }
    .fixed-position{
        overflow:hidden;
        touch-action:none;
    }
    .footer{
        margin-bottom:50px;
    }
        .blockitems{
        width: 100%;
        height:auto;
    }
    .projecthome{
        border:none;
    }
    .playparagraph{
        margin:20px;
    }
    .singleflex{
        width:auto;
        padding:1px;
    }
    .triflex{
        display:block;
        margin:10px;
    }
    .triflex .playitems{
        width:100%;
    }
    .top-thing{
        height:3px;
    }
    .top-thing2{
        height:3px;
    }
    .wholepagedark{
        animation: bg .5s ease-in;
        animation-iteration-count:1;
        animation-fill-mode:both;
        background-size:5% .5%;
        background-image: linear-gradient(var(--gridcolor) 0.5px, transparent 0.5px, transparent calc(100% - 0.5px), var(--gridcolor) calc(100% - 0.5px)), linear-gradient(90deg, var(--gridcolor) 0.5px, transparent 0.5px, transparent calc(100% - 0.5px), var(--gridcolor) calc(100% - 0.5px));
    }
    
    .wholepagelight{
        animation:bgreverse .5s ease-out;
        animation-iteration-count:1;
        animation-fill-mode:both;
        background-size:5% .5%;
        background-image: linear-gradient(var(--gridcolor) 0.5px, transparent 0.5px, transparent calc(100% - 0.5px), var(--gridcolor) calc(100% - 0.5px)), linear-gradient(90deg, var(--gridcolor) 0.5px, transparent 0.5px, transparent calc(100% - 0.5px), var(--gridcolor) calc(100% - 0.5px));
    }
    .text-box{
        width: 90%;
        position: static;
        text-align:left;
        padding:20px;
        padding-bottom:0px;
    }
    .text-box h1{
        font-size:var(--h5);
        font-family: var(--headerfam);
        font-weight: var(--regular);
    }
    .text-box p{
        margin: 30px 0 30px;
        font-family: var(--paragraphfam);
        font-weight: var(--regular);
        font-size: 14.375px;
        color: var(--regular);
    }
    .h-emphasis{
        font-family:var(--headerfam);
        font-weight: var(--bold);
    }
    .h-emphasis-link{
        font-family:var(--headerfam);
        font-weight: var(--bold);
    }
    .p-emphasis{
        font-size: 14.375;
        font-family:var(--emphasisfam);
        font-weight: var(--emphasisweight);
    }
    .linkswithoutdecor{
        text-decoration:none;
        color: var(--reg)
    }
    .header{
        min-height:10vh;
    }
    img{
        width:100%;
    }
    .text-box2{
        width: 90%;
        position: static;
        text-align:left;
        padding:20px;
    }
    .footer{
        height:15vh;
    }
    .misc{
        position:static;
        display:flex;
        flex-direction: row;
        row-gap: 3.3vw;
        flex-wrap: wrap;
        justify-content: center;
        width: 100vw;
        max-height: min-content;
        align-content: center;
        column-gap: 3.3vw;
        padding-left:0px;
        padding-right:0px;
    }
    .miscimages{
        position:static;
        display:flex;
        flex-wrap:wrap;
        flex-direction:row;
        width:45vw;
        align-self: center;
    }
    .misc p{
        position: static;
        width:45vw;
        border: solid 1px white;
        outline: none;
    }
    .miscimages img{
        outline:none;
        display:flex;
        width:45vw;
        border-top-left-radius:5px;
        border-top-right-radius:5px;
        justify-content:center;
        flex-wrap:wrap;
        border:solid 1px white;
    }
    .miscimages video{
        outline:none;
        display:flex;
        width:45vw;
        border-top-left-radius:5px;
        border-top-right-radius:5px;
        justify-content:center;
        flex-wrap:wrap;
        border:solid 1px white;
    }
    .miscimages img:hover{
        scale:200%;
        position: absolute;
        left:50%;
        transform:translateX(-25%);
    }
    .hideonmobile{
        display:none;
    }
    .aboutcontainer{
        padding:5px;
        padding-top:0px;
        flex-direction:column;
        align-items:center;
    }
    .aboutimage{
        margin:10px;
        margin-top:80px;
        margin-bottom:30px;
        width:90%;
        height:40vh;
    }
    .aboutimage img{
        height:40vh;
        object-fit:cover;
    }
    .aboutparagraph{
        width:90vw;
        margin-top:30px;
        margin:10px;
        margin-bottom:100px;
    }
    .aboutparagraph h2{
        font-size:var(--h3);
    }
    .h2-emphasis{
        font-size: calc(var(--h3));
    }
    .h2-emphasis-link{
        font-size: calc(var(--h3));
    }
    .h2-emphasis-link:hover{
        font-size: calc(var(--h3));
    }
    .de-emphasize{
        color:var(--lightaccent);
    }
    .titletextbox .leftside{
        display:none;
    }
    .leftside{
        margin-right:20px;
        width:100vw;
    }
    .leftside p{
        font-size:var(--h5);
        margin-bottom:10px;
        color:var(--accent);
    }
    .rightpart{
        width:100vw;
    }
    .rightpart img{
        margin:0px;
    }
    .rightside{
        flex-wrap:wrap;
    }
    .photosflex{
        margin:10px 0px;
        column-gap:5px;
        flex-wrap:wrap;
    }
    .textspace{
        width:100vw;
    }
    .otherspace{
        width:100vw;
        column-gap:5vw;
        align-items:flex-start;
        flex-wrap:wrap;
        padding-left:0px;
    }
    .otherspace img{
        margin:0vw;
    }
    .otherspace video source{
        width:100%;
        margin:0vw;
    }
    .rightleft{
        width:100%;
        flex-wrap:wrap;
    }
    .slideshow-container img{
        margin:0px;
    }

    .imgmargin{
        width:100%;
        padding-left:0px;
        padding-right:0px;
        margin:0px;
    }
}