@charset "utf-8";
/* CSS Document */

.fadeIn{
animation-name:fadeInAnime;
animation-duration:2.5s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeInAnime{
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/* 下から */

.fadeUp{
animation-name:fadeUpAnime;
animation-duration:0.8s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeUpAnime{
  from {
    opacity: 0;
  transform: translateY(100px);
  }

  to {
    opacity: 1;
  transform: translateY(0);
  }
}

/* 上から */

.fadeDown{
animation-name:fadeDownAnime;
animation-duration:0.5s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeDownAnime{
  from {
    opacity: 0;
  transform: translateY(-100px);
  }

  to {
    opacity: 1;
  transform: translateY(0);
  }
	
 }	


.fadeLeft{
animation-name:fadeLeftAnime;
animation-duration:1s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeLeftAnime{
  from {
    opacity: 0;
  transform: translateX(-100px);
  }

  to {
    opacity: 1;
  transform: translateX(0);
  }
}


.fadeRight{
animation-name:fadeRightAnime;
animation-duration:1s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeRightAnime{
  from {
    opacity: 0;
  transform: translateX(100px);
  }

  to {
    opacity: 1;
  transform: translateX(0);
  }

}

/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
 
.fadeInTrigger,
.fadeUpTrigger,
.fadeDownTrigger,
.fadeLeftTrigger,
.fadeRightTrigger{
    opacity: 0;
}


/*枠線が伸びて出現*/
  :root {
            --offset-x: 20px; /* 右へのズレ */
            --offset-y: -20px; /* 上へのズレ */
            --line-color: #F9D0D0;
        }

        /* 画面サイズが小さい時はズレ幅を調整 */
        @media (max-width: 768px) {
            :root {
                --offset-x: 10px;
                --offset-y: -10px;
            }
        }

       /* body {
            margin: 0;
            padding: 100px 20px;
            display: flex;
            justify-content: center;
            background-color: #fff;
        }*/

        /* 外側の枠（アニメーションのトリガー） */
        .lineTrigger {
            position: relative;
            display: inline-block; /* 画像の幅に合わせる */
            opacity: 0;
            margin-top: calc(var(--offset-y) * -1); /* 上にズレる分、外側に余白を確保 */
			width: 95%;
			margin-left: 5%;
        }

        .lineTrigger.lineanime {
            opacity: 1;
        }

        /* 画像を包む要素：元の画角を保持 */
        .lineinappear {
            display: block;
            opacity: 0;
            /* 枠線に対して左下に配置することで、相対的に枠線を右上に見せる */
            transform: translate(calc(var(--offset-x) * -1), calc(var(--offset-y) * -1));
        }

        .lineTrigger.lineanime .lineinappear {
            animation: lineInnerAnime .5s linear 1.5s forwards;
        }

        .lineinappear img {
            display: block;
            width: 100%;
            height: auto; /* 画角を保持 */
            max-width: 100%;
        }

        /* --- 枠線の設定 --- */
        .lineTrigger::before,
        .lineTrigger::after,
        .line2::before,
        .line2::after {
            position: absolute;
            content: "";
            background: var(--line-color);
            z-index: 10;
            pointer-events: none;
        }

        /* 横線（上下） */
        .lineTrigger::before,
        .lineTrigger::after {
            width: 0;
            height: 1px;
        }

        /* 縦線（左右） */
        .line2::before,
        .line2::after {
            width: 1px;
            height: 0;
        }

        /* 上線 */
        .lineTrigger::before {
            top: 0;
            left: 0;
        }
        .lineTrigger.lineanime::before {
            animation: lineAnime .5s linear 0s forwards;
        }

        /* 右線 */
        .line2::before {
            top: 0;
            right: 0;
        }
        .lineTrigger.lineanime .line2::before {
            animation: lineAnime2 .5s linear .5s forwards;
        }

        /* 下線 */
        .lineTrigger::after {
            bottom: 0;
            right: 0;
        }
        .lineTrigger.lineanime::after {
            animation: lineAnime .5s linear 1s forwards;
        }

        /* 左線 */
        .line2::after {
            bottom: 0;
            left: 0;
        }
        .lineTrigger.lineanime .line2::after {
            animation: lineAnime2 .5s linear 1.5s forwards;
        }

        @keyframes lineAnime {
            0% { width: 0%; }
            100% { width: 100%; }
        }

        @keyframes lineAnime2 {
            0% { height: 0%; }
            100% { height: 100%; }
        }

        @keyframes lineInnerAnime {
            0% { opacity: 0; }
            100% { opacity: 1; }
        }


/*==================================================
アニメーション設定
===================================*/

/* アニメーションの回数を決めるCSS*/

.count2{  
  animation-iteration-count: 2;/*この数字を必要回数分に変更*/
}

.countinfinite{  
  animation-iteration-count: infinite;/*無限ループ*/
}

/* アニメーションスタートの遅延時間を決めるCSS*/

.delay-time05{  
  animation-delay: 0.5s;
}

.delay-time1{  
  animation-delay: 1s;
}

.delay-time15{  
  animation-delay: 1.5s;
}

.delay-time2{  
  animation-delay: 2s;
}

.delay-time25{  
  animation-delay: 2.5s;
}

/* アニメーション自体が変化する時間を決めるCSS*/

.change-time05{  
  animation-duration: 0.5s;
}

.change-time1{  
  animation-duration: 1s;
}

.change-time15{  
  animation-duration: 1.5s;
}

.change-time2{  
  animation-duration: 2s;
}

.change-time25{  
  animation-duration: 2.5s;
}