.project-preview {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  min-width: 0;
  aspect-ratio: 404 / 316;
  isolation: isolate;
}

.project-card .project-preview {
  min-height: 0;
  background: var(--void);
}

.project-card .project-preview--desktop {
  align-items: end;
}

.preview-screen {
  position: relative;
  display: block;
  box-sizing: content-box;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  aspect-ratio: var(--screen-ratio, 1440 / 1067);
  border: 1px solid color-mix(in srgb, var(--white) 14%, transparent);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: 0 22px 60px color-mix(in srgb, var(--void) 20%, transparent);
}

.project-preview .preview-screen img {
  position: absolute;
  top: var(--crop-top, 0%);
  left: var(--crop-left, 0%);
  display: block;
  width: var(--crop-width, 100%);
  max-width: none;
  height: auto;
  border: 0;
  border-radius: 0;
  object-fit: contain;
  transform: rotate(var(--crop-rotation, 0deg));
  transform-origin: 0 0;
}

.preview-screen--desktop {
  box-sizing: border-box;
  width: 86%;
  aspect-ratio: 16 / 10;
  border-radius: 2%;
}

.project-preview .preview-screen--desktop img {
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: left top;
  transform: none;
}

.project-card .preview-screen--desktop {
  transform: translateY(8%);
}

.case-hero-visual.project-preview {
  display: grid;
  width: min(100%, 700px);
  aspect-ratio: 404 / 316;
  margin: 0 auto;
  filter: none;
}

.case-hero-visual .preview-screen--desktop {
  width: 100%;
}

.case-hero-visual.project-preview--desktop {
  aspect-ratio: 16 / 10;
}

.preview-screen[href] {
  cursor: zoom-in;
}

.preview-phone {
  --screen-ratio: 414 / 900;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 28%;
  border: 3px solid var(--void);
  border-radius: 14% / 6.5%;
}

.preview-phone:nth-child(1) {
  z-index: 1;
  transform: translate(-146%, -46%) rotate(-8deg);
}

.preview-phone:nth-child(2) {
  z-index: 3;
  width: 31%;
  transform: translate(-50%, -52%);
}

.preview-phone:nth-child(3) {
  z-index: 2;
  transform: translate(46%, -46%) rotate(8deg);
}

.project-preview--pair .preview-phone:nth-child(1) {
  transform: translate(-93%, -46%) rotate(-6deg);
}

.project-preview--pair .preview-phone:nth-child(2) {
  transform: translate(-7%, -52%);
}

.project-link:hover .project-preview,
.project-link:focus-visible .project-preview {
  transform: translateY(-8px);
  box-shadow: none;
}

/* Source-image windows preserve the original interface pixels. */
.preview-crop--cuddle-check-in {
  --crop-width: 606.06060606%;
  --crop-left: -97.53787879%;
  --crop-top: -24.95667244%;
  --crop-rotation: 8.548deg;
}

.preview-crop--cuddle-reflection {
  --crop-width: 606.06060606%;
  --crop-left: -217.99242424%;
  --crop-top: -24.95667244%;
  --crop-rotation: 8.548deg;
}

@media (max-width: 680px) {
  .preview-phone {
    border-width: 2px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .project-link:hover .project-preview,
  .project-link:focus-visible .project-preview {
    transform: none;
  }

}
