
html {
    overflow: hidden;
}

body {
    background-color: #776868;
    overflow: hidden;
    overscroll-behavior: contain;
    zoom: 0.8;
    margin: 8px;
    user-select: none;
}

p {
    font-family: "Clear Sans", "Helvetica Neue", Arial, sans-serif;
    font-weight: bold;
}

button {
    font-family: "Clear Sans", "Helvetica Neue", Arial, sans-serif;
    font-weight: bold;
    border: none;
}

button.undoButton {
    font-size: 16px;
    margin-top: 20px;
    margin-left: 20px;
    margin-bottom: -40px;
    background-color: transparent;
    opacity: 0;
    transition-duration: 1s;
}

button.newGameButton {
    position: absolute;
    left: 320px;
    font-size: 16px;
    margin-top: 20px;
    margin-left: 20px;
    margin-bottom: -40px;
    background-color: transparent;
    opacity: 0;
    transition-duration: 1s;
}

button.tryAgain {

    font-size: 32px;
    background-color: transparent;

    position: absolute;
    left:125px;

}

.message {
    font-size: 48px;
    position: absolute;
    top:160px;
}

.msgLeft {
    left:18px;
    transform: rotate(-60deg);
    animation: msgLeftSlideIn;
    animation-duration: 1s;
    animation-iteration-count: 1;
    animation-delay: 0s;
    animation-timing-function: ease-out;
}

.msgRight {
    left:280px;
    transform: rotate(60deg);
    animation: msgRightSlideIn;
    animation-duration: 1s;
    animation-iteration-count: 1;
    animation-delay: 0s;
    animation-timing-function: ease-out;
}

@keyframes msgLeftSlideIn {
    0% {
        opacity: 0;
        transform: rotate(-60deg) translate(100px, 0px);
    }
    100% {
        opacity: 1;
        transform: rotate(-60deg);
    }
}

@keyframes msgLeftSlideOut {
    0% {
        opacity: 1;
        transform: rotate(-60deg);
    }
    100% {
        opacity: 0;
        transform: rotate(-60deg) translate(-200px, 0px);
    }
}

@keyframes msgRightSlideIn {
    0% {
        opacity: 0;
        transform: rotate(60deg) translate(-100px, 0px);
    }
    100% {
        opacity: 1;
        transform: rotate(60deg);
    }
}

@keyframes msgRightSlideOut {
    0% {
        opacity: 1;
        transform: rotate(60deg);
    }
    100% {
        opacity: 0;
        transform: rotate(60deg) translate(200px, 0px);
    }
}

.gridPiece {
    width: 0;
    height: 0;
    border-left: 80px solid transparent;
    border-right: 80px solid transparent; 
    border-bottom: 80px solid #b8a0a0;
    margin-right: -110px;
    margin-top: 9px;
    display: inline-block;
}

@keyframes fadeOut {
    0% {
        opacity: 1;
    }
    80% {
        opacity: 0;
    }
    100% {
        opacity: 0;
    }
}

.introMsg {
    position: absolute;
    left: 170;
    top: 415px;

    font-size: 32px;
    color: #fcf7f4;

    font-family: "Clear Sans", "Helvetica Neue", Arial, sans-serif;

    display: inline-block;
    vertical-align: middle;
    line-height: normal;
    font-weight: bold;
    text-align: center;
}

.introArrowL {
    left: 80px;
    top: 60px;
    transform: rotate(30deg);
}

.introArrowR {
    left: 345px;
    top: 60px;
    transform: rotate(-30deg);
}

.introArrowB {
    left: 212px;
    top: 290px;
    transform: rotate(90deg);
}

.introArrow {
    width: 10px;
    height: 240px;
    position: absolute;
    background-color: #fcf7f4;

    animation-duration: 1s;
    animation-iteration-count: 1;
    animation-delay: 0s;
    animation-timing-function: ease-out;
}

.introArrow:before {
    content: "";
    position: absolute;
    top: -18px;
    left: -15px;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent; 
    border-bottom: 20px solid #fcf7f4;
}

.introArrow:after {
    content: "";
    position: absolute;
    bottom: -18px;
    left: -15px;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent; 
    border-top: 20px solid #fcf7f4;
}

.gridA {
    transform: scale(0.579, 1);
}

.gridV {
    /*transform: translateY(-5px) rotate(180deg) scale(0.59, 1);*/
    transform: translate(12px, -24px) rotate(60deg) scale(0.579, 1);
}

.gridRow {
    margin-left: -32px;
}

.gridSpacer {
    width: 50px;
    display: inline-block;
}

.bgGridPiece {
    z-index: -1;
}

.tilePiece {
    z-index: 1;
    transition-duration: 0.5s;
}

span {
    font-family: "Clear Sans", "Helvetica Neue", Arial, sans-serif;

    display: inline-block;
    vertical-align: middle;
    line-height: normal;
    font-weight: bold;
    text-align: left;
}

.tilenumA1 {
    transform: scale(1.72711571675302, 1) translate(-14px, 15px);
}

.tilenumV1 {
    transform: scale(1.72711571675302, 1) rotate(-60deg) translate(-34px, 8px);
}

.tilenumA2 {
    transform: scale(1.72711571675302, 1) translate(-22px, 28px);
}

.tilenumV2 {
    transform: scale(1.72711571675302, 1) rotate(-60deg) translate(-48px, 12px);
}

.tilenumA3 {
    transform: scale(1.72711571675302, 1) translate(-27px, 40px);
}

.tilenumV3 {
    transform: scale(1.72711571675302, 1) rotate(-60deg) translate(-56px, 9px);
}

.tilenumA4 {
    transform: scale(1.72711571675302, 1) translate(-27px, 46px);
}

.tilenumV4 {
    transform: scale(1.72711571675302, 1) rotate(-60deg) translate(-60px, 11px);
}

.tilenumA5 {
    transform: scale(1.72711571675302, 1) translate(-28px, 48px);
}

.tilenumV5 {
    transform: scale(1.72711571675302, 1) rotate(-60deg) translate(-63px, 11px);
}

.tilenumA6 {
    transform: scale(1.72711571675302, 1) translate(-28px, 48px);
}

.tilenumV6 {
    transform: scale(1.72711571675302, 1) rotate(-60deg) translate(-63px, 11px);
}


[tilenum="2"] {
    font-size: 48px;
    border-bottom-color: #fcf7f4;
}
[tilenum="4"] {
    font-size: 48px;
    border-bottom-color: #fce7d4;
}
[tilenum="8"] {
    font-size: 48px;
    border-bottom-color: #ffba7e;
}
[tilenum="16"] {
    font-size: 40px;
    border-bottom-color: #ffa77e;
}
[tilenum="32"] {
    font-size: 40px;
    border-bottom-color: #ff917e;
}
[tilenum="64"] {
    font-size: 40px;
    border-bottom-color: #f87058;
}
[tilenum="128"] {
    font-size: 32px;
    border-bottom-color: #ffe190;
}
[tilenum="256"] {
    font-size: 32px;
    border-bottom-color: #ffd665;
}
[tilenum="512"] {
    font-size: 32px;
    border-bottom-color: #ffcb3b;
}
[tilenum="1024"] {
    font-size: 24px;
    border-bottom-color: #c2f3ff;
}
[tilenum="2048"] {
    font-size: 24px;
    border-bottom-color: #a3edff;
}
[tilenum="4096"] {
    font-size: 24px;
    border-bottom-color: #70e2ff;
}
[tilenum="8192"] {
    font-size: 24px;
    border-bottom-color: #3ab7ff;
}
[tilenum="16384"] {
    font-size: 20px;
    color: white;
    border-bottom-color: #3374ff;
}
[tilenum="32768"] {
    font-size: 20px;
    color: white;
    border-bottom-color: #0028db;
}
[tilenum="65536"] {
    font-size: 20px;
    color: white;
    border-bottom-color: #7210ce;
}
[tilenum="131072"] {
    font-size: 16px;
    color: white;
    border-bottom-color: #000000;
}
