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

button:focus, video:focus {outline:0;}

/* BODY */
    body {
        margin: 0;
        padding: 0;
        min-width: 320px;
        font-size: 24px;
        background: #000000;
}
@media only screen and (max-width: 1200px) { body { font-size: 20px; } }
@media only screen and (max-width: 1000px) { body { font-size: 18px; } }
@media only screen and (max-width: 800px) { body { font-size: 17px; } }
@media only screen and (max-width: 700px) { body { font-size: 15px; } }
@media only screen and (max-width: 600px) { body { font-size: 13px; } }
@media only screen and (max-width: 500px) { body { font-size: 11px; } }
@media only screen and (max-width: 400px) { body { font-size: 9px; } }

/* Structure */
    .section {
        color: white;
        width: 100%;
        min-height: 50px;
        display: flex;
        flex-wrap:wrap;
        position: relative;
        box-sizing: border-box;
        background-color: #000000;
        background-image: 
            url('../images/noise.png'), 
            linear-gradient(#010101, #010101);
        background-repeat: repeat;
        background-size: 50px;
        overflow: hidden;
    }
        .section.customImageBackground {
            background-size: cover;
            min-height: 400px;
            background-position: center;
        }
        .section.customImageBackground::before {
            content: '';
            position: absolute;
            top: 0;
            z-index: 0;
            bottom: 0;
            left: 0;
            right: 0;
            display: block;
            background: 
                linear-gradient(160deg, 
                    rgba(0, 0, 0,0.8) 0%, 
                    rgba(5, 0, 0,0.5) 20%, 
                    rgba(5, 0, 0,0.2) 51%, 
                    rgba(5, 0, 0,0.6) 75%,
                    rgba(0, 0, 0,0.8) 90%);
        }
        .section.altBackground {
            background-color: #272727;
            background: 
                linear-gradient(180deg, 
                    rgba(32, 32, 32,1) 5%, 
                    rgba(39, 39, 39,1) 20%, 
                    rgba(39, 39, 39,1) 51%, 
                    rgba(39, 39, 39,1) 75%, 
                    rgba(30, 30, 30,1) 95%);
            background-image: 
                url('../images/noise.png'), 
                linear-gradient(180deg, 
                    rgba(32, 32, 32,1) 5%, 
                    rgba(39, 39, 39,1) 20%, 
                    rgba(39, 39, 39,1) 51%, 
                    rgba(39, 39, 39,1) 75%, 
                    rgba(30, 30, 30,1) 95%);
        }
        .section.hero {
            min-height: calc(100vh);
        }
        .section.pros {
            font-size: 14px;
            padding-top: 50px;
        }
        .component.pro {
            min-width: 225px;
            align-self: baseline;
            max-width: 400px;
        }
        .component.pro img {
            display: inline-block;
            padding-bottom: 20px;
            width: 100%;
            object-fit: cover;
        }        
        .component.pro span {
            display: inline-block;
            padding: 10px 20px 50px 20px;
            margin-top: 10px;
        }
        .component.pro p {
            opacity: 0.8;
        }
        .pro h4 {
            display: block;
            transform: scaleX(0.9);
            letter-spacing: 0.1em;
        }
        .hero .wrapper {
            padding: 4em 0;
        }
        .section.customImageBackground .wrapper {
            z-index: 1;
        }
        .section.hero header.wrapper {
            padding: 10px 20px;
            z-index: 2;
            flex: none;
            display: block;
            max-width: unset;
            top: 0;
            left: 0;
            position: absolute;
        }
        header + .wrapper {
            margin-top: 120px;
        }
        
        header * {
            transition: all 0s;
        }
        .hero header.wrapper nav {
            padding-top:10px;
            display: inline;
            z-index: 2;
        }
        .hero header.wrapper nav::before {
            clear: both;
            content: "";
            position: relative;
            display: block;
            margin-top: 20px;
        }
        .hero header.wrapper nav a,
        .hero header.wrapper nav span a {
            font-family: futura-pt, sans-serif;
            padding: 2px 2px;
            font-size: 0.75em;
            margin-left:-10px;
            display: inline-block;
            letter-spacing: 0.6em;
            transform: scaleX(0.8);
            font-weight: 100;
            color: #fff;
            text-decoration: none;
            z-index: 2;
            text-transform: uppercase;
            margin-bottom: 15px;
        }
        .hero header.wrapper nav span {
            position: absolute;
            margin-left: 10px;
            margin-top:-20px;
            padding: 30px;
            display: none;
            background-color: black;
            z-index: 1;
        }
        .hero header.wrapper nav a:hover, .hero header.wrapper nav a.active  {
            border-bottom: 1px solid rgba(255,250,250,0.8);
        }
        nav a.expand:hover + span, 
        nav a.expand:active + span,
        nav span:hover,
        nav span a:hover {
            display: block;
            pointer-events: all;
        }
        header p.title {
            color: #ffffff;
            z-index: 1;
            width: 12em;
            margin: 0 auto;
            letter-spacing: 0.5em;
        }
        footer {
            padding: 25px 0;
        }
        footer.section {
            background-image: url(../images/noise.png), linear-gradient(#010101 20%, #000000 80%);
        }
        .section.footer .component {
            min-width: unset !important;
        }
        .section.pros .wrapper {
            flex-wrap: wrap;
            justify-content: space-around;
        }
        .section.pros .wrapper .component {
            flex-grow: 0;
            flex-shrink: 1;
        }
    
    .wrapper {
        width: 100%;
        max-width: 1200px;
        margin: 0 auto;
        display: flex;
        flex-wrap:wrap; 
        box-sizing:border-box;
        justify-content: center;
        align-self: center;
        overflow:visible;
    }
    
    .component {
        flex: 1 1 0;
        min-width: 300px;
        justify-content: center;
        text-align: center;
        max-width: 1000px;
        display: inline-block;
        align-self: center;
        box-sizing: border-box;
    }
    .component.imageContainer {
        display: inline-grid;
        align-self: stretch;
    }
        .component.imageContainer img:only-child, .component.imageContainer video:only-child {
            width:100%; 
            align-self: stretch;
            object-fit: cover;
            box-shadow: 0 0 100px 20px rgba(0,0,0,0.8);
            object-position: right;
            z-index: 0;
        }
        .component h2, .component p {
            z-index: 1;
        }
        .component.mini {
            min-width: 300px;
            max-width: 500px;
            margin: 0 15px;
            padding-bottom: 25px;
            flex-grow: 1;
            flex-shrink: 1;
            flex-basis: 100px;
            align-self: baseline;
        } 
        .component.mini p {
            padding: 0 20px;
        }
/* ## -- Text Styles -- ## */

/* # Reset Styles */
    h1, h2, h3, h4, h5, h6, p {
        margin: 0;
        padding: 0;
    }


/* # Spacings and margins */
/*
    .wrapper .component p:last-child::after {
        margin-bottom: 50px;
        content: "";
        display: block;
    }
    .wrapper .component h2:first-child {
        margin-top: 50px;
    }
*/
    h2+p::before, h3+p::before {
        margin-top: 20px;
        content: "";
        display: block;
    }
h2+div.wrapper {
    margin-top:20px;
}

    p + p::before {
        margin-top: 1em;
        content: "";
        display: block;
    }
    
    .horizontal-padding {
        padding-left: 4em;
        padding-right: 4em;
    }
    .vertical-padding {
        padding-top: 4em;
        padding-bottom: 4em;
    }    
    .padded {
        padding: 4em;
    }

    /* Styles */
    
    h1 {
        font-family: futura-pt, sans-serif;
        font-weight: 400;    
        font-style: normal;
        font-size: 6em;
        line-height: 1;
        text-transform: uppercase;
        word-break: normal;
        transition: transform 0.3s;
    }
        h1.title.committedTitle, .committedTitle.letter-spacing {
            font-family: chantal, sans-serif;
            font-weight: 100;
            letter-spacing: 0.3em;
            transform: scaleY(1.2);
            display: block;
            font-size: 5em;
        }
        h1.title.admittedTitle, .admittedTitle.letter-spacing {
            font-family: agency-fb, sans-serif;
            letter-spacing: 0.40em;
        }
    h1.title {
        margin: 0.25em 0;
        text-shadow: 0 0 5px rgba(100,0,0,0.2);
        letter-spacing: 0.25em;
    }
    h2 {
        font-family: futura-pt, sans-serif;
        font-style: normal;
        font-size: 2em;
        text-transform: uppercase;
        font-weight:400;
        letter-spacing: 0.3em;
        padding-left: 0.3em;
        transition: 
            all 0.3s ease-in-out,
            font-size 0s ease-in-out;
        text-shadow: 0px 5px 10px rgba(0,0,0,1);
        position: relative;
    }
    h2.subtitle {
        font-size: 1.8em;
        opacity: 0.4;
    }
    .letter-spacing,.letter-Spacing {
        letter-spacing: 0.3em;
        padding-left: 0.3em;
        transform-origin: 50% 50%;
    }
    .letter-Spacing.glitch::after, .letter-Spacing.glitch::before,
    .letter-spacing.glitch::after, .letter-spacing.glitch::before {
        padding-left: 0.1em;
    }
    .scaleOnHover {
        opacity: 0.6;
        transform: scale(0.97);
    }
    .section {
        transition: opacity 0.2s ease-in-out;
    }
    .section.notActive {
        opacity: 0.7;
    }
    .section:not(.notActive) .scaleOnHover, 
    .section.active .scaleOnHover{
        opacity: 1;
        transform: scale(1.00);
        text-shadow: 0px 10px 10px rgba(0,0,0,1);
    }
    .section:not(.notActive):hover .glitch::after, 
    .section:not(.notActive) .glitch:hover::after, 
    .section.active:not(.notActive) .glitch::after  {
        animation: noise-anim 2s infinite linear alternate-reverse;
    }
    .section:not(.notActive):hover .glitch::before, 
    .section:not(.notActive) .glitch:hover::before, 
    .section.active:not(.notActive) .glitch::before {
        animation: noise-anim-2 3s infinite linear alternate-reverse;
    }
    h3 {
        font-family: futura-pt, sans-serif;
        font-weight: 500;    
        font-style: normal;
        text-transform: uppercase;   
        letter-spacing: 0.3em;
    }
    h4 {
        font-family: futura-pt, sans-serif;
        font-weight: 300;    
        font-style: normal;
        text-transform: uppercase;   
        letter-spacing: 0.1em;
    }
        p {
            font-family: futura-pt, sans-serif;
            font-weight: 300;    
            font-style: normal;
            font-size: 1em;
            line-height: 1.4;
            letter-spacing: 1.5;
        }
        p.highlight {
            font-weight: 600;
        }
        p.date {
            font-family: futura-pt, sans-serif;
            font-weight: 400;    
            font-style: normal;
            font-size: 1.2em;
            line-height: 1;
            text-transform: uppercase;
            letter-spacing: 15;
            opacity: 0.4;
        }
        p.title {
            font-size: 1.6em;
            letter-spacing: 12;
            font-weight: 400;
            display: inline-block;
            width: 100%;
            text-transform: uppercase;
        }
        p.credits, p.quickLinks {
            font-size: 0.6em;
            text-transform: uppercase;
            opacity: 0.5;
            transition: 0.5s all;
        }
        p.credits:hover, p.quickLinks:hover {
            opacity: 1;
            cursor: default;
        }
        .title span:only-child, .title span span {
            color: rgba(143, 9, 10, 1);
        }
        header .title > span {
            background-color: #000;
            margin: 2px 0;
            padding: 0 10px;
            display: inline-block;
            text-align: center;
        }
    
    /* Other Elements */
    button.primary_cta, a.primary_cta {
        background: rgba(143, 9, 10, 0.56);
        font-family: futura-pt, sans-serif;
        font-weight: 600;
        font-style: normal;
        font-size: 1em;
        letter-spacing: 0.2em;
        text-transform: uppercase;
        line-height: 2.5;

        color: white;
        border: none;
        margin: 20px 10px;
        padding: 1.5em 5em;
        text-decoration: none;
        
        box-shadow: 
            inset 0px 0px 10px 2px rgba(25,0,0,0.5), 
            0px 15px 5px -10px rgba(5,0,0,0.8);

        transition: all 0.5s;
        animation: shake-animation 5s ease infinite;
        transform-origin: 50% 50%;
        animation-delay: 2s;
        z-index: 3;
        pointer-events: all;
    }
        button.primary_cta {
            padding: 0.8em 5em;
        }
    button.primary_cta:hover, a.primary_cta:hover {
        background: rgba(143, 9, 10, 0.8);
        cursor: pointer;
        transform: scale(0.98);
        box-shadow: 
            inset 0px 0px 10px 2px rgba(25,0,0,0.1), 
            0px 10px 0px -15px rgba(5,0,0,0.8);
    }
    .buttonGlitch::after {
        content: attr(data-text);
        position: absolute;
        left: 2px;
        right: 0px;
        top: 0;
        text-shadow: -1px 0 blue;
        opacity: 0.8;
        background: unset;
        overflow: hidden;
        clip: rect(0, 900px, 0, 0);
        animation: noise-anim 2s infinite linear alternate-reverse;
    }
    @keyframes shake-animation {
        000.00000% { transform:translate(0px,0) }
        001.78571% { transform:translate(2px,0) rotate(0.1deg)}
        003.57143% { transform:translate(0px,0) rotate(-0.1deg) }
        005.35714% { transform:translate(2px,0) rotate(0.1deg) }
        007.14286% { transform:translate(0px,0) rotate(-0.1deg) }
        008.92857% { transform:translate(2px,0) rotate(0.1deg) }
        010.71429% { transform:translate(0px,0) rotate(0deg) }
        100.00000% { transform:translate(0px,0) rotate(0deg) }
    }
    @keyframes blur-flicker {
        0% { filter: blur(0em) hue-rotate(0deg) }
        03% { filter: blur(0.05em) hue-rotate(180deg) }
        03% { filter: blur(0em) hue-rotate(0deg) }
        07% { filter: blur(0.05em) hue-rotate(270deg) }
        08% { filter: blur(0em) hue-rotate(0deg) }
        10% { filter: blur(0.05em) hue-rotate(90deg) }
        100% { filter: blur(0em) hue-rotate(0deg) }
    }
.loopingCircularInlineVideo {
    width: 80%;
    margin: 30px auto;
    border-radius: 50%;
    overflow: hidden;
    box-shadow: 0 5px 10px 2px rgba(0,0,0,0.25);
}
       header .component {
            /*transition: 0.5S all;*/
            max-width: unset;
            margin: 20px;
        }
@media screen and ( max-width: 600px ) { 
    button.primary_cta {
        padding: 0.6em 30px;
        margin: 0 2em;
        font-size: 2em;
    }
}
@media screen and ( max-width: 800px ) { 
    .component.large {
        min-width: 500px;
    }  
}
.hero header.wrapper .component {
    display: block !important;
}
@media screen and ( max-width: 800px ) { 
/*
    .hero header.wrapper {
        font-size: 16px;
    }
*/
    .hero header.wrapper .component {
        display: block !important;
    }
    .hero header.wrapper nav a {
        font-size: 0.9em;
        transform: scaleX(0.9);
        padding: 2px 5px;
    }
}
    .component p {
        max-width: 90vw;
        margin: 0 auto;
        letter-spacing: 0.2em;
    }
@media screen and ( min-width: 600px) {
    .component p {
        max-width: 800px;
        margin: 0 auto;
    }
    .component.large p {
        max-width: 500px;
    }
}

a {
    color: white;
    text-decoration: none;
}