:root {
  --color1: #030303;
  --color2: #2b0307;
  --color3: #75020f;
  --color4: #2b0307;
  --cursor: #5f1a1ab5;
}

html {
  scroll-behavior: smooth;
}

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;
}

p {
  font-size: clamp(1rem, calc(0.75rem + 1vw), 1.5rem);
}

.top {
  width: 100%;
  text-align: center;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
}



/*ヘッド画像*/
.img_wrap img {
  display: block;
  max-width: 100%;
  max-height: 100vh;
  position: relative;
  top: 50%;
  left: 50%;
  translate: -50%;
}




/*サイトタイトル*/
h1 {
  margin: 20px;
  font-size: 25px;
  font-style: normal;
  text-shadow: 5px 5px 10px var(--color2);
  text-align: center;
  color: #a9a9a9;
  position: absolute;
  top: 0;
}

/*セクションタイトル*/
.outer {
  margin: 25px;

  display: flex;
  justify-content: center;
}

.tag {
  display: flex;
  align-items: center;
}

/*画面幅が414px以下*/
@media (max-width: 414px) {
  h2 {
    margin: 20px 10px;


    /* 'Teko', sans-*/
    font-style: normal;
    color: #fff;
    text-shadow: 1px 1px 5px #9d9d9d;
  }

  .soon {
    text-shadow: 1px 1px 5px #000;

  }

  .moon {
    height: auto;
    width: 50%;
    position: fixed;
    z-index: -90;
    top: 20px;
    right: 20px;
    opacity: 0;
    transition: 0.5s;
  }

  .soon:hover .moon {
    height: auto;
    width: 40vw;
    position: fixed;
    top: 50px;
    right: 20px;
    opacity: 0.1;
    transition: 0.5s;
  }

  .tag img {
    width: 80px;
    margin: 3px;
  }
}

/*画面幅が415px以上*/
@media (min-width: 415px) {
  h2 {
    margin: 20px 10px;
    font-size: 40px;

    /* 'Teko', sans-*/
    font-style: normal;
    color: #fff;
    text-shadow: 1px 1px 5px #9d9d9d;
    background-image: url(../image/umeeda.png);
  }

  .soon {
    text-shadow: 1px 1px 5px #000;
  }

  .moon {
    height: auto;
    width: 50%;
    position: fixed;
    z-index: -90;
    top: 20px;
    right: 20px;
    opacity: 0;
    transition: 0.5s;
  }

  .soon:hover .moon {
    height: auto;
    width: 30vw;
    position: fixed;
    top: 20px;
    right: 20px;
    opacity: 0.1;
    transition: 0.5s;
  }

  .tag img {
    width: 200px;
  }
}



/*View more*/
.music {
  text-align: end;
  margin-bottom: 50px;
}

.music a {
  color: #fff;
  text-decoration: underline;
  margin: 0 20px;
  margin-bottom: 10px;
  align-items: end;
  text-shadow: 1px 1px 5px #9d9d9d;
}



/*ニュース*/
.news {
  margin: 0px 20px;
  height: auto;
  border-top: 1px solid #a8a8a8;
  border-bottom: 1px solid #a8a8a8;
  text-decoration: none;
}

.news .block {
  display: block;
  width: 100%;
  height: 100%;
  z-index: 30;
  margin: 10px 20px;
  text-decoration: none;
}

.news .newstext {
  text-decoration: none;
  color: #fff;
  margin: 0 40px;
}



/*ユーチューブ*/
.youtube {
  margin: 20px;
  display: flex;
  justify-content: center;
}

.youtube iframe {
  display: block;
  aspect-ratio: 5/3;
  width: 80%;
  height: auto;
  max-width: 500px;
  max-height: 300px;
}



/*オリジナル音楽*/
.wrap {
  display: flex;
  overflow-x: scroll;
  margin: 10px;
  z-index: 0;
}

.wrap::-webkit-scrollbar {
  width: 5px;
  height: 10px;

}

.wrap::-webkit-scrollbar-track {
  background-color: #000;
  border-radius: 16px;
}

.wrap::-webkit-scrollbar-thumb {
  background-color: var(--color2);
  border-radius: 8px;
}

.list {
  display: flex;
  list-style: none;
  padding: 0;
}

/*各曲*/
.item {
  width: 240px;
  /*calc(100vw / 6)*/
  height: 340px;
  margin: 0 10px;
  background-color: #2b0307;
  position: relative;
  overflow: hidden;
  transition-duration: .4s;
}

.item:hover {
  transform: scale(0.9);
  box-shadow: 0px 0px 20px #fff;
}

.item a {
  text-decoration: none;
  color: #fff;
}

.text {
  width: 100%;
  height: 30%;
  position: absolute;
  bottom: 0;
  background-color: var(--color3);
  padding: 10px;
  text-align: center;
}

/*音楽タイトル＆プロフィールの名前*/
h3 {
  margin-bottom: 10px;
  color: #fff;
  height: 20%;
}

.item img {
  position: absolute;
  max-width: 70%;
  top: 30%;
  left: 50%;
  translate: -50% -50%;
  border-radius: 10px;
}

/*・・・*/
.ppp {
  margin: auto 0px;
}




/*プロフィール*/

.ptext {
  max-width: 100%;
  margin: 20px 30px;
}

.ptext p {
  margin: 0 20px;
}

.card {
  width: 90%;
  margin: auto;
  margin-bottom: 20px;
  display: flex;
}

.card img {
  width: 20vw;
  height: 20vw;
  margin: 20px;
  border-radius: 100px;
  box-shadow: 0px 1px 20px var(--color4);
}

.card h3 {
  text-align: center;
  font-size: 4vw;
  margin: 5px;
  text-decoration: none;

  color: #fff;
}

@media(max-width:414px) {
  .card .texts li {
    font-size: 10px;
    list-style: none;
    margin-top: 20px;
  }
}

.card .texts li {
  font-size: 2.5vw;
  list-style: none;
  margin-top: 20px;
}

.card a {
  color: #fff;
}

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: 1000;
    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: 2;
  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: 1;
    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: 1;
    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;
      }

      & li {
        transition: transform 0.3s ease-in;
      }

      & li:hover {
        transform: scale(1.1);
      }
    }
  }
}

.menu img {
  max-width: 100%;
  position: fixed;
  bottom: 0px;
  opacity: 0.03;
  box-shadow: 0px -30px 30px #fff;
  z-index: -30;
}



/*鳥居*/
.imga {
  position: fixed;
  top: 0;
  right: 0%;
  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;
}

/*富士山*/
.imgb {
  position: fixed;
  top: 0;
  right: 0%;
  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 {
  & .menu {
    right: -10%;
  }

  & .imga {
    right: 90%;
    opacity: 0;
  }

  & .imgb {
    right: 90%;
    opacity: 1;
  }
}











/*-----------------------------------
sakura_block
-----------------------------------*/
#sakura_block {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -100;
  opacity: 0.1;
}

#sakura_block .sakura_parts_box {
  position: relative;
}

#sakura_block .sakura_parts_box img {
  position: absolute;
}

#sakura_block .sakura_parts_box img:nth-child(2n+1) {
  width: 13px;
  /*花びらのサイズ*/
}

#sakura_block .sakura_parts_box img:nth-child(2n) {
  width: 15px;
  /*花びらのサイズ*/
}

/*-----------------------------------
桜の花びらパーツの表示位置
-----------------------------------*/
img.parts_01 {
  top: 0;
  left: 5%;
}

img.parts_02 {
  top: 0;
  left: 12%;
}

img.parts_03 {
  top: 0;
  left: 15%;
}

img.parts_04 {
  top: 0;
  left: 22%;
}

img.parts_05 {
  top: 0;
  left: 25%;
}

img.parts_06 {
  top: 0;
  left: 28%;
}

img.parts_07 {
  top: 0;
  left: 35%;
}

img.parts_08 {
  top: 0;
  left: 40%;
}

img.parts_09 {
  top: 0;
  left: 43%;
}

img.parts_10 {
  top: 0;
  left: 50%;
}

img.parts_11 {
  top: 0;
  left: 55%;
}

img.parts_12 {
  top: 0;
  left: 60%;
}

img.parts_13 {
  top: 0;
  left: 63%;
}

img.parts_14 {
  top: 0;
  left: 70%;
}

img.parts_15 {
  top: 0;
  left: 75%;
}

img.parts_16 {
  top: 0;
  left: 81%;
}

img.parts_17 {
  top: 0;
  left: 85%;
}

img.parts_18 {
  top: 0;
  left: 90%;
}

img.parts_19 {
  top: 0;
  left: 93%;
}


/*-----------------------------------
舞い散るアニメーション
回転しつつ上から下へ
-----------------------------------*/
@keyframes sakura {
  0% {
    opacity: 0;
  }

  20% {
    transform: translate(3px, 30px) rotate(20deg);
    opacity: 1;
  }

  30% {
    transform: translate(0, 50px) rotate(50deg);
  }

  50% {
    transform: translate(-20px, 100px) rotate(150deg);
  }

  70% {
    transform: translate(-40px, 150px) rotate(-50deg);
    opacity: .8;
  }

  90% {
    transform: translate(-60px, 200px) rotate(-180deg);
  }

  100% {
    transform: translate(-70px, 230px);
    opacity: 0;
  }
}

.sakura_parts_box img {
  animation: sakura linear 6s infinite;
  /*アニメーションが始まるまで画像を見えなくしておく*/
  opacity: 0;
}

/*-----------------------------------
アニメーションが始まるまでの時間
-----------------------------------*/
img.parts_01, img.parts_04, img.parts_07, img.parts_10, img.parts_08, img.parts_11, img.parts_13, img.parts_16, img.parts_19 {
  -webkit-animation-delay: 0s;
  animation-delay: 0s;
}

img.parts_02, img.parts_05 {
  -webkit-animation-delay: 1.5s;
  animation-delay: 1.5s;
}

img.parts_03, img.parts_06, img.parts_09, img.parts_12 {
  -webkit-animation-delay: 4s;
  animation-delay: 4s;
}

img.parts_08, img.parts_11, img.parts_13, img.parts_16, img.parts_19 {
  -webkit-animation-delay: 0.5s;
  animation-delay: 0.5s;
}

img.parts_14, img.parts_17 {
  -webkit-animation-delay: 2s;
  animation-delay: 2s;
}

img.parts_15, img.parts_18 {
  -webkit-animation-delay: 5s;
  animation-delay: 5s;
}


/*----------------------------
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);
}



/*ローディング画面*/
* {
  border: 0;
  margin: 0;
  padding: 0;
}

#lbody {
  position: fixed;
  background-color: #ccd2d7;
  background-image: -moz-radial-gradient(center, cover, #444 0%, #292929 100%);
  background-image: -webkit-gradient(radial, center center, 0, center center, 500, from(#444), to(#292929));
  height: 100%;
  z-index: 1000;
  width: 100%;
}

ul {
  list-style-type: none;
}

.loadingwrapper {
  width: 500px;
  height: 500px;
  margin: auto;
  position: relative;
}

.innerpoint {
  margin: auto;
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -5px 0 0 -5px;
  width: 10px;
  height: 10px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  background: #fff;
  -webkit-box-shadow: 0px 0px 20px #fff;
  -moz-box-shadow: 0px 0px 20px #fff;
  box-shadow: 0px 0px 20px #fff;
  -webkit-animation-name: pulse;
  -webkit-animation-duration: 3s;
  -webkit-animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
  opacity: 0.9;
}

.circle {
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -20px 0 0 -20px;
  width: 40px;
  height: 40px;
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  border-radius: 20px;
  -webkit-animation-name: rotate;
  -webkit-animation-duration: 1.6s;
  -webkit-animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
}

.circle span {
  position: absolute;
  margin: -20px 0 0 -20px;
  width: 40px;
  height: 40px;
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  border-radius: 20px;
  -webkit-animation-duration: 2s;
  -webkit-animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;

}

.circle1 span {
  top: 18px;
  left: 18px;
  -webkit-animation-name: circle-violett-big;
  z-index: 9;
}

.circle2 span {
  top: 14px;
  left: 14px;
  -webkit-animation-name: circle-white-big;
  z-index: 2;
}

.circle3 span {
  top: 10px;
  left: 10px;
  -webkit-animation-name: circle-violett-big;
  z-index: 7;
}

.circle4 span {
  top: 15px;
  left: 10px;
  -webkit-animation-name: circle-white-small;
  z-index: 5;
}

.circle5 span {
  top: 18px;
  left: 18px;
  -webkit-animation-name: circle-violett-small;
  z-index: 10;
}

@-webkit-keyframes rotate {
  from {
    -webkit-transform: rotate(0deg)
  }

  to {
    -webkit-transform: rotate(360deg)
  }
}

@-webkit-keyframes pulse {
  from {
    -webkit-transform: scale(0.7)
  }

  50% {
    -webkit-transform: scale(1)
  }

  to {
    -webkit-transform: scale(0.7)
  }
}

@-webkit-keyframes circle-white-big {
  from {
    -webkit-transform: scale(0.7);
    -webkit-box-shadow: 0px 0px 5px #fff, inset 0px 0px 5px #fff;
    opacity: 1;
  }

  50% {
    -webkit-transform: scale(1.3);
    -webkit-box-shadow: 0px 0px 10px #fff, inset 0px 0px 10px #fff;
    opacity: 0.5;
  }

  to {
    -webkit-transform: scale(0.7);
    -webkit-box-shadow: 0px 0px 5px #fff, inset 0px 0px 5px #fff;
    opacity: 1;
  }
}

@-webkit-keyframes circle-white-small {
  from {
    -webkit-transform: scale(0.6);
    -webkit-box-shadow: 0px 0px 5px #fff, inset 0px 0px 5px #fff;
    opacity: 1;
  }

  50% {
    -webkit-transform: scale(0.9);
    -webkit-box-shadow: 0px 0px 10px #fff, inset 0px 0px 10px #fff;
    opacity: 0.5;
  }

  to {
    -webkit-transform: scale(0.6);
    -webkit-box-shadow: 0px 0px 5px #fff, inset 0px 0px 5px #fff;
    opacity: 1;
  }
}

@-webkit-keyframes circle-violett-small {
  from {
    -webkit-transform: scale(0.6);
    -webkit-box-shadow: 0px 0px 5px #8a639e, inset 0px 0px 5px #8a639e;
    opacity: 1;
  }

  50% {
    -webkit-transform: scale(0.9);
    -webkit-box-shadow: 0px 0px 10px #8a639e, inset 0px 0px 10px #8a639e;
    opacity: 0.5;
  }

  to {
    -webkit-transform: scale(0.6);
    -webkit-box-shadow: 0px 0px 5px #8a639e, inset 0px 0px 5px #8a639e;
    opacity: 1;
  }
}

@-webkit-keyframes circle-violett-big {
  from {
    -webkit-transform: scale(0.7);
    -webkit-box-shadow: 0px 0px 5px #8a639e, inset 0px 0px 5px #8a639e;
    opacity: 1;
  }

  50% {
    -webkit-transform: scale(1.3);
    -webkit-box-shadow: 0px 0px 10px #8a639e, inset 0px 0px 10px #8a639e;
    opacity: 0.5;
  }

  to {
    -webkit-transform: scale(0.7);
    -webkit-box-shadow: 0px 0px 5px #8a639e, inset 0px 0px 5px #8a639e;
    opacity: 1;
  }
}



/*翻訳*/
.language-selector {
  position: fixed;
  bottom: 20px;
  left: 20px;
  background: rgba(0, 0, 0, 0.7);
  padding: 10px;
  border-radius: 10px;
  box-shadow: 0px 0px 10px rgba(255, 255, 255, 0.5);
  z-index: 100;
}

.language-selector button {
  background: transparent;
  border: 1px solid white;
  color: white;
  padding: 5px 10px;
  margin: 5px;
  cursor: pointer;
  transition: 0.3s;
}

.language-selector button:hover {
  background: white;
  color: black;
}
