/* Homepage refinements. Keep the established desktop artwork and palette. */
.cta-arrow { width:24px; height:24px; flex:none; }
.round-link, .join-orbit { padding:20px; }
.round-link > span:first-child, .join-orbit > span:first-child { flex:none; }

@media (min-width:641px) and (max-width:1000px) {
  .header nav { gap:14px; font-size:.75rem; }
  .header { padding-inline:24px; }
  .logo { width:64px; flex:none; }
}

@media (max-width:640px) {
  :root { scroll-padding-top:24px; }
  .header { padding:16px 24px; }
  .header .logo, .header .logo img { width:56px; height:56px; }
  .menu-toggle { border-radius:4px; background:#11141080; }
  .header nav { top:88px; left:24px; right:24px; gap:4px; padding:16px; font-size:.9375rem; }
  .header nav a { min-height:44px; padding:12px 8px; }
  .header nav .catalog-tab { margin-top:8px; }
  .hero {
    min-height:max(640px,100svh);
    padding:116px 24px 36px;
    gap:48px;
  }
  .hero-topline { font-size:.625rem; line-height:1.5; letter-spacing:.08em; gap:16px; padding-top:12px; }
  .hero-topline > span:last-child { max-width:140px; }
  .hero-title-wrap { margin:0; }
  .hero-title-wrap .eyebrow { font-size:.625rem; letter-spacing:.12em; line-height:1.7; margin-bottom:20px; }
  .hero h1.hero-wordmark { width:100%; }
  .hero-image { object-position:65% center; }
  .scene-shade { background:linear-gradient(180deg,#091112a0,transparent 40%,#08100df2); }
  .hero-bottom { grid-template-columns:minmax(0,1fr); gap:24px; align-items:start; }
  .hero-bottom p { font-size:.9375rem; line-height:1.65; }
  .round-link, .join-orbit {
    width:fit-content;
    max-width:100%;
    height:auto;
    min-height:52px;
    border-radius:4px;
    padding:14px 18px;
    gap:24px;
    justify-content:space-between;
    font-size:.75rem;
    letter-spacing:.05em;
    line-height:1.5;
    text-transform:uppercase;
  }
  .round-link > span:first-child, .join-orbit > span:first-child { flex:initial; }
  .round-link br, .join-orbit br { display:none; }
  .round-link:hover, .join-orbit:hover { transform:none; }
  .play-now { margin-top:24px; min-height:52px; max-width:100%; padding:14px 18px; }
  .play-arrow { margin-left:12px; }
  .district, .join { padding:28px 24px 56px; }
  .chapter-line { flex-direction:column; align-items:flex-start; gap:6px; font-size:.625rem; line-height:1.6; letter-spacing:.1em; padding-top:14px; }
  .chapter-line > span:last-child { max-width:none; text-align:left; opacity:.7; }
  .experience-heading { padding:44px 0 32px; }
  .experience-heading > .eyebrow { font-size:.625rem; line-height:1.6; letter-spacing:.12em; margin-bottom:20px; }
  .district .experience-heading h2 { font-size:clamp(2.7rem,13.5vw,5.4rem); line-height:.98; }
  .experience-intro { margin:24px 0 0; font-size:1.0625rem; line-height:1.6; }
  .experience-image { min-height:300px; }
  .experience-image > span { font-size:clamp(2.5rem,11vw,3.5rem); }
  .experience-copy { padding:32px 24px; }
  .experience-copy .eyebrow { font-size:.625rem; letter-spacing:.1em; }
  .experience-copy h3 { font-size:clamp(1.8rem,9vw,2.5rem); }
  .experience-copy > p:not(.eyebrow) { font-size:.9375rem; line-height:1.75; margin-top:20px; }
  .line-link { display:inline-flex; align-items:center; gap:12px; padding-block:12px; font-size:.875rem; line-height:1.5; }
  .join-title-row { margin:36px 0 32px; flex-direction:column; align-items:flex-start; gap:24px; }
  .join h2 { font-size:clamp(3rem,21vw,7rem); }
  .join-orbit { margin:0; }
  .join-detail { gap:32px; }
  .join-detail > p { font-size:1.125rem; line-height:1.65; }
  .steps li { padding:22px 0; }
  .steps h3 { font-size:1rem; line-height:1.4; }
  .steps p { font-size:.9375rem; }
  .footer { padding:28px 24px; gap:20px; }
  .footer p { flex:1; max-width:none; min-width:140px; }
}
