/* Portfolio V3 extends the existing editorial design without changing the hero. */
.portfolio-card .work__visual img { aspect-ratio:auto; }
.portfolio-card .wk-name a:hover { color:var(--lime); }
.portfolio-card .wk-top { justify-content:flex-start; }
.case-page { --case-space:clamp(28px,6vw,112px); }
.case-page main { overflow:hidden; }
.case-hero { padding:160px var(--case-space) 0; }
.case-title-row { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; }
.case-title-row h1 { margin:22px 0 0; font:900 clamp(50px,8.8vw,160px)/.95 "Archivo",sans-serif; letter-spacing:-.065em; text-transform:uppercase; max-width:13ch; overflow-wrap:normal; }
.case-title-row .case-long-name { font-size:clamp(42px,7.3vw,140px); }
.case-back { flex-shrink:0; font-size:12px; border-bottom:1px solid #66695d; padding-bottom:10px; }
.case-deck { display:flex; justify-content:space-between; align-items:start; gap:36px; margin:40px 0 52px; }
.case-deck>p { max-width:30ch; font-size:clamp(18px,2vw,28px); line-height:1.4; color:#c3c3bc; }
.case-deck .wk-pills { display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; max-width:42%; }
.case-deck .wk-pills span { border:1px solid #3e4037; padding:10px 14px; font-size:11px; border-radius:0; color:var(--text); }
.case-cover { transform:translateY(var(--case-drift,0px)); background:#eae9e5; overflow:hidden; }
.case-cover img { display:block; width:100%; height:auto; }
.case-scroll { display:flex; justify-content:space-between; margin:20px 0 0; padding-bottom:30px; border-bottom:1px solid #303229; font-size:11px; letter-spacing:.13em; text-transform:uppercase; }
.case-story { display:grid; grid-template-columns:1fr 2fr; gap:60px; padding:clamp(80px,10vw,160px) var(--case-space); }
.case-story h2 { font:600 clamp(28px,3.6vw,62px)/1.1 "Archivo",sans-serif; letter-spacing:-.035em; max-width:22ch; margin-bottom:28px; }
.case-story p:not(.eyebrow) { max-width:60ch; font-size:clamp(16px,1.4vw,20px); line-height:1.8; color:#babdb3; }
.case-overview { background:#eae9e2; color:#151612; margin-top:70px; }
.case-overview p:not(.eyebrow) { color:#4f5246; }
.case-overview .eyebrow { color:#545948; }
.case-overview .eyebrow::before { background:#545948; }
.case-showcase { padding:0 var(--case-space) 80px; }
.case-section-heading { padding:20px 0 50px; border-top:1px solid #303229; }
.case-section-heading h2 { font:900 clamp(48px,7vw,120px)/1.05 "Archivo",sans-serif; letter-spacing:-.055em; margin:28px 0 16px; }
.case-section-heading>p:last-child { color:var(--muted); font-size:15px; }
.case-gallery { display:grid; grid-template-columns:1fr 1fr; gap:64px 28px; align-items:start; }
.case-figure { margin:0; min-width:0; }
.case-figure:first-child { grid-column:1/-1; }
.case-figure:nth-child(2) { grid-column:1/-1; width:86%; margin-left:auto; }
.case-figure--wide { grid-column:1/-1; }
.gallery-open { display:block; position:relative; background:#eae9e5; overflow:hidden; }
.gallery-open img { display:block; width:100%; height:auto; transition:transform .8s ease; }
.gallery-hint { position:absolute; bottom:16px; right:16px; background:#10110e; color:#f4f4ed; padding:12px 16px; font-size:11px; }
.case-figure figcaption,.case-video figcaption { padding:16px 0; font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); }
.case-video { margin:70px 0 0; }
.case-video video { width:100%; height:auto; }
.case-execution { background:#11130f; }
.case-execution ul { list-style:none; margin:32px 0 0; padding:0; }
.case-execution li { padding:16px 0; border-top:1px solid #383c31; font-size:20px; }
.case-related { padding:110px var(--case-space); }
.case-related h2 { font-size:clamp(28px,4vw,54px); letter-spacing:-.04em; margin-bottom:36px; }
.case-related>div { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.case-related a { min-width:0; }
.case-related img { display:block; width:100%; height:auto; }
.case-related span { display:block; font-size:clamp(23px,3vw,40px); font-weight:600; margin-top:20px; }
.case-related small { display:block; margin-top:10px; color:var(--muted); }
.case-next { background:var(--lime); color:#11130d; }
.case-next-link { display:block; padding:90px var(--case-space) 0; }
.case-next-link>div { position:relative; z-index:1; }
.case-next .eyebrow { color:#343d1d; }
.case-next .eyebrow::before { background:#343d1d; }
.case-next h2 { font:900 clamp(48px,8vw,144px)/1 "Archivo",sans-serif; text-transform:uppercase; letter-spacing:-.06em; margin:28px 0; max-width:15ch; }
.case-next .text-link { display:inline-block; color:#11130d; border-color:#11130d; margin-bottom:44px; }
.case-next img { width:100%; height:auto; display:block; }
.case-start { display:flex; justify-content:space-between; align-items:center; padding:60px var(--case-space); gap:24px; }
.case-start p { font-size:clamp(18px,2vw,28px); }
.case-start .btn { background:#11130d; color:#f4f4ed; }
.gallery-is-open { overflow:hidden; }
.gallery-dialog { border:0; padding:20px; margin:auto; width:96vw; max-width:1800px; height:94dvh; max-height:94dvh; background:#0b0c09; color:#efefe9; overflow:hidden; }
.gallery-dialog::backdrop { background:rgba(0,0,0,.9); }
.gallery-dialog[open] { display:flex; flex-direction:column; }
.gallery-toolbar,.gallery-navigation { display:flex; justify-content:space-between; align-items:center; gap:20px; flex-shrink:0; }
.gallery-toolbar p { font-size:14px; }
.gallery-dialog button,.gallery-navigation a { min-height:48px; min-width:48px; border:1px solid #4c5141; padding:12px 18px; background:transparent; color:inherit; cursor:pointer; font:inherit; font-size:12px; }
.gallery-dialog button:hover,.gallery-navigation a:hover { background:var(--lime); color:#10110d; }
.gallery-stage { flex:1; min-height:0; display:flex; align-items:center; justify-content:center; padding:20px 0; touch-action:pan-y pinch-zoom; }
.gallery-stage img { max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; }
.case-motion-ready .case-reveal { opacity:.35; transform:translateY(25px); transition:opacity .8s ease,transform .8s ease; }
.case-motion-ready .case-in-view { opacity:1; transform:none; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) { .gallery-open:hover img { transform:scale(1.015); } }
@media(max-width:700px) {
 .case-page { --case-space:22px; }
 .case-hero { padding-top:115px; }
 .case-title-row { display:block; }
 .case-title-row h1 { font-size:clamp(44px,12vw,80px); }
 .case-title-row .case-long-name { font-size:clamp(32px,10vw,70px); }
 .case-back { display:inline-block; margin-top:24px; }
 .case-deck { display:block; margin:28px 0; }
 .case-deck .wk-pills { max-width:none; justify-content:flex-start; margin-top:24px; }
 .case-story { grid-template-columns:1fr; gap:28px; padding-top:64px; padding-bottom:64px; }
 .case-overview { margin-top:40px; }
 .case-gallery { display:block; }
 .case-figure,.case-figure:nth-child(2) { width:100%; margin:0 0 34px; }
 .case-showcase { padding-bottom:30px; }
 .gallery-hint { bottom:8px; right:8px; padding:9px; font-size:10px; }
 .case-related { padding-top:64px; padding-bottom:64px; }
 .case-related>div { grid-template-columns:1fr; gap:40px; }
 .case-next-link { padding-top:60px; }
 .case-start { display:block; padding-top:40px; padding-bottom:40px; }
 .case-start .btn { margin-top:24px; }
 .gallery-dialog { width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; padding:16px; }
 .gallery-toolbar { align-items:flex-start; }
 .gallery-toolbar p { font-size:12px; padding-top:12px; }
 .gallery-navigation { flex-wrap:wrap; gap:12px; }
 .gallery-navigation a { order:3; width:100%; text-align:center; }
}
@media(prefers-reduced-motion:reduce) {
 .case-motion-ready .case-reveal { opacity:1; transform:none; transition:none; }
 .gallery-open img { transform:none!important; transition:none; }
 .case-cover { transform:none; }
}
