@charset "utf-8";
html {
    font-size: 62.5%;
}
body {
    font-family:
        'Noto Serif JP', serif,
        'Noto Sans JP',
        Arial,
        sans-serif;
    font-style: normal;
    font-weight: 500;
    background-color: var(--primary-white, #020014);
    color: #ffff;
    line-height: 1.5;
}
.img {
  max-width: 100%;
  height: auto;
}
*{
  margin: 0;
  padding: 0;
}





/*====================================================================
セクショントピック
====================================================================*/
.section-topics{
    justify-content: center;
    margin-top: 96px;
}
.section-topic{
    text-align: center;
    font-size: 2rem;
}
.section-topic-span{
  font-size: 1.2rem;
  display: block;
  text-align: center;
}
.diamond {
    width: 4px;
    height: 4px;
    border: 1px solid#fff;
    transform: rotate(45deg);
    position: relative;
    display: flex;
    flex-direction: column;
}


/* PC 769px */
@media screen and (min-width: 769px) {
  .section-topics{
    display: flex;
    margin-left: 9%;
    justify-content: left;
}
.section-topic{
    writing-mode: vertical-rl;
    font-size: 2.4rem;
    letter-spacing: 0.4em;
    margin: 0;
}
.diamond{
  margin-bottom: 9px;
  width: 5px;
  height: 5px;
}
.section-topic-span{
  font-size: 1.2rem;
  margin-top: 4px;
  margin-left: -12px;
  writing-mode: vertical-rl;
  text-orientation: upright;
  letter-spacing: 0.4em;
  text-align: start;
}
}



/*====================================================================
Header(NAVMENU)
====================================================================*/
.nav{
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  transform: translateX(-100%);
  transition: transform 0.4s;
  background-color: black;
}
.header-menu-btn{
  display: block;
  width: 55px;
  height: 55px;
  margin: 0 0 0 auto;
}
.nav-btn{
  display: block;
  width: 55px;
  height: 55px;
  margin: 0 0 0 auto;
}
.navlist{
  writing-mode: vertical-rl;
  list-style: none;
  margin: auto;
  margin-top: 120px;
}
.navitem{
  margin-top: 42px;
  letter-spacing: 0.4em;
  font-size: 1.8rem;
  color: #fff;
  text-decoration-line: none;
  line-height: 2.75;
}
.nav-logo{
  width: 45px;
  height: 120px;
  margin-top: 84px;
  margin-left: 20px;
}
.header{
  width: fit-content;
  position: fixed;
  z-index: 11;
  right: 0;
  background: rgba(0,0,0,0);
}


/* .nav.active表示 */
.nav.active {
  transform: translateX(0);
}

/* PC 769px */
@media screen and (min-width: 769px) {
  .navlist{
    margin-top: 20vh;
    line-height: 7.75;
  }
  .navitem{
    font-size: 2rem;
  }
  .nav-logo{
    width: 80px;
    height: 230px;
    margin-top: -48px;
    margin-left: 40px;
  }
}


.navitem:hover {
  color: #FFFFFF;
  opacity: 0.7;
}



/*====================================================================
About
====================================================================*/
.about-top-img{
  width: 100vw;
  position: relative;
}
.about-top-seirei{
  max-width: 11vw;
  display: block;
  position: absolute;
  margin-top: -20%;
  margin-left: 73vw;
  
}
.about-span{
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 12px;
  margin-bottom: 8px;
}
.a-line{
    border-bottom:1px solid#fff;
    padding: 0px 8px 0px 0px;
    width: 172px;
    margin-left: 4px;
}
.about-txt-txt{
    text-align: center;
    font-size: 1.4rem;
    margin-top: 32px;
    font-weight: lighter;
    padding: 0px 13.6%;
    text-align: left;
}
.about-txt-topic-1{
  font-size: 1.6rem;
  margin-right: 40%;
}
.about-txt-topic-2{
  font-size: 1.6rem;
  margin-left: 17%;
}
.about-txt{
  text-align: center;
  margin-top: 64px;
}
.o{
  display: block;
  width: 304px;
  margin: 0 auto
}



/* 精霊ちゃんアニメーション */
.about-top-seirei {
  animation: fuwafuwa 3s ease-in-out infinite alternate;
}
 
@keyframes fuwafuwa {
  0% {
    transform:translate(0, 0) rotate(-7deg);
  }
  50% {
    transform:translate(0, -7px) rotate(0deg);
  }
  100% {
    transform:translate(0, 0) rotate(7deg);
  }
}


/* PC 769px */
@media screen and (min-width: 769px) {
  .diamond{
    width: 5px;
    height: 5px;
  }
  .a-line{
    border-bottom: none;
    width: 0;
    border-right:1px solid#fff;
    padding: 0px 3px 0px 7px;
    margin-right: 13px;
    height: 148px;
    margin-top: -3px;
  }
  .about-span{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0px 16px 0px 16px;
    margin-top: -8px;
  }
  .about-txt{
    margin-top: -112px;
    padding: 0 18%;
  }
  .about-txt-topic-1{
    margin-right: 45%;
  }
  .about-txt-topic-2{
    margin-left: 27%;
  }
  .about-txt-topic-1,
  .about-txt-topic-2{
    font-size: 2.4rem;
    font-weight: lighter;
  }
  .about-txt-txt{
    font-size: 1.6rem;
    margin-top: 64px;
    margin-left: 40px;
  }
  .o{
    display: block;
    width: 583px;
    margin: 0 auto
  }
}




/* about-profil */
.prfl-img{
  width: 260px;
  height: 260px;
  margin: 0 auto;
  margin-top: 106px;
}
.about-prfl-name{
font-size: 2rem;
margin-top: 42px;
}
.p-line{
border-bottom:1px solid#fff;
padding: 0px 8px 0px 0px;
width: 70%;
margin-left: 4px;
}
.p-line2{
border-bottom:1px solid#fff;
padding: 0px 8px 0px 0px;
width: 70%;
margin-right: 4px;
}
.about-prfl-span{
display: flex;
align-items: center;
justify-content: center;
margin-top: 12px;
}
.about-prfl-span2{
display: flex;
align-items: center;
justify-content: center;
margin-top: 16px;
}
.about-prfl{
text-align: center;
position: relative;
z-index: 1;
}
.about-prfl-txt{
font-size: 1.4rem;
text-align: left;
padding: 0px 13.6%;
margin-top: 16px;
}

.prfl-sns{
display: flex;
margin-left: 13%;
margin-top: 12px;
}
.sns{
font-size: 1.4rem;
}
.prfl-x{
width: 34px;
height: 34px;
margin-left: 12px;
}





/* PC 900px */
@media screen and (min-width: 900px) {
  .p-line{
    margin-left: 9px;
    margin-top: -9px;
  }
  .p-line2{
    margin-right: 9px;
    margin-top: -3px;
  }
  .prfl-img{
    width: 350px;
    height: 350px;
    margin-top: 0;
  }
  .about-prfl{
    display: flex;
    align-items: center;
    padding: 142px 15%;
    justify-content: center;

  }
  .about-prfl-name{
    font-size: 2.4rem;
    margin-top: 0;
  }
  .about-prfl-txt{
    font-size: 1.6rem;
  }
  .about-prfl-txts{
    margin-left: 0;
  }
  .prfl-x{
    width: 46px;
    height: 46px;
    margin-left: 16px;
  }
  .sns{
    margin-top: 8px;
  }
}





/*====================================================================
年表
====================================================================*/
.timeline{
  text-align: center;
  position: relative;
}
.timeline-img{
  width: 70vw;
  object-fit: cover;
}
.timeline-date{
  font-size: 2rem;
  font-weight: 400;
  margin-top: 16px;
}
.timeline-txt{
  font-size: 1.4rem;
  font-weight: 400;
  margin-top: 8px;
}
.timeline ul{
  list-style: none;
  border-left:1px solid#fff;
  margin-left: 35px;
}
.timeline-item{
  margin-left: 24px;
  margin-top: 96px;
}
.timeline-content{
  display: block;
  width: 70vw;
  margin: 0 auto;
  text-align: left;
}


/* 年表重なり アニメーション */
.js-scroll-overlap {
  padding: 50% 0;
  position: relative;
  background-color: #020014;
  /* background-image: url(../imeges/top-spgb.png); */
  background-size: cover;
  background-attachment: fixed;
  background-repeat: no-repeat;
  background-position: 34%;
}
.js-scroll-overlap:not(.is-disabled) {
  --sticky-offset: -1px;
  --overlay-opacity: 0;
  position: sticky;
  top: var(--sticky-offset);
}
.js-scroll-overlap[data-is-overlay="true"]:not(.is-disabled)::after {
  content: "";
  opacity: var(--overlay-opacity);
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.8);
  pointer-events: none;
}
.js-scroll-overlap[data-is-overlay="true"]:not(.is-disabled).is-active::after {
  will-change: opacity;
}
.relative {
  position: relative;
}


/* PC 769px */
@media screen and (min-width: 769px) {
  .js-scroll-overlap{
    display: flex;
    padding: 180px 13% 180px 13%;
    height: 22vw;
  }
  .timeline-img{
    width: 37vw;
  }
  .timeline-date{
    font-size: 2.4rem;
  }
  .timeline-txt{
    font-size: 1.6rem;
  }
  .timeline-content{
    margin-left: 42px;
    width: 470px;
  }
}


/*====================================================================
フッター
====================================================================*/
.neko2{
  width: 238px;
  display: block;
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 10;
}
.footer{
  height: 529px;
  background-color: #042443;
}
.footer-logo{
  width: 124px;
  height: 45px;
  display: block;
  margin: auto;
  padding-top: 72px;
}
.footer-navlist{
  writing-mode: vertical-rl;
  list-style: none;
  margin: auto;

}
.footer-navitem{
  margin-top: 42px;
  letter-spacing: 0.4em;
  font-size: 1.8rem;
  color: #fff;
  text-decoration-line: none;
  line-height: 2.75;
}
.footer-sns{
  text-align: center;
}
.footer-sns-item{
  align-items: center;
  width: 65px;
  height: 65px;
  padding: 32px 10px 10px 0px;
}
.footer-sns-item:not(:last-child){
  padding-right: 20px;
}
.copy{
  font-size: 1.4rem;
  text-align: center;
  margin-top: 16px;
}



/* PC 769px */
@media screen and (min-width: 769px) {
  .footer{
    height: 589px;
  }
  .footer-navitem{
    font-size: 2rem;
  }
  .neko2{
    width: 350px;
  }
  .footer-logo{
    width: 188px;
    height: 72px;
  }
}



/* スクロールトップ */
.pagetop {
  height: 45px;
  width: 45px;
  position: fixed;
  right: 8px;
  bottom: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 2;
}

.pagetop__arrow {
  height: 12px;
  width: 12px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: translateY(20%) rotate(-45deg);
}
.pagetop2__arrow {
  height: 12px;
  width: 12px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  margin-top: 16px;
  transform: translateY(20%) rotate(-45deg);
}

.is-active {
  opacity: 1;
  visibility: visible;
}
.maki-qa-items{
  position: fixed;
  display: block;
  bottom: 20px;
  justify-content: center;
  align-items: center;
  z-index: 2;
  margin-left: 12px;
}
.maki-qa{
  height: 65px;
  margin-left: 16px;
  margin-bottom: 12px;
}
.maki-qa-txt{
  width: 80px;
  margin-left: -64px;
}

  

/* PC 769px */
@media screen and (min-width: 769px) {
  .maki-qa-items{
    margin-left: 20px;
  }
  .maki-qa{
    height: 84px;
    margin-left: 13px;
  }
  .maki-qa-txt{
  width: 90px;
  margin-left: -75px;
}
.pagetop__arrow {
  height: 16px;
  width: 16px;
}
.pagetop2__arrow {
  height: 16px;
  width: 16px;
}

}




/* 背景星 */
.star-flashing {
	width: 100%;
	/* height: 100vh; */
	position: relative;
}
.star-flashing::before,
.star-flashing::after {
	width: 100%;
	height: 100%;
	content: "";
	background-image: url('../imeges/bg-star1.png');
  background-attachment: fixed;
	background-size: cover;
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
}
.star-flashing::before {
	animation: star-flashing-before 10s infinite;
	opacity: 1;
}
@keyframes star-flashing-before {
	0% {
		opacity: 1;
	}
	50% {
		opacity: 0;
	}
	60% {
		opacity: 1;
	}
	90% {
		opacity: 0;
	}
	95% {
		opacity: 1;
	}
}
.star-flashing::after {
	transform: scaleX(-1);
	animation: star-flashing-after 10s infinite;
}
@keyframes star-flashing-after {
	0% {
		opacity: 0;
	}
	60% {
		opacity: 1;
	}
	70% {
		opacity: 0
	}
	80% {
		opacity: 1;
	}
	85% {
		opacity: .3;
	}
	90% {
		opacity: 1;
	}
	100% {
		opacity: 0;
	}
}



/* FadeIn */
.scrollAnim.ready {
  opacity: 0;
  transition: all .8s ease-in;
}
.scrollAnim.ready.active {
  opacity: 1;
}
/* スケール（Scale） */
timeline-item.ready {
  transform: scale(0.8);
}
timeline-item.ready.active {
  transform: scale(1);
}



