/* Homepage panels keep native scrolling, including content taller than a screen. */
html:has(body.is-home),
html.home-paged {
  --home-header-height: 78px;
  scroll-snap-type: y mandatory;
  scroll-padding-block: 0;
}

.is-home .home-pages { outline: none; }
.is-home .home-panel {
  min-block-size: 100vh;
  min-block-size: 100svh;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  scroll-margin-block: 0;
}
.is-home .home-panel.section-space {
  display: flex;
  align-items: center;
  padding-block: calc(var(--home-header-height, 78px) + 28px) 40px;
}
.is-home .home-panel > .wrap { min-width: 0; }
.is-home .section-heading { margin-bottom: clamp(20px, 3vh, 34px); }
.is-home .section-heading h2 { font-size: clamp(29px, 2.65vw, 38px); }
.is-home .section-kicker { margin-bottom: 16px; }
.is-home .site-footer { scroll-snap-align: start; scroll-snap-stop: normal; }

/* The slides share a grid cell so a long heading can increase the panel height. */
.is-home .hero {
  height: auto;
  max-height: none;
  touch-action: pan-y pinch-zoom;
}
.is-home .hero-slides {
  position: relative;
  display: grid;
  width: 100%;
  height: auto;
  min-height: inherit;
}
.is-home .hero-slide {
  position: relative;
  inset: auto;
  grid-area: 1 / 1;
  display: flex;
  align-items: center;
  min-width: 0;
  min-height: inherit;
  height: auto;
  padding-block: calc(var(--home-header-height, 78px) + 40px) 108px;
}
.is-home .hero .hero-copy {
  position: relative;
  top: auto;
  width: min(var(--wrap), calc(100% - 192px));
  margin-inline: auto;
  padding-right: clamp(0px, 13vw, 200px);
  opacity: 1;
  transform: none;
}
.is-home .hero-copy h1 { overflow-wrap: anywhere; }
.is-home .hero-copy p { max-width: 700px; overflow-wrap: anywhere; }
.is-home .hero-arrow {
  position: absolute;
  z-index: 3;
  top: 50%;
  display: grid;
  place-items: center;
  width: 54px;
  height: 66px;
  padding: 10px;
  color: #fff;
  border: 1px solid #ffffff30;
  border-radius: 2px;
  background: #11101820;
  transform: translateY(-50%);
  transition: background .18s, border-color .18s;
}
.is-home .hero-arrow-prev { left: 22px; }
.is-home .hero-arrow-next { right: 22px; }
.is-home .hero-arrow svg {
  width: 28px;
  height: 28px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.3;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.is-home .hero-arrow:hover,
.is-home .hero-arrow:focus-visible { background: #11101880; border-color: #ffffff90; }
.is-home .hero-arrow:focus-visible,
.is-home .carousel-pause:focus-visible { outline: 2px solid white; outline-offset: 5px; }
.is-home .hero-bottom { z-index: 3; bottom: 34px; }
.is-home .carousel-controls { gap: 18px; }
.is-home .carousel-controls .carousel-pause { width: 40px; height: 40px; opacity: 1; }
.is-home .hero-side { top: auto; bottom: 108px; right: 44px; font-size: 9px; }

.is-home .about-section { grid-template-columns: 1fr 1fr; align-items: stretch; }
.is-home .about-image { min-height: 0; }
.is-home .about-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  min-width: 0;
  padding: calc(var(--home-header-height, 78px) + 24px) clamp(32px, 4vw, 74px) 36px;
}
.is-home .about-copy h2 { font-size: clamp(31px, 2.8vw, 43px); margin-bottom: 20px; }
.is-home .about-copy .about-lead { margin-bottom: 14px; }
.is-home .about-copy > p { overflow-wrap: anywhere; }
.is-home .about-copy .text-link { margin-top: 20px; }
.is-home .about-copy .stats { align-self: stretch; margin-top: 25px; padding-top: 23px; }

.is-home .discovery-tabs { margin: 0 0 24px; }
.is-home .discovery-tabs button { padding-block: 12px; }
.is-home .show-image { aspect-ratio: auto; height: clamp(205px, 42svh, 430px); }
.is-home .show-image img { object-fit: cover; }
.is-home .show-info { padding-top: 15px; }
.is-home .show-info h3 { font-size: clamp(21px, 1.9vw, 27px); margin: 6px 0; overflow-wrap: anywhere; }
.is-home .troupe-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.is-home .troupe-card { min-height: clamp(300px, 52svh, 560px); }
.is-home .troupe-card > div { position: relative; inset: auto; margin-top: auto; padding: 26px 24px; }
.is-home .troupe-card { display: flex; align-items: flex-end; }
.is-home .troupe-card h3 { overflow-wrap: anywhere; }
.is-home .news-layout { align-items: start; gap: clamp(30px, 4.5vw, 65px); }
.is-home .news-feature-image { aspect-ratio: auto; height: clamp(220px, 34svh, 350px); }
.is-home .news-feature > div:last-child { padding-top: 17px; }
.is-home .news-feature h3 { font-size: clamp(21px, 1.85vw, 25px); margin: 8px 0; }
.is-home .news-row { padding-block: 21px; }
.is-home .news-row:first-child { padding-top: 0; }
.is-home .venue-content { padding-block: calc(var(--home-header-height, 78px) + 36px) 48px; }
.is-home .venue-content h2 { font-size: clamp(35px, 3.6vw, 54px); }
.is-home .social-card > img { aspect-ratio: auto; height: clamp(190px, 32svh, 340px); }
.is-home .social-card > div { min-height: 130px; }

/* On shorter desktops, shrink images and spacing before allowing natural growth. */
@media (min-width: 901px) and (max-height: 760px) {
  .is-home .home-panel.section-space { padding-block: calc(var(--home-header-height, 78px) + 18px) 28px; }
  .is-home .section-heading { margin-bottom: 20px; }
  .is-home .section-kicker { margin-bottom: 11px; }
  .is-home .section-heading h2 { font-size: 29px; }
  .is-home .discovery-tabs { margin-bottom: 18px; }
  .is-home .show-image { height: clamp(150px, 34svh, 255px); }
  .is-home .show-info h3 { font-size: 21px; }
  .is-home .about-copy { padding-top: calc(var(--home-header-height, 78px) + 15px); padding-bottom: 25px; }
  .is-home .about-copy h2 { font-size: 31px; margin-bottom: 15px; }
  .is-home .about-copy .about-lead { font-size: 16px; margin-bottom: 10px; }
  .is-home .about-copy > p { line-height: 1.85; }
  .is-home .about-copy .text-link { margin-top: 13px; }
  .is-home .about-copy .stats { margin-top: 18px; padding-top: 17px; }
  .is-home .stats strong { font-size: 29px; }
  .is-home .troupe-card { min-height: clamp(280px, 51svh, 390px); }
  .is-home .news-feature-image { height: clamp(170px, 30svh, 230px); }
  .is-home .news-row { padding-block: 15px; }
  .is-home .news-row h3 { font-size: 15px; }
  .is-home .social-card > img { height: clamp(150px, 30svh, 228px); }
  .is-home .hero-copy h1 { font-size: clamp(36px, 4.2vw, 60px); }
  .is-home .hero-copy > .eyebrow { margin-bottom: 18px; }
  .is-home .hero-copy p { margin-top: 16px; }
  .is-home .hero-link { margin-top: 23px; }
}

@media (max-width: 1000px) {
  html:has(body.is-home), html.home-paged { --home-header-height: 72px; }
  .is-home .about-copy { padding-inline: 28px; }
  .is-home .troupe-card > div { padding: 24px 18px; }
  .is-home .troupe-card h3 { font-size: 21px; }
  .is-home .troupe-card p { font-size: 12px; }
  .is-home .troupe-more { font-size: 11px; }
}

@media (max-width: 900px) {
  html:has(body.is-home), html.home-paged { scroll-snap-type: y proximity; }
  .is-home .home-panel { scroll-snap-stop: normal; }
  .is-home .home-panel.section-space { padding-block: calc(var(--home-header-height, 72px) + 26px) 42px; }
  .is-home .show-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 25px 20px; }
  .is-home .show-image { height: auto; aspect-ratio: 1 / 1; }
  .is-home .troupe-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .is-home .troupe-card { min-height: 285px; }
  .is-home .news-feature-image { height: auto; aspect-ratio: 1.8; }
  .is-home .social-card > img { height: auto; aspect-ratio: 1.5; }
  .is-home .hero .hero-copy { width: calc(100% - 150px); padding-right: 0; }
  .is-home .hero-arrow { width: 45px; height: 58px; }
  .is-home .hero-arrow-prev { left: 14px; }
  .is-home .hero-arrow-next { right: 14px; }
}

@media (max-width: 720px) {
  html:has(body.is-home), html.home-paged { --home-header-height: 68px; }
  .is-home .home-panel.section-space { padding-block: calc(var(--home-header-height, 68px) + 24px) 34px; }
  .is-home .section-heading { align-items: flex-end; gap: 16px; margin-bottom: 25px; }
  .is-home .section-heading h2 { font-size: 27px; }
  .is-home .section-heading > .text-link { font-size: 11px; gap: 8px; }
  .is-home .section-kicker { font-size: 9px; margin-bottom: 14px; }
  .is-home .hero-slide { padding-block: 114px 105px; }
  .is-home .hero .hero-copy { width: calc(100% - 108px); padding-right: 0; }
  .is-home .hero-copy h1 { font-size: clamp(32px, 8.5vw, 46px); letter-spacing: 2px; }
  .is-home .hero-copy > .eyebrow { font-size: 8px; letter-spacing: 1.3px; line-height: 1.9; margin-bottom: 20px; }
  .is-home .hero-copy p { max-width: none; font-size: 13px; margin-top: 17px; }
  .is-home .hero-link { margin-top: 24px; font-size: 12px; gap: 26px; }
  .is-home .hero-arrow { width: 38px; height: 53px; padding: 7px; border-color: #ffffff24; }
  .is-home .hero-arrow-prev { left: 6px; }
  .is-home .hero-arrow-next { right: 6px; }
  .is-home .hero-arrow svg { width: 25px; height: 25px; }
  .is-home .hero-bottom { bottom: 25px; }
  .is-home .carousel-controls { gap: 11px; }
  .is-home .hero .slide-track { width: 42px; }
  .is-home .hero .slide-current { font-size: 21px; }
  .is-home .hero .slide-total { font-size: 11px; }
  .is-home .about-section { grid-template-columns: 1fr; }
  .is-home .about-image { height: clamp(230px, 35svh, 330px); min-height: 0; aspect-ratio: auto; }
  .is-home .about-copy { padding: 32px 25px 34px; }
  .is-home .about-copy h2 { font-size: 31px; margin-bottom: 18px; }
  .is-home .about-copy .about-lead { font-size: 16px; }
  .is-home .about-copy > p { font-size: 13px; line-height: 1.95; }
  .is-home .about-copy .stats { margin-top: 23px; padding-top: 20px; gap: 14px; }
  .is-home .stats strong { font-size: 29px; }
  .is-home .stats span { font-size: 10px; }
  .is-home .show-grid { gap: 25px 16px; }
  .is-home .show-image { aspect-ratio: 3 / 3.5; }
  .is-home .show-info h3 { font-size: 21px; }
  .is-home .troupe-card { min-height: 290px; }
  .is-home .troupe-card > div { padding: 24px 17px; }
  .is-home .troupe-card h3 { font-size: 21px; }
  .is-home .news-layout { gap: 28px; }
  .is-home .news-feature h3 { font-size: 22px; }
  .is-home .news-row { padding-block: 19px; }
  .is-home .venue-content { padding-block: calc(var(--home-header-height, 68px) + 25px) 45px; }
  .is-home .venue-content h2 { font-size: clamp(28px, 7.6vw, 39px); letter-spacing: 1px; }
  .is-home .social-card > img { height: 100%; min-height: 145px; aspect-ratio: auto; }
  .is-home .social-card > div { min-height: 145px; }
}

@media (max-height: 520px) {
  html:has(body.is-home), html.home-paged { scroll-snap-type: y proximity; }
  .is-home .home-panel { scroll-snap-stop: normal; }
  .is-home .hero-slide { padding-block: 112px 90px; }
  .is-home .hero-copy h1 { font-size: clamp(30px, 4vw, 44px); }
  .is-home .hero-copy > .eyebrow { margin-bottom: 13px; }
  .is-home .hero-copy p { margin-top: 12px; }
  .is-home .hero-link { margin-top: 16px; }
  .is-home .hero-bottom { bottom: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  html:has(body.is-home), html.home-paged { scroll-behavior: auto; scroll-snap-type: y proximity; }
  .is-home .hero-arrow, .is-home .hero-slide { transition: none; }
}
