/* Chevron centering, fixed up-button placement, and project visual alignment */

/* Use one shared project-page gutter so introductory text and showcased work begin on the same edge. */
.project-page {
  --project-content-gutter: clamp(56px, 6vw, 96px);
}

/* Perfectly center the directional arrowheads inside their circles. */
.project-nav__back,
.back-to-top {
  position: relative !important;
  overflow: hidden !important;
  text-indent: -9999px !important;
}

.project-nav__back > *,
.back-to-top > * {
  display: none !important;
}

.project-nav__back::before,
.back-to-top::before {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  display: block !important;
  width: 10px !important;
  height: 10px !important;
  margin: 0 !important;
  border: 0 !important;
  border-right: 2px solid currentColor !important;
  border-bottom: 2px solid currentColor !important;
  box-sizing: border-box !important;
  transform-origin: 50% 50% !important;
  text-indent: 0 !important;
}

/* Navigation control points left. */
.project-nav__back::before {
  transform: translate(-50%, -50%) rotate(135deg) !important;
}

/* Back-to-top control points upward. */
.back-to-top::before {
  transform: translate(-50%, -50%) rotate(-135deg) !important;
}

/* Keep the project navigation button at the left edge of the bar. */
.project-page .project-nav {
  position: relative !important;
  display: flex !important;
  width: 100% !important;
  align-items: center !important;
  justify-content: space-between !important;
}

.project-page .project-nav__back {
  margin-right: auto !important;
  margin-left: 0 !important;
}

.project-page .menu-toggle {
  margin-right: 0 !important;
  margin-left: auto !important;
}

/* Keep the brown up button fixed in the lower-right corner. */
.back-to-top,
.back-to-top:hover,
.back-to-top:focus-visible {
  position: fixed !important;
  right: 28px !important;
  bottom: 28px !important;
  left: auto !important;
  top: auto !important;
  z-index: 1000 !important;
  display: grid !important;
  width: 44px !important;
  height: 44px !important;
  padding: 0 !important;
  place-items: center !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: var(--brown, #3d332c) !important;
  color: var(--cream, #faf5ed) !important;
  box-shadow: 0 8px 24px rgba(61, 51, 44, 0.18) !important;
}

/* Introductory text uses the same shared edge. */
.project-page .project-intro {
  width: auto !important;
  max-width: none !important;
  margin-left: var(--project-content-gutter) !important;
  margin-right: var(--project-content-gutter) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Source-based carousel projects: align the panel/carousel edge with the text. */
.project-page .source-case-section {
  width: min(
    calc(100% - var(--project-content-gutter) - var(--project-content-gutter)),
    1320px
  ) !important;
  max-width: none !important;
  margin-left: var(--project-content-gutter) !important;
  margin-right: auto !important;
}

.project-page .source-case-section--trestle {
  width: min(
    calc(100% - var(--project-content-gutter) - var(--project-content-gutter)),
    1380px
  ) !important;
}

.project-page .source-case-section:not(.source-case-section--trestle) {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.project-page .source-case-section__inner {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Interactive books and nested browser carousels align to the same left edge. */
.project-page .interactive-book,
.project-page .source-browser-carousel-wrap {
  margin-left: 0 !important;
  margin-right: auto !important;
}

/* Final work sections align with project text while keeping their established maximum size. */
.project-page .final-work-showcase {
  width: min(
    calc(100% - var(--project-content-gutter) - var(--project-content-gutter)),
    1320px
  ) !important;
  max-width: none !important;
  margin-left: var(--project-content-gutter) !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.project-page .final-work-showcase__inner {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Standalone galleries use the same project text gutter. */
.project-page .project-static-gallery {
  width: min(
    calc(100% - var(--project-content-gutter) - var(--project-content-gutter)),
    1380px
  ) !important;
  max-width: none !important;
  margin-left: var(--project-content-gutter) !important;
  margin-right: auto !important;
}

/* Nested visual groups retain their scale but begin at the parent's left edge. */
.project-page .cornerstone-gallery,
.project-page .ghostle-board-gallery,
.project-page .silversneakers-gallery,
.project-page .life-line-stack,
.project-page .showcase-static,
.project-page .ghostle-full-showcase {
  margin-left: 0 !important;
  margin-right: auto !important;
}

.project-page .cornerstone-gallery {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

@media (max-width: 768px) {
  .project-page {
    --project-content-gutter: 18px;
  }

  .back-to-top,
  .back-to-top:hover,
  .back-to-top:focus-visible {
    right: 18px !important;
    bottom: 18px !important;
    width: 42px !important;
    height: 42px !important;
  }
}

@media (max-width: 420px) {
  .project-page {
    --project-content-gutter: 14px;
  }
}
