/* Keep the hero composition within a centered, fluid container. */
#home { min-height: 0; }
#home .hero-inner {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  width: min(1320px, calc(100% - clamp(40px, 8vw, 128px)));
  min-height: max(740px, 100svh);
  margin-inline: auto;
  padding-block: 128px 100px;
  gap: clamp(24px, 3vw, 56px);
  align-items: center;
}
#home .hero-copy {
  width: 100%;
  min-width: 0;
  padding: 0;
}
#home .hero-visual {
  width: 100%;
  max-width: 740px;
  min-width: 0;
  margin: 0;
  padding: 20px 16px 0;
  justify-self: center;
}
#home .app-perspective { width: 100%; }
#home .app-window { width: 100%; max-width: 100%; }
#home .hero-buttons { flex-wrap: wrap; }
#home .carousel-controls { margin: 28px 0 0; }
#home .visual-caption { right: 16px; max-width: calc(100% - 32px); }
@media (max-width: 1000px) {
  #home .hero-inner {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    gap: 48px;
    padding-block: 120px 80px;
  }
  #home .hero-copy { max-width: 680px; justify-self: center; text-align: center; }
  #home .eyebrow,
  #home .hero-buttons,
  #home .hero-platforms,
  #home .hero-pillars { justify-content: center; }
  #home .hero-pillars { flex-wrap: wrap; row-gap: 16px; }
  #home .hero-pillars a { text-align: left; }
  #home .hero-pillars a:first-child { padding-left: 18px; }
  #home .hero-pillars a:last-child { padding-right: 18px; }
  #home .hero-visual { max-width: 680px; }
}
@media (max-width: 700px) {
  #home .hero-inner { width: calc(100% - 32px); gap: 32px; padding-block: 112px 64px; }
  #home .hero-visual { max-width: 560px; padding: 12px 8px 0; }
  #home .hero-copy h1 { font-size: clamp(48px, 13vw, 63px); }
  #home .hero-pillars a:first-child { padding-left: 12px; }
  #home .hero-pillars a:last-child { padding-right: 12px; }
  #home .visual-caption { right: 8px; max-width: calc(100% - 16px); }
}
