body, html, p, ul, li {
	margin: 0;
	padding: 0;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

img {
	vertical-align: middle;
}

a {
	color: inherit;
}

body {
	font-family: 'Noto Sans JP', sans-serif;
	background-color: #af3d00;
	color: #fff;
	-webkit-text-adjust-size: 100%;
	text-adjust-size: 100%;
	font-size: 4vw;
}

.mainVisual {
	position: relative;
	overflow: hidden;
	padding-bottom: 100%;
	max-height: 100%;
	background: #5A267C;
	background-image: linear-gradient(0deg, #7c2626, #001683);
}

.mainVisual_date {
	position: absolute;
	left: 2vmin;
	right: 2vmin;
	top: 2vmin;
	z-index: 3;
}

.mainVisual_date img {
	width: 100%;
	height: auto;
}

.mainVisual_title {
	position: absolute;
	left: 0;
	right: 0;
	top: -5%;
	bottom: -7%;
	z-index: 1;
	text-align: center;
}

.mainVisual_title img {
	height: 100%;
	width: auto;
}

.mainVisual_deco {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 10%;
	background: #000;
	filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.8));
}
.mainVisual_deco::before, .mainVisual_deco::after {
	height: 10vmin;
	content: "";
	position: absolute;
	left: 0;
	width: 100%;
}
.mainVisual_deco::before {
	top: -10vmin;
	background: linear-gradient(45deg, #000 5vmin, transparent 0), linear-gradient(315deg, #000 5vmin, transparent 0);
	background-size: 10vmin 10vmin;
}
.mainVisual_deco::after {
	bottom: -10vmin;
	background: linear-gradient(135deg, #000 5vmin, transparent 0), linear-gradient(225deg, #000 5vmin, transparent 0);
	background-size: 10vmin 10vmin;
}

.mainVisual_uta,
.mainVisual_kiku {
	position: absolute;
	height: 135vw;
	width: 73vw;
	z-index: 2;
	transform-origin: center bottom;
	bottom: -23%;
}

.mainVisual_uta::before,
.mainVisual_kiku::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	background-repeat: no-repeat;
	background-size: auto 100%;
	background-position: 0 0;
}

.mainVisual_uta {
	left: -34%;
	animation: yurayura 8s linear infinite;
}

.mainVisual_uta::before {
	background-image: url(./images/uta.png?2);
}

.mainVisual_uta.is-wink::before {
	animation: wink 300ms steps(3, jump-none);
}

.mainVisual_kiku {
	right: -34%;
	animation: yurayura 6s linear infinite;
}

.mainVisual_kiku::before {
	background-image: url(./images/kiku.png?2);
}

.mainVisual_kiku.is-wink::before {
	animation: wink 300ms steps(3, jump-none);
}

.content {
	padding: 4vw;
}

.content_title {
	text-align: center;
	font-size: 180%;
	margin: 1em 0;
}

.content_title::after {
	content: "";
	display: block;
	width: 10em;
	height: 2px;
	background: #fff;
	margin: 0.2em auto 0;
}

.content_subtitle {
	text-align: center;
	font-size: 120%;
	margin: 1em 0;
}

.lead ul {
	padding-left: 1.5em;
	display: inline-block;
	text-align: left;
}

.map {
	width: 54vw;
	margin-right: 5vw;
	margin-left: auto;
}

.map.map-2 {margin-left: 5vw;margin-left: auto;}

.map_inner {
	position: relative;
	display: flex;
	flex-wrap: wrap;
}

.map_inner > span {
	width: 5vw;
	height: 5vw;
	border: 0.2vw solid #fff;
	margin: 0.4vw 0.2vw;
}
.map_inner > span.none {
	border-color: transparent;
}

.map_title {
	text-align: center;
	width: 100%;
	margin: 2vw 0;
	font-size: 150%;
}

.map_mask {
	position: absolute;
	bottom: -1vw;
	left: -1vw;
	width: 28vw;
	height: 19vw;
	background: #e0e5b7;
	opacity: 0.6;
	animation: blink 2s linear infinite;
	clip-path: polygon(22% 0, 100% 0%, 100% 100%, 0% 100%, 0% 32%, 22% 32%);
	z-index: 1;
}

.map-2 .map_mask {
	bottom : auto;
	left: auto;
	top: 40vw;
	right: 5vw;
	width: 7vw;
	height: 7vw;
	clip-path: none;
}

.map_text {
	position: absolute;
	left: -30vw;
	bottom: 20vw;
	text-align: center;
	padding: 0.8vw;
	font-size: 5vw;
	background: #3d104c;
	color: #ffffff;
	font-weight: bold;
	z-index: 2;
}

.map_text::before {
	content: "";
	border-left: 0.8vw solid #3d104c;
	position: absolute;
	left: 88%;
	top: calc(100% + 1vw);
	height: 19vw;
	transform-origin: left top;
	transform: rotate(-45deg);
}

.map-2 .map_text {
	left: auto;
	right: calc(100% + -1vw);
	bottom: 42vw;
	font-size: 3.5vw;
	font-weight: normal;
	white-space: nowrap;
}

.map-2 .map_text::before {
	top: 4vw;
	left: calc(100% + 0.4vw);
	height: 48vw;
	transform: rotate(-68deg);
}

.circle {
	display: flex;
	flex-wrap: wrap;
	margin: -1.4vw;
	max-width: 800px;
	margin: 1em auto 0;
}

.circle a {
	display: block;
	width: 10vw;
	margin-left: auto;
	max-width: 43px;
}

.circle > span {
	width: calc(50% - 2.8vw);
	border: 0.2vw solid #fff;
	margin: 1.4vw;
	padding: 0.5em;
	padding-top: 1.5em;
	position: relative;
}

.circle_no {
	position: absolute;
	left: 0;
	top: 0;
    background: #3d104c;
    color: #ffffff;
	padding: 0.2em;
	line-height: 1;
}

.circle_name {
	display: block;
}

.circle_owner {
	display: block;
}

.circle_owner::before {
	content: "(";
}
.circle_owner::after {
	content: ")";
}

.avatar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	text-align: center;
	max-width: 800px;
	margin: auto;
}

.avatar_group {
	margin: 1em;
	flex: 1 1 auto;
	width: calc(50% - 2em);
	min-width: 350px;
}

.avatar_label {
	padding: 0.5em;
	margin: 0 0 0.5em;
	font-size: 90%;
	border-color: #fff;
	border-style: solid;
	border-width: 1px 0;
	line-height: 1;
}

.avatar_img {
	display: flex;
}

.avatar_img img {
	width: 50%;
	height: auto;
}

.howtouse {
	list-style-type: none;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	margin: 1em 0 0;
	padding: 0;
}

.howtouse li {
	margin: 0;
	padding: 0;
	width: 100%;
	max-width: 500px;
}

.howtouse li + li {
	margin-top: 1em;
}

.howtouse li img {
	width: 100%;
	height: auto;
}

.howtouse li p {
	text-indent: -1em;
	padding-left: 1em;
	padding-bottom: 0.2em;
}

@media screen and (min-width: 1024px) {
	body {
		font-size: 18px;
	}

	.content {
		padding: 20px;
	}

	.mainVisual {
		padding-bottom: 0;
		height: 100vh;
	}

	.mainVisual_chara {
		position: relative;
		height: 100%;
		margin: auto;
		max-width: 1000px;
	}

	.mainVisual_uta,
	.mainVisual_kiku {
		height: 1110px;
		width: 600px;
		bottom: -250px;
	}

	.mainVisual_uta {
		right: calc(100% - 300px);
		left: auto;
	}
	
	.mainVisual_kiku {
		left: calc(100% - 300px);
		right: auto;
	}

	.mainVisual_uta.is-wink::before,
	.mainVisual_kiku.is-wink::before {
		animation-name: wink_pc;
	}

	.lead {
		text-align: center;
	}

	.mapWrap {
		display: flex;
		justify-content: center;
	}

	.map {
		width: 340px;
		margin: 0 50px;
	}

	.map.map-2 {
		margin: 0;
	}
	
	.map_inner > span {
		width: 30px;
		height: 30px;
		border-width :2px;
		margin: 4px 2px;
	}
	.map_inner > span.none {
		border-color: transparent;
	}

	.map_mask {
		bottom: -4px;
		left: -6px;
		width: 177px;
		height: 121px;
	}

	.map-2 .map_mask {
		bottom: auto;
		left: auto;
		top: 264px;
		right: 31px;
		width: 40px;
		height: 40px;
	}
	
	.map_text {
		position: absolute;
		left: -39px;
		bottom: 164px;
		padding: 10px;
		font-size: 24px;
	}
	
	.map_text::before {
		border-left-width: 4px;
		left: 56px;
		top: calc(100% + 4px);
		height: 128px;
		transform: skewX(24deg);
	}

	.map-2 .map_text {
		left: auto;
		right: 220px;
		bottom: 302px;
		padding: 10px;
		font-size: 17px;
	}
	
	.map-2 .map_text::before {
		border-left-width: 4px;
		left: calc(100% + 4px);
		top: 50px;
		height: 199px;
		transform: rotate(-56deg);
	}

	.circle {
		margin: auto;
	}
	
	.circle > span {
		width: calc(33.3% - 22px);
		border-width: 2px;
		margin: 10px;
	}
}

@keyframes yurayura {
	0% , 100%{
		transform: rotate(2deg);
	}
	50%{
		transform: rotate(-2deg);
	}
}

@keyframes wink {
	from {
		background-position: 0 0;
	}
	to {
		background-position: -145.6vw 0;
	}
}

@keyframes wink_pc {
	from {
		background-position: 0 0;
	}
	to {
		background-position: -1197px 0;
	}
}
@keyframes blink {
	0%,100% {
		opacity: 0.5;
	}

	50% {
		opacity: 0;
	}
}