/* SIAM portfolio: a compact masthead, a lit exhibition and curated albums. */
.gallery-page { position: relative; isolation: isolate; background: radial-gradient(ellipse 900px 640px at 50% 320px,#23435c45,transparent 75%),radial-gradient(ellipse 1100px 900px at 85% 850px,#32263b1c,transparent 80%),var(--navy); }
.gallery-heading { position: relative; overflow: hidden; padding: 12px var(--gutter) 14px; background: transparent; }
.gallery-heading-top { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 8px; }
.gallery-masthead { display: block; }
.gallery-heading .news-breadcrumb { margin: 0; font-size: 10px; color: #8ca8b8; }
.gallery-heading .section-tag { margin: 0; color: #7fadb9; font-size: 8px; letter-spacing: 2px; }
.gallery-title h1 { color: #f1f6f5; font-size: clamp(36px,3.4vw,48px); font-weight: 500; line-height: 1.14; letter-spacing: -1.3px; white-space: nowrap; }
.gallery-title h1 em { font-style: normal; color: #67d8d6; }
.gallery-title-rule { display: block; width: 58px; height: 2px; margin-top: 9px; background: linear-gradient(90deg,#ee5264 0 35%,#69d4d1 35% 100%); }

/* A digital art room: a curved wall of full photographs and museum labels. */
.gallery-exhibition { --gallery-card-width: clamp(244px,20.5vw,340px); --gallery-photo-height: clamp(112px,17vh,190px); position: relative; overflow: hidden; background: transparent; }
.gallery-stage { position: relative; overflow: hidden; padding-bottom: 10px; background: transparent; }
.gallery-toolbar { display: flex; justify-content: space-between; align-items: center; min-height: 38px; margin: 0 var(--gutter); padding: 5px 0; }
.gallery-toolbar > span { display: flex; align-items: center; gap: 10px; color: #a1bdcf; font-size: 8px; letter-spacing: 1.8px; }
.gallery-toggle { display: inline-flex; align-items: center; gap: 13px; min-height: 28px; padding: 5px 13px; border: 1px solid #9fc1d62b; border-radius: 25px; color: #afc9d8; background: #152c3e66; font: inherit; font-size: 9px; transition: color .25s,border-color .25s,background .25s; }
.gallery-toggle:hover { border-color: #9fe4df; color: #f1fff9; background: #234654; }
.gallery-row { position: relative; isolation: isolate; padding-top: 14px; }
.gallery-row + .gallery-row { margin-top: 8px; }
.gallery-row-controls { position: absolute; z-index: 6; top: -3px; right: var(--gutter); display: flex; align-items: center; gap: 9px; }
.gallery-row-controls button { width: 25px; height: 23px; display: grid; place-items: center; padding: 0; border: 1px solid #99b7cf29; border-radius: 50%; color: #a9c5d6; background: #0d2030; font: 14px/1 Arial,sans-serif; transition: border-color .2s,background .2s; }
.gallery-row-controls button:hover { border-color: #9fe5df; background: #274954; }
.gallery-dwell { width: 29px; height: 1px; overflow: hidden; background: #6c8ea333; }
.gallery-dwell i { display: block; height: 100%; transform: scaleX(0); transform-origin: left; background: #a4d5cf; }
.gallery-light { position: absolute; z-index: 3; top: 0; bottom: 30px; left: 50%; width: calc(var(--gallery-card-width) + 125px); max-width: 98vw; transform: translateX(-50%); pointer-events: none; }
.gallery-light::before { content: ''; position: absolute; top: -4px; left: 50%; width: 1px; height: 4px; background: #91aabb55; }
.gallery-light-fixture { position: absolute; z-index: 2; top: 0; left: 50%; width: 68px; height: 2px; transform: translateX(-50%); border-radius: 50%; background: #ebf8f5; box-shadow: 0 2px 9px #caeaff80,0 -2px 0 1px #273e50; transition: box-shadow .65s; }
.gallery-row[data-gallery-phase="holding"] .gallery-light-fixture { box-shadow: 0 2px 15px #d6f1ff90,0 6px 25px #a1c9f021,0 -2px 0 1px #30495c; }
.gallery-row[data-direction="1"] .gallery-light-fixture { background: #fff0e7; box-shadow: 0 2px 10px #ffdcc366,0 -2px 0 1px #3a3a4b; }
.gallery-light-beam { position: absolute; top: 2px; left: 0; width: 100%; height: calc(100% - 2px); opacity: .25; transition: opacity .65s; }
.gallery-row[data-gallery-phase="holding"] .gallery-light-beam { opacity: .65; }
.gallery-viewport { position: relative; overflow: hidden; padding: 10px 0 18px; }
.gallery-viewport::before,.gallery-viewport::after { content:''; position:absolute; z-index:5; top:0; bottom:0; width:12%; pointer-events:none; }
.gallery-viewport::before { left:0; background:linear-gradient(90deg,#05111b,transparent); }
.gallery-viewport::after { right:0; background:linear-gradient(270deg,#05111b,transparent); }
.gallery-track { display: flex; width: max-content; will-change: transform; }
.gallery-group { display: flex; align-items: flex-start; gap: 34px; padding-right: 34px; flex-shrink: 0; }
.gallery-card { position: relative; z-index: 1; flex: 0 0 auto; width: var(--gallery-card-width); padding: 0; border: 0; border-radius: 2px; color: #e7f1f5; background: transparent; text-align: center; opacity: .65; transform: perspective(1000px) scale(.9); transform-origin: center; transition: opacity .25s; }
.gallery-card::after { content: ''; position: absolute; z-index: -1; left: 10%; right: 10%; bottom: -11px; height: 17px; border-radius: 50%; background: radial-gradient(ellipse,#b4d9f317,transparent 70%); transform: perspective(180px) rotateX(55deg); pointer-events: none; }
.gallery-art { display: flex; align-items: center; justify-content: center; position: relative; height: calc(var(--gallery-photo-height) + 20px); padding: 9px; overflow: hidden; border: 1px solid #a8c6dc73; border-radius: 3px; background: linear-gradient(135deg,#41607a66,#14283c 28%,#102336 70%,#56718870); box-shadow: 0 9px 20px #020a164d,inset 0 0 0 3px #0a1728,inset 0 0 0 4px #d1e7f21a; }
.gallery-art picture { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; background: radial-gradient(ellipse at 50% 35%,#1c3047,#0d1b2b 85%); }
.gallery-art picture img { width: 100%; height: 100%; object-fit: contain; object-position: center; opacity: 1; }
.gallery-art::before { content: ''; position: absolute; z-index: 2; inset: 3px; border: 1px solid #d9edf51c; border-radius: 1px; pointer-events: none; }
.gallery-art::after { content: ''; position: absolute; z-index: 2; inset: 0; background: linear-gradient(128deg,#e4f5ff08,transparent 38%,#c6e9ff03 62%,transparent 78%); pointer-events: none; }
.gallery-sweep { position: absolute; z-index: 3; inset: -60% -80%; transform: translateX(-65%); opacity: 0; background: linear-gradient(108deg,transparent 44%,#e6fff111 49%,#d7fff825 50%,transparent 56%); pointer-events: none; }
.gallery-card.is-spotlit .gallery-sweep { animation: gallery-glass-shine 2.2s ease-out both; }
@keyframes gallery-glass-shine { 0% { opacity: 0; transform: translateX(-65%); } 25% { opacity: .55; } 100% { opacity: 0; transform: translateX(65%); } }
.gallery-art-corner { position: absolute; z-index: 4; right: 15px; top: 15px; display: grid; place-items: center; width: 23px; height: 23px; border: 1px solid #d4f2ef44; border-radius: 50%; background: #0a1b2d99; color: #e1f4f2; opacity: 0; font: 14px/1 Arial,sans-serif; transition: opacity .25s,background .25s; }
.gallery-caption { position: relative; z-index: 4; display: flex; flex-direction: column; height: 35px; margin-top: 8px; padding: 0 13px; color: #bfd2e0; background: none; pointer-events: none; }
.gallery-caption > span:first-child { display: none; }
.gallery-caption strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: inherit; font: 300 11px/1.45 Kanit,Arial,sans-serif; }
.gallery-caption-description { position: absolute; left: 12px; right: 12px; bottom: calc(100% + 10px); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; padding: 12px 14px; border: 1px solid #a9cad54d; border-radius: 4px; background: #081a2bf2; color: #d0e4ed; font-size: 10px; line-height: 1.6; opacity: 0; transform: translateY(6px); transition: opacity .25s,transform .25s; }
.gallery-caption-arrow { display: none; }
.gallery-card.is-spotlit .gallery-art { border-color: #c4e7e8bb; box-shadow: 0 9px 25px #0006,0 0 24px #92dfff0d,inset 0 0 0 3px #0a1728,inset 0 0 0 4px #dcf6ff33; }
.gallery-card.is-spotlit .gallery-caption { color: #e3f1f5; }
.gallery-card.is-expanded { z-index: 4; opacity: 1; transform: perspective(1000px) scale(1.065) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); transition: transform .3s cubic-bezier(.2,.7,.25,1),opacity .25s; }
.gallery-card.is-expanded .gallery-art { border-color: #c9fcf0; box-shadow: 0 14px 35px #0008,0 0 28px #93d7ff17,inset 0 0 0 3px #0a1728,inset 0 0 0 4px #c4f4ff44; }
.gallery-card.is-expanded .gallery-art::after { background: radial-gradient(circle at var(--pointer-x,50%) var(--pointer-y,30%),#def6ff1f,transparent 65%); }
.gallery-card.is-expanded .gallery-art-corner { opacity: 1; background: #132f42d9; }
.gallery-card.is-expanded .gallery-caption-description { opacity: 1; transform: translateY(0); }
.gallery-card:focus-visible { outline: 1px solid #b8e5ed; outline-offset: 5px; border-radius: 2px; }


.gallery-collections { padding: 66px var(--gutter) 50px; scroll-margin-top: 20px; background: transparent; }
.gallery-collection-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 45px; margin-bottom: 30px; }
.gallery-collection-heading .section-tag { margin: 0 0 14px; color: #76b9bd; font-size: 9px; letter-spacing: 2px; }
.gallery-collection-heading h2 { color: #e9f3f1; font-size: clamp(30px,3vw,40px); font-weight: 400; line-height: 1.22; letter-spacing: -.6px; }
.gallery-collection-heading h2 span { display: block; margin-top: 2px; color: #8caeb9; }
.gallery-collection-heading > p { max-width: 350px; margin-bottom: 3px; color: #9cb9c6; font-size: 13px; font-weight: 300; line-height: 1.8; }
.gallery-collection-grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); grid-auto-rows: 210px; gap: 18px; }
.gallery-project { position: relative; isolation: isolate; grid-column: span 3; display: block; min-width: 0; padding: 0; overflow: hidden; text-align: left; border: 1px solid #6d8d982e; border-radius: 11px; color: #fff; background: #0e2633; transition: border-color .35s,box-shadow .35s; }
.gallery-project-featured { grid-column: span 6; grid-row: span 2; }
.gallery-project picture { position: absolute; z-index: -2; inset: 0; display: block; }
.gallery-project picture img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; transition: transform .9s cubic-bezier(.2,.7,.25,1); }
.gallery-project::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg,#020a1622 0,transparent 30%,#03101dc9 76%,#03101df5); transition: opacity .4s; }
.gallery-project-count { position: absolute; top: 16px; left: 16px; padding: 5px 9px; border: 1px solid #d6ecea42; border-radius: 25px; background: #05152299; color: #ecf6f4; font-size: 9px; letter-spacing: .5px; }
.gallery-project-open { position: absolute; top: 15px; right: 15px; display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid #e2f2eb66; border-radius: 50%; background: #05152280; color: #e6f4ee; font: 19px/1 Arial,sans-serif; transition: transform .35s,background .35s,color .35s; }
.gallery-project-copy { position: absolute; bottom: 20px; left: 20px; right: 20px; display: flex; flex-direction: column; gap: 8px; }
.gallery-project-copy strong { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; color: #f4faf6; font: 400 16px/1.45 Kanit,Arial,sans-serif; }
.gallery-project-featured .gallery-project-copy { bottom: 29px; left: 28px; right: 28px; }
.gallery-project-featured .gallery-project-copy strong { max-width: 400px; font-size: 26px; line-height: 1.4; }
.gallery-project-eyebrow { color: #b4e6d6; font-size: 10px; letter-spacing: 1.6px; }
.gallery-project-description { max-width: 430px; color: #b6ccd1; font-size: 12px; font-weight: 300; line-height: 1.75; }
.gallery-project:hover,.gallery-project:focus-visible { border-color: #8be4d3bb; box-shadow: 0 12px 35px #0004; }
.gallery-project:hover picture img,.gallery-project:focus-visible picture img { transform: scale(1.055); }
.gallery-project:hover .gallery-project-open,.gallery-project:focus-visible .gallery-project-open { background: #a2e9d9; color: #09232c; transform: translate(2px,-2px); }
.gallery-outro { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 24px var(--gutter) 30px; border-top: 0; background: transparent; }
.gallery-outro > span { color: #789ba8; font-size: 9px; letter-spacing: 1.2px; }
.gallery-outro a { display: inline-flex; align-items: center; gap: 26px; color: #d8ecea; font-size: 15px; }
.gallery-outro a span { color: #89e0d5; font: 24px/1 Arial,sans-serif; transition: transform .25s; }
.gallery-outro a:hover span { transform: translate(3px,-3px); }

/* Shared brand partners. */
.footer-partners { text-align: center; border-top: 1px solid #20343f; background: #040f18; padding: 52px clamp(24px,4.2vw,80px) 60px; }
.partner-heading { margin-bottom: 42px; }
.partner-heading .footer-eyebrow { font-size: 9px; letter-spacing: 2px; margin: 0 0 8px; }
.partner-heading h2 { font-size: 21px; font-weight: 400; color: #d3e0e5; }
.partner-logos { display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: center; gap: 32px; max-width: 1680px; margin: 0 auto; padding: 8px 6px 18px; overflow-x: auto; overscroll-behavior-x: contain; }
.partner-logos img { flex: 0 0 180px; width: 180px; max-width: none; height: 68px; object-fit: contain; }
.partner-logos img.partner-symbol { flex-basis: 100px; width: 100px; }
.partner-logos[data-partners-auto="true"] { scroll-behavior: auto; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); mask-image: linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); }
.partner-logos[data-partners-auto="true"]::-webkit-scrollbar { display: none; height: 0; }
@media (min-width:801px) and (max-width:1100px) { .partner-logos { gap: 32px; } .partner-logos img { flex-basis: 160px; width: 160px; } }
@media (min-width:801px) and (max-width:1150px) { .nav { gap: 14px; } .nav a { font-size: 12px; } .header { gap: 17px; } .brand img { width: 155px; } }

/* Album lightbox follows the same gallery composition. */
.gallery-viewer-open { overflow: hidden; }
.gallery-viewer[hidden] { display: none; }
.gallery-viewer { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; padding: 26px; background: #020b13f2; }
.gallery-viewer-dialog { position: relative; display: grid; grid-template-columns: 1.7fr 1fr; width: 1160px; max-width: 100%; max-height: 94vh; overflow: auto; border: 1px solid #57758175; border-radius: 16px; background: #0c2230; box-shadow: 0 35px 100px #0008; }
.gallery-viewer:not([hidden]) .gallery-viewer-dialog { animation: gallery-viewer-arrive .38s cubic-bezier(.2,.7,.25,1) both; }
@keyframes gallery-viewer-arrive { from { opacity: .2; transform: translateY(14px) scale(.975); } to { opacity: 1; transform: none; } }
.gallery-viewer-close { position: absolute; z-index: 5; top: 14px; right: 14px; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 1px solid #96b6bd77; border-radius: 50%; background: #071622cc; color: #e2eeec; font: 300 24px/1 Arial,sans-serif; transition: border-color .25s,background .25s; }
.gallery-viewer-close:hover { border-color: #94e4d7; background: #1a4853; }
.gallery-viewer-visual { align-self: center; min-width: 0; background: #030d16; }
.gallery-viewer-photo { position: relative; display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 300px; height: min(58vh,560px); overflow: hidden; background: #030d16; }
.gallery-viewer-surface { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; overflow: hidden; touch-action: pan-y; }
.gallery-viewer-surface img { width: 100%; height: 100%; object-fit: contain; opacity: 0; transition: opacity .4s; user-select: none; }
.gallery-viewer-surface img.is-ready { opacity: 1; }
.gallery-viewer-photo.is-zoomed .gallery-viewer-surface { cursor: grab; touch-action: none; }
.gallery-viewer-photo.is-zoomed .gallery-viewer-surface:active { cursor: grabbing; }
.gallery-viewer-prev,.gallery-viewer-next { position: absolute; top: 50%; display: grid; place-items: center; margin-top: -21px; width: 40px; height: 40px; border: 1px solid #c0dfdc55; border-radius: 50%; background: #061521b8; color: #ebfff5; font: 22px/1 Arial,sans-serif; transition: background .2s; }
.gallery-viewer-prev { left: 14px; } .gallery-viewer-next { right: 14px; }
.gallery-viewer-prev:hover,.gallery-viewer-next:hover { background: #1d5159; }
.gallery-viewer-count { position: absolute; bottom: 13px; left: 50%; transform: translateX(-50%); padding: 7px 14px; border: 1px solid #b8d9cc29; border-radius: 25px; background: #051621c9; color: #e0f3eb; font: 400 10px/1.5 'Montserrat',Arial,sans-serif; letter-spacing: 1px; }
.gallery-viewer-loading { position: absolute; z-index: 3; top: 50%; left: 50%; transform: translate(-50%,-50%); max-width: 80%; padding: 12px 18px; border: 1px solid #315e6b; border-radius: 22px; background: #081b29ed; color: #afd5de; font-size: 12px; text-align: center; pointer-events: none; }
.gallery-viewer-loading[hidden] { display: none; }
.gallery-viewer-tools { display: flex; align-items: center; gap: 13px; padding: 12px 16px; border-top: 1px solid #2d495675; }
.gallery-viewer-tools button { display: inline-flex; align-items: center; gap: 8px; padding: 6px 10px; border: 1px solid #4e778466; border-radius: 25px; background: #122d3a; color: #c1e0e0; font: inherit; font-size: 11px; white-space: nowrap; }
.gallery-viewer-tools button:hover,.gallery-viewer-tools button[aria-pressed="true"] { color: #d5ffed; border-color: #8dd5c8; }
.gallery-slideshow-progress { flex: 1; height: 1px; overflow: hidden; background: #2a4650; }
.gallery-slideshow-progress i { display: block; height: 100%; background: #93e0ce; transform-origin: left; transform: scaleX(0); }
.gallery-viewer-thumbnails { position: relative; display: flex; gap: 8px; padding: 3px 16px 14px; overflow-x: auto; overscroll-behavior-x: contain; }
.gallery-viewer-thumbnails button { flex: 0 0 62px; width: 62px; height: 46px; padding: 2px; border: 1px solid #4d707c66; border-radius: 6px; background: #0b2430; opacity: .55; transition: opacity .2s,border-color .2s; }
.gallery-viewer-thumbnails img { width: 100%; height: 100%; object-fit: cover; border-radius: 3px; }
.gallery-viewer-thumbnails button:hover,.gallery-viewer-thumbnails button[aria-current="true"] { opacity: 1; border-color: #a4ead9; }
.gallery-viewer-info { padding: 62px 30px 28px; background: radial-gradient(ellipse at 100% 0,#17434b66,transparent 65%),#0c2230; }
.gallery-viewer-info .section-tag { margin: 0 0 16px; color: #8dcac9; font-size: 8px; letter-spacing: 2px; }
.gallery-viewer-info h2 { margin-bottom: 17px; color: #ecf5f0; font-size: 24px; font-weight: 400; line-height: 1.4; letter-spacing: -.3px; }
.gallery-viewer-info p { color: #abc3cd; font-size: 12px; font-weight: 300; line-height: 1.85; }
.gallery-viewer-albums { display: flex; flex-direction: column; align-items: stretch; gap: 6px; margin-top: 25px; padding-top: 17px; border-top: 1px solid #54717b66; }
.gallery-viewer-albums button { padding: 9px 11px; border: 1px solid transparent; border-radius: 6px; color: #9cbbc6; background: none; text-align: left; font: inherit; font-size: 11px; line-height: 1.5; transition: color .2s,background .2s; }
.gallery-viewer-albums button[aria-pressed="true"] { color: #d4f5e9; border-color: #7ebfb35c; background: #20454b; }
.gallery-viewer-albums button:hover { color: #f3fff6; background: #21434b77; }

@media (max-width:1100px) and (min-width:801px) {
  .gallery-title h1 { font-size: 43px; }
  .gallery-project-copy { left: 16px; right: 16px; bottom: 16px; }
  .gallery-project-copy strong { font-size: 14px; }
}
@media (max-width:800px) {
  .gallery-heading { padding: 12px 24px 14px; }
  .gallery-heading-top { gap: 12px; margin-bottom: 8px; }
  .gallery-heading .news-breadcrumb { font-size: 9px; }
  .gallery-heading .section-tag { font-size: 7px; letter-spacing: 1px; }
  .gallery-title h1 { font-size: 42px; letter-spacing: -1.3px; }
  .gallery-title-rule { width: 44px; margin-top: 9px; }
  .gallery-exhibition { --gallery-card-width: min(72vw,320px); --gallery-photo-height: clamp(132px,18vh,176px); }
  .gallery-toolbar { margin: 0 24px; }
  .gallery-toolbar > span { font-size: 8px; letter-spacing: 1px; }
  .gallery-row-controls { right: 24px; }
  .gallery-dwell { width: 26px; }
  .gallery-art { height: calc(var(--gallery-photo-height) + 20px); }
  .gallery-viewport { -webkit-mask-image: linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); mask-image: linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); }
  .gallery-group { gap: 25px; padding-right: 25px; }
  .gallery-caption strong { font-size: 11px; }
  .gallery-collections { padding: 48px 24px 32px; }
  .gallery-collection-heading { gap: 20px; margin-bottom: 24px; }
  .gallery-collection-heading h2 { font-size: 32px; }
  .gallery-collection-heading > p { max-width: 260px; font-size: 11px; }
  .gallery-collection-grid { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: 310px; grid-auto-rows: 230px; gap: 14px; }
  .gallery-project { grid-column: auto; }
  .gallery-project-featured { grid-column: span 2; grid-row: auto; }
  .gallery-project-featured .gallery-project-copy strong { font-size: 24px; max-width: 420px; }
  .gallery-project-featured .gallery-project-copy { left: 23px; right: 23px; bottom: 24px; }
  .gallery-project-description { font-size: 11px; }
  .gallery-outro { padding: 22px 24px 28px; align-items: flex-start; flex-direction: column; gap: 14px; }
  .gallery-outro a { font-size: 15px; }
  .footer-partners { padding-top: 38px; padding-bottom: 44px; }
  .partner-heading { margin-bottom: 30px; }
  .partner-logos { gap: 36px; }
  .partner-logos img { flex-basis: 160px; width: 160px; height: 60px; }
  .gallery-viewer { padding: 12px; }
  .gallery-viewer-dialog { display: block; max-height: calc(100vh - 24px); border-radius: 13px; }
  .gallery-viewer-photo { min-height: 200px; height: 43vh; }
  .gallery-viewer-info { padding: 27px 23px; }
  .gallery-viewer-info h2 { font-size: 22px; }
  .gallery-viewer-albums { margin-top: 22px; }
  .gallery-viewer-tools { gap: 8px; padding: 10px; }
  .gallery-viewer-tools button { font-size: 10px; padding: 6px 8px; }
}
@media (max-width:520px) {
  .gallery-heading { padding: 12px 22px 16px; }
  .gallery-title h1 { font-size: 36px; }
  .gallery-collection-heading { align-items: flex-start; flex-direction: column; gap: 15px; }
  .gallery-collection-heading .section-tag { margin-bottom: 11px; }
  .gallery-collection-heading > p { max-width: 310px; font-size: 12px; }
  .gallery-collection-grid { grid-template-columns: 1fr; grid-template-rows: none; grid-auto-rows: auto; gap: 16px; }
  .gallery-project { display: flex; flex-direction: column; height: auto; grid-column: auto; }
  .gallery-project picture { position: relative; inset: auto; z-index: 0; display: block; width: 100%; }
  .gallery-project picture img { display: block; width: 100%; height: auto; }
  .gallery-project::after { display: none; }
  .gallery-project-count,.gallery-project-open { z-index: 2; }
  .gallery-project-copy,.gallery-project-featured .gallery-project-copy { position: relative; inset: auto; width: 100%; padding: 18px 20px 21px; background: #0d2532; }
  .gallery-project-copy strong { font-size: 19px; }
  .gallery-project-featured .gallery-project-copy strong { font-size: 21px; }
  .gallery-project-description { display: none; }
}
@media (max-width:420px) {
  .gallery-title h1 { font-size: 36px; }
  .gallery-heading .section-tag { font-size: 6px; }
  .partner-logos { gap: 32px; }
  .partner-logos img { flex-basis: 140px; width: 140px; height: 50px; }
}
@media (max-width:360px) {
  .gallery-title h1 { font-size: 30px; }
}
@media (hover:hover) {
  .gallery-exhibition:not(.gallery-ready) .gallery-card:hover { opacity: 1; transform: scale(1.055); border-color: #8be4d3; z-index: 4; }
  .gallery-exhibition:not(.gallery-ready) .gallery-card:hover .gallery-caption-description { max-height: 32px; opacity: 1; }
}
@media (scripting:none) {
  .gallery-group[aria-hidden] { display: none; }
  .gallery-viewport { overflow-x: auto; }
  .gallery-toggle,.gallery-row-controls { display: none; }
  .gallery-card { opacity: 1; }
}
