/* ============ Hoshizora stage redesign ============ */
body {
  background:
    radial-gradient(circle at 18% 8%, rgba(0, 167, 255, .18), transparent 26%),
    radial-gradient(circle at 82% 0%, rgba(0, 87, 255, .22), transparent 32%),
    linear-gradient(180deg, var(--stage-ink), var(--stage-navy) 38%, #eef5ff 38%);
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .2;
  background-image:
    linear-gradient(rgba(143, 234, 255, .16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(143, 234, 255, .12) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: linear-gradient(180deg, #000 0, transparent 78%);
}

.stage-nav {
  height: 92px;
  padding: 0 0 0 46px;
  background: transparent;
  border: 0;
  backdrop-filter: none;
}

.stage-nav .nav-inner {
  max-width: none;
  padding-right: 0;
}

.stage-nav.scrolled {
  background: rgba(2, 8, 23, .86);
  backdrop-filter: blur(18px);
}

.stage-nav::before,
.stage-nav.scrolled::after {
  display: none;
}

.stage-nav .nav-logo {
  color: var(--stage-white);
  font-family: 'Inter', 'Noto Sans SC', sans-serif;
  font-size: 15px;
  font-weight: 900;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-shadow: 0 0 18px rgba(143, 234, 255, .42);
}

.stage-nav .nav-logo::after {
  content: 'STAGE';
  color: var(--stage-cyan);
}

.stage-nav .nav-logo .dot {
  width: 10px;
  height: 10px;
  border-radius: 0;
  background: var(--suisei-blue);
  box-shadow: var(--stage-glow);
  transform: rotate(45deg);
}

.stage-nav .nav-links a {
  color: rgba(248, 251, 255, .78);
  font-size: 11px;
  letter-spacing: 2px;
  font-weight: 900;
}

.stage-nav .nav-links a:hover,
.stage-nav .nav-links .current-menu-item > a,
.stage-nav .nav-links .current_page_item > a {
  color: #fff;
  text-shadow: 0 0 20px rgba(143, 234, 255, .72);
}

.stage-menu-toggle {
  position: fixed;
  top: 0;
  right: 0;
  width: 112px;
  height: 112px;
  min-width: 112px;
  border: 0;
  border-radius: 0;
  background: var(--suisei-blue);
  color: #fff;
  box-shadow: 0 24px 70px rgba(0, 87, 255, .45);
  flex-direction: column;
  justify-content: center;
  gap: 12px;
}

.stage-menu-toggle:hover,
.stage-menu-toggle.active {
  transform: none;
  background: #0047df;
  box-shadow: 0 24px 70px rgba(0, 87, 255, .6), 0 0 36px rgba(143, 234, 255, .46);
}

.stage-menu-toggle .nav-toggle-text {
  color: #fff;
  font-size: 13px;
  letter-spacing: 3px;
}

.stage-menu-toggle .nav-toggle-lines {
  width: 4px;
  height: 22px;
}

.stage-menu-toggle .nav-toggle-lines i {
  left: 1px;
  right: auto;
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 10px 0 #fff, 0 20px 0 #fff;
}

.stage-menu-toggle .nav-toggle-lines i + i {
  display: none;
}

.nav-panel {
  background: rgba(2, 8, 23, .82);
}

.nav-panel-inner {
  background:
    linear-gradient(135deg, rgba(0, 87, 255, .94), rgba(2, 8, 23, .96) 48%, rgba(0, 167, 255, .84)),
    radial-gradient(circle at 80% 16%, rgba(143, 234, 255, .36), transparent 28%);
  border-color: rgba(143, 234, 255, .42);
  box-shadow: 0 30px 120px rgba(0, 87, 255, .38);
}

.nav-panel-title span,
.nav-panel-foot,
.nav-panel-close {
  color: rgba(248, 251, 255, .72);
}

.nav-panel-title strong,
.nav-panel-links a,
.nav-panel-logo {
  color: #fff;
  text-shadow: 0 0 24px rgba(143, 234, 255, .42);
}

.stage-hero {
  min-height: 700px;
  background: var(--stage-ink);
}

.stage-hero .hero-bg {
  inset: 0;
  opacity: .28;
  filter: saturate(1.15) contrast(1.08) brightness(.62) hue-rotate(184deg);
  background-position: center;
}

.stage-hero .hero-bg::after {
  background:
    radial-gradient(circle at 50% 42%, rgba(0, 87, 255, .18), transparent 24%),
    linear-gradient(90deg, rgba(2, 8, 23, .98), rgba(2, 8, 23, .52) 42%, rgba(2, 8, 23, .92)),
    linear-gradient(180deg, rgba(0, 87, 255, .22), rgba(2, 8, 23, .92) 78%, rgba(246, 249, 255, .96));
}

.stage-grid {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: .24;
  background-image:
    linear-gradient(rgba(143, 234, 255, .22) 1px, transparent 1px),
    linear-gradient(90deg, rgba(143, 234, 255, .18) 1px, transparent 1px);
  background-size: 7.5vw 7.5vw;
  mask-image: radial-gradient(circle at 50% 44%, #000, transparent 72%);
}

.stage-light {
  position: absolute;
  z-index: 1;
  width: 42vw;
  height: 120vh;
  top: -8vh;
  opacity: .34;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(143, 234, 255, .34), transparent 74%);
  filter: blur(10px);
  mix-blend-mode: screen;
  transform-origin: top center;
}

.stage-light-a {
  left: 8vw;
  transform: rotate(18deg);
}

.stage-light-b {
  right: 6vw;
  transform: rotate(-22deg);
}

.stage-side-label {
  position: absolute;
  z-index: 4;
  top: 50%;
  color: rgba(248, 251, 255, .86);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-shadow: 0 0 24px rgba(0, 167, 255, .6);
}

.stage-side-left {
  left: 28px;
}

.stage-side-right {
  right: 154px;
}

.stage-mascot {
  position: absolute;
  z-index: 2;
  right: 15vw;
  bottom: -9vh;
  width: min(42vw, 560px);
  height: 92vh;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  pointer-events: none;
  filter: drop-shadow(0 0 34px rgba(143, 234, 255, .42)) drop-shadow(0 30px 80px rgba(0, 87, 255, .38));
}

.stage-mascot::before {
  content: '';
  position: absolute;
  width: 54%;
  height: 18%;
  bottom: 4%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 167, 255, .36), transparent 68%);
  filter: blur(10px);
}

.stage-mascot img {
  position: relative;
  max-height: 100%;
  object-fit: contain;
  opacity: .92;
}

.stage-hero .hero-content {
  max-width: 620px;
  margin-right: 22vw;
  transform: translateY(8px);
}

.stage-hero .hero-eyebrow {
  color: rgba(248, 251, 255, .82);
  letter-spacing: 5px;
}

.stage-hero .hero-eyebrow::before,
.stage-hero .hero-eyebrow::after {
  background: var(--stage-cyan);
  box-shadow: 0 0 18px rgba(143, 234, 255, .74);
}

.stage-hero__logo {
  position: relative;
  width: 92px;
  height: 54px;
  margin: 0 auto 18px;
}

.stage-hero__crown {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 82px;
  height: 30px;
  transform: translateX(-50%);
  border-bottom: 5px solid #fff;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  filter: drop-shadow(0 0 14px rgba(143, 234, 255, .76));
}

.stage-hero__crown::before,
.stage-hero__crown::after {
  content: '';
  position: absolute;
  bottom: 4px;
  width: 18px;
  height: 34px;
  border-left: 5px solid #fff;
  transform-origin: bottom center;
}

.stage-hero__crown::before {
  left: 19px;
  transform: rotate(-24deg);
}

.stage-hero__crown::after {
  right: 19px;
  transform: rotate(24deg);
}

.stage-hero__spark {
  position: absolute;
  left: 50%;
  top: 0;
  width: 10px;
  height: 10px;
  transform: translateX(-50%) rotate(45deg);
  background: #fff;
  box-shadow: 0 0 16px rgba(143, 234, 255, .9), 0 24px 0 2px #fff;
}

.stage-hero .hero-title {
  margin-bottom: 18px;
  color: #fff;
  font-size: clamp(52px, 8vw, 96px);
  letter-spacing: 6px;
  text-shadow: 0 0 28px rgba(143, 234, 255, .58), 0 12px 60px rgba(0, 87, 255, .64);
}

.stage-hero .hero-en {
  color: rgba(248, 251, 255, .78);
  letter-spacing: 5px;
}

.stage-hero .hero-btn {
  background: #fff;
  color: var(--suisei-blue);
  box-shadow: 0 0 0 1px rgba(143, 234, 255, .5), 0 0 36px rgba(0, 87, 255, .38);
}

.stage-hero .hero-btn:hover {
  color: #fff;
  background: var(--suisei-blue);
}

.stage-hero .hero-aura {
  border-color: rgba(143, 234, 255, .24);
  box-shadow: inset 0 0 40px rgba(0, 87, 255, .18), 0 0 50px rgba(0, 167, 255, .18);
}

.stage-hero .hero-aura::before,
.stage-hero .hero-aura::after {
  background: var(--stage-cyan);
}

.stage-hero .hero-float {
  border-radius: 0;
  border-color: rgba(143, 234, 255, .56);
  background: rgba(2, 8, 23, .72);
  box-shadow: 0 24px 70px rgba(0, 87, 255, .26), 0 0 0 1px rgba(255, 255, 255, .08);
}

.stage-hero .hero-float-1 {
  left: 5vw;
  bottom: 15vh;
  width: 210px;
  height: 286px;
}

.stage-hero .hero-float-2 {
  right: 8vw;
  top: 20vh;
  width: 245px;
  height: 156px;
}

.stage-hero .hero-float-3 {
  right: 34vw;
  bottom: 10vh;
  width: 150px;
  height: 196px;
}

.stage-hero .hero-vignette {
  background:
    radial-gradient(ellipse 78% 76% at 52% 42%, transparent 38%, rgba(2, 8, 23, .48) 76%),
    linear-gradient(180deg, transparent 68%, #f6f9ff 100%);
}

.stage-ticker {
  position: absolute;
  left: 0;
  bottom: 42px;
  z-index: 5;
  display: grid;
  grid-template-columns: auto minmax(160px, 1fr);
  align-items: center;
  min-width: min(520px, 72vw);
  color: #fff;
  background: var(--suisei-blue);
  box-shadow: 0 18px 54px rgba(0, 87, 255, .36);
}

.stage-ticker span {
  padding: 18px 22px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 2px;
  border-right: 1px solid rgba(255, 255, 255, .28);
}

.stage-ticker strong {
  padding: 18px 24px;
  font-size: 13px;
  letter-spacing: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.stage-news {
  position: relative;
  overflow: hidden;
  color: var(--stage-white);
  background:
    radial-gradient(circle at 12% 18%, rgba(0, 167, 255, .22), transparent 26%),
    radial-gradient(circle at 86% 70%, rgba(0, 87, 255, .26), transparent 32%),
    linear-gradient(180deg, #020817, #07183a);
}

.stage-news::before {
  content: 'TOPICS';
  position: absolute;
  right: -1vw;
  top: 18px;
  color: rgba(143, 234, 255, .08);
  font-family: 'Inter', sans-serif;
  font-size: clamp(78px, 15vw, 210px);
  font-weight: 900;
  letter-spacing: 0;
  line-height: .8;
  pointer-events: none;
}

.stage-news .sec-num,
.stage-news .sec-title .jp {
  color: var(--stage-cyan);
}

.stage-news .sec-title,
.stage-news .sec-more {
  color: #fff;
}

.stage-news .sec-more {
  border-color: var(--stage-cyan);
  box-shadow: 0 0 18px rgba(143, 234, 255, .16);
}

.stage-news .sec-more:hover {
  background: var(--suisei-blue);
  border-color: var(--suisei-blue);
}

.stage-news-track {
  position: relative;
  z-index: 2;
}

.stage-news-card.hcard {
  background: rgba(248, 251, 255, .06);
  border-color: rgba(143, 234, 255, .26);
  border-radius: 0;
  color: #fff;
  box-shadow: 0 18px 60px rgba(0, 0, 0, .18);
}

.stage-news-card.hcard:hover {
  border-color: var(--stage-cyan);
  box-shadow: 0 24px 70px rgba(0, 87, 255, .32), 0 0 28px rgba(143, 234, 255, .18);
}

.stage-news-card .hcard-img {
  background-color: rgba(0, 87, 255, .18);
}

.stage-news-card .hcard-cat {
  background: var(--suisei-blue);
  color: #fff;
}

.stage-news-card .hcard-date {
  color: var(--stage-cyan);
}

.stage-news-card .hcard-title {
  color: #fff;
  font-weight: 800;
}

.marquee-band {
  background: #fff;
  border-color: rgba(0, 87, 255, .2);
}

.marquee-track .word .brand,
.marquee-track .sep,
.feat-cat,
.feat-meta,
.sec-num,
.pgrid-date,
.hcard-date {
  color: var(--suisei-blue);
}

.featured-inner,
.pgrid-card,
.hcard,
.spotlight-item,
.reveal-frame {
  border-radius: 0;
}

.featured-inner,
.pgrid-card,
.hcard {
  box-shadow: 0 20px 60px rgba(0, 36, 92, .08);
}

.featured-inner:hover,
.pgrid-card:hover,
.hcard:hover {
  border-color: var(--suisei-blue);
  box-shadow: 0 24px 70px rgba(0, 87, 255, .18), 0 0 28px rgba(0, 167, 255, .13);
}

.hcard-cat,
.pgrid-cat,
.rev-cat,
.feat-cat::before,
.sec-more:hover {
  background: var(--suisei-blue);
  color: #fff;
}

.section::before,
.gallery-section::before,
.reveal-section::before {
  color: rgba(0, 87, 255, .06);
}

@media (max-width: 1024px) {
  .stage-nav {
    height: 76px;
    padding-left: 26px;
  }

  .stage-menu-toggle {
    width: 86px;
    height: 86px;
    min-width: 86px;
  }

  .stage-side-right {
    right: 112px;
  }

  .stage-mascot {
    right: 2vw;
    width: min(50vw, 440px);
    opacity: .76;
  }

  .stage-hero .hero-content {
    margin-right: 20vw;
  }
}

@media (max-width: 768px) {
  .stage-nav {
    height: 64px;
    padding-left: 18px;
  }

  .stage-menu-toggle {
    width: 68px;
    height: 68px;
    min-width: 68px;
  }

  .stage-menu-toggle .nav-toggle-text {
    font-size: 10px;
    letter-spacing: 2px;
  }

  .stage-side-label,
  .stage-hero .hero-float-2,
  .stage-hero .hero-float-3 {
    display: none;
  }

  .stage-hero {
    min-height: 720px;
    align-items: flex-start;
    padding-top: 116px;
  }

  .stage-mascot {
    right: 50%;
    bottom: 2vh;
    width: min(82vw, 360px);
    height: 54vh;
    transform: translateX(50%);
    opacity: .5;
  }

  .stage-hero .hero-content {
    margin: 0 auto;
    padding: 0 22px;
  }

  .stage-hero .hero-title {
    font-size: clamp(40px, 13vw, 62px);
    letter-spacing: 3px;
  }

  .stage-hero .hero-en {
    letter-spacing: 3px;
    line-height: 1.9;
  }

  .stage-ticker {
    bottom: 24px;
    min-width: calc(100% - 68px);
    grid-template-columns: 1fr;
  }

  .stage-ticker span,
  .stage-ticker strong {
    padding: 12px 16px;
  }

  .stage-ticker span {
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .28);
  }

  .stage-news::before {
    top: 24px;
    right: 12px;
    font-size: 72px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .stage-light,
  .stage-hero .hero-aura,
  .stage-hero .hero-float {
    animation: none;
  }
}
