:root {
    --color1: #19171b;
    --color2: #03082b;
    --color3: #022375;
    --color4: #0e032b;
    --cursor: #1e1a5fb5;
}

html {
    scroll-behavior: smooth;
}

/**{
    outline: 2px red solid;
}*/


body {
    margin: 0;
    padding: 0;
    color: #ffffff;
    background-color: var(--color1);
    background-blend-mode: lighten;
    background-size: contain;
    font-family: serif;
    font-optical-sizing: auto;
}

.header {
    background-color: var(--color1);
    margin: 0;
    padding: 2vw;
}

.top {
    width: auto;
    margin: 0 20px;
    position: sticky;
    top: 0;
    left: 0;
    z-index: 1;
}

h1 {
    font-size: 25px;
    font-family: serif;
    font-style: normal;
    text-shadow: 5px 5px 10px var(--color2);
    color: #a9a9a9;
    top: 0;
}

.breadcrumb-001 {
    display: flex;
    gap: 0 22px;
    list-style: none;
    padding: 0;
    margin: 0 20px;
    font-size: .9em;
}

.breadcrumb-001 li {
    display: flex;
    align-items: center;
}

.breadcrumb-001 li:not(:last-child)::after {
    display: inline-block;
    transform: rotate(45deg);
    width: .3em;
    height: .3em;
    margin-left: 10px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    content: '';
}

.breadcrumb-001 a {
    color: #fff;
    text-decoration: none;
}

.img_wrap {
    position: relative;
}

.img_wrap::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    backdrop-filter: blur(8px);
    animation: blur 2s ease-in-out forwards;
}

@keyframes blur {
    0% {
        backdrop-filter: blur(8px);
    }

    100% {
        backdrop-filter: none;
    }
}

.img_wrap img {
    width: 100%;
    position: relative;
    top: 0;
    left: 0;
}



.outer {
    margin: 25px;
    height: 100px;
    display: flex;

}

.tag {
    display: flex;
    align-items: center;
}



@media (max-width: 414px) {

    .musicname {
        display: flex;
        max-width: 100%;
        border-bottom: 1px solid #fff;
        margin: 0 20px;
    }

    h2 {
        margin: 0 20px;
        font-size: 20px;
        font-family: serif;
        /* 'Teko', sans-*/
        font-style: normal;
        color: #fff;
        text-shadow: 1px 1px 5px #9d9d9d;
    }


    .date {
        font-size: 12px;
        margin-left: 0px;
    }
}

@media (min-width: 415px) {
    .musicname {
        display: flex;
        max-width: 100%;
        border-bottom: 1px solid #fff;
        margin: 50px 20%;
    }

    h2 {
        margin: 0 20px;
        font-size: 40px;
        font-family: serif;
        /* 'Teko', sans-*/
        color: #fff;
        text-shadow: 1px 1px 5px #9d9d9d;
        width: 80%;
    }

    .date {
        margin-left: 20px;
        width: 20%;
    }
}

@media (max-width: 414px) {
    .music {
        display: flex;
        margin: 20px 20px;
    }

    .music img {
        width: 25vw;
        height: 25vw;
        border-radius: 5%;
    }

    .music .text {
        margin-left: 5vw;
        width: 100%;
    }

    .music .text h3 {
        max-width: 100%;
        font-size: 3vw;
        text-decoration: underline;
    }

    .music .text p {
        margin-left: 1vw;
        margin-bottom: 6vw;
        line-height: 6vw;
        letter-spacing: 0.5vw;
        height: auto;
        font-size: 3vw;
    }

    .concept {
        margin: 20px;
        border-top: 1px solid #fff;
    }

    .concept h3 {
        margin: 20px 0 20px 20px;

    }

    .concept p {
        margin: 0 20px 20px 40px;
        line-height: 5vw;
        font-size: 2.5vw;
    }
}

@media (min-width: 415px) {
    .music {
        display: flex;
        margin: 20px 20%;
    }

    .music img {
        width: 25vw;
        height: 25vw;
        border-radius: 5%;
    }


    .music .text {
        margin-left: 5vw;
        width: 100%;
    }

    .music .text h3 {
        max-width: 100%;
        font-size: 30px;
        text-decoration: underline;
    }

    .music .text p {
        margin-left: 1vw;
        margin-bottom: 6vw;
        line-height: 3vw;
        letter-spacing: 2px;
        height: auto;
        font-size: 1.5vw;
    }

    .concept {
        margin: 20px;
        border-top: 1px solid #fff;
    }

    .concept h3 {
        margin: 20px 0 20px 20px;
        font-size: 3vw;
    }

    .concept p {
        margin: 0 20px 20px 40px;
        line-height: 3vw;
        font-size: 1.5vw;
    }
}






.abc1 {
    position: relative;
    position: fixed;
    bottom: 10px;
    right: 10px;
}

.abc2 {
    position: relative;
    position: fixed;
    bottom: 80px;
    right: 10px;
}

.abc3 {
    position: relative;
    position: fixed;
    bottom: 150px;
    right: 10px;
}

.abc4 {
    position: relative;
    position: fixed;
    bottom: 220px;
    right: 10px;
}

footer {
    background-color: var(--color2);
    text-align: center;
    padding-top: 1px;
    padding-bottom: 1px;
    width: 100%;
    height: auto;
    z-index: 0;
  }
  
  .ikonimg {
    width: 100%;
  }
  
  footer img {
    width: 200px;
    margin: auto;
    transition: transform 0.3s ease-in;
  }
  
  footer img:hover {
    transform: scale(1.1);
  }
  
  @media (max-width: 414px) {
    
    .f_menu {
      width: 100%;
      height: 100%;
  
      & ul {
        list-style: none;
        text-align: center;
        padding: 0;
        margin-bottom: 20px;
  
        & li a {
          font-size: 26px;
          line-height: 3rem;
          letter-spacing: .65rem;
          color: #fff;
          text-decoration: none;
          margin-bottom: 4rem;
        }
      }
    }
  }
  
  @media (min-width: 415px) {
    .f_menu {
      display: inline-block;
      height: 100%;
      margin: 0;
  
      & ul {
        list-style: none;
        text-align: center;
        padding: 0;
  
        & li a {
          font-size: 2rem;
          line-height: 3rem;
          letter-spacing: .4rem;
          color: #fff;
          text-decoration: none;
          margin-bottom: 4rem;
  
        }
  
        & li {
          transition: transform 0.3s ease-in;
        }
  
        & li:hover {
          transform: scale(1.1);
        }
      }
    }
  }
  
  footer li a {
    color: #ffffff;
    font-size: 16px;
  }
  
  footer p {
    margin-top: 30px;
    margin-bottom: 30px;
    text-decoration: underline;
  }
  
  /*右下SNSボタン*/
  .sns-b {
    height: 0;
    z-index: 10;
  }
  
  .abc1 {
    position: fixed;
    bottom: 10px;
    right: 10px;
  }
  
  .abc2 {
    position: fixed;
    bottom: 80px;
    right: 10px;
  }
  
  .abc3 {
    position: fixed;
    bottom: 150px;
    right: 10px;
  }
  
  .abc4 {
    position: fixed;
    bottom: 220px;
    right: 10px;
  }
  
  /* SNSボタン全体 */
  .sns-button {
    padding: 0;
    text-align: center;
    list-style: none;
    overflow: visible;
  }
  
  /* 各 SNS ボタンのボックス */
  .sns-button li {
    display: inline-block;
    margin: 20px;
    padding:0px;
    height: 70px;
    width: 90px;
    vertical-align: top;
  }
  
  .sns-button li a {
    color: #ffffff;
    text-decoration: none;
  }
  
  .sns-button li a::before {
    display: inline-block;
    font-family: FontAwesome;
    /*変えない！！*/
    font-size: 20px;
    background-color: var(--color1);
    border-radius: 50px;
    transition: all .3s ease;
    text-align: center;
    line-height: 50px;
    width: 50px;
    border: 0.1px solid transparent;
    border-color: #EFDC8E;
    box-shadow: 0px 0px 10px #fff;
    margin:auto 0;
  }
  
  
  .sns-button li a[href*="x.com"]::before {
    content: "\f099";
    color: #333;
  }
  
  .sns-button li a[href*="youtube.com"]::before {
    content: "\f16a";
    color: #333;
  }
  
  .sns-button li a[href*="instagram.com"]::before {
    content: "\f16d";
    color: #333;
  }
  
  .sns-button li a[href*="tiktok.com"]::before {
    content: "\e07b";
    color: #333;
  }
  
  /*#55acee*/
  /*#cd201f*/
  /*#CF2E92*/
  /*#6cc755*/
  
  .sns-button li a[href*="x.com"]:hover::before {
    background-color: var(--color4);
    color: var(--color3);
    box-shadow: 0px 0px 20px #fff;
  }
  
  .sns-button li a[href*="youtube.com"]:hover::before {
    background-color: var(--color4);
    color: var(--color3);
    box-shadow: 0px 0px 20px #fff;
  }
  
  .sns-button li a[href*="instagram.com"]:hover::before {
    background-color: var(--color4);
    color: var(--color3);
    box-shadow: 0px 0px 20px #fff;
  }
  
  .sns-button li a[href*="tiktok.com"]:hover::before {
    background-color: var(--color4);
    color: var(--color3);
    box-shadow: 0px 0px 20px #fff;
  }



/*デフォルトのマウスカーソルを非表示にする*/
/*html,
body,
a {
  cursor:none;
}*/

/*独自のマウスカーソルを作成*/
@media (min-width: 414px) {
    .cursor {
        position: fixed;
        top: -5px;
        left: -5px;
        width: 20px;
        height: 20px;
        border-radius: 50%;
        background: var(--cursor);
        box-shadow: 0px 0px 10px var(--cursor);
        z-index: 90;
        transition: width 0.5s, height 0.5s, top 0.5s, left 0.5s;
        transform: translate(0, 0);
        pointer-events: none;
    }

    /*aタグにホバーした時に見た目変化*/
    .cursor.cursor--hover {
        top: -20px;
        left: -20px;
        width: 40px;
        height: 40px;
        background: var(--cursor);
    }
}


#hamburger {
    cursor: none;
    display: block;
    position: fixed;
    z-index: 50;
    top: 1rem;
    right: 1rem;
    background: transparent;
    width: 3rem;
    height: 2.8rem;
    border: none;
}

@media (max-width: 414px) {
    .menu {
        position: fixed;
        top: 0;
        right: -100%;
        z-index: 50;
        width: 100%;
        height: 100%;
        background: var(--color2);
        transition: all 400ms cubic-bezier(1.000, 0.000, 0.000, 1.000);

        & ul {
            padding-top: 10rem;
            list-style: none;

            & li a {
                font-size: 2.5rem;
                line-height: 4rem;
                letter-spacing: .65rem;
                color: #fff;
                text-decoration: none;
                margin-bottom: 4rem;
            }
        }
    }
}

@media (min-width: 415px) {
    .menu {
        position: fixed;
        top: 0;
        right: -100%;
        z-index: 50;
        width: 100%;
        height: 100%;
        background: var(--color2);
        transition: all 400ms cubic-bezier(1.000, 0.000, 0.000, 1.000);

        & ul {
            padding-top: 10rem;
            list-style: none;
            text-align: center;

            & li a {
                font-size: 3rem;
                line-height: 6rem;
                letter-spacing: .4rem;
                color: #fff;
                text-decoration: none;
                margin-bottom: 4rem;
            }
        }
    }
}

.menu li {
    z-index: 100;
}

.menu img {
    max-width: 100%;
    position: fixed;
    bottom: 0px;
    opacity: 0.03;
    box-shadow: 0px -30px 30px #fff;
    z-index: -30;
}


.drawer-opened {
    & .menu {
        right: -10%;
    }
}

.imga {
    position: fixed;
    top: 0;
    right: 0%;
    z-index: -10;
    width: 10%;
    max-width: 60px;
    height: auto;
    margin-top: 1rem;
    transition: all 400ms cubic-bezier(1.000, 0.000, 0.000, 1.000);
    border-radius: 25% 0 0 25%;
    background-color: var(--color1);
    border-top: 1px solid #a19300;
    border-left: 1px solid #a19300;
    border-bottom: 1px solid #a19300;
    box-shadow: 0px 0px 10px #fff;
    opacity: 1;
}

.imgb {
    position: fixed;
    top: 0;
    right: 0%;
    z-index: -10;
    width: 10%;
    max-width: 60px;
    height: auto;
    margin-top: 1rem;
    transition: all 400ms cubic-bezier(1.000, 0.000, 0.000, 1.000);
    opacity: 0;
    border-radius: 25% 0 0 25%;
    background-color: var(--color2);
    border-top: 1px solid #a19300;
    border-left: 1px solid #a19300;
    border-bottom: 1px solid #a19300;
}

.drawer-opened {
    & .imga {
        right: 90%;
        opacity: 0;
    }

    & .imgb {
        right: 90%;
        opacity: 1;
    }
}




.background-container {
    height: 100%;
    z-index: -100;
}

.stars {
    background: black url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/1231630/stars.png) repeat;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    display: block;
    z-index: -100;
}

.twinkling {
    width: 10000px;
    height: 100%;
    background: transparent url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/1231630/twinkling.png") repeat;
    background-size: 1000px 1000px;
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    z-index: -100;

    -moz-animation: move-background 70s linear infinite;
    -ms-animation: move-background 70s linear infinite;
    -o-animation: move-background 70s linear infinite;
    -webkit-animation: move-background 70s linear infinite;
    animation: move-background 70s linear infinite;

}

.clouds {
    width: 10000px;
    height: 100%;
    background: transparent url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/1231630/clouds_repeat.png") repeat;
    background-size: 1000px 1000px;
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    z-index: -100;
    opacity: 0.5;

    -moz-animation: move-background 150s linear infinite;
    -ms-animation: move-background 150s linear infinite;
    -o-animation: move-background 150s linear infinite;
    -webkit-animation: move-background 150s linear infinite;
    animation: move-background 150s linear infinite;
}

.moon {
    height: auto;
    width: 50%;
    position: absolute;
    z-index: -90;
    right: 20px;
    opacity: 0.1;
}



/*----------------------------
scroll_up ｜下から上へ出現
----------------------------*/
.scroll_up {
    transition: 0.8s ease-in-out;
    transform: translateY(30px);
    opacity: 0;
}

.scroll_up.on {
    transform: translateY(0);
    opacity: 1.0;
}


/*----------------------------
scroll_left ｜左から出現
----------------------------*/
.scroll_left {
    -webkit-transition: 0.8s ease-in-out;
    -moz-transition: 0.8s ease-in-out;
    -o-transition: 0.8s ease-in-out;
    transition: 0.8s ease-in-out;
    transform: translateX(-30px);
    opacity: 0;
    filter: alpha(opacity=0);
    -moz-opacity: 0;
}

.scroll_left.on {
    opacity: 1.0;
    filter: alpha(opacity=100);
    -moz-opacity: 1.0;
    transform: translateX(0);
}

/*----------------------------
scroll_right ｜右から出現
----------------------------*/
.scroll_right {
    -webkit-transition: 0.8s ease-in-out;
    -moz-transition: 0.8s ease-in-out;
    -o-transition: 0.8s ease-in-out;
    transition: 0.8s ease-in-out;
    transform: translateX(30px);
    opacity: 0;
    filter: alpha(opacity=0);
    -moz-opacity: 0;
}

.scroll_right.on {
    opacity: 1.0;
    filter: alpha(opacity=100);
    -moz-opacity: 1.0;
    transform: translateX(0);
}




#loading-wrapper {
    position: fixed;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    z-index: 100;

}

canvas {
    width: 100vmax;
    height: 100vmax;
    margin-left: 50vw;
    margin-top: 50vh;
    transform: translate(-50%, -50%);
    position: absolute;
}

#loading-text {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    color: #999;
    width: 100px;
    height: 30px;
    margin: -7px 0 0 -45px;
    text-align: center;
    font-family: serif;
    font-size: 20px;
    z-index: 100;
}

#loading-content {
    display: block;
    position: relative;
    left: 50%;
    top: 50%;
    width: 170px;
    height: 170px;
    margin: -85px 0 0 -85px;
    border: 3px solid #F00;
}

#loading-content:after {
    content: "";
    position: absolute;
    border: 3px solid #0F0;
    left: 15px;
    right: 15px;
    top: 15px;
    bottom: 15px;
}

#loading-content:before {
    content: "";
    position: absolute;
    border: 3px solid #00F;
    left: 5px;
    right: 5px;
    top: 5px;
    bottom: 5px;
}

#loading-content {
    border: 3px solid transparent;
    border-top-color: #2F8272;
    border-bottom-color: #2F8272;
    border-radius: 50%;
    -webkit-animation: loader 2s linear infinite;
    -moz-animation: loader 2s linear infinite;
    -o-animation: loader 2s linear infinite;
    animation: loader 2s linear infinite;
}

#loading-content:before {
    border: 3px solid transparent;
    border-top-color: #E71F19;
    border-bottom-color: #E71F19;
    border-radius: 50%;
    -webkit-animation: loader 3s linear infinite;
    -moz-animation: loader 2s linear infinite;
    -o-animation: loader 2s linear infinite;
    animation: loader 3s linear infinite;
}

#loading-content:after {
    border: 3px solid transparent;
    border-top-color: #EFDC8E;
    border-bottom-color: #EFDC8E;
    border-radius: 50%;
    -webkit-animation: loader 1.5s linear infinite;
    animation: loader 1.5s linear infinite;
    -moz-animation: loader 2s linear infinite;
    -o-animation: loader 2s linear infinite;
}


.load img {
    max-width: 100%;
    position: fixed;
    bottom: 0px;
    opacity: 0.03;
    box-shadow: 0px -30px 30px #fff;
}



@keyframes loader {
    0% {
        -webkit-transform: rotate(0deg);
        -ms-transform: rotate(0deg);
        transform: rotate(0deg);
    }

    100% {
        -webkit-transform: rotate(360deg);
        -ms-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

#content-wrapper {
    color: #FFF;
    position: fixed;
    left: 0;
    top: 20px;
    width: 100%;
    height: 100%;
}

#header {
    width: 800px;
    margin: 0 auto;
    text-align: center;
    height: 100px;
    background-color: #666;
}

#content {
    width: 800px;
    height: 1000px;
    margin: 0 auto;
    text-align: center;
    background-color: #888;
}