.curator {
  padding-bottom: var(--section-spacing);
}

.curator__intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  padding-inline: var(--section-padding-x);

  gap: clamp(16px, calc(-2.919px + 2.7027vw), 36px);
}
@media (max-width: 988px) {
  .curator__intro {
    padding-inline: var(--section-padding-x-mobile);
  }
}

.curator__title { width: 100%; }

.curator__profile {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  width: 100%;

  --curator-card-radius: var(--radius-big);
}
@media (max-width: 988px) {
  .curator__profile { --curator-card-radius: var(--radius-medium-mobile); }
}

/* Do not add position/z-index here: it creates a stacking context and
   inverts the -30px overlap the panel's rounded corner depends on. */
.curator__profile-media {
  flex: 1 1 460px;
  min-width: 280px;
  aspect-ratio: 624.875 / 636.216;
  overflow: hidden;
  border-radius: var(--curator-card-radius) 0 0 var(--curator-card-radius);
  margin-inline-end: -30px;
}

.curator__profile-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.curator__profile-panel {
  flex: 1 1 540px;
  min-width: 300px;
  display: flex;
  flex-direction: column;

  justify-content: space-between;
  background: var(--color-cards-bg);
  border-radius: var(--curator-card-radius);

  position: relative;
  z-index: 1;

  padding: clamp(30px, calc(1.622px + 4.05405vw), 60px);

  gap: clamp(24px, calc(-14.784px + 5.5405vw), 65px);
}

@media (min-width: 1440px) {
  .curator__profile-panel {
    padding-left: clamp(60px, calc(-60px + 8.333vw), 100px);
  }
}
.curator__profile-labels {
  display: flex;
  align-items: center;

  gap: clamp(5px, calc(-1.622px + 0.94595vw), 12px);
}
.curator__profile-labels--mobile {
  display: none;

  order: 1;
}

.curator__profile-text {
  display: flex;
  flex-direction: column;

  gap: clamp(12px, calc(2.541px + 1.35135vw), 22px);

  max-width: clamp(23.24rem, calc(220.1px + 25.28vw), 36.51rem);
}

.curator__profile-name {
  margin: 0;
  color: var(--color-text);
  font-family: var(--font-family-accent);
  font-weight: 400;
  font-size: var(--font-size-name-curator);
  line-height: 1.1;
  letter-spacing: -0.01em;
  text-transform: lowercase;
}

.curator__profile-bio {
  display: flex;
  flex-direction: column;

  gap: clamp(10px, calc(5.270px + 0.67568vw), 15px);
}
.curator__profile-bio p {
  margin: 0;
  color: var(--color-text);
  font-family: var(--font-primary);
  font-weight: 400;
  font-size: var(--font-size-body-curator);
  line-height: 1.3;
}

.curator__profile-social {
  display: flex;
  align-items: center;
  order: 2;
}
.curator__profile-social img {
  width: clamp(80px, calc(62.14px + 2.976vw), 105px);
  height: auto;
}

@media (max-width: 700px) {
  .curator__profile {
    flex-direction: column;
  }
  .curator__profile-media {
    flex-basis: auto;
    width: 100%;
    aspect-ratio: 350 / 366;

    border-radius: var(--curator-card-radius) var(--curator-card-radius) 0 0;

    margin-bottom: -40px;
  }
  /* All four corners stay: the panel overlaps the photo by 40 (the
     frame's), so its top corners show against it. */
  .curator__profile-panel {
    flex: 1 1 auto;
    min-width: 0;
    padding: 24px 30px;
    gap: 43px; /* the frame's text→labels gap */
  }
  .curator__profile-labels--desktop { display: none; }
  .curator__profile-labels--mobile { display: flex; }

  .curator__profile-social { display: none; }
}

#section-curator > .portfolio-gallery {
  margin-top: clamp(10px, calc(-10.811px + 2.97297vw), 32px);
}

@media (max-width: 700px) {
  #section-curator .portfolio-gallery__header { display: none; }
}

.curator__portfolio-heading {
  margin: 0;
  color: var(--color-text);
  font-family: var(--font-family-accent);
  font-weight: 400;

  font-size: clamp(32px, calc(24.432px + 1.08108vw), 40px);
  line-height: 1.1;
  letter-spacing: -0.01em;
}
