/* Case study + portfolio pages. Loaded after site.css (tokens, nav, buttons, footer) and portfolio.css (project cards). */

/* Hero */
.case-hero{padding:168px 0 64px;border-bottom:1px solid var(--line)}
.case-hero h1{max-width:900px;margin:0 0 24px;font-size:clamp(44px,6vw,88px);font-weight:700;line-height:1;letter-spacing:-.045em}
.case-intro{max-width:640px;margin:0;color:var(--muted);font-size:clamp(17px,1.4vw,19px);line-height:1.65}
.case-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:56px 0 0;padding-top:24px;border-top:1px solid var(--line)}
.case-meta div{min-width:0}
.case-meta dt{margin-bottom:6px;color:var(--faint);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.case-meta dd{margin:0;font-size:15px;font-weight:600}
.case-meta a{color:inherit;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:4px}
.case-meta a:hover{text-decoration-color:var(--text)}

/* Main screenshot: framed at its natural ratio */
.case-shot{padding:64px 0 112px}
.artwork-button{display:block;width:100%;padding:0;border:0;background:none;color:inherit;text-align:left;cursor:zoom-in}
.case-shot .project-frame,.gallery-grid .project-frame{box-shadow:var(--shadow)}
.case-shot .project-frame img,.gallery-grid .project-frame img{aspect-ratio:auto;object-fit:contain}
.artwork-mat{display:grid;place-items:center;min-height:420px;padding:clamp(24px,5vw,64px);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}
.artwork-mat img{display:block;max-width:100%;max-height:78vh;width:auto;height:auto;box-shadow:0 18px 50px rgba(0,0,0,.22)}

/* Details */
.case-row{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:64px;padding:48px 0;border-top:1px solid var(--line)}
.case-row:first-child{padding-top:0;border-top:0}
.case-row h2{font-size:clamp(24px,2.4vw,32px);letter-spacing:-.03em}
.case-row p{max-width:640px;margin:0 0 16px;color:var(--muted);font-size:17px;line-height:1.7}
.case-row p:last-child{margin-bottom:0}
.case-status{display:flex;flex-direction:column;gap:6px;margin-top:24px!important;padding:18px 20px;border:1px solid var(--line-strong);border-left:2px solid var(--accent);border-radius:8px;background:var(--surface);font-size:15px!important}
.case-status span{color:var(--text);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.case-features{max-width:640px;margin:0;padding:0;border-top:1px solid var(--line);list-style:none}
.case-features li{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:16px}
.case-features li::before{content:"";width:5px;height:5px;margin-top:10px;flex:none;background:var(--accent)}
.case-features a{color:var(--text)}
.case-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.case-tags li{padding:7px 12px;border:1px solid var(--line-strong);border-radius:6px;color:var(--muted);font-size:14px;font-weight:600}

/* Extra project media (RAZEM) */
.gallery-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,.75fr);gap:24px;align-items:start}
.gallery-grid figure{margin:0}
.gallery-grid figcaption{margin-top:12px;color:var(--faint);font-size:13px;font-weight:600}
.gallery-wide{grid-row:span 2}
.phone-frame{display:block;overflow:hidden;padding:8px;border:1px solid var(--line-strong);border-radius:28px;background:var(--surface);box-shadow:var(--shadow)}
.phone-frame img{display:block;width:100%;height:auto;border-radius:20px}
.gallery-document{display:flex;flex-direction:column;gap:10px;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:inherit;text-decoration:none;transition:border-color .2s ease}
.gallery-document:hover{border-color:var(--text)}
.gallery-document strong{font-size:18px;letter-spacing:-.02em}
.gallery-document .project-meta{margin:0}
.gallery-document .project-link{align-self:flex-start;margin-top:8px}

/* Dynamic gallery (case-study.js, creative projects) */
.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}
.gallery-item{display:grid;place-items:center;margin:0;padding:clamp(20px,4vw,40px);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}
.gallery-item.wide{grid-column:1/-1}
.gallery-item:only-child{grid-column:1/-1}
.gallery-item .artwork-button{display:grid;place-items:center}
.gallery-item img{display:block;max-width:100%;max-height:80vh;width:auto;height:auto}
.gallery .gallery-document{justify-content:flex-end;min-height:220px}

/* CTA + project navigation */
.case-cta{border-top:1px solid var(--line)}
.case-cta-inner{display:flex;align-items:end;justify-content:space-between;gap:40px}
.case-cta h2{font-size:clamp(34px,4.4vw,60px);letter-spacing:-.04em}
.case-cta-actions{display:flex;flex-shrink:0;gap:12px}
.project-navigation{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.project-navigation a{padding:48px 0;color:inherit;text-decoration:none}
.project-navigation a:last-child{text-align:right}
.project-navigation small{display:block;margin-bottom:8px;color:var(--faint);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.project-navigation strong{font-size:clamp(22px,2.6vw,32px);letter-spacing:-.03em}
.project-navigation a:hover strong{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
.nav-links a[aria-current=page]{color:var(--text)}

/* Lightbox */
.lightbox{width:100vw;height:100vh;max-width:none;max-height:none;margin:0;padding:36px;border:0;background:rgba(8,8,9,.96);overflow:auto}
.lightbox::backdrop{background:rgba(0,0,0,.75)}
.lightbox img{display:block;width:100%;height:100%;object-fit:contain}
.lightbox-close{position:fixed;top:20px;right:20px;z-index:2;width:44px;height:44px;border:1px solid rgba(255,255,255,.25);border-radius:8px;background:#141416;color:#fff;font-size:22px;cursor:pointer}

@media (max-width:900px){
  .case-meta{grid-template-columns:1fr;gap:16px}
  .case-row{grid-template-columns:1fr;gap:16px;padding:36px 0}
  .gallery-grid{grid-template-columns:minmax(0,1fr) minmax(0,.6fr)}
  .gallery-wide{grid-column:1/-1;grid-row:auto}
  .case-cta-inner{flex-direction:column;align-items:flex-start}
}
@media (max-width:680px){
  .case-hero{padding:120px 0 48px}
  .case-meta{margin-top:40px}
  .case-shot{padding:40px 0 72px}
  .gallery,.gallery-grid{grid-template-columns:1fr}
  .gallery-phone{max-width:260px}
  .case-cta-actions{display:grid;width:100%}
  .project-navigation{grid-template-columns:1fr}
  .project-navigation a{padding:32px 0}
  .project-navigation a:last-child{text-align:left;border-top:1px solid var(--line)}
  .lightbox{padding:12px}
}

/* Website case studies (work/*): stage, numbered chapters, identity band and result */
.case-back{display:inline-flex;align-items:center;gap:8px;margin-bottom:40px;color:var(--muted);font-size:14px;font-weight:600;text-decoration:none;transition:color .2s ease}
.case-back:hover{color:var(--text)}
.case-meta:has(> :nth-child(4)){grid-template-columns:repeat(4,minmax(0,1fr))}
.case-showcase{padding:64px 0 120px}
.case-stage{--d-left:8%;--d-top:8%;--d-width:66%;--p-right:8%;--p-width:18%;--p-bottom:7%;aspect-ratio:16/8.9}
.stage-zoom{padding:0;border:0;font:inherit;color:inherit;text-align:left;cursor:zoom-in}
.stage-zoom:hover{transform:translateY(-.6%)}
.case-story{padding-top:0}
.case-chapter{display:grid;grid-template-columns:72px minmax(0,.75fr) minmax(0,1.25fr);gap:32px;padding:48px 0;border-top:1px solid var(--line)}
.case-chapter:last-child{border-bottom:1px solid var(--line)}
.case-num{margin:6px 0 0;color:var(--faint);font-size:12px;font-weight:700;letter-spacing:.1em;font-variant-numeric:tabular-nums}
.case-chapter h2{font-size:clamp(24px,2.4vw,32px);letter-spacing:-.03em}
.case-chapter-body p{max-width:640px;margin:0 0 16px;color:var(--muted);font-size:17px;line-height:1.7}
.case-chapter-body p:last-child{margin-bottom:0}
.case-features-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;max-width:none}
.case-band{padding:0}
.case-band-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px}
.case-band figure{margin:0}
.case-band figcaption{margin-top:14px;color:var(--faint);font-size:13px;font-weight:600}
.case-logo>span{display:grid;aspect-ratio:16/10.6;place-items:center;padding:12%;border:1px solid var(--line);border-radius:var(--radius);background:var(--mat)}
.case-logo img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.stage-solo{position:relative;display:block;aspect-ratio:16/10.6;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--stage)}
.case-phone .stage-solo{aspect-ratio:auto;height:100%}
.case-phone{display:flex;flex-direction:column}
.case-phone .stage-solo{flex:1;min-height:0}
.case-phone .stage-phone{left:50%;right:auto;top:8%;bottom:auto;width:auto;height:84%;transform:translateX(-50%)}
.case-phone .stage-phone img{width:auto;height:100%}
.case-gallery{padding-top:112px}
.case-result-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;align-items:start}
.case-result h2{font-size:clamp(32px,3.4vw,48px);letter-spacing:-.04em}
.case-result-body p{max-width:560px;margin:0 0 28px;color:var(--muted);font-size:18px;line-height:1.65}
.case-result-actions{margin-top:32px}
@media (max-width:1023px){
  .case-meta:has(> :nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}
  .case-chapter{grid-template-columns:48px minmax(0,1fr);gap:16px 24px}
  .case-chapter-body{grid-column:2}
  .case-result-grid{grid-template-columns:1fr;gap:32px;align-items:start}
}
@media (max-width:680px){
  .case-back{margin-bottom:28px}
  .case-meta:has(> :nth-child(4)){grid-template-columns:1fr}
  .case-showcase{padding:40px 0 72px}
  .case-stage{--d-left:5%;--d-top:7%;--d-width:72%;--p-right:5%;--p-width:22%;--p-bottom:6%;aspect-ratio:4/2.9}
  .case-chapter{grid-template-columns:1fr;padding:36px 0}
  .case-chapter-body{grid-column:auto}
  .case-num{margin:0}
  .case-features-grid{grid-template-columns:1fr}
  .case-band-grid{grid-template-columns:1fr}
  .case-phone .stage-solo{aspect-ratio:1/1;height:auto}
}
@media (prefers-reduced-motion:reduce){.stage-zoom:hover{transform:none}}

/* WCAG 2.2 minimum target size; padding offset by negative margin so layout does not move. */
.case-back{padding-top:2px;margin-top:-2px}
.case-meta dd a{padding-block:2px}
