/* ---------- 全体 ---------- */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Zen Maru Gothic',sans-serif;
}

body{
    background:linear-gradient(180deg,#fffdf4,#ffe7a6);
    min-height:100vh;
}

/* ---------- メニュー ---------- */

#menuBtn{
    position:fixed;
    top:25px;
    left:50%;
    transform:translateX(-50%);

    width:55px;
    height:55px;

    border-radius:50%;

    background:rgba(255,255,255,.75);
    backdrop-filter:blur(10px);

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

    font-size:28px;
    color:#e8a56a;

    box-shadow:0 8px 20px rgba(0,0,0,.08);

    cursor:pointer;
    z-index:1000;

    transition:.3s;
}

#menuBtn:hover{
    transform:translateX(-50%) scale(1.1);
}

.menu{
    display:none;

    position:fixed;
    top:95px;
    left:50%;
    transform:translateX(-50%);

    background:rgba(255,255,255,.95);

    border-radius:18px;
    box-shadow:0 6px 18px rgba(0,0,0,.12);

    padding:12px;

    backdrop-filter:blur(8px);

    z-index:999;
}

.menu.show{
    display:block;
}

.menu a{
    display:block;
    padding:10px 16px;

    text-decoration:none;
    color:#e8a56a;
    font-weight:bold;

    border-radius:10px;

    transition:.2s;
}

.menu a:hover{
    background:#fff0f6;
}

/* ---------- コンテンツ ---------- */

.container{
    width:90%;
    max-width:1000px;
    margin:auto;
    padding:80px 0;
    text-align:center;
}

.container h1{
    color:#ecc762;
    font-size:38px;
    margin-bottom:10px;
}

.sub{
    color:#888;
    margin-bottom:40px;
}

/* ---------- スタンプ帳 ---------- */

.stamp-grid{

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(180px,1fr));

    gap:25px;

}

/* ---------- カード ---------- */

.stamp{

    background:#fff;

    border-radius:20px;

    padding:20px;

    box-shadow:0 5px 15px rgba(0,0,0,.1);

    transition:.3s;

}

.stamp:hover{

    transform:translateY(-5px);

}

.stamp img{

    width:120px;

    height:120px;

    object-fit:contain;

}

.stamp h3{

    margin-top:15px;

    color:#ecc762;

}

.stamp p{

    color:#777;

    font-size:14px;

    margin-top:8px;

}

/* ---------- 未取得 ---------- */

.locked{

    opacity:.45;

}

.question{

    width:120px;

    height:120px;

    border-radius:50%;

    background:#e6e6e6;

    display:flex;

    justify-content:center;

    align-items:center;

    margin:auto;

    font-size:70px;

    color:#999;

}

/* ---------- アニメーション ---------- */

.stamp{

    animation:fadeUp .6s ease;

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(20px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/* ---------- スマホ ---------- */

@media(max-width:600px){

    .container h1{
        font-size:30px;
    }

    .stamp img{
        width:90px;
        height:90px;
    }

    .question{
        width:90px;
        height:90px;
        font-size:55px;
    }

}