/* ———————— GENERAL ———————— */


*
    {
        box-sizing: border-box;
        transition: all 240ms cubic-bezier(1, 0, 0, 1); 
    }


html, body
    {
        margin: 0;
        padding: 0;
        overflow: hidden;
    }


a
    {
        color: black;
        -webkit-text-fill-color: rgba(255,255,255,0); /* Will override color (regardless of order) */
        -webkit-text-stroke-width: 1.2px;
        -webkit-text-stroke-color: black;
        text-decoration: none;
        letter-spacing: .01em;
    }


a:hover
    {
        color: black;
        -webkit-text-fill-color: black; /* Will override color (regardless of order) */
        -webkit-text-stroke-width: 0px;
        -webkit-text-stroke-color: black;
    }


border
    {
        position: fixed;
        z-index: 2400;
        height: 100vh;
        width: 100vw;
        border: #fff 24px solid;
        transition: all 480ms cubic-bezier(1, 0, 0, 1); 
        pointer-events: none;
    }

border .copyright
    {
        position: absolute;
        width: 100%;
        top: calc(100vh - 48px);
        text-align: right;
        color: black;
        opacity: 12%;
    }


section
    {
        position: relative;
        width: 100%;
        height: 100vh;
        
        left: 0px;
        
        margin: 0;
        padding: 0;
        
        display: flex;
        scroll-snap-align: start;
    }


copy, shot
    {
        position: absolute;
        width: 50%;
        height: 100%;
        padding: 4% 8%;
        overflow: hidden;
    }


copy
    {
        background-color: white;
    }


shot
    {
        padding: 0;
        background-color: hotpink;
    }


img
    {
        max-height: 100%;
    }
    

section img
    {
        position: absolute;
        width: 50%;
        right: 0%;
        top: 24%;    
    }


shot img
    {
        height: 100%;
    }


.left, .right
    {
        display: flex;
        align-items: center;
    }


.left
    {
        left: 0;
        background-color: black;
    }


.left h2, .left h3
    {
        color: white;
    }


.right
    {
        right: 0;
    }


.middle
    {
        height: 100%;
        width: 100%;
    }

.menu
    {
        position: fixed;
        top: 24px;
        left: 24px;
        z-index: 2400;
        
        width: calc(100% - 48px);
        
        display: flex;
        background-color: none;
        margin: 0;
        padding: 0 0 0 calc(8% - 48px);
        
        list-style: none;
    }

.menu li
    {
        padding: 24px 16px; 
        
        font-family: kepler-std,serif;
        font-weight: 400;
        font-style: normal;
        
        font-size: calc(8px + (24 - 12) * ((100vw - 320px) / (1600 - 320)));
        line-height: 1.0;
    }

.menu li a
    {
        color: black;
        -webkit-text-fill-color: white; /* Will override color (regardless of order) */
        -webkit-text-stroke-width: 0px;
        -webkit-text-stroke-color: black;
    }

.menuLink
    {
        border-bottom: solid 0px white;
        transition: all 120ms cubic-bezier(1, 0, 0, 1);
        border-bottom: solid 4px rgba(255,255,255,0); 
    }

.menuLink:hover, .menuLink:active
    {
        border-bottom: solid 4px white;
    }

.active
    {
        border-bottom: solid 4px white;
    }








/* ———————— HOME ———————— */

.container
    {
        overflow: scroll;
        height: 100vh;
        scroll-snap-type: mandatory;
        scroll-snap-points-y: repeat(100vh);
        scroll-snap-type: y mandatory;
    }


.hero
    {   
        position: fixed;
        
        margin: 0;
        padding: 0;
        
        background-color: black;
        background-size: cover;
    }


logo
    {
        position: relative;
        display: flex;
        align-content: center;
        
        
        padding-left: 40%;
        padding-right: 40%;
    }


logo svg
    {
        width: 100%;
        height: auto;
        
        fill: white;
    }


.intro
    {
        background-color: aliceblue;
    }


.right div
    {
        border-top: 24px solid black;
    }


.right div p
    {
        padding: 24px 0 0;
    }
    

.process
    {
        background-color: antiquewhite;
    }


.clients
    {
        background-color: aqua;
    }


.clients img
    {
        position: fixed;
        top: 0;
        left: -100%;
        height: 100%;
        width: 50%;
        object-fit: cover;
        opacity: 0;
        pointer-events: none;   
    }


.clients a:hover
    {
        cursor: w-resize;
    }


.clients a:hover img, .clients a:active img
    {
        top: 0;
        left: 0;
        opacity: 1;
    }


.contact copy
    {
        background-color: black;
    }


.contact h2, .contact h3
    {
        color: white;
    }


.contact a
    {
        color: black;
        -webkit-text-fill-color: rgba(0,0,0,0); /* Will override color (regardless of order) */
        -webkit-text-stroke-width: 1.2px;
        -webkit-text-stroke-color: white;
    }


.contact a:hover, .contact a:active
    {
        color: white;
        -webkit-text-fill-color: white; /* Will override color (regardless of order) */
        -webkit-text-stroke-width: 0px;
        -webkit-text-stroke-color: black;
        cursor: alias;
    }








/* ———————— MOBILE ———————— */

@media only screen 
and (max-device-width : 812px) 	{
  
    
body
    {
        min-height: 100%;
    }

    
border
    {
        border: #fff 0px solid;
    }

    
border .copyright
    {
        display: none;
    }

    
a
    {
        -webkit-text-stroke-width: 1.0px;
    }
    
    
section
    {
        height: 100%; 
    }


.left, .right
    {
        display: inline;
    }
    
    
.intro, .process, .clients
    {
        background-color: white;
    }
    
    
logo
    {
        height: 94%;
        
        
        padding-left: 20%;
        padding-right: 20%;
    }

    
logo svg
    {
        position: relative;
        width: 80%;
            left: 10%;
    }
    
    
copy, shot
    {
        position: absolute;
        width: 100%;
        height: calc(50% - 30px);
        overflow: hidden;
    }
    
    
.right
    {
        top: calc(50% - 30px);
    }

    
.right div
    {
        border-top: 0px solid black;
    }

    
.right div p
    {
        padding: 0;
    }

    
.clients img
    {
        position: fixed;
        top: -24px;
        left: 0px;
        height: calc(50% + 30px);
        object-fit: cover;
        width: 100%;
        opacity: 0;
        pointer-events: none;   
    }

.menu
    {
        top: calc(100% - 60px);
        left: 0px;
        
        width: 100%;
            height: 60px;
        padding: 0 4%;
        
        background-color: black;
    }

.menu li
    {
        padding: 20px 12px;
    }
    
}








/* ———————— IPAD PRO ———————— */

@media only screen 
and (min-device-width : 768px) 
and (max-device-width : 1024px)
and (-webkit-min-device-pixel-ratio: 2) { 

    
border
    {
        height: 100%;
        width: 100%;
    }

}








/* ———————— ANIMATION ———————— */


h2, h3, p, logo
    {
        opacity: 0;
        position: relative;
        transition: all 480ms cubic-bezier(1, 0, 0, 1);
    }


logo
    {
        top: 48px;
    }


logo.loaded
    {
        opacity: 1;
        top: 0;
    }


h2, h3
    {
        left: -24px;
    }


.clients .right h2, .contact .right h2
    {
        left: 24px;
        transition-delay: 0.24s;
    }


p
    {
        opacity: 0;
        top: -24px;
        transition-delay: 0.24s;
    }


.show
    {
        top: 0;
        left: 0;
        opacity: 1;
    }
    

.clients .right h2.show, .contact .right h2.show
    {
        left: 0px;
    }