@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1p:wght@500;800&display=swap');
/*-------------------------*/
/*Reset*/
html{margin:0; padding:0; border:0;scroll-behavior: smooth;}
*{border:0; box-sizing: border-box; margin:0; padding:0;}
body{
background: url(../img/bg_all.webp) center top / cover repeat-y fixed #70c3ff;
color: #343434;
font-family: "M PLUS 1p", sans-serif;
line-height:1;
-webkit-text-size-adjust:100%;
width:100%;
}
h1,h2,h3,h4,h5,h6,p,span,table,a,img,dl,dt,dd,ul,li,ol,iframe,nav,small{
margin:0;	padding:0; font-size:100%;font-weight:normal; background:transparent;
vertical-align:baseline; border:none;}
img{vertical-align:top;}
ol, ul{list-style:none; list-style-type:none;}
a:link{color:#DF1E5E; text-decoration:none;}
a:visited{color:#333; text-decoration:none;}
a:hover{color:#1562c5; text-decoration:none;}
.onlyPc{}
.onlySp{display: none;}
/*-------------カスタムプロパティ------------*/
:root {
	--max-width: min(90vw,1260px);
}
/*-------------スクリーンリーダー専用（非表示）------------*/
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}

/*-------------------------*/
#sns_button_pc{margin: 15px auto;min-height: 50px; width: 120px;}
#sns_button_pc .btn_sns img{height: 50px;width: 50px;margin: 0 5px;}

/*-- header -----------------------*/
#header{min-height: 94px;}

/*-- Pan_box ----------------------*/
#pan_box{
background:#333;
color:#fff;
font-size: 0.8em;
min-height: 24px;
padding: 8px 0 8px 10px;
width: 100%;
}
#pan_box .in{
color: #fff;
margin:0 auto;
width:1260px;
}
#pan_box a{
color:#fff;
text-decoration:none;
}
#pan_box a:hover{color: #fffd4b;}

/*-- SNS ----------------------*/
#sns_button_sp{
display: none;
}
.sns{
width:30%;
height:40px;
margin: 20px auto;
display:flex;
justify-content:space-between;
flex-wrap:wrap;
}
.sns a{
display:block;
width:40px;
height:40px;
margin:0 !important;
}
.sns img{
width:40px !important;
height:40px !important;
margin:0 !important;
}

/*-- footer/PC	-------------------*/
footer{
background: #333;
clear: both;
font-size: 0.9em;
line-height: 1.5em;
margin-top: 30px;
min-height: 640px;
text-align: center;
}
footer .mx_copyright{
color:#fff;
padding: 8px 0;
}
footer .mx_copyright a{
color:#fff;
text-decoration:underline;
}
footer a{
color: #d00;
text-decoration: none;
}

/*-- 緊急テキスト ----------------------*/
#rp_textbox{
background: rgba(255,255,255,0.7);
border: #928484 solid 1px;
font-size: 0.9em;
margin: 20px auto;
padding: 8px;
line-height: 1.6em;
text-align: left;
max-width: 960px;
width: 90%;
}
#rp_textbox .pop_text{
background:#fff;
-webkit-border-radius: 2px;-moz-border-radius: 2px;border-radius: 2px;
border: #c9c9c9 solid 1px;
font-size:0.9em;
line-height:1.5em;
margin:0 auto;
padding:20px;
text-align:left;
max-width: 900px;
word-break: break-all;
width:75%;
}
#rp_textbox .pop_text .popup_title{
border-bottom: #999 dotted 1px;
font-size:1.1em;
line-height:1.5em;
font-weight:bold;
margin:0 0 15px 0;
padding-bottom:5px;
text-align:center;
width:100%;
}
#rp_textbox .ema_img {
display: block;
text-align: center;
width: 100%;
}
#rp_textbox .ema_img img{
margin: 0 auto 10px;
max-width: 100%;
}
#rp_textbox a{
color:#d00;
text-decoration:underline;
}

/* 動画囲いタグ ----------------------　<div class="video-container"></div> */
.video-container {
padding: 56.25% 0 0;
position: relative;
width: 100%;
}
.video-container iframe{
height: 100% !important;
position: absolute;
right: 0;
top: 0;
width: 100% !important;
}

/*-- google翻訳 ----------------------*/
.skiptranslate.goog-te-gadget,
a.goog-logo-link{color:#fff !important;}

/*-- ローディング ----------------------*/
#loader{background-color:#fff; position:fixed;width:100%;height:100%;z-index: 1000;}/*背景*/
.loader,.loader:before,.loader:after {
background: #aaa;
-webkit-animation: load1 1s infinite ease-in-out;
animation: load1 1s infinite ease-in-out;
height: 4em;
width: 1em;
top: 50%;
}
.loader {
color: #ccc;
text-indent: -9999em;
margin: auto;
position: relative;
font-size: 11px;
-webkit-transform: translateZ(0);-ms-transform: translateZ(0);transform: translateZ(0);
-webkit-animation-delay: -0.16s;animation-delay: -0.16s;
position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
}
.loader:before,.loader:after {
position: absolute;
top: 0;
content: '';
}
.loader:before {
left: -1.5em;
-webkit-animation-delay: -0.32s;animation-delay: -0.32s;
}
.loader:after {
left: 1.5em;
}
@-webkit-keyframes load1 {
	0%,80%,100% {
	box-shadow: 0 0;
	height: 4em;
	}
	40% {
	box-shadow: 0 -2em;
	height: 5em;
	}
	}
	@keyframes load1 {
	0%,80%,100% {
	box-shadow: 0 0;
	height: 4em;
	}
	40% {
	box-shadow: 0 -2em;
	height: 5em;
	}
}
/* -- main ------------------------------------------------------*/

.title {
		width: min(100%, 1400px);
		margin: auto;
}
.title img {
	width: 100%;
	height: auto;
}
.time {
	background-color: #fff;
	color: #e6005c;
	font-size: min(3.4vw, 1.75em);
	font-weight: bold;
	padding: min(3vw, 1em);
	text-align: center;
}
.oa_time {
	font-size: min(8vw, 2em);
	font-weight: bold;
}
.contents .oa_time {
	font-size: min(5vw, 1.2em);
}
.link {
	margin-top: 1rem;
}
.link img {
	width: min(70%, 420px);
}
small.copy {
	font-size: 0.8rem;
	text-align: center;
	display: block;
	margin: min(10vw, 5em) auto;
	transform: rotate(0.05deg);
}
/*-----------------------------------*/
/* nav */
#box_menu {
		background: url(../img/bg_nav.png) top center /min(5%,30px) repeat #fff;
		font-size: 1.5em;
		position: sticky;
		padding: min(3vw, 0.8em) 0;
		top: 0;
		z-index: 998;
}
#box_menu ul {
	display: flex;
	width: min(92vw, 800px);
	justify-content: space-between;
	margin: auto;
}
#box_menu img {
	width: 100%;
}
.btn_top a,
.btn_about a,
.btn_challenges a,
.btn_cast a,
.btn_sns a
{
	color: #333;
	font-size: min(4vw,1.2em);
	font-weight: bold;
	text-align: center;
	display: block;
	text-shadow: 2px 2px 0 #FFF, -2px -2px 0 #FFF, -2px 2px 0 #FFF, 2px -2px 0 #FFF, 0px 2px 0 #FFF, 0 -2px 0 #FFF, -2px 0 0 #FFF, 2px 0 0 #FFF;
}
.btn_top span,
.btn_about span,
.btn_challenges span,
.btn_cast span,
.btn_sns span {
	display: block;
	font-size: 0.6em;
	margin-top: 0.25em;
	transform: rotate(0.05deg);
}

[id^="area-"] {
  scroll-margin-top: 5em; /* メニュー分の余白 */
}

.area-box {
	background: url(../img/corner_deco.png) top left /min(10%,100px) no-repeat rgba(255, 255, 255, 0.85);
	box-shadow: 0 0 min(1vw, 0.3em) rgba(0, 0, 0, 0.3);
	width: var(--max-width);
	margin: min(10vw, 5em) auto;
	border-radius: 0 min(5vw, 2em) min(5vw, 2em) min(5vw, 2em);
	display: flow-root;
}
.area-box h2 {
	color: #df1e5e;
	font-size: min(6vw, 2.5em);
	font-weight: bold;
	padding: min(3vw, 1em);
	padding-top: min(5vw, 1.6em);
	text-align: center;
}
.area-box h2 span {
	display: block;
	font-size: 0.6em;
	margin-top: 0.4em;
}
.contents {
	margin: min(6vw, 3em);
	margin-top: 0;
	font-size: min(3.6vw, 1.4em);
	line-height: min(8vw, 1.8em);
	word-break: keep-all;
	/*overflow-wrap: break-word;
	word-break: normal;*/
	text-align: center;
	drop-shadow(0px 0px 3px rgba(0,0,0,0.1))
}
.info {
	background: #fff;
	border-radius: 2em;
	padding: min(5vw, 2em);
	position: relative;
	margin-top: 3em;
}
.info h3 {
	background-color: #ffff2c;
	display: inline-block;
	font-size: 1.2em;
	position: absolute;
	top: -1.4em;
	left: -0.5em;
	padding: 0.25em 0.25em 0.25em 0.5em;
	transform: rotate(-5deg);
}
.btnLinkBnr {
	background: #374054;
	border-radius: 1em;
	box-shadow: 0.25em 0.25em 0px 0px #fffd4b;
	color: #efefef !important;
	display: block;
	margin: 1em auto;
	padding: 1em;
	text-align: center;
	text-decoration: none;
	width: 82%;
	max-width: 580px;
	font-weight: bold;
}
.contents strong {
	display: inline-block;
	font-size: min(4.2vw,1.5em);
	margin: 0.25em;
}
.inline_block {
	display: inline-block;
}
.marker {
	background-image: repeating-linear-gradient(-45deg, #fffd4b 0, #fffd4b min(2vw, 0.25em), transparent min(2vw, 0.25em), transparent min(4vw, 0.5em));
	background-position: left bottom;
	background-repeat: no-repeat;
	background-size: 100% 0.8em;
	font-size: min(4vw, 1.2em);
}
/*-----------------------------------*/

.cast-menu {
	margin-bottom: 2em;
}

.cast-menu ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
	justify-content: center;
}

.cast-menu ul li a {
	text-align: center;
	color: #666;
	background-color: #fff;
	border-radius: 5vw;
	font-size: min(2.8vw, 0.75em);
	filter: drop-shadow(0 0 min(1vw, 0.2em) rgba(0, 0, 0, 0.1));
	padding: min(2vw, 0.5em) min(3vw, 1em);
	display: block;
	transform: rotate(0.05deg);
}

/* ---------------------------
   CAST LIST（dt + dd の構造をそのまま利用）
---------------------------- */
.cast-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;   /* 中央寄せ */
	gap: 1em;                 /* 要素間余白 */
	padding: 0;
	margin: min(10vw,5em) 0;
}

/* dt（ロゴ）は flex の1行全幅を使う */
.cast-list dt.group-name {
	flex-basis: 100%;          /* 1段目を占有 */
	display: flex;
	justify-content: center;   /* ロゴ自体を中央へ */
}

/* ロゴ画像ブロック */
.cast-list dt.group-name .group-logo {
	display: flex;
	flex-direction: column;
	max-width: min(100%, 420px);
	align-items: center;
}

.group-logo img {
	width: 100%;
	max-width: min(50vw, 420px);
}

.group-logo figcaption {
	opacity: 0.8;
	font-size: 0.8em;
	line-height: 1.2em;
	margin-top: 1em;
	transform: rotate(0.05deg);
}

/* dd（メンバー） */
.cast-list dd {
	margin: 0;
	display: flex;
	justify-content: center;
	width: 8rem;
}

/* figure（丸画像 + テキスト） */
.cast-list figure.cast {
	display: flex;
	flex-direction: column;
	align-items: center;
}

/* -------------------------
	 各メンバーの figure
------------------------- */
.cast {
text-align: center;
}

.cast img {
width: 100%;
border-radius: 50%;
display: block;
text-align: center;
border: solid min(2vw, 0.2em);
}

/* --- STPR --- */
.cast-rinu img { border-color: #E54444; }
.cast-root img { border-color: #F6D24A; }
.cast-colon img { border-color: #6CC7FF; }
.cast-jel img { border-color: #F6A55D; }
.cast-satomi img { border-color: #E59ECA; }
.cast-nanamori img { border-color: #8A6BD8; }

/* --- KnightX --- */
.cast-shiyun img { border-color: #2E8B57; }
.cast-takeyaki img { border-color: #DADADA; }
.cast-vau img { border-color: #C64949; }
.cast-teruto img { border-color: #F0A5C1; }

/* --- AMPTAK --- */
.cast-akkiy img { border-color: #F4D44A; }
.cast-mazeta img { border-color: #7F5BD3; }
.cast-pretz img { border-color: #CBE06B; }
.cast-tigusakun img { border-color: #5DB0DF; }
.cast-atto img { border-color: #C64545; }
.cast-ketcha img { border-color: #F58CC3; }

/* --- Meteorites --- */
.cast-shion img { border-color: #9067D7; }
.cast-rose img { border-color: #C33C3C; }
.cast-lapis img { border-color: #C5EFFF; }
.cast-melt img { border-color: #EAEAEA; }
.cast-mikasa img { border-color: #F7ADD1; }
.cast-light img { border-color: #F3D65A; }

/* --- SneakerStep --- */
.cast-nishiki img { border-color: #DFDFDF; }
.cast-yanato img { border-color: #F3D44D; }
.cast-yutakun img { border-color: #93D8FF; }
.cast-tachibana img { border-color: #546BBB; }
.cast-daiquiri img { border-color: #E5CD70; }
.cast-osadei img { border-color: #79DBF8; }
.cast-rao img { border-color: #C23535; }

.cast figcaption {
margin-top: 0.3em;
font-size: min(3vw, 1em);
line-height: 1.2em;
}

/*-----------------------------------*/

.sns-menu {
	margin-bottom: 2em;
}

.sns-menu ul {
	display: flex;
	flex-wrap: wrap;
	gap: min(3vw, 1em);
	justify-content: space-evenly;
}

.sns-menu ul li {
    width: 45%;
}

.sns-menu ul li a {
	text-align: center;
	color: #666;
	background-color: #fff;
	border-radius: 5vw;
	font-size: min(2.8vw, 0.75em);
	line-height: 1.2em;
	font-weight: bold;
	filter: drop-shadow(0 0 min(1vw, 0.2em) rgba(0, 0, 0, 0.1));
	padding: min(3vw, 0.8em) min(2vw, 0.5em);
	display: block;
	transform: rotate(0.05deg);
}

.sns-menu ul li a span {
	display: inline-block;
	margin-left: 1em;
	font-weight: lighter;
}

/* 2000px↑ -------------------------------------------------- */
@media screen and (max-width:1600px) {

}
/* TAB	-------------------------------------------------- */
@media screen and (max-width:900px) {
	.cast-list dd {
    width: 25%;
}

	/*-- 緊急テキスト ----------------------*/
	#rp_textbox{
	margin: 10px auto;
	max-width:640px;
	width:85%;
	}
	#rp_textbox .pop_text{}
	#rp_textbox .popup_title{
	margin-bottom:10px;
	}

	/*-- SNS -----------------------*/
	#sns_button_pc{
	display: none;
	}
	#sns_button_sp{
	display: block;
	padding: 0;
	text-align: center;
	}
	#sns_button_sp .btn_sns{
	margin: 0 2px;
	}
	#sns_button_sp .btn_sns img{
	height: 50px; width: 50px;
	}

}
/* SP	-------------------------------------------------- */
@media screen and (max-width:640px) {
	body{
	    background: url(../img/bg_all.webp) center top / cover repeat-y #70c3ff;
	    /* fixed を削除 */
	}
	#pan_box{
	overflow-x: scroll;
	}
	.cast-list dd {
	    width: 20%;
	}
	.sns-menu ul li {
	    width: 100%;
	}
}