@view-transition {
  navigation: auto;
}

::placeholder{
    color: #CCC;
}

::-webkit-scrollbar{
    display: none;
}

html,body{
    height: calc( 100% - 60px );  
}

body{
    width: 480px;
    max-width: 100%;
    margin: 0 auto;
    margin-top: 56px;
    -webkit-touch-callout:none;
    -webkit-user-select:none;

}

progress{
    max-width: 100%;
}

.hidden-wrap{
    display: none !important; 
}

[data-concept = "study"],
[data-concept = "gym"],
[data-concept = "training"] {
    background: #000;
    color: #FFF;
}

[data-concept = "training"][data-current = "help-log"]{
    background: #f3eee8;
}

[data-concept = "training"][data-current = "help-log"] .container{
    color: #351818;
}

.container{
    overflow-y: scroll;
    overflow-x: hidden;
}

.form-label{
    margin-bottom: .125rem;
}

.row{
    --bs-gutter-x: 0;
}

.disnone{
    display: none !important;
}

.btn.disabled, .btn:disabled, fieldset:disabled .btn{
    opacity: .3;
}

[data-concept = "gym"] .btn-primary{
    color: #000;
    background: #FFCC00;
    border: 1px solid #FFCC00;
}

.font-small{
    font-size: 66%;
}

.disnone{
    display: none;
}

/**
 * header
 */
.header-wrap{
    background-color: #F8F6EC;
    min-height: 40px;
    transition: background .2s;
    box-shadow: 0 1px 10px -5px rgb(0 0 0 / 13%);
}

.header-wrap.timeover{
    background: #F00 !important;
    position: relative;
}

[data-concept = "study"] .header-wrap,
[data-concept = "training"] .header-wrap {
    background-color: #FFF;
}

.study-text .header-wrap{
/*    background: #444;*/
}

[data-concept = "gym"] .header-wrap{
    color: #FFF;
    background: rgba(0,0,0,0.5);
      -webkit-box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); /* 影 */
      box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); /* 影 */
      -webkit-backdrop-filter: blur(5px); /* ぼかし */
      backdrop-filter: blur(5px); /* ぼかし */
      border: 1px solid rgb(20 20 20 / 25%);
}

[data-is-small-test = "1"] .header-wrap{
    background: #fd5555 !important;
}

[data-is-small-test = "1"] .header-wrap:before{
    content: "小テスト";
    font-size: 12px;
    color: #FFF;
}

.header-wrap{
    padding: .5rem .75rem;
}

.header-page-title{

}

.header-logo a{
    position: relative;
    display: inline-block;
}

.header-logo a:after {
    content: "UI調整版";
    position: absolute;
    right: -45px;
    bottom: 0px;
    font-size: 10px;
    color: #333;
    background: #FC0;
    padding: 2px 3px 1px;
    display: block;
    color: #FFF;
    border-radius: 9px;
    line-height: 1;
}

body[data-current="study-text"] .header-link .header-a,
body[data-current="study-text"] .header-user .logout-check{
    display: none;
}

/**
 * breadcrumb
 */
.breadcrumb-wrap{
    background: #EEE;
    padding: .5rem;
}

.breadcrumb-wrap .breadcrumb{
    margin-bottom: .125rem;
}

.breadcrumb .prev{
    font-size: 12px;
}

.breadcrumb .prev:after{
    content: ">";
}

.breadcrumb-wrap .current{
    font-weight: bold;
    display: block;
}

.breadcrumb-wrap a{
    color: inherit; 
}


.breadcrumb-wrap.no-link a{
    text-decoration: none;
    pointer-events: none;
}

/**
 * nav
 */
.nav-wrap{
    background: #222;
    width: 480px;
    max-width: 100vw;
    position: fixed;
    bottom: 0;
    margin-right: 0;
    margin-left: 0;
    z-index: 1031;
}

.nav-a {
    padding-top: 10px;
    padding-bottom: 10px;
    font-size: 10px;
    color: #FFCC00;
    display: block;
    text-decoration: none;
    letter-spacing: .1em;
    line-height: 1;
}

.nav-item{
    padding: 0;
    position: relative;
}

.nav-a.current,
.nav-a:hover{
    background: #FFCC00;
    color: #222;
}

.nav-a.current{
    pointer-events: none;
}

.nav-item:after{
    content: "";
    height: 60%;
    width: 1px;
    background-color: #fff;
    opacity: .1;
    position: absolute;
    right: 0;
    top: 20%;
    display: block;
}


/**
 * 
 */

.login-body {
    display: flex;
    align-items: center;
    padding-top: 40px;
    padding-bottom: 40px;
    background-color: #F8F6EC;
}

.login-body .login-wrap{
    width: 360px;
    box-sizing: border-box;
    margin: auto;
    padding: 30px;
    background: #FFF;
    border-radius: 10px;
}

form label{
    cursor: pointer;
}

form label:not(.form-check-label){
    width: 100%;
    display: block;
}

/**
 * カレンダー
 */
.calender-body {/*css gridで7列レイアウトを作る*/
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    column-gap: 10px;
    row-gap: 10px;
}

.calender-weekday{
    font-size: 0.75rem;
    color: #999;
}

.calender-weekday.sat{
    color: #39F;
}

.calender-weekday.sun{
    color: #C00;
}

.calender-day{
    width: 100%;
    display: flex;
    align-items: center;
    align-content: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    flex-wrap: wrap;
    background: #F8F6EC;
    border-radius: 50%;
    position: relative;
    cursor: pointer;
}

[data-concept = "study"] .calender-day,
[data-concept = "gym"] .calender-day,
[data-concept = "training"] .calender-day{
    background: #232323;
}

.js-calender{
    width: 85%;
    margin: 0 auto;
}

.calender-day.today{
    background-color: #FFCC00;
    box-shadow: 0 0 0px 3px #FFCC00;
}

.calender-day.current{
    background-color: #3399FF;
    color: #FFF;
    box-shadow: 0 0 0px 3px #3399FF;
}


.calender-day.restday{
    pointer-events: none;
    background: #e9e9e9;
    color: #bfbfbf;
}

.calender-day.stamp--fixed-date{
    background: #F00;
}

.calender-day.stamp{
/*    background: none;*/
}

.calender-day.stamp:before{
    content: "";
    width: 100%;
    height: 100%;
    display: block;
    z-index: 1;
    pointer-events: none;
    position: absolute;
    top: 0;
    left: 0;
    border-radius: 50%;
}

.calender-day.stamp--fixed-date:before{
    background-image: url(/img/stamp/goal.png);
    background-size: contain;
    width: 20px;
    height: 20px;
    top: -8px;
    right: -8px;
    left: auto;
    border-radius: 0;
}

.calender-day.stamp--perfect:before{
    background-image: url(/img/stamp/perfect.png);
    background-size: contain;
}

.calender-day.stamp--great:before{
    background-image: url(/img/stamp/great_string.png);
    background-size: contain;
}

.calender-day.stamp--good:before{
    background-image: url(/img/stamp/good.png);
    background-size: contain;
}

.calender-day.stamp--poor:before{
    background-image: url(/img/stamp/poor_string.png);
    background-size: contain;
}

.calender-day.stamp--bad:before{
    background-image: url(/img/stamp/bad.png);
    background-size: contain;
}

.calender-day:after{
    content: "";
    position: absolute;
}
.calender-day.has-not-completed:after{
    content: "未達有";
    font-weight: bold;
    font-family: "Noto Sans JP", serif;
    bottom: -3px;
    left: 0px;
    z-index: 100;
    color: #F00;
    font-size: 10px;
    line-height: 1;
    text-align: center;
    line-height: 1;
    width: 100%;
}

.calender-day.has-scheduled:after{
    content: "予定済";
    font-weight: bold;
    font-family: "Noto Sans JP", serif;
    bottom: -3px;
    left: 0px;
    z-index: 100;
    color: #FFF;
    font-size: 10px;
    text-align: center;
    line-height: 1;
    width: 100%;
}

.calender-day.stamp.stamping{
    animation-name: stamp;
    animation-duration: 1500ms;
    animation-timing-function: ease-in;
}

.calender-day:nth-of-type(10n-1).stamp--great:before{
    transform: rotate(-21deg);
}

.calender-day:nth-of-type(10n-3).stamp--great:before{
    transform: rotate(9deg);
}

.calender-day:nth-of-type(10n-3).stamp--great:before{
    transform: rotate(-5deg);
}

.calender-day:nth-of-type(10n-4).stamp--great:before{
    transform: rotate(18deg);
}

.calender-day:nth-of-type(10n-5).stamp--great:before{
    transform: rotate(5deg);
}

.calender-day:nth-of-type(10n-6).stamp--great:before{
    transform: rotate(-2deg);
}

.calender-day:nth-of-type(10n-7).stamp--great:before{
    transform: rotate(-12deg);
}

.calender-day:nth-of-type(10n-8).stamp--great:before{
    transform: rotate(16deg);
}

.calender-day:nth-of-type(10n-9).stamp--great:before{
    transform: rotate(8deg);
}

.calender-day-str{
    line-height: 1;
    width: 100%;
    pointer-events: none;
    user-select: none;
    font-size: 14px;
}

.calender-time-str{
    line-height: 1;
    font-size: .75rem;
    pointer-events: none;
    user-select: none;
}

.modal-stamp,
.modal-timer{
    width: 480px;
    max-width: 100%;
    height: 100%;
    margin: 0 auto;
    opacity: 0;
    background: rgba( 255,255,255, 1 );
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    pointer-events: none;
    transition: opacity .2s;
}

.modal-praise{
    width: 480px;
    max-width: 100%;
    height: 100%;
    margin: 0 auto;
    opacity: 0;
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translateX(-50%) translateY(-50%);
    z-index: 100;
    pointer-events: none;
    transition: opacity .5s;

}

.modal-praise .praise-content{

}

.modal-stamp.show,
.modal-praise.show{
    opacity: 1;
    pointer-events: auto;
}



/**
 * animation
 */
@keyframes stamp {
  0% {
    opacity: 0;
  }
  1% {
    opacity: 0;
    transform: scale(1.5);
  }
  11% {
    opacity: 1;
    transform: scale(1);
  }
  100%{
    opacity: 1;
  }
}

@keyframes toubatsu {
  0% {
    opacity: 0;
    transform: scale(2.5) rotate(-60deg);
  }
  100% {
    opacity: 1;
    transform: scale(1.0) rotate(-20deg);
  }
}

.poyon {animation: poyon 0.8s ease ;}
@keyframes poyon {
  0%   { transform: scale(0.8, 1.4) translate(0%, -100%);}
  10%  { transform: scale(0.8, 1.4) translate(0%, -15%); }
  20%  { transform: scale(1.4, 0.6) translate(0%, 30%); }
  30%  { transform: scale(0.9, 1.1) translate(0%, -10%); }
  40%  { transform: scale(0.95, 1.2) translate(0%, -30%); }
  50%  { transform: scale(0.95, 1.2) translate(0%, -10%); }
  60%  { transform: scale(1.1, 0.9) translate(0%, 5%); }
  70%  { transform: scale(1.0, 1.0) translate(0%, 0%); }
  100% { transform: scale(1.0, 1.0) translate(0%, 0%); }
}

.purun {animation: purun 0.8s ease ;}
@keyframes purun {
  0%   { transform: scale(1.0, 1.0) translate(0%, 0%);}
  15%  { transform: scale(0.9, 0.9) translate(0%, 5%); }
  30%  { transform: scale(1.3, 0.8) translate(0%, 10%); }
  50%  { transform: scale(0.8, 1.3) translate(0%, -10%); }
  70%  { transform: scale(1.1, 0.9) translate(0%, 5%); }
  100% { transform: scale(1.0, 1.0) translate(0%, 0%);}
}

/**
 * task
 */

.task-checkbox{
    width: 20px;
    height: 20px;
    position: relative;
}

.task-item[data-status = "0"],
.task-item[data-status = "1"],
.task-item[data-status = "9"]{
    position: relative;
}

.task-item[data-status = "0"] .card-body,
.task-item[data-status = "9"] .card-body,
.task-item[data-status = "1"] .card-body{
    padding: .5rem;
}

.task-item .complete-date{
    display: none;
}

.task-item[data-status = "1"] .enemy-img img{
    filter: grayscale(1);
} 

.task-item[data-status = "0"]:before,
.task-item[data-status = "1"]:before{
    content: "";
    width: 55px;
    height: 55px;
    display: block;
    pointer-events: none;
    position: absolute;
    left: 0;
    top: -5px;
    z-index: 2;
    pointer-events: none;
}

.task-item[data-status = "0"]:before{
    width: 44px;
    height: 44px;
}

.task-item[data-status = "1"] .card-text{
    opacity: 0.5;
}

.answer-item:before{
}

.task-item[data-status = "0"]:before{
    background: url(../img/study_answer/ng.png) no-repeat center center;
    background-size: contain;
    right: auto;
    left: -15px;
}

.task-item[data-status = "0"]:nth-of-type(4n-3):before{
    left: -2px;
    top: 5px;
    transform: rotate(-12deg);
}

.task-item[data-status = "0"]:nth-of-type(4n-2):before{
    left: 6px;
    top: -2px;    
}

.task-item[data-status = "0"]:nth-of-type(4n-1):before{
    left: 2px;
    top: -17px;
    transform: rotate(2deg); 
}

.task-item[data-status = "1"]:before{
    background: url(../img/study_answer/ok.png) no-repeat center center;
    background-size: contain;
}

.task-item[data-status = "1"]:nth-of-type(4n-3):before{
    left: 20px;
    top: 5px;    
    transform: rotate(-5deg); 
}

.task-item[data-status = "1"]:nth-of-type(4n-2):before{
    left: -10px;
    top: 13px;    
}

.task-item[data-status = "1"]:nth-of-type(4n-1):before{
    left: 36px;
    top: 13px;
    transform: rotate(-8deg);
}


.candidate-item[data-is-complete = "1"],
.task-item[data-is-complete = "1"]{
    opacity: .7;
    filter: grayscale(.9);
    overflow: hidden;
}

.candidate-item[data-is-complete = "1"]{
    opacity: 0.4;
}

.task-log .task-item[data-is-complete = "0"]{
    overflow: hidden;
}

.candidate-item[data-is-complete = "1"]:before,
.task-item[data-is-complete = "1"]:before{
    content: "完了";
    position: absolute;
    font-family: "Dela Gothic One", sans-serif;
    font-weight: 400;
    font-size: 60px;
    display: block;
    opacity: .75;
    border: 3px solid #CC0000;
    box-sizing: border-box;
    padding: .5rem;
    border-radius: 10px;
    line-height: 1;
    right: calc(50% - 80px);
    top: 4px;
    color: #CC0000;
    animation-name: toubatsu;
    animation-duration: 300ms;
    animation-timing-function: ease-in;
    transform-origin: center center;
    transform: scale(1.0) rotate(-20deg);
    pointer-events: none;
    z-index: 1;
}

.candidate-item[data-is-complete = "1"]:before{
    content: "完了済";
    font-size: 48px;
    animation: none;
    top: 8px;
}

.task-item{
    transition: all .1s;
}

.task-item:active{
    transform: scale(.98);
    transform-origin: center center;
}
/*
.card.task-item:not(.no-color):nth-of-type(5n-4){
    background-color: rgb(187 0 0 / 28%);
}
.card.task-item:not(.no-color):nth-of-type(5n-3){
    background-color: rgb(177 0 187 / 28%);
}
.card.task-item:not(.no-color):nth-of-type(5n-2){
    background-color: rgb(148 227 0 / 28%);
}
.card.task-item:not(.no-color):nth-of-type(5n-1){
    background-color: rgb(0 13 187 / 28%);
}
.card.task-item:not(.no-color):nth-of-type(5n){
    background-color: rgb(0 168 187 / 28%);
}
*/

/**
 * praise
 */
.modal-praise-overlay{
    width: 100%;
    height: 100%;
    z-index: 1;
    position: fixed;
}

.praise-content {
    width: 100%;
    background: #FFCC00;
    color: #333;
    z-index: 2;
}


.btn-study-start[data-today-completed = '1']{
    position: relative;
}

.btn-study-start[data-today-completed = '1']:before{
    width: 100%;
    content: "今日のべんきょうは終わりました";
    position: absolute;
    background: #0d6efd;
    color: #FFF;
    padding: 2px 10px;
    left: 0;
    top: 14px;
}

.candidate-wrap,
.candidate-task-wrap{
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    column-gap: 2px;
}

.like-button{
    display:inline-block;
    position: relative;
}
.like-button input[type=checkbox]{
    opacity: 0;
    position: absolute;
    left: 0;
}
.like-button label{
/*    padding: 15px 20px;*/
    border-radius: 5px;
    background: #eee;
    color: #666;
    display: inline-block;
    cursor: pointer;
    transition: .2s;
/*    text-align: center;*/
}
.like-button input[type="checkbox"]:checked + label{
    background: #FFCC00;
    color: #333;
}

.like-button input[type="checkbox"]:checked + label:before{
    content: "選択中";
    position: absolute;
    left: -5px;
    top: -5px;
    display: block;
    font-size: 10px;
    background: #F90;
    color: #FFF;
    padding: 1px 4px;
}

.accordion-title{
    padding: 15px 20px;
    background: #555;
    color: #FFF;
    cursor: pointer;
    transition: .2s;
    position: relative;
    overflow: hidden;
    margin-bottom: 3px;
}

.accordion-title .complete-percentage{
    position: absolute;
    right: .5rem;
    font-size: 12px;
    top: calc( 50% - 8px );
    line-height: 1;
}

.accordion-title .complete-percentage b{
    font-size: 18px;
    display: inline-block;
    margin: 0 2px;
}

.layer--2 .accordion-title{
    background: #777;
}


.layer--3 .accordion-title{
    background: #999;
}

.accordion-title.open{
    background: #FC0;
    color: #333;
}

/* ローディングアイコン設定 */

#loading {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-weight: bold;
}

/*jQueryで付与されたdisappearクラスがついたらロゴエリアを非表示*/

#loading.disappear{
     display: none;   
}

/* youtube設定 */

#youtube-area{
    position: fixed;
    z-index: -1;/*最背面に設定*/
    top: 0;
    right:0;
    left:0;
    bottom:0;
    overflow: hidden;
    opacity: 0;    
}

/*jQueryで付与されたappearクラスがついたらYoutubeエリアをふわっと表示*/

/**
 * TOPページでは動画出さない
 */
body[data-current="home"] #youtube-area,
body[data-current="help-log"] #youtube-area,
body[data-current="brain-game"] #youtube-area,
body[data-current="large-goal"] #youtube-area,
body[data-current="study-text"] #youtube-area,
body[data-current="calender"] #youtube-area,
body[data-current="home"] #video-area,
body[data-current="help-log"] #video-area,
body[data-current="brain-game"] #video-area,
body[data-current="large-goal"] #video-area,
body[data-current="study-text"] #video-area,
body[data-current="calender"] #video-area{
/*    display: none;*/
}

#youtube-area.appear {
    animation-name:PageAnimeAppear;
    animation-duration:.5s;
    animation-fill-mode:forwards;
}

@keyframes PageAnimeAppear{
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

#youtube {
/*天地中央配置*/
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
/*縦横幅指定*/
  width: 177.77777778vh; /* 16:9 の幅→16 ÷ 9＝ 177.77% */
  height: 56.25vw; /* 16:9の幅 → 9 ÷ 16 = 56.25% */
  min-height: 100%;
  min-width: 100%;
}

/*youtubeがクリックされないためのマスク*/
#youtube-mask{
    position: absolute;
    z-index: 2;/*下から2番目に表示*/
    top:0;
    width:100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
}

.user{
    backdrop-filter: blur(5px) saturate(90%);
    -webkit-backdrop-filter: blur(10px) saturate(90%);
    background-color: rgba(0, 0, 0, 0.6);
    border-radius: 12px;
    box-shadow: 0px 7px 14px 0px rgba(0, 0, 0, .4);
}

.user-profile img{
    border-radius: 50%;
}

.user-profile .name{
    color: #FFF;
}


.gym .btn-primary{
    color: #333;
    background-color: #FFCC00;
    border-color: #ffcc00;
}

.user-status{
    position: relative;
}

.user-status .level-wrap {
    font-size: 12px;
}

.user-status .user-status-img{
    width: 80px;
    height: 80px;
    border-radius: 45px;
    object-fit: cover;
}

.user-reward a{
    text-decoration: none;
}

.user-reward .card-img-top{
    width: 100%;
    height: 150px;
    object-fit: cover;
}

.reward-item .reward-img img{
    object-fit: cover;
    height: 150px;
}


.reward-item{
    position: relative;
}

.reward-item.wanted:before{
    content: attr(data-want-num);
    background: #FFF;
    color: #333;
    font-size: 16px;
    border-radius: 15px;
    position: absolute;
    left: 3px;
    top: 3px;
    width: 28px;
    height: 28px;
    text-align: center;
    border: 2px solid #FC0;
    box-sizing: border-box;
    font-weight: 700;
}

.reward-thumb img{
  max-width: 100%;
  height: auto;
  align-self: flex-start;
}

.earned .earned-str{
    font-size: 130%;
    transition: transform .1s;
    display: inline-block;
    transform-origin: center right;
    line-height: 1;
}

.earned .earned-str.large{
    transform: scale(1.5);
}


/**
 * task
 */
 

.tasks{
    max-height: calc(100vh - 340px);
    overflow-y: scroll;
}
 

.gold {
    text-align: right;
    min-width: 90px;
    position: relative;
}

.gold .gold-str{
    font-size: 140%;
    position: relative;
}


.gold .gold-str:before{
    content: "";
    background: url("/img/coin/small.png") no-repeat left bottom;
    width: 22px;
    height: 17px;
    position: absolute;
    left: -30px;
    bottom: 8px;
    display: block;
}

.gold[data-size = 'medium'] .gold-str:before{
    content: "";
    background: url("/img/coin/medium.png") no-repeat left bottom;
    width: 29px;
    height: 28px;
    bottom: 0px;
}

.gold[data-size = 'large'] .gold-str:before{
    content: "";
    background: url("/img/coin/large.png") no-repeat left bottom;
    width: 23px;
    height: 36px;
    bottom: -3px;
}

.add-user,
.add-rivals,
.add-target{
    position: relative;
    margin-top: 2rem;
}

.add-user:before{
    position: absolute;
    content: "USER";
    font-family: "Chakra Petch", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: 16px;
    top: -30px;
    left: 11px;
    letter-spacing: .25rem;
    border-bottom: 1px solid #999;
    padding-left: 10px;
    padding-right: 10px;
    line-height: 1;
    color: #999;
}

.add-rivals:before{
    position: absolute;
    content: "RIVALS";
    font-family: "Chakra Petch", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: 16px;
    top: -30px;
    left: 11px;
    letter-spacing: .25rem;
    border-bottom: 1px solid #999;
    padding-left: 10px;
    padding-right: 10px;
    line-height: 1;
    color: #999;
}

.add-target:before{
    position: absolute;
    content: "設定中のごほうび";
    font-family: "Chakra Petch", sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: 16px;
    top: -30px;
    left: 11px;
    letter-spacing: .25rem;
    border-bottom: 1px solid #999;
    padding-left: 10px;
    padding-right: 10px;
    line-height: 1;
    color: #999;
}

.add-user:after,
.add-rivals:after,
.add-target:after{
    position: absolute;
    content: "";
    width: 15px;
    height: 1px;
    background: #999;
    transform: rotate(-45deg);
    top: -9px;
    left: -1px;
}

.slash.run{
    animation-name: splitSlash;
    animation-duration: 0.65s;
    animation-timing-function: cubic-bezier(0.83, 0, 0.17, 1);
    animation-fill-mode: forwards;
    width: 28px;
    height: 300px;
    background: url(/img/effect/slash.png) no-repeat center top;
    opacity: 0.65;
    display: block;
    position: absolute;
    left: calc(50% - 14px);
    top: -300px;
    z-index: 10;
}

@keyframes splitSlash{
    0%{
        top: -300px;
    }
    50%{
        height: 750px;
    }
    100%{
        top: 800px;
    }
}

.hero-thumb{
    margin-bottom: -32px;
}

.hero-thumb .level{
    font-size: 15px;
}

.hero-thumb .level-exp{
    font-size: 12px;
}




.map-wrap{
    position: relative;
}

.map-pins{
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: block;
    top: 0;
    left: 0;
}
.map-pin{
    position: absolute;
    left: 10px;
    top: 10px;
    font-size: 10px;
    color: #333;
    background: #FC0;
    padding: 2px 4px;
    border-radius: 2px;
}

.map-pin:nth-of-type(2){
    left: 40px;
    top: 60px;   
}

.map-pin:nth-of-type(3){
    left: 85px;
    top: 40px;  
}

.map-pin:nth-of-type(4){
    left: 120px;
    top: 100px;   
}

.map-pin:nth-of-type(5){
    left: 80px;
    top: 140px;   
}

.map-pin:nth-of-type(6){
    left: 160px;
    top: 40px;   
}

.boss-pin{
    position: absolute;
}

.boss-pin:nth-of-type(1){
    left: 220px;
    top: 100px;
}

.boss-pin:nth-of-type(2){
    left: 230px;
    top: 10px;
}

.boss-pin:nth-of-type(3){
    left: 320px;
    top: 50px;
}

.reward-pin{
    background: none;
    left: auto;
    top: auto;
    right: 10px;
    bottom: 10px;
    border-radius: 50%;
    border:2px solid #C00;
}
.hero-pin{
    background: none;
    left: 180px;
    top: 100px;   
}

.map-pin::before{
  content: '';
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  left: 15px;
  bottom: -5px;
  border-top: 5px solid #FC0;
  border-right: 5px solid transparent;
  border-left: 5px solid transparent;
}

.hero-pin::before,
.reward-pin::before{
    display: none;
}

.fighting{
    background: #000;
    color: #F00;
}


.point-item-wrap {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 10px;
    row-gap: 10px;
}

.point-item{
    border: 1px solid #CCC;
    display: block;
    text-decoration: none;
    color: #333;
    view-transition-name: point;
}

.point-icon{
    position: relative;
}

.point-icon img{
    width: 70%;
}

.point-icon:before{
    content: "";
    position: absolute;
    left: -5px;
    top: -5px;
    display: block;
    font-size: 14px;
    background: #F90;
    color: #FFF;
    padding: 1px 4px;
    transform:rotate(-5deg);
}
.point-icon[data-point-num = "1"]:before{
    display: none;
}
.point-icon[data-point-num = "2"]:before{
    content: "10%増量!";
    font-size: 14px;
}
.point-icon[data-point-num = "3"]:before{
    content: "10%増量!";
    font-size: 14px;
}
.point-icon[data-point-num = "4"]:before{
    content: "20%増量!";
    font-size: 16px;
}
.point-icon[data-point-num = "5"]:before{
    content: "30%増量!";
    font-size: 16px;
}
.point-icon[data-point-num = "6"]:before{
    content: "40%増量!";
    font-size: 18px;
}

.point-text b{
    font-size: 125%;
}

.point-thumb{
    view-transition-name: point;
    contain: paint;
}

.point-thumb img{
    max-width: 20%;
}

.support-user{
    color: #333;
    text-decoration: none;
    view-transition-name: user-profile;
}


.complete-task-list{
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    column-gap: 10px;
    row-gap: 10px;
}

.complete-task-list .disabled{
    filter: grayscale(1);
    opacity: 0.4;
}

.complete-task-list img{
    max-width: 100%;
}

.task-link,
.task-link img,
.task-img img{
    view-transition-name: task;
}

.sample-task{
    color: #FFF;
    background-color: rgba(255, 255, 255, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-right-color: rgba(255, 255, 255, 0.2);
    border-bottom-color: rgba(255, 255, 255, 0.2);
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    box-shadow: 0px 5px 20px -10px rgba(0, 0, 0, .5);
}

.sample-task-level,
.sample-task-exp,
.sample-task-gold{
    position: relative;
    font-size: 10px;
}

.sample-task-level:before{
    content: "Lv";
    background: #364c57;
    border-radius: 50%;
    font-size: 10px;
    width: 20px;
    height: 20px;
    display: flex;
    color: #FFF;
    font-weight: bold;
    justify-content: center;
    align-items: center;
    position: absolute;
    left: -24px;
    top: 6px;
}


.sample-task-exp:before{
    content: "EXP";
    background-image: linear-gradient(181deg, #00c300, #018701);
    border-radius: 50%;
    font-size: 10px;
    width: 20px;
    height: 20px;
    display: flex;
    color: #FFF;
    font-weight: bold;
    justify-content: center;
    align-items: center;
    position: absolute;
    left: -24px;
    top: 6px;
}

.sample-task-gold:before{
    content: "G";
    background-image: linear-gradient(180deg, #f9dd00, #ffbc00);
    border-radius: 50%;
    font-size: 10px;
    width: 20px;
    height: 20px;
    display: flex;
    color: #333;
    font-weight: bold;
    justify-content: center;
    align-items: center;
    position: absolute;
    left: -24px;
    top: 6px;
}

.sample-task-level b,
.sample-task-exp b,
.sample-task-gold b{
    font-size: 200%;
    display: inline-block;
    margin-right: 2px;
}

[data-concept="study"] .card,
[data-concept="training"] .card{
    color: #FFF;
  background-color: rgba(255, 255, 255, 0.2); /* 背景色 */
  border: 1px solid rgba(255, 255, 255, 0.4); /* ボーダー */
  border-right-color: rgba(255, 255, 255, 0.2);
  border-bottom-color: rgba(255, 255, 255, 0.2);
  -webkit-backdrop-filter: blur(20px); /* ぼかしエフェクト */
  backdrop-filter: blur(20px);
/*  box-shadow: 0px 5px 20px -10px rgba(0, 0, 0, .5);*/
}

[data-concept="study"] .card[data-status = "0"],
[data-concept="training"] .card[data-status = "0"]{
    background-color: rgb(255 40 40 / 20%);
/*    border: 1px solid rgba(255, 40, 40, 0.4);
    border-right-color: rgba(255, 40, 40, 0.2);
    border-bottom-color: rgba(255, 40, 40, 0.2);*/
}

[data-concept="study"] .card[data-status = "1"],
[data-concept="training"] .card[data-status = "1"]{
    background-color: rgb(0 241 11 / 20%);
/*    border: 1px solid rgba(0, 241, 11, 0.4);
    border-right-color: rgba(0, 241, 11, 0.2);
    border-bottom-color: rgba(0, 241, 11, 0.2);*/
}

[data-concept="gym"] .card{
    color: #FFF;
    background: rgba(0,0,0,0.5);
      -webkit-box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); /* 影 */
      box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); /* 影 */
      -webkit-backdrop-filter: blur(5px); /* ぼかし */
      backdrop-filter: blur(5px); /* ぼかし */
      border: 1px solid rgb(20 20 20 / 25%);
}

.user-shop-name{
    font-size: 12px;
}


.rivals-items{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 1rem;
    row-gap: .5rem;
}

.rivals-item{
    font-size: 10px;
}

.rivals-item .expup{
    color: #2dff2d;
    font-size: 12px;
    font-weight: 700;
}



#video-area{
    position: fixed;
    z-index: -1;/*最背面に設定*/
    top: 0;
    right:0;
    left:0;
    bottom:0;
    overflow: hidden;
}

#video {
    /*天地中央配置*/
    position: absolute;
    z-index: -1;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    /*縦横幅指定*/
    width: 177.77777778vh; /* 16:9 の幅→16 ÷ 9＝ 177.77% */
    height: 56.25vw; /* 16:9の幅 → 9 ÷ 16 = 56.25% */
    min-height: 100%;
    min-width: 100%;
}


#video-mask {
    position: absolute;
    z-index: 2;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
}
.footer-progress{
    display: none;
    bottom: 41px;
    pointer-events: none;
}
.footer-progress img{
    max-width: 100%;

}

#level-progress{
    width: 100%;
}

.task-list-wrap{
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    column-gap: 10px;
    row-gap: 5px;
}



/** スタンプカード */
.stamp-card-wrap{
    background: #FFF;
    color: #333;
}

.stamp-card-body{
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    column-gap: 15px;
    row-gap: 15px;
}

.stamp-zone{
    width: 100%;
    display: flex;
    align-items: center;
    align-content: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    flex-wrap: wrap;
    background: #F8F6EC;
    border-radius: 50%;
    position: relative;
    cursor: pointer;
    color: #999;
}

.stamp-card-body .stamp-zone:nth-last-of-type(1){
    font-size: 32px;
    font-weight: bold;
}

.stamp-zone[data-is-complete = "1"]:before{
    content: "";
    width: 100%;
    height: 100%;
    background-image: url(/img/stamp/great_string.png);
    background-size: contain;
    display: block;
    z-index: 1;
    pointer-events: none;
    position: absolute;
    top: 0;
    left: 0;
    border-radius: 50%;
}

.stamp-zone[data-is-complete = "1"].stamp-pon{
    animation-name: stamp;
    animation-duration: 1500ms;
    animation-timing-function: ease-in;
    animation-fill-mode: forwards;
}


.stamp-zone[data-is-complete = "1"]:nth-of-type(10n-1):before{
    transform: rotate(-21deg);
}

.stamp-zone[data-is-complete = "1"]:nth-of-type(10n-2):before{
    transform: rotate(9deg);
}

.stamp-zone[data-is-complete = "1"]:nth-of-type(10n-3):before{
    transform: rotate(-5deg);
}

.stamp-zone[data-is-complete = "1"]:nth-of-type(10n-4):before{
    transform: rotate(18deg);
}

.stamp-zone[data-is-complete = "1"]:nth-of-type(10n-5):before{
    transform: rotate(5deg);
}

.stamp-zone[data-is-complete = "1"]:nth-of-type(10n-6):before{
    transform: rotate(-2deg);
}

.stamp-zone[data-is-complete = "1"]:nth-of-type(10n-7):before{
    transform: rotate(-12deg);
}

.stamp-zone[data-is-complete = "1"]:nth-of-type(10n-8):before{
    transform: rotate(16deg);
}

.stamp-zone[data-is-complete = "1"]:nth-of-type(10n-9):before{
    transform: rotate(8deg);
}

.task-item.currentTask{
    position: relative; 
}

.task-item.currentTask:before{
    content: "";
    display: block;
    position: absolute;
    left: -20px;
    top: calc(50% - 25px);
    background: #FFCC00;
    height: calc(tan(60deg)* 60px / 2);
    width: 30px;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
}



/**
 * 勉強テキスト
 */
.study-text{
    background: #fffaf4;
    color: #444;
}

.study-text.study-text-answer{
    background: #dcfafd;
}

.study-text .video-area{
    display: none;
}


.study-text .prev-next-btn{
    background: #39F;
    color: #FFF;
    border: 1px solid #FFF;
    cursor: pointer;
    text-decoration: none;
}

.study-text .js-prev{
    background: #6a75d1;
}

.study-text .js-prev,
.study-text .js-next{
    user-select: none;
}

.study-text .js-prev[data-question-id = '0'],
.study-text .js-next.disabled{
    pointer-events: none;
    background-color: #CCC;
}

.study-text .memory-html,
.study-text .q-wrap,
.study-text .help-comment{
    letter-spacing: .05em;
    line-height: 1.75;
    background: #FFF;
    border: 1px solid #EEE;
}

.study-text .q-img-wrap img{
    max-width: 100%;
}

.study-text .a-wrap .form-control,
.study-text .a-wrap form label:not(.form-check-label){
    width: 50%;
}

.study-text .correctText{
    width: 4rem;
}

.study-text .a-img img{
    max-width: 100%;
}

.study-text .a-img-wrap{
    display: none;
}

.study-text .a-img-wrap[data-show-explanation="1"]{
    display: block;
}


/**
 * 紙ラフページ用
 */
.paper-comp{
    margin-top: 0;
    height: 100%;
    background: #FFF !important;
}

.paper-comp-wrap{
    position: relative; 
}

.paper-comp-wrap img{
    max-width: 100%;
}

.dummy-btn{
    opacity: .0;
    position: absolute;
    padding: 1rem;
}

.dummy-link{
    opacity: .0;
    position: absolute;
    padding: .5rem;
}



.want-teach-wrap{
    position: relative;
}

.want-teach-modal-trigger{
    font-size: 12px;
    color: #999;
}

.want-teach-modal-trigger span{
    text-decoration: underline;
}

.want-teach-trigger.show{
    pointer-events: auto;
    opacity: 1;
}

.confidence-select-wrap{
}

.confidence-select-items{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    column-gap: 5px;
    row-gap: 5px;
}

.confidence-item{
    background: #FFF;
    border-radius: 30px;
    border: 1px solid #EEE;
    max-width: 100%;
    position: relative;
}

.confidence-item.check:before,
.want-teach-modal-trigger.check:before{
    content: "";
    background: url("/img/common/check.png") no-repeat center center;
    width: 24px;
    height: 24px;
    display: block;
    position: absolute;
    top: -10px;
    left: -5px;
    z-index: 1;
}

.confidence-selected-wrap img{
    max-width: 60px;
}


.battle-start{
    color: #333;
    position: absolute;
    z-index: 200000;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    pointer-events: none;
}

.battle-start.fire{
    pointer-events: auto;
}

.battle-start .reward,
.battle-start .battle-progress,
.battle-start .button-wrap{
    opacity: 0;
}

.battle-start.fire .reward{
    animation-name: rewardShow;
    animation-duration: .6s;
    animation-timing-function: ease-in-out;
    animation-fill-mode: forwards;
    animation-delay: 1s;
}

.battle-start.fire .battle-progress{
    animation-name: rewardShow;
    animation-duration: .6s;
    animation-timing-function: ease-in-out;
    animation-fill-mode: forwards;
    animation-delay: 1s;
}

.battle-start.fire .button-wrap{
    animation-name: rewardShow;
    animation-duration: .6s;
    animation-timing-function: ease-in-out;
    animation-fill-mode: forwards;
    animation-delay: 3.5s;
}


.overlay-wrap{
    z-index: 1;
    position: relative;
}

.reward-wrap{
    z-index: 2;
    position: relative;
    margin-bottom: 20px;
}

.battle-progress-wrap{
    z-index: 3;
    position: relative;
}

.button-wrap{
    z-index: 4;
    position: relative;    
}

.reward-wrap .reward img{
    border-radius: 20px;
}

.overlay{
    width: 750px;
    height: 750px;
    left: -10px;
    top: -1050px;
    position: fixed;
    transform: rotate(45deg) scale(1);
    transform-origin: left top;
}

.overlay--1{
    background: #333;
    animation-delay: .0s;
    z-index: 1;
}

.overlay--2{
    background: #FFCC00;
    animation-delay: .2s;
    z-index: 2;
}

.overlay--3{
    background: #EEE;
    animation-delay: .4s;
    z-index: 3;
}

.fire .overlay{
    animation-name: overlay;
    animation-duration: .7s;
    animation-timing-function: ease-in-out;
    animation-fill-mode: forwards;
}

@keyframes overlay {
  0%{
    transform: rotate(45deg) scale(1);
  }
  100%{
    transform: rotate(45deg) scale(2.2);
  }
}

@keyframes rewardShow {
  0%{
    opacity: 0;
    transform: translateY(30px);
  }
  100%{
    opacity: 1;
    transform: translateY(0px);
  }
}


.battle-progress .waku{
    width: 100%;
    height: 20px;
    border: 1px solid #616161;
    background: #000;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
}

.battle-progress .inner{
    width: 0%;
    height: 20px;
    border: 1px solid #616161;
    background: #60ff00;
    position: absolute;
    z-index: 2;
    transition: width 1.5s ease-in-out;
}


.battle-progress .earned-wrap{
    padding: 45px 0 10px;
}

.battle-progress .earned-wrap b,
.battle-progress .remain-wrap b{
    font-size: 175%;
    display: inline-block;
    margin: 0 5px;
}


.want-teach-modal-wrap{
    position: fixed;
    width: 100vw;
    height: 100vh;
    top: 0;
    left: 0;
    color: #FFF;
    z-index: 20000000;
    pointer-events: none;
    opacity: 0;
    transition: all .3s;
}

.want-teach-modal-wrap.show{
    opacity: 1;
    pointer-events: auto;
}

.want-teach-modal-overlay{
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: 0;
    background: #000000d9;
}

.want-teach-modal-inner{
    top: 100px;
    z-index: 2;
    position: relative;
}


#clock{
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
}


.task-item-wrap{
    background: #FFF;
    border-radius: 15px;
    box-shadow: 0 0 20px 5px rgba(0, 0, 0, 0.3);
    color: #333 !important;
}

.task-item-wrap .test-list-item{
    background: #EEE;
    color: #333 !important;
    text-decoration: none;
}

.task-item-wrap .test-list-item[data-injustice = "1"]{
    position: relative;
    background: #FCC;
    overflow: hidden;
}

.task-item-wrap .test-list-item[data-injustice = "1"]:before{
    content: "不正";
    position: absolute;
    font-family: "Dela Gothic One", sans-serif;
    font-weight: 400;
    font-size: 60px;
    display: block;
    opacity: .75;
    border: 3px solid #CC0000;
    box-sizing: border-box;
    padding: .5rem;
    border-radius: 10px;
    line-height: 1;
    right: calc(50% - 80px);
    top: -10px;
    color: #CC0000;
    pointer-events: none;
    transform: rotate(-12deg);
    z-index: 1;
}

.task-item-wrap .date-wrap{
    font-size: 10px;
    color: #777;
}

.task-item-wrap .data-wrap-label{
    background: #6c757d;
    color: #FFF;
    padding: 3px 5px;
}

.task-item-wrap .test-list-item[data-is-complete = "1"] .data-wrap-label{
    background: #198754;
}

.task-item-wrap .test-list-item[data-is-complete = "0"] .data-wrap-label{
    background: #dc3545;
}

.task-item-wrap .title-wrap .sub-title{
    font-size: 14px;
    color: #444;
}

.task-item-wrap .title-wrap .title{
    font-size: 12px;
    color: #777;
}


.help-list-item{
    background: #EEE;
    color: #333 !important;
    text-decoration: none;    
}

.small-test-progress-wrap{
    width: 100%;
    position: fixed;
    bottom: 45px;
    left: 0;
    z-index: 3;
    background: #FFF;
}

.small-test-progress{
    position: relative;
}


.small-test-progress .base{
    width: 100%;
    height: 2px;
    background: #000;
}


.small-test-progress .own,
.small-test-progress .ghost{
    position: absolute;
    top: 0px;
    left: 0;
}

.small-test-progress .ghost{
    top: -24px;
    color: #C00;
}


.small-test-popup-wrap{
    width: 90vw;
    position: absolute;
    top: -70px;
    left: 5vw;
    z-index: 2140000000;
    transition: .3s top ease-in-out;
    text-align: center;
}

.small-test-popup-wrap.show{
    top: 10px;
}


.clock-wrap{
    display: none;
    position: fixed;
    top: 8px;
    z-index: 1031;
    color: #FFF;
    left: 50%;
    transform: translateX(-50%);
    pointer-events: none;
}

.sum-outer{
    color: #FFF !important;
    text-decoration: none;
}

.sum-inner{
    background: #1d1b35;
    font-size: 12px;
    border-radius: 15px;
    box-shadow: 0 0 20px 5px rgba(0, 0, 0, 0.3);
}

.sum-inner[data-alert="1"]{
    background: #910000;
}

.sum-value{
    font-size: 20px;
    font-weight: 900;
}

.sum-value span{
    font-size: 10px;
}

.js-datepickerTrigger{
    text-decoration: underline;
}

.user-name{
    text-decoration: none;
    background: #FFF;
    border-radius: 15px;
    box-shadow: 0 0 20px 5px rgba(0, 0, 0, 0.3);
    color: #333 !important;
}

.latestLoginDate{
    color: #888;
    font-size: 11px;
}

/**
 * custom
 */
.jqtl-side-index .jqtl-side-index-item{
    color: #333;
}
.jqtl-side-index .jqtl-side-index-item img{
    width: 30px !important;
    height: 30px !important;
}

.jqtl-event-node{
    border-radius: 5px !important;
}

.reward-regist-form-wrap{
    text-decoration: none;
    background: #FFF;
    border-radius: 15px;
    box-shadow: 0 0 20px 5px rgba(0, 0, 0, 0.3);
    color: #333 !important;   
}




.q-text__replace-item--index {
    color: #f00;
    font-weight: 700;
    display: inline-block;
    margin: 0 5px;
    position: relative;
}

.q-text__replace-item--index.current{
    background: #F00;
    color: #FFF;
}

.q-text__replace-item--index .strLength{
    font-size: 12px;
    color: #999;
    padding-left: .5rem;
}

.q-text__replace-item--index.current .strLength{
    color: #FFF;
}

.q-text__replace-item--self, .q-text__replace-item--other {
    font-size: 12px;
    display: inline-block;
    margin: 0 10px 0 0;
    color: #999;
}


.study-calender{
    text-decoration: none;
    background: #FFF;
    border-radius: 15px;
    box-shadow: 0 0 20px 5px rgba(0, 0, 0, 0.3);
    color: #333;
}

.study-calender:not(.movies) a{
    color: #333;
    text-decoration: none;
    transition: all .3s;
}

/*.study-calender a:hover{
    background: #EEE;
}*/

.study-calender [data-not-study = "1"]{
    background: #e3e3e3 !important;
    color: #bbb;
}


/*.study-calender a.btn{
    color: #FFF;
}
*/

.study-calender .study-calender-item:nth-of-type(2n-1){
    background: #F9F9F9;
}

.study-calender-head{
    font-size: 12px;
    font-weight: bold;
}

.study-calender-item .mini{
    font-size: 75%;
}

.study-calender-item .late{
    font-size: 10px;
    color: #F00;
}

.study-calender-item .rating{
    padding: 0 .5rem;
}

.study-calender-item .rating img{
    max-width: 100%;
}

.attend-time{
    font-size: 18px;
    font-weight: 900;
}

.attend-time[data-late = "1"]{
    color: #F00;
}

.study-time{

}

.answer-item{
    border-bottom: 1px solid #f3ddc1;
    position: relative;
}


.answer-item:before{
    content: "";
    width: 50px;
    height: 50px;
    display: block;
    pointer-events: none;
    position: absolute;
    right: 0;
    top: -30px;
    z-index: 1;
}

.answer-item[data-correct = "0"]:before{
    background: url(../img/study_answer/ng.png) no-repeat center center;
    background-size: contain;
}

.answer-item[data-correct = "1"]:before{
    background: url(../img/study_answer/ok.png) no-repeat center center;
    background-size: contain;
}


.single-answer-item{
    position: relative;    
}

.single-answer-item:empty{
    display: none;
}


.single-answer-item:before{
    content: "";
    width: 40px;
    height: 40px;
    display: block;
    pointer-events: none;
    position: absolute;
    left: -10px;
    top: 10px;
    z-index: 1;
}

.single-answer-item[data-correct = "0"]:before{
    background: url(../img/study_answer/ng.png) no-repeat center center;
    background-size: contain;
}

.single-answer-item[data-correct = "1"]:before{
    background: url(../img/study_answer/ok.png) no-repeat center center;
    background-size: contain;
}

.single-answer-item img{
    max-width: 100%;
}


.test-log-wrap{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 1rem;
    padding-bottom: 2rem;
    margin-bottom: 2rem;
    border-bottom: 1px solid #f3ddc1;
}


.test-log-item{
    background: #FFF;
    border: 1px solid #EEE;
}

.test-log-item-num{
    font-weight: 900;
    font-size: 24px;
}


.postimage-item{
    font-size: 12px;
}
.postimage-item img{
    max-width: 100%;
}



.match-percentage-str{
    display: inline-block;
    margin-left: .5rem;
}

.match-percentage-str b{
    font-size: 150%;
    margin: 0 3px;
    line-height: 1;
}

.match-percentage-str span{
    font-size: 75%;
    color: #999;
}




/**
 * 正解不正解アニメーション
 */

.correct-animation-wrap,
.incorrect-animation-wrap{
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 200000000000;
    pointer-events: none;
}

.correct-animation-wrap[data-show = "1"],
.incorrect-animation-wrap[data-show = "1"]{
    pointer-events: auto;
}

.correct-animation-overlay,
.incorrect-animation-overlay{
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: -100vh;
    left: 0;
    background: rgba(255,255,255,.8);
}

.incorrect-animation-overlay{
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    opacity: 0;
    background: rgba(0,0,0,.8);
}

.correct-animation,
.incorrect-animation{
    position: relative;
    z-index: 1;
}


.correct-animation-wrap[data-show = "1"] .correct-animation-overlay{
    animation: .5s bound cubic-bezier(0.4, 0, 0.2, 1) 1 forwards;
}

.incorrect-animation-wrap[data-show = "1"] .incorrect-animation-overlay{
    animation: .5s fadeIn linear 1 forwards;
}


.correct-animation-wrap .correct-animation,
.incorrect-animation-wrap .incorrect-animation{
    font-size: 30vw;
    height: 100vh;
    text-align: center;
    font-weight: 900;
    color: #ff5454;
    display: flex;
    top: 0;
    left: 0;
    transform: translate(0%, -100%);
    justify-content: center;
    align-items: center;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 900;
    font-style: normal;
    flex-wrap: wrap;
    align-content: center;
}

.incorrect-animation-wrap .incorrect-animation{
    opacity: 0;
    transform: translate(0%, -5%);
    font-family: "Noto Serif JP", serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}

.incorrect-animation-wrap .incorrect-animation{
    font-size: 18vw;
}

.correct-animation-text{
    background: linear-gradient(#ff8888, #ff5454);
    -webkit-background-clip:text;
    -webkit-text-fill-color: transparent;
    transform: translateY(-20%);
    line-height: 1.1;
}

.incorrect-animation-text{
    background: linear-gradient(#8897ff, #5471ff);
    -webkit-background-clip:text;
    -webkit-text-fill-color: transparent;
    transform: translateY(-20%);
    line-height: 1.1;
}

.correct-animation-wrap[data-show = "1"] .correct-animation{
    animation: 1.6s .5s poyon ease 1 forwards;  
}

.incorrect-animation-wrap[data-show = "1"] .incorrect-animation{
    animation: 1.6s .5s fadeIn ease 1 forwards;  
}


.incorrect-animation-leaf{
    position: absolute;
    list-style: none;
    top: -50px;
    border-radius: 0% 70%;
    left: 15%;
    top: -50px;
    width: 16px;
    height: 10px;
    background-color: #c2704e;
}

.incorrect-animation-wrap[data-show = "1"] .incorrect-animation-leaf{
    animation: fall 12s linear infinite,
             sway 3.5s ease-in-out infinite alternate;
}

.incorrect-action-btn-wrap{
    width: 80vw;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 10px;
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

@keyframes fadeIn {
  100% { opacity: 1; transform: translate(0%, 0%); }
}

@keyframes bound {
    100% {
        top: 0;
    }
}

@keyframes fall {
  to {
    top: 120%;
  }
}

@keyframes sway {
  from {
    transform: translateX(0px) rotate(0deg);
  }
  to {
    transform: translateX(200px) rotate(-45deg);
  }
}


.logout-check{
    font-size: 12px;
    margin-left: .5rem;
    padding: .25rem;
}


.add-arrow{
    position: relative;
}


.add-arrow:after{
    content: ">";
    font-size: 14px;
    color: #AAA;
    position: absolute;
    display: block;
    right: .5rem;
    top: calc(50% - 7px);
    line-height: 1;
}



.test-list-wrap{
    background: #FFF;
    color: #333;
    font-size: 14px;
}



.counter{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 10px;
    row-gap: 10px;
}

.counter-col-4{
    grid-template-columns: repeat(4, 1fr);
}

.counter-item{
    background-color: rgba(255, 255, 255, 0.2);
    color: #FFF;
    border-radius: 10px;
}

.counter-item[data-status = "0"]{
    background-color: rgb(255 40 40 / 20%);
    color: #FFF;
}

.counter-item[data-status = "1"]{
    background-color: rgb(0 241 11 / 20%);
    color: #FFF;
}

.counter-item[data-status = "2"]{
    background-color: rgb(255 181 40 / 20%);
    color: #FFF;    
}

.counter-item[data-status = "3"]{
    background: rgb(95 105 183 / 20%);
    color: #FFF;    
}

.counter-item-title{
    font-size: 14px;
}

.counter-item-num{
    font-size: 12px;
}

.counter-item-num span{
    font-size: 225%;
    font-weight: 900;
}

.complete-date{
    position: absolute;
    font-size: 12px;
    background: #FFCC00;
    color: #000;
    filter: brightness(0.9);
    padding: 2px 8px;
    left: -6px;
    top: -3px;
    border-radius: 3px 3px 3px 0;
    z-index: 1;
}

.complete-date:before{
    content: "";
    width: 6px;
    aspect-ratio: 1;
    clip-path: polygon(0 0, 100% 0, 100% 100%);
    background: #a78a15;
    display: block;
    position: absolute;
    left: 0;
    bottom: -6px;
    z-index: -1;
}


.complete-date[data-day-of-week = "1"]{
    background: #ffdcc3;
    color: #3f3f3f;
}

.complete-date[data-day-of-week = "1"]:before{
    background: #bda47e;
}


.complete-date[data-day-of-week = "2"]{
    background: #ffc3ec;
    color: #3f3f3f;
}

.complete-date[data-day-of-week = "2"]:before{
    background: #bd7eb8;
}

.complete-date[data-day-of-week = "3"]{
    background: #c3c4ff;
    color: #3f3f3f;
}

.complete-date[data-day-of-week = "3"]:before{
    background: #7e7fbd;
}

.complete-date[data-day-of-week = "4"]{
    background: #d7ffc3;
    color: #3f3f3f;
}

.complete-date[data-day-of-week = "4"]:before{
    background: #7ebd80;
}

.complete-date[data-day-of-week = "5"]{
    background: #fffbc3;
    color: #3f3f3f;
}

.complete-date[data-day-of-week = "5"]:before{
    background: #bdbc7e;
}

.complete-date[data-day-of-week = "6"]{
    background: #c3d5ff;
    color: #3f3f3f;
}

.complete-date[data-day-of-week = "6"]:before{
    background: #7ea8bd;
}

.complete-date[data-day-of-week = "0"]{
    background: #ffc3c3;
    color: #3f3f3f;
}

.complete-date[data-day-of-week = "0"]:before{
    background: #bd7e7e;
}



.thumbnail-wrap{
    width: 100%;
    max-width: 100%;
}

.thumbnail-wrap:before{
    content: "アップロード済みの画像";
    font-size: 12px;
}

.thumbnail-wrap:empty:before{
    content: "";
    font-size: 12px;
}

.thumbnail-wrap img{
    max-width: 100%;
}




.tag-wrap{
    font-size: 10px;
    margin-bottom: .25rem;
}

.tag-wrap .tag{
    border-radius: 20px;
    background: #CCC;
    display: inline-block;
    padding: 1px 10px;
    text-align: center;
}

.tag-wrap .tag--pending{
    background: #F90;
    color: #FFF;
}

.tag-wrap .tag--help-waiting-answer{
    background: #ff7b7b;
    color: #FFF;
}


.tag-wrap .tag--help-waiting-user-accept{
    background: #959595;
    color: #FFF;
}


.tag-wrap .tag--help-waiting-reanswer{
    background: #ff2828;
    color: #FFF;
}


.tag-wrap .tag--help-helped{
    background: #198754;
    color: #FFF;
}


.tag-wrap:empty{
    display: none;
}



/**
 * 教えてほしいボタン関連
 */

[data-current = "help-log"] .q-text,
[data-current = "help-log"] .a-answer-wrap{
    background: #fbfbfb;
    color: #333;
    line-height: 1.75;
}


[data-current = "help-log"] .a-answer-str{
    display: inline-block;
    margin-left: .5rem;
}

[data-current = "help-log"] .a-answer-str.empty{
    font-size: 80%;
    opacity: .5;
    letter-spacing: .05em;
}

[data-current = "help-log"] .q-text{
    position: relative;
/*    max-height: 200px;*/
    transition: all .4s;
    overflow: hidden;
}

[data-current = "help-log"] .q-text:after{
    content: "";
    background: linear-gradient(0deg, #fbfbfb, transparent);
    width: 100%;
    height: 20px;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 1;
    pointer-events: none;
}

[data-current = "help-log"] .q-text.is_open:after{
    display: none;
}

[data-current = "help-log"] .q-text-more{
    width: 100%;
    border: none;
    padding: .25rem;
    font-size: 14px;
    letter-spacing: .05em;
    color: #999;
}

.help-content-user-comment,
.help-content-admin-comment{
    background: #fbfbfb;
    color: #333;
}

.help-content-user-comment{
    border-radius: 10px 10px 10px 0;
}

.help-content-admin-comment{
    border-radius: 10px 10px 0 10px;
    background: #0d99ff;
    color: #FFF;
}

.help-content-admin-comment textarea{
    width: 100%;
    background: rgb(209 209 209 / 30%);
    box-shadow: inset 1px 1px 3px rgb(11 124 207);
    border: none;
    color: #FFF;
    min-height: 8rem;
    padding: 0.75rem;
    margin: 0 0 5px;
}

.help-content-admin-comment textarea::placeholder{
    color: #FFF;
}

.help-content-admin-btn-wrap svg{
    color: #FFF;
    cursor: pointer;
    width: 24px;
    height: 24px;
}

.help-content-admin-edit-link-wrap{
    line-height: 1;
}

.help-content-admin-edit-link{
    font-size: 12px;
    text-decoration: underline;
    cursor: pointer;
    color: #b3dfff;
}

.help-content-admin-edit-link:hover{
    text-decoration: none;
}

.help-content-user-time,
.help-content-admin-time{
    line-height: 1;
}

.help-content-user-time-str,
.help-content-admin-time-str{
    font-size: 12px;
    color: #999;

}

.help-content-admin-img:empty{
    margin-bottom: 0 !important; 
}

.help-content-admin-img img{
    max-width: 100%;
}


.help-content-admin-reedit-wrap{
    display: none;
}


.help-content-waiting-str{
    font-size: 14px;
    color: #999;
}



[data-current = "brain-game"] .q-text,
[data-current = "brain-game"] .a-input-wrap{
    background: #fbfbfb;
    color: #333;
    line-height: 2;
    letter-spacing: .05rem;
}


[data-current = "brain-game"] .next-btn,
[data-current = "brain-game"] .answer-btn{
    background: #0d6efd;
}

[data-current = "brain-game"] .q-text .small{
    font-size: 75%;
    color: #999;
    margin: 0 .25rem 0 0;
}

.question-target{
    font-weight: bold;
    color: #F00;
}


.countdown-timer-wrap{
    position: fixed;
    z-index: 1;
    background: rgb(0 0 0);
    width: 100%;
    padding: .5rem;
    right: 0;
    text-align: center;
    top: 56px;
}

#countdown-timer-str{
    font-size: 26px;
    font-family: "Chivo Mono", monospace;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    letter-spacing: -.03em;
    line-height: 1;
    position: fixed;
    top: 8px;
    z-index: 1031;
    color: #494949;
    right: 55px;
    left: auto;
    pointer-events: none;
    display: block;
    padding: .25rem;
}

/*
#countdown-timer-str:before {
    content: "制限時間";
    position: absolute;
    left: -70px;
    font-size: 12px;
    top: calc(50% - 6px);
}
*/


.memory-target{
    margin-top: 75px;
}


.q-a-title-wrap{
    line-height: 1.25;
}

.question.q-wrap,
.question.a-wrap{
    display: none;
}

.a-input-textarea{
    width: 100%;
    padding: 0.75rem;
    border: 1px solid #EEE;
}

.large-goal:not(.no-bg){
    color: #fff !important;
    cursor: pointer;
    display: inline-block;
    padding: 0.75rem;
    user-select: none;
/*    background: linear-gradient(315deg, #B67B03 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #B67B03 90% 100%);*/
/*    text-shadow: 1px 1px 0 rgba(0, 0, 0, .2);*/
    text-decoration: none;
}

.large-goal-str:not(.not-designed){
    display: flex;
}

.large-goal-str{
    font-family: "Kaisei HarunoUmi", serif;
    font-weight: 700;
    font-style: normal;
    font-size: clamp(24px, calc(1.5rem + ((1vw - 3.2px) * 5)), 36px);
    line-height: 1;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}

.large-goal.no-bg .large-goal-str{
    font-size: clamp(24px, calc(1.75rem + ((1vw - 3.2px) * 5)), 36px);
}

.large-goal-str .small{
    text-align: center;
    line-height: 1;
    letter-spacing: .15rem;
    font-size: 10px;
    padding: 0 .25rem 0 0;
}

.large-goal-str .bit-small{
    width: 100%;
    font-size: clamp(16px, calc(1rem + ((1vw - 3.2px) * 2.5)), 20px);
    text-align: center;
    line-height: 1;
    letter-spacing: .15rem;    
}

.small-goal-show-trigger{
    font-size: 12px;
}

.small-goal-show-trigger:hover{
    text-decoration: none;
}



.large-goal-modal-wrap{
    width: 100vw;
    height: 100vh;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 20000;
    opacity: 0;
    pointer-events: none;
    transition: all .2s;
}

.large-goal-modal-wrap.show{
    opacity: 1;
    pointer-events: auto;    
}

.large-goal-modal{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    -webkit- transform: translateY(-50%) translateX(-50%);
}



.large-goal-img{
    width: 400px;      /* ① */
    height: 200px;     /* ① */
    object-fit: cover; /* ② */
}


.small-goal-list-wrap{
    background: #FFF;
    color: #333;
    font-family: "Kaisei HarunoUmi", serif;
    font-weight: 700;
    font-style: normal;
    background: url(https://patterns.nanya-kanya.info/img/110318195759.png) repeat;
}

.small-goal-list{
    font-size: clamp(16px, calc(1rem + ((1vw - 3.2px) * 2.5)), 20px);
    text-decoration: none;
}

.reward-link-wrap .reward-link{
    text-decoration: underline;
    display: inline-block;
}


.small-goal-list{
    padding: 0.5rem;
    padding-left: 40px;
    position: relative;
}

.small-goal-list:before{
    content: "";
    width: 24px;
    height: 24px;
    border: 1px solid #a79a9a;
    position: absolute;
    display: block;
    left: 3px;
    top: calc(50% - 12px);
}

.small-goal-curiculum-link{
    text-decoration: none;
    color: #111 !important;
}

.all-time-data-title{
    font-size: 10px;
    letter-spacing: .33rem;
    text-indent: 0.167rem;
    font-family: serif;
    margin-bottom: .125rem;
}


.auto-candidate{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 10px;
    row-gap: 10px;
}




[data-current = "brain-game"] .answer-btn-wrap,
[data-current = "brain-game"] .next-btn-wrap{
    display: flex;
}






.btnshine{
    /*キラッと光る基点とするためrelativeを指定*/
    position: relative;
/*    box-shadow: 2px 2px 10px #ffffff, -2px 2px 10px #ffffff, 2px -2px 10px #ffffff, -2px -2px 10px #ffffff;*/
}


@keyframes shadowSonar {
  0%,100% {
    box-shadow: 1px 1px rgba(255,255,255,.1), 0 0 20px 5px rgba(255,255,255,.4), inset 2px 2px rgba(255,255,255,.1);
  }
  50% {
    box-shadow: 1px 1px rgba(255,255,255,.1), 0 0 0px 0px rgba(255,255,255,.4), inset 2px 2px rgba(255,255,255,.1);
  }
}


/*キラッと光る*/
/*.btnshine::before {
    content: '';
    position: absolute;
    top: 0;
    left: -75%;
    width: 50%;
    height: 100%;
    background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.3) 100%);
    transform: skewX(-25deg);
    animation: shine 5s 2s infinite;
}
*/

/*.btnshine:after{
    width: 100%;
    height: 100%;
    opacity: 0.75;
    background: #fff;
    color: #fff;
    padding: 1px;
    display: block;
    font-size: 10px;
    position: absolute;
    left: 0;
    top: 0;
    content: '';
    z-index: -1;
    box-sizing: content-box;
    animation: sonarEffect 1.9s ease forwards infinite;
}*/

@keyframes sonarEffect {
    0% {
        opacity: 1.0;
    }
    40% {
        opacity: 0.5;
        box-shadow: 0 0 0 2px rgba(255,255,255,0.1), 0 0 10px 10px #fff, 0 0 0 10px rgba(255,255,255,0.5);
    }
    100% {
        box-shadow: 0 0 0 2px rgba(255,255,255,0.1), 0 0 10px 10px #fff, 0 0 0 10px rgba(255,255,255,0.5);
        transform: scale(1.0);
        opacity: 0;
    }
}


@keyframes shine {
    20%,100% {
        left: 125%;
    }
}



.movie-contents-group{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 10px;
    row-gap: 10px;    
}


.iframe-wrap{
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;    
}

.iframe-wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 10px;
}

.image-wrap img{
    max-width: 100%;
    border-radius: 5px;
}
.movie-content-caption{
    font-size: 12px;
}

.study-calender-item{
    font-size: 14px;
}

.study-calender-progress,
.study-calender-button{
    font-size: 12px;
}


.study-calender-item[data-complete = "1"]{
    position: relative;
    color: #999;
}

.study-calender-item[data-complete = "1"]:before{
    position: absolute;
    content: attr(data-complete-date-str);
    width: 40px;
    height: 40px;
    border-radius: 20px;
    color: #F00;
    border: 2px solid #F00;
    right: 5px;
    top: 3px;
    font-size: 12px;
    text-align: center;
    display: flex;
    line-height: 1;
    align-content: center;
    justify-content: center;
    align-items: center;
    transform: rotate(-16deg);
}

.study-calender-item{
    user-select: none;
}

.study-calender-item .task-item[data-complete = "1"]{
    text-decoration: line-through;
    color: #CCC;
}



.curriculum-wrap{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 10px;
    row-gap: 10px; 
}


.curriculum-item{
    padding: 0.75rem;
    color: #333;
    background: #FFF;
    border-radius: 8px;
    font-size: 14px;
}


.curriculum-item .image-wrap{
    margin-bottom: 0.5rem;
}


.curriculum-item .curriculum-title{
    font-weight: bold;
    margin-bottom: 0.5rem;
}

.curriculum-item .curriculum-time{
    display: flex;
    align-content: center;
    justify-content: flex-end;
    align-items: center;
}

.curriculum-item:active{
    transform: scale(.98);
}

.curriculum-item .curriculum-time span{
    font-size: 10px;
    background: #DDD;
    border-radius: 15px;
    display: inline-block;
    text-align: center;
    padding: .25rem .5rem;
    color: #333;
    margin-right: 0.25rem;
    line-height: 1;
}


.curriculum-item[data-selected = "1"]{
    background: #F5F5F5;
    position: relative;
}


.curriculum-item[data-selected = "1"]:before{
    content: attr(data-date) " 予約済";
    position: absolute;
    left: 3px;
    top: 4px;
    background: #ffe6c6;
    border-radius: 7px;
    display: inline-block;
    text-align: center;
    padding: .125rem .75rem;
    font-size: 12px;
    color: #333;
}

.curriculum-schedule-modal{
    width: 100vw;
    max-width: 100%;
    height: 100vh;
    opacity: 0;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    pointer-events: none;
    transition: opacity .4s;
}

.curriculum-schedule-modal.show{
    opacity: 1;
    pointer-events: auto;
}

.curriculum-schedule-modal-overlay{
    width: 100%;
    height: 100%;
    background: rgba( 0,0,0, .8 );
    z-index: 1;
    position: absolute;
    top: 0;
    left: 0;
}


.curriculum-schedule-modal-inner{
    padding: 1rem;
    background: #FFF;
    color: #333;
    width: 90%;
    max-width: 340px;
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    border-radius: 10px;
    transform: translateY(-50%) translateX(-50%);
    -webkit- transform: translateY(-50%) translateX(-50%);
}


.curriculum-schedule-modal-inner .image-wrap,
.curriculum-schedule-modal-inner .curriculum-schedule-form-wrap{
    margin-bottom: 0.75rem;
}

.curriculum-schedule-title{
    color: #333;
    font-weight: bold;
    margin-bottom: 0.5rem;
}

.raptime-alert-wrap{
    position: fixed;
    top: 0;
    left: 5vw;
    z-index: 2000000000;
    width: 90vw;
}

.raptime-alert{
    width: 90%;
    text-align: center;
    position: fixed;
    bottom: 50px;
    left: 5%;
/*    transition: top .5s;*/
    padding: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.raptime-alert.show{
    bottom: 50px;
}

.clock-wrap.small-test{
    left: auto;
    right: .75rem;
    transform: translate(0px, 0px);
}



.small-test.correct-animation-wrap .correct-animation{
    font-size: 24px;
    text-align: left;
}

[data-today = "1"]{
    background: #FC0 !important;
    font-weight: 700;
    border-top: 2px solid #000;
    margin-top: 5px;
}

[data-incomplete = "1"]{
    background: #ffd7d7 !important;
}

.btn-tertiary{
    position: relative;
}


.btn-tertiary:before{
    position: absolute;
    content: "完了";
    width: 32px;
    height: 32px;
    border-radius: 20px;
    color: #F00;
    border: 2px solid #F00;
    left: calc(50% - 16px);
    top: calc(50% - 16px);
    font-size: 12px;
    text-align: center;
    display: flex;
    line-height: 1;
    align-content: center;
    justify-content: center;
    align-items: center;
    transform: rotate(-16deg);
}

.sonar{
    position: relative;
    z-index: 0;
}

.sonar:before{
    content: "";
    width: 100%;
    height: 100%;
    animation: sonarEffect 3s infinite;    
    display: block;
    z-index: 0;
    left: 0;
    top: 0;
}

.sonar-obj{
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    z-index: -1;
    border-radius: 5px;
    animation: sonarEffect 3s infinite;
} 



.attention-wrap{
    padding: .75rem;
    background: #c7c7c7;
    color: #666;
    font-size: 13px;
    margin-bottom: 1rem;
}


.intro-slide-wrap{
    padding: 1rem 0;
    height: calc(100vh - 60px);
}

.intro-slide-container{
    width: ;
}

.intro-slide{
    padding: 2rem;
    margin-bottom: 1rem;
}

.intro-slide-title{
    font-size: 20px;
    text-align: center;
    font-weight: bold;
    margin-bottom: 1rem;
}

.intro-slide-body .image-wrap,
.intro-slide-body .str-wrap{
    margin-bottom: 1rem;
}

.intro-slide-body img{
    max-width: 100%;
}

.slick-dots{
    position: absolute;
    bottom: 20px;
}


.slick-dots li button:before{
    color: #FFF;
}

.slick-dots li.slick-active button:before{
    color: #C00;
}


.slick-prev,
.slick-next{
    display: none !important;
}


.required{
    color: #F00;
}


.note-textarea{
    width: 100%;
    min-height: 300px;
    border: 1px solid #CCC;
}

.small-goal-wrap{
    position: relative;
    margin-bottom: 0.25rem;
    padding-left: 1.5rem;
}

.small-goal-wrap:before{
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    background: #DDD;
    width: 1rem;
    height: 100%;
}


.a-candidate-wrap .form-control{
    max-width: 90%;
}

.q-candidate{
    color: #F00;
    background: #fff0b6;
}

.a-candidate-add{
    background: #f5f5f5;
    color: #CCC;
    text-align: center;
    border: 1px solid #CCC;
}

.a-candidate-add:active{
    transform: scale(.98);
}


textarea.answerInput,
.single-answer-item textarea{
    width: 100%;
    min-height: 100px;
    padding: .5rem;

}

.prev-next-btn-wrap{
    width: 480px;
    max-width: 100vw;
    left: auto;
    right: auto;
}


.point-str-wrap{
    position: relative;
    text-align: center;
/*    transform: rotate(-13deg);*/
    top: -30px;
    opacity: 0;
}

.point-str{
    font-size: 72px;
    color: #F00;
    display: inline-block;
    line-height: 1;
    font-family: "Zen Kaku Gothic Antique", sans-serif;
    font-weight: 500;
    font-style: normal;
    letter-spacing: -.05em;
}

.point-str:before{
    content: "";
    width: 100px;
    height: 2px;
    background: #F00;
    display: block;
    position: absolute;
    bottom: 8px;
    left: calc(50% - 48px);
    transform: rotate(-12deg);
}

.point-str:after{
    content: "";
    width: 100px;
    height: 2px;
    background: #F00;
    display: block;
    position: absolute;
    bottom: 13px;
    left: calc(50% - 48px);
    transform: rotate(350deg);
}


@keyframes bounceIn {
    0%,20%,40%,60%,80%,to {
        -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
        animation-timing-function: cubic-bezier(.215,.61,.355,1)
    }

    0% {
        opacity: 0;
        -webkit-transform: scale3d(.3,.3,.3);
        transform: scale3d(.3,.3,.3)
    }

    20% {
        -webkit-transform: scale3d(1.1,1.1,1.1);
        transform: scale3d(1.1,1.1,1.1)
    }

    40% {
        -webkit-transform: scale3d(.9,.9,.9);
        transform: scale3d(.9,.9,.9)
    }

    60% {
        opacity: 1;
        -webkit-transform: scale3d(1.03,1.03,1.03);
        transform: scale3d(1.03,1.03,1.03)
    }

    80% {
        -webkit-transform: scale3d(.97,.97,.97);
        transform: scale3d(.97,.97,.97)
    }

    to {
        opacity: 1;
        -webkit-transform: scaleX(1);
        transform: scaleX(1)
    }
}

.animate__bounceIn {
    -webkit-animation-duration: 1.25s;
    animation-duration: 1.25s;
    -webkit-animation-name: bounceIn;
    animation-name: bounceIn
}


.point-str-mini{
    position: absolute;
    bottom: -30px;
    right: 30px;
    color: #666;
    font-size: 12px;
}

.ranking-wrap{
    background: #fff6df;
    border: 1px solid #ffdea9;
    padding: .75rem;
}

.ranking-number-str{
    position: relative;
    text-align: center;
    top: 0px;
    line-height: 1;
    user-select: none;
}

.card .ranking-number-str{
    font-size: 12px;
}

.ranking-number-str--child{
    font-size: 64px;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
    margin: 0 .25rem;
    font-family: "Orelega One", serif;
    font-weight: 400;
    font-style: normal;
}

.study-text-answer .ranking-number-str--child{
    opacity: 0;
}

.card .ranking-number-str--child{
    font-size: 28px;
    margin: 0 .125rem;
}

.ranking-number-str--child[data-ranking="1"]{
    color: transparent;
    background: linear-gradient(0deg, #B67B03 0%, #DAAF08 45%, #FEE9A0 70%, #DAAF08 85%, #B67B03 90% 100%); 
    -webkit-background-clip: text;
}


.ranking-number-str--child[data-ranking="2"]{
    color: transparent;
    background: linear-gradient(0deg, #757575 0%, #9E9E9E 45%, #E8E8E8 70%, #9E9E9E 85%, #757575 90% 100%); 
    -webkit-background-clip: text; 
}


.ranking-number-str--child[data-ranking="3"]{
    
}

.ranking-number-str--parent{
    font-size: 22px;
    font-weight: bold;
    line-height: 1;
}

.card .ranking-number-str--parent{
    font-size: 14px;
}

.ranking-number-label{
    font-size: 12px;
    background: #ffcdb4;
    border-radius: 20px;
    text-align: center;
    color: #d55608;
}

.ranking-info-str{
    font-size: 12px;
    color: #999;
}



.result-animation-wrap{
    width: 100vw;
    height: 100vh;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 20000;
    opacity: 1;
    pointer-events: none;
    transition: all .2s;
}

.large-goal-modal-wrap.show{
    opacity: 1;
    pointer-events: auto;    
}

.result-animation-overlay{
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: 0;
    background: #FFF;
}

.result-animation-wrap--small-test .result-animation-overlay{
    background: url("../img/small_test/battle_start_bg.png") no-repeat center center;
    background-size: cover;
    color: #FFF;    
}


.result-animation-content{
    width: 100%;
    text-align: center;
    position: absolute;
    z-index: 1;
    color: #333;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    -webkit- transform: translateY(-50%) translateX(-50%);
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 900;
    font-style: normal;
}


.result-animation-content--own{
    margin-bottom: 200px;
}

.result-animation-content--own,
.result-animation-content--enemy{
    text-align: center;
}


.result-animation-content--enemy .animate__animated:nth-of-type(1){
    animation-delay:.2s;
}

.result-animation-content--enemy .animate__animated:nth-of-type(2){
    animation-delay:.4s;
}

.result-animation-content--enemy .animate__animated:nth-of-type(3){
    animation-delay:.6s;
}

.result-animation-content .sub{
    font-size: 20px;
    margin-bottom: 4px;
    background: linear-gradient(#ff8888, #ff5454);
    -webkit-background-clip:text;
    -webkit-text-fill-color: transparent;
}

.result-animation-content .main{
    font-size: 40px;
    background: linear-gradient(#ff8888, #ff5454);
    -webkit-background-clip:text;
    -webkit-text-fill-color: transparent;
}

.result-animation-wrap--small-test .result-animation-content .main,
.result-animation-wrap--small-test .result-animation-content .sub{
    color: #FFF;    
    -webkit-text-fill-color: inherit;
}

.ranking-detail-wrap {
    font-size: 14px;
}

.ranking-detail-list-item[data-self="1"] {
    background: #ff990052;
}


.textarea-wrap[data-correct = "0"],
.textarea-wrap[data-correct = "1"]{
    position: relative;
}


.textarea-wrap[data-correct = "0"]:before{
    content: "";
    background: url(../img/study_answer/ng.png) no-repeat center center;
    background-size: contain;
    position: absolute;
    top: -20px;
    left: -20px;
    width: 40px;
    height: 40px;
}

.textarea-wrap[data-correct = "1"]:before{
    content: "";
    background: url(../img/study_answer/ok.png) no-repeat center center;
    background-size: contain;
    position: absolute;
    top: -20px;
    left: -20px;
    width: 40px;
    height: 40px;
}

.textarea-wrap:has(.match-percentage b:empty):before{
    display: none;
}

.match-percentage:has(b:empty) {
    display: none;
}

.small-test-versus-wrap{
    width: 50%;
    margin: 0 auto;
}



.small-test-versus{
    padding: .25rem;
    margin-bottom: .25rem;
}

.small-test-versus[data-user = "1"]{
    background: #ffefb1;
    border: 1px solid #ebc996;
    color: #916d37;
}

.small-test-versus[data-user = "2"]{
    background: #b1d3ff;
    border: 1px solid #96a4eb;
    color: #375e91;
}

.small-test-versus[data-user = "3"]{
    background: #ffb1bf;
    border: 1px solid #eb9696;
    color: #913757;
}



/**
 * login/intro
 */

.goal-content-wrap{

    width: 480px;
    max-width: 90%;
    margin: 0 auto;
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translateX(-50%) translateY(-50%);

}

.large-goal-image-wrap{
    height: 150px;
}

.large-goal-image-wrap .image-wrap{
    height: 100%;
}

.large-goal-image-wrap img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.large-goal-image-wrap.animate__animated{
    opacity: 0;
    animation-duration: 2s;
}

.large-goal-text-wrap{
    font-size: 14px;
}

.large-goal-text-wrap.animate__animated{
    opacity: 0;
    animation-duration: 2s;
    animation-delay: .5s;
}

.large-goal-text{
    font-family: "Kaisei HarunoUmi", serif;
}

.large-goal-text--small{
    font-size: 75%;
    line-height: 1.1;
}


.large-goal-text--large{
    font-size: 300%;
    line-height: 1.1;
}


.medium-goal-text-wrap.animate__animated{
    opacity: 0;
    animation-duration: 2s;
    animation-delay: 1s;
}

.medium-goal-text{
    font-family: "Kaisei HarunoUmi", serif;
}

.medium-goal-text--small{
    font-size: 75%;
    line-height: 1.1;
}


.medium-goal-item{
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    column-gap: 10px;
    row-gap: 10px;
    padding: 0.5rem;
}

.medium-goal-name { grid-area: 1 / 1 / 2 / 3; }
.medium-goal-progress-wrap { grid-area: 1 / 3 / 2 / 5; }
.medium-goal-progress-percentage { grid-area: 1 / 5 / 2 / 6; }

.medium-goal-item.animate__animated:nth-of-type(1){
    animation-delay: 1.2s;
}

.medium-goal-item.animate__animated:nth-of-type(2){
    animation-delay: 1.4s;
}

.medium-goal-item.animate__animated:nth-of-type(3){
    animation-delay: 1.6s;
}

.medium-goal-item.animate__animated:nth-of-type(4){
    animation-delay: 1.8s;
}

.medium-goal-item.animate__animated:nth-of-type(5){
    animation-delay: 2s;
}

.medium-goal-item.animate__animated:nth-of-type(6){
    animation-delay: 2.2s;
}

.medium-goal-item.animate__animated:nth-of-type(7){
    animation-delay: 2.4s;
}

.medium-goal-item.animate__animated:nth-of-type(8){
    animation-delay: 2.6s;
}


.medium-goal-item[data-is-complete = "1"] .medium-goal-name{
    position: relative;
}

.medium-goal-item[data-is-complete = "1"] .medium-goal-name:before{
    content: "完了";
    font-size: 12px;
    background: #3b9b2a;
    padding: 1px 5px;
    display: inline-block;
    text-align: center;
    margin-right: 5px;
    border-radius: 5px;
}


.fixed-btn-wrap{
    position: fixed;
    bottom: 0px;
    left: 0;
    width: 100%;
}



.time-limit-str{
    font-size: 11px;
    line-height: 1;
}

.study-progress-wrap{
    background: #EEE;
}

.study-progress-start,
.study-progress-goal{
    font-size: 10px;
    line-height: 1;
}

.study-progress-start span,
.study-progress-goal span{
    display: inline-block;
}

.study-progress-item{
    background: #CCC;
    width: 100%;
    height: 2px;
    margin: 0 2px;
    position: relative;
}

.study-progress-item.current{
    background: #060;
    animation: studyProgressCurrent 3s linear 3;
}


@keyframes studyProgressCurrent {
  25%,75% { background-color: #CCC;}
  0%,50% { background-color: #060;}
}

.study-progress-item:before {
    content: "問" attr(data-num);
    color: #fff;
    position: absolute;
    left: calc(50% - 12px);
    bottom: calc(50% - 8px);
    width: 24px;
    height: 16px;
    border-radius: 8px;
    background: #ccc;
    padding: 1px 2px 0px;
    font-size: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.study-progress-item.current:before{
    background: #060;
    animation: studyProgressCurrent 3s linear 3;
}


.btn-gray{
  padding: 1.2em 1.6em;
  font-size: 0.9em;
  background: linear-gradient(180deg, white, #e7e7e7);
  color: #999;
  font-weight: bold;
  text-decoration: none;
  user-select: none;
  border: 1px solid #EEE;
  transition: 0.4s ease;
  letter-spacing: .05rem;
}

.btn-gray.clearTrigger{
    color: #FFF;
    background: linear-gradient(180deg, #9b5c2d, #452e16);
}

.btn-gray.disabled{
    display: none;
    opacity: 0.4;
    pointer-events: none;
}

.js-start-memory-q-trigger{
    color: #FFF;
    border: 1px solid #FFF;
    cursor: pointer;
    padding: .5rem;
    text-decoration: none;
    background: #060;
    position: fixed;
    bottom: 0;
    right: 0;
    z-index: 2000;
}


.answer-input-wrap{
    position: fixed;
    left: 0;
    width: 100vw;
    max-width: 100vw;
    height: 100px;
    z-index: 1;
    bottom: 42px;
}

.answer-input-wrap:before{
    content: "【" attr(data-answer-input) "】";
    font-size: 14px;
    position: absolute;
    background: #FFF;
    top: -20px;
    left: 0px;
    line-height: 1;
    padding: 3px;
    color: #F00;
}
.answer-input-wrap .answer-input-submit{
    position: absolute;
    color: #39F;
    bottom: 5px;
    right: 5px;
    background: #39F;
    color: #FFF;
    font-size: 14px;
    padding: 2px 10px;
    border-radius: 4px;
}

textarea.answerInput.floating{
    position: fixed;
    width: 100%;
    box-shadow: 0px 5px 20px -6px rgba(0, 0, 0, .3);
    border: 2px solid #FC0;
}


.floating-answer .a-wrap form{
    display: none !important;
}


.talk .confidence-select-wrap{
    display: none !important;
}

.study-log-link-wrap a{
    border-radius: 14px;
    background: #0d6efd;
    color: #FFF;
    text-decoration: none;
    font-size: 12px;
    display: inline-block;
    padding: 4px 10px 4px;
    line-height: 1;    
}