@charset "utf-8";
/* CSS Document */


body {
	font-family: "Shippori Mincho", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", Osaka, "ＭＳ Ｐゴシック", "MS PGothic" , sans-serif;
	color:#d8c16b;
	font-size:15px;
	line-height:1.9;
	letter-spacing:0.03em;
	text-align:justify;
	background: #000;
	font-weight: 600;
}
a {
	color: #d8c16b;
	text-decoration: none;
	transition:0.3s ease-in-out;
}
a:hover {
	color:#000;
}

::selection{ background-color:#440000; }
::-moz-selection{ background-color:#440000; }


@keyframes fadeInUpMin {
    from { opacity: 0; transform: translate3d(0, 10%, 0);}
    to { opacity: 1; transform: none;}
}
.fadeInUpMin { animation-name: fadeInUpMin;}

@keyframes fadeInDownMin {
    from { opacity: 0; transform: translate3d(0, -10%, 0);}
    to { opacity: 1; transform: none;}
}
.fadeInDownMin { animation-name: fadeInDownMin;}

@keyframes fadeInDownB {
    from { opacity: 0; transform: translate3d(0, -10%, 0);-webkit-filter: blur(50px);-moz-filter: blur(50px);-o-filter: blur(50px);-ms-filter: blur(50px);filter: blur(50px);}
    to { opacity: 1; transform: none;}
}
.fadeInDownB { animation-name: fadeInDownB;}

@keyframes fadeInB {
    from { opacity: 0; -webkit-filter: blur(50px);-moz-filter: blur(50px);-o-filter: blur(50px);-ms-filter: blur(50px);filter: blur(50px);}
    to { opacity: 1; transform: none;}
}
.fadeInB { animation-name: fadeInB;}




.loading > * {
	visibility: hidden;
}

.loading::before,
.loading::after {
	visibility: visible;
}

#loftloader-wrapper {
	min-width: 400px !important;
}
#loftloader-wrapper .loader-section.section-fade {
	min-width: 400px !important;
}



/*=======================================================================

	背景cover用css

=======================================================================*/
html,body {
	position: relative;
	width: 100%;
	height: 100%;
	min-width: 1340px;
	max-width: 1920px;
	margin: auto;
}
main {
}



/*=======================================================================

	リンク時アニメーション

=======================================================================*/
dl dd a{
	position: relative;
	display: flex;
	line-height: 2;
}
dl dd a span{
  color: #d8c16b;
  z-index: 10;
	cursor: pointer;
}
dl dd a span:before{
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 0;
  display: block;
  background: #d8c16b;
  z-index: -1;
  transition: .2s;
}
dl dd a span:hover{
  color: #000;
	cursor: pointer;
}
dl dd a span:hover:before{
  width: 100%;
}




/*=======================================================================

	#main

=======================================================================*/
#main {
	position: relative;
	width: 100%;
	height: 1020px;
	overflow-x: clip;
}
@media screen and (max-width:640px) {
	#main img { max-width: none;}
	#main {
		height: 670px;
	}
}
@media screen and (max-width:540px) {
	#main {
		height: 550px;
	}
}



/*------------------------------ 幕 ------------------------------*/
#main::before {
	position: absolute;
	content: "";
	width: 100%;
	height: 103px;
	background: url("../images/MV_img01.png") no-repeat top center;
	background-size: 1920px auto;
	top: 0;
	left: 0;
	z-index: 9;
}
@media screen and (max-width:640px) {
	#main::before {
		background: url("../images/MV_img01.png") no-repeat center;
		background-size: 1520px auto;
	}
}


/*------------------------------ ロゴ ------------------------------*/
#main #main_logo {
	position: absolute;
	width: 100%;
}
#logo01 {
	position: absolute; top: 0; left: 0; z-index: 10;
}
#logo02 {
	position: absolute; top: 730px; right: 0; z-index: 25;
}
#logo03 {
	position: absolute; top: 555px; left: 30px; z-index: 12;
}
@media screen and (max-width:640px) {
	#logo01 {
		position: absolute; top: 0; left: 0; z-index: 10;
	}
	#logo02 {
		position: absolute; top: 610px; right: 0; z-index: 25;
	}
	#logo03 {
		position: absolute; top: 525px; left: 10px; z-index: 22;
	}
	#logo01 img { width: 350px; height: auto;}
	#logo02 img { width: 350px; height: auto;}
	#logo03 img { width: 200px; height: auto;}
}
@media screen and (max-width:540px) {
	#logo02 {
		position: absolute; top: 500px; right: 0; z-index: 25;
	}
	#logo03 {
		position: absolute; top: 425px; left: 10px; z-index: 22;
	}
}


/*------------------------------ キャラクター ------------------------------*/
#main #main_chara {
	position: absolute;
	width: 100%;
}
#chara01 {
	position: absolute; left: 50%; top: 72px; margin-left: -223px; z-index: 20;
	animation: fwa 2.0s ease-in-out .4s 1 normal forwards;
}
#chara02 {
	position: absolute; left: 50%; top: 0;    margin-left: -944px; z-index: 10;
	animation: fwa 2.0s ease-in-out .4s 1 normal forwards;
}
@media screen and (max-width: 640px) {
	#chara01 {
		top: 7.2vw; /* 5.9vw × 1.2 */
		margin-left: 3.5vw; /* -6.6vw × 1.2 */
	}
	#chara01 img {
		width: 109.9vw; /* 91.6vw × 1.2 */
	}
	#chara02 {
		top: 0;
		margin-left: -68.8vw; /* -66.5vw × 1.2 */
	}
	#chara02 img {
		width: 68.3vw; /* 56.9vw × 1.2 */
	}
}



/*------------------------------ 蝶々 ------------------------------*/
#chara03_wrap { position: absolute; left: 50%; top: 130px;  margin-left: -324px; z-index: 10; animation: fly_a 5.0s ease-in-out infinite; }
#chara05_wrap { position: absolute; left: 50%; top: 290px; margin-left: 270px;  z-index: 10; animation: fly_c 4.5s ease-in-out infinite; }
#chara03, #chara05 {
	position: static;
	animation: flap 0.6s ease-in-out infinite, glitter 3s ease-in-out infinite;
}
#chara05 { animation-delay: 0.4s, 2.0s; }
@keyframes fly_a {
	0%   { transform: translate(0px,    0px)   scale(1.0); }
	25%  { transform: translate(18px,  -40px)  scale(0.8); }
	50%  { transform: translate(-30px, -60px)  scale(0.9); }
	75%  { transform: translate(22px,  -50px)  scale(0.7); }
	100% { transform: translate(0px,    0px)   scale(1.0); }
}
@keyframes fly_c {
	0%   { transform: translate(0px,    0px)   scale(1.0); }
	25%  { transform: translate(12px,  -45px)  scale(0.8); }
	50%  { transform: translate(-18px, -28px)  scale(0.9); }
	75%  { transform: translate(16px,  -58px)  scale(0.7); }
	100% { transform: translate(0px,    0px)   scale(1.0); }
}
@keyframes flap {
	0%   { transform: scaleX(1);   }
	50%  { transform: scaleX(0.3); }
	100% { transform: scaleX(1);   }
}
@keyframes glitter {
	0%   { filter: brightness(1)   drop-shadow(0 0 0px #fff)  hue-rotate(0deg);  opacity: 1;   }
	20%  { filter: brightness(2.0) drop-shadow(0 0 16px #fff) hue-rotate(15deg); opacity: 0.3; }
	22%  { filter: brightness(1.2) drop-shadow(0 0 4px #adf)  hue-rotate(20deg); opacity: 1;   }
	50%  { filter: brightness(1.4) drop-shadow(0 0 8px #adf)  hue-rotate(30deg); opacity: 0.8; }
	70%  { filter: brightness(2.0) drop-shadow(0 0 16px #fff) hue-rotate(20deg); opacity: 0.3; }
	72%  { filter: brightness(1.2) drop-shadow(0 0 4px #adf)  hue-rotate(15deg); opacity: 1;   }
	100% { filter: brightness(1)   drop-shadow(0 0 0px #fff)  hue-rotate(0deg);  opacity: 1;   }
}
@media screen and (max-width: 640px) {
	#chara03_wrap { position: absolute; left: 50%; top: 20px;  margin-left: -204px;  }
	#chara05_wrap { position: absolute; left: 50%; top: 230px; margin-left: 120px; z-index: 25;   }
}


/*------------------------------ 背景 ------------------------------*/
#kira_wrap {
	overflow: hidden;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	pointer-events: none;
	z-index: 3;
}
#kira {
	position: absolute;
	top: -300px;
	right: -200px;
	animation: kira_flow 20s linear infinite;
}

@keyframes kira_flow {
	0%   { transform: translate(0px,    0px); opacity: 0;   }
	5%   {  opacity: 1;   }
	10%  { transform: translate(-30px,  55px);  }
	20%  { transform: translate(-90px,  115px); }
	30%  { transform: translate(-130px, 180px); }
	40%  { transform: translate(-180px, 250px); }
	50%  { transform: translate(-210px, 310px); }
	60%  { transform: translate(-260px, 375px); }
	70%  { transform: translate(-300px, 430px); }
	80%  { transform: translate(-330px, 495px); }
	90%  { transform: translate(-370px, 550px); }
	100% { transform: translate(-400px, 600px); opacity: 0; }
}


#main .mainvisual {
	position: absolute;
	width: 100%;
	height: 100%;
	background: url(../images/MV_bg.jpg) no-repeat center top;
	background-size: 1920px auto;
	animation: fwa 2.0s ease-in-out .2s 1 normal forwards;
	left: 0;top: 0;
}
@keyframes fwa {
    0% { -ms-filter: blur(60px); filter: blur(60px); transform:scale(1.5); }
    100% { -ms-filter: blur(0px); filter: blur(0px); transform:scale(1.0); }
}
@media screen and (max-width: 640px) {
	#main .mainvisual {
		background: url(../images/MV_bg.jpg) no-repeat left -19.6vw top;
		background-size: 191.3vw auto; /* 159.4vw × 1.2 */
		min-width: 400px;
	}
}
@media screen and (max-width: 399px) {
	#main .mainvisual {
		background-size: 765px auto; /* 637.5px × 1.2 */
		background-position: left -88.8px top; /* -74px × 1.2 */
	}
	#chara01 {
		top: 33px;
		margin-left: 1.4vw;
	}
	#chara01 img {
		width: 439.7px; /* 366.4px × 1.2 */
	}
	#chara02 {
		top: 0;
		margin-left: -285.2px; /* -275.2px × 1.2 */
	}
	#chara02 img {
		width: 273.1px; /* 227.6px × 1.2 */
	}
}





/*=======================================================================

	#Story

=======================================================================*/
#story {
	position: relative;
	width: 100%;
	height: 612px;
	background: url("../images/section01_bg.png") no-repeat center top;
	background-size: 1920px 612px;
	margin-top: -80px;
	box-sizing: border-box;
	padding-top: 235px;
	z-index: 3;
	overflow-x: clip;
}
@media screen and (max-width: 640px) {
	#story {
		height: 490px;
		background: url("../images/section01_bg.png") no-repeat center top;
		background-size: 1520px auto;
		padding-top: 155px;
	}
}



/*------------------------------ 物語概要 ------------------------------*/
#story_catch {
  	display: flex;
  	flex-direction: column;
  	gap: 12px;
	align-items: flex-start;
	width: 90%;
	margin: 0 auto;
	max-width: 1240px;
}
#story_catch span {
  	display: inline;
  	background: #440000;
  	padding: 4px 15px 4px 22px;
  	line-height: 1.8;
	letter-spacing: 3.8px;
	transform: scaleY(0.8);
	transform-origin: top left;
	color: #b9a55b;
}
#story_catch span:nth-of-type(4) {
  	margin-top: 1.5rem;
}
@media screen and (max-width: 640px) {
	#story_catch {
		gap: 8px;
	}
	#story_catch span {
		display: inline;
		background: #440000;
		padding: 4px 15px 4px 22px;
		line-height: 1.8;
		letter-spacing: 3.4px;
		transform: scaleY(0.8);
		transform-origin: top left;
		color: #b9a55b;
	}
	#story_catch span:nth-of-type(9) {
		margin-top: 1.3rem;
	}
}


/*------------------------------ キラキラ ------------------------------*/
#s_kira01 {	position: absolute; left: 50%; top: 470px; margin-left: -690px; animation: kira_star 2.5s linear infinite; }
#s_kira02 {	position: absolute; left: 50%; top: 180px; margin-left: -900px; animation: kira_star 2.0s linear infinite 0.8s; }
#s_kira03 {	position: absolute; left: 50%; top: 150px; margin-left:  750px; animation: kira_star 3.0s linear infinite 1.4s; }
#s_kira04 {	position: absolute; left: 50%; top: 300px; margin-left:  300px; animation: kira_star 2.2s linear infinite 0.4s; }
@keyframes kira_star {
	0%   { transform: rotateY(0deg);   filter: brightness(1)   drop-shadow(0 0 0px #fff);  }
	25%  { transform: rotateY(90deg);  filter: brightness(2.0) drop-shadow(0 0 10px #fff); opacity: 1;}
	50%  { transform: rotateY(180deg); filter: brightness(1)   drop-shadow(0 0 0px #fff);  opacity: 0;}
	75%  { transform: rotateY(270deg); filter: brightness(2.0) drop-shadow(0 0 10px #fff); opacity: 1;}
	100% { transform: rotateY(360deg); filter: brightness(1)   drop-shadow(0 0 0px #fff);  }
}
@media screen and (max-width: 640px) {
	#s_kira01 {	display: none;}
	#s_kira02 {	display: none; }
	#s_kira03 {	top: 190px; margin-left:  150px; }
	#s_kira04 {	top: 270px; margin-left:  130px;  }
}




/*=======================================================================

	#youtube

=======================================================================*/
#movie {
	position: relative;
	padding: 100px 0;
	background: #000;
	overflow-x: clip;
}
#movie::before {
	position: absolute;
	content: "";
	background: url("../images/bg_01.png") no-repeat top center;
	background-size: 1920px 40px;
	width: 100%; height: 40px;
	top: -39px; left: 0;
	z-index: 15;
}
#movie::after {
	position: absolute;
	content: "";
	background: url("../images/bg_01.png") no-repeat top center;
	background-size: 1920px 40px;
	width: 100%; height: 40px;
	bottom: -39px; left: 0;
	transform: rotate(180deg);
	z-index: 15;
}
#youtube  {
	position: relative;
	width: 1200px;
	margin: 0 auto 0;
	z-index: 99;
}
#youtube iframe {
	width: 1200px;
	height: 640px;
}
@media screen and (max-width:640px) {
	#movie {
		padding: 50px 0 0;
	}
	#youtube {
		width: 90%;
		aspect-ratio: 16 / 9;
		margin: 10px auto 80px;
	}
	#youtube iframe {
	  width: 100%;
	  height: 100%;
	}
}




/*------------------------------ テディベア ------------------------------*/
#kuma {
	position: absolute;
	top: -270px; left: 50%; margin-left: 120px;
	z-index: 20;
}
@media screen and (max-width: 640px) {
	#kuma {
		position: absolute;
		top: -70px; left: 50%; margin-left: 20px;
		z-index: 20;
	}
}



/*------------------------------ 花 ------------------------------*/
#m_flower01 {
	position: absolute;
	top: -90px; left: 50%; margin-left: 550px;
	z-index: 18;
}
#m_flower02 {
	position: absolute;
	top: 150px; left: 0;
	z-index: 18;
}
#m_flower03 {
	position: absolute;
	top: 50px; left: 5%;
	z-index: 18;
}
@media screen and (max-width: 640px) {
	#m_flower01 { display: none;}
	#m_flower02 {
		top: -20px; 
	}
	#m_flower03 { display: none;}
}




/*=======================================================================

	#About

=======================================================================*/
#about {
	position: relative;
	width: 100%;
	height: 1050px;
	background: url("../images/bg_03.png") center;
	background-size: 1920px 155px;
	overflow-x: clip;
}
#about::before {
	position: absolute;
	content: "";
	width: 100%;
	height: 800px;
	background: rgba(0,0,0,.5);
	top: 120px; 
	left: 0;
}
#about::after {
	position: absolute;
	content: "";
	width: 100%;
	height: 1230px;
	background: url("../images/section03_img03.png") no-repeat center right;
	background-size: 1036px 1230px;
	top: 0;
	right: 0;
}
@media screen and (max-width:640px) {
    #about {
        height: auto;
		padding-bottom: 100px;
		background-attachment: inherit;
    }
	#about::after {
		position: absolute;
		content: "";
		width: 100%;
		height: 1230px;
		background: url("../images/section03_img03.png") no-repeat center right;
		background-size: 1036px 1230px;
		top: 0;
		right: -300px;
	}
}




/*------------------------------ #information ------------------------------*/
#information {
	position: relative;
	width: 90%;
	max-width: 1200px;
	margin: auto;
	padding-top: 210px;
	padding-bottom: 140px;
	z-index: 999;
}
@media screen and (max-width:640px) {
    #information {
		width: 80%;
        padding-top: 90px;
        padding-bottom: 30px;
    }
}


#information .inner {
}
@media screen and (max-width:640px) {
	#information .inner {
		float: none;
      	width: 100%;
  }
}


#information h1 {
	margin-bottom: 45px;
}

@media screen and (max-width:640px) {
	#information h1 {
	}
}


.tracklist_list {
	margin-bottom: 55px;
}

@media screen and (max-width:640px) {
	.tracklist_list {
		margin-bottom: 50px;
	}
	
}


#information .tracklist_info dl {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 40px;
	letter-spacing: 1.8px;
	transform: scaleY(0.85);
}

#information .inner dt {
	font-family: "EB Garamond", serif;
	width: 130px;
	margin-bottom: 8px;
}
#information .inner dd {
	display: flex;
	gap: 15px;
}
#information .inner dd a span {
	position: relative;
	top: -2px;
}
#information .inner dd a span::after {
	content: "";
	position: absolute;
	bottom: 4px;
	left: 0;
	width: 100%;
	height: 1px;
	background: currentColor;
}
@media screen and (max-width:640px) {
    #information .inner dl {
        display: block;
    }
    #information .inner dt {
        width: 100%;
    }
    #information .inner dd {
        width: 100%;
        display: block;
    }
	#information .inner dd a span::after {
		bottom: -6px;;
	}
}


/*------------------------------ 花 ------------------------------*/
#a_flower01 {
	position: absolute;
	top: 0px; right: 0;
	z-index: 3;
}
#a_flower02 {
	position: absolute;
	bottom: 0px; right: 0;
	z-index: 1;
}
@media screen and (max-width:640px) {
	#a_flower01 {
		display: none;
	}
	#a_flower02 {
		position: absolute;
		bottom: 0px; right: -200px;
		z-index: 1;
	}
}


/*------------------------------ 椅子 ------------------------------*/
#a_left01 {
	position: absolute;
	top: 90px; left: 0;
	z-index: 25;
}
#a_left02 {
	position: absolute;
	bottom: 0px; left: 0;
	z-index: 1;
}
@media screen and (max-width:640px) {
	#a_left01 {
		display: none;
	}
	#a_left02 {
		display: none;
	}
}


/*------------------------------ 蝶 ------------------------------*/
#chara06_wrap {
	position: absolute; right: 18%; top: 480px; z-index: 10;
	animation: fly_a 5.0s ease-in-out infinite;
	--fly-color: #fff;
}
#chara07_wrap {
	position: absolute; right: 5%; top: 390px; z-index: 10;
	animation: fly_c 4.5s ease-in-out infinite;
	--fly-color: #fff;
}
#chara06, #chara07 {
	position: static;
	animation: flap 0.6s ease-in-out infinite, glitter_white 3s ease-in-out infinite;
}

@keyframes glitter_white {
	0%   { filter: drop-shadow(0 0 0px #fff);  opacity: 1;   }
	20%  { filter: drop-shadow(0 0 6px #fff);  opacity: 0.3; }
	22%  { filter: drop-shadow(0 0 2px #fff);  opacity: 1;   }
	50%  { filter: drop-shadow(0 0 4px #fff);  opacity: 0.8; }
	70%  { filter: drop-shadow(0 0 6px #fff);  opacity: 0.3; }
	72%  { filter: drop-shadow(0 0 2px #fff);  opacity: 1;   }
	100% { filter: drop-shadow(0 0 0px #fff);  opacity: 1;   }
}





/*=======================================================================

	#staff

=======================================================================*/
#staff {
	position: relative;
	width: 100%;
	height: 515px;
	background: url("../images/section04_bg.png") no-repeat top center;
	background-size: 1920px auto;
	margin-top: -80px;
	z-index: 2;
}


/*------------------------------ リスト ------------------------------*/
#staff .inner {
	position: relative;
	width: 90%;
	max-width: 1300px;
	margin: auto;
	padding-top: 160px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
#staff .inner dl {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 12px 50px;
	letter-spacing: 1.8px;
	transform: scaleY(0.85);
}
#staff .inner dl dt {
	font-family: "EB Garamond", serif;
  	font-optical-sizing: auto;
  	font-style: normal;
}
@media screen and (max-width: 640px) {
	#staff {
		height: auto;
		background-size: 1520px 515px;
		margin-top: -80px;
		padding-bottom: 50px;
	}
	#staff .inner {
		width: 340px;
		padding-top: 70px;
		flex-direction: column;
		align-items: flex-start;
	}
	#staff .inner dl {
		gap: 1px 30px;
	}
	#staff .inner dl dt {
		width: 140px;
	}
	#staff .inner img { display: none;}
}





/*=======================================================================

	#全面イラスト

=======================================================================*/
#footer_img {
	position: relative;
	width: 100%;
	height: 433px;
	background: url("../images/section05_bg.png") no-repeat center;
	background-size: 1920px 433px;
	margin-top: -40px;
	z-index: 2;
}
#footer_img p {
	width: 90%;
	max-width: 1280px;
	margin: auto;
	box-sizing: border-box;
	padding-top: 120px;
	animation: footer_blur 4s linear infinite;
}
@keyframes footer_blur {
	0%   { transform: translate(0px,  0px)  skew(0deg,    0deg);   }
	93%  { transform: translate(0px,  0px)  skew(0deg,    0deg);   }
	94%  { transform: translate(-3px, 1px)  skew(-0.5deg, 0.2deg); }
	95%  { transform: translate(2px, -2px)  skew(0.3deg, -0.3deg); }
	96%  { transform: translate(-2px, 2px)  skew(-0.3deg, 0.5deg); }
	97%  { transform: translate(3px, -1px)  skew(0.5deg, -0.2deg); }
	98%  { transform: translate(0px,  0px)  skew(0deg,    0deg);   }
	100% { transform: translate(0px,  0px)  skew(0deg,    0deg);   }
}
@media screen and (max-width: 640px) {
	#footer_img {
		height: 260px;
		background-size: cover;
		background-position: center left 40%;
		margin-top: -20px;
	}
	#footer_img p {
		position: absolute;
		width: 50%;
		padding: 0;
		left: 5%;
		bottom: 50px;
	}
}





/*=======================================================================

	#footer

=======================================================================*/
#footer {
	position: relative;
	background: url("../images/bg_02.png") center;
	background-size: 1920px 155px;
	padding: 55px 0 45px;
	text-align: center;
	margin-top: -40px;
}
#footer copy {
	display: block;
	font-size: 14px;
	margin-top: 20px;
	font-family: "EB Garamond", serif;
  	font-optical-sizing: auto;
  	font-style: normal;
	letter-spacing: 1.8px;
	transform: scaleY(0.9);
	transform-origin: top left;
}
@media screen and (max-width: 640px) {
	#footer {
		padding: 55px 0 30px;
	}
	#footer copy {
		font-size: 12px;
	}
}








