canvas, caption, center, cite, code,
dd, del, dfn, div, dl, dt, em, embed,
fieldset, font, form, h1, h2, h3, h4,
h5, h6, hr, i, iframe, img, ins, kbd,
label, legend, li, menu, object, ol, p,
pre, q, s, samp, small, span, strike,
strong, sub, sup, table, tbody, td, tfoot,
th, thead, tr, tt, u, ul, var {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

@font-face {
    font-family: 'signika-negative';
    src: url("../webfonts/SignikaNegative-Light.woff2") format("woff2");
}

html {
    font-family: 'signika-negative', sans-serif !important;
    background-color: #0f0f10;
    overflow: auto;
}

body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin: 0 auto;
    background-color: #0f0f10;
}

.bmc-btn {
    height: 40px !important;
    border-radius: 5px !important;
    font-size: 18px !important;
    min-width: 180px !important;
    padding: 0 17px !important;
}

.bmc-btn-text {
    margin: 0 !important;
}

h1 {
    font-family: 'signika-negative', sans-serif;
    color: #c9c9c9;
    filter: drop-shadow(2px 2px 4px black);
    margin: 0.5em 0;
}

h2 {
    color: #e7e7e7;
    font-size: 25px;
    font-weight: bold;
}

h3 {
    color: #d7d7d7;
    font-family: 'signika-negative', sans-serif;
    font-weight: normal;
    font-size: 18px;
    margin: 0.5em 0;
}

textarea {
    resize: none;
}

.toast-top {
    top: 2rem;
}

.toast-bottom {
    bottom: 140px;
}

.toast-success {
    background-color: #bef5cb;
    border: 3px solid #8ac78a;
}

.toast-warning {
    background-color: #fff5b1;
    border: 3px solid #c7c28a;
}

.toast-error {
    background-color: #f98e9a;
    border: 3px solid #c57272;
}

.toast-neutral {
    background-color: #e9e9e9;
    border: 3px solid #b7b7b7;
}

.toast-dispel-automatically {
    animation: fade-in-slide-down-then-exit ease normal forwards;
}

.toast-not-dispelled-automatically {
    animation: fade-in-slide-down ease normal forwards;
}

.toast-short {
    animation-duration: 3s;
}

.toast-medium {
    animation-duration: 5s;
}

.toast-long {
    animation-duration: 8s;
}

.toast-plus-one {
    color: #1c8a36;
    font-weight: bold;
    font-size: 20px;
    margin-right: 5px;
}

.toast-minus-one {
    font-size: 20px;
    margin-right: 5px;
    color: #e73333;
    font-weight: bold;
}

.toast-plus-role-quantity {
    color: #1c8a36;
    font-weight: bold;
    margin-left: 10px;
}

.toast-minus-role-quantity {
    color: #e73333;
    font-weight: bold;
    margin-left: 10px;
}

#footer {
    bottom: 0;
    width: 100%;
    text-align: center;
    align-items: center;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    color: #d7d7d7;
    font-size: 14px;
    margin-top: 4em;
    margin-bottom: 0.5em;
}
#footer a:not([href='https://www.buymeacoffee.com/alecm33']) img {
    width: 32px;
}

#footer a[href='https://www.buymeacoffee.com/alecm33'] img {
    width: 200px;
}

#footer a {
    color: #f7f7f7;
    text-decoration: none;
    cursor: pointer;
    font-family: 'signika-negative', sans-serif;
    margin: 0 0.25em;
}

#footer a:hover {
    color: gray;
}

#footer div {
    display: flex;
}

.teaser {
    text-align:center;
    color:gray;
    margin-bottom:3em;
}

#footer > div, #footer > a {
    margin: 0.5em;
}

#footer div:nth-child(2) > a, #footer div:nth-child(2) > p {
    margin: 0 5px;
}

label {
    color: #d7d7d7;
    font-family: 'signika-negative', sans-serif;
    font-size: 20px;
    font-weight: normal;
}

input, textarea {
    background-color: transparent;
    border: 1px solid white;
    border-radius: 5px;
    color: #d7d7d7;
}

a {
    text-decoration: none;
}

.checkbox {
    border-radius: 5px;
    border: 2px solid #d7d7d7;
    padding: 10px;
}

textarea, input {
    font-family: 'signika-negative', sans-serif;
    font-size: 16px;
}

button {
    display: flex;
    align-items: center;
    justify-content: center;
}

.app-button, input[type="submit"] {
    font-family: 'signika-negative', sans-serif !important;
    padding: 10px;
    background-color: #1a7a31;
    border-radius: 5px;
    color: #e7e7e7;
    font-size: 18px;
    cursor: pointer;
    border: 3px solid transparent;
    text-shadow: 0 3px 4px rgb(0 0 0 / 55%);
}

.app-button:active, input[type=submit]:active {
    border: 3px solid #21ba45;
}

.cancel {
    background-color: #832b2b !important;
    border: 3px solid transparent !important;
}

.cancel:hover {
    background-color: #832b2b8a !important;
    border: 3px solid #832b2b !important;
}

.submitted {
    filter: opacity(0.5);
    pointer-events: none;
}

.disabled {
    filter: opacity(0.5) grayscale(1);
    pointer-events: none;
    animation: none !important;
}

.container {
    padding: 5px;
    border-radius: 5px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 95%;
    margin: 0 auto;
    align-items: center;
}

.app-button:hover, input[type="submit"]:hover, #game-link:hover {
    background-color: #326243;
    border: 3px solid #1a7a31;
}

.emphasized {
    font-weight: bold;
    color: #00a718;
}

#game-parameters {
    font-family: signika-negative, sans-serif;
    color: #d7d7d7;
    font-size: 20px;
}

#game-parameters > div {
    display: flex;
    align-items: center;
    font-size: 25px;
}

#game-parameters img {
    margin-right: 10px;
}

#how-to-use-container img {
    max-width: 98%;
    border: 1px solid #57566a;
    border-radius: 5px;
    width: 45em;
    margin: 0 auto;
    /* justify-self: center; */
    /* align-self: center; */
    display: flex;
}

#how-to-use-container h1 {
    color: #21ba45;
    font-family: signika-negative, sans-serif;
    background-color: #252525;
    width: fit-content;
    padding: 0 5px;
    border-radius: 5px;
}

input {
    padding: 10px;
}

.info-message {
    pointer-events: none;
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    z-index: 1000000;
    padding: 10px;
    border-radius: 5px;
    font-family: 'signika-negative', sans-serif;
    font-weight: 100;
    box-shadow:
        0 1px 1px rgba(0,0,0,0.11),
        0 2px 2px rgba(0,0,0,0.11),
        0 4px 4px rgba(0,0,0,0.11),
        0 8px 8px rgba(0,0,0,0.11),
        0 16px 16px rgba(0,0,0,0.11),
        0 32px 32px rgba(0,0,0,0.11);
    left: 0;
    right: 0;
    width: fit-content;
    max-width: 80%;
    min-width: 15em;
    font-size: 20px;
    margin: 0 auto;
}

#navbar {
    display: flex;
    align-items: center;
    padding: 10px 0;
    width: 100%;
    background-color: #0f0f10;
    height: 45px;
    z-index: 53000;
}

#how-to-use-container {
    color: #d7d7d7;
    display: flex;
    flex-direction: column;
    margin: 1em auto 2em auto;
    width: 90%;
    max-width: 64em;
    line-height: 1.5;
}

#how-to-use-container h3 {
    color: #c9c9c9;
    font-weight: bold;
    font-family: signika-negative, sans-serif;
    background-color: #252525;
    width: fit-content;
    padding: 0 5px;
    border-radius: 5px;
}

#tutorial-links {text-align: left;
    justify-content: center;
    align-items: center;
    display: flex;
}

#tutorial-links li {
    font-size: 25px;
    color: #768df0;
    text-decoration: underline;
}

#tutorial-links li a {
    color: #768df0;
    text-decoration: underline;
    cursor: pointer;
    font-family: 'signika-negative', sans-serif;
    font-size: 18px;
    width: fit-content;
}

#tutorial-links li a:hover {
    color: gray;
}

.tutorial-image-small {
    width: 30em !important;
}

.tutorial-image-small-portrait {
    width: 19em !important;
}

#desktop-links > a:nth-child(1) {
    margin: 0 0.5em;
    width: 50px;
}

#mobile-links a:nth-child(1) {
    width: 80px;
    margin: 0 auto 3em auto !important;
    display: flex;
}

.logo {
    display: flex;
    align-items: center;
}

#navbar img {
    width: 100%;
}

#navbar a:not(.logo) {
    color: #f7f7f7;
    text-decoration: none;
    cursor: pointer;
    font-family: 'signika-negative', sans-serif;
    border-radius: 5px;
    padding: 2px 5px;
    font-size: 20px;
    margin: 1em;
    width: fit-content;
}

#navbar a:hover {
    color: gray;
}

.lang-switcher {
    display: flex;
    align-items: center;
    gap: 0.4em;
    color: #f7f7f7;
    font-family: 'signika-negative', sans-serif;
    margin: 0 1em;
    font-size: 14px;
}

.lang-switcher label {
    font-size: 14px;
}

.lang-select {
    font-family: 'signika-negative', sans-serif;
    border-radius: 4px;
    border: 1px solid #676767;
    background-color: #1f1f1f;
    color: #f7f7f7;
    padding: 1px 4px;
}

.overlay {
    position: fixed;
    background-size: cover;
    height: 100%;
    opacity: 75%;
    background-color: black;
    width: 100%;
    z-index: 50000;
}

.hidden {
    display: none !important;
}

.hamburger-light {
    min-width: auto;
    color: #e7e7e7;
}

.hamburger-dark {
    min-width: auto;
    color: black;
}

#mobile-links {
    display: flex;
    flex-direction: column;
    margin-top: 3em;
}

.mobile-link {
    margin-top: 1em !important;
    margin-left: 2em !important;
}

.mobile-link.lang-switcher {
    margin-left: 2.2em !important;
    width: fit-content;
}

@media(max-width: 1000px) {
    #navbar {
        display: flex;
        padding: 0;
    }

    #navbar-hamburger {
        z-index: 52000;
        position: relative;
    }

    #desktop-menu {
        display: none;
    }

    #mobile-menu {
        position: absolute;
        top: 0;
        left: 0;
        height: auto;
        padding-bottom: 2em;
        width: 100%;
        z-index: 51000;
        background-color: #1e1e1e;
    }
}

@media(min-width: 1001px) {

    #navbar-hamburger, #mobile-menu, #mobile-menu-background-overlay {
        display: none;
    }

    .desktop-link {
        display: flex;
    }

    #desktop-links {
        display: flex;
        align-items: center;
    }
}

.flex-row-container {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
}

.flex-row-container-left-align {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}

.animated-placeholder {
    animation-fill-mode: forwards;
    animation-duration: 1s;
    animation-iteration-count: infinite;
    animation-name: pulse-background;
    animation-timing-function: ease-in;
    animation-direction: alternate;
    background: rgb(238,238,238);
    position: relative;
    overflow: hidden;
    height: 20px;
    border-radius: 5px;
    opacity: 0.20;
    margin: 0.5em 0;
}

.animated-placeholder-short {
    width: 100%;
    max-width: 15em;
    height: 2em;
    margin: 0 auto;
}

.animated-placeholder-long {
    width: 100%;
    max-width: 30em;
    height: 8em;
    margin: 0 auto 1em auto;
}

.animated-placeholder-invisible {
    background-color: transparent;
    animation: none;
}

.placeholder-row {
    display: flex;
    margin: 0;
    justify-content: center;
    width: 100%;
}

.placeholder-row .animated-placeholder-short {
    margin: 0 0 1em 0;
}

.good, .compact-card.good .card-role {
    color: #5f7cfb !important;
    font-weight: bold;
}

.good-players, #deck-good {
    border: 2px solid #5f7cfb63;
}

.evil-players, #deck-evil {
    border: 2px solid rgba(231, 51, 51, 0.39);
}

.evil, .compact-card.evil .card-role {
    color: #e75555 !important;
    font-weight: bold;
}

.independent, .compact-card.independent .card-role {
    color: #af8523 !important;
    font-weight: bold;
}

.independent-players, #deck-independent {
    border: 2px solid rgba(212, 160, 39, 0.39);
}

@keyframes placeholder {
    0%{
        background-position: 50% 0
    }
    100%{
        background-position: -50% 0
    }
}

@keyframes pulse-background {
    from {
        background-color: rgb(120 120 120);
    } to {
        background-color: rgb(255 255 255);
    }
}


@keyframes fade-in-slide-down-then-exit {
    0% {
        opacity: 0;
        transform: translateY(-20px);
    }
    5% {
        opacity: 1;
        transform: translateY(0px);
    }
    95% {
        opacity: 1;
        transform: translateY(0px);
    }
    100% {
        opacity: 0;
        transform: translateY(-20px);
    }
}

@keyframes fade-in-slide-down {
    0% {
        opacity: 0;
        transform: translateY(-20px);
    }
    5% {
        opacity: 1;
        transform: translateY(0px);
    }
    95% {
        opacity: 1;
        transform: translateY(0px);
    }
    100% {
        opacity: 1;
        transform: translateY(0px);
    }
}

@media(max-width: 550px) {
    h1 {
        font-size: 30px;
    }

    #step-1 div {
        font-size: 20px;
    }

    .info-message {
        padding: 5px;
        font-size: 16px;
    }
}

@media(min-width: 551px) {
    h1 {
        font-size: 50px;
    }

    #step-1 div {
        font-size: 25px;
    }
}

.spinner-background {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: calc(100% + 100px);
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 50;
}


/* via https://loading.io/css/ */

.spinner-container {
    position: relative;
}

.spinner-container p {
    margin: auto;
    position: fixed;
    top: 0;
    left: 0;
    bottom: -8em;
    font-size: 20px;
    z-index: 51;
    text-align: center;
    right: 0;
    color: #d7d7d7;
    height: fit-content;
}

.lds-spinner {
    margin: auto;
    position: fixed;
    top: -80px;
    left: 0;
    bottom: 0;
    z-index: 51;
    right: 0;
    height: fit-content;
    display: inline-block;
    width: 80px;
}

.lds-spinner-clock {
    position: absolute;
    transform: scale(0.3);
    top: -23px;
}

.lds-spinner div {
    transform-origin: 40px 40px;
    animation: lds-spinner 1.2s linear infinite;
}
.lds-spinner div:after {
    content: " ";
    display: block;
    position: absolute;
    top: 3px;
    left: 37px;
    width: 6px;
    height: 18px;
    border-radius: 20%;
    background: #d7d7d7;
}
.lds-spinner div:nth-child(1) {
    transform: rotate(0deg);
    animation-delay: -1.1s;
}
.lds-spinner div:nth-child(2) {
    transform: rotate(30deg);
    animation-delay: -1s;
}
.lds-spinner div:nth-child(3) {
    transform: rotate(60deg);
    animation-delay: -0.9s;
}
.lds-spinner div:nth-child(4) {
    transform: rotate(90deg);
    animation-delay: -0.8s;
}
.lds-spinner div:nth-child(5) {
    transform: rotate(120deg);
    animation-delay: -0.7s;
}
.lds-spinner div:nth-child(6) {
    transform: rotate(150deg);
    animation-delay: -0.6s;
}
.lds-spinner div:nth-child(7) {
    transform: rotate(180deg);
    animation-delay: -0.5s;
}
.lds-spinner div:nth-child(8) {
    transform: rotate(210deg);
    animation-delay: -0.4s;
}
.lds-spinner div:nth-child(9) {
    transform: rotate(240deg);
    animation-delay: -0.3s;
}
.lds-spinner div:nth-child(10) {
    transform: rotate(270deg);
    animation-delay: -0.2s;
}
.lds-spinner div:nth-child(11) {
    transform: rotate(300deg);
    animation-delay: -0.1s;
}
.lds-spinner div:nth-child(12) {
    transform: rotate(330deg);
    animation-delay: 0s;
}

.bmc-button span:nth-child(1) {
    font-size: 20px;
}

.bmc-button {
    line-height: 35px !important;
    height:40px !important;
    text-decoration: none !important;
    display:inline-flex !important;
    align-items: center !important;
    color:#ffffff !important;
    background-color:#4b4b4b !important;
    border-radius: 5px !important;
    border: 1px solid transparent !important;
    padding: 7px 15px 7px 10px !important;
    font-size: 15px !important;
    box-shadow: 0px 1px 1px rgba(190, 190, 190, 0.5) !important;
    -webkit-box-shadow: 0px 1px 2px 1px rgba(190, 190, 190, 0.5) !important;
    font-family: sitewide-sans-serif, sans-serif !important;
    -webkit-box-sizing: border-box !important;
    box-sizing: border-box !important;
}

.bmc-button:hover, .bmc-button:active, .bmc-button:focus {
    -webkit-box-shadow: 0px 1px 2px 2px rgba(190, 190, 190, 0.5) !important;
    text-decoration: none !important;box-shadow: 0px 1px 2px 2px rgba(190, 190, 190, 0.5) !important;
    opacity: 0.85 !important;color:#ffffff !important;
}

@media(max-width: 550px) {
    .how-to-use-header {
        font-size: 30px;
    }
    #how-to-use-container h3 {
        font-size: 20px;
    }
}

@media(min-width: 551px) {
    .how-to-use-header {
        font-size: 35px;
    }
    #how-to-use-container h3 {
        font-size: 25px;
    }
}


@keyframes lds-spinner {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}
