/* =========================
   Base
========================= */

/* ブラウザのデフォルトマージンを削除 */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  /* overflow: hidden; を削除 - スクロールを有効にするため */
  margin: 0;
  padding: 0;  
  font-family:
    "Noto Serif", serif,
    "Noto Sans JP",
    system-ui,
    "Yu Gothic",
    sans-serif;
  background: #ffffff;
  color: #000;
}

/* =========================
   Layout
========================= */

.container {
  width: min(1440px, 100%);
  margin: 0 auto;
}

/* =========================
   Title / Section
========================= */

.title {
  text-align: center;
  font-size: 60px;
  font-weight: 500;
  margin-bottom: 120px;
}

.line {
  margin-bottom: 150px;
  margin-top: 400px;
}

/* =========================
   Intro（中央配置）
========================= */

.intro {
  max-width: 600px;
  margin: 0 auto 160px; /* 横中央 + 下に余白 */
  text-align: center;

  font-size: 16px;
  line-height: 2.6;
  font-weight: 400;
  letter-spacing: 0.03em;
}



/* =========================
   Profile / Topic
========================= */

.profile {
  text-align: center;
  margin-top: 300px;
  margin-bottom: 80px;
  font-weight: 600;
}

.topics {
  text-align: center;
  margin-bottom: 80px;
}

.topics-title {
  font-size: 40px;
  font-weight: 600;
  margin-bottom: 100px;
  text-align: center;
  transform: translateX(0);
  transition: none;
  position: sticky;
  top: 3vh;
  z-index: 10;
  /* background: #ffffff; を削除 */
}




/* =========================
   Message (Interview Text)
========================= */

.message {
  width: 100%;
  margin: 80px 0;

  display: flex;
  flex-direction: column;
  align-items: flex-start;

  opacity: 0;
  transform: translateY(24px);
}

/* 話者名 */
.speaker {
  margin: 0 0 16px 100px;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.02em;
}

/* 本文ブロック（元 bubble） */
.bubble {
  max-width: 700px;
  margin-bottom: 100px;
  margin-left: 80px;

  background: none;
  border: none;
  padding: 0;

  font-size: 16px;
  font-weight: 400;
  line-height: 2.6;
  letter-spacing: 0.03em;
}

.bubble.answer {
  font-family: "Noto Sans JP", "Yu Gothic", system-ui, sans-serif;
  max-width: 700px;
  margin-bottom: 100px;
  margin-left: 80px;

  background: none;
  border: none;
  padding: 0;

  font-size: 16px;
  font-weight: 400;
  line-height: 2.6;
  letter-spacing: 0.03em;
}

/* 段落 */
.bubble p {
  margin: 0;
  text-indent: 1em;
}

.bubble p + p {
  margin-top: 2em;
}

/* 右側指定があっても無効化（全て左寄せ） */
.message.right {
  text-align: left;
}

.message.right .bubble {
  color: #000;
}

.highlighted-block {
    background: linear-gradient(
    to bottom,
    #ffffff 0%,      /* 白色で始まる */
    #ffffff 10%,     /* 白色が続く */
    #90c695 40%,     /* 緑色に変わる */
    #90c695 80%,     /* 緑色が続く */
    #2f5fce 100%     /* 青色で終わる（次の.blueに繋がる） */
  );
  padding: 20px; /* 内側の余白 */
  margin: 10px 0; /* 外側の余白 */
  position: relative; /* z-indexを有効にするために必要 */
  z-index: -2; /* 要素を背面に移動します */
  margin-bottom: 0; /* 下部マージンを削除 */
}

.hero-section {
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: 50;
  background-image: url('./雲2.png');
  font-size: 50px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

/* hero-sectionの白いオーバーレイ用スタイル */
.hero-white-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: white;
  opacity: 0;
  pointer-events: none;
  z-index: 100;
}

.greenback {
   top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: 50;
  background-image: url('./緑背景先端1.png');
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}

.greenbackhalf {
   top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: 50;
  background-image: url('./緑背景中間.png');
  background-size: cover;
  background-position: center;
}

.blue {
  background: linear-gradient(
    to bottom,
    #2f5fce 0%,      /* 青色で始まる */
    #2f5fce 90%,     /* 青色が続く */
    #ffffff 100%     /* 最後に一気に白に変わる */
  );
  padding: 20px; /* 内側の余白 */
  margin: 10px 0; /* 外側の余白 */
  position: relative; /* z-indexを有効にするために必要 */
  z-index: -2; /* 要素を背面に移動します */
   margin-top: 0; /* 上部マージンを削除 */
  margin-bottom: 0;
}

.blue p, .blue div {
  color: #ffffff;
  position: relative;
  z-index: 1; /* テキストだけを最前面に */
}

.highlighted-block + .blue {
  margin-top: -10px; /* 必要に応じて調整 */
}

.white {
  background: linear-gradient(
    to bottom,
    #2f5fce 0%,      /* 青色で始まる */
    #5ba8c4 40%,     /* 水色に変わる */
    #a8d5e8 70%,     /* 薄い青に変わる */
    #ffffff 100%     /* 白色で終わる */
  );
  padding: 20px;
  margin: 0;
  position: relative;
  z-index: 0;
}







.gradient-transition {
  position: fixed;
  top: 100vh;
  left: 0;
  width: 100%;
  height: 200px;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
  z-index: 49;
  pointer-events: none;
}

 .walking-person {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 200px;
  height: auto;
  opacity: 0;
  z-index: 1;
  pointer-events: none;
}

/* セクションマーカー用のクラス */
.section-marker {
  position: relative;
  height: 1px;
  visibility: hidden;
}

/* =========================
   GIF表示コンテナ（個別GIF用）
========================= */

/* 基本的なGIF要素のスタイル */
.gif-element {
  position: fixed;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}

.gif-element.active {
  opacity: 1;
}

/* 1. 青年が歩く（父との葛藤～1980） */
#gif-young {
  margin-left: 50px;
  top: 50%;
  width: 70%;
  height: auto;
}

/* 2. ヤンキーが歩く（喧嘩上等、荒れた高校生活～1988） */
#gif-yankee {
  margin-left: 50px;
  top: 55%;
  width: 100%;
  height: auto;
}

/* 3. 車が走る（辞める勇気～1999） */
#gif-car {
  top: 60%;
  width: 60%;
  height: auto;
}

/* 4. 船（海女への誘惑～2000） */
#gif-ship {
  margin-left: 90px;
  top: 50%;
  width: 65%;
  height: auto;
}

/* 5. 私服の男が歩く（あわや犯罪者、運命の忠告） */
#gif-businessman-casual {
  margin-left: 50px;
  top: 70%;
  width: 100%;
  height: auto;
}

/* 6. 私服の男が歩く（覚悟の一ヶ月～2005） */
#gif-businessman-casual-2 {
  top: 58%;
  width: 270px;
  height: auto;
}

/* 7. スーツの男が歩く（究極のサービス業、その誇り～最後） */
#gif-businessman-suit {
  margin-left: 50px;
  top: 70%;
  width: 100%;
  height: auto;
}




/* =========================
   Motion (GSAP用)
========================= */

@media (prefers-reduced-motion: reduce) {
  .message {
    opacity: 1 !important;
    transform: none !important;
  }
}