.project-feature{display:grid;grid-template-columns:1.1fr 1fr;border:1px solid var(--line);border-radius:8px;overflow:hidden}.project-visual{position:relative;min-height:460px;background:#e6e4f6;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:35px;gap:12px}.project-dog{width:64%;height:auto;object-fit:contain}.project-phone{width:30%;height:auto;max-height:410px;object-fit:contain;border-radius:20px;filter:drop-shadow(0 12px 18px #25203930)}.preview-label{position:absolute;bottom:16px;left:22px;font-size:.72rem;color:#494357}.project-copy{padding:48px;display:flex;flex-direction:column;align-items:flex-start;gap:22px;background:#fff}.project-copy .label{margin:0}.project-copy h3{font-size:3rem}.project-copy p{margin:0}.project-tags{display:flex;flex-wrap:wrap;gap:8px}.project-tags span{font-size:.75rem;border:1px solid var(--line);padding:5px 10px;border-radius:30px}.project-copy .button{margin-top:8px}.project-eyebrow{margin-top:32px}.project-stage .project-visual{min-height:540px;padding:40px 12%;}.project-stage .project-phone{max-height:480px;width:26%}.project-stage .project-dog{max-width:530px}.project-caption{font-size:.85rem;color:var(--muted);margin-top:15px}.project-summary{display:grid;grid-template-columns:1fr 1fr;gap:70px}.project-summary h2{font-size:clamp(2rem,3.3vw,3rem)}.project-deliverables{background:#eef0e9}.project-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.project-columns h2{font-size:1.65rem;margin:22px 0 16px}.project-columns p{color:var(--muted)}@media(max-width:800px){.project-feature,.project-summary{grid-template-columns:1fr;gap:0}.project-summary{gap:28px}.project-copy{padding:30px}.project-columns{grid-template-columns:1fr;gap:32px}.project-visual{min-height:330px;padding:28px 20px}.project-stage .project-visual{min-height:330px;padding:30px 20px}.project-stage .project-phone{width:30%}.project-copy h3{font-size:2.5rem}.project-columns article+article{border-top:1px solid var(--line);padding-top:28px}}
.project-intro-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center;margin-top:32px}.project-intro h1{font-size:clamp(3rem,5.7vw,5.4rem)}.project-intro .project-visual{border-radius:8px}.project-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;border-top:1px solid var(--line);margin-top:48px;padding-top:26px}.project-facts span{display:block;color:var(--muted);font-size:.8rem;margin-bottom:8px}.project-facts strong{display:block;font-size:1rem;line-height:1.5}.project-work-list{list-style:none;padding:0;margin:28px 0 0}.project-work-list li{border-top:1px solid var(--line);padding:16px 0;color:var(--muted)}.project-work-list strong{color:var(--ink)}.project-app-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:center}.project-app-preview{background:#e6e4f6;border-radius:8px;padding:36px;text-align:center}.project-app-preview img{width:min(100%,250px);height:auto;margin:auto;border-radius:26px;filter:drop-shadow(0 10px 20px #25203920)}.project-app-preview p{font-size:.75rem;margin:24px 0 0;color:var(--muted)}.project-app-grid h2{font-size:clamp(2rem,3.3vw,3rem);margin-bottom:24px}.project-explore h2{margin-bottom:20px}@media(max-width:800px){.project-intro-grid,.project-app-grid{grid-template-columns:1fr;gap:32px}.project-facts{grid-template-columns:1fr;gap:20px}.project-intro .project-visual{min-height:330px}.project-app-preview{padding:28px}.project-app-preview img{max-width:220px}}

.case-audience{border-top:1px solid var(--line)}.case-two{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:38px}.case-two article{border-top:1px solid var(--line);padding-top:24px}.case-two h3{font-size:1.55rem;margin-bottom:16px}.case-two p{color:var(--muted)}.case-two .text-link{margin-top:22px}.case-gallery h2,.case-outcomes h2,.case-audience h2{font-size:clamp(2rem,3.4vw,3.4rem)}.case-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:38px}.case-screen,.case-brand{height:400px;background:#e6e4f6;border-radius:6px;display:flex;align-items:center;justify-content:center;padding:28px}.case-screen img{height:100%;width:auto;max-width:100%;object-fit:contain;border-radius:20px}.case-brand{flex-direction:column;background:#f1eee8}.case-brand>span{align-self:flex-start;font-size:.8rem;margin-bottom:18px}.case-brand img{width:100%;height:auto}.case-gallery figcaption{padding-top:20px;line-height:1.6}.case-gallery figcaption strong,.case-gallery figcaption span{display:block}.case-gallery figcaption span{font-size:.9rem;color:var(--muted);margin-top:8px}.case-outcomes{background:#eef0e9}@media(max-width:800px){.case-two,.case-gallery-grid{grid-template-columns:1fr;gap:32px}.case-screen,.case-brand{height:390px}.case-brand img{max-width:280px}}

/* Keep the scope summary on one line within its fact column. */
.project-facts > div{min-width:0;container-type:inline-size}
.project-facts .project-scope-line{font-size:clamp(.7rem,4.35cqw,1rem);white-space:nowrap}

.community-feature{margin-top:32px}.community-image{margin:0;background:#eeeee6;overflow:hidden;border-radius:6px;align-self:stretch}.community-image img{width:100%;height:100%;min-height:340px;object-fit:cover}.community-image figcaption{padding:12px 20px;font-size:.8rem}.project-intro .community-image img{height:auto;min-height:0}.case-links{margin-top:32px}.case-links .text-link{margin-top:20px}

/* Community case study: photo-led hero with no stretched caption panel. */
.project-intro .soup-hero-image{align-self:center;position:relative;background:#192725;border-radius:12px;box-shadow:0 18px 40px #19272518;transform:rotate(1deg)}
.project-intro .soup-hero-image img{display:block;aspect-ratio:1.06;width:100%;height:auto;object-fit:cover}
.soup-hero-image figcaption{position:absolute;inset:auto 0 0;padding:70px 24px 24px;background:linear-gradient(transparent,#112722e8);color:white}
.soup-hero-image figcaption span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;margin-bottom:8px}.soup-hero-image figcaption strong{font-size:1.3rem;line-height:1.3;display:block;max-width:22ch}
.soup-build-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 60px;margin-top:40px}.soup-build-grid article{border-top:1px solid var(--line);padding-top:24px}.soup-build-grid h3{font-size:1.5rem;margin-bottom:16px}.soup-build-grid p{color:var(--muted)}.soup-event{background:#1c302b;color:#f8faf5}.soup-event h2,.soup-event .lead,.soup-event p{color:inherit}.soup-event .label{color:var(--accent)}.soup-event .button{background:var(--accent);color:var(--ink);margin-top:24px}.soup-event-photo{width:100%;aspect-ratio:1.55;object-fit:cover;border-radius:6px;margin-top:32px}.soup-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:40px}.soup-gallery img{width:100%;aspect-ratio:1.4;object-fit:cover;border-radius:6px}.soup-gallery h3{font-size:1.2rem;margin:20px 0 10px}.soup-gallery p{font-size:.95rem;color:var(--muted)}@media(max-width:800px){.soup-build-grid,.soup-gallery{grid-template-columns:1fr}.project-intro .soup-hero-image{transform:none}.soup-gallery img{aspect-ratio:1.6}}

.soup-results{background:#eef0e9}.soup-results .lead{margin-top:24px;max-width:65ch}.soup-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin:40px 0;border-block:1px solid var(--line);padding:32px 0}.soup-result-grid strong{display:block;font-size:clamp(2.4rem,4.8vw,4.4rem);line-height:1.1;letter-spacing:-.05em}.soup-result-grid span{display:block;margin-top:12px;color:var(--muted);font-size:.9rem}.soup-results .text-link{margin-top:24px}.soup-results .project-caption a{text-decoration:underline}@media(max-width:680px){.soup-result-grid{grid-template-columns:1fr;gap:28px}}

.soup-press{margin-top:40px;padding-top:32px;border-top:1px solid var(--line)}.soup-press h3{font-size:1.6rem;margin-bottom:10px}.soup-press-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}.soup-press-grid a{display:flex;flex-direction:column;gap:18px;padding:26px;background:white;border:1px solid var(--line);border-radius:6px}.soup-press-grid a:hover{border-color:var(--ink)}.soup-press-grid span{font-size:.94rem;color:var(--muted)}.soup-press-grid b{margin-top:auto;font-size:.82rem}@media(max-width:800px){.soup-press-grid{grid-template-columns:1fr}}

/* Event feature: explicit image height overrides intrinsic HTML dimensions. */
.soup-event-heading{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:end;margin-bottom:38px}.soup-event-heading h2{font-size:clamp(2rem,3.3vw,3.2rem)}.soup-event-feature{margin:0}.soup-event-feature img{display:block;width:100%;height:clamp(260px,42vw,560px);object-fit:cover;object-position:center 65%;border-radius:8px}.soup-event-feature figcaption{margin-top:12px;font-size:.75rem;color:#c7d3cb}.soup-event-feature figcaption a{text-decoration:underline}.soup-event-detail{display:flex;align-items:center;justify-content:space-between;gap:48px;margin-top:30px}.soup-event-detail p{max-width:68ch}.soup-event-detail .button{margin:0;flex-shrink:0}@media(max-width:800px){.soup-event-heading{grid-template-columns:1fr;gap:24px}.soup-event-detail{display:flex;flex-direction:column;align-items:flex-start;gap:24px}.soup-event-feature img{height:290px;object-position:center 65%}}

/* Soup Kitchen: real website proof, with a lightweight CSS device frame. */
.soup-site-hero{margin:0;padding:42px 12px 28px;background:transparent;border-radius:8px;align-self:center;min-width:0}
.soup-laptop{filter:drop-shadow(0 24px 16px #243a3025)}
.soup-laptop-screen{margin:0 3%;padding:8px 8px 12px;background:#17211e;border-radius:14px 14px 3px 3px;border:1px solid #56635e}
.soup-laptop-screen img{display:block;width:100%;height:auto;border-radius:5px}
.soup-laptop-base{height:12px;background:linear-gradient(#a6ada9,#dfe3df 40%,#858e88);border-radius:1px 1px 50% 50%;position:relative}
.soup-laptop-base:before{content:"";display:block;width:18%;height:4px;margin:auto;background:#737d77;border-radius:0 0 8px 8px}
.soup-site-hero figcaption{margin-top:26px;font-size:19px;font-weight:600;color:#1d332c;text-align:center}
.soup-site-hero figcaption span{display:block;font-size:13px;font-weight:400;margin-top:8px}
.soup-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
.soup-gallery>a:first-child{grid-column:1/-1}
.soup-gallery img{width:100%;height:auto!important;aspect-ratio:auto;object-fit:contain;border:1px solid #d9ddd6;border-radius:8px}
.soup-event-screen{display:block;margin:40px 0 48px;text-decoration:none;color:inherit}
.soup-event-screen img{display:block;width:100%;height:auto;border-radius:8px;border:1px solid #607168}
.soup-event-screen span{display:block;margin-top:14px;font-size:15px}
.soup-event-feature img{height:clamp(260px,34vw,440px)!important;object-position:center 65%}
@media(max-width:700px){.soup-site-hero{padding:30px 8px 25px}.soup-gallery{grid-template-columns:1fr}.soup-gallery>a:first-child{grid-column:auto}.soup-site-hero figcaption{font-size:17px}.soup-laptop-screen{padding:6px 6px 9px}.soup-event-feature img{height:260px!important}}

/* Keep project imagery directly after the title on narrow screens. */
@media (max-width:800px){
  .project-intro-grid > div:first-child{display:contents}
  .project-intro-grid > div:first-child > .project-eyebrow{grid-row:1;margin-bottom:0}
  .project-intro-grid > div:first-child > h1{grid-row:2;margin:0}
  .project-intro-grid > .project-visual,
  .project-intro-grid > .soup-site-hero{grid-row:3}
  .project-intro-grid > div:first-child > .lead{grid-row:4;margin:0}
  .project-intro-grid > div:first-child > .actions{grid-row:5;margin-top:0}
  .project-intro-grid > .soup-site-hero{padding-top:0}
}

.savannah-screens{display:grid;gap:56px;margin-top:40px}.savannah-screens figure{margin:0}.savannah-screens img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:8px}.savannah-screens figcaption{margin-top:18px;color:var(--muted)}.savannah-screens strong{color:var(--ink)}
