/* ===== 全体設定 ===== */
body {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  background: #000;
  color: #fff;
  overflow-x: hidden;
}

/* ===== 星空背景 ===== */
.stars {
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
  background: radial-gradient(ellipse at bottom, #1b2735 0%, #090a0f 100%);
  overflow: hidden;
}
.star {
  position: absolute;
  width: 2px;
  height: 2px;
  background: white;
  border-radius: 50%;
  opacity: 0.8;
  animation: twinkle 2s infinite ease-in-out;
}
@keyframes twinkle {
  0%, 100% { opacity: 0.2; }
  50% { opacity: 1; }
}

/* ===== ヘッダー ===== */
.header {
  text-align: center;
  padding: 60px 20px 40px;
}
.title-main { font-size: 2em; margin-bottom: 0.2em; }
.title-sub { font-size: 1.6em; opacity: 0.9; }

/* ===== タレントペア全体 ===== */
.talent-pair {
  display: flex;
  justify-content: center;
  align-items: stretch;
  flex-wrap: wrap;
  width: 90%;
  max-width: 1000px;
  margin: 50px auto;
  gap: 30px;
  opacity: 0;
  transform: translateY(50px);
  transition: all 1.2s ease;
}
.talent-pair.show {
  opacity: 1;
  transform: translateY(0);
}

/* ===== 各カード共通 ===== */
.talent-card {
  flex: 1 1 400px;
  background: rgba(255,255,255,0.08);
  border-radius: 20px;
  padding: 30px;
  box-shadow: 0 0 20px rgba(255,255,255,0.15);
}

/* ===== 写真カード ===== */
.photo-card {
  display: flex;
  justify-content: center;
  align-items: center;
}
.talent-photo {
  width: 100%;
  max-width: 420px;
  border-radius: 20px;
  object-fit: cover;
  box-shadow: 0 0 15px rgba(255,255,255,0.3);
}

/* ===== 情報カード ===== */
.info-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.talent-name {
  font-size: 1.8em;
  font-weight: bold;
  margin-bottom: 0.5em;
  color: yellow;
}

.award-title {
  font-size: 1.1em;
  margin-bottom: 0.3em;
}
.award-list {
  font-size: 0.95em;
  line-height: 1.7;
  list-style: none;
  padding-left: 0;
  margin: 0 0 1em 0;
}
.official {
  font-size: 0.9em;
}
.official a {
  color: #66ccff;
  text-decoration: none;
}
.official a:hover {
  text-decoration: underline;
}

/* ===== ライブ情報 ===== */
.live-info {
  background: rgba(255,255,255,0.15);
  border-radius: 20px;
  text-align: center;
  width: 90%;
  max-width: 900px;
  margin: 100px auto 120px;
  padding: 60px 20px;
  box-shadow: 0 0 25px rgba(255,255,255,0.3);
  opacity: 0;
  transform: translateY(50px);
  transition: all 1s ease;
}
.live-info.show {
  opacity: 1;
  transform: translateY(0);
}

/* ===== 下部文字強調 ===== */
.live-title { font-size: 2.3em; margin-bottom: 0.8em; font-weight: bold; color: #c2f8b1;}
.live-date { font-size: 1.8em; margin: 0.4em 0; }
.live-place { font-size: 1.6em; margin: 0.4em 0; }
.live-guest { font-size: 1.6em; margin-top: 0.6em; }
.live-note { font-size: 1.1em; display: block; margin-top: 1em; opacity: 0.85; }

/* ===== スマホ対応 ===== */
@media (max-width: 768px) {
  .talent-pair {
    flex-direction: column;
  }
  .talent-card {
    flex: 1 1 auto;
  }
  .talent-name { font-size: 1.6em; }
  .live-title { font-size: 1.8em; }
}
