/* ============================================================
   TCM スノードームメーカー － TOPページ
   ファーストビューに「みんなのスノードーム」を置く入口ページ。
   重い3Dは読み込まない
   ============================================================ */

/* 内容が短いページなので、フッターは画面の下に逃がす */
body { display: flex; flex-direction: column; min-height: 100vh; }
body > .site-footer { margin-top: auto; }

/* ───────── 見出し ───────── */
.title-block.top-title { padding: 6px 20px 18px; }

/* ───────── START ───────── */
.top-hero {
  position: relative;   /* 星空背景（position:fixed）より手前に */
  z-index: 2;
  margin: 26px 0 8px;
  text-align: center;
}
.top-start { letter-spacing: 0.3em; }

@media (max-width: 640px) {
  .title-block.top-title { padding: 4px 20px 14px; }
  .top-hero { margin: 20px 0 6px; }
}

/* ───────── スタート画面：みんなのスノードームが流れる帯 ───────── */
.globe-stream {
  position: relative;   /* 星空背景（position:fixed）より手前に出す */
  z-index: 2;
  max-width: 1280px;
  margin: 10px auto 0;
  padding: 0 20px;
  opacity: 0;
  transition: opacity 0.6s;
}
.globe-stream.ready { opacity: 1; }
.stream-head {
  display: flex; align-items: baseline; gap: 10px;
  padding: 0 2px 8px;
  border-bottom: 1px solid rgba(201, 166, 107, 0.22);
  margin-bottom: 12px;
}
.stream-head .jp { font-family: var(--font-serif); font-size: 15px; color: var(--tcm-cream); letter-spacing: 0.06em; }
.stream-head .en { font-family: var(--font-serif-en); font-style: italic; font-size: 12px; color: var(--tcm-gold); }
.stream-head .stream-more {
  margin-left: auto; font-size: 12px; color: var(--tcm-gold);
  text-decoration: none; font-family: var(--font-serif); letter-spacing: 0.04em;
}
.stream-head .stream-more:hover { color: var(--tcm-cream); }

.stream-view {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}
.stream-track {
  display: flex;
  gap: 18px;
  width: max-content;
  animation: streamScroll var(--stream-duration, 45s) linear infinite;
}
.stream-view:hover .stream-track,
.stream-track:focus-within { animation-play-state: paused; }
@keyframes streamScroll {
  from { transform: translate3d(0, 0, 0); }
  to   { transform: translate3d(-50%, 0, 0); }
}

.stream-card {
  position: relative;
  flex: 0 0 auto;
  width: 200px;
  text-decoration: none;
  text-align: center;
}
.stream-card .sc-thumb {
  display: block;
  width: 200px; height: 200px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: radial-gradient(ellipse at 50% 35%, #1d2a4e, #080d1f 70%);
  border: 1px solid rgba(201, 166, 107, 0.25);
}
.stream-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.stream-card .sc-name {
  display: block;
  margin-top: 6px;
  font-family: var(--font-serif);
  font-size: 12.5px;
  color: var(--text-light-dim);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.stream-card .sc-badge {
  position: absolute; top: 6px; right: 6px;
  background: rgba(7, 13, 34, 0.76);
  border: 1px solid rgba(201, 166, 107, 0.5);
  color: var(--tcm-gold);
  font-size: 9px; letter-spacing: 0.08em;
  padding: 2px 6px; border-radius: 999px;
  font-family: var(--font-serif);
}
a.stream-card:hover .sc-thumb { border-color: var(--tcm-gold); }
a.stream-card:hover .sc-name { color: var(--tcm-cream); }

@media (max-width: 860px) {
  .stream-card, .stream-card .sc-thumb { width: 168px; }
  .stream-card .sc-thumb { height: 168px; }
}
@media (max-width: 640px) {
  .globe-stream { padding: 0 12px; }
  .stream-track { gap: 14px; }
  .stream-card, .stream-card .sc-thumb { width: 150px; }
  .stream-card .sc-thumb { height: 150px; }
}
/* 動きを減らす設定のときは自動で流さず、指で送れるようにする */
@media (prefers-reduced-motion: reduce) {
  .stream-track { animation: none; }
  .stream-view { overflow-x: auto; }
}
