/* Home hero: replace the decorative character art with a random live preview. */
.hero-art > .hero-art-word,
.hero-art > .hero-stamp,
.hero-art > img[src*="/juri.png"] {
  visibility: hidden;
}

.featured-live-card {
  width: min(100%, 590px);
  min-width: 0;
  overflow: hidden;
  border: 2px solid #12131a;
  border-radius: 10px;
  background: #fff;
  box-shadow: 10px 10px 0 #17182020;
}

.featured-live-media {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 0;
  border-bottom: 2px solid #12131a;
  border-radius: 0;
  background: #090a0f;
  color: #fff;
}

button.featured-live-media {
  padding: 0;
  cursor: pointer;
  text-align: left;
}

.hero-art .featured-live-thumb {
  position: static;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: none;
}

.featured-live-thumb-placeholder,
.featured-live-empty {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 100%;
  background:
    linear-gradient(135deg, #161821 0 55%, transparent 55%),
    var(--yellow);
  color: #fff;
  font-family: Impact, 'Arial Narrow', sans-serif;
  letter-spacing: .04em;
}

.featured-live-empty {
  min-height: 250px;
  padding: 28px;
  text-align: center;
  align-content: center;
  gap: 9px;
  border: 0;
}

.featured-live-empty-mark {
  display: inline-flex;
  padding: 5px 9px;
  background: var(--live);
  color: #fff;
  font-size: 12px;
  letter-spacing: .08em;
}

.featured-live-empty strong {
  max-width: 28ch;
  font-family: 'Yu Gothic', 'Meiryo', sans-serif;
  font-size: 17px;
  line-height: 1.5;
  letter-spacing: 0;
}

.featured-live-empty small {
  max-width: 34ch;
  color: #d8dbe5;
  font-family: 'Yu Gothic', 'Meiryo', sans-serif;
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: 0;
}

.featured-live-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: linear-gradient(180deg, transparent 42%, #000a 100%);
  color: #fff;
  font-size: 14px;
  font-weight: 900;
  opacity: .96;
  transition: background .18s ease;
}

.featured-live-play:hover .featured-live-overlay {
  background: linear-gradient(180deg, #0001 25%, #000b 100%);
}

.featured-live-play-icon {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  padding-left: 4px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #eb0065e8;
  box-shadow: 0 8px 24px #0005;
  font-size: 22px;
}

.featured-live-media--playing iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.featured-live-meta {
  padding: 12px 14px 13px;
}

.featured-live-heading {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 5px;
}

.featured-live-badge {
  display: inline-flex;
  align-items: center;
  min-height: 23px;
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--live);
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .05em;
}

.featured-live-label {
  color: #666c79;
  font-family: Impact, 'Arial Narrow', sans-serif;
  font-size: 11px;
  letter-spacing: .08em;
}

.featured-live-title {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  margin: 0;
  font-size: clamp(13px, 1vw, 16px);
  line-height: 1.42;
}

.featured-live-sub {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px;
}

.featured-live-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 8px;
  padding-top: 7px;
  border-top: 1px solid #e6e7eb;
}

.featured-live-next,
.featured-live-controls a {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  color: #20243a;
  font-size: 11px;
  font-weight: 850;
  text-decoration: none;
}

.featured-live-next {
  padding: 0 8px 0 0;
  cursor: pointer;
}

.featured-live-next:hover:not(:disabled),
.featured-live-controls a:hover {
  color: var(--live);
}

.featured-live-next:disabled {
  opacity: .4;
  cursor: default;
}

/* Desktop: the copy and live preview are treated as one compact visual group.
   Fixed upper bounds stop wide screens from creating a large empty middle column. */
@media (min-width: 1101px) {
  .hub-hero {
    display: grid;
    grid-template-columns: minmax(0, 500px) minmax(0, 590px);
    justify-content: center;
    align-items: center;
    column-gap: 16px;
    min-height: 450px;
    padding: 32px clamp(24px, 3vw, 52px);
  }

  /* Keep the black accent attached to the live card instead of allowing it to
     grow with the viewport. On wide monitors it now stays mostly behind the card. */
  .hub-hero::after {
    width: clamp(280px, 24vw, 380px);
    height: 22px;
    left: calc(50% + 28px);
    top: 22%;
    opacity: .82;
  }

  .hero-copy {
    width: 100%;
    max-width: 500px;
    justify-self: end;
    align-self: center;
  }

  .hero-copy #hero-title {
    font-size: clamp(40px, 3.7vw, 62px);
  }

  .hero-copy #hero-title span:last-child {
    white-space: nowrap;
  }

  .hero-art.hero-featured-host {
    position: relative;
    inset: auto;
    display: flex;
    width: 100%;
    min-width: 0;
    height: auto;
    margin-left: -46px;
    padding: 0;
    align-items: center;
    justify-content: flex-start;
    pointer-events: auto;
    opacity: 1;
  }

  .featured-live-card {
    width: min(100%, 590px);
  }
}

@media (min-width: 1600px) {
  .hub-hero {
    min-height: 460px;
  }

  .hub-hero::after {
    width: 320px;
    height: 18px;
    left: calc(50% + 70px);
    top: 21%;
    opacity: .72;
  }
}

@media (max-width: 1100px) and (min-width: 761px) {
  .hub-hero {
    display: grid;
    grid-template-columns: minmax(330px, .92fr) minmax(420px, 1.08fr);
    align-items: center;
    column-gap: 24px;
    min-height: 430px;
    padding: 30px 24px;
  }

  .hub-hero::after {
    width: min(34vw, 320px);
    height: 20px;
    left: 52%;
    top: 22%;
    opacity: .78;
  }

  .hero-copy {
    width: auto;
    max-width: 500px;
  }

  .hero-art.hero-featured-host {
    position: relative;
    inset: auto;
    display: flex;
    width: 100%;
    min-width: 0;
    height: auto;
    padding: 0;
    align-items: center;
    justify-content: flex-start;
    pointer-events: auto;
    opacity: 1;
  }

  .featured-live-card {
    width: min(100%, 520px);
    box-shadow: 8px 8px 0 #17182020;
  }

  .featured-live-meta {
    padding: 9px 11px 10px;
  }

  .featured-live-controls {
    margin-top: 6px;
    padding-top: 6px;
  }
}

@media (max-width: 760px) {
  .hub-hero::before,
  .hub-hero::after {
    display: none;
  }

  .hub-hero {
    display: block;
    overflow: hidden;
    background: #fffef2;
    padding-bottom: 20px;
  }

  .hero-copy {
    width: 100%;
  }

  #hero-title {
    width: 100%;
    max-width: 440px;
  }

  .hero-art.hero-featured-host {
    position: relative;
    inset: auto;
    display: block;
    margin: 18px -16px -20px;
    padding: 16px 16px 18px;
    background: var(--yellow);
    pointer-events: auto;
    opacity: 1;
  }

  .featured-live-card {
    width: 100%;
    max-width: none;
    border-width: 1.5px;
    border-radius: 8px;
    box-shadow: 6px 6px 0 #17182022;
  }

  .featured-live-media {
    border-bottom-width: 1.5px;
  }

  .featured-live-play-icon {
    width: 50px;
    height: 50px;
    font-size: 18px;
  }

  .featured-live-overlay {
    font-size: 12px;
  }

  .featured-live-meta {
    padding: 10px 11px 11px;
  }

  .featured-live-title {
    font-size: 13px;
  }

  .featured-live-controls {
    gap: 8px;
    margin-top: 8px;
    padding-top: 7px;
  }

  .featured-live-next,
  .featured-live-controls a {
    min-height: 38px;
    font-size: 10px;
  }

  .featured-live-empty {
    min-height: 190px;
  }
}
