/* =========================
   Reset
========================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family:
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Oxygen,
        Ubuntu,
        Cantarell,
        "Open Sans",
        "Helvetica Neue",
        sans-serif;
}

html,
body {
    width: 100%;
    min-height: 100%;
    font-size: 16px;
}

body {
    min-height: 100dvh;
    background-color: #000;
    color: #fff;
    overflow-x: hidden;
}


/* =========================
   Logo / Header
========================= */

.logo {
    width: 100%;
    min-height: 120px;
    padding: 1.5rem 1rem;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;

    font-size: clamp(1.5rem, 4vw, 2.5rem);
    font-weight: 800;
    line-height: 1.1;
}

.logo span {
    margin-top: 0.4rem;
    font-size: clamp(0.8rem, 2vw, 1rem);
    font-weight: 400;
    line-height: 1.4;
}


/* =========================
   Cards Container
========================= */

.cards-container {
    width: min(90%, 1400px);
    margin: 0 auto;
    padding: 1rem 0 3rem;

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
}


/* =========================
   Card
========================= */

.card {
    width: 100%;
    min-width: 0;
    min-height: 180px;

    background-color: #fff;
    color: #000;
    border-radius: 10px;

    display: flex;
    align-items: center;
    justify-content: center;

    cursor: pointer;

    box-shadow: -5px 5px 0 green;

    transition:
        transform 200ms ease,
        box-shadow 200ms ease;
}

.card a {
    width: 100%;
    height: 100%;
    min-height: 180px;

    padding: 1.5rem;

    display: flex;
    justify-content: center;
    align-items: center;

    text-align: center;

    font-size: clamp(1.25rem, 2.5vw, 2rem);
    line-height: 1.2;
    font-weight: 800;

    text-decoration: none;
    color: #000;
}


/* =========================
   Hover
   Only applies to devices
   that actually support hover
========================= */

@media (hover: hover) and (pointer: fine) {
    .card:hover {
        transform: translate(-3px, 3px);
        box-shadow: none;
    }
}


/* =========================
   Extra Small
   Portrait Phones
   ≤ 480px
========================= */

@media (max-width: 480px) {

    .logo {
        min-height: 110px;
        padding: 1.25rem 1rem;
        font-size: 1.5rem;
    }

    .logo span {
        max-width: 90%;
        font-size: 0.8rem;
    }

    .cards-container {
        width: calc(100% - 2rem);
        padding-bottom: 2rem;

        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .card {
        min-height: 150px;
    }

    .card a {
        min-height: 150px;
        padding: 1rem;
        font-size: 1.35rem;
    }
}


/* =========================
   Small
   Landscape Phones /
   Small Devices
   481px - 768px
========================= */

@media (min-width: 481px) and (max-width: 768px) {

    .logo {
        min-height: 120px;
        font-size: 1.8rem;
    }

    .cards-container {
        width: 90%;

        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .card {
        min-height: 170px;
    }

    .card a {
        min-height: 170px;
        font-size: 1.5rem;
    }
}


/* =========================
   Medium
   Tablets
   769px - 1024px
========================= */

@media (min-width: 769px) and (max-width: 1024px) {

    .logo {
        min-height: 130px;
        font-size: 2rem;
    }

    .cards-container {
        width: 90%;

        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.5rem;
    }

    .card {
        min-height: 180px;
    }

    .card a {
        min-height: 180px;
        font-size: 1.6rem;
    }
}


/* =========================
   Large
   Big Tablets / Laptops
   ≥ 1025px
========================= */

@media (min-width: 1025px) {

    .logo {
        min-height: 140px;
        font-size: 2.5rem;
    }

    .cards-container {
        width: min(90%, 1400px);

        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 2rem;
    }

    .card {
        min-height: 200px;
    }

    .card a {
        min-height: 200px;
        font-size: 2rem;
    }
}