@charset "utf-8";


/* ----------------------------------------------------------------------
	l-home-mainimg
---------------------------------------------------------------------- */

/* l-home-mainimg-handwriting */
.l-home-mainimg-handwriting__txt { mask: url(#l-home-mainimg-handwriting__mask); }

.l-home-mainimg-handwriting__txt .cls-1 { fill: var(--color-red); }
  
.finish-load .l-home-mainimg-handwriting__mask-line {
    fill: none;
    stroke: #fff;
    stroke-width: 16;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 2242px;
    stroke-dashoffset: 2242px;
    animation-name: handwritingAnima;
    animation-duration: 1.8s;
    animation-timing-function: ease-in-out;
    animation-delay: 0.6s;
    animation-fill-mode: forwards;
}

@keyframes handwritingAnima {
    0% {
        stroke-dashoffset: 2242px;
    }
    100% {
        stroke-dashoffset: 0;
    }
}


/* l-home-mainimg-slider */
.l-home-mainimg-slider { opacity: 0; }
.finish-load  .l-home-mainimg-slider {
    animation-name: fadeInAnime;
    animation-duration: 0.8s;
    animation-fill-mode: forwards;
}


/* l-home-mainimg-catch */
.l-home-mainimg-catch { opacity: 0; }
.finish-load .l-home-mainimg-catch {
    animation-name: fadeInAnime;
    animation-duration: 0.8s;
    animation-fill-mode: forwards;
}


/* l-home-mainimg-catch__ja */
.l-home-mainimg-catch__ja { opacity: 0; }
.finish-load .l-home-mainimg-catch__ja {
    animation-name: fadeUpAnime;
    animation-duration: 0.8s;
    animation-fill-mode: forwards;
    animation-delay: 2.4s;
}


/* ----------------------------------------------------------------------
	 l-home-strength-mainimg
---------------------------------------------------------------------- */

.l-home-strength-mainimg-bg,
.l-home-strength-mainimg-ph01,
.l-home-strength-mainimg-ph02,
.l-home-strength-mainimg-ph03 { opacity: 0; }

.strength-mainimg-anime .l-home-strength-mainimg-bg,
.strength-mainimg-anime .l-home-strength-mainimg-ph01,
.strength-mainimg-anime .l-home-strength-mainimg-ph02,
.strength-mainimg-anime .l-home-strength-mainimg-ph03 {
    animation-name: fadeUpAnime;
    animation-duration: 0.8s;
    animation-fill-mode: forwards;
}

.strength-mainimg-anime .l-home-strength-mainimg-ph01 { animation-delay: 0.4s; }
.strength-mainimg-anime .l-home-strength-mainimg-ph02 { animation-delay: 0.6s; }
.strength-mainimg-anime .l-home-strength-mainimg-ph03 { animation-delay: 0.8s; }


/* ----------------------------------------------------------------------
	 l-home-strength
---------------------------------------------------------------------- */

/* l-home-strength-catch__en */
.l-home-strength-catch__en span {
	transition: 1s;
	transform: translate3d(0,100%,0) skewY(20deg);
	transform-origin: left;
	display: inline-block;   
}

.l-home-strength-catch__en span.smoothTextAppear { transform: translate3d(0,0,0) skewY(0); }


/* l-home-strength-catch__ja */
.l-home-strength-catch__ja { opacity: 0; }

.strength-anime .l-home-strength-catch__ja {
    animation-name: fadeUpAnime;
    animation-duration: 0.8s;
    animation-fill-mode: forwards;
}

.strength-anime .l-home-strength-catch__ja { animation-delay: 0.4s; }


/* l-home-strength-logo */
.l-home-strength-logo01,
.l-home-strength-logo02,
.l-home-strength-logo03,
.l-home-strength-logo04 {
    fill: transparent;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-miterlimit: 10;
}

.l-home-strength-logo01 { stroke-dasharray: 1532px; }
.l-home-strength-logo02 { stroke-dasharray: 566px; }
.l-home-strength-logo03 { stroke-dasharray: 122px; }
.l-home-strength-logo04 { stroke-dasharray: 85px; }

.strength-anime .l-home-strength-logo01 {
    stroke: var(--color-red);
    fill: var(--color-red);
    animation: strength-anime01 1s ease;
}

.strength-anime .l-home-strength-logo02 {
    stroke: var(--color-yellow);
    fill: var(--color-yellow);
    animation: strength-anime02 1s ease;
}

.strength-anime .l-home-strength-logo03 {
    stroke: var(--color-red);
    fill: var(--color-red);
    animation: strength-anime03 1s ease;
}

.strength-anime .l-home-strength-logo04 {
    stroke: var(--color-yellow);
    fill: var(--color-yellow);
    animation: strength-anime04 1s ease;
}

@keyframes strength-anime01 {
    0% {
        stroke-dashoffset: 1532px;
        fill: transparent;
    } 70% {
        stroke-dashoffset: 0;
        fill: transparent;
    } 100% {
        fill: var(--color-red);
    }
}

@keyframes strength-anime02 {
    0% {
        stroke-dashoffset: 566px;
        fill: transparent;
    } 70% {
        stroke-dashoffset: 0;
        fill: transparent;
    } 100% {
        fill: var(--color-yellow);
    }
}

@keyframes strength-anime03 {
    0% {
        stroke-dashoffset: 122px;
        fill: transparent;
    } 70% {
        stroke-dashoffset: 0;
        fill: transparent;
    } 100% {
        fill: var(--color-red);
    }
}

@keyframes strength-anime04 {
    0% {
        stroke-dashoffset: 85px;
        fill: transparent;
    } 70% {
        stroke-dashoffset: 0;
        fill: transparent;
    } 100% {
        fill: var(--color-yellow);
    }
}

.l-home-strength-ph01,
.l-home-strength-ph02 { opacity: 0; }

.strength-anime .l-home-strength-ph01 {
    animation-name: fadeUpAnime;
    animation-duration: 0.8s;
    animation-fill-mode: forwards;
    animation-delay: 1.8s;
}

.strength-anime .l-home-strength-ph02 {
    animation-name: fadeUpAnime;
    animation-duration: 0.8s;
    animation-fill-mode: forwards;
    animation-delay: 2.2s;
}

/* ----------------------------------------------------------------------
	 l-home-line
---------------------------------------------------------------------- */

.l-home-line {
    fill: transparent;
    stroke-width: 18;
    stroke-linecap: round;
    stroke-miterlimit: 10;
}


/* l-home-line01-pc */
#l-home-line01-pc {
    position: absolute;
    top: 252px;
    right: -26px;
    z-index: -1;
    width: 342px;
    height: 794px;
}

.strength-anime .l-home-line01-pc {
    stroke-dasharray: 1062px;
    stroke-dashoffset: 1062px;
    animation: line01-pc-animation 1.6s 1.6s forwards;
}

@keyframes line01-pc-animation {
    0% {
        stroke-dashoffset: 1062px;
    } 100% {
        stroke-dashoffset: 0;
    }
}


/* l-home-line02-pc */
#l-home-line02-pc {
    position: absolute;
    top: 270px;
    left: -110px;
    z-index: -3;
    width: 456px;
    height: 798px;
}

.line-anime .l-home-line02-pc {
    stroke-dasharray: 1062px;
    stroke-dashoffset: 1062px;
    animation: line02-pc-animation 2s forwards;
}

@keyframes line02-pc-animation {
    0% {
        stroke-dashoffset: 1062px;
    } 100% {
        stroke-dashoffset: 0;
    }
}


/* l-home-line03-pc */
#l-home-line03-pc {
    position: absolute;
    top: 220px;
    left: 560px;
    z-index: -1;
    width: 232px;
    height: 590px;
}


.line-anime .l-home-line03-pc {
    stroke-dasharray: 752px;
    stroke-dashoffset: 752px;
    animation: line03-pc-animation 2s forwards;
}

@keyframes line03-pc-animation {
    0% {
        stroke-dashoffset: 752px;
    } 100% {
        stroke-dashoffset: 0;
    }
}


/* l-home-line04-pc */
#l-home-line04-pc {
    position: absolute;
    top: -370px;
    left: -200px;
    z-index: -1;
    width: 328px;
    height: 734px;
}

.line-anime .l-home-line04-pc {
    stroke-dasharray: 1004px;
    stroke-dashoffset: 1004px;
    animation: line04-pc-animation 2s forwards;
}

@keyframes line04-pc-animation {
    0% {
        stroke-dashoffset: 1004px;
    } 100% {
        stroke-dashoffset: 0;
    }
}


/* l-home-line05-pc */
#l-home-line05-pc {
    position: absolute;
    top: -320px;
    right: -140px;
    z-index: -1;
    width: 328px;
    height: 734px;
}

.line-anime .l-home-line05-pc {
    stroke-dasharray: 1004px;
    stroke-dashoffset: 1004px;
    animation: line05-pc-animation 2s forwards;
}

@keyframes line05-pc-animation {
    0% {
        stroke-dashoffset: 1014px;
    } 100% {
        stroke-dashoffset: 0;
    }
}


.line-anime .l-home-line01-pc,
.line-anime .l-home-line03-pc,
.line-anime .l-home-line05-pc,
.line-anime .l-home-line01-sp,
.line-anime .l-home-line03-sp,
.line-anime .l-home-line05-sp { stroke: var(--color-light-yellow); }

.line-anime .l-home-line02-pc,
.line-anime .l-home-line04-pc,
.line-anime .l-home-line02-sp,
.line-anime .l-home-line04-sp  { stroke: var(--color-light-pink); }


#l-home-line01-sp,
#l-home-line02-sp,
#l-home-line03-sp,
#l-home-line04-sp,
#l-home-line05-sp { display: none; }

@media screen and (max-width: 990px) {
    #l-home-line01-pc,
    #l-home-line02-pc,
    #l-home-line03-pc,
    #l-home-line04-pc,
    #l-home-line05-pc { display: none; }
    
    #l-home-line01-sp,
    #l-home-line02-sp,
    #l-home-line03-sp,
    #l-home-line04-sp,
    #l-home-line05-sp { display: block; }
}


/* l-home-line01-sp */
#l-home-line01-sp {
    position: absolute;
    right: 0;
    bottom: 30px;
    z-index: -1;
    width: 188px;
    height: 418px;
}

.line-anime .l-home-line01-sp {
    stroke-dasharray: 546px;
    stroke-dashoffset: 546px;
    animation: line01-sp-animation 2s forwards;
}

@keyframes line01-sp-animation {
    0% {
        stroke-dashoffset: 546px;
    } 100% {
        stroke-dashoffset: 0;
    }
}


/* l-home-line02-sp */
#l-home-line02-sp {
    position: absolute;
    left: 100px;
    bottom: 20px;
    z-index: -1;
    width: 108px;
    height: 198px;
}

.line-anime .l-home-line02-sp {
    stroke-dasharray: 240px;
    stroke-dashoffset: 240px;
    animation: line02-sp-animation 1s forwards;
}

@keyframes line02-sp-animation {
    0% {
        stroke-dashoffset: 240px;
    } 100% {
        stroke-dashoffset: 0;
    }
}


/* l-home-line03-sp */
#l-home-line03-sp {
    position: absolute;
    right: 30px;
    bottom: -200px;
    z-index: -1;
    width: 116px;
    height: 252px;
}

.line-anime .l-home-line03-sp {
    stroke-dasharray: 320px;
    stroke-dashoffset: 320px;
    animation: line03-sp-animation 2s forwards;
}

@keyframes line03-sp-animation {
    0% {
        stroke-dashoffset: 320px;
    } 100% {
        stroke-dashoffset: 0;
    }
}


/* l-home-line04-sp */
#l-home-line04-sp {
    position: absolute;
    top: 20px;
    left: 60px;
    z-index: -1;
    width: 112px;
    height: 200px;
}

.line-anime .l-home-line04-sp {
    stroke-dasharray: 245px;
    stroke-dashoffset: 245px;
    animation: line04-sp-animation 1.6s forwards;
}

@keyframes line04-sp-animation {
    0% {
        stroke-dashoffset: 245px;
    } 100% {
        stroke-dashoffset: 0;
    }
}


/* l-home-line05-sp */
#l-home-line05-sp {
    position: absolute;
    left: 50%;
    bottom: -20px;
    z-index: -1;
    transform: translateX(calc(-50% - 20px));
    width: 62px;
    height: 116px;
}

.line-anime .l-home-line05-sp {
    stroke-dasharray: 157px;
    stroke-dashoffset: 157px;
    animation: line05-sp-animation 1s forwards;
}

@keyframes line05-sp-animation {
    0% {
        stroke-dashoffset: 157px;
    } 100% {
        stroke-dashoffset: 0;
    }
}


/* ----------------------------------------------------------------------
	 animation
---------------------------------------------------------------------- */

/* smoothText */
.smoothText {
	overflow: hidden;
	display: block;
}

.smoothTextTrigger {
	transition: 1s;
	transform: translate3d(0,100%,0) skewY(20deg);
	transform-origin: left;
	display: inline-block;
}

.smoothTextTrigger.smoothTextAppear { transform: translate3d(0,0,0) skewY(0); }


/* fadeIn */
.fadeInTrigger { opacity: 0; }

.fadeIn {
    animation-name: fadeInAnime;
    animation-duration: 0.8s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes fadeInAnime {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}


/* fadeLeft */
.fadeLeftTrigger { opacity: 0; }

.fadeLeft {
    animation-name: fadeLeftAnime;
    animation-duration: 0.8s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes fadeLeftAnime {
  from {
    opacity: 0;
	transform: translateX(-50px);
  }

  to {
    opacity: 1;
	transform: translateX(0);
  }
}


/* fadeRight */
.fadeRightTrigger { opacity: 0; }

.fadeRight {
    animation-name: fadeRightAnime;
    animation-duration: 0.8s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes fadeRightAnime {
  from {
    opacity: 0;
	transform: translateX(50px);
  }

  to {
    opacity: 1;
	transform: translateX(0);
  }
}

/* fadeUp */
.fadeUpTrigger { opacity: 0; }

.fadeUp {
    animation-name: fadeUpAnime;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes fadeUpAnime {
  from {
    opacity: 0;
	transform: translateY(50px);
  }

  to {
    opacity: 1;
	transform: translateY(0);
  }
}


/* fadeDown */
.fadeDowTrigger { opacity: 0; }

.fadeDown {
    animation-name: fadeDownAnime;
    animation-duration: 0.8s;
    animation-fill-mode:forwards;
    opacity: 0;
}

@keyframes fadeDownAnime {
  from {
    opacity: 0;
	transform: translateY(-50px);
  }

  to {
    opacity: 1;
	transform: translateY(0);
  }
}


/* zoomIn */
.zoomInTrigger { transform: scale(0); }

.zoomIn {
	animation-name: zoomInAnime;
	animation-duration: 0.8s;
	animation-fill-mode: forwards;
}

@keyframes zoomInAnime {
  from {
    transform: scale(0.8);
  }

  to {
    transform: scale(1);
  }
}


/* zoomOut */
.zoomOutTrigger { transform: scale(1.4); }

.zoomOut {
	animation-name: zoomOutAnime;
	animation-duration: 1.8s;
	animation-fill-mode: forwards;
}

@keyframes zoomOutAnime {
  from {
    transform: scale(1.4);
  }

  to {
    transform: scale(1);
  }
}



/* blur */
.blurTrigger { opacity: 0; }

.blur {
	animation-name: blurAnime;
	animation-duration: 0.8s;
	animation-fill-mode: forwards;
}

@keyframes blurAnime {
  from {
    opacity: 0;
    filter: blur(20px);
  }

  to {
    opacity: 1;
    filter: blur(0);
  }
}


/* updown */
.updown {
    animation: move-y 1s infinite alternate ease-in-out;
    display: inline-block; 
}

@keyframes move-y {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(15px);
  }
}



/* opacity0 */
.opacity0 { opacity: 0; }


/* delay */
.animationDealy1 { animation-delay: 0s; }
.animationDealy2 { animation-delay: 0.2s; }
.animationDealy3 { animation-delay: 0.4s; }
.animationDealy4 { animation-delay: 0.6s; }
.animationDealy5 { animation-delay: 0.8s; }
.animationDealy6 { animation-delay: 1s; }


@media screen and (max-width: 990px) {
    .animationDealy2,
    .animationDealy3,
    .animationDealy4,
    .animationDealy5,
    .animationDealy6 { animation-delay: 0s; }
}


