/* Scoped gallery styles shared with the standalone/Netlify preview. */
.visual-work { padding-block:clamp(56px,5vw,88px) clamp(80px,8vw,136px);scroll-margin-top:32px;border-top:1px solid var(--line) }
.visual-work-heading { display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:clamp(32px,4vw,60px) }
.visual-eyebrow { margin:0;color:var(--soft);font:500 .8125rem/1.6 "DM Mono",monospace;letter-spacing:.08em }
.visual-work-heading h2 { margin:16px 0 0;font-size:clamp(30px,3.6vw,58px);font-weight:500;line-height:1.25;letter-spacing:-.045em }
.visual-work-heading h2 span { color:var(--signal,#002fa7) }
.visual-work-note { margin:0;color:var(--soft);font-size:.9375rem;line-height:1.9 }
.visual-feature-row { display:grid;grid-template-columns:minmax(0,2.12fr) minmax(0,1fr);gap:clamp(24px,2.5vw,40px);align-items:start }
.visual-poster-row { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,2.5vw,40px);margin-top:clamp(48px,5vw,80px);align-items:start }
.visual-card { min-width:0;margin:0 }
.visual-art-trigger { position:relative;display:block;width:100%;border:0;padding:0;background:#111318;color:var(--white);cursor:zoom-in;text-align:left;appearance:none }
.visual-art-stage { display:grid;place-items:center;width:100%;aspect-ratio:3/4;overflow:hidden }
.visual-card-04 .visual-art-stage { aspect-ratio:4000/2667 }
.visual-card-05 .visual-art-stage { aspect-ratio:595/842 }
.visual-art-stage img { display:block;width:100%;height:100%;min-height:0;object-fit:contain }
.visual-card-05 .visual-art-stage img { max-width:595px }
.visual-view-label { position:absolute;right:12px;bottom:12px;display:flex;align-items:center;gap:20px;padding:10px 14px;background:rgba(9,11,14,.88);color:#fff;border:1px solid rgba(255,255,255,.3);font-size:.875rem;line-height:1.5;transition:background-color .2s ease,border-color .2s ease }
.visual-art-trigger:hover .visual-view-label,.visual-art-trigger:focus-visible .visual-view-label { background:var(--signal,#002fa7);border-color:var(--signal,#002fa7) }
.visual-art-trigger:focus-visible { outline:2px solid #fff;outline-offset:5px }
.visual-caption { padding-top:20px }
.visual-caption-title { display:flex;align-items:baseline;gap:12px }
.visual-number { color:var(--soft);font:400 .8125rem/1.6 "DM Mono",monospace }
.visual-caption h3 { margin:0;color:var(--white);font-size:clamp(20px,1.7vw,27px);font-weight:500;line-height:1.5 }
.visual-category { margin:7px 0 0;color:var(--soft);font:400 .75rem/1.7 "DM Mono",monospace;letter-spacing:.06em;overflow-wrap:anywhere }
.visual-detail { margin:9px 0 0;color:var(--soft);font-size:.9375rem;line-height:1.7 }
/* New-work viewer: full originals, legible caption and a real original-image link. */
.lightbox.visual-work-viewer .lightbox-frame { max-width:min(1600px,100%);width:100% }
.lightbox.visual-work-viewer .lightbox-frame > img { max-height:calc(100svh - 220px);width:auto;height:auto;max-width:100%;object-fit:contain }
.lightbox.visual-work-viewer .lightbox-frame > p { font-size:.875rem;line-height:1.7;letter-spacing:.02em }
.lightbox.visual-work-viewer .lightbox-close { position:static;align-self:flex-end;min-height:44px;margin-bottom:12px;padding:10px 16px;font-size:.875rem }
.visual-original-link { display:inline-flex;align-self:flex-start;align-items:center;min-height:44px;gap:12px;margin-top:4px;color:#edf0f1;font-size:.875rem;text-decoration:underline;text-underline-offset:5px }
.visual-original-link:hover { color:#a9bfff }
.visual-original-link:focus-visible { outline:2px solid #fff;outline-offset:3px }
.visual-load-status { color:var(--soft);font-size:.875rem;line-height:1.5 }
.visual-load-status[hidden] { display:none }
@media(max-width:1000px) {
  .visual-work-heading { align-items:start;flex-direction:column;gap:20px }
  .visual-poster-row { grid-template-columns:repeat(2,minmax(0,1fr)) }
}
@media(max-width:650px) {
  .visual-work { width:calc(100% - 40px);padding-block:48px 72px }
  .visual-feature-row,.visual-poster-row { grid-template-columns:minmax(0,1fr);gap:40px }
  .visual-poster-row { margin-top:40px }
  .visual-caption { padding-top:16px }
  .visual-work-viewer { padding:16px }
}
@media(prefers-reduced-motion:reduce) {
  .visual-view-label { transition:none }
  .visual-work-viewer { animation:none }
}
