body{
    width: 100%;
    max-width: 1120px;
    height: 100vh;
    overflow: hidden;
    margin: 0 auto;
    background: linear-gradient(#0A1933, rgba(35, 58, 81, 1));
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.hidden_div {
    position: absolute;
    top: -150vh;
}

.flare {
    width: 100%;
    height: 100%;
    background: linear-gradient(rgba(48, 4, 95, 0.1),transparent,transparent,transparent,rgba(53, 51, 7, 0.2));
    position: fixed;
    top: 0;
    left: 0;
}

.grid{
    margin: 0;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(rgba(246,252,202,.1) 1px, transparent .5px), linear-gradient(90deg, rgba(226,252,202,.1) 1px, transparent .5px), url(/StudentFunctions/Interface/images/future_circle.png);
    background-size: 15px 15px, 15px 15px, auto 100%;
    background-position: -2px -2px, -2px -2px, -38% 46vh;
    background-repeat: repeat, repeat, no-repeat;
    position: fixed;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
}

td, .tileWrapper {
    /*box-shadow: inset 0 0 2px 2px #fff;*/
    /*background-color: #bada55;*/
    /*padding: 4px;*/
}
.tileWrapper, .tile{
    height: calc(12.5vmin - .9vmin - 2px); /* 1/8 - some padding - cellspacing */
    width: calc(12.5vmin - .9vmin - 2px); /* 1/8 - some padding - cellspacing */
    max-width: calc(8.125vmax); /* 1/8 of 65vmax */
    max-height: calc(8.125vmax); /* 1/8 of 65vmax */
    box-sizing: border-box;
}
.tile {
    font-family: 'Adventurer Light SF';
    border-radius: 18.5%;
    text-align: center;
    line-height: 1.5em;
    position: relative;
    background-color: #565656;
    color: rgba(1, 127, 166, .7);
    text-shadow: 1px 2px 5px rgba(255, 255, 255, 0.8);
    -webkit-background-clip: text;
    -moz-background-clip: text;
    background-clip: text;
}

.threeDigits{ line-height: 1.9em; }

.tile img{
    width: 100%;
    height: 100%;
}
.emptyTile {
    background: rgba(39, 96, 99, 0.5);
    border: 2px solid rgba(146, 146, 146, 0.3);
}
.validTile, .hintTile {
    cursor:pointer;
    border: 2px solid rgba(47,211,219,1);
    background: rgba(80, 204, 222,0.4);
}
@media all and (min-width: 1500px) {
    .validTile, .hintTile, .emptyTile {
        border-width: 4px;
    }
}
.hintTile {
    /*cursor:pointer;*/
    /*border: 2px solid #0080ff;*/
    /*background: #8ed0ff;*/
    background-image: url("/StudentFunctions/Interface/images/future_hint.png");
    background-size: 100%;
    -moz-box-shadow: 0 0 30px #2FD3DB;
    -webkit-box-shadow: 0 0 30px #2FD3DB;

    -webkit-animation: flickerAnimation 1s infinite;
    -moz-animation: flickerAnimation 1s infinite;
    -o-animation: flickerAnimation 1s infinite;
    animation: flickerAnimation 1s infinite;
}
.gamePiece {
    /*border: 2px solid #A59834;*/
    /*background: #D3C344;*/
    /*border: solid 2px #3490b2;*/
    background: rgba(42,232,240,0);
    background-image: url("/StudentFunctions/Interface/images/future_tile.png");
    background-repeat: no-repeat;
    background-size: 100%;
    letter-spacing: -4px;
    text-indent: -4px;
}
.nextPiece {
    position: absolute;
    z-index: 1;
    top: -50vw;
}
.gamePiece.rightAnswer {
    /*border: 2px solid #A59834;*/
    /*background: #9cff28;*/
    -moz-box-shadow: 0 0 30px #9cff28;
    -webkit-box-shadow: 0 0 30px #9cff28;
    background-image: url("/StudentFunctions/Interface/images/future_right.png");
    box-shadow: 0px 0px 30px #9cff28;
    color: rgb(255, 255, 255);
    background-size: 100%;
    text-shadow: 1px 2px 5px rgba(98, 190, 60, 0.5);
}

.wrongAnswer.validTile {
    background-size: 100%;
    background: rgba(255, 75, 43, 0.51);
    border: 2px solid #af533a;
}

.wrongAnswer {
    /*border: 2px solid #A59834;*/
    /*background: #ff4b2b;*/
    background-image: url("/StudentFunctions/Interface/images/future_wrong.png");
    color: rgb(89, 27, 27);
    text-shadow: 1px 2px 5px rgba(127, 79, 28, 0.5);
}

.bubble {
    position: absolute;
    /*border-radius: 25px;*/
    /*background: rgba(245, 222, 78, 0.70);*/
    color: #FFFFFF;
    width: 70px;
    height: 30px;
    text-align: center;
    font-size: 25px;
    z-index: 2;
    font-family: "Exo2";
    text-shadow: 0px 0px 4px #000000;
}

.time_div {
    font-family: "Exo2";
    color: #2AE8F0;
    background: url(/StudentFunctions/Interface/images/future_score.png) no-repeat;
    background-size: 100% 100%;
    font-variant: small-caps;
    max-width: calc(25vw + 100px); /*Crazy thing to make sure it stays within reasonable size (Full width is 35vw)*/
}

.mathfact_div, .time_div {
    width: 100%;
    /*max-width: 195px;*/
    margin: auto;
}

.factWrapper{
    margin: 0 auto;
    display: table;
}
.operator_div {
    text-align: right;
    display: flex;
    justify-content: space-between;
    padding: 5px 0;
}
.operator {
    align-self: flex-end;
    color: rgba(47,211,219,1);
    padding-right: .4em;
    font-family: 'Adventurer Light SF';
}
.nextPiece_div {
    display: flex;
    justify-content: flex-end;
    padding: 4px 0;
}

.factanswer_div {
    text-align: right;
    padding: 0 5px;
    color: rgba(47,211,219,1);
    font-family: 'Adventurer Light SF';
    letter-spacing: -4px;
}

.fact_bottom {
    border-top: 3px solid #2FD3DB;
}
.fact_bottom .tile{
    float: right;
    margin-top: 5px;
}
.fact_bottom .tileWrapper{
    float: right;
}

.notGrid_div{
    width: 35vw;
    float: left;
}

.navigationBar {
    float: right;
    width: 65px;
    align-self: flex-start;
}

.navigationBar img {
    width: 60px;
    float: right;
    margin-bottom: 10px;
}

.contentWrapper{
    width: 100%;
    display: flex;
    justify-content: center;
}

#time {
    display: flex;
    padding: 4% 10% 0;
    justify-content: space-between;
    align-items: center;
}

#bonus_alert {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

#bonus_alert span {
    width: 50%;
}
@media all and (max-width: 600px) {
    #bonus_alert span {
        width: 75%;
    }
}

#bonus_alert img {
    width: 100%;
    -webkit-animation: bonus_slide 2.5s cubic-bezier(0.01, -0.02, 0.37, 0.79) forwards;
    animation: bonus_slide 2.5s cubic-bezier(0.01, -0.02, 0.37, 0.79) forwards;
}

@-webkit-keyframes bonus_slide {
    0% {
        transform: translateY(0);
        opacity: 1;
    }
    40% {
        opacity: 1;
    }
    100% {
        transform: translateY(-260%);
        opacity: 0;
    }
}


@keyframes bonus_slide {
    0% {
        transform: translateY(0);
        opacity: 1;
    }
    40% {
        opacity: 1;
    }
    100% {
        transform: translateY(-260%);
        opacity: 0;
    }
}

/*TIMER CSS*/
.timer-bar {
    height: 3px;
    width: 65%;
    position: relative;
    z-index: 10;
    background-color: #55708d;
}
.timer-bar .timer {
    position: relative;
    height: 100%;
    background-color: #cfd6dd;
    /*transition: width 1s linear;*/
    border-radius: 0px 2px 2px 0px;
}
.timer-bar .timer-glow {
    width: 60px;
    max-width: 100%;
    height: 100%;
    float: right;
}
.timer-bar .timer-glow::before,
.timer-bar .timer-glow::after {
    content: '';
    display: block;
    position: relative;
    border-radius: 0px 2px 2px 0px;
}
.progress-bar .glow::before {
    background: transparent;
    height: 100%;
    box-shadow: 0px 0px 10px #cfd6dd, 0px 0px 10px #04bfff;
    z-index: -5;
}
.timer-bar .timer-glow::after {
    height: 100%;
    width: 100%;
    box-shadow: 5px 0 12px 0px #c3fcff, 5px 0 20px 1px #4b8aa7;
    z-index: -3;
}

.fill-1 {
    animation: fill-1 0.5s ease-out 1s;
    width: 0%;
}

@keyframes flickerAnimation {
    0%   { opacity:1; }
    50%  { opacity:0.5; }
    100% { opacity:1; }
}
@-o-keyframes flickerAnimation{
    0%   { opacity:1; }
    50%  { opacity:0.5; }
    100% { opacity:1; }
}
@-moz-keyframes flickerAnimation{
    0%   { opacity:1; }
    50%  { opacity:0.5; }
    100% { opacity:1; }
}
@-webkit-keyframes flickerAnimation{
    0%   { opacity:1; }
    50%  { opacity:0.5; }
    100% { opacity:1; }
}


@keyframes fill-1 {
    0% {
        width: 0%;
    }
    100% {
        width: 100%;
    }
}


/*NEW CSS*/

/* Landscape phones and smaller */
@media only screen
and (max-width: 480px) {
}

/* Portrait Tablets and Mini's Too */
@media only screen
and (max-width: 767px) {
    .bubble {
        /*font-size: 17px;*/
    }
}

/* Big Screens */
@media only screen and (min-width: 1500px) { td {padding: 3px;} }
@media only screen and (min-width: 1800px) { td {padding: 5px;} }

@media only screen and (orientation:landscape) {

    .tile, .tileWrapper{
        /*font-size: calc(1vh + 3vw);*/
        max-width: calc(8.125vw); /* 1/8 of 65vw */
        max-height: calc(8.125vw); /* 1/8 of 65vw */
    }
    /*.threeDigits{font-size: calc(1vh + 2.2vw);}*/
    #expanding_container {
        float: right;
    }

    .grid_div{
        display: flex;
    }
    .time_div{
        font-size: calc(1vw + 3vh);
    }
    .mathfact_div {
        padding-top: 11%;
    }
    .factanswer_div, .operator{
        font-size: calc(5vh + 3.5vw);
    }

    @media (max-width: 1050px) {
        .time_div{
            font-size: calc(1vw + 2vh);
        }
        .tile{
            /*font-size: calc(1vh + 4.4vw);*/
        }
        .threeDigits{
            /*font-size: calc(1vh + 2.8vw);*/
        }
        .navigationBar {
            width: 55px;
        }
        .navigationBar img {
            width: 55px;
            margin-bottom: 5px;
        }
    }

    @media (max-width: 960px) {
        .tile{
            /*font-size: calc(1vh + 4vw);*/
        }
        .threeDigits{
            /*font-size: calc(1vh + 3vw);*/
        }
        .time_div{
            font-size: calc(1vw + 3vh);
        }
        .navigationBar {
            width: 40px;
        }
        .navigationBar img {
            width: 40px;
        }
    }

}

@media only screen and (orientation: portrait) {
    .tile, .tileWrapper{
        letter-spacing: -3px;
        max-width: 7vh;
        max-height: 7vh;
        /*font-size: calc(1vh + 3.4vh);*/
    }
    .threeDigits{
        /*font-size: calc(1vh + 4.2vw);*/
        line-height: 1.8em;
    }

    body{
        height: calc(100vh - 50px);
        margin-top: 50px;
    }
    .grid{
        overflow-y: auto;
        overflow-x: hidden;
    }

    .notGrid_div {
        width: 100%;
        max-width: none;
    }

    .time_div {
        width: calc(100% - 130px);
        max-width: 300px;
        margin: 0;
        font-size: calc(1vh + 3vw);
    }

    .factanswer_div, .operator{
        font-size: calc(5vw + 3.5vh);
    }
    .navigationBar {
        position: absolute;
        right: 0;
        top: 0;
        width: 50vw;
    }
    .navigationBar img {
        width: 42px;
        margin-bottom: 0;
    }

    .contentWrapper{
        height: 100vh;
        flex-wrap: wrap;
    }

    @media (min-width: 575px) {
        div.time_div{
            font-size: calc(1vh + 2vw);
        }

        .navigationBar img {
            width: 60px;
        }
    }
    @media (min-width: 400px) {
        .tile{
            /*font-size: calc(2vw + 3.4vh);*/
            line-height: 1.4em;
        }
        .threeDigits {
            /*font-size: calc(2vw + 2.6vw);*/
            line-height: 1.6em;
        }
    }
}


/*For IPad strange landscape thing*/
@media only screen and (orientation: landscape) and (min-height: 430px) and (max-width: 1024px){
    .notGrid_div {
        width: 27vw;
    }
}

@media only screen and (orientation: landscape) and (min-height: 650px) and (max-width: 1285px){
    .notGrid_div {
        width: 28vw;
    }
}

table {
    border-collapse: collapse;
    margin: auto;
}

/* Large Desktop */
@media only screen
and (min-width: 950px) {
}

#liveSession_div * { /*needed for math tiles*/
    vertical-align: unset !important;
}
