.mediaViewInfo {
	--web-view-name: TOP画面;
	--web-view-id: TOP;
	--web-scale-on-resize: true;
	--web-enable-deep-linking: true;
}
:root {
	--web-view-ids: TOP;
	--bg_main_dark: rgb(0, 87, 167);
	--bg_main_normal: rgb(49, 173, 255);
	--bg_main_light: rgb(189, 229, 255);
	--bg_white: rgb(255, 255, 255);
	--bg_gray: rgb(224, 224, 224);
	--bg_reverse: rgb(243,170,61);
	--color_correct: rgb(48, 224, 48);
	--color_wrong: rgb(255, 96, 96);
	--content_width: 800px;
}
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	border: none;
	font-family: 'Zen Kaku Gothic Antique', sans-serif;
}

body{
	position: relative;
	min-height: 100vh;
	padding-bottom: 40px;
	overflow: hidden;
	overflow-y: auto;
}

.flex_div{
	display:flex;
}
.flex_center{
	display:flex;
	justify-content: center;
}
.flex_middle{
	display:flex;
	align-items: center;
}
.flex_center_middle{
	display:flex;
	justify-content: center;
	align-items: center;
}
.flex_baseline{
	display:flex;
	align-items: baseline;
}

.sc_y{
	overflow-y:auto;
	overflow-x:hidden;
}

.bg_white{
	background-color: white;
	color: black;
}
.bg_navy{
	background-color: rgb(0, 87, 167);
	color: white;
}
.bg_blue{
	background-color: rgb(49, 173, 255);
	color: white;
}
.bg_gray{
	background-color: rgb(224, 224, 224);
	color: black;
}

.tx_lf{
	text-align: left;
}
.tx_ct{
	text-align: center;
}
.tx_rt{
	text-align: right;
}


.relative{
	position: relative;
}

.pointer:hover{
	cursor: pointer;
}

*::-webkit-scrollbar{
    overflow: hidden;
    width: 5px;
    -webkit-border-radius: 3px;
    border-radius: 3px;
    background-color: #999999;
}
*::-webkit-scrollbar-button{
    display:none;
}
*::-webkit-scrollbar-piece{
    background: #eeeeee;
}
*::-webkit-scrollbar-piece:start{
    background: #eeeeee;
}
*::-webkit-scrollbar-thumb{
    overflow:hidden;
    -webkit-border-radius: 3px;
    border-radius: 3px;
    background: #333333;
}
*::-webkit-scrollbar-corner{
    overflow:hidden;
    -webkit-border-radius: 3px;
    border-radius: 3px;
}

#TOP {
	position: relative;
	width: 100vw;
	height: 100%;
	background-color: rgba(255,255,255,1);
	--web-view-name: TOP画面;
	--web-view-id: TOP;
	--web-scale-on-resize: true;
	--web-enable-deep-linking: true;
	display: flex;
	justify-content: center;
	top: 0;
	left: 0;
	padding-bottom:30px;
}
#title{
	position: relative;
	display: flex;
	width: var(--content_width);
	height: 100%;
	margin: auto;
}
.header {
	position: fixed;
	width: 100vw;
	height: 50px;
	top: 0;
	left: 0;
	display: flex;
	align-items: center;
	background-color: var(--bg_main_dark);
	z-index: 5;
}
.main{
	position: relative;
	top: 49px;
	min-height: calc(100vh - 50px);
}

#links {
	position: absolute;
	right: 10px;
	top: 50px;
	background-color: var(--bg_main_normal);
	display: none;
}

#logo {
	font-style: normal;
	font-weight: bold;
	color: rgba(255,255,255,1);
	cursor: pointer;
}
#logo::before{
	content: "";
	background-image: url(../img/JOHObox_logo.png);
	height: 40px;
	display: inline-block;
	width: 84px;
	background-size: contain;
}

#mode {
	font-style: normal;
	font-weight: bold;
	color: rgba(255,255,255,1);
	margin-left: 20px;
}
#mode img{
	height:2em;
	width:2em;
	filter: grayscale(1) brightness(10);
	padding: 5px;
}
#view_area{
	position: relative;
	width: 100vw;
	/* height: 380px; */
	background-color: var(--bg_main_dark);
	padding-top: 3px;
}

#separator{
	position: relative;
	width: 100%;
/*	height: 1px; */
/*	top: 330px; */
/*	margin: 5px 0; */
	background: gray;
	box-shadow: 0px 0px 2px;
}

.header_link {
	font-style: normal;
	font-weight: bold;
	font-size: 0.8em;
	color: rgba(255,255,255,1);
	padding: 10px;
	cursor: pointer;
}
.header_link:hover{
	background-color: var(--bg_reverse);
}
.header_link img {
	margin-right: 5px; 
	height: 2em;
	width: 2em;
	filter: brightness(5) grayscale(5) contrast(5);
}

.header_link span {
	width: 100%;
}

.logout:hover{
	background-color: rgba(224,0,0,1);
}

.Component {
	width: 150px;
	height: 140px;
	display: flex;
	justify-content: center;
/*	background-color: white; */
	background-color: var(--bg_gray);
/*	filter: drop-shadow(0px 3px 6px rgba(0, 0, 0, 0.161)); */
/*	border: solid 2px rgba(112,112,112,0.7); */
	border-radius: 1em;
}
.Component .sel_mode{
	font-size: 1.2rem;
	text-align: center;
}
.outComponent {
	width: 160px;
	height: 170px;
	display: flex;
	justify-content: center;
	margin: 5px;
	padding: 5px;
	align-items: center;
}

.content_name {
	margin-top: 72px;
	position: absolute;
	overflow: visible;
	white-space: nowrap;
	text-align: left;
	font-style: normal;
	font-weight: normal;
	font-size: 1.1em;
	color: black;
}
.content_icon {
	position: absolute;
	width: 60px;
	height: 60px;
	margin-top: 10px;
}
.content_ex {
	margin-top: 100px;
	position: absolute;
	white-space: nowrap;
	font-style: normal;
	font-weight: normal;
	font-size: 0.75em;
	color: black;
}
.start_bar {
	margin-top: 120px;
	position: absolute;
	overflow: visible;
	width: 7.5em;
	white-space: nowrap;
	text-align: center;
	font-style: normal;
	font-weight: normal;
	font-size: 0.8em;
	color: black;
/*	background-color: rgba(0,87,167,1); /* blue */
	background-color: var(--bg_reverse); /* orange */
	height: 2em;
	border-radius: 100em;
	padding: 0.5em;
}
.start_bar::before{
	content: "チャレンジ";
}

.view_contents{
	position: relative;
	width: var(--content_width);
	margin: 10px auto;
	background-color: white;
	border-radius: 10px;
	text-align: center;
}

#homebtn_position{
	position: relative;
/*	top: 320px; */
/*	left: 20vw; */
	width: 80px;
/*	height: 80px; */
	display: inline-flex;
	margin-left: 25vw;
}

.home_button{
	width: 80px;
	height: 40px;
	background-color: white;
	border: solid 1px rgba(112,112,112,0.7);
	border-radius: 100px;
/*	text-align: center; */
	padding: 5px;
/*	box-shadow: 0px 2px 5px 1px rgb(112 112 112); */
	transition: all 0.15s ease;
	display: inline-flex;
	justify-content: center;
	margin: auto;
/*	filter: drop-shadow(0px 3px 6px rgba(0, 0, 0, 0.161)); */
}
.button_icon{
/*	margin: auto; */
	height: 100%;
}
button:hover, input:hover~button, .submit_button:hover, .home_button:hover, .select_button:hover{
/*	width: 90px; */
/*	height: 45px; */
	background-color: var(--bg_main_light); /* blue */
/*	background-color: rgba(243,170,61,1); /* orange */
	color: black;
/*	-webkit-transform: translateY(1.5px); */
/*	transform: translateY(1.5px); */
/*	box-shadow: 0px 2px 3px 1px rgb(112 160 192); */
	cursor: pointer;
}
button:active, input:checked~button, .submit_button:active, .home_button:active, .select_button:active, .select_button.active, .select_button:has(input[type=radio]:checked) /*, .select_button:has(input[type=checkbox]:checked) */ {
/*	-webkit-transform: translateY(3px); */
/*	transform: translateY(3px); */
/*	box-shadow: 0px 0px 2px 0px rgb(112 112 112); */
	background-color: var(--bg_main_normal); /* blue */
/*	background-color: rgba(255, 173, 49); /* orange */
	color: black;
}
/* FireFox用に個別 */
.select_button.active{
	background-color: var(--bg_main_normal); /* blue */
	color: black;
}

.select_button{
	position: relative;
	background-color: white;
	border-radius: 5px;
	text-align: center;
	padding: 5px;
/*	box-shadow: 0px 2px 4px 1px rgb(112 112 112); */
	transition: all 0.15s ease;
	display: inline-flex;
	margin: 5px;
/*	filter: drop-shadow(0px 3px 6px rgba(0, 0, 0, 0.161)); */
	justify-content: center;
}

.function_button{
	width: 240px;
	height: 40px;
/*	border-radius: 1em; */
/*	box-shadow: 0px 2px 5px 1px rgb(112 112 112); */
	margin: 0;
}
.function_button span{
	color: black;
	margin: auto 20px;
	font-size: 1.2em;
}

.function_button_sub{
	width: 100px;
	height: 30px;
}
.function_button_sub span{
	color: black;
	margin: auto;
	font-size: 0.9em;
}

.home_button:hover > .button_icon, .select_button:hover > .button_icon{
	filter: grayscale(1) contrast(1.5);
}
.home_button:active > .button_icon, .select_button:active > .button_icon, .active .button_icon{
	/* filter: grayscale(1) brightness(10) !important; */
}
.home_button:active > span, .select_button:active > span, .active span, .select_button:has(input[type=radio]:checked) > span, .select_button:has(input[type=checkbox]:checked) > span, .select_button:has(input[type=radio]:checked) > label /*, .select_button:has(input[type=checkbox]:checked) > label */{
	color: white;
}
.active span{
	color: white;
}


.Component:hover{
	width:155px;
	height:145px;
	transition: 0.3s ease;
	cursor: pointer;
	position: absolute;
	padding: 2.5px;
	background-color: var(--bg_reverse);
}
.Component:hover span{
	color: black;
}
.Component:hover .start_bar{
	background-color: black;
	font-size: 0.9em;
	transition: 0.3s ease;
	color: var(--bg_reverse);
}
.Component:hover .start_bar span{
	color: var(--bg_reverse);
}

.Component:hover .content_icon {
    width: 65px;
    height: 65px;
    transition: 0.3s ease;
    margin-top: 5px;
    position: absolute;
    filter: grayscale(1) contrast(1.5);
}

.footer {
	position: absolute;
	bottom: 0;
	left: 0;
	font-style: normal;
	font-weight: normal;
	font-size: 0.6em;
	background-color: var(--bg_main_dark);
	color: white;
	width: 100vw;
	height: 30px;
	padding-top: 8px;
	text-align: center;
	
}

.form_area{
	background-color: var(--bg_gray);
	border-radius: 5px;
	width: var(--content_width);
	margin: 10px auto;
	overflow: hidden;
}

#contents {
	position: relative;
	max-width: 600px;
	margin: 10px auto;
	display: flex;
	flex-flow: wrap;
	justify-content: center;
}

#cm_banner {
	position: relative;
	top: 10px;
	max-width: calc(var(--content_width) - 40px);
	margin: auto;
}

.view_circle{
	height: 150px;
	width: 150px;
	padding-top: 3%;
	margin: auto;
	background-color: rgba(255,255,255,1);
	border:solid 10px rgba(210,233,255,1);
	border-radius:100em;
	color:black;
	text-align:center;
	font-size: 0.9em;
	position: relative;
}
.view_circle hr{
	width:80%;
	height: 2px;
	background-color: rgba(192,192,192,1);
	position: relative;
	top: 10%;
	margin: auto;
}
.view_circle div{
}
.view_circle div span{
	display: inline-block;
	margin: 3px;
	white-space: nowrap;
}
.circle_head{
	max-height: 50px;
	position: relative;
	top: 7%;
}
.circle_foot{
	position: relative;
	top: 25%;
	text-align: center;
}
.view_circle #correct_cnt{
	font-size: 2.5em;
}
.view_circle #cnt{
	font-size: 2em;
}

#today_div{
	width: 200px;
	margin: 10px;
}

#today_correct{
	height: 140px;
	width: 140px;
	margin: auto;
}
#today_correct .circle_foot{
	text-align: center;
}

progress{
	-webkit-appearance: none;
	width: 150px;
}

::-webkit-progress-bar {
    background-color: white;
    border-radius: 1em;
    height: 8px;
    border: solid 1px gray;
}

::-webkit-progress-value {
    background: rgba(106,255,126,1);
    border-radius: 1em;
    border-right: solid 1px rgba(192,192,192,1);
}

#level{
	font-size: 1.5em;
	display: inline-block;
	width: 2em;
	text-align: right;
}

#level_next{
	font-size: 0.7em;
	position: relative;
	display: inline-block;
	width: 10em;
}

#level_total{
	font-size: 0.7em;
	position: relative;
	right: -120px;
}

.circle_div{
	width: 180px;
}

.circle_title{
	display: block;
	margin: auto;
	text-align: center;
	padding: 5px;
}

#modal_back, #modal_black, #modal_half_black{
	background-color: rgba(0,0,0,0.6);
	width: 100%;
	height: 100vh;
	z-index: 1;
	position: absolute;
	top: 0;
	left: 0;
	pointer-events: all;
}
#modal_half_black{
	height: 11rem !important;
}
#modal_div{
	width: 100%;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	display: none;
	z-index: 10;
	pointer-events: none;
}

button, .submit_button{
	border-radius: 100em;
	transition: all 0.15s ease;
}

/*
button:hover, input:hover~button, .submit_button:hover{
	-webkit-transform: translateY(1.5px); 
	transform: translateY(1.5px); 
	box-shadow: 0px 2px 3px 1px rgb(112 192 160); 
	background-color: rgba(192, 255, 224);
}
button:active, input:checked~button, .submit_button:active{
	-webkit-transform: translateY(3px); 
	transform: translateY(3px); 
	box-shadow: 0px 0px 2px 0px rgb(112 112 112); 
	background-color: rgba(168, 224, 192);
}
*/

.submit_button{
/*	background-color: var(--bg_main_dark);  blue */
	background-color: var(--bg_reverse); /* orange */
/*	color: white; */
	color: black;
	cursor: pointer;
}

.start_button{
	width: 200px;
	height: 50px;
	text-align: center;
	padding: 5px;
	display: inline-flex;
	margin: auto;
	cursor: pointer;
}

.start_button span{
	display: inline-block;
	margin: auto;
}
.startbtn_position{
	position: relative;
	height: 80px;
	display: flex;
	margin: auto;
}



.yureru-s {
    animation: yureru-s 1s infinite;
}
@keyframes yureru-s {
    0% {
        transform: translate(2px, 0px);
    }
    5% {
        transform: translate(-2px, 0px);
    }
    10% {
        transform: translate(2px, 0px);
    }
    15% {
        transform: translate(-2px, 0px);
    }
    20% {
        transform: translate(2px, 0px);
    }
    25% {
        transform: translate(-2px, 0px);
    }
    30% {
        transform: translate(0px, 0px);
    }
}
.yureru-s:hover{
    background-color: rgba(224, 96,96,1) !important;
}

.fuchi-red{
	-webkit-text-stroke: 1px red;
	text-stroke: 1px red;
}

#inputs button{
	height: 4em;
	width: 10em;
	margin-top: 2em;
}

input[type=radio]{
	position: absolute;
	opacity: 0;
	top: 0;
	left: 0;
	height: 100%;
	width: 100%;
	cursor: pointer;
	z-index: 1;
	margin: 0;
}

.modal_button_box{
	display: flex;
}
.modal_button_div{
	position: relative;
	margin: 10px;
	padding: 10px;
}
.modal_button_div button{
	height: 100%;
	width: 100%;
}

*:disabled, .disabled, .disabled:hover{
	cursor: auto !important;
	filter: contrast(0.3) grayscale(1);
	pointer-events: none;
}

.modal_window{
	background: white;
	z-index: 5;
	position: relative;
	padding: 1em 5em;
	margin: auto;
	width: 720px;
	height: 100%;
	top: 100px; 
	border-radius:10px;
	text-align: center;
	max-height: calc(100vh - 150px);
	pointer-events: all;
}

.config{
	display: flex;
	text-align: justify;
	margin: 10px;
	padding: 10px;
}
.config_left{
	width: 150px;
}
.config_right{
	width: 400px;
}
.config_right input[type=range]{
	margin: 5px 20px 10px 0;
}

#start_button{
	position: relative;
	display: block;
	height: 4em;
	width: 10em;
	margin: 3em auto;
}

span.maru{
	color: rgb(0,224,0);
	filter: drop-shadow(0 0 1px);
	opacity: 1 !important;
}
span.maru::after{
/*	content: "○"; */
	content: "\25cb";
}
span.batu{
	color: rgb(224,0,0);
	filter: drop-shadow(0 0 1px);
	opacity: 1 !important;
}
span.batu::after{
/*	content: "×"; */
	content: "\00d7";
}
span.skip{
	color: rgb(0,0,0);
	filter: drop-shadow(0 0 1px);
	opacity: 1 !important;
}
span.skip::after{
/*	content: "－"; */
	content: "\ff0d";
}

.ai_comment{
	border-radius: 10px;
	border: double;
	font-family: 'DotGothic16', Meiryo;
	background-color: white;
	padding: 10px;
}

#logout_view{
	font-size: 1.5em;
	display: flex;
	justify-content: center;
	padding: 1em;
	transition: all 0.5s;
	height: 135px;
}
#logout_view::before{
    content: "";
    background-image: url(../img/ai_face.png);
    width: 100px;
    height: 85px;
    display: inline-block;
    background-size: contain;
    margin-right: 2em;
    align-self: center
}
#logout_view::after {
	/* お疲れさまでした。また利用してくださいね。 */
    content: "\304a\75b2\308c\3055\307e\3067\3057\305f\3002\a\307e\305f\5229\7528\3057\3066\304f\3060\3055\3044\306d\3002";
    white-space: pre-wrap;
    line-height: 2em;
    align-self: center
    font-family: 'DotGothic16', Meiryo;
    
}

#logout_view img{
	height: 100px;
}

#loading{
	height: auto;
	font-size: 1.2em;
	display: flex;
	justify-content: center;
    font-family: 'DotGothic16', Meiryo;
}
#loading div{
	line-height: 2.5em;
}
#loading img{
	height: 80px;
	animation: swing ease-in-out 2s infinite;
	margin-right:1.5em
}
@keyframes swing {
	0% {
		transform: rotate(-15deg);
	}
	50% {
		transform: rotate(15deg);
	}
	100% {
		transform: rotate(-15deg);
	}
}

#fadeout_black{
	position: absolute;
	z-index: 100;
	height: 100vh;
	width: 100vw;
	top:0;
	left:0;
	background-color: black;
	display:none;
}

.modal_button{
	font-size: 1.2em;
	height: 2em;
	width: 5em;
	background-color: var(--bg_reverse);
	color: black;
	margin: 5px;
}

.footer_blank{
	position: relative;
	height: 50px;
	margin-bottom: 10px
}
.menu_icon{
	content: url(../img/menu.png);
	position: absolute;
	right: 10px;
	height: 50px;
	width: 50px;
	cursor: pointer;
	padding: 10px;
}

input[type=checkbox]{
	margin: 8px;
	transform: scale(1.4);
}

.legend_div{
	font-size: 0.7em;
	padding-top: 30px;
}
.graph_legend{
	height: 15px;
	width: 30px;
	border: solid 1px var(--bg_gray);
	margin: 3px;
}
.legend_c{
	background-color: rgb(0, 224, 0);
}
.legend_w{
	background-color: rgb(224, 0, 0);
}
.legend_s{
	background-color: rgb(0, 0, 0);
}

.modal_close{
	width: 2em;
	font-size: 1.2em;
	color: black;
	transition: all 0.3s;
	position: absolute;
	top: 0;
	right: 0;
}
.modal_close:hover{
	background-color: red;
	color: white;
}
#hint{
	background-color: var(--bg_main_light);
	height: auto;
}
.hint_icon{
	height: 1em;
	width: 1em;
	margin: -2px 5px;
}
.hint_title{
	font-size: 1.5em;
	font-weight: bold;
	border-bottom: solid 1px black;
}
.hint_main{
	text-align: left;
	padding: 10px;
}

#class_div{
	position: relative;
	width: var(--content_width);
	height: 4rem;
	margin: auto;
	padding: 10px;
	white-space: nowrap;
}
#class_name{
	font-size: 1.5em;
}
#class_sel{
	position: absolute;
	right: 5px;
	bottom: 0;
	padding: 5px;
}
#class_sel img{
	height: 16px;
	width: 16px;
}

#welcome, #message{
	font-size: 1em;
	top: 15px;
	height: 9rem;
}
.font-size-default{
	font-size: 1rem;
}
.font-size-12{
	font-size: 1.2em;
}

@media screen and (max-width: 799px) {
	:root{
		--content_width: calc(100vw - 20px);
	}
	.function_button{
		width: auto;
	}
}

@media screen and (max-width: 600px) {
	:root{
		font-size: 0.9rem;
	}
}

@media screen and (max-width: 480px) {
	:root{
		--content_width: calc(100vw - 20px);
	}
	#links {
		right: 0;
	}
	#cm_banner{
	}
	#title{
		left: 15px;
	}
	
	#homebtn_position{
		margin-left: 10px;
	}
	.function_button{
		width: auto;
		font-size: 0.9em;
	}
	
	.modal_window{
		width: var(--content_width);
		padding: 2em 10px;
		font-size: 0.9em;
	}
	#logout_view::before{
	    max-width: 82px;
	    max-height: 68px;
	    margin-right: 1em;
	    min-width: 82px;
	}
	#logout_view::after {
		/* お疲れさまでした。また利用してくださいね。（※改行なし） */
	    content: "\304a\75b2\308c\3055\307e\3067\3057\305f\3002\307e\305f\5229\7528\3057\3066\304f\3060\3055\3044\306d\3002";
	    font-size: 1.3rem;
	    text-align: left;
	    padding-left: 10px;
	    line-height: 1.5em;
	}
	#welcome{
		font-size: 0.8em;
	}
}

/* 400px以下 */
@media screen and (max-width: 400px) {
	:root{
		font-size: 0.85rem;
	}
	.function_button span{
		margin: auto 10px;
	}
}
