/* Dedicated gallery styles; the academic homepage keeps its existing theme. */
:root { color-scheme: light; --paper:#fafafa; --ink:#202420; --muted:#697069; --line:#d9ddd7; --accent:#536443; --gutter:clamp(20px,4vw,72px); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; font-size:16px; -webkit-font-smoothing:antialiased; }
button,a { -webkit-tap-highlight-color:transparent; }
a { color:inherit; text-decoration:none; }
button { font:inherit; cursor:pointer; }
a:focus-visible,button:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
.site-header,main { width:100%; max-width:1920px; margin-inline:auto; padding-inline:var(--gutter); }
.site-header { min-height:96px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.wordmark { font-size:18px; font-weight:600; letter-spacing:-.5px; }
.wordmark span { font-weight:400; }
.home-link { font-size:14px; display:flex; gap:12px; align-items:center; }
.home-link:hover { text-decoration:underline; text-underline-offset:5px; }
.home-link span { font-size:22px; }
.intro { border-top:1px solid var(--line); padding:54px 0 46px; display:flex; align-items:flex-end; justify-content:space-between; gap:30px; }
.eyebrow { text-transform:uppercase; letter-spacing:.17em; font-size:12px; margin:0 0 21px; color:var(--muted); }
h1 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(54px,8.4vw,140px); font-weight:400; letter-spacing:-.065em; line-height:1.04; margin:0; }
.title-period { color:var(--accent); }
.intro-note { margin:0 0 6px; color:var(--muted); line-height:1.6; font-size:15px; }
.collections { border-top:1px solid var(--line); padding:22px 0 24px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.collection-links { display:flex; flex-wrap:wrap; align-items:center; gap:12px 27px; }
.collection-links a { color:var(--muted); padding:6px 0; font-size:14px; position:relative; line-height:1.4; }
.collection-links a::after { content:''; position:absolute; height:1px; background:currentColor; bottom:0; left:0; right:0; transform:scaleX(0); transform-origin:left; transition:transform .18s ease; }
.collection-links a:hover,.collection-links a[aria-current="true"] { color:var(--ink); }
.collection-links a[aria-current="true"]::after,.collection-links a:hover::after { transform:scaleX(1); }
sup { font-size:10px; margin-left:3px; vertical-align:super; }
.collection-type { color:var(--muted); font-size:12px; text-align:right; }
.gallery { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-start; outline:none; }
.photo { display:block; position:relative; overflow:hidden; background:#e9ebe7; flex:1 1 240px; aspect-ratio:var(--ratio); min-width:0; }
.photo[hidden] { display:none; }
.photo img { display:block; width:100%; height:100%; object-fit:contain; transition:filter .25s ease; }
.photo-caption { position:absolute; inset:auto 0 0; padding:32px 18px 15px; display:flex; align-items:center; justify-content:space-between; gap:12px; color:white; background:linear-gradient(transparent,rgba(0,0,0,.68)); font-size:13px; opacity:0; transition:opacity .2s ease; pointer-events:none; }
.photo:hover .photo-caption,.photo:focus-visible .photo-caption { opacity:1; }
.photo-caption span:last-child { font-size:23px; }
.gallery-footer { border-top:1px solid var(--line); margin-top:52px; padding:28px 0 38px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:20px; font-size:13px; color:var(--muted); }
.gallery-footer span:last-child { width:100%; font-size:12px; }
.gallery-footer a:hover { color:var(--ink); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; z-index:3; top:10px; left:20px; background:var(--ink); color:white; padding:12px; transform:translateY(-200%); }
.skip-link:focus { transform:translateY(0); }
body.viewer-open { overflow:hidden; }
.lightbox { border:0; padding:0; margin:0; width:100%; max-width:none; height:100dvh; max-height:none; background:#111310; color:#f5f5f1; }
.lightbox::backdrop { background:#111310; }
.lightbox[open] { display:grid; grid-template-columns:80px minmax(0,1fr) 80px; grid-template-rows:76px minmax(0,1fr) auto; }
.viewer-top { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 32px; font-size:14px; }
.lightbox button { color:inherit; background:transparent; border:0; min-width:48px; min-height:48px; }
.lightbox a:focus-visible,.lightbox button:focus-visible { outline-color:#d7e9c4; }
.viewer-close { display:flex; align-items:center; gap:15px; }
.viewer-close span { font-size:30px; font-weight:300; }
.viewer-arrow { font-size:42px; align-self:center; color:#ccc; }
.viewer-figure { margin:0; min-height:0; min-width:0; display:flex; align-items:center; justify-content:center; position:relative; touch-action:pan-y pinch-zoom; }
.viewer-image { display:block; width:100%; height:100%; object-fit:contain; }
.viewer-image.is-loading { opacity:.4; }
.viewer-error { position:absolute; padding:20px; background:#111310; text-align:center; }
.viewer-error a { text-decoration:underline; }
.viewer-bottom { grid-column:1/-1; display:grid; grid-template-columns:1fr auto; padding:20px 32px 22px; gap:8px 20px; align-items:center; }
.viewer-bottom p { margin:0; font-size:14px; line-height:1.5; }
#viewer-count { font-size:13px; font-variant-numeric:tabular-nums; }
#viewer-help { color:#a7ada3; font-size:12px; grid-column:1/-1; }
#viewer-help span { margin-inline:8px; }
@media(min-width:1800px) { .intro { padding-top:66px; } }
@media(max-width:1000px) { .collection-type { display:none; } .intro-note { font-size:14px; } }
@media(max-width:600px) {
  .site-header { min-height:78px; gap:12px; } .wordmark { font-size:16px; } .wordmark span { display:none; } .home-link { font-size:12px; gap:6px; }
  .intro { padding:36px 0 30px; display:block; } h1 { font-size:clamp(44px,11.3vw,70px); } .eyebrow { font-size:11px; margin-bottom:17px; } .intro-note { margin-top:18px; } .intro-note br { display:none; }
  .collections { padding:16px 0 20px; } .collection-links { gap:8px 18px; } .collection-links a { font-size:13px; }
  .gallery { gap:8px; } .photo { flex-basis:140px; } .gallery-footer { margin-top:32px; }
  .lightbox[open] { grid-template-columns:44px minmax(0,1fr) 44px; grid-template-rows:64px minmax(0,1fr) auto; }
  .viewer-top { padding:8px 16px; } .viewer-figure { grid-column:1/-1; grid-row:2; } .viewer-prev { grid-column:1; grid-row:2; z-index:1; } .viewer-next { grid-column:3; grid-row:2; z-index:1; }
  .lightbox .viewer-arrow { min-width:40px; background:rgba(17,19,16,.48); text-shadow:0 1px 3px #000; }
  .viewer-bottom { padding:18px 16px max(18px,env(safe-area-inset-bottom)); } #viewer-help { font-size:11px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; } }
