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

html,
body {
  height: 100%;
}

body {
  min-height: 100dvh;
  overflow: hidden;
  background:
    radial-gradient(ellipse 70% 55% at 50% 45%, #2a1810 0%, transparent 60%),
    linear-gradient(165deg, #1a100c 0%, #0c0806 55%, #070504 100%);
}

body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(
    ellipse 58% 52% at 50% 48%,
    transparent 42%,
    rgba(0, 0, 0, 0.72) 100%
  );
  z-index: 2;
}

.gallery {
  position: relative;
  z-index: 1;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: clamp(0.5rem, 2.5vw, 1.5rem);
}

.portrait {
  display: block;
  width: min(92vw, 42rem, 92dvh);
  height: auto;
  max-height: 94dvh;
  object-fit: contain;
  filter: drop-shadow(0 22px 40px rgba(0, 0, 0, 0.65));
  animation: rise 1.25s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes rise {
  from {
    opacity: 0;
    transform: translateY(1rem) scale(0.985);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portrait {
    animation: none;
  }
}
