/* Project stories extend the existing gallery transition with native scrolling. */
.project-preview.has-case-study { color: #1a1a1a; }
.project-preview.has-case-study[data-state="open"] { overflow-y: auto; }
.has-case-study .project-preview__paper { bottom: auto; height: 100dvh; }
.has-case-study .project-preview__content { height: 100dvh; }
.has-case-study .project-preview__close { background: var(--cream); border-radius: 3px; }
.project-preview__case-intro { margin: 38px auto 0; max-width: 360px; }
.case-facts { display: flex; justify-content: center; gap: 50px; margin: 0; text-align: left; }
.case-facts dt { color: #6c665b; font-size: 14px; margin-bottom: 6px; }
.case-facts dd { margin: 0; font-size: 18px; line-height: 1.4; }
.case-read { display: inline-flex; align-items: center; gap: 30px; min-height: 44px; margin-top: 32px; font-size: 20px; }
.case-read span { font-size: 28px; }
.project-preview__story { position: relative; z-index: 1; margin-top: 100dvh; background: var(--cream); opacity: 0; }
.has-case-study[data-state="open"] .project-preview__story { opacity: 1; }
.case-study { max-width: 1280px; margin: 0 auto; padding: 0 clamp(24px,5vw,76px); outline: none; }
.case-section { padding: clamp(64px,8vw,120px) 0; }
.case-section + .case-section { border-top: 1px solid rgba(26,26,26,.16); }
.case-context, .case-reflection, .case-section-heading { display: grid; grid-template-columns: 1fr 2fr; gap: 48px; }
.case-eyebrow { margin: 8px 0 0; color: #625d53; font-size: 16px; line-height: 1.4; }
.case-copy h3 { margin: 0 0 24px; max-width: 16em; color: #1a1a1a; font: 500 clamp(34px,3.8vw,54px)/1.08 var(--font-heading); letter-spacing: -.025em; text-wrap: balance; }
.case-copy p { max-width: 31em; margin: 0 0 18px; color: #423e35; font-size: clamp(19px,1.7vw,23px); line-height: 1.5; }
.case-copy p:last-child { margin-bottom: 0; }
.case-figure { min-width: 0; margin: 0; }
.case-figure img { display: block; width: 100%; height: auto; }
.case-figure a { display: block; cursor: zoom-in; }
.case-figure a:focus-visible { outline: 2px solid #1a1a1a; outline-offset: 6px; }
.case-figure figcaption { display: flex; justify-content: space-between; gap: 20px; margin-top: 16px; color: #625d53; font-size: 15px; line-height: 1.4; }
.case-figure--wide { margin-top: 48px; }
.case-foundations { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 32px; margin-top: 48px; }
.case-foundation > a { display: flex; align-items: center; min-height: 330px; padding: 24px; background: #fafafa; }
.case-foundation figcaption span:last-child { white-space: nowrap; }
.case-screens { display: grid; grid-template-columns: repeat(2,minmax(0,310px)); justify-content: center; gap: clamp(24px,7vw,90px); padding: 56px clamp(24px,5vw,64px) 36px; margin-top: 48px; background: #dfe7d8; }
.case-screens img { border: 1px solid rgba(26,26,26,.12); border-radius: 20px; }
.case-source-links { display: flex; flex-wrap: wrap; gap: 12px 32px; margin-top: 32px; font-size: 18px; }
.case-source-links a { display: inline-flex; align-items: center; min-height: 44px; }
.case-end { display: flex; justify-content: space-between; align-items: center; gap: 24px; border-top: 1px solid rgba(26,26,26,.16); padding: 32px 0 56px; font-size: 18px; }
.case-end > span { color: #625d53; }
.case-end button { min-height: 44px; padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; }
.case-end button span { margin-left: 20px; }
.has-case-study.is-mobile .project-preview__content { min-height: 0; height: auto; padding-bottom: 48px; }
.has-case-study.is-mobile .project-preview__story { margin-top: 0; }
.has-case-study.is-mobile .project-preview__stage { position: absolute; }
.has-case-study.is-mobile .project-preview__mobile-image { max-width: 740px; margin: 32px auto 0; }
.has-case-study.is-mobile .project-preview__case-intro { margin-top: 28px; }
.has-case-study.is-mobile .case-read { margin-top: 20px; }
@media (max-width: 700px) {
  .has-case-study.is-mobile .project-preview__case-intro { margin: 24px 0 0; }
  .has-case-study.is-mobile .case-facts { justify-content: flex-start; gap: 44px; }
  .has-case-study.is-mobile .case-read { margin-top: 20px; }
  .has-case-study.is-mobile .project-preview__mobile-image { margin-top: 28px; }
  .case-study { padding-inline: 24px; }
  .case-section { padding-block: 48px; }
  .case-context, .case-reflection, .case-section-heading { grid-template-columns: 1fr; gap: 20px; }
  .case-copy h3 { margin-bottom: 20px; }
  .case-foundations { grid-template-columns: 1fr; gap: 40px; }
  .case-foundation > a { min-height: 0; padding: 20px; }
  .case-figure--wide, .case-foundations, .case-screens { margin-top: 32px; }
  .case-figure figcaption { font-size: 13px; gap: 12px; }
  .case-screens { padding: 28px 16px; gap: 16px; margin-inline: -8px; }
  .case-screens img { border-radius: 10px; }
  .case-screens figcaption { max-width: 12em; }
  .case-end { font-size: 16px; }
}
@media (max-width: 480px) {
  .case-screens { grid-template-columns: minmax(0,280px); gap: 36px; }
  .case-screens figcaption { max-width: none; }
}
