.read-wrapper {
    background-color: #3a4047;
    padding: 20px 0;
}

.read {
    margin: 0 auto;
    text-align: center;
}

.read .catchcopy {
    display: flex;
    flex-direction: column;
    align-items: center;
    white-space: nowrap;
    overflow: hidden;
    padding: 0 20px;
    max-width: 100%;
    color: rgb(255, 255, 255);
    line-height: 1.5;
}
.read .catchcopy h1 {
    font-family: "M PLUS 1", sans-serif;
    font-size: clamp(10px, 5vw, 48px);
    text-shadow: 0px 0px 8px rgb(255, 204, 36);
}
.read .catchcopy p {
    font-family: "M PLUS 1", sans-serif;
    font-size: clamp(10px, 4vw, 32px);
}

.hr {
    display: inline-block;
    border: 4px solid #2b3035;
    width: 600px;
    margin: 20px 0 10px 0;
}

.read .description {
  font-family: "M PLUS 1", sans-serif;
  font-size: clamp(10px, 3.5vw, 30px);
  color: rgb(255, 255, 255);
  line-height: 2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 0 20px;
  max-width: 100%;
  text-align: center;
}


.hub {
    position: relative;
}

.hub .hub-text {
    position: absolute;
    top: 45%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    text-align: center;
}

.hub .hub-text p {
    font-size: 30px;
}

:root {
  --img-scale: 50%;
}

.hub .images img {
  width: var(--img-scale);
  height: var(--img-scale);
}


.hub .hub-text .title {
    font-size: clamp(10px, 5vw, 60px);
    color: rgb(255, 255, 255);
    font-family: "M PLUS 1", sans-serif;
    text-shadow: 0px 0px 10px rgb(0, 0, 0);
}

.hub .hub-text .subtitle {
    font-size: clamp(10px, 3vw, 40px);
    color: rgb(255, 255, 255);
    font-family: "M PLUS 1", sans-serif;
    text-shadow: 0px 0px 10px rgb(0, 0, 0);
}

.hub .images {
    display: flex;
}

.howtoplay {
  text-shadow: 0px 0px 10px rgb(0, 0, 0);
  margin-top: 20px;
  color: rgb(255, 255, 255);
  background: linear-gradient(160deg, #58c6ff 0%, #076ad9 40%, #ff3bef 80%);
  display: inline-block;
  min-width: clamp(20px, 30vw, 260px);
  line-height: clamp(50px, 9vw, 90px);

  border-radius: 10px;
  font-family: "M PLUS 1", sans-serif;
  font-size: clamp(16px, 3vw, 30px);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;

  position: relative;
  z-index: 1;
  padding: 0 20px;
  text-align: center;
}


.howtoplay::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    color: rgb(212, 212, 212);
    background: linear-gradient(160deg, #4294bd 0%, #0651a7 40%, #ce2fc1 80%);
    filter: blur(6px);
    border-radius: 10px;
    opacity: 0;
}

@media (any-hover: hover) {
    .howtoplay::before {
        transition: opacity 0.2s;
    }

    .howtoplay:hover::before {
        opacity: 1;
    }
}




/* ========== スライダー全体を包むコンテナ ========== */
.first-view {
  position: relative;       /* 子要素(.nav-containerなど)を絶対配置できる基準にする */
  width: 100%;              /* 横幅はブラウザ幅いっぱい */
  height: 60vh; /* 画面の高さ(100vh)からヘッダー110pxを引いた高さ */
  overflow: hidden;         /* 画像がはみ出した場合に隠す */
}

/* ========== スライダー本体 ========== */
.first-view .slider-container {
  position: relative;       /* この中で画像やナビゲーションを配置 */
  width: 100%;              /* 親(.first-view)いっぱい */
  height: 100%;             /* 親(.first-view)いっぱい */
}

/* ========== 画像をまとめて入れるコンテナ ========== */
.first-view .image-container {
  position: absolute;       /* 親(.slider-container)の中で絶対配置 */
  top: 0;                   /* 上端に合わせる */
  left: 0;                  /* 左端に合わせる */
  width: 100%;              /* 横幅いっぱい */
  height: 100%;             /* 高さいっぱい */
  overflow: hidden;         /* 画像のはみ出しを防ぐ */
}

/* ========== 個別の画像 ========== */
.first-view img {
  position: absolute;       /* 画像同士を重ねて配置するため絶対配置 */
  top: 0;                   /* 上端に合わせる */
  left: 0;                  /* 左端に合わせる */
  width: 100%;              /* 親いっぱいに伸ばす */
  height: 100%;             /* 親いっぱいに伸ばす */
  object-fit: cover;        /* アスペクト比を保ちつつ、余白をなくすように拡大縮小 */
  opacity: 0;               /* デフォルトは透明(非表示) */
  transition: opacity 1.5s; /* 不透明度を0.5秒かけて切り替えるアニメーション */
}

/* ========== 表示中の画像 ========== */
.first-view img.image-active {
  opacity: 1;               /* 不透明にして表示 */
  transition: opacity 1.5s; /* フェードイン・フェードアウトの効果を維持 */
}

/* ========== ナビゲーションボタンのコンテナ ========== */
.first-view .nav-container {
  position: absolute;       /* 親(.slider-container)の中で絶対配置 */
  bottom: 20px;             /* 下から20pxの位置に配置 */
  left: 50%;                /* 横幅の中央に配置 */
  transform: translateX(-50%); /* 中央寄せ(50%分戻す) */
  display: flex;            /* 横並びに配置 */
  justify-content: center;  /* 水平方向に中央寄せ */
  align-items: center;      /* 垂直方向に中央寄せ */
  gap: 15px;                /* ボタン間の間隔を15pxにする */
  background: rgba(0, 0, 0, 0.3); /* 半透明の黒背景でボタンを見やすく */
  padding: 10px 20px;       /* 内側の余白（上下10px, 左右20px） */
  border-radius: 20px;      /* 丸みをつけて背景を角丸に */
}

/* ========== 個々のナビゲーションボタン ========== */
.first-view .nav-btn {
  height: 20px;             /* 高さ20px */
  width: 20px;              /* 幅20px */
  display: inline-block;    /* 横並びで配置 */
  background-color: #ffffff;/* 青色（デフォルト） */
  border-radius: 50%;       /* 円形にする */
  border: none;             /* 枠線なし */
  cursor: pointer;          /* ホバー時にマウスポインタを「指マーク」に */
  transition: 0.3s;         /* 色や影の変化を0.3秒かけてスムーズに */
}

/* ========== アクティブなボタン（現在の画像を示す） ========== */
.first-view .nav-btn.btn-active {
  background-color: #14cafd; /* オレンジ色に変更 */
}

/* ========== ボタンにホバーしたときの効果 ========== */
.first-view .nav-btn:hover {
  box-shadow: 0 0 5px 3px white; /* 白い光を放つような影を追加 */
}




@media screen and (max-width: 768px) {

    .first-view {
        height: 40vh;
    }

    .first-view .nav-container {
        gap: 10px;
        padding: 8px 18px;
    }

    .first-view .nav-btn {
        height: 13px;
        width: 13px;
    }

    .hr {
        width: 70%;
        border: 2px solid #2b3035;
        margin: 15px 0 5px 0;
    }
}