* {
    box-sizing: border-box;
}

body {
    margin: 0;
    padding: 30px 15px;

    font-family: Arial, sans-serif;

    background-color: #FFF5EF;

    color: #493B48;
}


/* SITIO */

.site {
    width: 900px;
    max-width: 100%;

    margin-left: auto;
    margin-right: auto;
}


/* CABECERA */

.header {
    text-align: center;

    padding-top: 35px;
    padding-bottom: 20px;
}

.header h1 {
    margin: 0;

    font-size: 80px;

    color: #FF6F61;

    text-shadow: 3px 3px 0 #FFD6CC;
}

.header p {
    margin-top: 8px;

    font-size: 20px;

    color: #687A5A;
}


/* MENU */

.menu {
    text-align: center;

    margin-top: 20px;
    margin-bottom: 35px;
}

.menu a {
    display: inline-block;

    margin: 5px;

    padding: 9px 15px;

    background-color: white;

    border: 2px solid #F6B8AE;

    border-radius: 25px;

    color: #D9574D;

    text-decoration: none;

    box-shadow: 2px 3px 0 #E8D8D2;
}

.menu a:hover {
    transform: translateY(-2px);
}


/* SECCIONES */

section {
    margin-top: 45px;
    margin-bottom: 45px;
}

h2 {
    margin-bottom: 18px;

    color: #E85D50;

    font-size: 32px;
}

h3 {
    margin-top: 0;

    color: #6A9A68;
}


/* BIENVENIDA */

.welcome {
    padding: 30px;

    text-align: center;

    background-color: #FFF0EA;

    border: 3px dashed #FFAAA0;

    border-radius: 25px;

    box-shadow: 4px 5px 0 #EEDDD6;
}

.welcome h2 {
    margin-top: 0;
}

.welcome p {
    line-height: 1.7;
}


/* TARJETAS */

.card {
    padding: 22px;

    background-color: white;

    border: 2px solid #F6C9C1;

    border-radius: 20px;

    box-shadow: 4px 5px 0 #E9DDD8;
}

.card p {
    line-height: 1.7;
}


/* BOTONES DE MUSICA */

.music-buttons {
    margin-top: 20px;
}

.music-buttons button {
    margin-right: 8px;
    margin-bottom: 8px;
}


/* COSITAS */

.things-grid {
    display: grid;

    grid-template-columns: 1fr 1fr 1fr;

    gap: 15px;
}

.thing-card {
    min-height: 250px;
}


/* FRASE */

.quote {
    margin-top: 20px;
    margin-bottom: 20px;

    padding: 15px;

    background-color: #FFF0A8;

    border-radius: 15px;

    text-align: center;

    font-size: 24px;

    font-weight: bold;

    color: #9B6A00;

    transform: rotate(-1deg);

    box-shadow: 2px 3px 0 #EADC9C;
}


/* BOTONES */

button {
    padding: 12px 20px;

    border: 0;

    border-radius: 25px;

    background-color: #FF6F61;

    color: white;

    font-size: 16px;

    font-weight: bold;

    cursor: pointer;

    box-shadow: 3px 4px 0 #D9574D;
}

button:hover {
    transform: translateY(-2px);
}

button:active {
    transform: translateY(2px);
}

button:disabled {
    opacity: 0.6;

    cursor: wait;
}


/* REACCIONES */

.reaction {
    min-height: 42px;

    margin-top: 18px;

    color: #687A5A;

    font-weight: bold;
}


/* TEXTO PEQUEÑO */

.small {
    font-size: 14px;

    opacity: 0.7;
}


/* FOOTER */

footer {
    margin-top: 70px;

    padding-top: 30px;
    padding-bottom: 30px;

    text-align: center;

    border-top: 2px dashed #E6CFC8;
}

footer p:first-child {
    margin-bottom: 8px;

    color: #D9574D;

    font-weight: bold;
}


/* =====================================
   CASINO
===================================== */

.casino-overlay {
    display: none;

    position: fixed;

    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    background-color: rgba(73, 59, 72, 0.65);

    z-index: 1000;

    padding: 20px;

    align-items: center;
    justify-content: center;
}

.casino-overlay.show {
    display: flex;
}


.casino-window {
    position: relative;

    width: 500px;
    max-width: 100%;

    padding: 30px;

    text-align: center;

    background-color: #FFF5EF;

    border: 5px solid #FF6F61;

    border-radius: 30px;

    box-shadow:
        8px 8px 0 #6A9A68,
        0 0 0 8px #FFF0EA;
}


.casino-close {
    position: absolute;

    top: 10px;
    right: 12px;

    width: 38px;
    height: 38px;

    padding: 0;

    background-color: #6A9A68;

    border-radius: 50%;

    font-size: 24px;

    line-height: 38px;
}


.casino-title {
    margin-bottom: 10px;

    color: #FF6F61;

    font-size: 27px;

    font-weight: bold;

    text-shadow: 2px 2px 0 #FFD6CC;
}


.casino-subtitle {
    color: #687A5A;

    font-weight: bold;
}


.machine {
    margin-top: 25px;
    margin-bottom: 20px;

    padding: 15px;

    background-color: #6A9A68;

    border: 5px solid #FF6F61;

    border-radius: 20px;

    box-shadow: inset 0 0 0 4px #FFF0EA;
}


.machine-lights {
    color: #FFF0A8;

    font-size: 18px;

    letter-spacing: 8px;
}


.machine-number {
    margin: 10px auto;

    width: 180px;

    padding: 20px;

    background-color: white;

    border: 4px solid #E85D50;

    border-radius: 15px;

    color: #493B48;

    font-size: 55px;

    font-weight: bold;
}


.casino-message {
    min-height: 25px;

    color: #E85D50;

    font-size: 18px;

    font-weight: bold;
}


.number-buttons {
    margin-top: 20px;
    margin-bottom: 20px;
}


.number-button {
    width: 70px;

    margin: 5px;

    background-color: #6A9A68;

    box-shadow: 3px 4px 0 #4F7D4E;

    font-size: 22px;
}


.number-button.selected {
    background-color: #FF6F61;

    box-shadow: 3px 4px 0 #D9574D;

    transform: translateY(-3px);
}


.spin-button {
    width: 100%;

    background-color: #FF6F61;

    font-size: 18px;
}


.casino-reaction {
    min-height: 30px;

    margin-top: 20px;

    color: #687A5A;

    font-weight: bold;
}


/* =====================================
   MOVIL
===================================== */

@media screen and (max-width: 600px) {

    body {
        padding: 15px 10px;
    }

    .header {
        padding-top: 25px;
    }

    .header h1 {
        font-size: 60px;
    }

    .menu a {
        padding: 8px 12px;

        font-size: 14px;
    }

    section {
        margin-top: 35px;
        margin-bottom: 35px;
    }

    h2 {
        font-size: 28px;
    }

    .welcome {
        padding: 22px 18px;
    }

    .card {
        padding: 18px;
    }

    .things-grid {
        grid-template-columns: 1fr;
    }

    .thing-card {
        min-height: auto;
    }

    .casino-window {
        padding: 25px 18px;
    }

    .casino-title {
        font-size: 22px;
    }

    .machine-number {
        width: 150px;

        font-size: 45px;
    }

}
/* =====================================
   DECORACIÓN FLOTANTE
===================================== */

.floating-decoration {

    position: fixed;

    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    pointer-events: none;

    overflow: hidden;

    z-index: 0;
}


/* ELEMENTOS */

.float-item {

    position: absolute;

    display: block;

    font-size: 28px;

    opacity: 0.55;

    user-select: none;

    animation-name: flavoury-float;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;

}


/* POSICIONES */

.item-1 {

    top: 12%;
    left: 7%;

    font-size: 25px;

    animation-duration: 5s;
    animation-delay: 0s;

}


.item-2 {

    top: 25%;
    right: 8%;

    font-size: 20px;

    animation-duration: 6s;
    animation-delay: 1s;

}


.item-3 {

    top: 55%;
    left: 4%;

    font-size: 30px;

    animation-duration: 7s;
    animation-delay: 0.5s;

}


.item-4 {

    top: 70%;
    right: 6%;

    font-size: 22px;

    animation-duration: 5.5s;
    animation-delay: 2s;

}


.item-5 {

    top: 40%;
    left: 12%;

    font-size: 18px;

    animation-duration: 8s;
    animation-delay: 2.5s;

}


.item-6 {

    top: 82%;
    left: 18%;

    font-size: 25px;

    animation-duration: 6.5s;
    animation-delay: 1.5s;

}


.item-7 {

    top: 8%;
    right: 20%;

    font-size: 17px;

    animation-duration: 7.5s;
    animation-delay: 3s;

}


.item-8 {

    top: 88%;
    right: 20%;

    font-size: 20px;

    animation-duration: 5s;
    animation-delay: 2.5s;

}


/* MOVIMIENTO */

@keyframes flavoury-float {

    0% {

        transform:
            translate(0px, 0px)
            rotate(-5deg);

    }

    25% {

        transform:
            translate(8px, -12px)
            rotate(4deg);

    }

    50% {

        transform:
            translate(-5px, -22px)
            rotate(-3deg);

    }

    75% {

        transform:
            translate(-10px, -10px)
            rotate(6deg);

    }

    100% {

        transform:
            translate(0px, 0px)
            rotate(-5deg);

    }

}


/* =====================================
   CONTENIDO POR ENCIMA DE LA DECORACIÓN
===================================== */

.site {

    position: relative;

    z-index: 1;

}


/* =====================================
   MOVIL
===================================== */

@media screen and (max-width: 600px) {

    .float-item {

        font-size: 20px;

        opacity: 0.4;

    }

    .item-3,
    .item-6 {

        display: none;

    }

}

/* =====================================
   MUSIQUITA DE FONDO
===================================== */
/* =====================================
   MUSIQUITA EN EL MENU
===================================== */

.music-box {

    display: inline-block;

    margin: 5px;

    vertical-align: top;

    text-align: center;

}


.music-box button {

    margin: 0;

}


.music-box span {

    display: block;

    margin-top: 5px;

    color: #687A5A;

    font-size: 12px;

    font-weight: bold;

}