@charset "UTF-8";

* {
    box-sizing: border-box;
}

body {
    width: 400px;
    max-width: 100%;
    background: #F7EAEE;
    background: linear-gradient(15deg, rgba(247, 234, 238, 1) 0%, rgba(184, 193, 209, 1) 35%, rgba(113, 129, 191, 1) 100%);
}

img {
    padding: 0;
    max-width: 100%;
    height: auto;
}

figure {
    margin: 0;
    padding: 0;
}

p {
    font-size: 16px;
    color: #344979;
    text-align: center;
    font-family: "Kaisei HarunoUmi";
}

h2 {
    text-align: center;
    font-size: 28px;
    margin-bottom: 25px;
    font-family: "Kaisei HarunoUmi";
    color: #344979;
    font-weight: bold;
}

.section,
footer {
    padding: 50px 30px;
    text-align: center;
}

.button {
    display: inline-block;
    border: 2px solid;
    padding: 10px 20px;
    border-radius: 30px;
    text-align: center;
    margin-top: 10px;
    transition: color 0.2s;
}

.button::after {
    content: "→";
}

.button:hover {
    color: aliceblue;
}

/* header */

header {
    position: absolute;
    z-index: 1000;
    position: fixed;
}

header img {
    width: 40%;
    padding: 10px;
}

nav ul li {
    font-weight: bold;
}

.nav-toggle {
    display: none;
}

.btn-burger {
    position: absolute;
    top: 5px;
    right: 10px;
    z-index: 2;
    display: block;
    width: 44px;
    height: 44px;
    background: url(../imgs/burger-open.png) center center/44px 40px no-repeat;
    cursor: pointer;
}

.nav-toggle:checked~.btn-burger {
    background: url(../imgs/burger-close.png) center center/26px 26px no-repeat;
}

.nav {
    background-color: #5D6DA5;
}

.nav-list {
    display: none;
    margin: 0;
    padding-bottom: 10px;
}

.nav-list li {
    margin: 0;
    padding: 10px;
}

.nav-list li:first-child {
    padding-top: 15px;
}

.nav-list a {
    display: block;
    color: #ffffff;
    transition: color 0.2s;
}

.nav-list a:hover {
    color: #f3dbe2;
}

.nav-toggle:checked~.nav .nav-list {
    display: block;
}

/* top */

#top {
    height: 800px;
    background-image: url(../imgs/top-background.jpg);
    background-position: center;
    background-size: cover;
    text-align: center;
}

.top-center {
    display: flex;
    justify-content: center;
}

.top-reine {
    margin: 50px 0;
    width: 500px;
}

.top-img {
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-duration: 4s;

    animation-name: anim_v;
    bottom: 0;


}

.top-kurage {
    animation-duration: 3s;
}

.kurage {
    display: flex;
    flex-flow: column;
    margin-top: 150px;
}

.kurage1 {
    width: 100px;
    margin-left: 100px;
}

.kurage2 {
    width: 200px;
    height: 220px;

}

.kurage3 {
    width: 150px;
}

.kurage4 {
    width: 50px;
}

.kurage5 {
    width: 110px;
    margin-left: 80px;

}

@keyframes anim_v {
    0% {
        transform: translate(0, 0px);
    }

    100% {
        transform: translate(0, 20px);
    }
}



.container_05 {}

.scrollbar-text_05 {
    display: inline-block;
    position: absolute;
    bottom: 0;
    padding: 10px 10px 110px;
    color: #fff;
    font-size: 14px;
    font-family: serif;
    line-height: 1;
    letter-spacing: 0.2em;
    writing-mode: vertical-lr;
    right: 10%;
    transform: translateX(-50%);
}

.scrollbar_05 {
    position: absolute;
    right: 15%;
    transform: translateX(-50%);
    bottom: 1px;
}

.scrollbar_05::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 1px;
    height: 100px;
    background: #fff;
    animation: liner 2.5s cubic-bezier(1, 0, 0, 1) infinite;
}

@keyframes liner {
    0% {
        transform: scale(1, 0);
        transform-origin: 0 0;
    }

    30% {
        transform: scale(1, 1);
        transform-origin: 0 0;
    }

    70% {
        transform: scale(1, 1);
        transform-origin: 0 100%;
    }

    100% {
        transform: scale(1, 0);
        transform-origin: 0 100%;
    }
}

/* concept */

.name::after {
    content: "(あいひょう)";
    font-size: 16px;
}

.concept-h2 {
    margin-top: 50px;
}

.concept-reine {
    margin-bottom: 25px;
    margin-top: 50px;
}

.concept-site {
    margin-top: 25px;
    margin-bottom: 50px;
}

.parallax-content {
    display: flex;
    justify-content: center;
    align-items: center;

    background-attachment: fixed;
    background-position: right;
    background-size: cover;
    background-repeat: no-repeat;
}

.img_bg_01 {
    background-image: url(../imgs/concept.jpg);
}

.img_bg_02 {
    background-image: url(../imgs/concept.jpg);
}

.img_bg_03 {
    background-image: url(../imgs/concept.jpg);
}

#concept p {
    color: #ffffff;
    line-height: 2em;
}


/* gallery */

#gallery {
    height: 800px;
}

.gallery-p {
    margin-top: -20px;
    margin-bottom: 25px;
}

.index {
    position: relative;
    height: 50vh;
}

.index-2,
.index-3,
.index-4,
.index-5 {
    position: absolute;
}

.index-1,
.index-2,
.index-3,
.index-4 {
    box-shadow: 10px 10px 10px #535a7d;
}

.index-1 {
    width: 1000px;
}

.index-2 {
    z-index: 20;
    margin-top: -50px;
    margin-left: -150px;
    width: 40%;
}

.index-3 {
    z-index: 30;
    width: 100px;
    margin-top: -400px;
    margin-left: 30px;
}

.index-4 {
    z-index: 30;
    margin-top: -200px;
    width: 40%;
    margin-left: -100px;
}

.index-5 {
    z-index: 40;
    margin-top: -500px;
    width: 40%;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(4rem);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


.index-1,
.index-2,
.index-3,
.index-4,
.index-5 .section {

    /* 個別の view timeline を設定 */

    view-timeline-name: --fadeTimeline;
    view-timeline-axis: block;

    /* アニメーションを timeline にバインド */
    animation: fadeIn linear both;
    animation-timeline: --fadeTimeline;
    animation-range: entry 0% cover 40%;
}

/* music */

.title {
    font-size: 20px;
    margin: 10px;
}

.h2-p {
    margin-top: -20px;
    margin-bottom: 25px;
}

.p {
    margin: 0 auto;
    margin-bottom: 10px;
    width: 80%;
}

.music-item {
    margin-bottom: 50px;
    text-align: center;
    max-width: 500px;
}

.music-item-margin {
    margin: 0;
}

.music-item img {
    margin: 0 auto;
}


/* fanart */

.fanart-p {
    margin-bottom: 25px;
}

.fanart-ul {
    margin-bottom: 25px;
}

span {
    font-size: 20px;
    text-decoration: none;
}

/* footer */

footer {
    text-align: center;
    border-top: 2px solid;
    border-color: #344979;
}

.f-img {
    width: 30px;
    height: 30px;
    margin-bottom: 25px;
}

.ul-footer {
    display: flex;
    gap: 10px;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 25px;
}

.ul-footer a {
    color: #344979;
    transition: color 0.2s;
}

.ul-footer a:hover {
    color: #C6C6E8;
}

small {
    color: #344979;
    font-size: 12px;
}


.p-bottom {
    margin-bottom: 10px;
}




@media screen and (min-width: 401px) {
    header {
        width: 100%;
    }

    h1 img {
        width: 200px;
    }

    h2 {
        font-size: 32px;
    }

    body {
        width: 100%;
    }

    header {
        display: flex;
        justify-content: space-between;
    }

    header nav ul {
        padding-top: 20px;
    }

    */ header nav ul li {
        color: #2b3981;
    }

    #concept p {
        line-height: 2.5em;
    }

    /* gallray */
    #gallery {
        height: 1250px;
    }

    .index-2 {
        z-index: 30;
        margin-left: -200px;
    }

    .index-3 {
        width: 150px;
        margin-left: 50px;
    }

    .index-4 {
        margin-top: -100px;
        width: 40%;
    }

    /* music */

    .music-item {
        width: 50%;
        margin: 0;
    }

    .music-list {
        display: flex;
        justify-content: center;
        gap: 20px;
    }

    /* fanart */

    .fanart-ul {
        display: flex;
        justify-content: center;
        gap: 50px;
        align-items: center;
    }


    .br {
        display: none;
    }

    @media screen and (min-width: 768px) {
        #gallery {
            height: 1600px;
        }

        .index-2 {
            z-index: 30;
            margin-left: -300px;
            width: 325px;
        }

        .index-3 {
            margin-left: 100px;
            width: 200px;
        }

        .index-4 {
            width: 300px;
        }

        .index-5 {
            margin-top: -300px;
            width: 300px;
        }
    }
}

/* ---------------form--------------- */

.form-body {
    background-repeat: no-repeat;
    background-color: #ffffff;
}

.form-header {
    position: static;
}

.form-h2 {
    margin-bottom: 50px;
}

form {
    padding-top: 50px 0;
}

.form-div {
    /* text-align: left; */
    width: 310px;
    margin: 0 auto;
}

.form-p {
    text-align: left;
    margin-bottom: 5px;
}

.form-p::before {
    content: "※";
    color: #fc0050;
}

.solid,
textarea {
    border: #5D6DA5 solid 1px;
    width: 100%;
    border-radius: 3px;
    margin-bottom: 20px;
    background-color: #ffffff;
}

textarea {
    margin-bottom: 50px;
    height: 100px;
}

input[type="submit"] {
    background-color: #5D6DA5;
    color: #ffffff;
    padding: 10px;
    border-radius: 3px;
    margin-bottom: 50px;
}