@font-face {
    font-family: Mabry Pro;
    src: url('../fonts/MabryProBold.woff2') format('woff2'),
        url('../fonts/MabryProBold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: Mabry Pro;
    src: url('../fonts/MabryProBoldItalic.woff2') format('woff2'),
        url('../fonts/MabryProBoldItalic.woff') format('woff');
    font-weight: bold;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: Mabry Pro;
    src: url('../fonts/MabryProItalic.woff2') format('woff2'),
        url('../fonts/MabryProItalic.woff') format('woff');
    font-weight: normal;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: Mabry Pro;
    src: url('../fonts/MabryProRegular.woff2') format('woff2'),
        url('../fonts/MabryProRegular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: Mabry Pro;
    src: url('../fonts/MabryProBlackItalic.woff2') format('woff2'),
        url('../fonts/MabryProBlackItalic.woff') format('woff');
    font-weight: 900;
    font-style: italic;
    font-display: swap;
}

@keyframes sway  {
    0% { transform: translateY(-5vw) translateX(-1.5vw) rotate(52deg); }
    50% { transform: translateY(-5vw) translateX(-1.5vw) rotate(68deg); }
    100% { transform: translateY(-5vw) translateX(-1.5vw) rotate(52deg); }
}

@keyframes spin  {
    0% { transform: translate(-50%, -50%) rotate(-30deg); }
    80% { transform: translate(-50%, -50%) rotate(330deg); }
    100% { transform: translate(-50%, -50%) rotate(330deg); }
}

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, caption {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
    scroll-behavior: smooth;
    font-family: Mabry Pro, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}

body {
    font-family: Mabry Pro, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
    background-color: #fff;
    color: black;
    overflow: auto;
    height: 100vh;
    transition: background-color ease 400ms;
    /* margin-left: 4.86vw;
    margin-right: 4.86vw; */
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
}

body::-webkit-scrollbar {
    display: none;
  }

.spinner {
    position: fixed;
    left: 50%;
    top: 50%;
    width: 6px;
    height: 56px;
    background-color: black;
    z-index: 4;
    animation: spin 1.8s ease-in-out infinite;
}

.backdrop {
    position: fixed;
    top: 0;
    width: 100vw;
    height: 100vh;
    background-color: #eee;
    z-index: 3;
}

a, li div {
    display: inline;
    font-weight: normal;
    color: #000;
    text-decoration: none;
    cursor: pointer;
    font-weight: bold;
    transition: all 300ms ease;
}

li a:hover, ul div:hover {
    opacity: 75%;
}

li {
    list-style-type: none;
    display: inline;
}

nav {
    position: relative;
    padding-top: 2.5vw;
    font-size: 1.66vw;
    margin-left: 4.86vw;
    margin-right: 4.86vw;
}

nav .logo {
    display: inline;
    font-weight: bold;
}

nav ul {
    display: inline;
    position: absolute;
    left: 38vw;
}

.social {
    position: fixed;
    top: 1vw;
    right: 3.2vw;
    transform-origin: bottom right;
    transform: rotate(-90deg);
    font-size: 1.67vw;
    z-index: 2;
}

.social a{
    font-weight: normal;
}

.mobile-nav {
    display: none;
}

.heading {
    padding-top: 5vw;
    width: 66.52vw;
    margin-left: 4.86vw;
    margin-right: 4.86vw;
} 

h1 {
    font-size: 6.11vw;
    font-weight: bold;
    text-transform: uppercase;
    line-height: 100%;
    overflow: hidden;
}

h1 .content_paragraph {
    position: relative;
	overflow: hidden;
	flex: none;
}

h1 .highlight {
    font-style: italic;
    color: #DC6060;
    display: contents;
}

.intro {
    padding-bottom: 13.5vw;
    /* border-bottom: black solid 1px; */
}

.seperator {
    width: 0;
    border-top: black solid 1px;
}

.intro .btn {
    display: inline-flex;
    margin-left: 4.86vw;
    margin-right: 4.86vw;
    margin-top: 1.66vw;
    padding: 0.833vw 1.875vw;
    border: 1px solid #000;
    border-radius: 100px;
    font-size: 1.66vw;
    line-height: 110%;
    align-items: center;
    transition: color 300ms, background-color 500ms;
}

.intro .btn:hover {
    color: #fff;
    background-color: #000;
}

.intro .media {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 29.166vw;
    height: 17.77vw;
    left: 50.05vw;
    top: 34vw;
    background-color: #f8f8f8;
    border-radius: .7vw;
    overflow: hidden;
}

.media img, .media video {
    flex-shrink: 0;
    max-width: 101%;
    max-height: 101%;
}

.intro .line {
    position: absolute;
    display: flex;
    right: 2.43vw;
    top: 45vw;
    align-items: baseline;
    transform: translateY(-12vw);
}

.intro .line svg{
    display: block;
    max-width: 18.68vw;
    max-height: 18.74vw;
}
.intro .line p{
    color: #D00000;
    font-size: 1.66vw;
    transform: translateY(-5vw) translateX(-1.5vw) rotate(60deg);
    animation: sway 2s infinite;
  animation-timing-function: ease-in-out;
  -webkit-transform-origin: bottom;
  -moz-transform-origin: bottom;
  transform-origin: bottom;
}

.about {
    position: relative;
    display: flex;
    padding-top: 5.55vw;
    padding-bottom: 5.55vw;
    justify-content: center;
    /* transform: translateY(2vw); */
}

.content {
    width: 59.72vw;
}

h2 {
    display: block;
    font-size: 2.22vw;
    line-height: 110%;
    margin-bottom: 2vw;
    text-transform: uppercase;
}

p {
    display: block;
    font-size: 1.66vw;
    line-height: 160%;
}

p .italic {
    font-style: italic;
    font-weight: 900;
}

p a {
    font-weight: bold;
    color: #dc6060;
    transition: 300ms;
}

p a:hover {
    text-decoration: underline;
}

/* Work section */
.work {
    padding-top: 5.55vw;
    padding-bottom: 5.55vw;
}

.work h2 {
    margin-left: 4.86vw;
    margin-right: 4.86vw;
    margin-bottom: 3vw;
}

.main_carousel {
    height: 100%;
}

.flickity-slider {
    height: 100%;
    
}

.carousel_cell {
    width: 25vw;
    margin-right: 2.77vw;
    height: auto;
}

.carousel_cell .visual {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #f8f8f8;
    border-radius: .7vw; 
    -webkit-mask-image: -webkit-radial-gradient(white, black);
    -webkit-border-radius: .7vw; 
    -moz-border-radius: .7vw;
    margin-bottom: 2.77vw;
    overflow: hidden;
    z-index: 1;
}

.carousel_cell img, .carousel_cell video {
    flex-shrink: 0;
    max-width: 101%;
    max-height: 101%;
}



.carousel_cell .visual .type_tag {
    display: none;
    position: absolute;
    right: 1.38vw;
    top: 1.25vw;
    padding: 0.55vw 1.1vw;
    font-size: 1.111vw;
    font-weight: normal;
    background-color: white;
    border-radius: 100vw;
    text-align: center;
}

.carousel_cell .text {
    font-size: 1.25vw;
}

.carousel_cell .text p{
    font-size: 1.25vw;
    line-height: 155%;
    color: #7c7c7c;
    width: 16vw;
    margin-top: 1vw;
}

.nike .visual {
    background-color: #0D0F27;
}

.genetron .visual {
    background-color: #C4D7DF;
}

.alpex .visual {
    background-color: #10848F;
}

.fuse .visual {
    background-color: #797068;
}
/* Contact section */

.contact {
    position: relative;
    display: flex;
    padding-top: 5.55vw;
    padding-bottom: 6.94vw;
    justify-content: center;
}

footer {
    border-top: 1px solid #000;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: auto;
    position: relative;
}

footer .footnote {
    display: flex;
    font-size: 0.972vw;
    color: #7c7c7c;
    line-height: 160%;
}

footer .footnote div {
    display: inline-block;
    padding-top: 2.08vw;
    padding-bottom: 2.08vw;
}

footer .footnote .copyright {
    margin-left: 4vw;
}

footer .footnote .disc {
    max-width: 44.44vw;
    margin-left: 7.222vw;
}

footer .to_top {
    position: absolute;
    display: flex;
    height: 100%;
    right: 0;
    border-left: 1px solid #000;
    align-items: center;
    cursor:pointer;
}

footer .btn {
    padding-left: 4.86vw;
    padding-right: 4.86vw;
    font-size: 1.66vw;
    font-weight: normal;
} 

/* .cursor {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #29044a;
    transform: translate(-50%, -50%);
    transition: width 250ms, height 250ms;
} */

.blocker {
    display: none;
}

@media screen and (max-width: 768px) {
    /* .blocker {
        display: flex;
        flex-direction: column;
        width: 100vw;
        height: 100vh;
        background-color: #fff;
        z-index: 100;
        align-items: center;
        justify-content: center;
        text-align: center;
    }

    .blocker h1 {
        font-size: 6.4vw;
    }

    .blocker p {
        margin-top: 5vw;
        font-size: 4.8vw;
        line-height: 160%;
        max-width: 80%;
    }

    .preloader, .social, .about, .contact {
        display: none;
    }

    section, nav, footer {
        display: none;
    } */

    nav {
        display: none;
    }

    .social {
        display: none;
    }

    .mobile-nav {
        display: flex;
        flex-direction: column;
        flex-wrap: wrap;
        position: fixed;
        top: 0;
        font-size: 1.66vw;
        background-color: #fff;
        z-index: 1;
    }
    
    .mobile-nav .row-1 {
        display: flex;
        padding-top: 7vw;
        padding-bottom: 6vw;
        align-items: center;
    }
    .mobile-nav .logo {
        display: inline-block;
        font-weight: bold;
        font-size: 4.26vw;        
        margin-left: 4.86vw;
    }
    
    .mobile-nav .mobile-social {
        display: inline-flex;
        position: fixed;
        right: 4.8vw;
        justify-content: space-between;
        align-content: center;
        align-items: center;
    }

    .mobile-nav .mobile-social a {
        margin-left: 4.5vw;
        width: 8vw;
        height: 8vw;
    }

    .mobile-nav svg {
        width: 5vw;
    }

    .mobile-nav svg path {
        fill: #000;
    }

    .mobile-nav .menu {
        display: flex;
        width: 100vw;
        padding: 4vw 0;
        align-content: center;
        justify-content: space-around;
        font-size: 4.8vw;
        font-weight: bold;
        border-bottom: 1px solid #000;
        border-top: 1px solid #000;
    }

    .mobile-nav .menu div {
        width: 33vw;
        text-align: center;
    }
    
    .heading {
        width: auto;
        margin: 36vw 4.8vw 0 4.8vw;
    }

    .section {
        margin: 0 4.8vw;
    }

    .intro {
        align-content: center;
    }

    h1 {
        font-size: 8.53vw;   
        line-height: 120%; 
    }

    .intro .btn {
        font-size: 5.3vw;
        line-height: 110%;
        padding: 2.6vw 5.3vw;
        margin: 6.4vw 4.8vw 8.53vw 4.8vw;
        border-radius: 1000px;
        background-color: #000;
        color: #fff;
    }

    .intro .media {
        display: flex;
        position: relative;
        top: auto;
        left: auto;
        width: auto;
        height: 55.46vw;
        margin: 0 4.8vw;
        border-radius: 2.66vw;
    }

    .intro .line {
        display: none;
    }

    .about {
        padding: 10.6vw 0;
    }

    .content {
        width: auto;
        margin: 0 4.8vw;
    }

    h2 {
        font-size: 6.4vw;
        margin-bottom: 6.93vw;
    }

    p {
        font-size: 5.3vw;
        line-height: 160%;
    }

    .work {
        padding: 10.6vw 0;
    }

    .work h2 {
        margin-bottom: 6.93vw;
    }

    .carousel_cell {
        width: 74.6vw;
        margin-right: 8vw;
    }
    
    .carousel_cell .visual {
        border-radius: 2.66vw; 
        margin-bottom: 8vw;
    }

    .carousel_cell .text {
        font-size: 4.8vw;
    }
    
    .carousel_cell .text p{
        font-size: 4.8vw;
        line-height: 155%;
        color: #7c7c7c;
        width: 68vw;
        margin-top: 2.13vw;
    }

    .contact {
        padding: 10.6vw 0;
    }

    footer {
        border-top: 1px solid #000;
        display: flex;
        justify-content: space-between;
        align-items: center;
        height: auto;
        position: relative;

        flex-direction: column;
        width: 100vw;
    }
    
    footer .footnote {
        order: 2;
        display: flex;
        flex-direction: column;
        color: #7c7c7c;
        font-size: 3.5vw;
        line-height: 150%;
        align-items: center;
        text-align: center;
        padding: 8vw 0;
    }
    
    footer .footnote div {
        display: block;
        width: 100vw;
        padding: 0;
    }
    
    footer .footnote .copyright {
        order: 2;
        margin-left: 0;
        margin-top: 4vw;
    }
    
    footer .footnote .disc {
        max-width: 88vw;
        margin-left: 0;
    }
    
    footer .to_top {
        position: relative;
        display: flex;
        width: 100vw;
        height: 100%;
        right: 0;
        padding: 6vw 0;
        border-bottom: 1px solid #000;
        border-left: none;
        align-items: center;
        justify-content: center;
        cursor:pointer;
    }
    
    footer .btn {
        padding-left: 4.86vw;
        padding-right: 4.86vw;
        font-size: 4.8vw;
        font-weight: normal;
    } 
}