html, body {
    margin: 0;
    padding: 0;
    height: 100%;
}

* {
    cursor: url('img/cursor_blue.png'), auto;
}

*:active {
    cursor: url('img/cursor_blue_r.png'), auto;
}



body {
    font-family: sans-serif;
    background-color: black;
    background-image: url('');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    color: white;
    margin: 0;
    padding: 0;
    height: 1080px;
    display: flex;
    flex-direction: column;
    width: 100%;
    margin: 0px;
    align-items: center;
}

body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100%;
    background: rgba(0, 0, 0, 0.5); /* Black overlay with 50% opacity */
    z-index: -1;
}

#main-area {
    position: relative;
    background-color: rgb(20, 90, 30);
    box-shadow: none;
    max-height: 900px;
    width: 1350px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 20px;
    position: absolute;
    top: 15px;
}

#main-area {
    border-color: rgb(1, 56, 1);
    border-width: 10px;
    border-style: solid;
    border-radius: 20px;
}

.overlay {
    position: absolute;
    background-image: url('img/Overlay.png');
    background-size: 1420px 978px;
    top: -12px;
    left: -12px;
    height: 940px;
    width: 1390px;
    z-index: 0;
}

.table {
    width: 100%;
    display: flex;
}



.table-left {
    position: relative;
    display: flex;
    margin-top: 82px;
    height: 612px;
}

.vert-pass-line {
    position: relative;
    width: 55px;
    height: 100%;
}

.vert-dont-pass-bar {
    position: relative;
    width: 60px;
    height: 540px;
}

.bonus-container {
    min-height: 50px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    margin: 0 0 28px -130px;
}
#small-2, #small-3, #small-4,
#small-5, #small-6, #small-8,
#small-9, #small-10, #small-11,
#small-12 {
    height: 41px;
    width: 41px;
    border-radius: 24px;
    margin: 15px 0;
    position: absolute;
    top: 1px;
}

#small-2 { left: -4.5px;}
#small-3 { left: 56.5px;}
#small-4 { left: 118.5px;}
#small-5 { left: 180px;}
#small-6 { left: 241.5px;}
#small-8 { left: 799px;}
#small-9 { left: 859.5px;}
#small-10 { left: 922px;}
#small-11 { left: 983px;}
#small-12 { left: 1044.8px;}

.bonus-box {
    height: 45px;
    width: 150px;
    z-index: 0;
    position: relative;
    padding-top: 5px;
}



#first {
    /* all small numbers spacing*/
    margin-left: 20px;
}
#second {
    /* make em all numbers spacing*/
    margin: 0 6px;
}
#third {
    /* all tall numbers spacing*/
    margin-right: 20px;
}
#small-button, #all-button, #tall-button {
    z-index: 100;
}

#small-button, #all-button, #tall-button,
#small-bonus-chips, #all-bonus-chips, #tall-bonus-chips {
    position: absolute;
    height: 100%;
    width: 100%;
    top: -2px;
    left: 0px;
    display: flex;
}

#small-bonus-chips, #all-bonus-chips, #tall-bonus-chips {
    margin-top: 5px
}

.main-top {
    position: relative;
    height: 330px;
    width: 1220px;
    left: 5px;
}

.main-bottom {
    position: relative;
    display: flex;
    height: 600px;
    width: 100%;
}

.main-bottom-right {
    height: 450px;
    width: 340px;
    margin: 0px 0 0 10px;
}

.side-bets-grid {
    height: 346px;
    width: auto;
    display: grid;
    grid-template-columns: 50% 50%;
}

.dont-come-row {
    height: 50px;
    width: 100%;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
}

.dont-come-bet-container {
    position: relative;
    height: 100%;
    width: 100%;
    display: flex;
    justify-content: flex-start;
    z-index: 2;
}
#dc-4, #dc-5, #dc-6, #dc-8, #dc-9, #dc-10 {
    display: flex;
    align-items: flex-end;
    position: absolute;
    top: 60px;
    left: 35px;
    z-index: 0;
}

#dc-4-odds,#dc-5-odds, #dc-6-odds,
#dc-8-odds, #dc-9-odds, #dc-10-odds {
    position: absolute;
    top: 3px;
    height: 100%;
    width: 100%;
    z-index: 1;
}

#dc-4-button, #dc-5-button, #dc-6-button,
#dc-8-button, #dc-9-button, #dc-10-button {
    position: absolute;
    height: 100%;
    width: 100%;
    z-index: 5;
}

/* ///////////////////////// BUTTONS ///////////////////////////////////////// */
button {
    background-color: transparent;
    border: none;
}

.on-container {
    position:absolute;
    height: 70px;
    width: 99%;
    top: 105px;
    left: 5px;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    align-items: center;
    place-items: center;
    z-index: 1;
}

#off-puck {
    position: absolute;
    height: 100px;
    width: 100px;
    top: 88px;
    left: 558px;
    z-index: 20;
}

#on-4, #on-5, #on-6, 
#on-8, #on-9, #on-10 {
    height: 65px;
    width: 65px;
}
#on-4 { left: 190px; }
#on-5 { left: 340px; }
#on-6 { left: 485px; }
#on-8 { left: 632px; }
#on-9 { left: 772px; }
#on-10 { left: 923px; }

.number-pb-container {
    /*
    border-style: solid;
    border-color: white;
    border-width: 4px 6px 3px 2px;
    */
    height: 190px;
    width: 100%;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: 1fr 45px;
    row-gap: 2px;
}

.come-bet-container {
    /*
    border-style: solid;
    border-color: white;
    border-width: 0 0 3px 4px;
    */
    position: relative;
    display: flex;
    height: 100%;
    width: 100%;
}

.number-box {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    width: 100%;
    z-index: 0;
}

.test {
    transform: translate(1003px, -322px);
}

#come-4, #come-5, #come-6,
#come-8, #come-9, #come-10 {
    position: absolute;
    display: flex;
    align-items: flex-end;
    bottom: 30px;
    margin-left: 30px;
    z-index: 1;
}

#come-4-odds, #come-5-odds, #come-6-odds,
#come-8-odds, #come-9-odds, #come-10-odds {
    position: absolute;
    margin-top: 70px;
    z-index: 2;
}

#number-box-4, #number-box-5, #number-box-6,
#number-box-8, #number-box-9, #number-box-10 {
    position: absolute;
    height: 100%;
    width: 100%;
    z-index: 100;
}

.come-odds {
    position: absolute;
    left: 65px;
    top: 0px;
    transform: rotate(80deg);
}

.dc-odds {
    position: absolute;
    left: 0px;
    top: 10px;
    transform: rotate(80deg);
}

.place-boxes {
    position: relative;
    display: flex;
    height: 96%;
    width: 100%;
}

#place-4-chips, #place-5-chips, #place-6-chips,
#place-8-chips, #place-9-chips, #place-10-chips {
    position: absolute;
    display: flex;
    align-items: flex-end;
    top: 65px;
    left: 55px;
    z-index: 1;
}

#place-4-button, #place-5-button, #place-6-button,
#place-8-button, #place-9-button, #place-10-button {
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 500;
}

.main-bottom-left {
    display: flex;
    flex-direction: column;
}
.middle-field-container {
    position: relative;
    display: flex;
    height: 241px;
    width: 862px;
}

.dont-come-line {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    height: 100%;
    width: 300px;
}

#DC-line-button {
    position: absolute;
    height: 150px;
    width: 218px;
    top: 3px;
    left: 9px;
    z-index: 100;
}
#DC-line-button-2 {
    position: absolute;
    height: 88px;
    width: 126px;
    top: 153px;
    left: 100px;
    z-index: 100;
}
#DC-line-button-3 {
    position: absolute;
    height: 70px;
    width: 130px;
    top: 133px;
    left: 15px;
    transform: rotate(42deg);
    z-index: 100;
}

.dont-come-label {
    margin-top: 20px;
}

#dont-come-chips-display {
    display: flex;
    align-items: flex-end;
    position: absolute;
    top: 120px;
    left: 60px;
}

.come-field-container {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
}

.come-line {
    position: relative;
    height: 150px;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

#come-chips-display {
    position: absolute;
    display: flex;
    align-items: flex-end;
    left: 262px;
    top: 85px;
    z-index: 1;
}

#come-line-button {
    position: absolute;
    top: 0;
    left: 5px;
    height: 100%;
    width: 100%;
    z-index: 20;
}

#field {
    position: relative;
    height: 125px;
    width: 100%;
    display: flex;
    flex-direction: row;
    justify-content: center;
    padding-top: 45px;
    align-self: center;
}

#field-chips {
    position:absolute;
    top: 45px;
    left: 570px;
}

#field-button {
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 5px;
    z-index: 100;
}

#bet-control-buttons {
    width: 500px;
    height: 109px;
    display: grid;
    grid-template-columns: repeat(6, 70px) 80px;
    position: absolute;
    bottom: 10px;
    left: 0px;
}

.control-column {
    height: 110px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-around;
}

#high-roller {
    height: 110px;
    margin-top: 1px;
}

.control-label {
    color: black;
    font-weight: 900;
    font-size: 25px;
    height: 40px;
    line-height: 40px;
    text-align: middle;
    text-align: center;
    width: 55px;
}

#decrement1, #decrement5, #decrement25, #decrement100,
#decrement500, #increment500,
#increment1, #increment5, #increment25, #increment100,
#decrement5000, #increment5000 {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 45px;
    width: 45px;
    transition: transform 0.1s ease;
}

.arrow {
    position: relative;
    height: 30px;
    width: 30px;
    z-index: 1;
}

#decrement1:hover, #decrement5:hover, #decrement25:hover,
#decrement100:hover, #increment1:hover, #increment5:hover,
#increment25:hover, #increment100:hover,
#decrement500:hover, #increment500:hover,
#decrement5000:hover, #increment5000:hover {
    transform: scale(1.4);
}

#decrement1:active, #decrement5:active, #decrement25:active,
#decrement100:active, #increment1:active, #increment5:active,
#increment25:active, #increment100:active,
#increment500:active, #decrement500:active,
#increment5000:active, #decrement5000:active {
    transform: scale(1.2);
}

.pass-line-container {
    position: relative;
    height: 120px;
    width: 480px;
    margin-right: -6px;
    justify-self: flex-end;
}

.big-6-container {
    position: absolute;
    top: -90px;
    left: -58px;
}

#big-6-chips {
    position: absolute;
    top: 15px;
}

#big-6-button {
    position: absolute;
    height: 100px;
    width: 80px;
    border-radius: 50px;
    z-index: 10;
}

.big-8-container {
    position: absolute;
    top: -30px;;
    left: 15px;
}

#big-8-chips {
    position: absolute;
   top: 20px;
}

#big-8-button {
    position: absolute;
    height: 95px;
    width: 80px;
    border-radius: 50px;
    z-index: 10;
}

.dont-pass-label {
    margin-right: 5px;;
}

.dont-dice {
    height: 25px;
    align-self: center;
    margin-left: 5px;
}

.dont-pass {
    position: absolute;
    left: -15px;
    font-size: 20px;
    height: 60px;
    width: 495px;
    line-height: 47px;
    text-align: middle;
    display: flex;
    align-items: center;
    justify-content: center;
}

#dont-pass-chips {
    position: absolute;
    top: 3px;
    left: 55px;
    z-index: 50;
}

#dont-pass-button {
    position: absolute;
    z-index: 100;
}

.horizontal-DP {
    height: 100%;
    width: 375px;
    top: 3px;
    left: 122px;
}

.vertical-DP {
    height: 390px;
    width: 100%;
    margin: 8px 0 0 3px;
}

#dont-pass-odds-chips {
    position: absolute;
    top: 18px;
    z-index: 60;
}

.pass-line {
    position: absolute;
    top: 62px;
    left: -60px;
    height: 60px;
    width: 540px;
    display: flex;
    flex-direction: row;
    justify-content: center;
}
#pass-line-chips {
    position: absolute;
    top: 5px;
    left: 250px;    
}

.win-text {
    position: absolute;
    color: yellow;
    width: 100px;
    font-size: 35px;
    font-weight: 900;
    text-shadow: 2px 2px 0 black;
}

.win-chip-stack {
    position: absolute;
    top: 60px;
    left: 80px;
    display: flex;
    align-items: flex-end;
    z-index: 1;
}

.win-come {
    position: absolute;
    bottom: 0px;
    left: 90px;
    display: flex;
    align-items: flex-end;
    z-index: 1;
}

.win-line {
    position: absolute;
    bottom: 0px;
    left: 65px;
    display: flex;
    align-items: flex-end;
    z-index: 1;
}

.win-dc {
    position: absolute;
    bottom: 0px;
    left: 90px;
    display: flex;
    align-items: flex-end;
    z-index: 1;
}

.win-come-odds {
    position: absolute;
    left: 80px;
    display: flex;
    align-items: flex-end;
    z-index: 1;
}

.win-one-roll {
    position: absolute;
    bottom: 30px;
    left: 65px;
    display: flex;
    align-items: flex-end;
    z-index: 1;
}

#pass-line-button {
    position: absolute;
}

.horizontal-PL {
    top: 3px;
    left: -20px;;
    height: 60px;
    width: 560px;
}

.vertical {
    width: 100%;
    height: 560px;
    margin-top: 50px;
}

.pass-line-odds {
    position: absolute;
    top: 125px;
    left: -60px;
    height: 60px;
    width: 540px;
}

#pass-line-odds-chips {
    position: absolute;
    display: flex;
    align-items: flex-end;
    left: 310px;
    top: 65px;
}
#pass-line-odds-button {
    position: absolute;
    height: 100%;
    width: 100%;
    z-index: 100;
}

.table-chip-img {
    position: absolute;
    height: 60px;
    width: 60px;
}

.side-bets-dice-display {
    display: flex;
    justify-content: center;
    column-gap: 12px;
    margin-bottom: 5px;
}

.side-bet-dice-size {
    height: 35px;
    width: 35px;
}

#hw-6-text, #hw-8-text, #hw-4-text, #hw-10-text,
#horn-3-text, #horn-2-text, #horn-12-text, #horn-11-text {
    font-size: 20px;
    font-weight: 600;
    margin-top: 15px;
}

.seven-bet-container {
    position: relative;
    margin-top: 12px;
    height: 50px;
    width: 340px;
}

#seven-bet-chips {
    position: absolute;
    margin-top: -5px;
}

#seven-bet-button {
    position: absolute;
    height: 100%;
    width: 100%;
    border-radius: 20px;
}

.side-bet-container {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

#hard-6-button, #hard-10-button, #hard-8-button, #hard-4-button,
#horn-3-button, #horn-12-button, #horn-11-button, #horn-2-button {
    position: absolute;
    height: 100%;
    width: 100%;
    z-index: 100;
}

#hard-6-chips, #hard-8-chips,
#horn-3-chips, #horn-11-chips {
    position: absolute;
    height: 122px;
    width: 175px;
    display: flex;
    align-items: center;
}


#hard-10-chips, #hard-4-chips, #horn-12-chips, #horn-2-chips {
    position: absolute;
    height: 122px;
    width: 175px;
    display: flex;
    align-items: center;
}

.any-craps-container {
    position: relative;
    height: 50px;
    width: 340px;
    margin-top: 8px;
}

#any-craps-chips, #any-craps-button {
    position: absolute;
    height: 100%;
    width: 100%;
}

/* --------------------------Betting Section --------------------------*/

.bet-container {
    display: flex;
    flex-direction: row;
    text-align: center;
    margin-top: -5px;
}

.mouse-location-container {
    position: absolute;
    height: 160px;
    width: 280px;
    padding: 20px;
    background-color: rgb(0,0,0,0.7);
    display: grid;
    grid-template-columns: 75px 75px 75px 75px;
    grid-template-rows: 60px 60px 60px;
}

#staged-bet-container {
    position: absolute;
    bottom: 125px;
    left: 60px;
    width: 300px;
    height: 80px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    font-size: 30px;
    color: rgb(233, 229, 13);
    font-weight: 600;
    z-index: 10;
}

#staged-bet-chips {
    display: flex;
    align-items: flex-end;
    position: absolute;
    transition: 0.05s linear;
    z-index: 1000;
}

#staged-bet { 
    font-size: 30px;
    color: rgb(233, 229, 13);
    text-shadow: 2px 2px 0 black;
    font-weight: 600;
    height: 30px;
    width: 40px;
    align-self: center;
    text-align: center;
    margin-right: 35px;
}
.side-chip-img {
    position: absolute;
    height: 40px;
}

#pull-back-button, #clear-bet {
    background-color: rgb(44, 44, 44);
    border: 3px solid rgb(124, 124, 124);
    border-radius: 5px;
    color: white;
    font-size: 18px;
    width: 75px;
    height: 40px;
    grid-row-start: 1;
    grid-row-end: 3;
    padding: 7px 0;
    margin-left: 15px;
    transition: transform 0.1s ease;
}
#pull-back-button:hover, #clear-bet:hover {
    transform: scale(1.1);
}

#pull-back-button:active, #clear-bet:active {
    transform: scale(1.05);
}

/* ^^^^^^^^^^^^^^^^^^^^^^^^^ END BETTING SECTION ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/

#bottom-container {
    font-size: 25px;
    width: 1000px;
    height: 200px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    position: absolute;
    bottom: 10px;
}

.bankroll-container {
    display: flex;
    flex-direction: column;
    position: relative;
    left: 500px;
    bottom: 10px;
    width: 500px;
    height: 150px;
}

.bankroll-label-on-table {
    position: absolute;
    width: 100%;
    color:rgb(78, 149, 255);
    font-size: 35px;
    font-weight: 900;
    text-shadow: 2px 2px 0 black;
    margin: 20px 0 0 20px;
}

#bankroll-chips {
    /* container that holds the chip imgs in bankroll area*/
    height: 100%;
    width: 550px;
    display: flex;
    align-items: flex-end;
    z-index: 20;
}

#bankroll-collection-target {
    position: absolute;
    top: 150px;
    left: 30px;
}

#round-up {
    position: absolute;
    display: flex;
    align-items: flex-end;
    top: 100px;
    left: 100px;
}

.chip-stack {
    height: 100px;
    width: 68px;
    display: flex;
    align-items: flex-end;
}

.bankroll-chip-img {
    position: absolute;
    height: 30px;
}

.odds-chip-img {
    position: absolute;
    height: 35px;
    width: 60px;
}

.win-chip-img {
    position: absolute;
    height: 35px;
    width: 70px;
}

#chips-animation-bankroll-location {
    height: 150px;
    width: 110px;
    position: absolute;
    top: 200px;
    left: 23px;
    transform: translate(30px, -135px);
}

#chips-animation-staged-bet-location {
    outline: 1px solid yellow;
    height: 50px;
    width: 110px;
    position: absolute;
    top: 50px;
    left: 50px;
}

@keyframes moveChipsBankrolltoStagedBet {
    0% {transform: translate(0, 0); }
    100% {transform: translate(30px, -135px); }
}
.move-chips-bankroll-to-staged-bet {
    animation: moveChipsBankrolltoStagedBet;
    animation-duration: 100ms;
}

.bankroll-table {
    position: absolute;
    z-index: 0;
    width: 580px;
    height: 100px;
    top: 120px;
    left: -20px;
}

#roll-button {
    /*Big roll button, bottom middle*/
    position: absolute;
    outline: 1px solid white;
    border: 3px solid white;
    border-radius: 20px;
    background-color: rgb(172, 22, 22);
    color: white;
    text-shadow: 3px 3px 0 black;
    height: 80px;
    width: 400px;
    font-size: 40px;
    font-weight: 600;
    padding: 0 25px;
    bottom: 10px;
    left: 950px;
    transition: transform 0.1s ease-in-out;
}
#roll-button:hover {
    transform: scale(1.05);

}
#roll-button:active {
    transform: scale(1.02);
}

#dice-display {
    /*Bottom Right, holds the dice imgs*/
    display: flex;
    position: absolute;
    height: 150px;
    width: 300px;
    top: 610px;
    left: 665px;
    z-index: 900;
    column-gap: 35px;
}

@keyframes diceMove {
    0%, 70% { transform: translate(-350px, -380px); }
    100% { transform: none;}
}

.dice-move {
    animation: diceMove;
    animation-duration: 1.2s;
    animation-delay: 0s;
}

@keyframes diceGrow {
    0%, 70% { height: 375px; width: 375px;}
    100% { height: 140px; width: 140px;}
}

.dice-grow {
    animation: diceGrow;
    animation-duration:  1.2s;
    animation-delay: 0s;
}

#dice1, #dice2 {
    /*imgs of the dice, src is changed by js*/
    box-shadow: 10px 10px 12px black;
    height: 140px;
    width: 140px;
    z-index: 100;
    
}

#show-money-button {
    position: absolute;
    bottom: 105px;
    left: 500px;
    background-color: rgb(20,90,30);
    border: 2px outset rgb(12, 58, 19);
    border-radius: 5px;
    height: 35px;
    width: 35px;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1;
}
#show-money-button:active {
    transform: scale(0.85);
}

#money-container {
    background-color: rgba(0, 0, 0, 0.87);
    border-radius: 10px;
    position: absolute;
    align-self: flex-start;
    top: 800px;
    left: 370px;
    display: flex;
    justify-content: space-evenly;
    align-items: center;
    height: 110px;
    width: 570px;
    z-index: -1;
    transition: transform 0.3s ease;

}

#money-container.open {
    transform: translateY(150px);
}

#double-arrow {
    height: 15px;
    width: 20px;
}

#double-arrow.open {
    transform: rotate(180deg);
}

.money-label, .bankroll-label {
    outline: 2px solid white;
    width: 218px;
    height: 60px;
    padding: 5px;
    border-radius: 5px;
    font-size: 25px;
    text-align: center;
}
#money-on-table, #bankroll-amount {
    /* Bottom left shows how much money is currently on table*/
    width: 210px;
    text-align: center;
}

#message-box {
    background-color: rgba(0, 0, 0, 0.7);
    color: white;
    position: absolute;
    top: 950px;
    left: 0px;
    border-radius: 10px;
    height: 300px;
    width: 380px;
    padding: 8px;
    line-height: 20px;    
    z-index: 1000;
}

.stat-container {
    background-color: rgba(0, 0, 0, 0.7);
    color: white;
    position: absolute;
    top: 0px;
    left: -149px;
    border-radius: 10px;
    height: 900px;
    width: auto;
    padding: 20px;
}

.percent-grid {
    width: auto;
    line-height: 20px;   
    display: grid;
    grid-template-columns: 40px 60px;
    grid-template-rows: repeat(10, 30px);
}


.stat-element, .stat-label {
    outline: 1px solid white;
    text-align: center;
    text-align: middle;
    line-height: 30px;
    height: 30px;
    width: 60px;
}

.stat-label { width: 40px;}
.hidden { display: none;}
.show { display: block;}

