.vw-case { --vw-gap:clamp(2rem,4vw,3.5rem); --vw-surface:#f1f2f3; }
html:has(.vw-case) { scrollbar-gutter:stable; }
.vw-case ::selection { background:#3a75bb; color:#fff; }
.vw-case .case-hero { padding-top:clamp(5rem,10vh,8rem); }
.vw-case .back-link { margin-bottom:0; }
.vw-case .case-head { margin-top:clamp(2.75rem,5vw,4.25rem); }
.vw-title { font-size:clamp(2.8rem,5.6vw,5.6rem); line-height:1.04; letter-spacing:-.035em; margin-bottom:2rem; }
.vw-case .case-head .lead { margin:0; }
.vw-case .main-col { min-width:0; }
.vw-case figure { margin:0; min-width:0; }
.vw-hero-art img { display:block; width:100%; height:auto; aspect-ratio:16/9; }
.vw-case .source-section .lead { margin:0; }
.vw-solution { padding-top:0; }
.vw-strategy { display:grid; gap:1.5rem; margin-top:2.5rem; }
.vw-strategy p { font-size:var(--fs-body); line-height:1.55; max-width:70ch; }
.vw-strategy strong { font-weight:500; }
.vw-section { padding-block:clamp(4rem,7vw,7rem); }
.vw-soft { background:var(--vw-surface); }
.vw-section-head { margin-bottom:var(--vw-gap); }
.vw-section-head .main-col { display:grid; gap:1.5rem; }
.vw-section-head h2 { font-size:var(--fs-h2); font-weight:400; line-height:1.08; letter-spacing:-.03em; text-wrap:balance; overflow-wrap:break-word; }
.vw-section-head .lead { margin:0; max-width:65ch; }
.vw-gallery,.vw-posters,.vw-brochures { display:grid; gap:1.5rem; }
.vw-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
.vw-posters { grid-template-columns:repeat(3,minmax(0,1fr)); }
.vw-brochures { margin-top:1.5rem; }
.vw-artwork { display:block; position:relative; cursor:zoom-in; }
.vw-artwork img { display:block; width:100%; height:auto; }
.vw-enlarge { position:absolute; bottom:1rem; right:1rem; display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:#fff; color:#0b0b0b; opacity:0; transition:opacity .18s ease; }
.vw-enlarge svg { width:22px; height:22px; }
.vw-artwork:hover .vw-enlarge,.vw-artwork:focus-visible .vw-enlarge { opacity:1; }
.vw-case a:focus-visible,.vw-case button:focus-visible,.vw-case select:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
.vw-video-chooser { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; margin-bottom:2rem; }
.vw-video-chooser label { font-size:var(--fs-small); color:var(--muted); }
.vw-video-chooser select { min-height:48px; max-width:100%; border:1px solid var(--line); border-radius:0; background:#fff; color:var(--ink); padding:.75rem 2rem .75rem 1rem; font:inherit; cursor:pointer; }
.vw-video { display:block; width:100%; height:auto; aspect-ratio:16/9; background:#152838; }
.vw-video-note { margin-top:1rem; font-size:var(--fs-small); color:var(--muted); }
.vw-video-error { margin-top:1rem; font-size:var(--fs-body); }
.vw-video-error a { text-decoration:underline; text-underline-offset:.2em; }
.vw-results { color:#fff; background:var(--ink); }
.vw-results .rail-label { color:#b9b9b9; }
.vw-results-list { list-style:none; display:grid; gap:1.75rem; }
.vw-results-list li { padding-top:1.5rem; border-top:1px solid #383838; }
.vw-results-list p { font-size:var(--fs-body); color:#d2d2d2; line-height:1.55; }
.vw-results-list strong { display:block; font-size:var(--fs-lead); line-height:1.25; font-weight:400; color:#fff; margin-bottom:.75rem; }
.vw-closing { margin:var(--vw-gap) 0 0; }
.vw-donor { padding-block:clamp(3rem,5vw,5rem); }
.vw-donor p { font-size:var(--fs-small); color:var(--muted); line-height:1.6; max-width:75ch; }
.vw-case .footer-col { min-width:0; }
.vw-case .footer-col h3 { font-size:var(--fs-label); font-weight:400; color:rgba(255,255,255,.5); margin-bottom:1.1rem; }
.vw-case .footer-col a[href^="mailto:"] { overflow-wrap:anywhere; }
.vw-case.vw-viewer-open { overflow:hidden; }
.vw-lightbox { width:min(96vw,1800px); height:calc(100dvh - 32px); max-width:none; max-height:none; padding:0; margin:auto; border:0; background:#fff; color:#0b0b0b; overflow:hidden; }
.vw-lightbox[open] { display:flex; flex-direction:column; }
.vw-lightbox::backdrop { background:rgba(0,0,0,.88); }
.vw-lightbox-stage { flex:1; min-height:0; display:flex; align-items:center; justify-content:center; overflow:auto; overscroll-behavior:contain; scrollbar-color:#777 #ededed; touch-action:pan-x pan-y pinch-zoom; }
.vw-lightbox-stage img { flex-shrink:0; display:block; width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; }
.vw-lightbox-stage img[hidden] { display:none; }
.vw-lightbox[data-zoomed="true"] .vw-lightbox-stage { align-items:flex-start; justify-content:flex-start; }
.vw-lightbox[data-zoomed="true"] img { width:var(--vw-natural-width); max-width:none; max-height:none; }
.vw-lightbox-toolbar { display:flex; flex:none; align-items:center; justify-content:space-between; gap:1rem; padding:1rem; border-top:1px solid #d3d3d3; font-size:16px; }
.vw-lightbox-controls { display:flex; gap:.5rem; }
.vw-lightbox button { display:grid; place-items:center; min-width:44px; min-height:44px; border:1px solid #d3d3d3; border-radius:50%; background:#fff; color:#0b0b0b; cursor:pointer; }
.vw-lightbox button:hover,.vw-lightbox button[aria-pressed="true"] { background:#0b0b0b; color:#fff; }
.vw-lightbox button:disabled { opacity:.4; cursor:wait; }
.vw-lightbox button svg { width:22px; height:22px; }
.vw-lightbox-status { position:absolute; top:1rem; left:1rem; padding:.4rem .7rem; background:#fff; font-size:16px; }
.vw-lightbox-status:empty { display:none; }
@media (max-width:1100px) {
  .vw-gallery { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:760px) {
  .vw-posters { grid-template-columns:minmax(0,1fr); }
  .vw-video-chooser { align-items:stretch; flex-direction:column; margin-bottom:1.5rem; }
  .vw-video-chooser select { width:100%; font-size:16px; }
  .vw-enlarge { opacity:1; }
  .vw-lightbox { width:100vw; height:100dvh; }
  .vw-lightbox-toolbar { padding:1rem; padding-bottom:max(1rem,env(safe-area-inset-bottom)); }
  .vw-lightbox-controls { gap:.35rem; }
}
@media (max-width:480px) {
  .vw-case .footer-top { grid-template-columns:minmax(0,1fr); }
}
@media (prefers-reduced-motion:reduce) {
  .vw-enlarge { transition:none; }
}
