    body {
      background-color: #fafafa;
    }

    .logo {
      max-height: 300px;
    }

    .tagline {
      font-size: 1.1rem;
      color: #666;
    }

    .gallery-item {
      position: relative;
      overflow: hidden;
      border-radius: 0.75rem;
      aspect-ratio: 4 / 5;
      /* elegant portrait-friendly ratio */
      background-color: #eee;
    }

    .gallery-item img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform 0.35s ease;
    }


    .gallery-item:hover img {
      transform: scale(1.05);
    }

    .gallery-caption {
      position: absolute;
      inset: 0;
      background: linear-gradient(to top,
          rgba(0, 0, 0, 0.65),
          rgba(0, 0, 0, 0.15),
          rgba(0, 0, 0, 0));
      color: #fff;
      font-size: 0.95rem;
      padding: 1rem;
      display: flex;
      align-items: flex-end;
      opacity: 0;
      transition: opacity 0.35s ease;
    }

    .gallery-item:hover .gallery-caption {
      opacity: 1;
    }

    .gallery-item:focus-within .gallery-caption {
      opacity: 1;
    }
