@view-transition {
  navigation: auto;
}

::placeholder{
    color: #EEE;
}

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

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

body{
    width: 480px;
    max-width: 100%;
    margin: 0 auto;
    margin-top: 60px;
}

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

[data-concept = "training"] {
    background: #a79c67;
    color: #FFF;
}

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

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

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

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

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

[data-concept = "training"] .btn-primary{
    color: #FFF;
    background: #113946;
    border: 1px solid #113946;
} 

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

.disnone{
    display: none;
}

/**
 * header
 */
.header-wrap{
    background-color: #F8F6EC;
}

[data-concept = "study"] .header-wrap {
    background-color: rgb(51 51 51 / 50%);
}

[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-concept = "training"] .header-wrap{
    background: #bd8142;
}

.header-page-title{

}

/**
 * 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: 15px;
    padding-bottom: 15px;
    font-size: 11px;
    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{
    background: #000;
}

.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{
    background: none;
    text-indent: -9999px;
}

.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--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.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;
}

.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;
}

.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:nth-of-type(5n-4){
    background-color: rgb(187 0 0 / 28%);
}
.card.task-item:nth-of-type(5n-3){
    background-color: rgb(177 0 187 / 28%);
}
.card.task-item:nth-of-type(5n-2){
    background-color: rgb(148 227 0 / 28%);
}
.card.task-item:nth-of-type(5n-1){
    background-color: rgb(0 13 187 / 28%);
}
.card.task-item: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: 10px;
    row-gap: 10px;
}

.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;
}

[data-concept = "gym"] .like-button input[type="checkbox"]:checked + label:before{
    content: "このトレーニングをする";
}

[data-concept = "training"] .like-button input[type="checkbox"]:checked + label:before{
    content: "この研修をする";
}


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

.accordion-title[data-is-complete = '1']{
    opacity: .4;
    filter: grayscale(1);
}

.accordion-title[data-is-complete = '1']:before{
    content: "完了済";
    position: absolute;
    font-family: "Dela Gothic One", sans-serif;
    font-weight: 400;
    font-size: 28px;
    display: block;
    opacity: .75;
    border: 2px solid #CC0000;
    box-sizing: border-box;
    padding: .5rem;
    border-radius: 10px;
    line-height: 1;
    right: 20px;
    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;
}

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


.layer--3 .accordion-title{
    background: #777;
    margin-bottom: 10px;
}


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

#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エリアをふわっと表示*/
#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-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: 35vh;
    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: "TARGET";
    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{
    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="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%);
}

[data-concept="training"] .card{
    background: #bd8142;
}

[data-concept="training"] .card a{
    color: #FFF;
}

.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 .video-area{
    display: none;
}


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

.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 .q-wrap{
    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%;
}



/**
 * 紙ラフページ用
 */
.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{
}

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

.confidence-select-wrap{
}

.confidence-item{
    max-width: 100%;
}

.js-confidence-item{
    position: relative;
}

.js-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: -5px;
    left: -5px;
}

.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;
}


.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 .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;
}