/* =========================
   RESET
   ========================= */

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html,
body {
    width: 100%;
    min-height: 100%;
}

body {
    background: #000;
    color: #fff;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    overflow-x: hidden;
}


/* =========================
   MAIN SITE GRID
   ========================= */

.site-grid {
    position: relative;

    min-height: 100vh;

    display: grid;

    grid-template-columns: repeat(6, 1fr);

    grid-template-rows:
        auto
        minmax(400px, 1fr)
        auto;

    grid-template-areas:
        "header header header header header header"
        "scene  scene  scene  scene  scene  scene"
        "merch  merch  merch  merch  merch  merch";
}


/* =========================
   HEADER
   ========================= */

.header {
    grid-area: header;

    position: relative;
    z-index: 2;

    display: grid;
    justify-items: center;

    text-align: center;

    padding: 40px 20px 20px;
}

.header h1 {
    font-size: clamp(3rem, 10vw, 7rem);

    line-height: 0.9;

    letter-spacing: -0.05em;
}

.header p {
    margin-top: 10px;

    font-size: clamp(0.7rem, 2vw, 1rem);

    letter-spacing: 0.2em;
}


/* =========================
   THREE.JS SCENE
   ========================= */

.scene {
    grid-area: scene;

    position: relative;

    min-width: 0;
    min-height: 400px;

    z-index: 1;
}

#three-canvas {
    display: block;

    width: 100%;
    height: 100%;
}


/* =========================
   MERCH GRID
   ========================= */

.merch {
    grid-area: merch;

    display: grid;

    grid-template-columns: repeat(6, 1fr);

    grid-template-areas:
        ". . hoodie hoodie . .";

    justify-items: center;
    align-items: start;

    padding: 20px 40px 60px;
}


/* =========================
   PRODUCT
   ========================= */

.product {
    grid-area: hoodie;

    width: 100%;
    max-width: 400px;

    display: grid;
    justify-items: center;

    text-align: center;
}


/* =========================
   PRODUCT IMAGE
   ========================= */

.product-image {
    width: 100%;
}

.product-image img {
    display: block;

    width: 100%;
    height: auto;
}


/* =========================
   PRODUCT DETAILS
   ========================= */

.product-details {
    display: grid;
    justify-items: center;

    gap: 8px;

    margin-top: 10px;
}

.product-details h2 {
    font-size: 1.2rem;

    letter-spacing: 0.08em;
}

.product-info {
    font-size: 0.75rem;

    letter-spacing: 0.2em;

    opacity: 0.7;
}


/* =========================
   BUTTON
   ========================= */

button {
    margin-top: 12px;

    padding: 12px 24px;

    background: transparent;
    color: #fff;

    border: 1px solid #fff;

    font-size: 0.75rem;

    letter-spacing: 0.15em;

    cursor: pointer;
}

button:hover {
    background: #fff;
    color: #000;
}


/* =========================
   MOBILE
   ========================= */

@media (max-width: 600px) {

    .site-grid {
        grid-template-columns: 1fr;

        grid-template-rows:
            auto
            minmax(300px, 1fr)
            auto;

        grid-template-areas:
            "header"
            "scene"
            "merch";
    }


    .header {
        padding-top: 30px;
        padding-left: 15px;
        padding-right: 15px;
    }


    .header p {
        letter-spacing: 0.15em;
    }


    .scene {
        min-height: 300px;
    }


    .merch {
        grid-template-columns: 1fr;

        grid-template-areas:
            "hoodie";

        padding: 20px 20px 50px;
    }


    .product {
        max-width: 400px;
    }

}