.gallery-page{background:#fff}
.gallery-page main{min-height:70vh}
.art-index-heading{display:grid;grid-template-columns:1.4fr .6fr;align-items:end;gap:5vw;padding:7rem 6vw 5rem}
.art-index-heading h1{font-size:clamp(3.6rem,9vw,10rem);line-height:.86;letter-spacing:-.085em;margin:1.5rem 0 0}
.art-index-heading h1 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.07em}
.art-index-heading>p{max-width:25rem;color:#666;font-size:1.04rem;line-height:1.5}
.gallery-explorer{padding:0 1.1vw}
.gallery-toolbar{position:sticky;top:0;z-index:8;display:flex;justify-content:space-between;align-items:center;gap:2rem;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);padding:1rem 1vw;border-top:1px solid #171717;border-bottom:1px solid #d7d7d7}
.gallery-filters,.gallery-tools{display:flex;align-items:center;gap:1.4rem}
.gallery-filters button{border:0;background:transparent;padding:.45rem 0;color:#777;font:inherit;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;cursor:pointer}
.gallery-filters button[aria-pressed=true]{color:#111;border-bottom:1px solid #111}
.gallery-filters button span{font-size:.65rem;vertical-align:super;margin-left:.2rem}
.gallery-search input{border:0;border-bottom:1px solid #bdbdbd;border-radius:0;background:transparent;padding:.4rem 0;color:#111;font:inherit;font-size:.78rem;width:9rem;outline-offset:3px}
.gallery-zoom{display:flex;align-items:center;gap:.6rem;color:#777;font-size:.73rem;text-transform:uppercase;letter-spacing:.08em}
.gallery-zoom input{width:5rem;accent-color:#111}
.gallery-resultbar{display:flex;justify-content:space-between;padding:.8rem 1vw;color:#777;text-transform:uppercase;letter-spacing:.1em;font-size:.68rem}
.art-mosaic{--columns:7;display:grid;grid-template-columns:repeat(var(--columns),minmax(0,1fr));gap:3px;background:#111}
.art-tile-button{display:block;position:relative;aspect-ratio:1;border:0;padding:0;background:#1a1918;overflow:hidden;cursor:zoom-in}
.art-tile-button img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease,opacity .45s ease;opacity:.96}
.art-tile-button:hover img,.art-tile-button:focus-visible img{transform:scale(1.08);opacity:.72}
.art-tile-button span{position:absolute;inset:auto .5rem .5rem;color:#fff;text-align:left;font-size:.65rem;text-shadow:0 1px 8px #000;opacity:0;transition:opacity .2s;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.art-tile-button:hover span,.art-tile-button:focus-visible span{opacity:1}
.gallery-empty{text-align:center;padding:6rem 1rem}.art-index-end{margin:5rem 6vw 7rem}
.gallery-nojs{padding:2rem 1vw}.gallery-nojs-links{display:flex;flex-wrap:wrap;gap:1rem;padding:0 1vw 3rem}.gallery-nojs-links a{border-bottom:1px solid #111}
.art-dialog{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;padding:0;border:0;background:#f5f4f1;color:#111}
.art-dialog::backdrop{background:rgba(0,0,0,.7)}
.art-dialog-frame{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:1.2rem 2vw;gap:1rem}
.art-dialog-top,.art-dialog-info{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem}
.art-dialog-top{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}
.art-dialog-top button{border:0;background:transparent;color:#111;text-transform:uppercase;letter-spacing:.12em;cursor:pointer}
.art-dialog-image{min-height:0;display:grid;grid-template-columns:3rem minmax(0,1fr) 3rem;align-items:center;gap:1rem}
.art-dialog-image img{min-width:0;width:100%;height:100%;object-fit:contain}
.dialog-arrow{border:0;background:transparent;font:inherit;font-size:1.7rem;cursor:pointer}
.art-dialog-info{border-top:1px solid #ccc;padding-top:1rem;min-height:5.5rem}
.art-dialog-info h2{font-size:clamp(1.5rem,2.4vw,2.8rem);line-height:1;margin:0 0 .4rem}
.art-dialog-info p,.art-dialog-info a{font-size:.75rem;color:#666;text-transform:uppercase;letter-spacing:.08em}
.art-dialog-info>div:last-child{text-align:right}.art-dialog-info a{display:inline-block;margin-top:.7rem;border-bottom:1px solid #999;color:#111}
@media(max-width:1050px){.gallery-toolbar{align-items:flex-start;flex-direction:column;gap:.8rem}.gallery-tools{width:100%;justify-content:space-between}}
@media(max-width:760px){.art-index-heading{grid-template-columns:1fr;padding:5rem 5vw 3rem}.art-index-heading h1{font-size:clamp(3.7rem,15vw,7rem)}.gallery-explorer{padding:0}.gallery-toolbar{position:relative;padding:.9rem 4vw}.gallery-filters{width:100%;overflow:auto;gap:1.1rem}.gallery-filters button{font-size:.68rem}.gallery-zoom{display:none}.gallery-resultbar{padding:.8rem 4vw}.art-mosaic{--columns:3!important;gap:2px}.art-tile-button span{display:none}.art-dialog-frame{padding:1rem 3vw}.art-dialog-image{grid-template-columns:1.6rem minmax(0,1fr) 1.6rem;gap:.2rem}.art-dialog-info{gap:1rem}.art-dialog-info h2{font-size:1.3rem}.art-dialog-info p,.art-dialog-info a{font-size:.62rem}.art-index-end{margin:4rem 5vw}}
@media(max-width:760px){.gallery-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem .8rem;overflow:visible}.gallery-filters button{min-height:44px;font-size:.82rem;color:#555;text-align:left;white-space:normal}}
@media(prefers-reduced-motion:reduce){.art-tile-button img{transition:none}.art-tile-button:hover img{transform:none}}
/* Artwork viewer: the whole piece fits first; a second click reveals detail. */
.art-motion-badge{position:absolute;right:.55rem;top:.55rem;display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:rgba(255,255,255,.9);color:#111;font-size:.7rem;pointer-events:none}
.art-dialog{inset:0;margin:0;width:100dvw;height:100dvh;max-width:100dvw;max-height:100dvh;overflow:hidden}
.art-dialog-frame{height:100dvh;min-height:0;overflow:hidden;grid-template-rows:auto minmax(0,1fr) auto}
.art-dialog-top>div{display:flex;align-items:center;gap:1.4rem}
.art-dialog-top span{white-space:nowrap}.art-dialog-top #dialog-hint{color:#777}
.art-dialog-image{min-height:0;overflow:hidden}
.art-dialog-canvas{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;width:100%;height:100%;overflow:hidden}
.art-dialog-canvas img,.art-dialog-canvas video{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.art-dialog-canvas img{cursor:zoom-in;transform:scale(1);transform-origin:var(--zoom-x,50%) var(--zoom-y,50%);transition:transform .22s ease;user-select:none}
.art-dialog-canvas.is-zoomed img{transform:scale(2.35);cursor:zoom-out;touch-action:none}
.art-dialog-canvas [hidden],.art-dialog-top [hidden]{display:none!important}
.art-dialog-canvas video{background:#000}
.art-dialog-info{min-height:0}
@media(max-width:760px){.art-dialog-top>div{gap:.7rem}.art-dialog-top #dialog-hint{display:none}.art-dialog-image{grid-template-columns:1.4rem minmax(0,1fr) 1.4rem}.art-dialog-info{padding-bottom:.3rem}.art-dialog-info h2{max-width:60vw}}
@media(prefers-reduced-motion:reduce){.art-dialog-canvas img{transition:none}}
