/* ==========================================================================
   Throne Room Sports — Homepage-specific styles
   Depends on tokens.css, layout.css, components.css.
   ========================================================================== */

/* ---- Hero ---- */
.hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 80vh;
  padding-top: calc(var(--nav-h) + var(--space-7));
  padding-bottom: var(--space-8);
  overflow: hidden;
}
.hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(180deg, rgba(12, 10, 18, 0.5) 0%, rgba(12, 10, 18, 0.82) 100%),
    url('../hero-arena.jpg') center / cover no-repeat;
}
.hero-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(60% 50% at 30% 40%, var(--purple-soft), transparent 70%);
  pointer-events: none;
}
.hero .container { position: relative; z-index: 1; }
.hero-inner { max-width: 640px; }
.hero-title {
  font-size: var(--text-hero);
  letter-spacing: -0.01em;
  margin: var(--space-4) 0 var(--space-3);
}
.hero-sub {
  font-size: var(--text-lg);
  color: var(--text-dim);
  line-height: var(--leading-normal);
  max-width: 520px;
  margin-bottom: var(--space-5);
}
.hero-ctas { display: flex; gap: var(--space-3); flex-wrap: wrap; }
.hero-proof { font-size: var(--text-sm); color: var(--text-muted); margin-top: var(--space-5); }

/* ---- Social chips ---- */
.hero-socials { display: flex; gap: var(--space-2); flex-wrap: wrap; margin-top: var(--space-4); }
.social-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 38px;
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  color: var(--text-dim);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid var(--border);
  padding: 6px 14px;
  border-radius: var(--radius-pill);
  text-decoration: none;
  transition: border-color var(--t), color var(--t);
}
.social-chip:hover { border-color: var(--purple-light); color: var(--text); }
.social-chip svg { width: 16px; height: 16px; fill: currentColor; }

@media (max-width: 480px) {
  .hero { min-height: 0; }
  .hero-ctas .btn { flex: 1 1 auto; }
}

/* ---- Clips loading / fallback ---- */
.clips-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  width: 100%;
  padding: var(--space-8) var(--space-5);
  color: var(--text-dim);
  font-size: var(--text-sm);
}
.loader {
  width: 24px;
  height: 24px;
  border: 2px solid rgba(255, 255, 255, 0.08);
  border-top-color: var(--purple-light);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ---- Watch (video) ---- */
.watch-frame { position: relative; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--border); background: #000; aspect-ratio: 16 / 9; box-shadow: var(--shadow-card); }
.watch-video { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---- Sponsor teaser (slim) ---- */
.sponsor-teaser {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  flex-wrap: wrap;
}
.sponsor-teaser p { color: var(--text-dim); font-size: var(--text-sm); max-width: 520px; }
