.case-dialog { --case-paper:#f2f1ed; --case-ink:#292e27; --case-muted:#7b8173; --case-line:#d5d8cd; background:var(--case-paper); color:var(--case-ink); overflow-y:auto; overscroll-behavior:contain; scroll-behavior:auto; font-family:Satoshi,Manrope,Arial,sans-serif; }
.case-dialog .detail-body { opacity:0; transition:opacity .4s ease; }
.case-dialog .detail-body.is-ready { opacity:1; }
.case-page { position:relative; min-height:100%; }
.case-page button { border:0; background:none; border-radius:0; padding:0; color:inherit; font:inherit; cursor:pointer; }
.case-page h1,.case-page h2,.case-page h3,.case-page p,.case-page figure,.case-page dl,.case-page dd { margin:0; }
.case-page h1:focus { outline:none; }
.case-header { position:absolute; inset:0 0 auto; z-index:2; height:84px; padding:0 4vw; display:flex; align-items:center; justify-content:space-between; color:white; }
.case-page .case-back { display:flex; align-items:center; gap:12px; border:1px solid #ffffff50; background:#1b281b45; border-radius:30px; padding:6px 17px 6px 6px; font-size:9px; letter-spacing:.06em; min-height:42px; transition:background .25s; }
.case-back > span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#ffffff17; font-size:19px; transition:transform .25s; }
.case-back:hover { background:#1b281b80; }.case-back:hover > span { transform:translateX(-3px); }
.case-page .case-back:focus-visible { outline:2px solid white; outline-offset:4px; }
.case-brand { position:absolute; left:50%; transform:translateX(-50%); width:140px; }.case-brand img { width:100%; height:auto; filter:brightness(0) invert(1); }
.case-index { font-size:10px; letter-spacing:.07em; }
.case-hero { position:relative; height:88svh; min-height:570px; max-height:1000px; overflow:hidden; color:white; background:#283025; }
.case-hero-photo { width:100%; height:100%; object-fit:cover; object-position:center; }
.case-hero-shade { position:absolute; inset:0; background:linear-gradient(180deg,#09150b4d,transparent 35%,#09150b15 50%,#09150b99); }
.case-hero-copy { position:absolute; left:5vw; right:5vw; bottom:110px; }
.case-hero-copy > span { font-size:10px; letter-spacing:.08em; }
.case-hero-copy h1 { font-size:clamp(48px,7vw,112px); font-weight:400; letter-spacing:-.065em; line-height:1.05; max-width:1100px; margin:16px 0 22px; }
.case-hero-bottom { position:absolute; left:5vw; right:5vw; bottom:30px; display:flex; justify-content:space-between; }
.case-hero-bottom button { display:flex; align-items:center; gap:20px; font-size:9px; letter-spacing:.07em; min-height:44px; }
.case-hero-bottom button span { font-size:25px; }
.case-eyebrow { font-size:9px; color:var(--case-muted); letter-spacing:.1em; line-height:1.5; }
.case-information { padding:85px 5vw 70px; max-width:1700px; margin:auto; }
.case-story { display:grid; grid-template-columns:1fr 1.8fr; gap:8vw; }
.case-story h2 { margin-top:23px; font-size:clamp(38px,4vw,64px); line-height:1.07; font-weight:400; letter-spacing:-.05em; }
.case-lead { font-size:clamp(23px,2.5vw,38px); line-height:1.3; letter-spacing:-.035em; text-wrap:pretty; }
.case-overview { max-width:630px; font-size:13px; color:var(--case-muted); line-height:1.8; margin-top:25px!important; }
.case-facts { margin-top:60px; }
.case-section-top { display:flex; align-items:center; justify-content:space-between; padding-bottom:18px; border-bottom:1px solid var(--case-line); }
.case-section-top h2 { font-size:18px; font-weight:400; letter-spacing:-.02em; }.case-section-top > span { color:var(--case-muted); font-size:10px; }
.case-facts dl { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0 30px; }
.case-facts dl > div { padding:22px 0; border-bottom:1px solid var(--case-line); }
.case-facts dt { font-size:8px; color:var(--case-muted); letter-spacing:.05em; margin-bottom:11px; }
.case-facts dd { font-size:14px; line-height:1.5; }
.case-facts-wide { grid-column:span 2; }
.case-gallery-section { padding:40px 5vw 85px; background:#e7e9e0; }
.case-gallery-heading { display:grid; grid-template-columns:1fr 1fr auto; align-items:end; gap:30px; padding:15px 0 38px; }
.case-gallery-heading h2 { margin-top:20px; font-size:clamp(36px,4.2vw,64px); font-weight:400; line-height:1.08; letter-spacing:-.05em; }
.case-gallery-heading > p { color:var(--case-muted); font-size:12px; line-height:1.7; padding-bottom:4px; }
.case-gallery-current { color:var(--case-muted); font-size:12px; padding-bottom:6px; }
.case-card-stack { position:relative; display:grid; gap:38px; padding-bottom:40px; }
.case-scene { position:sticky; top:calc(20px + var(--scene-index) * 9px); height:clamp(480px,80svh,760px); z-index:calc(var(--scene-index) + 1); --scene-scale:1; --scene-dim:1; }
.case-scene-surface { height:100%; display:flex; flex-direction:column; background:var(--case-paper); border:1px solid #ced2c4; border-radius:4px; box-shadow:0 12px 45px #26351b0d; overflow:hidden; transform:scale(var(--scene-scale)); filter:brightness(var(--scene-dim)); transform-origin:top center; }
.case-scene-top { flex:0 0 43px; display:flex; align-items:center; justify-content:space-between; padding:0 24px; font-size:9px; color:var(--case-muted); border-bottom:1px solid var(--case-line); }
.case-scene-interior { display:grid; grid-template-columns:minmax(0,3fr) minmax(220px,1fr); flex:1; min-height:0; padding:16px; gap:24px; }
.case-page .case-scene-media { position:relative; display:block; min-height:0; height:100%; background:#e1e4d9; overflow:hidden; width:100%; }
.case-scene-media img { width:100%; height:100%; object-fit:contain; opacity:0; transform:scale(1.025); transition:opacity .6s ease,transform 1.1s cubic-bezier(.2,.7,.2,1); }
.case-scene.is-photo-loaded .case-scene-media img { opacity:1; transform:scale(1); }
.case-scene.is-portrait .case-scene-interior { grid-template-columns:minmax(0,1.6fr) minmax(220px,1fr); }
.case-scene-zoom { position:absolute; bottom:18px; right:18px; width:36px; height:36px; display:grid; place-items:center; background:#f2f1eddf; border-radius:50%; font-size:22px; opacity:0; transition:opacity .25s; }
.case-scene-media:hover .case-scene-zoom,.case-scene-media:focus-visible .case-scene-zoom { opacity:1; }
.case-scene-copy { display:flex; flex-direction:column; justify-content:space-between; padding:18px 12px 16px 0; }
.case-scene-number { display:block; font-size:clamp(64px,8vw,128px); font-weight:300; line-height:1; color:#c3cbb7; letter-spacing:-.07em; margin-bottom:18px; }
.case-scene-copy h3 { font-size:clamp(24px,2.5vw,38px); font-weight:400; letter-spacing:-.045em; margin-bottom:15px; }
.case-scene-copy p { max-width:230px; color:var(--case-muted); font-size:12px; line-height:1.7; }
.case-scene-copy button { display:flex; align-items:center; justify-content:space-between; font-size:9px; min-height:44px; border-bottom:1px solid #b7bfab; letter-spacing:.06em; }
.case-scene-copy button > span { font-size:25px; transition:transform .25s; }.case-scene-copy button:hover > span { transform:translate(3px,-3px); }
.case-location { max-width:1700px; margin:auto; padding:75px 5vw; display:grid; grid-template-columns:1fr 1.4fr; gap:7vw; align-items:center; }
.case-location-copy h2 { font-size:clamp(29px,3vw,44px); line-height:1.13; letter-spacing:-.04em; font-weight:400; margin:22px 0; max-width:500px; }
.case-location-copy p { color:var(--case-muted); font-size:12px; line-height:1.7; }
.case-location-copy a { display:flex; align-items:center; justify-content:space-between; width:190px; border-bottom:1px solid #aab39d; padding:14px 0; margin-top:25px; font-size:9px; }.case-location-copy a > span { font-size:24px; }
.case-map { height:340px; overflow:hidden; border:1px solid var(--case-line); border-radius:4px; background:#e5e8dd; }.case-map iframe { width:100%; height:100%; border:0; filter:grayscale(.65) saturate(.5); }
.case-footer { padding:0 5vw 24px; background:var(--case-paper); }
.case-closing { display:grid; grid-template-columns:1.2fr 1fr; border-top:1px solid var(--case-line); border-bottom:1px solid var(--case-line); }
.case-invitation { padding:50px 40px 50px 0; }
.case-invitation h2 { font-size:clamp(34px,3.5vw,54px); letter-spacing:-.05em; line-height:1.12; font-weight:400; margin:25px 0 30px; }
.case-invitation a { display:inline-flex; align-items:center; gap:50px; padding:12px 0; border-bottom:1px solid #aab39d; font-size:9px; }.case-invitation a span { font-size:24px; }
.case-page .case-next { display:flex; flex-direction:column; align-items:start; text-align:left; justify-content:space-between; gap:25px; padding:50px 0 40px 45px; border-left:1px solid var(--case-line); position:relative; overflow:hidden; }
.case-next-label { color:var(--case-muted); font-size:9px; letter-spacing:.05em; }
.case-next img { width:100%; height:125px; object-fit:cover; object-position:center; transition:transform .5s; }
.case-next:hover img { transform:scale(1.02); }
.case-next-bottom { display:flex; align-items:center; justify-content:space-between; width:100%; gap:20px; font-size:clamp(29px,3vw,43px); line-height:1.12; letter-spacing:-.045em; }
.case-next-bottom > span:last-child { font-size:36px; transition:transform .3s; }.case-next:hover .case-next-bottom > span:last-child { transform:translate(4px,-4px); }
.case-footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:25px; font-size:8px; color:var(--case-muted); }
.case-footer-bottom button { font-size:9px; color:var(--case-ink); min-height:36px; }
.case-reveal.motion-ready { opacity:0; transform:translateY(15px); transition:opacity .7s ease,transform .85s cubic-bezier(.2,.7,.2,1); }.case-reveal.motion-ready.is-visible { opacity:1; transform:none; }
.case-lightbox { position:fixed; inset:0; width:100%; height:100%; max-width:none; max-height:none; border:0; padding:70px 5vw 90px; background:#181d16fa; color:white; overflow:hidden; }.case-lightbox::backdrop { background:#181d16; }.case-lightbox > img { display:block; width:100%; height:100%; object-fit:contain; }.case-lightbox button { color:inherit; background:none; border:0; cursor:pointer; font:inherit; }.case-lightbox-close { position:absolute; right:4vw; top:25px; font-size:10px!important; padding:10px!important; }.case-lightbox-controls { position:absolute; bottom:25px; left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:28px; font-size:11px; }.case-lightbox-controls button { width:42px; height:38px; border:1px solid #ffffff40; font-size:24px; }
.case-dialog .detail-transition { z-index:10; }.case-dialog .detail-transition img { filter:none; }
@media(max-width:900px) {
 .case-facts dl { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .case-scene-interior,.case-scene.is-portrait .case-scene-interior { grid-template-columns:minmax(0,2fr) minmax(180px,1fr); gap:15px; }
 .case-story { gap:5vw; }
 .case-gallery-heading { grid-template-columns:1fr auto; }.case-gallery-heading > p { display:none; }
}
@media(max-width:600px) {
 .case-header { height:75px; padding:0 5vw; }.case-brand { width:105px; }.case-page .case-back { font-size:7px; gap:6px; padding-right:12px; }.case-index { display:none; }.case-brand { left:auto; right:5vw; transform:none; }
 .case-hero { height:84svh; min-height:550px; }.case-hero-copy { bottom:115px; }.case-hero-copy h1 { font-size:52px; }.case-hero-copy > span { font-size:9px; }.case-hero-bottom button { font-size:8px; gap:10px; }
 .case-information { padding-top:55px; padding-bottom:40px; }.case-story { grid-template-columns:1fr; gap:30px; }.case-story h2 { font-size:40px; }.case-story h2 br { display:none; }.case-lead { font-size:25px; }.case-overview { font-size:12px; }
 .case-facts { margin-top:40px; }.case-facts dl { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; }.case-facts dd { font-size:12px; }.case-facts dt { font-size:7px; }.case-facts dl > div { padding:18px 0; }
 .case-gallery-section { padding-top:25px; padding-bottom:40px; }.case-gallery-heading { gap:15px; padding-bottom:28px; }.case-gallery-heading h2 { font-size:35px; }.case-gallery-current { font-size:10px; }
 .case-card-stack { gap:25px; }.case-scene { top:calc(12px + var(--scene-index) * 5px); height:76svh; min-height:530px; max-height:740px; }
 .case-scene-top { padding:0 14px; font-size:8px; flex-basis:36px; }
 .case-scene-interior,.case-scene.is-portrait .case-scene-interior { display:flex; flex-direction:column; padding:10px; gap:0; }
 .case-page .case-scene-media { flex:1; min-height:0; }
 .case-scene-copy { flex:0 0 108px; display:grid; grid-template-columns:1fr auto; align-items:end; padding:14px 4px 0; gap:10px; }.case-scene-copy > .case-eyebrow { display:none; }.case-scene-copy > div { align-self:center; }.case-scene-number { display:none; }.case-scene-copy h3 { font-size:25px; margin-bottom:5px; }.case-scene-copy p { font-size:9px; line-height:1.5; }.case-scene-copy button { font-size:7px; gap:20px; align-self:center; }.case-scene-zoom { opacity:1; width:30px; height:30px; bottom:10px; right:10px; }
 .case-location { padding:45px 5vw; grid-template-columns:1fr; gap:28px; }.case-location-copy h2 { font-size:33px; }.case-map { height:260px; }
 .case-closing { grid-template-columns:1fr; }.case-invitation { padding:35px 0; }.case-invitation h2 { font-size:39px; }.case-page .case-next { border-left:0; border-top:1px solid var(--case-line); padding:30px 0; min-height:180px; }.case-next img { height:140px; }.case-next-bottom { font-size:31px; }
 .case-footer-bottom { flex-wrap:wrap; font-size:7px; gap:12px; }.case-lightbox { padding:65px 10px 90px; }
}
@media(prefers-reduced-motion:reduce) { .case-dialog *, .case-dialog *::before,.case-dialog *::after { animation:none!important; transition:none!important; }.case-reveal.motion-ready { opacity:1; transform:none; }.case-scene { position:relative; top:0; }.case-scene-surface { transform:none; filter:none; }.case-scene-media img { transform:none; } }
@media(max-width:600px) {
 .case-scene { height:auto; min-height:0; max-height:none; }
 .case-scene-surface { height:auto; }
 .case-page .case-scene-media { flex:0 0 auto; height:auto; aspect-ratio:1.15; }
 .case-scene.is-portrait .case-scene-media { aspect-ratio:.8; }
 .case-scene-media img { position:absolute; inset:0; }
}

/* Photographic spreads replace the overlapping card stack. */
.case-gallery-section { background:var(--case-paper); }
.case-card-stack { display:flex; flex-direction:column; gap:clamp(60px,9vw,140px); }
.case-scene { position:relative; top:auto; height:auto; min-height:0; max-height:none; width:100%; }
.case-scene-surface { height:auto; background:transparent; border:0; border-radius:0; box-shadow:none; transform:none; filter:none; }
.case-scene-top { padding:0 0 16px; flex-basis:auto; border-bottom:0; }
.case-scene-interior,.case-scene.is-portrait .case-scene-interior { display:grid; grid-template-columns:minmax(0,3fr) minmax(170px,1fr); padding:0; gap:30px; }
.case-page .case-scene-media { height:auto; aspect-ratio:1.45; background:transparent; }
.case-scene.is-portrait .case-scene-media { aspect-ratio:.8; }
.case-scene-media img { position:absolute; inset:0; object-fit:contain; }
.case-scene-copy { padding:12px 0; }
@media(min-width:801px) {
 .case-scene:nth-child(3n+1) { width:91%; margin-right:auto; }
 .case-scene:nth-child(3n+2) { width:76%; margin-left:auto; }
 .case-scene:nth-child(3n) { width:96%; margin-left:auto; }
 .case-scene:nth-child(even) .case-scene-interior { grid-template-columns:minmax(170px,1fr) minmax(0,3fr); }
 .case-scene:nth-child(even) .case-scene-copy { grid-column:1; grid-row:1; }
 .case-scene:nth-child(even) .case-scene-media { grid-column:2; grid-row:1; }
}
@media(max-width:600px) {
 .case-scene-interior,.case-scene.is-portrait .case-scene-interior { display:flex; gap:0; }
 .case-scene-copy { flex-basis:auto; min-height:105px; }
}
