/**************************************/
/*              GLOBALS               */
/**************************************/

html {
	height: 100%;
    overflow-x: hidden;
    min-width: 325px;
}

body {
    margin: 0;
    padding: 0;
    font-family: 'antarctican-headline', sans-serif;
    font-weight: 500;
    font-style: normal;
    color: #fff;
    background: #000;
    font-size: 14px;
    overflow-x: hidden;
    transform-origin: 0 0;
    min-height: 100%;
    overflow: hidden;
}

img {
    pointer-events: none;
}

a {
    color: #f9be34;
    text-decoration: none;
    cursor: pointer;
    transition: color 200ms ease-in-out, border 200ms ease-in-out, padding 200ms ease-in-out, box-shadow 200ms ease-in-out;
}

h1 {
    position: relative;
    text-align: center;
    font-family: 'chunkfiveregular';
    font-size: 5em;
    text-transform: uppercase;
}

h2 {
    position: relative;
    text-align: center;
    font-family: 'chunkfiveregular';
    font-size: 3em;
    text-transform: uppercase;
}

h3 {
    position: relative;
    text-align: center;
    font-family: 'chunkfiveregular';
    font-size: 2.4em;
}

h4 {
    position: relative;
    font-size: 2.8em;
    font-family: 'rumpiregular';
    color: #f9be34;
}

.content {
    max-width: 1300px;
    margin: 0 auto;
    padding: 0 200px;
    position: relative;
}

@media only screen and (max-width : 1024px) {
    .content {
        padding: 0 10%;
    }
}

@media only screen and (max-width : 770px) {
    .content {
        padding: 0 5%;
    }
}

/**************************************/
/*                TOP                 */
/**************************************/

#top {
    position: relative;
    width: 100%;
    text-align: center;
}

#top img.logo {
    position: relative;
    width: 35%;
    z-index: 500;
}

#top .bg {
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 100;
}

#top .bg_grain {
    position: absolute;
    mix-blend-mode: overlay;
    top: 0;
    width: 100%;
    opacity: 0.2;
    z-index: 50;
}

#top .bg_img {
    position: absolute;
    top: 0;
    width: 100%;
    opacity: 0.3;
    z-index: 0;
}

#top .bg img, #top .bg_img img {
    width: 100%;
}

#top .content {
    z-index: 1000;
}

@media only screen and (max-width : 1024px) {
    #top img.logo {
        width: 50%;
    }
}

@media only screen and (max-width : 770px) {
    #top img.logo {
        width: 65%;
    }
}

/**************************************/
/*                NAV                 */
/**************************************/

#nav {
    position: relative;
    font-size: 1.4em;
    text-transform: uppercase;
    height: 32px;
}

#nav > a {
    color: #fff;
    text-decoration: none;
    display: inline-block;
    margin: 0 5%;
    border-bottom: 0px solid rgba(0,0,0,0);
}

#nav > a:hover, #nav > a.active {
    color: #f9be34;
    border-bottom: 2px solid #f9be34;
}

@media only screen and (max-width : 1330px) {
    #nav {
        font-size: 1.6em;
    }
}

@media only screen and (max-width : 1024px) {
    #nav {
        font-size: 2em;
    }
}

@media only screen and (max-width : 500px) {
    #nav {
        display: none;
    }
}

/**************************************/
/*             COUNTDOWN              */
/**************************************/

#countdown {
    width: 100%;
    margin: 15px -2.2% 0;
    white-space: nowrap;
    pointer-events: none;
}

#countdown > div {
    position: relative;
    display: inline-block;
    width: 37%;
    margin: 0 -5.5%;
    aspect-ratio: 1;
    background-image: url(../img/polygon.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    vertical-align: top;
}

#countdown .amount {
    position: relative;
    font-family: 'chunkfiveregular';
    font-size: 8em;
    margin-top: 28%;
}

#countdown .label {
    position: absolute;
    top: 52%;
    left: 50%;
    transform: translateX(-50%);
    font-family: 'rumpiregular';
    font-size: 4em;
    color: #f9be34;
}

@media only screen and (max-width : 700px) {
    #countdown .amount {
        font-size: 7em;
    }
    
    #countdown .label {
        top: 53.5%;
        font-size: 3em;
    }
}

@media only screen and (max-width : 600px) {
    #countdown .amount {
        font-size: 6em;
    }
    
    #countdown .label {
        top: 55%;
        font-size: 2em;
    }
}

@media only screen and (max-width : 500px) {
    #countdown {
        width: 100%;
        margin: 0;
        white-space: nowrap;
    }

    #countdown > div {
        width: 25%;
        margin: 0 -3.5%;
        background-image: none;
    }

    #countdown .label {
        top: 70%;
    }
}

@media only screen and (max-width : 440px) {
    #countdown > div {
        margin: 0;
    }
}

/**************************************/
/*              DETAILS               */
/**************************************/

#details {
    margin-top: -5%;
    font-size: 2.5em;
    color: #f9be34;
    line-height: 1em;
}

#details > div {
    font-size: 0.8em;
}

#details a {
    display: inline-block;
    padding: 0;
    border-bottom: 2px solid #f9be34;
}
#details a:hover {
    padding: 0 10px;
}

#details .meta {
    font-size: 0.7em;
    font-weight: 400;
    color: #fff;
}

@media only screen and (max-width : 1330px) {
    #details {
        margin-top: 0px;
        line-height: 1.2em;
    }
}

@media only screen and (max-width : 500px) {
    #details {
        margin-top: 7%;
        line-height: 1.4em;
    }
}

@media only screen and (max-width : 400px) {
    #details {
        font-size: 2.2em;
    }
}

/**************************************/
/*              TICKETS               */
/**************************************/

#tickets {
    margin-top: 5%;
}

#tickets > div {
    display: inline-block;
    margin: 0 20px;
}

#tickets a {
    position: relative;
    padding: 8px 62px 14px;
    background: #fff;
    color: #000;
    font-size: 2.4em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 8px;
}

#tickets a .so {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-35%) rotate(-15deg);
    font-family: 'rumpiregular';
    text-transform: capitalize;
    color: #d20404;
    /*font-size: 2.5em;*/
    white-space: nowrap;
    width: 100%;
    opacity: 75%;
}

#tickets a .so img {
    width: 90%;
}

#tickets a:hover {
    box-shadow: inset 0 0 8px 4px #f9be34, 0 0 50px 5px #f9be34;
}

#tickets a.disabled:hover {
    cursor: not-allowed;
    box-shadow: inset 0 0 8px 4px #f9be3439, 0 0 50px 5px #f9be3439;
}

@media only screen and (max-width : 700px) {
    #tickets > div {
        display: block;
        padding: 20px 0;
    }
}

@media only screen and (max-width : 500px) {
    #tickets {
        margin-top: 10%;
    }

    #tickets a {
        padding: 6px 50px 11px;
    }
}

/**************************************/
/*            EVENT DETAILS           */
/**************************************/

#event_details {
    position: relative;
    margin-top: 10%;
    background: #fff;
    aspect-ratio: 1.79;
    -webkit-mask: url(../img/ed_mask1.svg) no-repeat;
    mask: url(../img/ed_mask1.svg) no-repeat;
}

#event_details .thumbnail {
    width: 100%;
    height: 100%;
    -webkit-mask: url(../img/ed_mask2.svg) no-repeat;
    mask: url(../img/ed_mask2.svg) no-repeat;
}

#event_details .thumbnail > .image {
    width: 70%;
    height: 100%;
    background-image: url(../img/river_ranch1.jpg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

#event_details .logo {
    position: absolute;
    width: 45%;
    left: 0;
    top: 14%;
}

#event_details .logo img {
    width: 100%;
}

#event_details .event_details {
    color: #000;
    position: absolute;
    top: 26%;
    right: 0;
    width: calc(50% - 100px);
    padding: 0 60px 0 50px;
    height: 100%;
}

#event_details p {
    font-size: 1.6em;
    padding: 0 7%;
}

#event_details a {
    font-size: 2em;
    text-decoration: none;
    color: #000;
    border-bottom: 0px solid rgba(0,0,0,0);
}

#event_details a:hover {
    color: #f9be34;
    border-bottom: 2px solid #f9be34;
}

@media only screen and (max-width : 1024px) {
    #event_details .event_details {
        padding: 0 5%;
        width: calc(50% - 80px);
    }

    #event_details h2 {
        margin: 2% 0;
    }

    #event_details p {
        padding: 0;
    }
}

@media only screen and (max-width : 900px) {
    #event_details .event_details {
        padding: 0 2%;
        width: calc(50% - 40px);
    }
}

@media only screen and (max-width : 800px) {
    #event_details {
        aspect-ratio: 1;
        -webkit-mask: none;
        mask: none;
        background: none;
    }

    #event_details .thumbnail {
        -webkit-mask: none;
        mask: none;
        height: 50%;
        -webkit-mask: url(../img/ed_mask1.svg);
        -webkit-mask-position: top;
        -webkit-mask-repeat: no-repeat;
        -webkit-mask-size: cover;
        mask: url(../img/ed_mask1.svg);
        mask-position: top;
        mask-repeat: no-repeat;
        mask-size: cover;
    }

    #event_details .logo {
        width: 100%;
        top: 0;
    }

    #event_details .thumbnail > .image {
        width: 100%;
    }

    #event_details .event_details {
        background: #fff;
        position: relative;
        top: 0;
        width: 100%;
        padding: 2px 0;
    }

    #event_details p {
        padding: 0 10%;
    }
}

@media only screen and (max-width : 400px) {
    #event_details {
        aspect-ratio: 0.8;
    }
}

/**************************************/
/*              SCHEDULE              */
/**************************************/

#schedule {
    position: relative;
    margin-top: -20%;
    aspect-ratio: 1;
    color: #000;
}

#schedule .bg {
    position: absolute;
    top: 0;
    width: 100%;
    background: #f9be34;
    aspect-ratio: 1.79;
    -webkit-mask: url(../img/sch_mask.svg) no-repeat;
    mask: url(../img/sch_mask.svg) no-repeat;
    z-index: 0;
}

#schedule h1 {
    position: relative;
    padding-top: 15%;
    margin-bottom: 1%;
    z-index: 100;
}

#schedule table {
    position: relative;
    margin: 0 auto;
    font-size: 2em;
    z-index: 100;
}

#schedule td {
    padding: 5px;
}

#schedule .nw {
    min-width: 42px;
}

#schedule td:nth-child(odd) {
    color: #fff;
}

#schedule .spacer {
    background: #f9be34;
    height: 50%;
}

#schedule .meta {
    position: relative;
    text-align: center;
}

@media only screen and (max-width : 950px) {
    #schedule {
        aspect-ratio: .95;
    }
}

@media only screen and (max-width : 800px) {
    #schedule {
        margin-top: -75%;
        aspect-ratio: .9;
    }
}

@media only screen and (max-width : 700px) {
    #schedule {
        margin-top: -65%;
        aspect-ratio: .85;
    }
}

@media only screen and (max-width : 600px) {
    #schedule {
        margin-top: -60%;
        aspect-ratio: .85;
    }

    #schedule .spacer {
        margin-top: -10%;
    }
}

@media only screen and (max-width : 550px) {
    #schedule {
        margin-top: -55%;
        aspect-ratio: .8;
    }
}

@media only screen and (max-width : 500px) {
    #schedule {
        margin-top: -45%;
        aspect-ratio: .8;
    }

    #schedule table {
        font-size: 1.6em;
    }
}

@media only screen and (max-width : 450px) {
    #schedule {
        margin-top: -35%;
        aspect-ratio: .75;
    }

    #schedule .spacer {
        margin-top: -20%;
    }
}

@media only screen and (max-width : 400px) {
    #schedule {
        margin-top: -55%;
        aspect-ratio: .7;
    }

    #schedule .spacer {
        margin-top: -30%;
    }
}

@media only screen and (max-width : 375px) {
    #schedule {
        margin-top: -50%;
    }

    #schedule .spacer {
        margin-top: -35%;
    }
}

@media only screen and (max-width : 350px) {
    #schedule {
        margin-top: -35%;
    }

    #schedule .spacer {
        margin-top: -40%;
    }
}

/**************************************/
/*               HOTELS               */
/**************************************/

#hotels {
    position: relative;
    margin-top: -62%;
}

#hotels .content {
    margin-top: -5%;
    text-align: center;
}

#hotels .bg {
    position: absolute;
    top: 0;
    width: 100%;
    background: #000;
    aspect-ratio: 1.79;
    -webkit-mask: url(../img/hot_mask.svg) no-repeat;
    mask: url(../img/hot_mask.svg) no-repeat;
}

#hotels h1 {
    position: relative;
    padding-top: 10%;
    margin-bottom: 25px;
    z-index: 100;
}

#hotels .hotel {
    display: inline-block;
    width: calc(100% / 4);
    text-align: center;
    vertical-align: top;
    margin: 0 -1px;
}

#hotels .thumbnail {
    position: relative;
    width: 140%;
    margin: 0 -20%;
    aspect-ratio: 1;
}

#hotels .thumbnail > .frame {
    position: relative;
    width: 100%;
    height: 100%;
    background-image: url(../img/polygon.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    vertical-align: top;
    z-index: 100;
}

#hotels .thumbnail > .image {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    -webkit-mask: url(../img/polygon_alpha.png);
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask: url(../img/polygon_alpha.png);
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    vertical-align: top;
    z-index: 0;
}

#hotels .thumbnail > .hotel-courtyard {
    background-image: url(../img/hotel_courtyard.jpg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 65% 65%;
}

#hotels .thumbnail > .hotel-towneplace {
    background-image: url(../img/hotel_towneplace.jpg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 65% 65%;
}

#hotels .thumbnail > .hotel-fairfield {
    background-image: url(../img/hotel_fairfield.jpg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 65% 65%;
}

#hotels .thumbnail > .hotel-achotel {
    background-image: url(../img/hotel_achotel.jpg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 65% 65%;
}

#hotels .info {
    text-align: left;
    display: inline-block;
}

#hotels .info > div {
    font-size: 1.6em;
    font-weight: 300;
    color: #f9be34;
}

#hotels h3 {
    margin: 0;
    margin-top: -15%;
    font-size: 1.5em;
    padding: 0 6px;
}

#hotels h4 {
    margin: 0;
}

#hotels a {
    display: block;
    width: 50%;
    padding: 8px 18px 14px;
    background: #fff;
    color: #000;
    font-size: 2em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 8px;
    margin: 10px auto 0;
}

#hotels a:hover {
    box-shadow: inset 0 0 8px 4px #f9be34, 0 0 50px 5px #f9be34;
}

@media only screen and (max-width : 1280px) {
    #hotels .content {
        padding: 0 10%;
    }

    #hotels a {
        font-size: 2.4em;
    }
}

@media only screen and (max-width : 1024px) {
    #hotels .content {
        padding: 0 5%;
    }
}

@media only screen and (max-width : 720px) {
    #hotels .hotel {
        width: calc(100% / 3);
    }
}

@media only screen and (max-width : 550px) {
    #hotels .hotel {
        width: calc(100% / 2);
    }
}

@media only screen and (max-width : 500px) {
    #hotels .hotel {
        width: 50%;
    }
}

@media only screen and (max-width : 450px) {
    #hotels .content {
        padding: 0 10%;
    }

    #hotels .hotel {
        width: calc(100% / 1);
    }

    #hotels h3 {
        font-size: 2.5em;
    }
}

@media only screen and (max-width : 350px) {
    #hotels {
        margin-top: -55%;
    }
}

/**************************************/
/*              CONTACT               */
/**************************************/

#contact{
    margin: 6% auto 0;
    max-width: 1000px;
    width: 50%;
    padding: 0 100px;
}

#contact h1 {
    margin-bottom: 20px;
}

#contact form {
    position: relative;
    width: 100%;
}

#contact input.field-element {
    width: calc(50% - 30px);
    margin: 6px 4px;
    padding: 10px;
    border: 0;
    border-radius: 6px;
    background: #3a3b3d;
    color: #fff;
    outline: 0px solid #000;
    transition: all 200ms ease-in-out;
}

#contact textarea.field-element {
    width: calc(100% - 30px);
    height: 240px;
    margin: 6px 4px;
    padding: 10px;
    border: 0;
    border-radius: 6px;
    background: #3a3b3d;
    color: #fff;
    outline: 0px solid #000;
    resize: none;
    font-family: Arial, Helvetica, sans-serif;
    transition: all 200ms ease-in-out;
}

#contact input.field-element::placeholder, textarea.field-element::placeholder {
    color: #f9be34;
}

#contact input.field-element:focus-visible, #contact input.field-element:focus, #contact input.field-element:active, #contact textarea.field-element:focus-visible, #contact textarea.field-element:focus, #contact textarea.field-element:active {
    outline: 3px solid #f9be34;
}

#contact input.submit {
    width: calc(100% - 10px);
    margin: 6px 4px;
    padding: 10px;
    border: 0;
    border-radius: 6px;
    background: #3a3b3d;
    color: #f9be34;
    outline: 0px solid #000;
    transition: all 200ms ease-in-out;
}

#contact input.submit:hover {
    background: #f9be34;
    outline: 3px solid #f9be34;
    color: #000;
    cursor: pointer;
}

#contact .results {
    position: absolute;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.8);
    display: none;
    opacity: 0;
}

#contact .results .status {
    position: relative;
    font-size: 1.8em;
    top: 50%;
    transform: translateY(-50%);
    text-align: center;
}

#contact .results .success {
    color: #1cee5b;
}

#contact .results .error {
    color: #e70127;
}

#contact .fa-spinner {
    font-size: 0.8em;
    -webkit-animation: spin 2s infinite linear;
    animation: spin 2s infinite linear;
}

@media only screen and (max-width : 1400px) {
    #contact textarea.field-element {
        height: 180px;
    }
}

@media only screen and (max-width : 1200px) {
    #contact textarea.field-element {
        height: 140px;
    }
}

@media only screen and (max-width : 1000px) {
    #contact textarea.field-element {
        height: 100px;
    }
}

@media only screen and (max-width : 720px) {
    #contact{
        width: 70%;
        padding: 0;
    }
}

@media only screen and (max-width : 500px) {
    #contact{
        width: 85%;
    }
}

@media only screen and (max-width : 400px) {
    #contact{
        width: 92%;
    }
}

/**************************************/
/*               FOOTER               */
/**************************************/

#footer {
    padding: 70px 0 20px;
    font-size: 1.3em;
    color: #3a3b3d;
    text-align: center;
}

#target {
    display: none;
}

#footer .sponsors {
    margin-bottom: 40px;
}

#footer .sponsors a {
    position: relative;
    margin: 0 20px;
    z-index: 1000;
}

#footer .sponsors img {
    width: 200px;
    margin-top: 15px;
    opacity: 0.8;
    transition: opacity 250ms ease-in-out;
    vertical-align: middle;
}

#footer .sponsors a:hover img {
    opacity: 1;
}

/**************************************/
/*             TO THE TOP             */
/**************************************/

#ttt {
    position: fixed;
    bottom: 5%;
    right: -100px;
    width: 50px;
    font-size: 1.2em;
    text-align: center;
    opacity: 0.3;
    z-index: 5000;
    transition: right 200ms ease-in-out;
}

#ttt img {
    width: 100%;
}

#ttt:hover {
    opacity: 1;
    cursor: pointer;
}

#ttt.active {
    right: 5%;
}

/**************************************/
/*               ERROR                */
/**************************************/
#error {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    font-size: 1.5em;
    z-index: 1000;
}

#error h1 {
    pointer-events: none;
    margin: 0;
}

#error h4 {
    text-align: center;
    font-size: 8em;
    line-height: 1em;
    margin: -7% 0 0;
    pointer-events: none;
}

#error .message {
    text-align: center;
    margin-top: -3%;
}

#error a {
    display: block;
    text-align: center;
}

@media only screen and (max-width : 1330px) {
    #error {
        font-size: 1.8em;
    }
}

/**************************************/
/*             ANIMATION              */
/**************************************/

@-moz-keyframes spin {
    from { -moz-transform: rotate(0deg); }
    to { -moz-transform: rotate(360deg); }
}
@-webkit-keyframes spin {
    from { -webkit-transform: rotate(0deg); }
    to { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
    from {transform:rotate(0deg);}
    to {transform:rotate(360deg);}
}