/* Reset */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }
  
  html, body {
    height: 100%;
    width: 100%;
    overflow-x: hidden;
    overflow-y: hidden;
    background: #ffffff;
    font-family: sans-serif;
    position: relative;
  }
  
  /* Fixed frame that never overflows the viewport */
  .frame {
    height: 100vh;
    width: 100vw;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: clamp(8px, 3vh, 24px);
    padding: 16px;
  }
  
  /* Center the logo in normal flow */
  .logo-wrapper {
    display: flex;
    justify-content: center;
  }
  
  .logo {
    width: min(70vw, 375px);  /* responsive: scales with screen */
    height: auto;
    display: block;
  }
  
  /* Centered image between logo and tagline */
  .image-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding-top: 6vh;
    padding-bottom: 6vh;
  }
  
  .image {
    width: min(50vw, 980px);
    max-height: 52vh; /* ensure combined content never exceeds frame */
    height: auto;
    display: block;
    object-fit: contain;
  }
  
  /* Tagline sits below the logo */
  .tagline-wrapper {
    display: flex;
    justify-content: center;
  }
  
  .tagline {
    width: min(50vw, 250px);  /* responsive: scales down on mobile */
    height: auto;
    display: block;
  }
  
  /* Extra responsiveness for very small screens */
  @media (max-height: 600px) {
    .frame {
      justify-content: center;
      padding-top: 8px;
    }
  }

  /* Mobile: add vertical padding around the image */
  @media (max-width: 768px) {
    .image-wrapper {
      padding-top: 10vh;
      padding-bottom: 10vh;
    }
  }

  @media (max-width: 768px) {
    .image {
      width: min(80vw, 980px);
    }
  }
  