::-webkit-scrollbar {
    width: .4em;
    height: .6em
}

::-webkit-scrollbar-track-piece {
    background: rgba(255,255,255,0.3)
}

::-webkit-scrollbar-thumb:vertical {
    height: 50px;
    background: rgba(255,255,255,0.7)
}

body {
    margin: 0;
    height: 100%;
    width: 100%;
    z-index: 10;
    background: black;
    user-select: none;
    color: white;
    font-family: sans-serif;
}

#Startmenu {
    display: flex;
    flex-direction: column;
}

#Startmenu h1 {
    height: 80px;
    font-size: 3em;
    text-shadow: 1px 0px 3px red;
    border-bottom: 1px solid white;
    display: flex;
    justify-content: center;
    align-items: baseline;
    margin: 0;
}

#Startmenu h1 sub {
    margin-left: 10px;
    font-size: .5em;
    color: red;
    text-shadow: none;
}

#Startmenu > div{
    display: flex;
    justify-content: space-evenly;
    overflow: hidden;
    align-items: center;
    flex-wrap: wrap;
}

#Startmenu > div > *{
    overflow: auto;
    width: 30%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* 
########  ##          ###    ##    ## ######## ########     ##       ####  ######  ######## 
##     ## ##         ## ##    ##  ##  ##       ##     ##    ##        ##  ##    ##    ##    
##     ## ##        ##   ##    ####   ##       ##     ##    ##        ##  ##          ##    
########  ##       ##     ##    ##    ######   ########     ##        ##   ######     ##    
##        ##       #########    ##    ##       ##   ##      ##        ##        ##    ##    
##        ##       ##     ##    ##    ##       ##    ##     ##        ##  ##    ##    ##    
##        ######## ##     ##    ##    ######## ##     ##    ######## ####  ######     ##     
*/

#playerList {
    height: calc(100vh - 100px);
    align-self: flex-start;
    font-family: Verdana, sans-serif;
}

#playerList .player-container {
    display: flex;
    flex-direction: row;
    align-content: center;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    height: 50px;
    opacity: .3;
    box-shadow: 0px 0px 5px white;
    transition: .2s;
}

#playerList .player-container:hover {
    opacity: .8;
}

#playerList .player-container .name , #playerList .player-container input {
    padding: 5px 10px;
    margin-left: 20px;
}

#playerList .player-container .keyLeft,#playerList .player-container .keyRight {
    float: right;
    margin-right: 15px;
    cursor: pointer;
    border: 1px solid white;
    border-radius: 5px;
    padding: 5px 10px;
}

#playerList .player-container:has(p.focused) {
    opacity: .8!important;
}
#playerList .player-container .focused {
    border: 1px dashed blue;
    background-color: white;
    color: blue;
}

#playerList .player-container .exists {
    animation: pulseHead .2s linear infinite alternate
}

#playerList .player-container.selected {
    opacity: .8 !important;
}

 /*
  ######    #######  
##    ##  ##     ## 
##        ##     ## 
##   #### ##     ## 
##    ##  ##     ## 
##    ##  ##     ## 
 ######    #######   
 */

#Go{
    display: flex;
    justify-content: center;
}

#Go > button {
    height: 15vw !important;
    width: 15vw !important;
    background-color: black;
    border: 5px solid cyan;
    margin: 0;
    font-size: 3vw;
    cursor: pointer;
    border-radius: 100%;
    text-align: center;
    line-height: 14vw;
    overflow: hidden !important;
    color: white;
}

#Go > button:hover {
    background-color: midnightblue;
}

#Go span{
    position: absolute;
    margin-left: -11vw;
    font-size: 14vw;
    opacity: 0.2;
}

@media (max-width: 1400px) {
    #Startmenu > div > *:not(#Go){
        width: 40%;
    }
    #Go{
        width: 20%!important;
    }
}

@media (max-width: 1000px) {
    #Startmenu > div > *:not(#Go){
        width: 50%;
    }
    #Go{
        width: 100%!important;
        padding: 20px;
        border-top: 1px solid white;
    }
}

 /* 
 ######  ######## ######## ######## #### ##    ##  ######    ######  
##    ## ##          ##       ##     ##  ###   ## ##    ##  ##    ## 
##       ##          ##       ##     ##  ####  ## ##        ##       
 ######  ######      ##       ##     ##  ## ## ## ##   ####  ######  
      ## ##          ##       ##     ##  ##  #### ##    ##        ## 
##    ## ##          ##       ##     ##  ##   ### ##    ##  ##    ## 
 ######  ########    ##       ##    #### ##    ##  ######    ######
*/

#settings{
    width: 300px;
    height: calc(100vh - 100px);
    align-items: stretch!important;
    padding-right: 20px;
}

#buttons{
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    position: sticky;
    top: 0;
    z-index: 999;
    background: black;
}

#buttons p {
    background: orange;
    border-radius: 3px;
    text-align: center;
    padding: 10px 20px;
    margin: 10px 0;
    cursor: pointer;
    font-weight: bold;
    font-size: max(1vw, 12px);
    width: 35%;
}

#buttons p:hover {
    background: red;
}

#reset{
    background:  red!important;
}
#reset:hover{
    background:  orange!important;
}

/* 
 ######  ##       #### ########  ######## ########   ######  
##    ## ##        ##  ##     ## ##       ##     ## ##    ## 
##       ##        ##  ##     ## ##       ##     ## ##       
 ######  ##        ##  ##     ## ######   ########   ######  
      ## ##        ##  ##     ## ##       ##   ##         ## 
##    ## ##        ##  ##     ## ##       ##    ##  ##    ## 
 ######  ######## #### ########  ######## ##     ##  ######   
 */

.sliders{
    align-self: stretch;
    padding-bottom: 20px;
}

.sliders p {
    display: inline-block;
    width: 200px;
    text-align: right;
    margin: 0;
}

.sliders .slider {
    display: inline-block;
    width: calc(100% - 230px);
}

.sliders .resetSlider {
    display: inline-block;
    cursor: pointer;
    font-size:25px;
}

.range-slider {
    width: 90%;
    margin: 0 5%
}

.range-slider .rs-range {
    width: 100%;
    -webkit-appearance: none;
}

.range-slider .rs-range:focus {
    outline: none
}

.range-slider .rs-range::-webkit-slider-runnable-track {
    width: 100%;
    height: 15px;
    cursor: pointer;
    box-shadow: none;
    background: #c8c8c8;
    border-radius: 0px;
    border: 0px solid #010101
}

.range-slider .rs-range::-moz-range-track {
    width: 100%;
    height: 15px;
    cursor: pointer;
    box-shadow: none;
    background: #c8c8c8;
    border-radius: 0px;
    border: 0px solid #010101
}

.range-slider .rs-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    background: #dcdcdc;
    border: 1px solid grey !important;
    border-radius: 5px;
    height: 30px;
    width: 50px;
    cursor: pointer;
    margin-top: -8px;
    transition: .5s
}

.range-slider .rs-range::-moz-range-thumb {
    -webkit-appearance: none;
    background: #dcdcdc;
    border: 1px solid grey !important;
    border-radius: 5px;
    height: 30px;
    width: 50px;
    cursor: pointer;
    margin-top: -8px;
    transition: .5s
}

.range-slider .rs-range::-moz-focus-outer {
    border: 0;
}

.range-slider .rs-label {
    position: relative;
    top: 24px;
    left: 25px;
    pointer-events: none;
    line-height: 30px;
    color: black
}

/* 
########   #######  ##    ## ##     ##  ######  
##     ## ##     ## ###   ## ##     ## ##    ## 
##     ## ##     ## ####  ## ##     ## ##       
########  ##     ## ## ## ## ##     ##  ######  
##     ## ##     ## ##  #### ##     ##       ## 
##     ## ##     ## ##   ### ##     ## ##    ## 
########   #######  ##    ##  #######   ######   
*/

#bonus{
    border: 2px dashed purple;
    margin-top: 40px;
    display: flex;
    align-items: center;
    flex-direction: column;
}
#bonus .checkboxContainer {
    display: flex;
    background: purple;
    border-radius: 3px;
    width: 24vw;
    z-index: 2;
    margin-top: -25px;
    line-height: 50px;
    cursor: pointer;
    align-items: center;
    justify-content: space-evenly;
    margin-bottom: 10px;
}

#bonus .checkboxContainer:hover {
    background: midnightblue
}

#bonus input[type=checkbox] {
    height: 25px;
    width: 25px;
}

#bonus-selector {
    text-align: center;
    border-bottom: 2px dashed purple;
}

#bonus-selector.disabled{
    pointer-events: none;
}

#bonus-selector img {
    cursor: pointer;
    margin: 5px;
    border: 3px dotted black;
    border-radius: 100%;
}

#bonus-selector img:hover {
    border: 3px dashed white;
    border-radius: 100%;
}

#bonus-selector .disabled {
    opacity: .3;
}

#bonus-selector.disabled span, #bonus-selector.disabled + .sliders{
    opacity: .3;
}

#bonus-cat-btn{
    width: 100%; 
    display: flex; 
    justify-content: space-evenly; 
    padding: 20px 0 10px;
}

#bonus-self{
    color: yellow;
    cursor: pointer;
    border: 1px solid #04ff04;
    padding: 8px;
    border-radius: 15px;
    background: radial-gradient(green, black);
}

#bonus-others{
    color: yellow;
    cursor: pointer;
    border: 1px solid red;
    padding: 8px;
    border-radius: 15px;
    background: radial-gradient(red, black);
}
#bonus-all{
    color: yellow;
    cursor: pointer;
    border: 1px solid blue;
    padding: 8px;
    border-radius: 15px;
    background: radial-gradient(blue, black);
}


/* 
##     ## ######## ##       ########  
##     ## ##       ##       ##     ## 
##     ## ##       ##       ##     ## 
######### ######   ##       ########  
##     ## ##       ##       ##        
##     ## ##       ##       ##        
##     ## ######## ######## ##         
*/

#showHelp {
  position: relative;
  cursor: help;
}

#showHelp:hover + #help, #help:hover {
    visibility: visible;
}

#help {
  font-size: 16px;
  font-family: Montserrat, sans-serif;
  font-weight: bold;
  font-style:normal;
  width: max-content;
  max-width: 50vw;
  background-color: white;
  color: black;
  border-radius: 6px;
  padding: 5px 20px;
  position: absolute;
  z-index: 999;
  top: 30px;
  left: 50px;
  box-shadow: 0 0 5px 0 black;
  visibility: hidden;
}

/* 
######## ##     ## ##       ##        ######   ######  ########  ######## ######## ##    ## 
##       ##     ## ##       ##       ##    ## ##    ## ##     ## ##       ##       ###   ## 
##       ##     ## ##       ##       ##       ##       ##     ## ##       ##       ####  ## 
######   ##     ## ##       ##        ######  ##       ########  ######   ######   ## ## ## 
##       ##     ## ##       ##             ## ##       ##   ##   ##       ##       ##  #### 
##       ##     ## ##       ##       ##    ## ##    ## ##    ##  ##       ##       ##   ### 
##        #######  ######## ########  ######   ######  ##     ## ######## ######## ##    ##  
*/

#fullscreen-container {
    position: relative;
    display: none;
}

#fullscreen-container canvas {
    border: 3px solid #ff0;
    float: left;
}

#fullscreen-container canvas.openWalls {
    border: 3px solid black;
    background: url("data:image/svg+xml, <svg xmlns='http://www.w3.org/2000/svg' width='100%' height='100%'><rect x='0' y='0' width='100%' height='100%' fill='none' stroke='yellow' stroke-width='5' stroke-dasharray='10 10'/></svg>") no-repeat;
}

#score-container {
    padding: 5px 10px;
    font-size: 2vw;
    float: left;
}

#highscore {
    margin-block-start:0}

#victoryScreen {
    position: absolute;
    height: 200px;
    top: 25%;
    left: 25%;
    border-radius: 50px;
    z-index: 10;
    opacity: .8;
    align-content: center;
    padding: 0 50px;
    text-align: center;
    font-size: 5vw;
}

#fullscreen-container .head {
    width: 10px;
    height: 10px;
    position: absolute;
    background: #fff;
    border-radius: 100%
}

#fullscreen-container .head.permuted {
    background: blue
}

#fullscreen-container .head.squared {
    border-radius: 0%
}

#fullscreen-container .head.pulseHead {
    animation: pulseHead .2s linear infinite alternate
}

#pauseMenu, #error {
    position: absolute;
    pointer-events: none;
    opacity: 0;
    background: rgba(0, 0, 0, 0.9);
    transition: .2s;
    height: 200px;
    top: 30vh;
    left: 15vw;
    border-radius: 50px;
    z-index: 10;
    align-content: center;
    padding: 0 50px;
    font-size: 5vw;
    box-shadow: 0 0 25px 5px;
}
#pauseMenu{
    background: rgba(255, 255, 255, 0.3);
}

#bg_calc {
    background: black;
    position: absolute;
    z-index: -10;
    border: 3px solid transparent;
    transition: .5s
}

#fullscreen-container .bonus {
    width: 50px;
    height: 50px;
    border-radius: 100%;
    z-index: -5;
    background-size: cover
}

#fullscreen-container .bonus.fasterSelf {
    background-image: url(../bonus/fasterSelf.png)
}

#fullscreen-container .bonus.fasterElse {
    background-image: url(../bonus/fasterElse.png)
}

#fullscreen-container .bonus.fatter {
    background-image: url(../bonus/fatter.png)
}

#fullscreen-container .bonus.slimmer {
    background-image: url(../bonus/slimmer.png)
}

#fullscreen-container .bonus.invincible {
    background-image: url(../bonus/invincible.png)
}

#fullscreen-container .bonus.invert {
    background-image: url(../bonus/invert.png)
}

#fullscreen-container .bonus.random {
    background-image: url(../bonus/random.png)
}

#fullscreen-container .bonus.addBonus {
    background-image: url(../bonus/addBonus.png)
}

#fullscreen-container .bonus.slowerElse {
    background-image: url(../bonus/slowerElse.png)
}

#fullscreen-container .bonus.slowerSelf {
    background-image: url(../bonus/slowerSelf.png)
}

#fullscreen-container .bonus.wallSelf {
    background-image: url(../bonus/wallSelf.png)
}

#fullscreen-container .bonus.walls {
    background-image: url(../bonus/walls.png)
}

#fullscreen-container .bonus.snakeSelf {
    background-image: url(../bonus/snakeSelf.png)
}

#fullscreen-container .bonus.snakeElse {
    background-image: url(../bonus/snakeElse.png)
}

#fullscreen-container .bonus.colorBlind {
    background-image: url(../bonus/colorBlind.png)
}

#fullscreen-container .bonus.changeBg {
    background-image: url(../bonus/changeBg.png)
}

@-webkit-keyframes pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(128,0,128,0.5)
    }

    70% {
        box-shadow: 0 0 15px 15px rgba(128,0,128,0)
    }

    100% {
        box-shadow: 0 0 5px 0 rgba(128,0,128,0)
    }
}

@keyframes pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(128,0,128,0.5)
    }

    70% {
        box-shadow: 0 0 15px 15px rgba(128,0,128,0)
    }

    100% {
        box-shadow: 0 0 5px 0 rgba(128,0,128,0)
    }
}

@-webkit-keyframes pulseBorder {
    to {
        border: 3px solid rgba(255,255,0,0)
    }
}

@keyframes pulseBorder {
    to {
        border: 3px solid rgba(255,255,0,0)
    }
}

@-webkit-keyframes pulseHead {
    to {
        background: red;
        transform: scale(1.5);
    }
}

@keyframes pulseHead {
    to {
        background: red;
        transform: scale(1.5);
    }
}
