@charset "utf-8";


/* ==========================
Preloader
============================ */
/* .preloader {
  position: fixed;
  inset: 0;                       top,right,bottom,left:0 の省略 */
  /* background-color: var(--primary-white,#F7F4F0);       */
  /* z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
} */

/* .preloader__inner {
  text-align: center;
} */

/* 4枚の画像を重ねる領域 */
/* .preloader__images {
  position: relative; */
  /* width: 140px;             画像サイズに合わせて調整
  height: 170px;
  margin: 0 auto 24px;
} */

/* プログレス表示 */
/* .preloader__label {
  font-size: 1.4rem;
  margin-bottom: 8px;
} */

/* .preloader__percent {
  font-size: 2rem;
  margin-bottom: 12px;
} */

/* プログレスバー */
/* .preloader__bar {
  width: 200px;
  height: 1px;
  background-color: #ddd;
  margin: 0 auto;
  overflow: hidden;
} */

/* .preloader__bar span {
  display: block;
  width: 0;
  height: 100%;
  background-color: #121212;
  transition: width 0.1s linear;
} */

/* プリローダーが終わるときのフェードアウト */
/* .preloader.is-hidden {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.8s ease;
} */

/* 4枚の画像（下からスライドアップ） */
/* .preloader__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;

  opacity: 0; */
  /* transform: translateY(50px); 
  transition: opacity 0.8s ease, transform 0.8s ease;
} */

/* .preloader__img:nth-child(3) {
    transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}

.preloader__img.is-active {
  opacity: 1; */
  /* transform: translateY(0);      下からスッと上がる */
/* } */




/* ==========================
header
============================ */

/* ==========================
main
============================ */
/* メインビジュアル */
.hero {
    background-image: url(../img/forest_background.jpg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    height: 430px;
    position: relative;
}

.hero__sp {display: block;}
.hero__pc {display: none;}

.hero-photo {
    position: absolute;
    left: 0;
    bottom: 0;
     /* ここからアニメーション用 */
    opacity: 0; /* 最初は透明 */
    transform: translateY(10px); /* 少しだけ下にずらしておく */
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
    /*   最終状態を保持  遅延（1.5秒後に開始）
    時間（1秒でフェードイン） */
}

/* フェードインのキーフレーム */
@keyframes heroPhotoFadeIn {
    0% {
        opacity: 0;
        transform: translateY(10px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}
.hero-title {
    position: absolute;
    left: 0;
    bottom: -128px;
     /* アニメ開始前は非表示 */
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
}

.hero-pc-title {
    position: absolute;
    left: 0;
    bottom: -128px;
     /* アニメ開始前は非表示 */
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
}


@keyframes heroTitleFadeIn {
    0% {
        opacity: 0;
        transform: translateY(10px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}
.hero-photo.is-show,
.hero-title.is-show {
    opacity: 1;
    transform: translateY(0);
}




/* メインキャッチコピー */
.lead {
    margin-top: 200px;
    font-size: 2rem;
    font-weight: 300;
    line-height: normal;
    letter-spacing: 1.2px;
    text-align: center;
    position: relative;
    }
.lead::after {
    position: absolute;
    content: "";
    width: 284px;
    height: 86px;
    background-image: url(../img/YellowLine_SP.png);
    background-size: contain;
    background-repeat: no-repeat;
    left: 43%;
    transform: translateX(-1%);
    bottom: -25px;
    z-index: -1; 
}
/* works */
/* Works セクション見出し */
.topWorks__head {
    text-align: center;
    margin-top: 100px;
}
.Title {
    font-size: 2.5rem;
    position: relative;
    opacity: 0;  /* 最初は非表示 */
}


/* 横棒　擬似要素 */
.Title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    transform-origin: left center;
    height: 1px;
    width: 0;
    background-color: var(--primary-black, #121212);
}

/* スクロールして表示  */
.Title.is-show {
    animation: fadeInWorks 1s ease-out 1.5s forwards;
}
.Title.is-show::before {
    animation: lineGrow 3s ease-out forwards;
}

/* 横棒アニメ：左端固定で右に伸びる */
@keyframes lineGrow {
    0%   { width: 0; }
    100% { width: 120px; }  /* ★ 横棒の長さ */
}

/* Works のフェードイン */
@keyframes fadeInWorks {
    0% {
        opacity: 0;
        transform: translateX(5px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Works＿_card */
.works__inner {
    margin-top: 40px;
}
.work__card {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.work__title {
    display: none;
}

.main__detail {
display: flex;
gap: 3px;
flex-direction: column;
margin-top: 20px;
font-size: 1.3rem;
font-weight: 500;
}

.sub__detail {
    margin-top: 10px;
    display: flex;
    gap: 5px;
    flex-direction: column;
    padding-bottom: 15px;
    font-size: 1.3rem;
}

.sub__detail a {
    text-decoration: none;
    color: #0b3d91;
}

.sub__detail a:hover {
    text-decoration: underline;
}

.work__figure {
    margin-top: 60px;
}
    
.morelink__wrapper {
    display: block;
    text-align: center;
    margin-top: 45px;
}

.more__link {
    display: inline-block;
    font-size: 2.1rem;
    position: relative;
}

.more__line {
    display: block;
    width: 160px;           
    height: 1px;  
    background-color: #121212;          
    margin: 10px auto 0;    
}



/* Toppage Profile */
.profile__head {
    text-align: center;
    margin-top: 120px;
    margin-bottom: 70px;
}

.profile__card {
    display: flex;
    text-align: center;
    flex-direction: column;
}

.profile__row {
    display: flex;
    align-items: center;
    flex-direction: column;
}

.profile__name {
    display:flex;
    flex-direction: column;
    margin-top: 25px;
}

.name__jp {
    font-size: 1.7rem;
    font-weight: 400;
    letter-spacing: 1.36px;
}

.name__en {
    font-size: 1.4rem;
    font-weight: 400;
    letter-spacing: 1.12px;
}

.profile__txt {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 6px;
    margin: auto;
    margin-top: 16px;
}

.profile-action {
    display: flex;
    align-items: center;
    flex-direction: column;
    margin-top: 40px;
}

.play__link {
    display: flex;
    align-items: flex-end;
    gap: 8px;
}

.play__iconTriangle {
    display: block;
}



/* ==========================
footer
============================ */

/* ==========================
Topへ戻るボタン
============================ */



/* ==========================
レスポンシブ
============================ */
/* -----メインビジュアル pc 650px -------------------------- */
/* 横棒アニメ：左端固定で右に伸びる */
@media screen and (min-width:650px) {
    @keyframes lineGrow {
    0%   { width: 0; }
    100% { width: 180px; }  /* ★ 横棒の長さ */
}
}

/* -----メインビジュアル pc 700px -------------------------- */
@media screen and (min-width:700px) {
   /* メインビジュアル */
.hero {
    background-image: url(../img/forest_background.jpg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 115% auto;
    height: 430px;
    position: relative;
}

.hero__sp {display: none;}

.hero__pc {
    display: block;
    position: relative;
    height: 100%;
    max-width: 960px;
    margin: 0 auto;
}

.hero-pc-photos {
    position: absolute;
    left: 50%;
    top: 15%;
    transform: translateX(-50%);
    display: flex;
    gap: 30px;
    align-items: center;
}

.hero-pc-photo--left img,
.hero-pc-photo--right img {
    opacity: 0.6;
}

/* 絶対位置を解除 */
.hero-pc-photo {
    position: relative;      
    width: 260px;
    height: 365px;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 1.2s ease-out,transform 1.2s ease-out;
}

 /* ★PC版で is-show が付いたときの最終状態 */
  .hero-pc-photo.is-show {
    opacity: 1;
    transform: translateY(0);   /* 上に戻る */
  }

.hero-pc-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero-pc-title {
    position: absolute;
    left: 3%;
    bottom: -100px;
    transform: translateX(-50%);
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
    margin-right: 50px;
} 

.hero-pc-title.is-show {
    opacity: 1;
    translate: 0 0;
  }

 /* 順番に出すディレイ設定 */
  .hero-pc-photo--left.is-show   { transition-delay: 0.2s; }
  .hero-pc-photo--center.is-show { transition-delay: 0.6s; }
  .hero-pc-photo--right.is-show  { transition-delay: 1.0s; }
  .hero-pc-title.is-show         { transition-delay: 1.4s; }



/* worksPC */
/* Works セクション見出し PC */
.topWorks__head {
    /* text-align: center; */
    margin-top: 180px;
}

.Title {
    font-size: 3.5rem;
    /* position: relative; */
    /* opacity: 0;  最初は非表示 */
}


/* 横棒　擬似要素 */
.Title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    transform-origin: left center;
    height: 1px;
    width: 0;
    background-color: var(--primary-black, #121212);
}
}

/* ----↑-メインビジュアル pc 700px ------- */


/* --- pc. 769px------------------------------------- */
@media screen and (min-width:769px) {
/* ----------- header */

/* ------------ nav初期表示 */

/* ------------ works PC */
.works__inner {
    margin-top: 110px;
} 

.work__card {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: center;
}

.work__figure {
    margin-top: 100px;
}

.work__figure img {
    width: 257px;
    height: 349px;
    object-fit: cover;
} 

.work__detail {
    margin-left: 70px;
    width: 380px;
}

.main__detail {
    gap: 5px;
    flex-direction: column;
    margin-top: 20px;
    font-size: 2rem;
    font-weight: 500;
}

.sub__detail {
    margin-top: 25px;
    gap: 10px;
    font-size: 1.6rem;
    font-weight: 350;
    letter-spacing: 0.96px;
}

/* ------------ more link PC  */
.morelink__wrapper {
    margin-top: 70px;
}

.more__link {
    display: inline-block;
    font-size: 2.7rem;
    position: relative;
}

.more__line {
    display: block;
    width: 218px;           
    height: 1px;  
    background-color: #121212;          
    margin: 10px auto 0;    
}

/* Toppage Profile PC*/
.profile__head {
    margin-top: 220px;
    margin-bottom: 160px;
}

.profile__card {
    max-width: 960px;
    margin: 0 auto;
    text-align: left;
}

.profile__row {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    gap: 35px;
    flex-direction: row;
    
} 

.profile__figure {
    order: 2;
}

.profile__txt-group {
    display: flex;
    flex-direction: column;
    order: 1;
    max-width: 420px;
    text-align: left;
}

.profile__figure img {
    width: 250px;
    height: 370px;
    object-fit: cover;
}

.profile__name {
    display:flex;
    flex-direction: column;
    margin-top: 25px;
}

.name__jp {
    font-size: 2.8rem;
    letter-spacing: 1.84px;
}

.name__en {
    font-size: 2rem;
    letter-spacing: 1.6px;
}

.profile__txt {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 6px;
    margin: auto;
    margin-top: 16px;
    font-size: 1.6rem;
}

.profile-action {
    display: flex;
    align-items: flex-start;
    margin-top: 60px;
    margin-left: 175px;
}

.play__link {
    display: flex;
    align-items: flex-end;
    gap: 8px;
}
}

/* ------------ footer PC */
/* footer 全体の内側配置 */

/* ------------ ページトップへ戻るボタン */

/* ----PC 769px------------ */





/* -----メインビジュアル pc ---------------------------- */
@media screen and (min-width: 1000px) {
/* 横棒アニメ：左端固定で右に伸びる */
@keyframes lineGrow {
    0%   { width: 0; }
    100% { width: 310px; }  /* ★ 横棒の長さ */
}
}



/* -----メインビジュアル pc 1024px ---------------------- */
@media screen and (min-width: 1024px) {
.hero-pc-photos {
    gap: 60px;
}

/* メインキャッチコピーpc */
.lead {
    margin-top: 200px;
    font-size: 2.3rem;
    letter-spacing: 1.62px;
    }
.lead::after {
    width: 600px;
    height: 125px;
    background-image: url(../img/YellowLine_PC.svg);
    /* background-size: contain; */
    /* background-repeat: no-repeat; */
    left: 32%;
    transform: translateX(-1%);
    bottom: -50px;
    z-index: -1; 
}


}
    
