@charset "UTF-8";

html,body {
}

header {
    position: relative;
}
#wrapper {
    color: #000;
    font-family: "Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
	font-size: 0;
    line-height: 1.8;
    background: url("../img/bg_pattern1.png") repeat top left #e60012;
    -webkit-background-size: 18%;
    background-size: 18%;
    overflow: hidden;
}

#confetti-canvas {
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none; /* クリックを邪魔しない */
	z-index: 1;
}

/*--------------
#main
--------------*/
#main {
	margin: 0 auto 15%;
	position: relative;
	z-index: 1;
}
#main .decoBlock {
	width: 100%;
	margin-top: 58%;
	position: absolute;
	top: 0;
	left: 50%;
}
#main .decoBlock img {
	max-width: none;
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
	transition: all 0.2s 0.15s;
	transition-delay: 0.2s;
}
#main.ani .decoBlock img:nth-child(1),
#main.ani .decoBlock img:nth-child(2),
#main.ani .decoBlock img:nth-child(5),
#main.ani .decoBlock img:nth-child(8) {
	animation: funny1 2s linear infinite;
}
#main.ani .decoBlock img:nth-child(3),
#main.ani .decoBlock img:nth-child(4),
#main.ani .decoBlock img:nth-child(6),
#main.ani .decoBlock img:nth-child(9) {
	animation: funny2 2s linear infinite;
}
@keyframes funny1 {
  0% {
    transform: scale(1) rotate(10deg);
  }
  50% {
    transform: scale(1.1) rotate(0deg);
  }
  100% {
    transform: scale(1) rotate(10deg);
  }
}
@keyframes funny2 {
  0% {
    transform: scale(1.1) rotate(-10deg);
  }
  50% {
    transform: scale(1) rotate(0deg);
  }
  100% {
    transform: scale(1.1) rotate(-10deg);
  }
}
#main .decoBlock .deco1 {
	margin-top: 0;
	width: 15%;
	left: 0;
	transform: scale(0);
	opacity: 0;
	transition-delay: 0.25s;
}
#main.ani .decoBlock .deco1 {
	margin-top: -47%;
	left: -44%;
	transform: scale(1);
	opacity: 1;
}
#main .decoBlock .deco2 {
	margin-top: 0;
	width: 17%;
	left: 0;
	transition-delay: 0.25s;
}
#main.ani .decoBlock .deco2 {
	margin-top: 62%;
	left: 26%;
	transform: scale(1);
	opacity: 1;
}
#main .decoBlock .deco3 {
	margin-top: 0;
	width: 14%;
	left: 0;
}
#main.ani .decoBlock .deco3 {
	margin-top: 60%;
	left: -45%;
	transform: scale(1);
	opacity: 1;
}
#main .decoBlock .deco4 {
	margin-top: 0;
	width: 22%;
	left: 0;
}
#main.ani .decoBlock .deco4 {
	margin-top: -55%;
	left: -23%;
	transform: scale(1);
	opacity: 1;
}
#main .decoBlock .deco5 {
	margin-top: 0;
	width: 14%;
	left: 0;
	transition-delay: 0.25s;
}
#main.ani .decoBlock .deco5 {
	margin-top: -54%;
	left: 6%;
	transform: scale(1);
	opacity: 1;
}
#main .decoBlock .deco6 {
	margin-top: 0;
	width: 14%;
	left: 0;
}
#main.ani .decoBlock .deco6 {
	margin-top: 64%;
	left: 4%;
	transform: scale(1);
	opacity: 1;
}
#main .decoBlock .deco7 {
	display: none;
}
#main.ani .decoBlock .deco7 {
	transform: scale(1);
	opacity: 1;
}
#main .decoBlock .deco8 {
	margin-top: 0;
	width: 17%;
	left: 0;
	transition-delay: 0.25s;
}
#main.ani .decoBlock .deco8 {
	margin-top: 65%;
	left: -22%;
	transform: scale(1);
	opacity: 1;
}
#main .decoBlock .deco9 {
	margin-top: 0;
	width: 13%;
	left: 0;
	-webkit-transform: rotate(32deg);
	-ms-transform: rotate(32deg);
	-o-transform: rotate(32deg);
	transform: rotate(32deg);
}
#main.ani .decoBlock .deco9 {
	margin-top: -50%;
	left: 29%;
	transform: scale(1);
	opacity: 1;
}
#main .decoBlock .deco10 {
	display: none;
}
#main.ani .decoBlock .deco10 {
	transform: scale(1);
	opacity: 1;
}
#main .block {
	margin: 0 auto 5%;
	padding: 20% 0;
}
#main h1 {
	margin: 0 auto 2%;
	width: 96%;
	text-align: center;
	transform: scale(0);
	opacity: 0;
	position: relative;
	z-index: 1;
}
#main.ani h1 {
	opacity: 1;
	animation: scale-bounce 0.4s ease-in-out forwards ,funny3 3s 0.5s linear infinite;
}
@keyframes scale-bounce {
  0% {
    transform: scale(0);
  }
  50% {
    transform: scale(1.3);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes funny3 {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}
#main .catch {
	margin: 0 auto;
	width: 74%;
	text-align: center;
	transform: scale(0) translateY(-190%);
	opacity: 0;
}
#main.ani .catch {
	opacity: 1;
	animation: scale-bounce2 0.4s 0.1s ease-in-out forwards;
}
@keyframes scale-bounce2 {
  0% {
    transform: scale(0) translateY(-190%);
  }
  50% {
    transform: scale(1.1) translateY(10%);
  }
  100% {
    transform: scale(1) translateY(0);
  }
}
#main .date {
	margin: 0 auto 12%;
	width: 88%;
	text-align: center;
	opacity: 0;
	transition: opacity 0.4s;
}
#main .date.open {
	opacity: 1;
}
#main .end {
	margin: 0 auto 12%;
	padding: 2.5% 17%;
	background: #f9e600;
}
#main .lead {
	margin: 0 auto;
	padding: 10% 7% 6%;
	width: 88%;
	font-size: 4vw;
	border: solid 4px #ffe100;
	border-radius: 15px;
	background: url("../img/bg_pattern_lead.png") repeat top left;
	-webkit-background-size: 11px;
	background-size: 11px;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	position: relative;
	opacity: 0;
	transition: opacity 0.4s;
}
#main .lead.open {
	opacity: 1;
}
#main .lead::before {
	content: "";
	margin: 0 auto;
	width: calc(100% - 10px);
	border: solid 1.5px #ffe100;
	border-radius: 8px;
	display: block;
	position: absolute;
	top: 5px;
	bottom: 5px;
	left: 0;
	right: 0;
}
#main .lead::after {
	content: "";
	margin: 0 auto;
	width: 63vw;
	padding-top: 12vw;
	background: url("../img/block_parts1.png") no-repeat top center;
	-webkit-background-size: contain;
	background-size: contain;
	display: block;
	position: absolute;
	top: -5vw;
	left: 0;
	right: 0;
}
#main .lead .txt {
	margin: 0 auto 5%;
	font-size: 100%;
	font-weight: bold;
	position: relative;
}
#main .lead .attentionList {
	margin: 0 auto;
	position: relative;
}
#main .lead .attentionList>li {
	margin: 0 auto 1%;
	padding-left: 1em;
	font-size: 72%;
	text-indent: -1em;
}
#main .lead a {
	color: #000;
	text-decoration: underline;
}

/*--------------
nav
--------------*/
nav {
	margin: 0 auto 10%;
	position: relative;
	z-index: 1;
}
nav .txt {
	margin: 0 auto 5%;
	width: 80%;
	transition: all 0.4s;
	transform: scale(0) translateY(190%);
	opacity: 0;
}
nav .txt.fade-in {
	transform: scale(1) translateY(0);
	opacity: 1;
}
nav .navList {
	margin: 0 auto;
	width: 84%;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6%;
}
nav .navList>li {
	margin: 5% 0;
	width: 47%;
	text-align: center;
	position: relative;
	transition: all 0.3s;
	transform: scale(0);
}
nav .navList>li:nth-child(1) {
	transition-delay: 0.1s;
}
nav .navList>li:nth-child(2) {
	transition-delay: 0.2s;
}
nav .navList>li:nth-child(3) {
	transition-delay: 0.3s;
}
nav .navList>li:nth-child(4) {
	transition-delay: 0.4s;
}
nav .navList>li:nth-child(5) {
	transition-delay: 0.5s;
}
nav .navList.fade-in>li {
	transform: scale(1);
	opacity: 1;
}
nav .navList>li::before {
	content: "";
	padding-top: calc(100% - 10px);
	width: 100%;
	border: solid 5px #ffe100;
	border-radius: 50%;
	background: #fff;
	display: block;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}
nav .navList>li .navicon {
	margin: 0 auto;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	transition: all 0.2s;
	transform: scale(0) translateY(190%);
}
nav .navList.fade-in>li .navicon {
	transform: scale(1) translateY(0);
	opacity: 1;
	animation: funny4 1s linear infinite;
}
nav .navList.fade-in>li:nth-child(even) .navicon {
	animation: funny5 1s linear infinite;
}
@keyframes funny4 {
  0% {
    transform: rotate(7deg);
  }
  50% {
    transform: rotate(-7deg);
  }
  100% {
    transform: rotate(7deg);
  }
}
@keyframes funny5 {
  0% {
    transform: rotate(-7deg);
  }
  50% {
    transform: rotate(7deg);
  }
  100% {
    transform: rotate(-7deg);
  }
}
nav .navList>li .navtxt {
	margin: 0 auto;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
}
nav .navList>li.nav1 .navicon {
	margin-top: 10%;
	width: 63%;
	transition-delay: 0.2s;
}
nav .navList>li.nav2 .navicon {
	margin-top: -7%;
	width: 57%;
	transition-delay: 0.3s;
}
nav .navList>li.nav3 .navicon {
	margin-top: 13%;
	width: 58%;
	transition-delay: 0.4s;
}
nav .navList>li.nav4 .navicon {
	margin-top: -7%;
	width: 53%;
	transition-delay: 0.5s;
}
nav .navList>li.nav5 .navicon {
	margin-top: -10%;
	width: 49%;
	transition-delay: 0.6s;
}
nav .navList>li.nav1 .navtxt {
	margin-top: 70%;
	width: 70%;
}
nav .navList>li.nav2 .navtxt {
	margin-top: 65%;
	width: 39%;
}
nav .navList>li.nav3 .navtxt {
	margin-top: 70%;
	width: 50%;
}
nav .navList>li.nav4 .navtxt {
	margin-top: 70%;
	width: 43%;
}
nav .navList>li.nav5 .navtxt {
	margin-top: 62%;
	width: 75%;
}

/*--------------
#comingsoon
--------------*/
#comingsoon {
	margin: 0 auto;
	padding-top: 19%;
	position: relative;
	z-index: 1;
}
#comingsoon::before {
	content: "";
	margin: 0 auto;
	width: 63vw;
	padding-top: 12vw;
	background: url("../img/block_parts1.png") no-repeat top center;
	-webkit-background-size: contain;
	background-size: contain;
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
}
#comingsoon .txt {
	margin: 0 auto;
	width: 67%;
}

/*--------------
footer
--------------*/
footer {
    margin: 25% auto 0;
    padding: 10% 0;
    color: #1f1f1f;
	font-size: 4vw;
    text-align: center;
    background: #fff;
	position: relative;
	z-index: 1;
}
#btn_pagetop {
	width: 45px;
	font-size: 0;
	display: block;
	position: fixed;
	bottom: 12px;
	right: 12px;
	-webkit-transform: translateY(100px);
	-ms-transform: translateY(100px);
	-o-transform: translateY(100px);
	transform: translateY(100px);
	transition: all 0.3s;
}
#btn_pagetop.fade-in {
	-webkit-transform: translateY(0);
	-ms-transform: translateY(0);
	-o-transform: translateY(0);
	transform: translateY(0);
}
footer a {
    color: #1f1f1f;
}
#btn_pagetop.fixed {
	position: absolute;
	top: calc(-45px - 12px);
	bottom: auto;
}
footer .txt {
	margin: 0 auto 3%;
	font-size: 90%;
	font-weight: bold;
}
footer .linkList {
	margin: 0 auto 5%;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
footer .linkList>li {
	margin: 2% 0;
	padding: 0 3%;
	font-size: 78%;
	font-weight: bold;
	line-height: 1;
}
footer .linkList>li:nth-child(1) {
	border-right: solid 1px #1f1f1f;
}
footer .copyright {
    margin: 0 auto;
	font-size: 68%;
}

@media only screen and (width >= 800px){
    #wrapper {
		-webkit-background-size: 12%;
		background-size: 12%;
    }
    
	/*--------------
	#main
	--------------*/
	#main {
		margin: 0 auto 8%;
	}
	#main .decoBlock {
		max-width: 1240px;
		margin-top: 24%;
	}
	#main .decoBlock img:nth-child(odd) {
		transition-delay: 0.2s;
	}
	#main .decoBlock img:nth-child(even) {
		transition-delay: 0.25s;
	}
	#main.ani .decoBlock img:nth-child(odd) {
		animation: funny1 2s linear infinite;
	}
	#main.ani .decoBlock img:nth-child(even) {
		animation: funny2 2s linear infinite;
	}
	#main .decoBlock .deco1 {
		margin-top: 0;
		width: 8.8%;
		left: 0;
	}
	#main.ani .decoBlock .deco1 {
		margin-top: -22%;
		left: -38%;
	}
	#main .decoBlock .deco2 {
		margin-top: 0;
		width: 10.2%;
		left: 0;
	}
	#main.ani .decoBlock .deco2 {
		margin-top: -12%;
		left: -43%;
	}
	#main .decoBlock .deco3 {
		margin-top: 0;
		width: 7.8%;
		left: 0;
	}
	#main.ani .decoBlock .deco3 {
		margin-top: -4%;
		left: -50%;
	}
	#main .decoBlock .deco4 {
		margin-top: 0;
		width: 12.5%;
		left: 0;
	}
	#main.ani .decoBlock .deco4 {
		margin-top: 7%;
		left: -46%;
	}
	#main .decoBlock .deco5 {
		margin-top: 0;
		width: 7.5%;
		left: 0;
	}
	#main.ani .decoBlock .deco5 {
		margin-top: 15%;
		left: -38%;
	}
	#main .decoBlock .deco6 {
		margin-top: 0;
		width: 8.2%;
		left: 0;
	}
	#main.ani .decoBlock .deco6 {
		margin-top: -22%;
		left: 29%;
	}
	#main .decoBlock .deco7 {
		display: block;
		margin-top: 0;
		width: 12%;
		left: 0;
	}
	#main.ani .decoBlock .deco7 {
		margin-top: -13%;
		left: 37%;
	}
	#main .decoBlock .deco8 {
		margin-top: 0;
		width: 11%;
		left: 0;
	}
	#main.ani .decoBlock .deco8 {
		margin-top: -2%;
		left: 33%;
	}
	#main .decoBlock .deco9 {
		margin-top: 0;
		width: 8%;
		left: 0;
		-webkit-transform: rotate(0);
		-ms-transform: rotate(0);
		-o-transform: rotate(0);
		transform: rotate(0);
	}
	#main.ani .decoBlock .deco9 {
		margin-top: 7%;
		left: 42%;
	}
	#main .decoBlock .deco10 {
		display: block;
		margin-top: 0;
		width: 9%;
		left: 0;
	}
	#main.ani .decoBlock .deco10 {
		margin-top: 17%;
		left: 29%;
	}
	#main .block {
		margin: 0 auto 2%;
		padding: 2% 0;
	}
	#main h1 {
		margin: 0 auto 2%;
		width: 65%;
	}
	#main .catch {
		margin: 0 auto;
		width: 66%;
	}
	#main .date {
		margin: 0 auto 6%;
		width: 67%;
	}
	#main .end {
		margin: 0 auto 12%;
		padding: 15px 0;
	}
	#main .end img {
		margin: 0 auto;
		width: 40%;
		max-width: 460px;
		display: block;
	}
	#main .lead {
		padding: 5.2% 4% 4%;
		width: 90%;
		font-size: 1.38vw;
		border: solid 8px #ffe100;
		border-radius: 30px;
		-webkit-background-size: 22px;
		background-size: 22px;
	}
	#main .lead::before {
		width: calc(100% - 16px);
		border: solid 3px #ffe100;
		border-radius: 18px;
		top: 5px;
		bottom: 5px;
	}
	#main .lead::after {
		width: 34vw;
		padding-top: 6.3vw;
		top: -2.8vw;
	}
	#main .lead .txt {
		margin: 0 auto 2%;
		text-align: center;
	}
	#main .lead .attentionList>li {
		margin: 0 auto 0.3%;
		font-size: 84%;
	}
	#main .lead a:hover {
		color: #e60012;
		text-decoration: none;
	}

	/*--------------
	nav
	--------------*/
	nav {
		margin: 0 auto 10%;
	}
	nav .txt {
		margin: 0 auto 3%;
		width: 87%;
	}
	nav .navList {
		width: 62%;
		gap: 7%;
	}
	nav .navList>li {
		margin: 3% 0;
		width: 28.6666%;
	}
	nav .navList>li::before {
		padding-top: calc(100% - 20px);
		border: solid 8px #ffe100;
	}

	/*--------------
	#comingsoon
	--------------*/
	#comingsoon {
		padding-top: 11%;
	}
	#comingsoon::before {
		width: 34vw;
		padding-top: 6.3vw;
	}
	#comingsoon .txt {
		width: 74%;
	}

	/*--------------
	footer
	--------------*/
	footer {
		margin: 16% auto 0;
		padding: 5% 0;
		font-size: 1.38vw;
	}
	#btn_pagetop {
		width: 60px;
		bottom: 30px;
		right: 30px;
	}
	#btn_pagetop.fixed {
		top: calc(-45px - 30px);
	}
	footer .txt {
		margin: 0 auto 1.7%;
		font-size: 110%;
	}
	footer .linkList {
		margin: 0 auto 1%;
		width: 70%;
	}
	footer .linkList>li {
		margin: 1.7% 0;
		padding: 0 3%;
		font-size: 100%;
	}
	footer .linkList>li:nth-child(2) {
		border-right: solid 1px #1f1f1f;
	}
	footer .copyright {
		font-size: 75%;
	}
}

@media only screen and (width >= 1240px){
    #wrapper {
		-webkit-background-size: 147px;
		background-size: 147px;
    }
    
	/*--------------
	#main
	--------------*/
	#main {
		margin: 0 auto 90px;
	}
	#main .decoBlock {
		margin-top: 295px;
	}
	#main .block {
		margin: 0 auto 20px;
		padding: 25px 0;
	}
	#main h1 {
		margin: 0 auto 20px;
		width: 800px;
	}
	#main .catch {
		margin: 0 auto;
		width: 813px;
	}
	#main .date {
		margin: 0 auto 80px;
		width: 820px;
	}
	#main .lead {
		padding: 60px 60px 50px;
		max-width: 1100px;
		font-size: 17px;
		-webkit-background-size: 22px;
		background-size: 22px;
	}
	#main .lead::after {
		width: 422px;
		padding-top: 78px;
		top: -36px;
	}
	#main .lead .txt {
		margin: 0 auto 20px;
	}
	#main .lead .attentionList>li {
		margin: 0 auto 3px;
	}

	/*--------------
	nav
	--------------*/
	nav {
		margin: 0 auto 90px;
	}
	nav .txt {
		margin: 0 auto 35px;
		width: 1062px;
	}
	nav .navList {
		width: 760px;
		gap: 7%;
	}
	nav .navList>li {
		margin: 3% 0;
		width: 28.6666%;
	}
	nav .navList>li::before {
		padding-top: calc(100% - 20px);
		border: solid 8px #ffe100;
	}

	/*--------------
	#comingsoon
	--------------*/
	#comingsoon {
		padding-top: 124px;
	}
	#comingsoon::before {
		width: 422px;
		padding-top: 78px;
	}
	#comingsoon .txt {
		width: 912px;
	}
	
	/*--------------
	footer
	--------------*/
	footer {
		margin: 200px auto 0;
		padding: 60px 0;
		font-size: 18px;
	}
	footer a:hover {
		color: #e60012;
		text-decoration: underline;
	}
	#btn_pagetop {
		width: 60px;
		bottom: 30px;
		right: 30px;
	}
	#btn_pagetop:hover {
		transform: scale(1.1);
		transition: all 0.2s;
	}
	#btn_pagetop.fixed {
		top: calc(-45px - 30px);
	}
	footer .txt {
		margin: 0 auto 10px;
		font-size: 110%;
	}
	footer .linkList {
		margin: 0 auto 1%;
		width: 900px;
	}
	footer .linkList>li {
		margin: 15px 0;
		padding: 0 20px;
	}
}