
html {
	font-size: 0.625em;
}
body {
	font-family: "メイリオ","Hiragino Kaku Gothic Pro",Meiryo,"ヒラギノ角ゴ Pro W3","MS PGothic","MS UI Gothic",Helvetica,Arial,sans-serif !important;
	touch-action: manipulation;
	background: #bbf6fb;
}
img {
    width: 100%;
}
.pc {
	display: block;
}
.sp {
	display:none;
}
@media only screen and (max-width: 720px) {
	.pc {
	        display:none;
	}
	.sp {
		display: block;
	}
}

.bg__wrapper {
	max-width: 720px;
	margin: 0 auto;
	background: url(../img/bg.png);
}

.header__linie {
	opacity: 0;
	animation: fadeIn-header 1s ease-in forwards;
}


/* ---------------------------------------------------------------
	効果
------------------------------------------------------------------*/
.fadeIn {
	transition: 1s;
	opacity: 0;
}
.fadeIn.animated {
	opacity: 1;
}

.fadeUp {
	transform: translate3d(0, 50px, 0);
	transition: 1s;
	opacity: 0;
}
.fadeUp.animated {
	transform: translate3d(0, 0, 0);
	opacity: 1;
}

.popUp {
	opacity: 0;
}

.popUp.animated {
	animation: popUp-image 1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

@keyframes fadeIn-header {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

@keyframes popUp-image {
	0% {
		transform: scale(0);
		opacity: 0;
	}
	70% {
		transform: scale(1.2);
	}
	100% {
		transform: scale(1.0);
		opacity: 1;
	}
}


/* ---------------------------------------------------------------
	ページ：TOP
------------------------------------------------------------------*/
.top__linie-fuki {
	width: 92%;
	margin: 6% auto 1%;
}
.top__linie-textbox {
	width: 72%;
	margin: 0 auto 10%;
}
.top__linie-vote {
	margin-bottom: 10%;
}
.top__linie-fuki2 {
	width: 60%;
	margin: 0 auto 1.5%;
}
.top__linie-button {
	width: 80%;
	margin: auto;
	cursor: pointer;

	a {
		display: block;
	}
}

.top__textbox {
	width: 100%;
	padding: 1% 3%;
	border: 2px solid #7c5637;
	background: #f7f7f7;
	color: #000;
#	font-size: calc(34 * 100vw / 720);
	font-size: min(calc(25 * 100vw / 720), 28px);
	line-height: 1.5;
	text-align: center;
	letter-spacing: 0.5vw;
}

.top__textbox::placeholder {
	color: #bfbfbf;
}

.top__textbox.error {
	color: #630015;
	border-color: #c20c33;
	background-color: #ffd9e1;
}
.friend_code-error {
	color: red;
	font-weight: bold;
	font-size: min(2.8vw, 20px);
	margin-top: 2%;
	display: none;
}
.friend_code-error.active {
	display: block;
}


.top__end-text {
    width: 90%;
    margin: 8% auto 5%;
}

.top__apl-text {
	width: 60%;
	margin: 0 auto 1%;
}
.top__apl-button {
	width: 75%;
	margin: 0 auto 5%;
}


/* ---------------------------------------------------------------
	ページ：キャラ選択
------------------------------------------------------------------*/
.select__main {
	opacity: 0;
	animation: fadeIn-header 1s ease-in forwards;
}

.select__title-logo {
	width: 100%;
	margin: 0 auto 4%;
}

.select__linie-container {
	position: relative;
}

.select__sticky-container {
	position: sticky;
	bottom: 0;
	display: flex;
	justify-content: center;
}
.select__sticky-box {
	position: relative;
}
.select__sticky-bg {
	position: relative;
	opacity: 1;
	transition: opacity 0.8s;
}
.select__sticky-container.is-stopped .select__sticky-bg {
	opacity: 0;
}
.select__sticky-button {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	width: 70%;
}

.select__sticky-button-box {
	position: relative;
}
.select__sticky-button-box .button-on {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
	opacity: 0;
}
.select__sticky-button-box .button-off {
	position: relative;
	z-index: 1;
	opacity: 1;
	transition: opacity 0.5s;
}

.select__sticky-button-box.active .button-on {
	position: relative;
	cursor: pointer;
	z-index: 1;
	opacity: 1;
	transition: opacity 0.5s;
}
.select__sticky-button-box.active .button-off {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
	opacity: 0;
}

.select__chara {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    place-items: center;
    gap: 4vw;
    width: 87%;
    margin: auto;
}

.radioItem {
	display: flex;
	align-items: center;
	column-gap: 4px;
	width: fit-content;
	line-height: 1;
	cursor: pointer;
	flex-direction: column;
	row-gap: 1vw;
	-webkit-tap-highlight-color: transparent;
}

.radioItem:not(:last-of-type) {
	margin-bottom: 16px;
}

.radioButton {
	appearance: none;
	position: relative;
	width: 20px;
	height: 20px;
	background: #fff;
	border: 1px solid #06b6d4;
	border-radius: 9999px;
	cursor: pointer;
}

.radioButton:checked::after {
	content: "";
	position: absolute;
	inset: 0;
	width: 12px;
	height: 12px;
	margin: auto;
	border-radius: 9999px;
	background-color: #06b6d4;
}


/* ---------------------------------------------------------------
	ページ：投票終了
------------------------------------------------------------------*/
.thanks__title-logo {
	width: 100%;
	margin: 0 auto 2%;
}
.thanks__chara {
	width: 45%;
	margin: 0 auto 2%;
}
.thanks__info-text {
	width: 85%;
	margin: 0 auto 5%;
}

.thanks__apl-text {
	width: 60%;
	margin: 0 auto 1%;
}
.thanks__buttun-container {
	width: 75%;
	margin: 0 auto 5%;
	display: flex;
	flex-direction: column;
	row-gap: 2vw;
}


/* ---------------------------------------------------------------
	ページ：エラー
------------------------------------------------------------------*/
.error_message {
	width: 100%;
	margin: 0 auto;
}


