body {
    background:#FFF8E7;

    margin:0;
    padding-bottom:60px;
}

/* VHSノイズ */
body::before{
    content:"";
    position:fixed;
    inset:0;

    background-image:url("bg-static01.gif");
    background-repeat:repeat;

    opacity:0;

    pointer-events:none;
    z-index:999;

    animation:noiseFlash 20s infinite;
}


@keyframes noiseFlash{
    0%,92%,100%{
        opacity:0;
    }

    93%,94%{
        opacity:0.12;
    }
}

.success-message{
    position:relative;
    background:#fff;
    padding:20px;
    border-radius:15px;
    overflow:hidden;
}

/* ヘッダー */
header{
    background:#7FFFD4;
    color:white;

    padding:15px;

    position:relative;
    z-index:1000;

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

    box-shadow:0 4px 15px rgba(0,0,0,.2);
}


header h1{
    font-family:"Mochiy Pop One", sans-serif;
    font-size:48px;

    margin:0;

    text-shadow:
    0 0 5px white,
    0 0 15px #42D9B8,
    0 0 30px #42D9B8;
}

.character-text h3,
.character-title{

    font-family:"Zen Maru Gothic", sans-serif;

    font-size:30px;

    color:#333;

    text-shadow:
        0 0 6px rgba(255,255,255,.5),
        0 2px 5px rgba(0,0,0,.2);

}

header h1 a{
    color:white;
    text-decoration:none;
}



/* メニューボタン */
.menu-btn{
    position:absolute;

    right:15px;
    top:50%;

    transform:translateY(-50%);

    font-size:30px;

    background:none;
    border:none;

    color:white;
}


/* メニュー */
#menu{
    display:none;

    position:relative;
    z-index:1000;
}


#menu.open{
    display:block;
}


#menu a{
    display:block;

    padding:15px;

    text-decoration:none;

    color:#333;

    border-bottom:1px solid #ddd;

    font-family:"Mochiy Pop One",sans-serif;

    font-size:18px;

    letter-spacing:2px;

    transition:.3s;
}


#menu a:hover{

    background:#7FFFD4;

    color:white;

    text-shadow:
    0 0 5px white,
    0 0 10px #42D9B8;


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

    transform:translateX(5px);
}



/* メイン */
main{
    padding:20px;
}

main p{
    font-family:"M PLUS Rounded 1c", sans-serif;
}

main h2:not(.hero h2){

    font-family:"M PLUS Rounded 1c", sans-serif;
    font-size:36px;

    color:#42D9B8;

    text-shadow:
        0 0 6px rgba(255,255,255,.5),
        0 2px 5px rgba(0,0,0,.2);

}


/* トップ */
.hero{

    display:flex;

    flex-direction:column;

    align-items:center;

}



/* アクリル看板 */
.hero h2{

    font-family:"Zen Kaku Gothic New", sans-serif;

    display:inline-block;

    padding:50px 90px;

    color:white;

    font-size:52px;

    font-weight:bold;

    letter-spacing:5px;

    text-align:center;

    background-image:
    linear-gradient(
        rgba(255,255,255,0.25),
        rgba(255,255,255,0.25)
    ),
    url("shopin.png");


    background-size:cover;

    background-position:center;


    border:3px solid rgba(255,255,255,.8);

    border-radius:30px;


    backdrop-filter:blur(6px);


    box-shadow:
    inset 0 0 25px rgba(255,255,255,.8),
    0 0 40px rgba(255,255,255,.7);


    text-shadow:
    0 0 5px white,
    0 0 15px #42D9B8;
}

.title-text{
    display:inline-block;
    transform:translateX(10px);
}

.hero p{

    font-family:"Mochiy Pop One",sans-serif;

    color:#FFD93E;

    font-size:18px;


    text-shadow:

    0 0 5px #FFF8E7,

    0 0 15px #FFE95E,

    0 0 30px #FFD93E;
}



/* ボタン */
.enter-btn{

    font-family:"Zen Kaku Gothic New", sans-serif;
    font-weight:700;

    display:inline-block;

    margin-top:30px;

    padding:15px 40px;


    background:#42D9B8;

    color:#FFF8E7;

    text-decoration:none;

    border-radius:10px;

    font-size:20px;


    box-shadow:

    0 0 20px #42D9B8;
}



.enter-btn:hover{

    background:#7FFFD4;

    box-shadow:

    0 0 25px #42D9B8;
}

.admin-btn{

    position:fixed;

    right:20px;
    bottom:90px;

    padding:8px 14px;

    background:rgba(0,0,0,.4);

    color:#aaa;

    text-decoration:none;

    border:1px solid #666;

    border-radius:8px;

    font-size:12px;

    font-family:"M PLUS Rounded 1c",sans-serif;

    transition:.3s;

}

.admin-btn:hover{

    color:#7FFFD4;

    border-color:#7FFFD4;

    box-shadow:0 0 10px #7FFFD4;

}

/* BGM */
#playBtn{

    position:fixed;

    bottom:0;

    left:0;

    width:100%;


    padding:12px 20px;


    background:#ff8fd8;

    color:white;

    border:none;


    font-family:"M PLUS Rounded 1c",sans-serif;

    font-size:14px;

    letter-spacing:2px;

    text-align:left;


    z-index:1000;
}

/* キャラクターカード */

.character-card{

    display:flex;

    align-items:center;

    gap:20px;


    margin-top:30px;

    padding:20px;


    background:white;

    border-radius:15px;


    box-shadow:

    0 4px 10px rgba(0,0,0,.15);
}


.character-card img{

    width:180px;

    border-radius:12px;
}


.character-text p{

    line-height:1.8;
}



/* フォーム */

form{

    background:white;

    padding:20px;

    border-radius:15px;

    max-width:500px;

    margin:30px auto;
}



input,
textarea{

    width:100%;

    box-sizing:border-box;

    padding:10px;

    border:1px solid #ddd;

    border-radius:8px;
}



textarea{

    height:150px;
}

textarea{
    resize:none;
}

/* スマホ */
@media(max-width:600px){

    header h1{
        font-size:45px;
    }


    .menu-btn{

        font-size:36px;

    }


    .hero h2{

        font-size:38px;

        padding:35px 25px;

        width:80%;

        box-sizing:border-box;

        text-align:center;
    }


    .hero p{

        font-size:22px;

        text-align:center;

    }


    .enter-btn{

        font-size:24px;

        padding:20px 50px;

    }

    .character-card{
        display:flex;
        flex-direction:column; /* 縦並び */
        align-items:center;
        text-align:center;
    }

    .character-card img{
        width:70%;
        max-width:220px;
        margin-bottom:20px;
    }

    .character-text{
        width:100%;
    }

    .character-text p{
        text-align:left;
        line-height:1.8;
    }

}

/* PC */
@media(min-width:601px){

    header{

        padding:25px;

    }


    header h1{

        font-size:70px;

    }


    main{

        max-width:1200px;

        margin:auto;

        padding:40px;

    }


    .hero{

        margin-top:60px;

    }


    .hero h2{

        font-size:48px;

        padding:50px 80px;

        border-radius:35px;

    }


    .hero p{

        font-size:26px;

    }


    .enter-btn{

        margin-top:50px;

        padding:22px 70px;

        font-size:28px;

    }

}
