/*
 Copyright (C) 2019 Jan-Dirk van Dingenen
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/  

@import url('https://fonts.googleapis.com/css?family=Alfa+Slab+One');

html {
    --scale:10vh;
    /* set to 7vh incase of a 1024x768 screen */
    background: #f5f5f5;
    font-family: sans-serif;
}

#gamecode {
    text-align: center;
    color: #fff;
    background: #303030;
    border-radius: calc(var(--scale) * 0.25);
    padding: calc(var(--scale) * 0.3);
    font-size: calc(var(--scale) * 0.45);
    margin: calc(var(--scale) * 0.1) auto;
    width: 80vw;
    position: absolute;
    left: 50%;
    top: calc(var(--scale) * 4.5);
    transform: translate(-50%, -50%);
    z-index: 1;
    font-family: 'Alfa Slab One', cursive;
    color:#f5f5f5;
}

#rules {
    text-align:center;
}

#gamecode span {
    font-size: calc(var(--scale) * 0.55);
}

#gamecode #urlTag {
    position: absolute;
    top: calc(var(--scale) * -0.1);
    left: 50%;
    font-size: calc(var(--scale) * 0.45);
    background: rgba(255, 255, 255, 0.6);
    border-radius: calc(var(--scale) * 0.1);
    padding: calc(var(--scale) * 0.1);
    color: #ff7200;
    transform: translate(-50%,-50%);
    text-shadow: 1px 1px 1px #000;
}


#gamecode #showgamecode {
    color: #fff;
    font-size: calc(var(--scale) * 0.75);
}

.titleText {
    font-size: calc(var(--scale) * 2);
    position: absolute;
    width: 99%;
    font-family: 'Alfa Slab One', cursive;
    text-align: center;
    animation: shadow 10s linear infinite;
    --color1 : rgba(255,0,0,0.7);
    --color2 : rgba(0,255,0,0.7);
    --color3 : rgba(0,0,255,0.7);
    --bleed : calc(var(--scale) * 0.1);
    pointer-events:none;
}

.titleText:before {
    content: "Bulls Hit";
    animation: shadow 7s linear infinite;
    position: absolute;
    z-index: -1;
    top: 0px;
    left: 0px;
    width: 99%;
    text-align: center;
    color: rgba(255,255,255,0.5);
    --color1 : rgba(255,0,255,0.7);
    --color2 : rgba(255,255,0,0.7);
    --color3 : rgba(0,255,255,0.7);
    --bleed : calc(var(--scale) * 0.07);
}

.titleText img {
    position: absolute;
    left: 55%;
    transform: translate(-50%,0);
    width: calc(var(--scale) * 3);
    top: 46%;
}


@keyframes shadow {
    0%,100% { 
        filter: drop-shadow(calc(var(--scale) * -0.5) calc(var(--scale) * -0.5) var(--bleed) var(--color1))
                drop-shadow(calc(var(--scale) * 0.5) calc(var(--scale) * 0.5) var(--bleed) var(--color2))
                drop-shadow(calc(var(--scale) * -0.5) calc(var(--scale) * 0.5) var(--bleed) var(--color3));                
    }
    12% { 
        filter: drop-shadow(calc(var(--scale) * -0.7) calc(var(--scale) * 0) var(--bleed) var(--color1))
                drop-shadow(calc(var(--scale) * 0.7) calc(var(--scale) * 0) var(--bleed) var(--color2))
                drop-shadow(calc(var(--scale) * 0) calc(var(--scale) * 0.7) var(--bleed) var(--color3));
    }
    25% { 
        filter: drop-shadow(calc(var(--scale) * -0.5) calc(var(--scale) * 0.5) var(--bleed) var(--color1))
                drop-shadow(calc(var(--scale) * 0.5) calc(var(--scale) * -0.5) var(--bleed) var(--color2))
                drop-shadow(calc(var(--scale) * 0.5) calc(var(--scale) * 0.5) var(--bleed) var(--color3));
    }
    37% { 
        filter: drop-shadow(calc(var(--scale) * 0) calc(var(--scale) * 0.7) var(--bleed) var(--color1))
                drop-shadow(calc(var(--scale) * 0) calc(var(--scale) * -0.7) var(--bleed) var(--color2))
                drop-shadow(calc(var(--scale) * 0.7) calc(var(--scale) * 0) var(--bleed) var(--color3));
    }
    50% { 
        filter: drop-shadow(calc(var(--scale) * 0.5) calc(var(--scale) * 0.5) var(--bleed) var(--color1))
                drop-shadow(calc(var(--scale) * -0.5) calc(var(--scale) * -0.5) var(--bleed) var(--color2))
                drop-shadow(calc(var(--scale) * 0.5) calc(var(--scale) * -0.5) var(--bleed) var(--color3));                
    }
    62% { 
        filter: drop-shadow(calc(var(--scale) * 0.7) calc(var(--scale) * 0) var(--bleed) var(--color1))
                drop-shadow(calc(var(--scale) * -0.7) calc(var(--scale) * 0) var(--bleed) var(--color2))
                drop-shadow(calc(var(--scale) * 0) calc(var(--scale) * -0.7) var(--bleed) var(--color3));
    }
    75% { 
        filter: drop-shadow(calc(var(--scale) * 0.5) calc(var(--scale) * -0.5) var(--bleed) var(--color1))
                drop-shadow(calc(var(--scale) * -0.5) calc(var(--scale) * 0.5) var(--bleed) var(--color2))
                drop-shadow(calc(var(--scale) * -0.5) calc(var(--scale) * -0.5) var(--bleed) var(--color3));
    }
    87% { 
        filter: drop-shadow(calc(var(--scale) * 0) calc(var(--scale) * -0.7) var(--bleed) var(--color1))
                drop-shadow(calc(var(--scale) * 0) calc(var(--scale) * 0.7) var(--bleed) var(--color2))
                drop-shadow(calc(var(--scale) * -0.7) calc(var(--scale) * 0) var(--bleed) var(--color3));
    }
}

#buttons {
    position: absolute;
    top: calc(var(--scale) * 0.1);
    right: calc(var(--scale) * 0.2);
    display: flex;
    flex-direction: column;
    align-items: center;
}

#settings {
    width: 100%;
}

#buttons input {
    width: 100%;
    margin-bottom: calc(var(--scale) * 0.1);
    padding: calc(var(--scale) * 0.05);
    box-sizing: border-box;
    border-radius: calc(var(--scale) * 0.05);
    text-align: center;
    position: relative;
}

#answerTime:after {
    content:"ANSWER TIME";
    position: absolute;
}

button {
    font-family: 'Alfa Slab One', cursive;
    background-color: rgb(41, 219, 255);
    border-bottom: calc(var(--scale) * 0.05) solid rgb(26, 113, 145);
    text-shadow: 0px calc(var(--scale) * -0.02) #1a7191;
    padding: calc(var(--scale) * 0.1) calc(var(--scale) * 0.4);
    border-radius: calc(var(--scale) * 0.1);
    font-size: calc(var(--scale) * 0.25);
    color: rgb(255, 255, 255);
    transition: all 0.1s;
    outline: none;
    cursor: pointer;
    background-position: calc(var(--scale) * -3) calc(var(--scale) * -0.85), 0 0;
    background-size: 250% 250%, 100% 100%;
    transition: background-position 0s ease;
    background-image: -webkit-linear-gradient( top left, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.2) 37%, rgba(255, 255, 255, 0.8) 45%, rgba(255, 255, 255, 0.0) 50% ), -webkit-linear-gradient( rgb(101, 169, 215), rgb(101, 169, 215) );
    width: calc(var(--scale) * 2.5);
}

button:hover,
button:focus {
    background-position:0 0, 0 0;
    transition-duration:0.5s;
}
 
button:active {
    border-bottom: calc(var(--scale) * 0.01) solid;
}

.showSetting {
    font-size: calc(var(--scale) * 0.40);
    font-family: 'Alfa Slab One', cursive;
    letter-spacing: calc(var(--scale) * 0.03);
}

#playerList {
    position: absolute;
    bottom: 0;
    height: calc(var(--scale) * 4.2);
    padding: 0 calc(var(--scale) * 0.2);
    overflow-y: hidden;
}

#playerList .playerJoined {
    margin: calc(var(--scale) * 0.1);
    padding: calc(var(--scale) * 0.1) calc(var(--scale) * 0.1);
    display: inline-block;
    line-height: calc(var(--scale) * 0.3);
    box-sizing: border-box;
    border-radius: calc(var(--scale) * 0.15);
    font-weight: bold;
    color: #000000;
    background: #FF7200;
    background: -webkit-linear-gradient(top, rgba(255,243,238,1) 0%,rgba(255,153,58,1) 50%,rgba(255,124,0,1) 53%,rgba(251,115,60,1) 100%);
    background: linear-gradient(to bottom, rgba(255,243,238,1) 0%,rgba(255,153,58,1) 50%,rgba(255,124,0,1) 53%,rgba(251,115,60,1) 100%);
    box-shadow: 0 0 0 1px #bf5d00, 1px 2px 2px #000000a3;
    text-shadow: 0 0 1px #fff;
    opacity: 0;
    animation: showup 1s both;
    font-size: calc(var(--scale) * 0.25);
    max-width: calc(var(--scale) * 2.5);
    min-width: calc(var(--scale) * 1.5);
    text-align: center;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

@keyframes showup {
    10%, 90% { opacity: 0.2}
    20%, 80% { opacity: 0.4}
    30%, 50%, 70% { opacity: 0.6}
    40%, 60% { opacity: 0.8}
    100% { opacity: 1}
}

#playerCounter {
    position: absolute;
    top: calc(var(--scale) * 0.1);
    left: calc(var(--scale) * 0.2);
    font-size: calc(var(--scale) * 0.25);
    font-family: 'Alfa Slab One', cursive;
    color: #303030;
    background-color: #fff;
    padding: calc(var(--scale) * 0.15);
    border-radius: calc(var(--scale) * 0.1);
}

#playerCount {
    font-size: calc(var(--scale) * 0.4);
    text-align: center;
}

.logo {
    font-size: calc(var(--scale) * 0.4);
    font-family: 'Alfa Slab One', cursive;
    text-align: center;
    display: inline-block;
    animation: shadow 15s linear infinite;
    --color1: rgba(26, 26, 26, 1);
    --color2: rgb(123, 123, 123);
    --color3: rgb(213, 213, 213);
    --bleed: calc(var(--scale) * 0);
}

.logo img {
    width: calc(var(--scale) * 2);
    display: block;
    filter: saturate(0);
}

#question {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    z-index: 10;
    pointer-events: none;
    font-family: 'Alfa Slab One', cursive;
    font-size: calc(var(--scale) * 0.7);
    text-align: center;
    filter: drop-shadow(2px 2px 0px darkgray);
    transition: all 1s;
}

#question img {
    width: calc(var(--scale) * 4);
    display: block;
}

#question.atTop {
    top: calc(var(--scale) * 0.1);
    transform: translate(-50%,0);
    font-size: calc(var(--scale) * 0.3);
}

#question.atTop img {
    width: calc(var(--scale) * 1);
    display: inline-block;
    vertical-align: top;
}

.timer {
    width: 100%;
    height: calc(var(--scale) * 0.5);
    background-color: #a00;
}

#endGameButton, #nextButton {
    display:none;
}

#gameStarted {
    display:none;
}

#gameEnded {
    display:none;
}

#answers {
    margin-top: calc(var(--scale) * 1);
    text-align:center;
}

#answers .playerAnswer {
    margin: calc(var(--scale) * 0.15);
    padding: calc(var(--scale) * 0.175) calc(var(--scale) * 0.2);
    display: inline-block;
    line-height: calc(var(--scale) * 0.3);
    box-sizing: border-box;
    border-radius: calc(var(--scale) * 0.15);
    font-weight: bold;
    color: #000000;
    background: #FF7200;
    background: -webkit-linear-gradient(top, rgba(255,243,238,1) 0%,rgba(255,153,58,1) 50%,rgba(255,124,0,1) 53%,rgba(251,115,60,1) 100%);
    background: linear-gradient(to bottom, rgba(255,243,238,1) 0%,rgba(255,153,58,1) 50%,rgba(255,124,0,1) 53%,rgba(251,115,60,1) 100%);
    box-shadow: 0 0 0 1px #bf5d00, 1px 2px 2px #000000a3;
    text-shadow: 0 0 1px #fff;
    font-size: calc(var(--scale) * 0.3);
    text-align: center;
    white-space: nowrap;
    text-transform: capitalize;
}

#roundScores {
    position: absolute;
    left: calc(var(--scale) * 3);
    width: calc(100% - calc(var(--scale) * 6.5));
    top: calc(var(--scale) * 0.2);
    z-index: 11;
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.scoreColumnTitle {
    text-align: center;
    font-size: calc(var(--scale) * 0.5);
    font-family: 'Alfa Slab One', cursive;
    color: #65a9d7;
    text-shadow: 1px 1px 0px #00a;
}

.popularAnswer {
    background-color: #fff;
    margin: calc(var(--scale) * 0.1) calc(var(--scale) * 0.2);
    padding: calc(var(--scale) * 0.2);
    border-radius: calc(var(--scale) * 0.1);
}

.popularAnswer div {
    display: inline-block;
    line-height: calc(var(--scale) * 0.3);
    vertical-align: middle;
    word-break: break-all;
}

.scoreAnswer {
    font-size: calc(var(--scale) * 0.3);
    font-family: 'Alfa Slab One', cursive;
    color: #65a9d7;
    text-shadow: 1px 1px 0px #00a;
}

.scoreAnswerPicked {
    margin: 0 calc(var(--scale) * 0.1);
}

.scoreAnswerBy {
    font-size: calc(var(--scale) * 0.25);
    font-weight: 700;
}

.popularAnswer div.fools {
    display: block;
}

.popularAnswer .fools .fool {
    margin-right: calc(var(--scale) * 0.2);
}

.gainPlayers {
    background-color: #fff;
    margin: calc(var(--scale) * 0.1) calc(var(--scale) * 0.2);
    padding: calc(var(--scale) * 0.2);
    border-radius: calc(var(--scale) * 0.1);
    display: grid;
    grid-template-columns: auto auto;
    row-gap: calc(var(--scale) * 0.15);
}

.gainName {
    font-size: calc(var(--scale) * 0.3);
    font-family: 'Alfa Slab One', cursive;
    color: #65a9d7;
    text-shadow: 1px 1px 0px #00a;
}

.gainScore {
    text-align: right;
    font-size: calc(var(--scale) * 0.3);
    font-weight: 700;
}

.finalBlock {
    grid-column: 1 / 3;
    margin-bottom: calc(var(--scale) * 0.3);
}

.finalQuestion {
    font-family: 'Alfa Slab One', cursive;
    font-size: calc(var(--scale) * 0.4);
    text-align: center;
    color: #961d1d;
}

.finalAnswer {
    font-family: 'Alfa Slab One', cursive;
    font-size: calc(var(--scale) * 0.6);
    text-align: center;
    color: #000000;
    text-shadow: 1px 1px 0px #a5a5a5;
}

.scoreElementTitle {
    text-align: center;
    font-size: calc(var(--scale) * 0.3);
    font-family: 'Alfa Slab One', cursive;
    color: #65a9d7;
    text-shadow: 1px 1px 0px #00a;
}

.scoreElementPlayers {
    display: flex;
    justify-content: center;
    background-color: #fff;
    margin: calc(var(--scale) * 0.1) calc(var(--scale) * 0.2);
    padding: calc(var(--scale) * 0.2);
    border-radius: calc(var(--scale) * 0.1);
    margin-bottom: calc(var(--scale) * 0.2);
    flex-wrap: wrap;
}

.scoreElementPlayerGood {
    margin: calc(var(--scale) * 0.1);
    white-space: nowrap;
    font-size: calc(var(--scale) * 0.25);
    font-weight: 700;
}

#gameScores {
    display:none;
    position: absolute;
    left: calc(var(--scale) * 3);
    width: calc(100% - calc(var(--scale) * 6.5));
    top: calc(var(--scale) * 0.2);
    z-index: 11;
}

#gameScores #gameScoringTitle {
    text-align: center;
    font-size: calc(var(--scale) * 0.7);
    font-family: 'Alfa Slab One', cursive;
    color: #65a9d7;
    text-shadow: 1px 1px 0px #00a;
}

#gameScores #gameScoringList {
    display: grid;
    grid-template-columns: 1fr 1fr;
    font-size: calc(var(--scale) * 0.5);
    font-family: 'Alfa Slab One', cursive;
}

#gameScoringList div {
    border-bottom: solid 1px #ccc;
}

#gameScoringList .playerScore {
    text-align: right;
}

.playerName:first-child {
    text-shadow: 
        -1px -1px 0 white, 
        1px -1px 0 white, 
        -1px 1px 0 white, 
        1px 1px 0 white, 
        1px 0px 0px #65a9d7, 
        0px 1px 0px #65a9d7, 
        2px 1px 0px #65a9d7, 
        1px 2px 0px #65a9d7, 
        3px 2px 0px #65a9d7, 
        2px 3px 0px #65a9d7, 
        4px 3px 0px #65a9d7, 
        3px 4px 0px #65a9d7, 
        5px 4px 0px #65a9d7, 
        4px 5px 0px #65a9d7, 
        6px 5px 0px #65a9d7, 
        5px 6px 0px #65a9d7, 
        7px 6px 0px #65a9d7, 
        8px 7px 0px 00ffdc, 
        9px 8px 0px 00ffdc;
}

#questionSet {
    width: 100%;
    margin-bottom: calc(var(--scale) * 0.1);
    padding: calc(var(--scale) * 0.05);
    box-sizing: border-box;
    border-radius: calc(var(--scale) * 0.05);
    text-align: center;
    position: relative;
    font-size: calc(var(--scale) * 0.15);
    display:block;
}

/* Explanation screen */

#gameHelp {
    --scale: 9vh;
    font-size: calc(var(--scale) * 0.25);    
}

#gameHelp .titleText {
    position:unset;
}

#gameHelp .titleText img {
    top:unset;
}

#gameHelp  #explanation {
    width: 100%;
    display: flex;
    margin-top: calc(var(--scale) * 1);
    justify-content: space-around;
}

#gameHelp  .explanationColumn {
    width: 27vw;
}

#gameHelp .explanationTitle {
    font-size: calc(var(--scale) * 0.3);
    font-weight: 700;
    padding: calc(var(--scale) * 0.2);
    background: linear-gradient(to bottom, rgba(70,234,196,1) 0%,rgba(66,222,188,1) 24%,rgba(66,222,188,1) 34%,rgba(42,214,171,1) 52%,rgba(63,211,177,1) 70%,rgba(61,206,172,1) 84%,rgba(31,104,87,1) 100%);
    border-radius: calc(var(--scale) * 0.1);
    text-align: center;
    margin-bottom: calc(var(--scale) * 0.2);
    position: relative;
    border: solid 1px #21ad8c;
    border-bottom: solid 2px #000;
    border-top: solid 2px #0dc397;
    text-shadow: 1px 2px 0px #dcfff7;
}

#gameHelp a {
    color: #000;
    font-weight: 700;
    transition: 1s all;
}

#gameHelp a:hover {
    color: #078e71;
}

#gameHelp .explanationTitle:before {
    top: calc(var(--scale) * -1);
    content: "";
    position: absolute;
    background-image: url(img/bull.png);
    background-size: cover;
    width: calc(var(--scale) * 2);
    height: calc(var(--scale) * 1);
    background-repeat: no-repeat;
    z-index: -1;
    background-position: top center;
    left: 50%;
    transform: translate(-50%, 0);
    filter: drop-shadow(2px 2px 3px #000);
}