.case{max-width:1100px;margin:0 auto;padding:0 32px 120px;}

.case-hero{padding:56px 0 40px;}
.case-back{
  display:inline-block;
  font-size:14px;color:var(--muted);
  margin-bottom:28px;
}
.case-back:hover{color:var(--ink);}
.case-hero h1{
  font-family:'Outfit',sans-serif;
  font-weight:600;
  font-size:clamp(32px,5vw,52px);
  letter-spacing:-0.01em;
  margin:0 0 20px;
}
.case-dek{
  font-size:19px;
  line-height:1.6;
  color:var(--muted);
  max-width:760px;
  margin:0 0 40px;
}
.case-hero-img{
  border-radius:8px;
  overflow:hidden;
  aspect-ratio:16/9;
}
.case-hero-img img{width:100%;height:100%;object-fit:cover;}

.case-meta{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:24px;
  padding:32px 0;
  margin:40px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.case-meta-label{
  display:block;
  font-family:'Outfit',sans-serif;
  font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);font-weight:600;
  margin-bottom:8px;
}
.case-meta-value{font-size:15px;color:var(--ink);line-height:1.4;}

.case-section{margin:64px 0;}
.case-h3{
  font-family:'Outfit',sans-serif;
  font-weight:600;
  font-size:24px;
  margin:0 0 18px;
}
.case-h4{
  font-family:'Outfit',sans-serif;
  font-weight:600;
  font-size:17px;
  margin:28px 0 12px;
}
.case-body{
  font-size:16px;
  line-height:1.7;
  color:var(--muted);
  max-width:760px;
  margin:0 0 16px;
}
.case-body:last-child{margin-bottom:0;}

.case-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:48px;}
.case-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
.case-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}

.case-services div{display:flex;flex-direction:column;}
.case-service-name{
  font-family:'Outfit',sans-serif;
  font-weight:600;
  font-size:16px;
  margin-bottom:8px;
}
.case-services p{font-size:15px;color:var(--muted);line-height:1.6;}

.case-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
  margin:56px 0 8px;
}
.case-stat-num{
  display:block;
  font-family:'Outfit',sans-serif;
  font-weight:600;
  font-size:clamp(32px,4vw,48px);
  letter-spacing:-0.01em;
}
.case-stat-label{font-size:14px;color:var(--muted);line-height:1.5;}
.case-source{font-size:13px;color:var(--muted);margin-bottom:56px;}

.case-quote{
  font-family:'Outfit',sans-serif;
  font-weight:500;
  font-size:clamp(22px,3vw,30px);
  line-height:1.4;
  max-width:820px;
  margin:64px 0;
  color:var(--ink);
}
.case-quote cite{
  display:block;
  font-family:'Manrope',sans-serif;
  font-style:normal;
  font-weight:500;
  font-size:14px;
  color:var(--muted);
  margin-top:16px;
}
.case-quote--small{font-size:20px;margin:32px 0 0;}

.case-list{
  list-style:none;
  display:flex;flex-direction:column;gap:12px;
  max-width:760px;
}
.case-list li{
  position:relative;
  padding-left:20px;
  font-size:16px;line-height:1.6;color:var(--muted);
}
.case-list li::before{
  content:"";
  position:absolute;left:0;top:9px;
  width:5px;height:5px;border-radius:50%;
  background:var(--muted);
}

.case-image{border-radius:8px;overflow:hidden;margin:32px 0;background:#eee;}
.case-image--blend{border-radius:0;background:#fafafa;}
.case-image img{width:100%;height:auto;display:block;}
.case-caption{font-size:13px;color:var(--muted);margin-top:-16px;}

.case-mockups img{border-radius:6px;width:100%;}
.case-sketch{border-radius:8px;width:100%;}

/* full-bleed image, no side padding */
.case-image-full{
  width:100vw;
  margin:32px calc(50% - 50vw);
}
.case-image-full img{width:100%;height:auto;display:block;}

/* full-bleed dark feature section (e.g. "Final Screens") */
.case-dark{
  background:var(--ink);
  color:#fff;
  margin:64px calc(50% - 50vw);
  padding:64px 0;
}
.case-dark-inner{
  max-width:1100px;margin:0 auto;padding:0 32px;
}
.case-dark-row{
  display:flex;align-items:center;gap:56px;
  margin-bottom:64px;
}
.case-dark-row:last-child{margin-bottom:0;}
.case-dark-row.reverse{flex-direction:row-reverse;}
.case-dark-row .case-dark-img{
  flex-shrink:0;
  width:260px;
  border-radius:16px;
  overflow:hidden;
}
.case-dark-row .case-dark-img img{width:100%;display:block;}
.case-dark-row h4{
  font-family:'Outfit',sans-serif;
  font-weight:600;
  font-size:22px;
  margin-bottom:12px;
}
.case-dark-row p{
  font-size:15px;line-height:1.6;
  color:rgba(255,255,255,.65);
  max-width:380px;
}

@media (max-width:800px){
  .case-dark-row,.case-dark-row.reverse{flex-direction:column;text-align:left;}
  .case-dark-row .case-dark-img{width:100%;max-width:260px;}
}

@media (max-width:800px){
  .case-meta{grid-template-columns:repeat(2,1fr);}
  .case-grid-2,.case-grid-3,.case-grid-4{grid-template-columns:1fr;}
}

/* intro row: body copy + stacked meta side panel */
.case-intro{
  display:flex;
  gap:64px;
  align-items:flex-start;
  margin:40px 0;
}
.case-intro .case-body{flex:1;margin:0;}
.case-meta-stack{
  flex-shrink:0;
  display:flex;
  flex-direction:column;
  gap:20px;
  min-width:150px;
}
.case-meta-stack .case-meta-label{margin-bottom:4px;}
.case-meta-stack .case-meta-value{font-size:14px;}

@media (max-width:800px){
  .case-intro{flex-direction:column;gap:24px;}
}

/* light gray captioned image gallery */
.case-final-gallery{
  background:#f2f2f2;
  border-radius:8px;
  padding:40px;
  margin:48px 0;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
}
.case-final-thumb{
  width:100%;
  aspect-ratio:1/1;
  overflow:hidden;
  border-radius:4px;
  margin-bottom:14px;
}
.case-final-thumb img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.case-final-item p{
  font-size:13px;line-height:1.55;color:var(--muted);
}

@media (max-width:800px){
  .case-final-gallery{grid-template-columns:repeat(2,1fr);padding:24px;}
}

/* two-column role row: heading left, list right */
.case-role-row{display:flex;gap:64px;align-items:flex-start;}
.case-role-row .case-h3{flex-shrink:0;width:180px;margin:0;}
.case-role-row .case-list,
.case-role-row > div{flex:1;}

@media (max-width:800px){
  .case-role-row{flex-direction:column;gap:20px;}
}

/* full-bleed gray feature section (e.g. collaborator spotlight) */
.case-feature{
  background:#6b6b6b;
  color:#fff;
  margin:64px calc(50% - 50vw);
  padding:64px 0;
}
.case-feature-inner{
  max-width:1100px;margin:0 auto;padding:0 32px;
  display:flex;align-items:center;justify-content:space-between;gap:48px;
}
.case-feature-text{max-width:520px;}
.case-feature-text h4{
  font-family:'Outfit',sans-serif;font-weight:600;font-size:20px;
  margin:0 0 14px;
}
.case-feature-text p{font-size:15px;line-height:1.65;color:rgba(255,255,255,.8);margin:0 0 16px;}
.case-feature-quote{font-style:italic;color:#fff;font-size:15px;margin:0;}
.case-feature-img{width:220px;flex-shrink:0;border-radius:8px;overflow:hidden;}
.case-feature-img img{width:100%;display:block;}

@media (max-width:800px){
  .case-feature-inner{flex-direction:column-reverse;text-align:left;}
  .case-feature-img{width:160px;}
}

/* full-bleed black section (e.g. Activities & Personas) */
.case-activities{
  background:#0a0a0a;
  color:#fff;
  margin:64px calc(50% - 50vw);
  padding:64px 0;
}
.case-activities-inner{max-width:1100px;margin:0 auto;padding:0 32px;}
.case-activities .case-h3{color:#fff;}
.case-activities .case-body{color:rgba(255,255,255,.65);max-width:820px;}
.case-activities-row{width:100%;display:block;margin-top:32px;border-radius:8px;}
.case-activities-captions{width:100%;display:block;margin-top:16px;}

/* full-bleed 3-up photo row, equal-height crops */
.case-photo-row{
  width:100vw;
  margin:0 calc(50% - 50vw);
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2px;
}
.case-photo-row img{
  width:100%;
  aspect-ratio:900/410;
  object-fit:cover;
  display:block;
}

@media (max-width:800px){
  .case-photo-row{grid-template-columns:1fr;}
}

/* full-bleed gray text section (e.g. "My Role") */
.case-gray{
  background:#6b6b6b;
  color:#fff;
  margin:0 calc(50% - 50vw) 64px;
  padding:64px 0;
}
.case-gray-inner{max-width:1100px;margin:0 auto;padding:0 32px;}
.case-gray .case-h3{color:#fff;margin-bottom:20px;}
.case-gray p{font-size:15px;line-height:1.7;color:rgba(255,255,255,.85);max-width:820px;margin:0 0 16px;}
.case-gray p:last-child{margin-bottom:0;}
.case-gray .case-list li{color:rgba(255,255,255,.85);}
.case-gray .case-list li::before{background:rgba(255,255,255,.6);}
.case-gray .case-list li strong{color:#fff;}

/* step rows: text aligned to matching labels baked into the diagram, image ~25% larger */
.case-steps-section{
  background:#fafafa;
  width:100vw;
  margin:48px calc(50% - 50vw);
  padding:48px 0;
}
.case-steps-row{
  max-width:1240px;margin:0 auto;padding:0 32px;
  display:flex;gap:48px;align-items:stretch;
}
.case-steps-text{flex:0 0 494px;position:relative;}
.case-step{position:absolute;left:0;right:0;transform:translateY(-50%);}
.case-step h4{margin:0 0 8px;}
.case-step p{margin:0;}
.case-steps-img{flex:1;}
.case-steps-img img{width:100%;height:100%;object-fit:cover;display:block;}

@media (max-width:900px){
  .case-steps-row{flex-direction:column;padding:0 32px;}
  .case-steps-text{flex:none;}
  .case-step{position:static;left:0;right:0;transform:none;margin-bottom:32px;}
}

/* full-bleed embedded video */
.case-video-full{
  width:100vw;
  margin:64px calc(50% - 50vw);
  background:#000;
}
.case-video-embed{position:relative;width:100%;padding-top:56.25%;}
.case-video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}

/* full-bleed dark section with large alternating image/text rows (e.g. "Easter Eggs") */
.case-eggs{
  background:#0a0a0a;
  color:#fff;
  margin:64px calc(50% - 50vw);
  padding:64px 0;
}
.case-eggs-inner{max-width:1100px;margin:0 auto;padding:0 32px;}
.case-eggs .case-h3{color:#fff;}
.case-eggs > .case-eggs-inner > .case-body{color:rgba(255,255,255,.65);max-width:820px;}
.case-egg-row{
  display:flex;align-items:center;gap:48px;
  margin-top:64px;
}
.case-egg-row.reverse{flex-direction:row-reverse;}
.case-egg-img{flex:1;border-radius:8px;overflow:hidden;}
.case-egg-img img{width:100%;display:block;}
.case-egg-text{flex:1;}
.case-egg-text h4{
  font-family:'Outfit',sans-serif;font-weight:600;font-size:20px;color:#fff;
  margin:0 0 14px;
}
.case-egg-text p{font-size:15px;line-height:1.65;color:rgba(255,255,255,.7);margin:0;}

@media (max-width:800px){
  .case-egg-row,.case-egg-row.reverse{flex-direction:column;}
}

/* inspiration row: text left, stacked images right */
.case-inspo{display:flex;gap:48px;align-items:flex-start;margin:64px 0;}
.case-inspo-text{flex:1;}
.case-inspo-images{flex:1;display:flex;flex-direction:column;gap:16px;}
.case-inspo-images img{width:100%;display:block;border-radius:8px;}

@media (max-width:800px){
  .case-inspo{flex-direction:column;}
}

/* stacked full-bleed images with no gap between them */
.case-image-stack{width:100vw;margin:0 calc(50% - 50vw);}
.case-image-stack img{width:100%;display:block;}

/* chat bubble mockup */
.case-chat{
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;flex-wrap:wrap;
  margin:48px 0;
}
.case-chat-label{font-size:16px;color:var(--ink);max-width:420px;}
.case-chat-bubble{
  background:#e9e9eb;
  color:var(--ink);
  border-radius:20px 20px 4px 20px;
  padding:14px 18px;
  font-size:15px;
  line-height:1.4;
  max-width:280px;
}

/* quote with dot decoration */
.case-quote-deco{
  text-align:center;
  color:var(--muted);
  font-size:20px;
  letter-spacing:0.3em;
  margin:0;
}
.case-quote--center{
  text-align:center;
  max-width:700px;
  margin:16px auto;
}

/* capsule type grid: icon+illustration image, title, description */
.case-types-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:32px;
  margin:48px 0;
}
.case-type-card img{width:100%;display:block;margin-bottom:16px;}
.case-type-card h4{
  font-family:'Outfit',sans-serif;font-weight:600;font-size:16px;
  margin:0 0 8px;
}
.case-type-card p{font-size:14px;line-height:1.6;color:var(--muted);margin:0;}

@media (max-width:900px){
  .case-types-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:520px){
  .case-types-grid{grid-template-columns:1fr;}
}

/* booklet carousel */
.case-carousel{
  position:relative;
  max-width:640px;
  margin:96px auto 0 !important;
  clear:both;
}
.case-carousel-viewport{
  position:relative;
  width:100%;
  aspect-ratio:3307/2338;
  border-radius:8px;
  overflow:hidden;
  background:#eee;
}
.case-carousel-viewport img{
  position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity .3s ease;
  pointer-events:none;
}
.case-carousel-viewport img.active{opacity:1;pointer-events:auto;}
.case-carousel-arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.85);
  border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;color:var(--ink);
  z-index:2;
}
.case-carousel-arrow.prev{left:12px;}
.case-carousel-arrow.next{right:12px;}
.case-carousel-dots{
  display:flex;justify-content:center;gap:8px;
  margin-top:16px;
}
.case-carousel-dot{
  width:7px;height:7px;border-radius:50%;
  background:var(--line);
  border:none;cursor:pointer;padding:0;
}
.case-carousel-dot.active{background:var(--ink);}
