/* Project case studies open as a sheet that slides up over the homepage and drops back down when closed. */
.project-sheet {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: #111;
  transform: translateY(100%);
  visibility: hidden;
  transition: transform 640ms cubic-bezier(.22,1,.36,1), visibility 0s linear 640ms;
}
.project-sheet.is-open {
  transform: translateY(0);
  visibility: visible;
  transition: transform 640ms cubic-bezier(.22,1,.36,1), visibility 0s;
}
.project-sheet-frame { display: block; width: 100%; height: 100%; border: 0; background: #111; }
/* Pinned above the sliding sheet, matching the case study's own close control. */
.project-sheet-close {
  position: fixed;
  z-index: 201;
  top: 2.604167vw;
  right: 5.208333vw;
  width: 2.916667vw;
  height: 2.916667vw;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: url('../assets/soulvid/banner/close.svg') center / contain no-repeat;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: opacity 160ms linear, visibility 0s linear 160ms;
}
/* Keep the design-sized icon, with a minimum 44px invisible hit area. */
.project-sheet-close::after {
  content: '';
  position: absolute;
  min-width: 44px;
  min-height: 44px;
  width: 100%;
  height: 100%;
  border-radius: inherit;
}
.project-sheet-close.is-visible { opacity: 1; visibility: visible; transition: opacity 160ms linear, visibility 0s; }
body.sheet-open { overflow: hidden; }
@media (max-width: 767px) {
  .project-sheet-close { top: 24px; right: 24px; width: 44px; height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .project-sheet,
  .project-sheet.is-open { transition: none; }
}
