

body{ 
       margin: 0;
      padding-bottom: 60px; /* フッター分の余白を確保 */
      font-family: sans-serif;
      padding: 30px;
      background-color: #dedee2;


      background-image: url("photo/background.png");}



.header {
  display: flex;
  width: 100%;
  height: 100px;
  justify-content: space-between;
  background-color: darkgrey;
  align-items: center;
  position: relative;
  background-color: #ffffff; 
  padding: 10px 20px;       
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.bg {
  text-align: left;   /* 左寄せ */
  margin-top: 20px;
  padding-left: 20px; /* 左に少し余白（必要なら削除可） */
}

/* 各行の共通設定 */
.bg .bg-wrap {
  position: relative;
  display: inline-block;
  margin-top: 1px;
  overflow: hidden; /* 背景アニメーションを枠内に限定 */
}

.bg .bg-wrap .inn {
  color: #fff;
  display: inline-block;
  font-size: 15px;
  font-weight: bold;
  padding: 8px 16px;
  position: relative;
  z-index: 1;
  line-height: 1.6;
}

/* 各行の背景アニメーション共通設定 */
.bg .line1::before,
.bg .line2::before,
.bg .line3::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform-origin: left center;
  opacity: 0;
  animation: bg-once 2.6s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

/* 各行ごとのグラデーション（行ごとに少し変化） */
.bg .line1::before {
  background: linear-gradient(to right, #fabacd 0%, #da789e 50%, #be4875 100%);
  animation-delay: 0s;
}

.bg .line2::before {
  background: linear-gradient(to right, #fabacd 0%, #da789e 50%, #be4875 100%);
  animation-delay: 0.5s;
}

.bg .line3::before {
  background: linear-gradient(to right, #fabacd 0%, #da789e 50%, #be4875 100%);
  animation-delay: 1s;
}

/* フェードイン＋スライドして止まるアニメーション */
@keyframes bg-once {
  0% {
    opacity: 0;
    transform: scaleX(0);
  }
  20% {
    opacity: 1;
  }
  80%, 100% {
    opacity: 1;
    transform: scaleX(1);
  }
}


 

.header > h1 {
  margin: auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.img-box {
  display: flex;
  justify-content: center;
  align-items: center;}


 
.menu-item {
  list-style: none;
  display: inline-block;
  padding: 13px;
}

    input[type="text"] {
      width: 100%;
      padding: 10px;
      font-size: 16px;
      border: 1px solid #ccc;
      border-radius: 8px;
      box-sizing: border-box;
    }

   .toggle-btn {
  display: inline-block;
  padding: 6px 12px;
  font-size: 14px;
  cursor: pointer;
  border: none;
  background-color: #71b6c7;
  color: white;
  border-radius: 6px;
  transition: background-color 0.3s;
  
  margin-left: 10%;         /* .search-form-5 の width: 80% に合わせて調整 */
  max-width: 800px;         /* 同じ基準幅 */
  display: block;            /* 左寄せで整列しやすくする */
}


.search-form-5 {
  display: flex;
  justify-content: center; /* 中央寄せ */
  align-items: center;
  width: 80%;
  max-width: 800px;
  margin: 20px auto; 
  overflow: hidden;
  border-radius: 8px;
  background-color: #f2f2f2;
  border: 1px solid #ccc;
  box-sizing: border-box;
}


.search-form-5 input {
    flex: 1;
    height: 45px;
    padding: 5px 15px;
    border: none;
    box-sizing: border-box;
    background-color: #f2f2f2;
    font-size: 1em;
    outline: none;
    text-align: left; 
}

.search-form-5 input::placeholder {
    color: #777;
}

.search-form-5 button {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 45px;
    height: 45px;
    border: none;
    background-color: transparent;
    cursor: pointer;
    flex-shrink: 0; }

.search-form-5 button::after {
    width: 20px;
    height: 20px;
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%20%3Cpath%20d%3D%22M23.7%2020.8%2019%2016.1c-.2-.2-.5-.3-.8-.3h-.8c1.3-1.7%202-3.7%202-6C19.5%204.4%2015.1%200%209.7%200S0%204.4%200%209.7s4.4%209.7%209.7%209.7c2.3%200%204.3-.8%206-2v.8c0%20.3.1.6.3.8l4.7%204.7c.4.4%201.2.4%201.6%200l1.3-1.3c.5-.5.5-1.2.1-1.6zm-14-5.1c-3.3%200-6-2.7-6-6s2.7-6%206-6%206%202.7%206%206-2.6%206-6%206z%22%20fill%3D%22%23777%22%3E%3C%2Fpath%3E%20%3C%2Fsvg%3E');
    background-repeat: no-repeat;
    content: '';
}

.toggle-btn:hover {
  background-color: #da789e;
}

    .suggestions {
      margin-top: 10px;
      display: none;
      flex-wrap: wrap;
    }

    .suggestions button {
      margin: 5px;
      padding: 6px 10px;
      font-size: 14px;
      border: 1px solid #ccc;
      background-color: #fff;
      border-radius: 6px;
      cursor: pointer;
      transition: all 0.2s;
    }

    .suggestions button:hover {
      background-color: #e9ecef;
    }
    .bottom-nav {
      position: fixed;
      bottom: 0;
      left: 0;
      width: 100%;
      background-color: #fff;
      border-top: 1px solid #ddd;
      display: flex;
      justify-content: space-around;
      align-items: center;
      height: 60px;
      box-shadow: 0 -2px 6px rgba(0,0,0,0.1);
      z-index: 999;
    }

    /* 各アイコン */
    .bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background-color: #fff;
  border-top: 1px solid #ddd;
  display: flex;
  justify-content: space-around;
  align-items: center;
  height: 60px;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.1);
  z-index: 999;
}

.nav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #555;
  text-decoration: none;
  font-size: 9px;
  flex: 1;
  transition: color 0.2s;
}

.material-symbols-outlined {
  font-size: 30px;
  margin-bottom: 3px;
  transition: color 0.2s;
}

.nav-item.active,
.nav-item:hover {
  color: #da789e;
}

.nav-item.active .material-symbols-outlined,
.nav-item:hover .material-symbols-outlined {
  color: #da789e;
}


.timeline {
  width: 90%;
  max-width: 520px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* 投稿カード */
.post-card {
  background-color: #ffffff;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  padding: 16px 20px;
  position: relative;
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.post-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.18);
}

/* ヘッダー */
.post-header {
  display: flex;
  align-items: center;
  position: relative;
  margin-bottom: 12px;
}

.user-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  margin-right: 12px;
  background-color: #ddd;
}

.user-info {
  flex: 1;
}

.username {
  font-weight: bold;
  font-size: 15px;
  color: #333;
}

.userid {
  font-size: 12px;
  color: #999;
  margin-top: 2px;
}

/* 右上タイトル */
.post-menu {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #888;
  font-size: 14px;
}

.post-menu .material-symbols-outlined {
  font-size: 22px;
  vertical-align: middle;
  color: #aaa;
}

.game-title {
  font-weight: 500;
  color: #555;
}

/* 本文 */
.post-content {
  font-size: 14px;
  color: #444;
  line-height: 1.6;
  white-space: pre-line;
  position: relative;
}

/* 投稿画像 */
.post-image {
  width: 100%;
  border-radius: 8px;
  margin-top: 10px;
  object-fit: cover;
  max-height: 300px;
  cursor: pointer;
  transition: opacity 0.3s;
}

.post-image:hover {
  opacity: 0.9;
}

/* ネタバレ部分 */
.spoiler-content {
  position: relative;
  cursor: pointer;
  overflow: hidden;
}

.spoiler-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #000;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 2px;
  opacity: 1;
  transition: opacity 0.5s ease;
}

.spoiler-content:hover .spoiler-overlay {
  opacity: 0;
  pointer-events: none;
}

/* スマホ長押し */
.spoiler-content.touching .spoiler-overlay {
  opacity: 1;
}

@media (hover: none) {
  .spoiler-content .spoiler-overlay {
    opacity: 0;
  }
  .spoiler-content.touching .spoiler-overlay {
    opacity: 1;
  }
}

/* 🔍 画像拡大用オーバーレイ */
.image-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.9);
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  z-index: 999;
  transition: opacity 0.3s ease;
}

.image-overlay.show {
  opacity: 1;
  visibility: visible;
}

.image-overlay img {
  max-width: 90%;
  max-height: 90%;
  border-radius: 8px;
  object-fit: contain;
}

/* ×ボタン */
.close-btn {
  position: absolute;
  top: 20px;
  right: 30px;
  font-size: 32px;
  color: #fff;
  cursor: pointer;
  user-select: none;
  transition: color 0.2s;
}

.close-btn:hover {
  color: #da789e;
}