/* Project photography carries the story; Crux supplies the frame. */
.showcase { background:#e9d9c8; overflow:hidden; }
.project-visual.showcase { padding:6% 8% 3%; min-height:0; perspective:none; }
.showcase-devices { position:relative; padding:0 13% 5% 0; }
.showcase-desktop { display:block; width:100%; height:auto; box-shadow:0 22px 45px -25px #47261780; }
.showcase-mobile { position:absolute; bottom:0; right:0; width:22%; height:auto; border:5px solid #241b18; border-radius:18px; box-shadow:0 18px 36px -15px #241b1860; }
.project .showcase-desktop { transition:transform .6s cubic-bezier(.2,.65,.2,1); }
.project:hover .showcase-desktop { transform:translateY(-5px); }
.showcase .image-caption { margin-top:20px; color:#655344; }
.case-page .header { position:relative; }
.case-page .header nav a:hover { color:var(--wine); }
.case-back { display:inline-block; font:500 13px var(--display); margin-bottom:48px; }
.case-back:hover { color:var(--wine); }
.case-hero { padding-block:58px 48px; }
.case-title-row { display:grid; grid-template-columns:1.2fr .8fr; gap:7%; align-items:end; }
.case-title-row h1 { margin:0; font:600 clamp(88px,10.5vw,170px)/.9 var(--poster); text-transform:uppercase; letter-spacing:-.025em; }
.case-summary { padding-bottom:8px; }
.case-summary p { font-size:clamp(21px,2vw,29px); line-height:1.35; margin-bottom:30px; }
.case-summary .text-link { font-size:14px; }
.case-facts { display:grid; grid-template-columns:1fr 1fr 1.4fr .8fr; gap:30px; margin:65px 0 0; padding-top:26px; border-top:1px solid #ddcbbf; }
.case-facts dt { font:500 12px var(--display); color:var(--muted); margin-bottom:7px; }
.case-facts dd { margin:0; font-size:17px; }
.case-showcase { margin:0; padding:75px max(7%,calc((100% - 1280px)/2)) 30px; }
.case-showcase figcaption { text-align:right; font-size:13px; margin-top:22px; color:#655344; }
.case-story { display:grid; grid-template-columns:1fr 2fr; gap:6%; padding-block:110px; }
.case-story .descriptor { padding-top:9px; }
.case-page h2 { font:500 clamp(32px,4vw,62px)/1.1 var(--display); letter-spacing:-.055em; margin-bottom:32px; }
.case-story p:not(.descriptor) { max-width:690px; font-size:22px; color:var(--muted); }
.case-story p:last-child { margin-bottom:0; }
.case-delivery { background:var(--ink); color:var(--white); padding-block:95px 105px; }
.case-delivery .descriptor { color:#ff9b7d; }
.case-delivery h2 { margin-bottom:65px; }
.delivery-grid { display:grid; grid-template-columns:1fr 1fr; gap:50px 9%; }
.delivery-grid article { border-top:1px solid #ffffff30; padding-top:22px; }
.delivery-grid h3 { margin:0 0 18px; font:500 25px var(--display); letter-spacing:-.035em; }
.delivery-grid p { color:#d4c3b9; margin:0; max-width:540px; }
.case-journey { display:grid; grid-template-columns:.8fr 1.2fr; align-items:center; gap:7%; padding-block:115px; }
.case-journey h2 { font-size:clamp(32px,3vw,47px); }
.journey-copy p:not(.descriptor) { color:var(--muted); }
.journey-copy .text-link { font-size:13px; gap:20px; }
.case-journey figure { margin:0; padding:22px; background:#e9d9c8; }
.case-journey img { display:block; width:100%; height:auto; }
.case-journey figcaption { margin-top:15px; font-size:12px; color:var(--muted); }
.case-result { padding-block:0 110px; }
.case-result h2 { font-size:clamp(40px,5.7vw,86px); }
.result-copy { margin:45px 0 0 auto; max-width:660px; font-size:22px; }
.search-observation { border-left:3px solid var(--signal); padding-left:25px; margin-top:40px; }
.search-observation h3 { font:600 19px var(--display); letter-spacing:-.025em; margin-bottom:12px; }
.search-observation p { font-size:19px; margin-bottom:12px; }
.search-observation small { display:block; font-size:13px; color:var(--muted); }
.case-contact { background:var(--signal); padding-block:80px; }
.case-contact h2 { font:600 clamp(70px,10vw,150px)/.9 var(--poster); text-transform:uppercase; letter-spacing:-.025em; margin-bottom:45px; }
.case-contact-bottom { display:flex; justify-content:space-between; align-items:end; gap:30px; }
.case-contact-bottom p { margin:0; }
.case-contact .hero-link { gap:35px; }
@media(max-width:950px) {
  .case-title-row { grid-template-columns:1fr; gap:30px; }
  .case-title-row h1 { font-size:17vw; }
  .case-summary { display:flex; justify-content:space-between; align-items:end; gap:25px; }
  .case-summary p { margin:0; }
  .case-facts { grid-template-columns:1fr 1fr; margin-top:40px; }
  .case-showcase { padding:45px 5% 25px; }
  .case-story { grid-template-columns:1fr; gap:20px; padding-block:80px; }
  .case-journey { grid-template-columns:1fr; gap:35px; padding-block:80px; }
  .journey-copy { max-width:600px; }
  .case-contact-bottom { align-items:start; flex-direction:column; }
}
@media(max-width:640px) {
  .case-page .header nav a[href='/#services'],.case-page .header nav a[href='/#about'] { display:none; }
  .case-hero { padding-block:30px 35px; }
  .case-back { margin-bottom:35px; font-size:12px; }
  .case-title-row h1 { font-size:21vw; }
  .case-summary { display:block; }
  .case-summary p { font-size:20px; margin-bottom:17px; }
  .case-facts { gap:24px 18px; margin-top:30px; }
  .case-facts dd { font-size:15px; }
  .case-facts dt { font-size:11px; }
  .showcase-mobile { border-width:2px; border-radius:7px; }
  .showcase .image-caption,.case-showcase figcaption { font-size:10px; }
  .case-showcase { padding:32px 20px 22px; }
  .case-story,.case-journey { padding-block:65px; }
  .case-story p:not(.descriptor) { font-size:19px; }
  .case-page h2 { font-size:35px; }
  .case-delivery { padding-block:65px; }
  .case-delivery h2 { margin-bottom:40px; }
  .delivery-grid { grid-template-columns:1fr; gap:30px; }
  .delivery-grid h3 { font-size:23px; }
  .case-journey figure { padding:12px; }
  .case-result { padding-bottom:65px; }
  .result-copy { margin-top:25px; font-size:19px; }
  .case-result h2 br { display:none; }
  .case-contact { padding-block:60px; }
  .case-contact h2 { font-size:14vw; }
  .case-contact .hero-link { font-size:13px; }
}
@media(prefers-reduced-motion:reduce) { .project .showcase-desktop { transition:none; } }
