/* ---------------------------------------------
   共通スタイル（PC・SP共有）
---------------------------------------------- */

:root {
    --font-jp: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
    --font-en: "Readex Pro", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

    --text: #BFBFBF;
    --bg: #000000;
    --muted: #666;
    --container: 1120px;
}

* {
    box-sizing: border-box;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

html,
body {
    height: 100%;
}

body {
    margin: 0;
    font-family: var(--font-jp);
    color: var(--text);
    background: var(--bg);
    line-height: 1.7;
    -webkit-text-size-adjust: 100%;
    text-rendering: optimizeLegibility;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}



/* animate  */
.animation {
    opacity : 0.0;
    transform : translate(0, 50px);
    transition : all 1000ms;
    }

.animation.scrollin {
    opacity : 1;
    transform : translate(0, 0);
    }
.animation.scrollin:nth-of-type(2) {
	transition-delay: 0.3s;
}
.animation.scrollin:nth-of-type(3) {
	transition-delay: 0.5s;
}
.animation.scrollin:nth-of-type(4) {
	transition-delay: 0.8s;
}


.animate {
    opacity : 0.0;
    transform : translate(0, 0);
    transition : all 1200ms 1.2s;
}
.animate.scrollin {
    opacity : 1;
    transform : translate(0, 0);
	transition-delay: 0.2s;
}
.animate.scrollin:nth-of-type(2)  {
	transition-delay: 0.4s;
}
.animate.scrollin:nth-of-type(3)  {
	transition-delay: 0.8s;
}
.animate.scrollin:nth-of-type(4)  {
	transition-delay: 1.1s;
}
.animate.scrollin:nth-of-type(5)  {
	transition-delay: 1.5s;
}


.anim .fadein {
    opacity: 0;
    animation: fadeIn 1.0s cubic-bezier(0.33, 1, 0.68, 1) forwards;
} 
.anim .fadein:nth-of-type(1)  {
	animation:fadeIn 1.0s  forwards 0.1s;
}
.anim .fadein:nth-of-type(2)  {
	animation:fadeIn 1.0s  forwards 0.4s;
}
.anim .fadein:nth-of-type(3)  {
	animation:fadeIn 1.0s  forwards 0.8s;
}
.anim .fadein:nth-of-type(4)  {
	animation:fadeIn 1.0s  forwards 1.1s;
}
.anim .fadein:nth-of-type(5)  {
	animation:fadeIn 1.0s  forwards 1.5s;
}

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

.bg-video {
    position: fixed;
    inset: 0;
    z-index: -1;
    /* 背面へ */
    overflow: hidden;
    background: #000;
    /* 読み込み前の保険 */
}

.bg-video__media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100vh;
    object-fit: cover;
    /* 画面を覆う */
    object-position: center;
}

/* 前面コンテンツは通常通り */
.site {
    position: relative;
    z-index: 1;
}

/* 文字の可読性アップ用の薄いオーバーレイ（任意） */
.bg-video::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    
}
.bg-video{
    height: 100vh;
    height: 100svh; /* iOSで安定しやすい */
    height: 100dvh; /* 対応ブラウザではこれが最適 */
  }

  .bg-video__sp { display:none; }
  @media (max-width: 767px){
    .bg-video__pc { display:none; }
    .bg-video__sp { display:block; }
  }

  @media (prefers-reduced-motion: reduce){
    .bg-video__media{ display:none; }
    .bg-video{ background: url("images/bg_poster.jpg") center/cover no-repeat; }
  }

/* 初期状態（非表示） */
.contents_blk .title_blk,
.contents_blk .body_blk {
  opacity: 0;
}

/* title：左→右 */
.contents_blk .title_blk {
  transform: translateX(-24px);
  transition: transform .7s ease, opacity .7s ease;
  transition-delay: .6s; /* ← titleを遅らせる */
}

/* body：下→フェードイン */
.contents_blk .body_blk {
  transform: translateY(24px);
  transition: transform .7s ease, opacity .7s ease;
  transition-delay: 0s; /* ← 先に出す */
}

/* 表示（トリガークラス） */
.contents_blk.is-inview .title_blk,
.contents_blk.is-inview .body_blk {
  opacity: 1;
  transform: translate(0,0);
}

/* h2 文字アニメ（span化して1文字ずつ） */
.contents_blk .title_blk h2 {
  margin: 0;
  letter-spacing: .08em;
}

.contents_blk .title_blk h2 .char {
  display: inline-block;
  opacity: 0;
  transform: translateY(12px);
}

/* inviewになったら span にアニメ付与 */
.contents_blk.is-inview .title_blk h2 .char {
  animation: charIn .5s ease forwards;
}

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