/* The poster identity stays flat; softer edges and an uneven rhythm loosen it. */
:root {
  --organic-control-radius: 999px;
  --organic-photo-radius: 14px;
}

.team-toggle,
.car__explore,
.car__controls button,
.album__controls button,
.album-viewer button,
.donations__button {
  border-radius: var(--organic-control-radius);
}

.album__enlarge { border-radius: 50%; }
.donations__button { padding-inline: 28px; }
.car__controls .car__reset { padding-inline: 20px; }

/* Vary the reading rhythm without changing the order of either chapter. */
.project { --project-gap: clamp(40px, 6vw, 96px); }
.project__heading {
  grid-template-columns: 1.08fr .92fr;
  align-items: center;
  padding-bottom: 16px;
  border-bottom: 0;
}
.project__heading > p { max-width: 32ch; }
.project-chapter { grid-template-columns: 1.12fr .88fr; }
.project-chapter + .project-chapter { border-top: 0; }
.project-chapter__copy { padding-right: 0; }
.project-chapter:nth-child(2) h3 { margin-left: clamp(16px, 3vw, 48px); }
.project-chapter:nth-child(2) .project-chapter__copy { padding-top: 40px; }

/* These offsets belong to the layout, leaving the planting animation intact. */
@media (min-width: 1101px) {
  .sponsors:is(.is-full, :has(.sponsor-sticker:nth-child(3))) .sponsor-list {
    grid-template-columns: 1fr 1.06fr .94fr;
    column-gap: clamp(40px, 4vw, 64px);
  }
  .sponsor-sticker:nth-child(3n + 2) { margin-top: 56px; }
  .sponsor-sticker:nth-child(3n) { margin-top: -16px; }
  .sponsor-sticker:nth-child(3n + 1) .sponsor-sticker__face { min-height: 302px; }
  .sponsor-sticker:nth-child(3n + 2) .sponsor-sticker__face { min-height: 322px; }
}
.sponsor-sticker:nth-child(3n + 1) .sponsor-sticker__face { border-radius: 32px 24px 64px 28px; }
.sponsor-sticker:nth-child(3n) .sponsor-sticker__face { border-radius: 16px 52px 18px 52px; }
.sponsors__closing { border-top: 0; padding-top: 12px; }

/* Only the white support is rounded. The complete photograph stays contained. */
.album__photo {
  padding: 6px;
  border-radius: var(--organic-photo-radius);
}
.album__photo > img { object-fit: contain; }
.album__enlarge { right: 16px; bottom: 16px; }

/* Keep the SVG, QR quiet zone and existing white padding entirely untouched. */
.donations__qr { border-radius: 16px; }
.donations__contact { border-bottom: 0; }
.donations__closing { margin-top: 12px; }

@media (min-width: 901px) {
  .donations__scan { padding-top: 32px; }
}

@media (min-width: 651px) and (max-width: 1100px) {
  .sponsor-sticker:nth-child(even) { margin-top: 32px; }
  .sponsors:is(.is-full, :has(.sponsor-sticker:nth-child(3))) .sponsor-sticker:last-child:nth-child(odd) {
    width: 94%;
    margin-left: 20px;
  }
}

@media (max-width: 900px) {
  .project { --project-gap: 28px; }
  .project__heading { grid-template-columns: 1fr; align-items: start; padding-bottom: 12px; }
  .project__heading > p { max-width: 40ch; }
  .project-chapter { grid-template-columns: 1.05fr .95fr; }
  .project-chapter:nth-child(2) h3 { margin-left: 12px; }
  .project-chapter:nth-child(2) .project-chapter__copy { padding-top: 16px; }
}

@media (max-width: 650px) {
  .sponsor-sticker:nth-child(3n + 1) { width: 96%; justify-self: start; }
  .sponsor-sticker:nth-child(3n + 2) { width: 96%; justify-self: end; }
  .sponsor-sticker:nth-child(3n) { width: 98%; justify-self: start; }
}

@media (max-width: 600px) {
  .project-chapter { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .project-chapter:nth-child(2) h3 { margin-left: 0; }
  .project-chapter:nth-child(2) .project-chapter__copy { padding-top: 0; }
  .project-chapter__copy { margin-left: 12px; }
  .donations__button { padding-inline: 24px; }
  .donations__scan { justify-self: center; }
  .album__photo { padding: 4px; border-radius: 12px; }
  .sponsors { padding-top: calc(20px + var(--logo-size) + 12px); }
  .route__stage { padding-top: calc(20px + var(--logo-size) + 12px); }
}

@media (max-width: 360px) {
  .project { padding-top: calc(20px + var(--logo-size) + 12px); }
  .album .album__header { padding-top: 80px; }
  .project-chapter__copy { margin-left: 0; }
  .sponsor-sticker:nth-child(n) { width: 100%; }
}

@media (max-height: 650px) and (min-width: 901px) {
  .donations__scan { padding-top: 0; }
  .project-chapter:nth-child(2) .project-chapter__copy { padding-top: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .team-toggle,
  .car__explore,
  .car__controls button,
  .album__controls button,
  .album-viewer button,
  .donations__button { transition: none; }
}
