* {
    font-family: "Press Start 2P", serif;
    font-weight: 400;
    font-style: normal;
    font-size: 1vw;
    text-shadow: .1rem .2rem 0 black;
}

body {
    padding: 0;
    background-color: #01143b;
    color: #fff;
    padding: 0;
}

a {
    color: inherit;
}

.bg {
    position: fixed;
    height: 100vh;
    width: 100vw;
    left: 0;
    top: 0;
    z-index: -1;
}

.bg .logo {
    position: absolute;
    background-size: contain;
    background-position: center center;
    background-repeat: no-repeat;
}

.logo.hansei {
    background-image: url('/static/img/logo_hansei_sf.png');
    width: 14rem;
    height: 2rem;
    left: 1rem;
    top: 1rem;
    padding-top: 8rem;
    overflow: visible;
    background-position: top center;
    text-align: center;
    font-size: 0.8rem;
    line-height: 1.1rem;
}

.logo.gcf {
    background-image: url('/static/img/logo_gcf.png');
    width: 10rem;
    height: 5rem;
    right: 2rem;
    top: 1rem;
}

.logo.gefer {
    background-image: url('/static/img/logo_gefer.png');
    width: 10rem;
    height: 3.7rem;
    right: 2rem;
    top: 6rem;
}

.van {
    background: url('/static/img/furgone.png') bottom center no-repeat;
    background-size: contain;
    width: 100vw;
    height: 100vh;
}

.titles {
    text-align: center;
}

h1 {
    font-size: 2.6rem;
    letter-spacing: -0.2rem;
    margin-bottom: 1rem;
    color: green;
}

h2 {
    font-size: 1.8rem;
    margin-bottom: 1rem;
    color: orange;
}

h3 {
    margin-bottom: 2rem;
}

table {
    margin: 0 auto;
    border-collapse: collapse;
    background-color: rgba(0, 0, 0, .4);
}

table tr *:first-of-type {
    text-align: left;
    padding-left: 1rem;
}

table tr *:last-of-type {
    text-align: right;
    padding-right: 1rem;
}

th {
    padding: .5rem .5rem 0 .5rem;
    color: blue;
    font-size: 1.6rem;
    padding-bottom: 1.4rem;
}

thead tr th:nth-of-type(2) {
    width: 24rem;
}

td {
    text-align: center;
    padding: .6rem 0;
    color: red;
}

td,
td * {
    font-size: 1.5rem;
}

tbody tr:nth-of-type(1) td {
    font-size: 1.8rem;
    color: yellow;
}

tbody tr:nth-of-type(2) td {
    font-size: 1.7rem;
    color: #ffcf3b;
}

tbody tr:nth-of-type(3) td {
    font-size: 1.6rem;
    color: #ff9507;
}

tbody tr:nth-of-type(4) td {
    font-size: 1.6rem;
    color: #ff4707
}

.line {
    transition: .3s ease-in-out;
}

.line.highlight {
    background-color: rgba(255, 255, 0, .8);
}

.line.hidden {
    display: none;
}

.targa {
    position: relative;
    white-space: nowrap;
    box-shadow: .2rem .2rem .4rem 0 rgba(0, 0, 0, 0.8);
    padding: 0 .5rem;
    background-color: #fff;
    display: inline-block;
    height: 2.2rem;
    line-height: 2.4rem;
    text-shadow: none;
    color: #000;
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
    font-size: 1.2rem;
}

.targa:before,
.targa:after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    height: 100%;
    background-color: #0055bb;
    border-radius: 0 .4rem .4rem 0;
    border-right: 1px solid #000;
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
    margin-right: -1rem;
    width: 1rem;
    margin-top: -1px;
}

.targa:before {
    content: 'I';
    font-size: 0.6rem;
    color: #fff;
    left: 0;
    right: auto;
    text-align: center;
    border-radius: .4rem 0 0 .4rem;
    border-left: 1px solid #000;
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
    margin-left: -1rem;
    width: 1rem;
    margin-top: -1px;
}

.targa>span {
    display: inline-block;
    padding: 0 0.25rem !important;
    !importan;
    !importa;
    !import;
    !impor;
    !impo;
    !imp;
    !im;
    !i;
    !;
}

.lente {
    display: inline-block;
    width: 2rem;
    height: 2rem;
    background-size: contain;
    background-position: center center;
    background-repeat: no-repeat;
    background-image: url('/static/img/lente.png');
    cursor: pointer;
}

.lente:hover {
    opacity: .4;
}

.modal {
    position: fixed;
    margin: 0 auto;
    box-shadow: 1.5rem 1.5rem 0 0 black;
    z-index: 999;
}

.modal .close {
    position: absolute;
    top: 0;
    right: 0;
    font-size: 1.5rem;
    cursor: pointer;
    padding: 1rem;
}

#regole {
    top: 5vh;
    left: 20vw;
    width: 60vw;
    height: 90vh;
    overflow-y: auto;
    background-color: rgba(0, 0, 0, 0.9);
    box-shadow: none;
    padding: 2vh 2vw;
    text-align: center;
    box-sizing: border-box;
}

#regole *:not(.close) {
    font-family: sans-serif;
    text-shadow: none;
}

#regole h3 {
    color: #ffcf3b;
    margin-bottom: 3rem;
}

#regole ol {
    list-style-type: roman;
}

#regole ol li {
    margin-bottom: 1rem;
    text-align: left;
    font-size: .7rem;
    line-height: 1.1rem;
}

#regole ol li b {
    color: yellow;
    font-size: .8rem;
    line-height: 1rem;
}

#ricerca {
    position: fixed;
    top: 10rem;
    left: 30rem;
    margin: 0 auto;
    width: 40rem;
    background-color: red;
    padding: 2rem;
    text-align: center;
    box-shadow: 1.5rem 1.5rem 0 0 black;
    z-index: 999;
    display: none;
}

#ricerca input {
    text-shadow: none;
    font-size: 1.6rem;
    text-transform: uppercase;
    padding: .8rem 1rem;
    margin: 2rem 0;
    text-align: center;
    width: 20rem
}

#ricerca .noresult {
    display: none;
    margin-bottom: 2rem;
    color: orange;
    font-size: 1.2rem;
}

#ricerca .score {
    display: none;
    margin-bottom: 2rem;
    color: yellow;
    font-size: 1.2rem;
}

#ricerca .submit {
    display: inline-block;
    margin: 0 auto;
    width: 10rem;
    background-color: green;
    padding: 1rem 2rem;
    box-shadow: 0.4rem 0.4rem 0 0 black;
}

#ricerca .submit:active {
    transform: translate(0.2rem, 0.2rem);
    box-shadow: 0.2rem 0.2rem 0 0 black;
}

audio {
    position: absolute;
    top: 11rem;
    right: 2rem;
    width: 10rem;
}

@media (max-width: 767px) {
    * {
        font-size: 2vw;
    }

    body {
        padding-bottom: 10rem;
    }

    .bg .logo.hansei {
        left: calc(50% - 7rem);
        top: .5rem;
    }

    .bg .van {
        background-size: 220%;
        background-position: right bottom 18vw;
    }

    .bg .logo.gcf {
        left: 2rem;
        height: 4rem;
        width: 9rem;
        top: 1rem;
    }

    .bg .logo.gefer {
        top: 1rem;
        height: 5rem;
        width: 13rem;
    }

    .titles {
        padding-top: 9rem;
    }

    table {
        width: 100%;
    }

    thead tr th:nth-of-type(1) {
        width: 20%;
    }

    thead tr th:nth-of-type(2) {
        width: auto
    }

    thead tr th:nth-of-type(3) {
        width: 20%;
    }

    .modal .close {
        top: 0;
        right: 0;
        font-size: 3rem;
    }

    #regole {
        height: 100vh;
        width: 100vw;
        left: 0;
        top: 0;
        padding: 3rem;
    }

    #regole h3 {
        font-size: 4rem;
        margin-bottom: 4rem;
    }

    #regole ol * {
        font-size: 2rem !important;
        line-height: 3rem !important;
    }

    #regole ol {
        padding-left: 1rem;
    }

    #ricerca {
        width: 88vw;
        left: initial;
    }

    audio {
        position: fixed;
        top: auto;
        bottom: 1rem;
        left: 2vw;
        width: 96vw;
        z-index: 1;
        height: 18vw;
    }
}