/* style.css - 修正版 */

/* 基本のhtml,body設定 */
html, body {
  height: 100%;
  margin: 0;
  padding: 0;
}

/* body全体 */
body {
  font-family: "ＭＳ Ｐゴシック", Osaka, sans-serif;
  font-size: 16px;
  background-color: #eaffea;
  color: #003366;
  cursor: url('asset/cursor/pastelpink.cur'), auto;
  position: relative; /* 固定要素用 */
  min-height: 100vh;
}

/* リンク基本 */
a {
  color: #0000cc;
  text-decoration: underline;
}

a:hover {
  color: #cc66cc; /* ほのかなピンク */
  text-shadow:
    0 0 6px #f9a9f9,
    0 0 12px #f2a9f2;
  cursor: url('asset/cursor/linopink.png'), pointer;
  text-decoration: underline;
}

/* タイトル */
.title {
  font-family: 'Impact', 'Arial Black', 'ＭＳ Ｐゴシック', sans-serif;
  font-size: 40px;
  color: #9933cc;
  margin: 30px auto 10px;
  text-shadow:
    0 0 5px #ffccff,
    1px 1px 2px #cc99ff,
    -1px -1px 2px #ccffff;
  letter-spacing: 1px;
  text-align: center;
  white-space: nowrap;
  overflow-x: auto;
  padding: 0 8px;
  box-sizing: border-box;
  max-width: 100vw;
  scroll-behavior: smooth;
}

/* コンテナ */
.container {
  display: flex;
  flex-direction: row;
  max-width: 1100px;
  margin: auto;
  padding: 10px;
  background-color: #eaffea;
  min-height: calc(100vh - 110px); /* タイトル+余白程度の高さ分引く */
  box-sizing: border-box;
  align-items: stretch;
}

/* サイドバー */
.sidebar {
  width: 180px;
  background-color: rgba(200, 240, 210, 0.7);
  border: 3px dotted #7fc18a;
  border-radius: 12px;
  padding: 15px 18px;
  color: #3a5a33;
  font-family: "ＭＳ Ｐゴシック", Osaka, sans-serif;
  font-size: 18px;
  line-height: 2.2;
  user-select: none;
  box-sizing: border-box;
  align-self: stretch;
}

/* メイン＋カウンターまとめラッパー */
.content-area {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
  box-sizing: border-box;
}

/* メイン */
.main {
  flex: 1;
  padding-left: 10px;
  box-sizing: border-box;
  background-color: #eaffea;
}

/* カウンター*/
.counter {
  position: static; 
  bottom: auto;
  left: auto;
  transform: none;
  z-index: auto;
  background-color: rgba(255,255,255,0.9);
  padding: 5px 10px;
  border-radius: 8px;
  box-shadow: 0 0 8px rgba(0,0,0,0.15);
  text-align: center;
  width: auto;
  max-width: 90vw;
  margin-top: 20px; /* メインとの余白 */
  align-self: center; /* 横中央に */
}

.counter script,
.counter img {
  display: inline-block;
  margin: 0 auto;
}

.mobile-nav {
  display: none;
}

.top-image {
  border: 4px ridge #ccf;
  padding: 10px;
  background: linear-gradient(to bottom right, #eaffff, #ccf);
  width: 90%;
  max-width: 640px;
  margin: auto;
  box-shadow: 4px 4px 8px rgba(0,0,0,0.2);
}

.catchcopy {
  font-size: 18px;
  padding: 15px;
  background: linear-gradient(to bottom right, #f8fcff, #d8ecff);
  border: 2px solid #99ccff;
  border-radius: 10px;
  box-shadow: 4px 4px 8px rgba(0,0,0,0.2);
  width: 90%;
  max-width: 650px;
  margin: 30px auto;
  line-height: 1.6;
  text-align: center;
}

.catchcopy span {
  font-size: 20px;
  font-weight: bold;
  text-shadow: 1px 1px 2px #66f, 0 0 8px #99f;
  word-break: keep-all;
  white-space: nowrap;
}

marquee {
  color: #ff00cc;
  font-weight: bold;
  font-size: 16px;
  margin-top: 10px;
  text-shadow: 0 0 6px #f0f;
}

.news {
  max-height: 180px;
  overflow-y: auto;
  border: 2px inset #99ccff;
  background-color: #f6fcff;
  padding: 10px;
  margin: 20px auto;
  line-height: 1.6;
  width: 90%;
  max-width: 700px;
}

.news ul li::before {
  content: "🍣 ";
  margin-right: 6px; /* 絵文字とテキストの間の余白 */
}

h2 {
  text-align: center;
  color: #9933cc;
  text-shadow: 1px 1px 2px #cc99ff;
}

.contact {
  width: 90%;
  max-width: 700px;
  margin: 20px auto;
  font-family: 'Comic Sans MS', cursive, sans-serif; /* ちょっとポップなフォント */
  font-size: 18px;
  color: #cc33ff;
  background: linear-gradient(45deg, #ffccff, #ccffff);
  border: 3px double #ff66cc;
  padding: 15px 20px;
  border-radius: 20px;
  box-shadow:
    0 0 10px #ff99ff,
    inset 0 0 8px #ff66cc;
  text-align: center;
  text-shadow: 1px 1px 2px #660066;
}

/* メールリンクの強調 */
.contact a {
  color: #ff0066;
  font-weight: bold;
  text-decoration: underline wavy #ff66cc;
  text-shadow: 0 0 6px #ff66cc;
}

.contact a:hover {
  color: #ff33aa;
  text-shadow:
    0 0 12px #ff33aa,
    0 0 18px #ff99cc;
  cursor: url('asset/cursor/pastelpink.cur'), pointer;
}

/* friend-links を左寄せに揃え＆Y2K風 */
.friend-links {
  width: 90%;
  max-width: 700px;
  margin: 10px auto 30px;
  font-family: 'Arial Black', Gadget, sans-serif;
  font-size: 14px; /* 少し小さく */
  color: #990099;
  background: transparent; /* 背景なし */
  border: none; /* 枠線なし */
  padding: 0 15px;
  border-radius: 12px;
  box-shadow: none; /* 影なし */
  text-align: left;
  display: flex;
  gap: 14px; /* 少し狭め */
  align-items: center;
  justify-content: flex-start;
}

.friend-links b {
  margin-right: 12px;
  font-size: 16px;
  color: #cc33cc;
  text-shadow: 1px 1px 2px #990099;
}

.friend-links a {
  color: #990099;
  text-decoration: none;
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 6px;
  border: 2px solid #cc99ff;
  border-radius: 6px;
  background: linear-gradient(to bottom, #ffd9ff, #cc99ff);
  box-shadow: none;
  transition: color 0.3s ease;
}

.friend-links a:hover {
  color: #cc66cc;
  cursor: url('asset/cursor/linopink.png'), pointer;
  text-decoration: underline;
}

.friend-links .sns-icon {
  width: 18px; /* 少し小さく */
  height: 18px;
  vertical-align: middle;
  filter: drop-shadow(0 0 1.5px #cc66cc);
}

.caution {
  color: red;
  font-weight: bold;
  text-align: center;
  margin-top: 30px;
}

ul {
  margin: 0;
  padding-left: 20px;
}

/* プロフィールページ用 */
.profile-box {
  background: #ffffffcc;
  border: 2px dashed #cc99ff;
  padding: 20px;
  border-radius: 12px;
  margin: 20px auto;
  max-width: 700px;
  box-shadow: 0 0 10px #ccf;
}

.char-img {
  width: 220px;
  height: auto;
  display: block;
  margin: 10px auto;
}

.char-name {
  text-align: center;
  font-size: 20px;
  font-weight: bold;
  color: #0066cc;
}

.char-desc {
  font-size: 15px;
  line-height: 1.6;
  text-align: center;
  margin-top: 10px;
}

.friends {
  text-align: center;
  margin-top: 40px;
}

.friend-photo {
  width: 90%;
  max-width: 480px;
  border: 4px ridge #cc99ff;
  border-radius: 12px;
  box-shadow: 0 0 10px #ccf;
}

.sns-links {
  margin-top: 15px;
  font-size: 14px;
}

.sns-links a {
  display: inline-block;
  margin: 0 8px;
  text-decoration: none;
  color: #cc00cc;
}

.sns-icon {
  width: 20px;
  height: 20px;
  vertical-align: middle;
  margin-right: 4px;
}

/* 音楽ページ用 */
.artwork {
  max-width: 300px;
  width: 90%;
  border-radius: 12px;
  box-shadow: 0 0 15px rgba(204, 153, 255, 0.6);
  margin: 15px auto 30px; /* 上マージンと下マージン */
  display: block;
}
/* ギャラリーページ用 */
.video-wrapper {
  max-width: 700px;
  margin: 20px auto;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 0 15px rgba(153, 51, 204, 0.4);
  background: #f0e6ff;
  transition: box-shadow 0.3s ease;
}

.video-wrapper:hover {
  box-shadow: 0 0 25px rgba(153, 51, 204, 0.8);
}

.video-wrapper iframe {
  width: 100%;
  height: 400px;
  border: none;
  display: block;
  border-radius: 16px;
  background-color: #000;
}

/* 掲示板ページ用 */
.framed-box {
  background-color: #fff8ff;
  border: 3px dotted #cc99ff;
  border-radius: 14px;
  padding: 22px 30px;
  max-width: 700px;
  margin: 30px auto;
  box-shadow: 0 0 14px #d4b6ff88;
  font-family: "ＭＳ Ｐゴシック", Osaka, sans-serif;
  color: #663399;
  line-height: 1.7;
  text-align: left;
}

.framed-box h2 {
  font-family: 'Impact', 'Arial Black', sans-serif, "ＭＳ Ｐゴシック";
  font-size: 26px;
  color: #9933cc;
  text-shadow:
    0 0 6px #d9b3ff,
    1px 1px 3px #9c50ff;
  letter-spacing: 1.5px;
  margin-bottom: 15px;
}

.framed-box ul {
  list-style: none;
  padding-left: 0;
  margin-bottom: 15px;
}

.framed-box ul li {
  font-size: 18px;
  padding-left: 26px;
  margin-bottom: 10px;
  position: relative;
  font-weight: 600;
  color: #7a3299;
}

.framed-box p {
  font-size: 16px;
  font-style: italic;
  color: #9933cccc;
  text-align: center;
  margin-top: 10px;
}

/* リンク集ページ用 */
table.link-table {
  width: 90%;
  max-width: 700px;
  margin: 30px auto;
  border-collapse: collapse;
  font-family: "ＭＳ Ｐゴシック", Osaka, sans-serif;
  background: #f0f8ff;
  box-shadow: 0 0 10px #99ccff;
  border-radius: 12px;
  overflow: hidden;
}

table.link-table th,
table.link-table td {
  border: 1px solid #99ccff;
  padding: 12px 16px;
  text-align: left;
  vertical-align: top;
}

table.link-table th {
  background: #ccddff;
  color: #003366;
  font-weight: bold;
  font-size: 18px;
  text-shadow: 0 0 4px #6699cc;
}

table.link-table tr:hover {
  background-color: #e6f0ff;
}


/* モバイル対応 */
@media (max-width: 768px) {
  .title {
    font-size: 22px;
  }

  .container {
    display: block;
    padding-left: 15px;
    padding-right: 15px;
  }

  .main {
    padding-left: 0;
    padding-right: 0;
  }

  .sidebar {
    display: none !important;
    width: 0 !important;
    padding: 0 !important;
  }

  .mobile-nav {
    display: flex;
    background-color: #ccffcc;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
    padding: 12px;
  }

  .mobile-nav a {
    font-size: 24px;
    text-decoration: none;
  }

  .catchcopy span {
    font-size: 18px;
  }
}

@media (max-width: 480px) {
  .title {
    font-size: 16px;
  }

  .catchcopy span {
    font-size: 18px;
  }
}
