@media (max-width: 640px) and (orientation: portrait) {
  .site {
    grid-template-rows: minmax(0, 1fr) auto;
    padding: max(16px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right))
      max(12px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));
  }

  .hero { grid-row: 1; padding: 12px 0; }

  .hero-stage {
    --scene-height: min(690px, calc(100svh - 116px - max(16px, env(safe-area-inset-top))
      - max(12px, env(safe-area-inset-bottom))));
    width: 100%;
    height: var(--scene-height);
    grid-template-columns: 1fr;
    grid-template-rows: minmax(0, .49fr) minmax(0, .51fr);
    justify-items: center;
    row-gap: 14px;
  }

  .brand { width: min(100%, 380px); gap: 5px; }
  .wordmark { width: min(54vw, 214px); }
  .buddy { max-width: 180px; }
  .phone { --phone-inset: 6.5px; padding: 5px; border-width: 1.5px; }
  .site-footer { grid-row: 2; flex-wrap: wrap; column-gap: 12px; row-gap: 0; }
  .legal-links { flex-basis: 100%; justify-content: center; }
  .background-art { object-fit: cover; object-position: 54% center; }
}

@media (max-height: 580px) and (orientation: landscape) {
  .site { padding: max(12px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right))
    max(8px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left)); }
  .hero { padding: 8px 0; }
  .hero-stage { --scene-height: min(450px, calc(100svh - 62px - max(12px, env(safe-area-inset-top))
    - max(8px, env(safe-area-inset-bottom))), calc(48vw + 70px)); --phone-inset: 6px; column-gap: 12vw; }
  .brand { gap: 8px; }
  .phone { padding: 4px; }
}

@media (max-width: 360px) and (orientation: portrait) {
  .site { padding-left: 14px; padding-right: 14px; }
  .hero-stage { row-gap: 10px; }
}
