/* A responsive visual portfolio: natural image ratios and a touch-first viewer. */
.visual-gallery{background:#f5f3ee;padding-top:94px;padding-bottom:78px}
.gallery-intro{display:grid;grid-template-columns:1.25fr 1fr;align-items:end;gap:50px;margin-bottom:52px}
.gallery-intro .section-kicker{margin-bottom:27px;color:#798071}
.gallery-intro h2{font-size:clamp(60px,6.6vw,100px);line-height:1.02;letter-spacing:-.055em}
.gallery-intro h2 em{color:#7a806e}
.gallery-intro-aside{justify-self:end;max-width:340px;padding-bottom:5px}
.gallery-edition{display:flex;gap:20px;align-items:center;margin-bottom:23px}
.gallery-edition>span{font-family:var(--serif);font-size:61px;letter-spacing:-.07em;line-height:1;color:#838775}
.gallery-edition>p{font-size:7px;letter-spacing:.13em;line-height:1.9;color:#838775;border-left:1px solid #bfc3b5;padding-left:19px}
.gallery-intro-aside>p{font-size:12px;line-height:1.9;color:#666f65}
.gallery-intro-note{display:block;margin-top:13px;font-size:9px;color:#919486}
.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:25px;position:sticky;top:75px;z-index:43;background:#f5f3eef5;backdrop-filter:blur(16px);border-top:1px solid #ced1c5;border-bottom:1px solid #ced1c5;padding:12px 0}
.gallery-filters{display:flex;align-items:center;gap:23px;min-width:0;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.gallery-filters::-webkit-scrollbar{display:none}
.gallery-filters button{padding:11px 0;flex-shrink:0;font-size:10px;white-space:nowrap;color:#7d8478;position:relative;min-height:42px;transition:color .25s}
.gallery-filters button:after{content:'';position:absolute;bottom:4px;left:0;right:100%;height:1px;background:#293a32;transition:right .3s}
.gallery-filters button.is-active{color:#293a32}
.gallery-filters button.is-active:after,.gallery-filters button:hover:after{right:0}
.gallery-filters sup{font-size:7px;color:#959b8c;margin-left:5px;top:-.3em;position:relative}
.gallery-view-switch{display:flex;gap:3px;flex-shrink:0;border-left:1px solid #ced1c5;padding-left:17px}
.gallery-view-switch button{width:40px;height:40px;display:grid;place-items:center;color:#9b9e91;border:1px solid transparent;transition:background .25s,color .25s}
.gallery-view-switch button.is-active{background:#e7e9df;color:#334332;border-color:#d9ddcf}
.gallery-view-switch svg{width:19px;height:19px}
.gallery-meta{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:8px;color:#8b9283;padding:19px 0 24px}
.gallery-meta>span{letter-spacing:.1em;font-size:7px;display:flex;gap:9px;align-items:center}
.gallery-meta i{font-style:normal;font-size:16px}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 22px;align-items:start}
.gallery-grid.is-masonry{grid-auto-rows:1px;row-gap:0}
.visual-gallery[data-view="large"] .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.gallery-card{padding:0;min-width:0;display:block;align-self:start;text-align:left;background:none;position:relative;width:100%;border:0}
.gallery-card:focus-visible{outline-offset:5px}
.gallery-tile{display:block;width:100%}
.gallery-image-wrap{display:block;position:relative;aspect-ratio:var(--gallery-ratio);overflow:hidden;background:#dcded1}
.gallery-image-wrap img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1);transition:transform 1.1s cubic-bezier(.2,.65,.2,1),filter .6s;filter:saturate(.94)}
.gallery-card:hover .gallery-image-wrap img{transform:scale(1.045);filter:saturate(1)}
.gallery-kind{position:absolute;top:13px;left:13px;font-size:6px;letter-spacing:.13em;text-transform:uppercase;background:#f3efe7e6;backdrop-filter:blur(8px);padding:6px 9px;color:#4b5648;z-index:1;max-width:calc(100% - 26px)}
.gallery-card[data-kind="application"] .gallery-kind{background:#273a30e6;color:#e9ebdc}
.gallery-open{display:grid;place-items:center;position:absolute;bottom:15px;right:15px;width:44px;height:44px;border-radius:50%;background:#f5f0e7e8;color:#2d3c32;font-size:24px;transform:translateY(12px);opacity:0;transition:opacity .4s,transform .4s}
.gallery-card:hover .gallery-open,.gallery-card:focus-visible .gallery-open{opacity:1;transform:translateY(0)}
.gallery-caption{display:flex;align-items:start;justify-content:space-between;gap:12px;padding:15px 0 8px}
.gallery-caption-copy{display:block;min-width:0}
.gallery-caption strong{display:block;font-family:var(--serif);font-size:23px;font-weight:400;letter-spacing:-.02em;line-height:1.25;color:#344036}
.gallery-caption small{display:block;font-size:8px;color:#929786;margin-top:7px}
.gallery-number{font-size:7px;font-weight:400;color:#9aa08e;line-height:2;padding-top:2px}
.gallery-more{display:flex;align-items:center;flex-direction:column;gap:21px;margin-top:25px;padding-top:30px;border-top:1px solid #d1d5c8}
#gallery-visible-info{font-size:8px;color:#909987;letter-spacing:.07em}
#gallery-load-more{display:flex;align-items:center;justify-content:space-between;gap:45px;min-width:280px;padding:17px 21px;border:1px solid #8e9b7e;background:transparent;transition:background .3s,color .3s;text-align:left;font-size:11px}
#gallery-load-more:hover{background:#2e4032;color:#f2efe5}
#gallery-remaining{display:block;font-size:8px;margin-top:4px;opacity:.6}
.gallery-more-icon{font-family:var(--serif);font-size:31px;font-weight:400;line-height:1}
.gallery-video-link{font-size:9px;display:flex;align-items:center;gap:22px;color:#76846d;padding:6px 0}
.gallery-video-link span{font-size:20px}
.gallery-lightbox{position:fixed;inset:0;margin:0;padding:0;border:0;max-width:none;max-height:none;width:100vw;height:100svh;height:100dvh;color:#efeee5;background:#15221e;overflow:hidden;box-shadow:none}
.gallery-lightbox[open]{display:grid;grid-template-rows:70px minmax(0,1fr) auto 86px;animation:gallery-dialog-in .25s ease-out}
.gallery-lightbox::backdrop{background:#15221e;backdrop-filter:none}
.gallery-lightbox-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 32px;border-bottom:1px solid #c9d0b51f;z-index:3;min-width:0}
.gallery-lightbox-brand{display:flex;align-items:center;gap:15px;font-size:8px;letter-spacing:.15em;color:#c9d1bc}
.gallery-lightbox-brand i{font-size:18px;color:#60705c;font-style:normal;font-weight:300}
.gallery-lightbox-counter{display:flex;gap:12px;align-items:baseline;margin-left:auto;margin-right:auto;font-size:10px;color:#8b9a85}
.gallery-lightbox-counter>span:first-child{font-family:var(--serif);font-size:24px;letter-spacing:-.03em;color:#e8deca}
.gallery-lightbox-counter i{font-style:normal;font-size:9px;color:#6a7a62}
.gallery-lightbox-actions{display:flex;gap:8px}
.gallery-lightbox-actions button{display:grid;place-items:center;min-width:42px;min-height:42px;border:1px solid #c8cdb430;color:#dddcc7;border-radius:50%;transition:background .2s}
.gallery-lightbox-actions button:hover,.gallery-lightbox-actions button[aria-pressed="true"]{background:#cbd0b51a}
.gallery-lightbox-actions svg{width:21px;height:21px}
.gallery-lightbox-body{position:relative;min-width:0;min-height:0;padding:20px 85px 0;overflow:hidden}
.gallery-stage{height:100%;width:100%;position:relative;display:grid;place-items:center;overflow:hidden;touch-action:pan-y pinch-zoom;overscroll-behavior:contain;background:#111d18}
.gallery-stage>img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;display:block;user-select:none;-webkit-user-drag:none;transition:opacity .24s ease,transform .45s ease}
.gallery-stage.is-loading>img{opacity:.25}
.gallery-stage.is-zoomed{display:block;overflow:auto;touch-action:pan-x pan-y pinch-zoom;cursor:zoom-out}
.gallery-stage.is-zoomed>img{width:auto;height:auto;max-width:none;max-height:none;min-width:100%;min-height:100%;object-fit:contain;transition:none}
.gallery-load-state{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;font-size:11px;color:#e5e3cb;background:#18291dd9;padding:9px 16px;max-width:80%;text-align:center;pointer-events:none}
.gallery-load-state:empty{display:none}
.gallery-prev,.gallery-next{position:absolute;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:43px;height:43px;border:1px solid #a6b49561;border-radius:50%;color:#d2d7c2;background:#25382ca6;z-index:3;transition:background .25s}
.gallery-prev{left:22px}.gallery-next{right:22px}
.gallery-prev:hover,.gallery-next:hover{background:#4c6045}
.gallery-prev:disabled,.gallery-next:disabled{opacity:.3}
.gallery-prev svg,.gallery-next svg{width:21px;height:21px}
.gallery-lightbox-info{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:20px 85px 16px;min-width:0}
.gallery-lightbox-title{min-width:0}
#gallery-viewer-category{font-size:7px;letter-spacing:.13em;color:#a4b396;margin-bottom:7px;text-transform:uppercase}
#gallery-viewer-title{font-size:26px;letter-spacing:-.025em;line-height:1.2;font-family:var(--serif)}
#gallery-viewer-provenance{font-size:9px;line-height:1.7;color:#a4b094;max-width:280px;margin-left:auto}
.gallery-swipe-hint{font-size:6px;letter-spacing:.12em;color:#8b9d7e;white-space:nowrap;display:flex;align-items:center;gap:10px}
.gallery-swipe-hint>span{font-size:21px}
.gallery-thumbnails{display:flex;align-items:center;gap:8px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#76866a #1b2a20;padding:6px 85px 17px;border-top:1px solid #c9d0b51f;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;min-width:0}
.gallery-thumb{position:relative;display:block;flex:0 0 66px;width:66px;height:51px;padding:3px;border:1px solid transparent;opacity:.5;transition:opacity .2s,border-color .2s}
.gallery-thumb.is-active,.gallery-thumb:hover{opacity:1}
.gallery-thumb.is-active{border-color:#d4c4a9}
.gallery-thumb img{width:100%;height:100%;display:block;object-fit:cover}
@keyframes gallery-dialog-in{from{opacity:0}to{opacity:1}}
@media(min-width:1600px){.gallery-grid{column-gap:28px}.gallery-caption strong{font-size:27px}.gallery-image-wrap .gallery-kind{font-size:7px}}
@media(max-width:1150px){.gallery-filters{gap:17px}.gallery-filters button{font-size:9px}.gallery-view-switch{padding-left:10px}.gallery-view-switch button{width:35px}.gallery-toolbar{gap:15px}.gallery-lightbox-brand{font-size:7px}}
@media(max-width:950px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}.gallery-intro{gap:35px}.gallery-intro h2{font-size:72px}.gallery-intro-aside{max-width:280px}.gallery-toolbar{gap:20px}.gallery-filters{gap:20px}.gallery-lightbox-body{padding:14px 65px 0}.gallery-lightbox-info{padding:17px 65px 15px;gap:25px}.gallery-lightbox-title{max-width:55%}.gallery-swipe-hint{display:none}.gallery-thumbnails{padding-left:65px;padding-right:65px}.gallery-prev{left:12px}.gallery-next{right:12px}}
@media(max-width:700px){.visual-gallery{padding:58px 18px 48px}.gallery-intro{display:grid;grid-template-columns:1.2fr .65fr;gap:18px;margin-bottom:30px;align-items:start}.gallery-intro .section-kicker{font-size:7px;letter-spacing:.12em;margin-bottom:25px;white-space:nowrap}.gallery-intro h2{font-size:49px;letter-spacing:-.06em;line-height:1.05}.gallery-intro-aside{padding-top:43px;justify-self:end;max-width:150px}.gallery-edition{gap:12px;margin-bottom:0;align-items:end}.gallery-edition>span{font-size:49px}.gallery-edition>p{font-size:5px;padding-left:10px;letter-spacing:.07em;line-height:2;border-color:#b9c2ad}.gallery-intro-aside>p{font-size:9px;line-height:1.8;margin-top:18px}.gallery-intro-aside>p br{display:none}.gallery-intro-note{font-size:7px;line-height:1.7;margin-top:8px}.gallery-toolbar{margin:0 -18px;padding:9px 18px;gap:12px;top:75px}.gallery-filters{gap:22px}.gallery-filters button{font-size:10px;padding:10px 0;min-height:44px}.gallery-filters sup{font-size:6px;margin-left:4px}.gallery-view-switch{gap:1px;padding-left:8px;margin-right:-5px}.gallery-view-switch button{width:34px;height:42px}.gallery-view-switch svg{width:17px;height:17px}.gallery-meta{font-size:7px;padding:16px 0 18px;gap:12px}.gallery-meta>span{font-size:5px;letter-spacing:.05em;gap:5px}.gallery-meta i{font-size:14px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px}.visual-gallery[data-view="large"] .gallery-grid{grid-template-columns:minmax(0,1fr)}.gallery-kind{top:8px;left:8px;font-size:5px;padding:4px 6px;letter-spacing:.07em;max-width:calc(100% - 16px)}.gallery-caption{padding:11px 0 3px;gap:8px}.gallery-caption strong{font-size:16px;line-height:1.24;letter-spacing:-.02em}.gallery-caption small{font-size:6px;line-height:1.6;margin-top:6px}.gallery-number{font-size:5px;padding-top:1px}.gallery-open{width:28px;height:28px;bottom:8px;right:8px;font-size:18px;opacity:1;transform:none}.visual-gallery[data-view="large"] .gallery-caption strong{font-size:24px}.visual-gallery[data-view="large"] .gallery-caption small{font-size:8px}.visual-gallery[data-view="large"] .gallery-kind{font-size:6px;top:13px;left:13px}.visual-gallery[data-view="large"] .gallery-open{width:37px;height:37px;font-size:22px;bottom:13px;right:13px}.gallery-more{margin-top:12px;padding-top:25px;gap:17px}#gallery-visible-info{font-size:7px}#gallery-load-more{min-width:245px;padding:15px 18px;font-size:11px}#gallery-remaining{font-size:7px}.gallery-more-icon{font-size:29px}.gallery-video-link{font-size:9px}.gallery-lightbox[open]{grid-template-rows:62px minmax(0,1fr) auto 78px}.gallery-lightbox-bar{padding:0 17px;gap:15px}.gallery-lightbox-brand{font-size:6px;gap:8px;letter-spacing:.08em}.gallery-lightbox-brand i{font-size:14px}.gallery-lightbox-counter{gap:7px;margin-right:4px;margin-left:auto;font-size:8px}.gallery-lightbox-counter>span:first-child{font-size:21px}.gallery-lightbox-actions{gap:6px}.gallery-lightbox-actions button{min-width:36px;min-height:36px}.gallery-lightbox-actions svg{width:19px;height:19px}.gallery-lightbox-body{padding:9px 0 0}.gallery-stage{background:#111d18;touch-action:pan-y pinch-zoom}.gallery-prev,.gallery-next{width:36px;height:44px;top:50%;border-radius:2px;border:0;background:#1e3329c9;backdrop-filter:blur(6px)}.gallery-prev{left:0}.gallery-next{right:0}.gallery-prev svg,.gallery-next svg{width:18px;height:18px}.gallery-lightbox-info{position:relative;display:block;padding:18px 20px 14px}.gallery-lightbox-title{max-width:none}#gallery-viewer-category{font-size:6px;letter-spacing:.1em;margin-bottom:6px}#gallery-viewer-title{font-size:23px;line-height:1.2}#gallery-viewer-provenance{font-size:8px;line-height:1.6;margin-top:8px;max-width:none}.gallery-swipe-hint{display:none}.gallery-thumbnails{padding:8px 18px 14px;gap:6px;scrollbar-width:none}.gallery-thumbnails::-webkit-scrollbar{display:none}.gallery-thumb{flex-basis:57px;width:57px;height:48px;padding:3px}.gallery-load-state{font-size:10px}.gallery-lightbox:focus-visible{outline-offset:-3px}}
@media(max-width:380px){.visual-gallery{padding-left:16px;padding-right:16px}.gallery-intro{grid-template-columns:1fr;gap:18px}.gallery-intro h2{font-size:48px}.gallery-intro-aside{display:flex;max-width:none;padding-top:0;justify-self:start;align-items:center;gap:22px}.gallery-edition>span{font-size:39px}.gallery-edition>p{font-size:4px;padding-left:8px}.gallery-intro-aside>p{font-size:8px;max-width:155px;margin:0}.gallery-intro-note{display:none}.gallery-toolbar{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}.gallery-caption strong{font-size:14px}.gallery-caption small{font-size:6px}.gallery-kind{font-size:4px;letter-spacing:.05em}.gallery-lightbox-brand{font-size:5px;gap:7px}.gallery-lightbox-bar{gap:9px;padding:0 12px}.gallery-lightbox-actions{gap:5px}.gallery-lightbox-actions button{min-width:34px;min-height:38px}.gallery-lightbox-counter>span:first-child{font-size:20px}.gallery-lightbox-counter{font-size:7px}#gallery-viewer-title{font-size:21px}.gallery-lightbox-info{padding:15px 16px 12px}}
@media(max-height:560px) and (min-width:701px){.gallery-lightbox[open]{grid-template-rows:52px minmax(0,1fr) auto 63px}.gallery-lightbox-bar{padding:0 20px}.gallery-lightbox-body{padding-top:8px}.gallery-lightbox-info{padding-top:9px;padding-bottom:8px}#gallery-viewer-title{font-size:21px}.gallery-thumb{height:40px;width:54px;flex-basis:54px}.gallery-thumbnails{padding-top:4px;padding-bottom:8px}.gallery-lightbox-actions button{min-height:36px;min-width:36px}}
@media(prefers-reduced-motion:reduce){.gallery-card,.gallery-image-wrap img,.gallery-stage>img,.gallery-lightbox[open]{animation:none!important;transition:none!important}.gallery-card:hover .gallery-image-wrap img{transform:none}}
@media(max-width:700px){.gallery-view-switch button{width:44px;height:44px}.gallery-lightbox-actions button{min-width:44px;min-height:44px}.gallery-prev,.gallery-next{width:44px;height:48px}}
.gallery-stage>img{position:absolute;inset:0}
.gallery-stage.is-zoomed>img{position:static;inset:auto}
.gallery-stage:not(.is-zoomed){cursor:grab}
.gallery-stage.is-dragging{cursor:grabbing}
