/* 
	j-motion\main\css\style.css
*/

:root{
	--header-height: 92px;
	--main-width: 1280px;
	--controls-width:104px;
	--bs-border-color: #aaa;
}

* {
	box-sizing: border-box;
	letter-spacing: 0.15em;
}

body {
    margin: 0;
	font-family: 'OT-UDDigiKyokashoProN-Regular';
    background-color: #efefef;
	color: #222;
}
body.first{
	background-color: #C7F0CB;
}
body.name{
	background-color: #AFF5FF;
}


input,
textarea{
	outline: none;
}
input:focus,
textarea:focus,
.form-control:focus{
	background-color: #e5f2fa;
	box-shadow: 0 0 0 .1rem rgba(13, 110, 253, .25);
}
input::placeholder,
.form-control::placeholder {
	color: #ddd !important;
	opacity: 1 !important;
}
button {
    background: none;
    border: none;
	padding: 0;
}

a img,
button img{
	width: 64px;
	height: auto;
	transition: transform 0.3s ease;
}

a img:hover,
button:not(:disabled) img:hover{
	transform: scale(1.075);
}


/* header
-------------------------------------------------- */
header{
  	position: fixed;
  	top: 0;
	left: 0;
	width: 100%;
	z-index: 1000;
	padding: 0;
	background-color: #fff;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); 	
	height: var(--header-height);
}
header .header{
	padding:10px 0;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 20px;
	min-width: var(--main-width);
}


header .header img.logo-large{
	width: auto;
	height: 72px;
}
header .header #img-logo{
	cursor: pointer;
}

header .header .logo-ex{
	position: relative;
}
header .header .logo-ex #btn-switch-btns-disp{
	position: absolute;
	top: 8px;
    left: 30px;
}
header .header .logo-ex #user-pic{
	width: auto;
	height: 48px;
	position: absolute;
	top: 12px;
    right: 28px;
}

header .header .user{
	position: relative;
}
header .header .user #user-grade{
	position: absolute;
	top: -15px;
    left: 40px;
	font-size: 17px;
	/* cursor: pointer; */
}
header .header .user #user-name{
	font-size: 24px;
}
header .header .user img.pic{
	width: auto;
	height: 48px;
	margin-left: 10px;
}

header .header #btn-login img{
	height: 64px;
}
header .header .to-grade img,
header .header .to-back img{
	height: 56px;
}
header .header .to-play img{
	height: 72px;
}
header .header .credit button{
	border-radius: 1.5em;
	background-color: #E1E1E1;
	padding:0.15em 1em;
}
header .header .credit button:hover{
	background-color: #eee;
}

header .header .select-pic img,
header .header .select-grade img,
header .header .select-doing img{
	width: auto;
	height: 72px;
}
header .header .separator{
	height: 72px;
	width: 1px;
	background-color: #ccc;
}
header .header button img,
header .header a img{
	width: auto;
	height: 56px;
}

header .header.header-name{
	font-size: 48px;
}



/* Main Contents Area
-------------------------------------------------- */
main {
	width: var(--main-width);
	margin: 120px auto;
}

main .notice{
	font-size: 42px;
	text-align: center;
}


/* first
-------------------------------------------------- */
.first main {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100vh;
	margin: 0;
}
.first main .img-first{
	width: 60%;
	max-width: 800px;
	margin: 0 auto;
	position: relative;
}
.first main #chars-first{
	position: absolute;
    top: 57.5%;
    left: 17.5%;
}
.first main #chars-first svg{
	max-width: 7vw !important;
	max-height: 9vw !important;
}

/* @media all and (max-width:1339px) { */

/* } */


/* info
-------------------------------------------------- */
.info main {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100vh;
	margin: 0;
}
.info .pages{
	position: relative;
	width: var(--main-width);
	height: auto;
	margin-top: var(--header-height);
}
.info .pages .title{
	font-size: 52px;
	line-height: 1.5em;
	margin: 0 0 1em 0;
	font-family: 'OT-UDDigiKyokashoProN-Bold';
}
.info .pages .page{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	text-align: center;
	font-size: 28px;
	line-height: 2.25em;	
	font-family: 'OT-UDDigiKyokashoProN-Medium';
}

/* name
-------------------------------------------------- */
.name main.named {
	display: flex;
	justify-content: center;
	align-items: center;
	/* width: 100%; */
	height: calc(100vh - var(--header-height));
	margin-top: var(--header-height);
}

.name main article{
	width: 100%;
}

.name-input{
	text-align: center;
	font-size: 42px;
}

.name-input .img-birds{
	width: 20%;
	min-width: 120px;
	margin: 25px auto;
}
.name-input .img-friend{
	width: 40%;
	margin: 25px auto 7.5px auto;
}
.name-input #input-user-name{
	padding:0.25em 1em;
	border-radius: 1em;
	border:1px solid #aaa;
	margin-bottom: 30px;
	width: 50%;
	text-align: center;
}

.name-input .btns{
	margin: 1em 0;
}
.name-input .btns .btn{
	border-radius: 1em;
	padding:0.25em 0.75em;
	font-size: 42px;
}



/* pic-select
-------------------------------------------------- */
.pic-select{
	margin: 15px 0;
}
.pic-select .pic-item{
	display: inline-block;
	width: 120px;
	padding:10px;
	margin: 10px;
	cursor: pointer;
}
.pic-select .pic-item img{
	width: 100%;
	transition: transform 0.3s ease;
}
.pic-select .pic-item img:hover{
	transform: scale(1.15);
}


/* grade-select
-------------------------------------------------- */
.grade-select{
	margin: 15px 0;
}

.grade-select .elementary-school,
.grade-select .junior-high-school{
	background-image:none;
	background-repeat: no-repeat;
	background-size: 100% auto;
	background-position: center;
}
.grade-select .elementary-school{
	height: 580px;
	padding-top:275px;	
	background-image: url(../img/bg-elementary-school.png);
}
.grade-select .junior-high-school{
    height: 600px;
    width: 420px;
	padding-top:245px;	
	background-image: url(../img/bg-junior-high-school.png);
}

/* .grade-select .grade-item{
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 40px 0;
} */

.grade-select .grade-item button:disabled{
	opacity: 0.3;
}
.grade-select .grade-item .grade-item-bag button.active{
	background-color: #FFFFC0;
	box-shadow: 0 0px 30px #FFFFC0;
	
}
.grade-select .grade-item .grade-item-bag img{
	width: 84px;
	height: auto;
}
.grade-select .grade-item .grade-item-bag button.active img{
	transform: scale(1.15);
}
.grade-select .easy .grade-item .grade-item-bag img{
	width: 96px;
}
.grade-select .junior-high-school .grade-item .grade-item-bag img{
	width: 72px;
}
.grade-select .junior-high-school .easy .grade-item .grade-item-bag img{
	width: 96px;
}



/* doing-select
-------------------------------------------------- */
.doing-select{
	margin: 15px 0;
}

.doing-select .doing-select-ctg{
	margin-bottom: 25px;
}

.doing-select .doing-select-ctg button img{
	width: 100%;
}

.doing-select .doing-input-words{

}

.doing-select .doing-select-ctg button:not(.active){
	opacity: 0.5;
}
.doing-select .doing-select-ctg button.active,
.doing-select .doing-select-ctg button:hover{
	opacity: 1;
}

.doing-select .doing-select-ctg-sub .doing-select-ctg-sub-item{
	margin-bottom: 10px;
	position: relative;
}
.doing-select .doing-select-ctg-sub .doing-select-ctg-sub-item:before{
    content: "●";
    font-size: 27px;
    position: absolute;
    top: 47%;
    left: 5px;
    transform: translateY(-50%);
}
.doing-select .doing-select-ctg-sub .doing-select-ctg-sub-item:nth-child(1)::before{ color: #FFC864; }
.doing-select .doing-select-ctg-sub .doing-select-ctg-sub-item:nth-child(2)::before{ color: #FFB8A8; }
.doing-select .doing-select-ctg-sub .doing-select-ctg-sub-item:nth-child(3)::before{ color: #FFACC7; }
.doing-select .doing-select-ctg-sub .doing-select-ctg-sub-item:nth-child(4)::before{ color: #F5AAFF; }
.doing-select .doing-select-ctg-sub .doing-select-ctg-sub-item:nth-child(5)::before{ color: #BFC8FF; }
.doing-select .doing-select-ctg-sub .doing-select-ctg-sub-item:nth-child(6)::before{ color: #3FFFFF; }
.doing-select .doing-select-ctg-sub .doing-select-ctg-sub-item:nth-child(7)::before{ color: #66FFCD; }
.doing-select .doing-select-ctg-sub .doing-select-ctg-sub-item:nth-child(8)::before{ color: #B8FF98; }
.doing-select .doing-select-ctg-sub .doing-select-ctg-sub-item:nth-child(9)::before{ color: #93FF9D; }

.doing-select .doing-select-ctg-sub .doing-select-ctg-sub-item.active::after{
	content: "";
	position: absolute;
	top:50%;
	right:-6px;
	transform: translateY(-50%);
	background: url(../img/arrow-right.png) no-repeat center/contain;
	display: block;
	width: 16px;
	height: 16px;
}
.doing-select .doing-select-ctg-sub .doing-select-ctg-sub-item button{
	background-color: #fff;
	border:1px solid #aaa;
	border-radius: 1em;
	font-size:18px;
	padding:0.15em 0.75em 0.15em 2em;
	width: 100%;
	text-align: left;
}
.doing-select .doing-select-ctg-sub .doing-select-ctg-sub-item.active button{
	background-color: #FFFFC0;
}
.doing-select .doing-select-ctg-sub .doing-select-ctg-sub-item button:disabled{
	opacity: 0.5;
}
.doing-select .doing-select-ctg-sub .doing-select-ctg-sub-item button:not(:disabled):hover{
	background-color: #FFFFC0;
}

.doing-select .doing-select-words{
	background-color: #fff;
	font-size: 42px;
	border-radius: 0.25em;
	padding:0.25em 0.5em;
	line-height: 1.25em;
	border:1px solid #aaa;
}

.doing-select .doing-select-words .doing-select-words-item{
	display: flex;
	justify-content: start;
	align-items: start;
	margin: 0;
	padding:0.15em;
	border-radius: 0.25em;
}

.doing-select .doing-select-words .doing-select-words-item:hover{
	background-color: #FFFFC0;
	cursor: pointer;
}

.doing-select .doing-select-words-pagination{
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 20px;
	margin-top: 10px;
}
.doing-select .doing-select-words-pagination .selected-ctg{
	border: 1px solid #aaa;
	border-radius: 1em;
	background-color: #FFF6E8;
	font-size: 16px;
	line-height: 1.25em;
	padding: 0.25em 0.5em;
	margin: 0 10px 0 10px;
}
.doing-select .doing-select-words-pagination .selected-ctg[data-selected-ctg="ctg-e1-e2-01"],
.doing-select .doing-select-words-pagination .selected-ctg[data-selected-ctg="ctg-e1-e2-02"]{
	background: linear-gradient(to right, #FFCC40, #FFFA8F);
}
.doing-select .doing-select-words-pagination .selected-ctg[data-selected-ctg="ctg-e1-e2-03"]{
	background: linear-gradient(to right, #C5C6C6, #DADBDB);
}
.doing-select .doing-select-words-pagination .selected-ctg[data-selected-ctg="ctg-e1-e2-04"]{
	background: linear-gradient(to right, #80D8F7, #88F2F2);
}
.doing-select .doing-select-words-pagination .selected-ctg[data-selected-ctg="ctg-e1-e2-05"]{
	background: linear-gradient(to right, #FD73FF, #CACEFF);
}
.doing-select .doing-select-words-pagination .selected-ctg[data-selected-ctg="ctg-e1-e2-06"]{
	background: linear-gradient(to right, #77DD98, #A5FF8D);
}
.doing-select .doing-select-words-pagination .selected-ctg[data-selected-ctg="ctg-e1-e2-07"]{
	background: linear-gradient(to right, #FF91BC, #FFC7E8);
}
.doing-select .doing-select-words-pagination .selected-ctg[data-selected-ctg="ctg-e1-e2-08"]{
	background: linear-gradient(to right, #00E2B6, #75EFE7);
}

.doing-select .doing-select-words-pagination .page-no{
	color: #aaa;
	line-height: 1;
}
.doing-select .doing-select-words-pagination .page-no.active{
	color: var(--bs-body-color);
	font-weight: bold;
}

.doing-select .doing-input-words{
	position: relative;
	height: 86px;
	margin-top: 5px;
}

.doing-select .doing-input-words .doing-input-words-img{
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: 101;
	width: 312px;
}
.doing-select .doing-input-words .doing-input-words-input{
	position: absolute;
	left: 240px;
	bottom: 0;
	z-index: 100;

	display: flex;
	justify-content: start;
	align-items: end;	

	width: calc(100% - 312px + 70px);
}

.doing-select .doing-input-words .doing-input-words-img img{
	width: auto;
	height: 86px;
}

.doing-select .doing-input-words #input-words{
	padding: 0 25px 0 90px;
	border-radius: 1px;
	border:1px solid #333;
	font-size: 36px;
	min-width: 6em;
	height: 58px;
	width: 100%;
}
/* .doing-select .doing-input-words .doing-input-words-input .btn{
	border-radius: 1em;
	padding:0;
	font-size: 36px;
	width: 155px;
	height: 58px;
	white-space: nowrap;
	margin-left: 10px;
} */

/* .doing-select .note{
	margin: 5px 0;
	color: #8445FF;	
} */
.doing-select .doing-input-words .doing-input-words-input button{
	margin-left:15px;
}
.doing-select .doing-input-words .doing-input-words-input button img{
	width: auto;
	height: 86px;
}

/* Display Area
-------------------------------------------------- */
.displays{
	margin-bottom: 80px;
}

#input-words{}
#input-words span.input-group-text{
	background-color: #E1E1E1;
	border-radius: 64px;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;	
	width: var(--controls-width);
	padding: 0;
	justify-content: center;
}
#input-words button img{
	width: 80px;
	height: auto;
}
#input-words input#words{
	font-size: 32px;
	border-radius: 64px;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;		
}

#alert {
	margin-bottom: 1em;
}

#chars {
    /* background-color: #fff;
    border: 1px solid #ccc;
    border-bottom: none;
    border-radius: 10px; */
	border:none;
	border-top-right-radius: 10px;
	border-bottom-right-radius: 10px;	
	min-height: 300px;
	padding:10px;
}



/* operation
-------------------------------------------------- */
.operation{
	display: flex;
	justify-content: start;
	align-items: stretch;
	gap: 0;
	background-color: #fff;
	border:1px solid var(--bs-border-color);
	border-radius: 10px;
}

.operation .controls{
	background-color: #E1E1E1;
	border-top-left-radius: 10px;
	border-bottom-left-radius: 10px;
	border-right:1px solid var(--bs-border-color);
}
.operation .controls > div{
	text-align: center;
	border-bottom: 1px solid var(--bs-border-color);
	padding: 6px 0;
	width: var(--controls-width);
}
.operation .controls > div:last-child{
	border-bottom: none;
	padding: 10px 0;
	
}
.operation .controls > div#btn-speed{
	padding-bottom: 0;
}


.operation #btn-play-change button:disabled,
.operation #btn-writing-change button:not(.active),
.operation #btn-size-change button:not(.active),
.operation #btn-speed-change button:not(.active){
	opacity: 0.3;
}
.operation #btn-writing-change button.active,
.operation #btn-size-change button.active,
.operation #btn-speed-change button.active{
	opacity: 1;
}

.operation button:not(:disabled):hover{
	opacity: 1 !important;
}


.operation #btn-size-change{
	display: flex;
	justify-content: space-around;
	align-items: end;
}
.operation #btn-size-change img{
	width: 28px;
	height: auto;
}
.operation #btn-size-change .size-small img{
	width: auto;
	height: 24px;
}
.operation #btn-size-change .size-normal img{
	width: auto;
	height: 36px;		
}
.operation #btn-size-change .size-large img{
	width: auto;
	height: 48px;	
}

.operation #save-input-words img{
	width:88px;
}

.operation #btn-writing-change{
	display: flex;
	justify-content: space-evenly;
	align-items: center;
}
.operation #btn-writing-change img{
	width: 80px;
	height: auto;
}


/* speed-btn
-------------------------------------------------- */
.speed-btn {
	position: relative; 	
	display: inline-block; 	
	width: 96px;
}
.speed-btn img { 
	width: 100%;
	height: auto; 
	display: block; 
	border: none; 
}

.click-zone {
  	position: absolute;
  	cursor: pointer;
}

/* 上３ゾーン：高さを上部70%だけに限定 */
.click-zone.left,
.click-zone.center,
.click-zone.right {
  top: 0;
  bottom: 30%;        /* ← 下30%は stop 用に空ける */
  width: 33.33%;
}
.click-zone.left   { left: 0; }
.click-zone.center { left: 33.33%; }
.click-zone.right  { left: 66.66%; }

/* 下部 stop ゾーン（全幅×下30%） */
.click-zone.stop {
  left: 0;
  right: 0;
  top: 70%;
  bottom: 0;
}

.click-zone:hover {
	outline: 2px dashed #aaa;
} 


/* extra-info
-------------------------------------------------- */
#extra-info{
	
}
#extra-info-text{
	padding:1em;
	color:#13A6E8;
}
#extra-info-img{
	/* display: flex;
	align-items: start;
	justify-content: center;
	gap:30px; */
}


/* Message
-------------------------------------------------- */
#message{
	position: fixed;
	top:50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 9999;

	font-size: 1.25rem;

	/* background-color: #f3f0a0; */
	background-color: #ffea00;
	border-radius: 1rem;
	padding:0.65rem 1rem;

	transition: opacity 1s ease;
}


/* modal
-------------------------------------------------- */
.modal{
	z-index: 1200;
}
.modal-content{}


#settingsModal .modal-header h5{
	font-size: 1.5rem !important;
}
#settingsModal .modal-header #btnSave{
	background-color: transparent;
	font-size: 2rem !important;
	padding: 0 !important;
	border: none !important;
}
#settingsModal .modal-body{
	font-size: 1.35rem !important;
}


#saveMyselfModal .select-save-words-of-ctg-sub{
	margin-top: 15px;
	padding:0;
}
#saveMyselfModal .select-save-words-of-ctg-sub .select-save-words-of-ctg-sub-item{
	margin-bottom: 15px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
#saveMyselfModal .select-save-words-of-ctg-sub .select-save-words-of-ctg-sub-item button{
	background-color: #fff;
	border:1px solid #aaa;
	border-radius: 1em;
	font-size:24px;
	padding:0.15em 0.75em;
	width: calc(100% - 115px);
}
#saveMyselfModal .select-save-words-of-ctg-sub .select-save-words-of-ctg-sub-item button:not(:disabled):hover{
	background-color: #FFFFC0;
}
#saveMyselfModal .select-save-words-of-ctg-sub .select-save-words-of-ctg-sub-item a{
	border-radius: 1em;
	width: 100px;
}


#creditModal *{
	font-family: "Noto Sans JP";
}
#creditModal dl{}
#creditModal dl dt{
	font-weight: normal;
}
#creditModal dl dd{
	margin-left:2em;
	margin-bottom: 0.75em;
}

/* Input Area
-------------------------------------------------- */
.input-area {
    display: flex;
    align-items: center;
    width: 100%;
    /* padding: 15px 25px; */
	padding: 15px 0 0 0;
    box-sizing: border-box;
    flex-shrink: 0;
}

.camera-icon {
    display: flex;
    width: 50px;
    height: 50px;
    color: #666;
    margin-right: 20px;
    background-color: white;
    border-radius: 5px;
    border: 1px solid #ccc;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
}
.camera-icon i {
     font-size: 2em;
     line-height: 1;
}

.input-wrapper{
    display: contents;
}

.input-form {
    width: 100%;
    flex-grow: 1;
    background-color: white;
    height: 44px;
    border: 1px solid #ccc;
    border-radius: 5px;
    font-size: 1.4em;
    padding: 3px 15px;
}
.input-form:focus{
    outline: none;
}

