:root {
  --bg: #f5ac6c;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  height: 100%;
}

body {
  margin: 0;
  background-color: var(--bg);
}

/* Full-viewport stage: keeps the image centered both vertically and horizontally. */
.stage {
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
}

/*
  Responsive image rules:
  - Renders at intrinsic size on large screens (no upscaling).
  - Scales down proportionally on smaller screens.
*/
.hero-image {
  display: block;
  height: auto;
  max-width: 100%;
  max-height: calc(100vh - 4rem);
  max-height: calc(100svh - 4rem);
  object-fit: contain;
}

/* Media queries tune padding and height constraints for tablets/phones. */
@media (max-width: 768px) {
  .stage {
    padding: 1.25rem;
  }

  .hero-image {
    max-height: calc(100vh - 2.5rem);
    max-height: calc(100svh - 2.5rem);
  }
}

@media (max-width: 480px) {
  .stage {
    padding: 0.85rem;
  }

  .hero-image {
    max-height: calc(100vh - 1.7rem);
    max-height: calc(100svh - 1.7rem);
  }
}
