/* All gallery surfaces inherit the site's time-of-day and appearance palette. */
html:has(.lightbox.open){overflow:hidden}
.lightbox{background:radial-gradient(ellipse at 20% 20%,var(--ambient-a),transparent 65%),var(--paper);color:var(--ink)}
.lightbox.open{grid-template-rows:auto minmax(0,1fr);overflow:hidden;padding:0}
.gallery-viewer-toolbar{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;padding-top:max(12px,env(safe-area-inset-top));border-bottom:1px solid var(--line);background:var(--panel-solid);box-shadow:0 3px 0 color-mix(in srgb,var(--ink) 8%,transparent);z-index:4}
.gallery-artwork-navigation{display:flex;align-items:center;justify-content:center;gap:12px}
.lightbox .gallery-viewer-toolbar button{position:static;inset:auto;display:inline-flex;align-items:center;justify-content:center;gap:9px;width:auto;height:auto;min-height:48px;min-width:48px;padding:10px 16px;border:1px solid color-mix(in srgb,var(--ink) 32%,var(--line));border-radius:8px;background:var(--paper-2);color:var(--ink);box-shadow:0 3px 0 color-mix(in srgb,var(--ink) 10%,transparent);font:600 14px/1.2 var(--sans);cursor:pointer;touch-action:manipulation;white-space:nowrap}
.lightbox .gallery-viewer-toolbar button:hover:not(:disabled){background:var(--panel-solid);border-color:var(--accent)}
.lightbox .gallery-viewer-toolbar button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.lightbox .gallery-viewer-toolbar button:disabled{opacity:.4;box-shadow:none;cursor:default}
.gallery-viewer-toolbar button span{font-size:23px;font-weight:400;line-height:1}
.gallery-viewer-toolbar [data-artwork-position]{min-width:105px;text-align:center;color:var(--muted);font:500 13px/1.3 var(--sans)}
.lightbox .lightbox-art{grid-row:2;grid-column:1;display:grid;grid-template-rows:minmax(0,1fr) auto auto;align-items:center;overflow:hidden;padding:18px 0 0}
/* Reserve side gutters for photo controls: buttons never cover the artwork.
   Keep the square image stage and saved detail crops unchanged. */
.lightbox-media{position:relative;isolation:isolate;box-sizing:border-box;width:min(calc(100% - 32px),calc(100dvh - 76px));padding-inline:62px;margin:auto;min-width:0;max-height:100%;border-radius:4px}
.lightbox .lightbox-stage{width:100%;height:auto;aspect-ratio:1;min-height:0;padding:0;overflow:hidden;display:grid;place-items:center}
.lightbox .lightbox-stage img,.lightbox .lightbox-stage video{max-height:100%;max-width:100%;width:100%;height:100%;object-fit:contain}
.lightbox .lightbox-stage video{background:var(--paper-2)}
.lightbox .lightbox-stage .photo-detail{width:100%;height:100%;max-width:100%;max-height:100%;aspect-ratio:1}
.lightbox .lightbox-stage .photo-detail>img{height:var(--detail-height);width:var(--detail-width);max-height:none;max-width:none;object-fit:fill}
.gallery-photo-navigation{position:absolute;inset:0;pointer-events:none;z-index:2}
.lightbox .gallery-photo-navigation button{position:absolute;top:50%;bottom:auto;transform:translateY(-50%);display:grid;place-items:center;width:50px;height:50px;min-width:46px;min-height:46px;padding:12px;border:1px solid #ffffffde;border-radius:50%;background:color-mix(in srgb,#fff9ec 94%,var(--accent));color:#203840;box-shadow:0 3px 9px #0005,0 0 0 1px #18313955;pointer-events:auto;cursor:pointer;touch-action:manipulation}
.lightbox .gallery-photo-navigation .lightbox-prev{left:0;right:auto}
.lightbox .gallery-photo-navigation .lightbox-next{right:0;left:auto}
.gallery-photo-navigation svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.lightbox .gallery-photo-navigation button:hover:not(:disabled){background:#fffdf5;box-shadow:0 4px 14px #0006,0 0 0 2px #fffc}
.lightbox .gallery-photo-navigation button:focus-visible{outline:3px solid var(--accent);outline-offset:4px;box-shadow:0 0 0 4px var(--paper),0 3px 9px #0005}
.lightbox .gallery-photo-navigation button:disabled{visibility:hidden;pointer-events:none}
.gallery-photo-status{display:flex;justify-content:center;align-items:center;gap:8px;padding:12px 18px 0;color:var(--muted);font:500 13px/1.4 var(--sans)}
.lightbox .lightbox-caption{margin:0;padding:6px 20px 20px;font-size:14px;line-height:1.4;color:var(--muted)}
.lightbox .lightbox-community{grid-row:2;grid-column:2;padding:28px 24px 35px;min-height:0;background:var(--panel-solid);border-color:var(--line);color:var(--ink)}
.lightbox .lightbox-community h2,.lightbox .comment-person,.lightbox .gallery-comments label,.lightbox .comment-preview strong{color:var(--ink)}
.lightbox .lightbox-community .eyebrow,.lightbox .gallery-comments a,.lightbox .comment-preview a,.lightbox .lightbox-response a{color:var(--accent)}
.lightbox .lightbox-response,.lightbox .lightbox-response span,.lightbox .comment-preview p,.lightbox .gallery-comment p,.lightbox .gallery-comment time,.lightbox .gallery-comments .community-status{color:var(--muted)}
.lightbox .lightbox-response,.lightbox .lightbox-community [data-art-comments],.lightbox .gallery-comment{border-color:var(--line)}
.lightbox .gallery-comments textarea{border-color:var(--line);background:var(--paper);color:var(--ink)}
.lightbox .gallery-comments .comment-submit,.lightbox .gallery-comments .comment-delete,.lightbox .lightbox-music button{border-color:var(--line);background:var(--paper-2);color:var(--ink)}
.lightbox .gallery-comments .comment-submit:hover,.lightbox .gallery-comments .comment-delete:hover,.lightbox .lightbox-music button:hover{border-color:var(--accent);background:var(--panel-solid)}
.lightbox .gallery-comments textarea::placeholder{color:var(--muted);opacity:1}
.lightbox .gallery-comments .heart-button{color:var(--ink);border-color:var(--line);background:transparent}
.lightbox .gallery-comments .heart-button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}
.lightbox .gallery-comments [data-comment-count]{color:var(--muted)}
.lightbox .gallery-comments .community-status.error{color:var(--ink);border-left:3px solid var(--accent);padding-left:10px}
@media(max-width:1100px){.gallery-viewer-toolbar{gap:8px;padding-inline:12px}.gallery-artwork-navigation{gap:8px}.lightbox .gallery-viewer-toolbar button{padding-inline:11px}.gallery-viewer-toolbar [data-artwork-position]{min-width:85px;font-size:12px}}
@media(max-width:900px){
  .lightbox.open{display:block;overflow-y:auto;overscroll-behavior:contain;padding-bottom:env(safe-area-inset-bottom)}
  .gallery-viewer-toolbar{position:sticky;top:0;display:grid;grid-template-columns:1fr auto;gap:9px;padding:10px 12px;padding-top:max(10px,env(safe-area-inset-top))}
  .gallery-viewer-toolbar [data-gallery-return]{justify-self:start}
  .gallery-viewer-toolbar .lightbox-close{grid-column:2;grid-row:1;justify-self:end}
  .gallery-artwork-navigation{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:1fr auto 1fr;gap:8px}
  .lightbox .lightbox-art{display:block;overflow:visible;padding-top:16px}
  .lightbox-media{width:min(calc(100% - 28px),calc(56dvh + 124px),704px);max-height:none}
  .lightbox .lightbox-community{padding:24px 22px 40px;overflow:visible}
  .lightbox .lightbox-community h2,.lightbox .lightbox-community .eyebrow{display:block}
}
@media(max-width:540px){
  .gallery-artwork-navigation{grid-template-columns:1fr 1fr;column-gap:10px;row-gap:7px}
  .gallery-artwork-navigation [data-artwork-position]{grid-row:2;grid-column:1/-1;font-size:12px}
  .gallery-artwork-navigation [data-artwork-next]{grid-column:2;grid-row:1}
  .lightbox .gallery-viewer-toolbar button{font-size:13px;padding:10px 11px;min-height:46px;gap:6px}
  .lightbox-media{width:min(calc(100% - 20px),calc(52dvh + 104px));padding-inline:52px}
  .lightbox .gallery-photo-navigation button{width:46px;height:46px;padding:10px}
  .lightbox .lightbox-caption{padding-bottom:16px}
}
@media(max-height:500px) and (orientation:landscape){.lightbox.open{overflow-y:auto;grid-template-rows:auto auto}.lightbox-media{width:min(calc(100% - 24px),calc(65dvh + 124px));max-height:none}.lightbox .lightbox-art{overflow:visible}.lightbox .lightbox-community{overflow:visible}.lightbox.open .gallery-viewer-toolbar{position:static}}

/* Compact archive controls and a touch-friendly filmstrip below the photograph. */
.filter-bar{display:flex;justify-content:flex-start;align-items:center;gap:20px;margin-bottom:24px}
.filter-bar .view-toggle{flex:0 0 auto}
.filter-bar .view-toggle button{width:48px;min-height:46px}
.filter-bar .gallery-count{display:block;margin-top:4px}
.lightbox .lightbox-art{grid-template-rows:auto auto auto;align-content:center}
.lightbox-media{width:min(calc(100% - 32px),calc(100dvh - 210px))}
.lightbox .lightbox-caption{padding-bottom:8px;text-align:center}
.gallery-thumbnails{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:6px;width:min(100% - 28px,740px);margin:0 auto;padding:2px 0 12px;min-width:0}
.gallery-thumbnails[hidden]{display:none}
.gallery-thumbnail-track{display:flex;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding:5px 3px 9px;min-width:0;position:relative}
.lightbox .gallery-thumbnail{position:relative;inset:auto;transform:none;flex:0 0 82px;width:82px;height:82px;min-width:82px;padding:3px;border:1px solid var(--line);border-radius:7px;background:var(--panel-solid);color:var(--ink);overflow:hidden;cursor:pointer;touch-action:manipulation;opacity:.78}
.lightbox .gallery-thumbnail:hover{opacity:1;border-color:var(--accent)}
.lightbox .gallery-thumbnail[aria-pressed=true]{opacity:1;outline:2px solid var(--accent);outline-offset:1px;box-shadow:0 2px 8px color-mix(in srgb,var(--ink) 18%,transparent)}
.lightbox .gallery-thumbnail:focus-visible{outline:3px solid var(--ink);outline-offset:1px}
.gallery-thumbnail>img,.gallery-thumbnail>video{display:block;width:100%;height:100%;object-fit:cover;border-radius:3px}
.gallery-thumbnail .photo-detail{display:block;width:100%;height:100%;position:relative;overflow:hidden;border-radius:3px}
.gallery-thumbnail .photo-detail>img{position:absolute;width:var(--detail-width);height:var(--detail-height);left:var(--detail-left);top:var(--detail-top);max-width:none;max-height:none}
.thumbnail-number{position:absolute;bottom:4px;right:4px;min-width:19px;padding:1px 4px;background:#102a32d9;color:white;border-radius:3px;font:600 11px/1.4 var(--sans)}
.thumbnail-video{position:absolute;inset:0;display:grid;place-items:center;color:white;text-shadow:0 1px 5px #000;font-size:24px;pointer-events:none}
.lightbox .thumbnail-scroll{position:static;inset:auto;transform:none;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper-2);color:var(--ink);font:30px/1 var(--sans);cursor:pointer;touch-action:manipulation}
.lightbox .thumbnail-scroll:disabled{opacity:.25;cursor:default}
.lightbox .thumbnail-scroll:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.gallery-thumbnails:not(.has-overflow) .thumbnail-scroll{visibility:hidden}
.gallery-thumbnails:not(.has-overflow) .gallery-thumbnail-track{justify-content:center}
@media(max-width:900px){.lightbox-media{width:min(calc(100% - 28px),calc(56dvh + 124px),704px)}}
@media(max-width:540px){.filter-bar{gap:14px}.gallery-thumbnails{width:calc(100% - 20px);gap:4px;grid-template-columns:40px minmax(0,1fr) 40px}.lightbox .thumbnail-scroll{width:40px;height:44px}.lightbox .gallery-thumbnail{flex-basis:72px;width:72px;height:72px;min-width:72px}.lightbox-media{width:min(calc(100% - 20px),calc(52dvh + 104px))}}
@media(max-height:500px) and (orientation:landscape){.lightbox-media{width:min(calc(100% - 24px),calc(65dvh + 124px))}}

/* Keep the photo, one-line caption and scrolling thumbnails together. */
.lightbox .lightbox-stage>img,.lightbox .lightbox-stage>video{object-position:center bottom}
.gallery-photo-summary{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;width:min(calc(100% - 28px),740px);margin:4px auto 0;color:var(--muted)}
.gallery-photo-summary .gallery-photo-status{flex:0 0 auto;padding:0;white-space:nowrap;font-size:14px;line-height:1.4}
.lightbox .gallery-photo-summary .lightbox-caption{flex:0 1 auto;min-width:0;margin:0;padding:0;font-size:14px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gallery-photo-summary .lightbox-caption::before{content:"·";margin-right:8px}

/* Give the photograph the available height without an empty square frame. */
.lightbox .lightbox-art{--gallery-photo-height:max(220px,calc(100dvh - 258px));align-content:start;align-items:start;padding-top:8px}
.lightbox .lightbox-media{width:fit-content;max-width:calc(100% - 24px);max-height:none;margin:0 auto;padding-inline:62px}
.lightbox .lightbox-stage{display:flex;justify-content:center;align-items:flex-start;width:auto;height:auto;aspect-ratio:auto;max-height:none}
.lightbox .lightbox-stage>img,.lightbox .lightbox-stage>video{display:block;width:auto;height:auto;max-width:100%;max-height:var(--gallery-photo-height);object-fit:contain;object-position:center}
.lightbox .lightbox-stage>.photo-detail{flex:0 1 auto;width:var(--gallery-photo-height);height:auto;max-width:100%;max-height:none;aspect-ratio:1}
.gallery-thumbnails{width:min(calc(100% - 24px),920px)}
.lightbox .gallery-thumbnail{flex-basis:110px;width:110px;height:110px;min-width:110px}
@media(max-width:900px){
  .lightbox .lightbox-art{--gallery-photo-height:62dvh;padding-top:8px}
  .lightbox .lightbox-media{max-width:calc(100% - 16px)}
}
@media(max-width:540px){
  .lightbox .lightbox-art{--gallery-photo-height:56dvh;padding-top:6px}
  .lightbox .lightbox-media{padding-inline:48px;max-width:calc(100% - 12px)}
  .lightbox .gallery-photo-navigation button{width:44px;height:44px;min-width:44px;min-height:44px}
  .lightbox .gallery-thumbnail{flex-basis:96px;width:96px;height:96px;min-width:96px}
  .gallery-thumbnails{width:calc(100% - 16px)}
}
@media(max-height:500px) and (orientation:landscape){
  .lightbox .lightbox-art{--gallery-photo-height:65dvh}
}

/* Match the site's 16px reading size. Widen only into unused photo gutters. */
@media(min-width:901px){
  .lightbox.open{grid-template-columns:minmax(0,1fr) var(--viewer-copy-width,350px)}
}
.lightbox .lightbox-community{font-size:1rem;line-height:1.65;padding:24px 24px 28px}
.lightbox .comment-preview p,.lightbox .gallery-comment p,.lightbox .gallery-comments label,.lightbox .gallery-comments [data-comment-count],.lightbox .gallery-comments .community-status{font-size:1rem;line-height:1.65}
.lightbox .comment-preview>a{font-size:1rem;line-height:1.5}
.lightbox .lightbox-response{font-size:.875rem;line-height:1.5;padding-block:12px;margin-top:18px}
.lightbox .comment-preview strong{font-size:1.5rem;line-height:1.25}
.lightbox .comment-person strong{font-size:1rem;line-height:1.4}
.lightbox .public-membership,.lightbox .gallery-comment time{font-size:.875rem;line-height:1.5}
.lightbox .lightbox-community [data-art-comments]{margin-top:20px;padding-top:18px}
.lightbox .gallery-heart-row{gap:12px;flex-wrap:wrap}
.lightbox .gallery-comments h3{font-size:1.5rem;line-height:1.25}
.lightbox .gallery-comments .heart-button,.lightbox .gallery-comments .comment-submit,.lightbox .gallery-comments .comment-delete{font-size:1rem;line-height:1.25;min-height:44px}
.lightbox .comment-actions{flex-wrap:wrap;gap:8px}
.lightbox .gallery-comments textarea{height:46px;min-height:46px;max-height:180px;padding:10px 12px;font:400 1rem/24px var(--sans);resize:vertical}
.lightbox .gallery-comments label{gap:6px}
.lightbox .gallery-comments .comment-submit{margin-top:8px}
.lightbox .gallery-comments .community-status:empty{display:none}
.lightbox .gallery-photo-summary .lightbox-caption,.lightbox .gallery-photo-summary .gallery-photo-status{font-size:1rem;line-height:1.4}
.lightbox .gallery-viewer-toolbar button{font-size:.9375rem}
.gallery-viewer-toolbar [data-artwork-position]{font-size:.875rem}
@media(max-width:540px){
  .lightbox .lightbox-community{padding:20px 20px 28px}
  .lightbox .gallery-viewer-toolbar button{font-size:.875rem}
  .lightbox .gallery-photo-summary .lightbox-caption,.lightbox .gallery-photo-summary .gallery-photo-status{font-size:.9375rem}
}
