:root{
    --board-size: 20vw;
    --current-img: url("letters/X/0.png");
    --toggle-img: ;
    --ball-img: ;
}
body{
    background-image: url("paper.jpg"); /* Image by rawpixel.com on Freepik */
    background-size: cover;
    overflow: hidden;
}
#board{
    justify-content: center;
    position: relative;
    width: var(--board-size);
    aspect-ratio: 1;
    margin: auto;
    margin-top: 15%;
}
#playArea{
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: calc(var(--board-size) * .05 );
    aspect-ratio: 1;
    max-width: var(--board-size);
}
.box{
    aspect-ratio: 1;
    width: calc(var(--board-size) * .3);
    padding: 0;
    background-color: transparent;
    border: none;
}
.box:hover{
    background-image: var(--current-img);
    background-size: cover;
    opacity: 50%;
}
.box:hover:disabled{
    background-image: none;
    opacity: 100%;
}
img{
    width: 100%;
    max-width: 200px;
    padding: 0;
    margin: 0;
    display: block;
    user-select: none;
}

/* lines to make the board */
.line{
    width: calc(var(--board-size) * 1.15);
    position: absolute;
}
.line div{
    min-width: 100%;
}
.line div img{
    min-width: 100%;
}
.line.h{
    left: -10%;
}
.line.v{
    transform: rotate(90deg);
    top: 45%;
}
#left{
    left: -25%;
}
#right{
    left: 10%;
}
#top{
    top: 28%;
}
#bottom{
    top: 60%;
}

/* Popup Menu */
.menu{
    opacity: 0;
    position: absolute;
    left: 50%;
    bottom: -50vw;
    background-color: rgb(175, 227, 247);
    border: .45vw solid skyblue;
    border-radius: 1.75vw;
    width: calc(var(--board-size) * 2.5);
    height: calc(var(--board-size) * 1.5);
    margin-left: -25vw;
    margin-top: 12%;
    box-sizing: border-box;
    pointer-events: none;
    z-index: 10;
}
.inner{
    background-color: rgb(175, 227, 247);
    border: .45vw dotted skyblue;
    border-radius: 1.5vw;
    width: 98%;
    height: 96%;
    margin: auto;
    box-sizing: border-box;
    margin-top: 1%;
}
.show{
    opacity: 100%;
    bottom: 8vw;
    transition: .4s;
}
.message{
    display: flex;
    flex-direction: row;
    width: 100%;
    margin-left: .5vw;
    margin-right: .5vw;
    justify-content: center;
}
#again{
    margin: .5vw 2vw;
    padding: 2vw;
    border: .45vw solid skyblue;
    border-radius: 3vw;
    background-color: rgb(175, 227, 247);
}
#again:hover{
    background-color: rgb(201, 232, 245);
    border-color: rgb(167, 216, 235);
}

/* 1/2 player switch */
.players{
    position: absolute;
    display: flex;
    top: 6vw;
    left: 50%;
    transform: translateX(-50%);
    max-width: 40vw;
    justify-content: center;
}
.players div{
    width: 30%;
}
.switch {
    position: relative;
    display: inline-block;
    min-width: 8vw;
    height: 4vw;
    margin: 0 2vw;
}
.switch input {
    opacity: 0;
    width: 0;
    height: 0;
}
.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: var(--toggle-img);
    background-size: contain;
    background-repeat: no-repeat;
    overflow: visible;
}
.slider:before {
    content: "";
    position: absolute;
    width: 3vw;
    aspect-ratio: 1;
    left: .5vw;
    bottom: .5vw;
    background-image: var(--ball-img);
    background-size: cover;
    transition: 0.4s;
    border-radius: 50%;
}
input:checked + .slider:before {
    transform: translateX(4vw) rotate(180deg);
}

/* smaller screen */
@media (max-width:1200px){
    :root{
        --board-size: 40vw;
    }
    .menu{
        margin-left: -25vw;
    }
}
/* phone */
@media (max-width:480px){
    :root{
        --board-size: 80vw;
    }
    body{
        min-width: 100%;
        display: flex;
        flex-direction: column;
    }
    #board{
        margin: auto;
        margin-top: 30%;
    }
    .menu{
        position: unset;
        margin: 0;
        margin-top: 10%;
    }
    .players{
        width: 100vw;
    }
}