@font-face {
  font-family: 'Google Sans Flex';
  src: url('/fonts/google-sans-flex.woff2') format('woff2');
  font-style: normal;
  font-weight: 100 1000;
  font-display: swap;
}

:root {
  --paper: #f4f5f5;
  --ink: #282828;
  --muted: #6c7070;
  --line: #dadddd;
  --sans: 'Google Sans Flex', 'Helvetica Neue', Arial, sans-serif;
  --serif: var(--sans);
  --gutter: clamp(24px, 2.5vw, 48px);
  --space: 24px;
  --ease: cubic-bezier(.23, 1, .32, 1);
  font: 400 14px/1.5 var(--sans);
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
}

* { box-sizing: border-box; }
html { scroll-padding-top: 100px; }
body { margin: 0; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button { color: inherit; cursor: pointer; background: none; border: 0; border-radius: 0; }
a, button { -webkit-tap-highlight-color: transparent; }
button:active { transform: translateY(1px); }
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p, figure { margin: 0; }
h1, h2, h3 { font-weight: 500; }
svg { width: 20px; height: 20px; flex-shrink: 0; }
::selection { background: #dadddd; color: #282828; }
:focus-visible { outline: 1px solid var(--ink); outline-offset: 5px; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.skip-link { position: fixed; left: 20px; top: 10px; z-index: 100; padding: 12px 20px; background: var(--ink); color: var(--paper); transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.section-wrap { padding-inline: var(--gutter); }
.text-link { display: inline-flex; align-items: center; gap: 32px; min-height: 44px; font-size: 13px; }
.text-link svg { width: 16px; height: 16px; }

/* One quiet frame around the exhibition, drawn from the reference's proportions. */
.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 20;
  height: 80px;
  padding: 16px var(--gutter);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  background: var(--paper);
}
.site-header nav { display: flex; gap: 24px; font-size: 13px; font-weight: 500; letter-spacing: -.01em; }
.site-header nav a { display: flex; align-items: center; min-height: 40px; position: relative; }
.site-header nav a::after { content: ''; position: absolute; bottom: 6px; height: 1px; left: 0; right: 0; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform 160ms var(--ease); }
.site-header nav a[aria-current]::after { transform: scaleX(1); }
.studio-mark { display: flex; align-items: center; min-height: 44px; flex-shrink: 0; }
.studio-mark img { width: 164px; height: auto; }

.exhibition-main { padding: 136px var(--gutter) 80px; }
.gallery-layout { min-width: 0; }
.gallery-field {
  display: grid;
  grid-template-columns: repeat(12, minmax(0,1fr));
  column-gap: 32px;
  row-gap: 96px;
  align-items: start;
}
.gallery-intro { grid-column: 1/4; grid-row: 1; padding-top: 12px; }
.gallery-intro h1 { font-size: clamp(40px, 4.375vw, 72px); line-height: 1.05; letter-spacing: -.02em; font-weight: 700; }
.gallery-intro p { max-width: 300px; margin-top: 24px; font-size: 13px; line-height: 1.5; letter-spacing: -.005em; }
.exhibition-caption { display: block; margin-top: 40px; font-size: 11px; line-height: 1.5; color: var(--muted); }

/* Images have no fixed aspect box, border, backing color or crop. */
.art-card { min-width: 0; }
.art-link { display: block; }
.art-number { display: block; margin-bottom: 8px; font-size: 10px; line-height: 1; color: var(--muted); font-variant-numeric: tabular-nums; }
.art-image { padding: 0; border: 0; background: none; }
.art-image img { width: 100%; height: auto; }
.art-caption { display: grid; grid-template-columns: minmax(0,1fr) auto; column-gap: 16px; margin-top: 10px; font-size: 12px; line-height: 1.35; letter-spacing: -.01em; }
.art-caption h3 { font: inherit; font-weight: 400; }
.art-year { font-size: 11px; color: var(--muted); font-variant-numeric: tabular-nums; }
.art-medium { grid-column: 1/-1; margin-top: 3px; font-size: 11px; color: var(--muted); }

.gallery-field .art-card-0 { grid-column: 5/10; grid-row: 1; }
.gallery-field .art-card-1 { grid-column: 11/13; grid-row: 1; margin-top: 96px; }
.gallery-field .art-card-2 { grid-column: 1/5; grid-row: 2; }
.gallery-field .art-card-3 { grid-column: 6/10; grid-row: 2; margin-top: 96px; }
.gallery-field .art-card-4 { grid-column: 11/13; grid-row: 2; margin-top: 24px; }
.gallery-field .art-card-5 { grid-column: 2/7; grid-row: 3; }
.gallery-field .art-card-6 { grid-column: 9/13; grid-row: 3; margin-top: 96px; }
.gallery-field .art-card-7 { grid-column: 1/6; grid-row: 4; margin-top: 48px; }
.gallery-field .art-card-8 { grid-column: 8/11; grid-row: 4; }
.gallery-field .art-card-9 { grid-column: 1/4; grid-row: 5; }
.gallery-field .art-card-10 { grid-column: 6/8; grid-row: 5; margin-top: 96px; }
.gallery-field .art-card-11 { grid-column: 10/13; grid-row: 5; margin-top: 24px; }
.gallery-field .art-card-12 { grid-column: 2/8; grid-row: 6; }
.gallery-field .art-card-13 { grid-column: 10/13; grid-row: 6; margin-top: 96px; }
.gallery-field .art-card-14 { grid-column: 1/4; grid-row: 7; }
.gallery-field .art-card-15 { grid-column: 6/8; grid-row: 7; margin-top: 96px; }
.gallery-field .art-card-16 { grid-column: 10/12; grid-row: 7; }
.gallery-field .art-card-17 { grid-column: 3/6; grid-row: 8; }

.catalogue-tools { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-bottom: 48px; font-size: 12px; line-height: 1; }
.catalogue-tools button { position: relative; min-height: 44px; padding: 0; font-size: inherit; font-weight: 400; white-space: nowrap; }
.catalogue-tools button::after { content: ''; position: absolute; left: 0; right: 0; bottom: 9px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform 140ms var(--ease); }
.catalogue-tools button[aria-pressed=true]::after { transform: scaleX(1); }
.material-filters, .view-switch { display: flex; gap: 24px; align-items: center; }
.material-filters sup { font-size: 8px; margin-left: 2px; line-height: 1; vertical-align: super; }
.catalogue-count { color: var(--muted); font-size: 11px; }
.catalogue-options { display: flex; align-items: center; gap: 24px; }
.catalogue-options .sound-compact { min-width: 28px; justify-content: center; }
.floating-tools { position: fixed; inset: auto 0 0; z-index: 20; margin: 0; padding: 12px var(--gutter); min-height: 68px; background: var(--paper); }
.floating-tools .view-switch { position: absolute; left: 50%; transform: translateX(-50%); }
.floating-tools .catalogue-options { margin-left: auto; }

/* Filtered selections follow the same spacing scale and reflow without holes. */
.gallery-field.is-filtered { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 64px 64px; }
.gallery-field.is-filtered .gallery-intro { grid-column: 1/-1; grid-row: auto; padding: 0; }
.gallery-field.is-filtered .gallery-intro h1 { font-size: 36px; line-height: 1.05; }
.gallery-field.is-filtered .gallery-intro p, .gallery-field.is-filtered .exhibition-caption { display: none; }
.gallery-field.is-filtered .art-card { grid-column: auto; grid-row: auto; margin: 0; }
.gallery-field.is-filtered .portrait { width: 64%; justify-self: center; }

.page-heading { display: flex; justify-content: space-between; gap: 40px; align-items: flex-start; margin-bottom: 56px; }
.page-heading h1 { font-size: 56px; line-height: 1.05; letter-spacing: -.03em; font-weight: 700; }
.page-heading h1 sup { font-size: 13px; line-height: 1; vertical-align: top; display: inline-block; margin-top: 9px; margin-left: 5px; letter-spacing: -.01em; font-weight: 400; }
.page-heading p, .page-heading>span { font-size: 13px; line-height: 1.5; max-width: 360px; }
.catalogue-main { padding-top: 136px; padding-bottom: 72px; }
.catalogue-grid:not(.is-list) { columns: 3; column-gap: 64px; }
.catalogue-grid:not(.is-list) .art-card { display: inline-block; width: 100%; break-inside: avoid; margin-bottom: 56px; vertical-align: top; }
.catalogue-grid:not(.is-list) .portrait .art-link { width: 72%; margin-inline: auto; }
.index-preview { display: none; }
.gallery-layout:has(.is-list) { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); gap: 80px; align-items: start; }
.is-list { display: block; min-width: 0; }
.is-list .gallery-intro { margin-bottom: 40px; }
.is-list .gallery-intro h1 { font-size: 40px; line-height: 1.05; }
.is-list .gallery-intro h1 br { display: none; }
.is-list .gallery-intro p, .is-list .exhibition-caption { display: none; }
.is-list .art-link { display: grid; grid-template-columns: 28px minmax(0,1fr); align-items: baseline; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.is-list .art-number { font-size: 11px; margin: 0; }
.is-list .art-image { display: none; }
.is-list .art-caption { display: grid; grid-template-columns: minmax(0,1fr) 110px 32px; gap: 0 16px; margin: 0; font-size: 13px; line-height: 1.4; align-items: baseline; }
.is-list .art-caption h3 { grid-column: 1; grid-row: 1; }
.is-list .art-year { grid-column: 3; grid-row: 1; font-size: 11px; text-align: right; }
.is-list .art-medium { grid-column: 2; grid-row: 1; font-size: 11px; margin-top: 0; }
.gallery-layout:has(.is-list) .index-preview { display: block; position: sticky; top: 136px; padding-top: 16px; }
.preview-object { display: flex; align-items: flex-start; justify-content: center; }
.preview-object img { max-height: 58vh; width: auto; max-width: 100%; object-fit: contain; }
.preview-caption { display: grid; grid-template-columns: 1fr auto; gap: 3px 24px; font-size: 12px; line-height: 1.4; margin-top: 16px; }
#preview-year, #preview-medium { font-size: 11px; color: var(--muted); }
#preview-medium { grid-column: 1/-1; }
.catalogue-end { display: flex; justify-content: space-between; gap: 24px; margin-top: 72px; font-size: 12px; }
.catalogue-end>span { color: var(--muted); }

.artwork-main { padding-top: 104px; padding-bottom: 56px; }
.artwork-topline { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 40px; font-size: 12px; }
.artwork-topline a { min-height: 32px; display: flex; align-items: center; }
.artwork-topline>span { color: var(--muted); font-size: 11px; }
.artwork-layout { display: grid; grid-template-columns: minmax(0,1.8fr) minmax(0,1fr); column-gap: 8vw; align-items: start; }
.artwork-image { display: flex; justify-content: center; align-items: flex-start; min-width: 0; }
.open-viewer { display: inline-flex; flex-direction: column; max-width: 100%; padding: 0; text-align: left; cursor: zoom-in; }
.open-viewer>img { max-height: calc(100vh - 210px); width: auto; height: auto; max-width: 100%; }
.enlarge-label { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding-top: 12px; min-height: 36px; font-size: 11px; }
.enlarge-label svg { width: 16px; height: 16px; }
.artwork-info { padding-top: 8px; }
.artist-label { font-size: 12px; }
.artwork-info h1 { font-size: clamp(28px,2.65vw,44px); line-height: 1.08; letter-spacing: -.025em; font-weight: 500; margin-top: 16px; }
.artwork-date { font-size: 13px; margin-top: 12px; }
.artwork-info dl { margin: 40px 0 24px; }
.artwork-info dl>div { margin-top: 24px; }
.artwork-info dt { color: var(--muted); font-size: 11px; margin-bottom: 5px; }
.artwork-info dd { margin: 0; font-size: 13px; line-height: 1.5; max-width: 280px; }
.artwork-info .text-link { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.art-source { display: block; margin-top: 32px; font-size: 10px; color: var(--muted); width: fit-content; padding-block: 8px; }
.related-section { margin-top: 120px; }
.section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 32px; }
.section-heading h2 { font-size: 24px; font-weight: 500; line-height: 1.2; letter-spacing: -.02em; }
.section-heading a { font-size: 12px; }
.related-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 80px; align-items: start; max-width: 900px; }
.related-grid .portrait { width: 60%; justify-self: center; }
.next-work { display: flex; align-items: baseline; gap: 32px; margin-top: 96px; min-height: 80px; }
.next-work>span:first-child { font-size: 11px; color: var(--muted); }
.next-work>span:nth-child(2) { font-size: 28px; line-height: 1.1; letter-spacing: -.025em; }
.next-work svg { width: 18px; height: 18px; margin-left: auto; }

.about-main, .contact-main { padding-top: 136px; padding-bottom: 96px; }
.about-layout { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: 12vw; align-items: start; }
.biography { max-width: 580px; }
.biography p { margin-bottom: 24px; font-size: 14px; line-height: 1.65; }
.biography .biography-lead { font-size: clamp(22px,2vw,30px); line-height: 1.35; letter-spacing: -.025em; margin-bottom: 40px; }
.biography .text-link { margin-top: 8px; text-decoration: underline; text-underline-offset: 5px; }
.about-art { width: 82%; justify-self: end; }
.about-art img { width: 100%; height: auto; }
figcaption { font-size: 12px; line-height: 1.4; margin-top: 12px; }
figcaption>span { display: block; font-size: 11px; color: var(--muted); margin-top: 3px; }
.materials-links { display: flex; gap: 48px; margin-top: 96px; align-items: baseline; font-size: 13px; }
.materials-links>span { font-size: 11px; color: var(--muted); margin-right: auto; }
.contact-page { display: flex; flex-direction: column; min-height: 100svh; }
.contact-main { flex: 1; padding-top: 144px; padding-bottom: 80px; }
.contact-layout { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 32px; align-items: start; }
.contact-copy { grid-column: 1/6; min-width: 0; }
.contact-copy h1 { font-size: clamp(44px,4.375vw,64px); line-height: 1.05; letter-spacing: -.025em; font-weight: 700; }
.contact-intro { margin-top: 24px; font-size: 14px; line-height: 1.5; }
.contact-methods { margin-top: 48px; }
.contact-label { display: block; font-size: 11px; color: var(--muted); margin-bottom: 10px; }
.contact-email { display: inline-flex; align-items: center; gap: 16px; max-width: 100%; font-size: clamp(20px,1.9vw,28px); letter-spacing: -.025em; line-height: 1.35; }
.contact-email>span { min-width: 0; overflow-wrap: anywhere; }
.contact-email svg { width: 17px; height: 17px; }
.copy-row { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 4px; }
.copy-email { font-size: 11px; min-height: 44px; padding: 0; text-decoration: underline; text-underline-offset: 4px; }
.copy-status { font-size: 11px; color: var(--muted); }
.contact-secondary { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding-top: 28px; border-top: 1px solid var(--line); margin-top: 24px; font-size: 13px; }
.contact-secondary .contact-label { margin-bottom: 2px; }
.contact-secondary a { min-height: 44px; display: inline-flex; gap: 24px; align-items: center; }
.contact-secondary svg { width: 14px; height: 14px; }
.contact-location { margin-top: 32px; font-size: 11px; color: var(--muted); line-height: 1.5; }
.contact-art { grid-column: 7/13; margin-top: 12px; }
.contact-art img { width: 100%; height: auto; }
.not-found { padding-top: 160px; padding-bottom: 120px; }
.not-found h1 { font-size: 48px; line-height: 1.05; letter-spacing: -.03em; margin-bottom: 24px; }

.site-footer { display: flex; align-items: center; gap: 48px; padding: 16px var(--gutter); min-height: 76px; font-size: 11px; color: var(--muted); }
.footer-links, .footer-actions { display: flex; align-items: center; gap: 28px; }
.footer-links { margin-left: auto; }
.site-footer a, .sound-toggle { min-height: 44px; display: inline-flex; align-items: center; }
.footer-actions>a { min-width: 32px; justify-content: center; font-size: 17px; }
.sound-toggle { gap: 8px; padding: 0; font-size: 11px; color: var(--ink); }
.sound-toggle svg { width: 15px; height: 15px; transition: opacity 160ms var(--ease); }
.sound-toggle[aria-pressed=false] svg { opacity: .35; }
.exhibition-page .site-footer { padding-bottom: 96px; }

/* Match the reference's 10 px dot and 2.6× hover scale. Difference blending
   keeps the pointer visible over both the paper and dark artwork. */
.dot-cursor { display: none; position: fixed; top: 0; left: 0; width: 10px; height: 10px; z-index: 100; pointer-events: none; opacity: 0; color: #fff; mix-blend-mode: difference; transition: opacity 200ms ease; }
.dot-cursor>span { display: block; position: relative; left: -50%; top: -50%; width: 10px; height: 10px; background: #fff; border-radius: 50%; transition: transform 250ms cubic-bezier(.16,1,.3,1); }
.dot-cursor.is-visible { opacity: 1; }
.dot-cursor.is-interactive>span { transform: scale(2.6); }

.image-viewer { position: fixed; inset: 0; width: 100vw; max-width: none; height: 100dvh; max-height: none; border: 0; padding: 0; color: var(--ink); background: var(--paper); overscroll-behavior: contain; }
.image-viewer::backdrop { background: #28282899; }
.image-viewer[open] { display: flex; flex-direction: column; }
.viewer-bar { display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; gap: 24px; min-height: 72px; padding: 12px var(--gutter); font-size: 12px; }
.viewer-bar>div { display: flex; gap: 32px; align-items: center; }
.viewer-bar button { display: flex; align-items: center; min-height: 44px; gap: 12px; padding: 0; font-size: 12px; }
.viewer-bar svg { width: 16px; height: 16px; }
.viewer-close>span { font-size: 24px; font-weight: 300; }
.viewer-stage { flex: 1; min-height: 0; display: grid; place-items: center; overflow: auto; padding: 16px var(--gutter); }
.viewer-stage img { max-width: 100%; width: auto; height: auto; max-height: calc(100dvh - 150px); }
.image-viewer.is-zoomed .viewer-stage { display: block; }
.image-viewer.is-zoomed img { max-width: none; max-height: none; width: 1600px; height: auto; margin-inline: auto; }
.viewer-help { flex-shrink: 0; text-align: center; padding: 12px 24px 20px; font-size: 11px; color: var(--muted); }
body:has(.image-viewer[open]) { overflow: hidden; }

@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .js .dot-cursor { display: block; }
  html.has-dot-cursor, html.has-dot-cursor * { cursor: none !important; }
}

@media (hover:hover) and (pointer:fine) {
  .art-image, .about-art img, .contact-art img { transition: transform 260ms var(--ease); }
  .art-link:hover .art-image, .about-art>a:hover img, .contact-art>a:hover img { transform: translateY(-3px); }
  .text-link svg, .contact-email svg, .contact-secondary svg, .next-work svg { transition: transform 180ms var(--ease); }
  .text-link:hover svg, .contact-email:hover svg, .contact-secondary a:hover svg, .next-work:hover svg { transform: translate(2px,-2px); }
  .site-footer a:hover, .contact-email:hover>span, .contact-secondary a:hover { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
  .sound-toggle:hover .sound-state { text-decoration: underline; text-underline-offset: 4px; }
  .site-header nav a:hover::after, .catalogue-tools button:hover::after { transform: scaleX(1); }
  .art-link:hover h3, .art-link:focus-visible h3, .is-list .is-previewed h3 { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
  .text-link:hover { text-decoration: underline; text-underline-offset: 5px; }
}

@media (min-width:1700px) {
  .gallery-field { column-gap: 48px; row-gap: 120px; }
  .gallery-intro p { font-size: 14px; }
  .art-caption { font-size: 13px; }
  .art-year, .art-medium { font-size: 12px; }
}

@media (max-width:1050px) {
  .gallery-field { column-gap: 24px; row-gap: 80px; }
  .gallery-intro h1 { font-size: 40px; }
  .gallery-intro p { font-size: 12px; }
  .exhibition-caption { font-size: 10px; margin-top: 32px; }
  .gallery-field .art-card-1 { grid-column: 11/13; margin-top: 80px; }
  .gallery-layout:has(.is-list) { gap: 48px; }
  .material-filters, .view-switch { gap: 20px; }
  .about-layout { gap: 8vw; }
  .artwork-layout { column-gap: 6vw; }
  .contact-layout { gap: 24px; }
  .contact-copy { grid-column: 1/7; }
  .contact-art { grid-column: 8/13; margin-top: 80px; }
  .contact-email { font-size: 21px; gap: 12px; }
  .materials-links { gap: 28px; }
}

@media (max-width:680px) {
  :root { --gutter: 22px; }
  .site-header { height: 72px; padding-block: 13px; gap: 20px; }
  .site-header nav { gap: 18px; font-size: 12px; }
  .site-header nav a { min-height: 42px; }
  .studio-mark img { width: 132px; }
  .exhibition-main { padding-top: 112px; padding-bottom: 40px; }
  .gallery-field { grid-template-columns: repeat(6,minmax(0,1fr)); gap: 56px 16px; }
  .gallery-intro { grid-column: 1/7; grid-row: auto; padding: 0; }
  .gallery-intro h1 { font-size: 48px; letter-spacing: -.025em; line-height: 1.05; }
  .gallery-intro p { font-size: 12px; margin-top: 20px; }
  .exhibition-caption { display: none; }
  .gallery-field .art-card { grid-row: auto; margin-top: 0; }
  .gallery-field .art-card-0 { grid-column: 1/7; }
  .gallery-field .art-card-1 { grid-column: 4/7; margin-top: 0; }
  .gallery-field .art-card-2 { grid-column: 1/7; }
  .gallery-field .art-card-3 { grid-column: 1/6; }
  .gallery-field .art-card-4 { grid-column: 4/7; }
  .gallery-field .art-card-5 { grid-column: 1/7; }
  .gallery-field .art-card-6 { grid-column: 2/7; }
  .gallery-field .art-card-7 { grid-column: 1/7; }
  .gallery-field .art-card-8 { grid-column: 1/5; }
  .gallery-field .art-card-9 { grid-column: 4/7; }
  .gallery-field .art-card-10 { grid-column: 1/4; }
  .gallery-field .art-card-11 { grid-column: 2/7; }
  .gallery-field .art-card-12 { grid-column: 1/7; }
  .gallery-field .art-card-13 { grid-column: 2/7; }
  .gallery-field .art-card-14 { grid-column: 1/5; }
  .gallery-field .art-card-15 { grid-column: 4/7; }
  .gallery-field .art-card-16 { grid-column: 1/4; }
  .gallery-field .art-card-17 { grid-column: 3/7; }
  .art-number { font-size: 10px; margin-bottom: 7px; }
  .art-caption { margin-top: 9px; font-size: 12px; gap: 0 12px; }
  .art-year, .art-medium { font-size: 10px; }
  .catalogue-tools { flex-wrap: wrap; gap: 8px 24px; margin-bottom: 32px; font-size: 12px; }
  .material-filters { width: 100%; gap: 28px; }
  .material-filters sup { font-size: 8px; }
  .view-switch { gap: 22px; }
  .catalogue-count { margin-left: auto; font-size: 10px; }
  .floating-tools { display: grid; grid-template-columns: 1fr auto; gap: 0 24px; padding-block: 4px; margin-bottom: 0; min-height: 96px; }
  .floating-tools .material-filters { grid-column: 1/-1; justify-content: space-between; gap: 20px; }
  .floating-tools .view-switch { position: static; transform: none; }
  .floating-tools .catalogue-count { align-self: center; }
  .floating-tools button { min-height: 42px; }
  .gallery-field.is-filtered { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 40px 24px; }
  .gallery-field.is-filtered .gallery-intro { grid-column: 1/-1; }
  .gallery-field.is-filtered .gallery-intro h1 { font-size: 32px; }
  .gallery-field.is-filtered .art-card { grid-column: auto; margin: 0; }
  .gallery-field.is-filtered .portrait { width: 85%; }
  .page-heading { display: block; margin-bottom: 40px; }
  .page-heading h1 { font-size: 44px; letter-spacing: -.035em; }
  .page-heading h1 sup { font-size: 11px; margin-top: 7px; }
  .page-heading p, .page-heading>span { display: block; margin-top: 20px; font-size: 12px; }
  .catalogue-main, .about-main, .contact-main { padding-top: 112px; padding-bottom: 56px; }
  .catalogue-grid:not(.is-list) { columns: 2; column-gap: 24px; }
  .catalogue-grid:not(.is-list) .art-card { margin-bottom: 40px; }
  .catalogue-grid:not(.is-list) .portrait .art-link { width: 90%; }
  .gallery-layout:has(.is-list) { display: block; }
  .gallery-layout:has(.is-list) .index-preview { display: none; }
  .is-list .gallery-intro { margin-bottom: 32px; }
  .is-list .gallery-intro h1 { font-size: 36px; }
  .is-list .art-link { grid-template-columns: 22px minmax(0,1fr); gap: 12px; padding-block: 16px; }
  .is-list .art-caption { grid-template-columns: minmax(0,1fr) 32px; font-size: 14px; gap: 0 12px; }
  .is-list .art-year { grid-column: 2; font-size: 11px; }
  .is-list .art-medium { grid-column: 1/-1; grid-row: 2; font-size: 10px; margin-top: 4px; }
  .catalogue-end { display: block; margin-top: 48px; font-size: 12px; }
  .catalogue-end>a { display: block; margin-top: 8px; min-height: 36px; }
  .artwork-main { padding-top: 96px; padding-bottom: 40px; }
  .artwork-topline { margin-bottom: 24px; }
  .artwork-layout { grid-template-columns: 1fr; row-gap: 32px; }
  .artwork-image { justify-content: flex-start; }
  .open-viewer { width: 100%; }
  .open-viewer>img { width: 100%; height: auto; max-height: none; }
  .artwork-info { padding: 0; }
  .artwork-info h1 { font-size: 32px; margin-top: 12px; }
  .artwork-date { font-size: 12px; margin-top: 12px; }
  .artwork-info dl { margin-top: 32px; }
  .artwork-info dl>div { margin-top: 20px; }
  .artwork-info dd { font-size: 13px; }
  .art-source { margin-top: 24px; font-size: 11px; }
  .related-section { margin-top: 64px; }
  .section-heading { margin-bottom: 24px; }
  .section-heading h2 { font-size: 20px; }
  .related-grid { gap: 24px; }
  .related-grid .portrait { width: 85%; }
  .related-grid .art-caption { grid-template-columns: 1fr; }
  .related-grid .art-year { margin-top: 3px; }
  .next-work { flex-wrap: wrap; gap: 16px; margin-top: 56px; }
  .next-work>span:first-child { width: 100%; }
  .next-work>span:nth-child(2) { font-size: 24px; max-width: 85%; }
  .about-layout, .contact-layout { grid-template-columns: 1fr; gap: 48px; }
  .biography p { font-size: 14px; line-height: 1.6; }
  .biography .biography-lead { font-size: 23px; line-height: 1.35; margin-bottom: 32px; }
  .about-art { width: 74%; justify-self: end; }
  .materials-links { flex-wrap: wrap; gap: 20px; margin-top: 56px; font-size: 12px; }
  .materials-links>span { width: 100%; }
  .contact-copy, .contact-art { grid-column: 1; }
  .contact-copy h1 { font-size: 44px; }
  .contact-intro { margin-top: 20px; }
  .contact-methods { margin-top: 36px; }
  .contact-email { font-size: 21px; gap: 14px; }
  .contact-email svg { width: 16px; height: 16px; }
  .copy-row { margin-top: 8px; gap: 16px; }
  .contact-secondary { margin-top: 24px; padding-top: 24px; }
  .contact-location { margin-top: 24px; }
  .contact-art { margin-top: 0; }
  .site-footer { display: grid; grid-template-columns: 1fr auto; gap: 4px 20px; font-size: 10px; padding-block: 16px; }
  .footer-credit { grid-column: 1; grid-row: 2; }
  .footer-links { margin: 0; gap: 24px; grid-column: 1; grid-row: 1; }
  .footer-actions { grid-column: 2; grid-row: 1/3; gap: 16px; }
  .exhibition-page .site-footer { padding-bottom: 128px; }
  .viewer-bar { padding: 12px 16px; min-height: 64px; font-size: 11px; gap: 12px; }
  .viewer-bar>div { gap: 16px; }
  .viewer-bar button { font-size: 11px; gap: 6px; }
  .viewer-stage { padding: 12px; }
  .viewer-help { font-size: 10px; padding: 12px; }
  .image-viewer.is-zoomed img { width: 1100px; }
  .not-found { padding-top: 120px; padding-bottom: 100px; }
  .not-found h1 { font-size: 40px; }
}

@media (max-width:360px) {
  :root { --gutter: 18px; }
  .site-header nav { gap: 14px; font-size: 11px; }
  .studio-mark img { width: 116px; }
  .gallery-intro h1 { font-size: 44px; }
  .contact-email { font-size: 18px; }
}

@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
  button:active { transform: none; }
  .js .dot-cursor { display: none; }
  .art-link:hover .art-image, .about-art>a:hover img, .contact-art>a:hover img, .text-link:hover svg, .contact-email:hover svg, .contact-secondary a:hover svg, .next-work:hover svg { transform: none; }
}
@media (prefers-contrast:more) { :root { --muted: #4c5050; --line: #8c9090; } }
@media print {
  .site-header { position: static; }
  .floating-tools, .site-footer, .enlarge-label, .viewer-bar, .index-preview { display: none !important; }
  .exhibition-main, .catalogue-main, .about-main, .contact-main { padding-top: 24px; }
  .gallery-field { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
  .gallery-field .gallery-intro, .gallery-field .art-card { grid-column: auto; grid-row: auto; margin: 0; break-inside: avoid; }
  .gallery-intro h1 { font-size: 36px; }
}

.gallery-field.is-list { display: block; }
.gallery-field.is-list .art-card { margin: 0; width: 100%; justify-self: stretch; }

html:not(.js) .catalogue-tools { display: none; }

.mobile-material { display: none; }
.viewer-bar>span { min-width: 0; overflow-wrap: anywhere; }
@media (max-width:680px) {
  .catalogue-tools, .floating-tools { display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: center; gap: 12px; min-height: 60px; }
  .catalogue-tools .material-filters, .catalogue-tools .catalogue-count { display: none; }
  .mobile-material { display: block; margin-left: auto; }
  .mobile-material select { max-width: 132px; min-height: 44px; padding: 0 3px; font: 400 12px var(--sans); color: var(--ink); border: 0; border-radius: 0; background: transparent; }
  .catalogue-options { gap: 0; }
  .floating-tools .catalogue-options { margin-left: 0; }
  .floating-tools .view-switch { position: static; transform: none; }
  .viewer-bar>span { max-width: 48%; }
  .exhibition-page .site-footer { padding-bottom: 96px; }
}

@media (min-width:681px) and (max-width:900px) {
  .gallery-layout:has(.is-list) { display: block; }
  .gallery-layout:has(.is-list) .index-preview { display: none; }
}

/* Subsequent additions share the established scale, after the curated rows. */
.gallery-field .art-card-extra { grid-column:1/6; grid-row:var(--gallery-row); }
.gallery-field .art-card-extra.is-right { grid-column:8/13; margin-top:48px; }
.gallery-field.is-filtered .art-card-extra { grid-column:auto; grid-row:auto; margin:0; }
.artwork-additional { max-width: min(62%,1000px); margin-top:64px; }
.artwork-additional img { max-height:none; width:100%; }
.image-placeholder { min-height:200px; display:grid; place-items:center; border:1px dashed var(--line); color:var(--muted); font-size:12px; padding:24px; }
@media(max-width:680px){ .gallery-field .art-card-extra,.gallery-field .art-card-extra.is-right {grid-column:1/7;grid-row:auto;margin:0}.gallery-field.is-filtered .art-card-extra{grid-column:auto}.artwork-additional{max-width:100%;margin-top:40px} }

.artwork-description { font-size:13px; line-height:1.6; margin-top:24px; max-width:400px; }
.draft-banner { position:fixed; inset:80px 0 auto; z-index:21; display:flex; gap:24px; justify-content:center; padding:12px var(--gutter); font-size:11px; background:var(--ink); color:var(--paper); }
.draft-banner a { text-decoration:underline; text-underline-offset:3px; }
.draft-banner+main { padding-top:188px; }
@media(max-width:680px){.draft-banner{top:72px;justify-content:space-between;gap:16px}.draft-banner+main{padding-top:164px}}

.gallery-field .portrait .art-image img { width:auto; max-height:70vh; margin-inline:auto; }

/* Gallery navigation follows the reference's distinct desktop/mobile modes. */
.art-open,.gallery-instructions { display:none; }
.gallery-spatial,.gallery-paged { overflow:hidden; }
.gallery-spatial .site-footer,.gallery-paged .site-footer,
.gallery-spatial .page-heading,.gallery-paged .page-heading,
.gallery-spatial .catalogue-end,.gallery-paged .catalogue-end { display:none; }
.gallery-spatial .exhibition-main,.gallery-spatial .catalogue-main { position:fixed; inset:80px 0 68px; padding:0; }
.gallery-spatial .gallery-layout { display:block; width:100%; height:100%; }
.gallery-spatial #catalogue { position:relative; display:block; width:100%; height:100%; columns:auto; overflow:hidden; touch-action:pinch-zoom; user-select:none; }
.gallery-spatial #catalogue .art-card,.gallery-spatial #catalogue .gallery-intro { position:absolute; top:0; left:0; margin:0; padding:0; max-width:none; will-change:transform; }
.gallery-spatial #catalogue .art-card { height:auto; }
.gallery-spatial #catalogue .art-image img { width:100%; height:auto; max-height:none; margin:0; }
.gallery-spatial #catalogue .gallery-intro h1 { font-size:56px; }
.gallery-spatial #catalogue .gallery-intro p { font-size:13px; max-width:320px; }
.gallery-spatial #catalogue .exhibition-caption { display:block; margin-top:32px; }
.gallery-spatial .index-preview { display:none; }
.gallery-spatial .catalogue-tools { position:fixed; inset:auto 0 0; padding:12px var(--gutter); margin:0; min-height:68px; background:var(--paper); z-index:20; }
.gallery-spatial .catalogue-tools .view-switch { position:absolute; left:50%; transform:translateX(-50%); }
.gallery-spatial .catalogue-tools .catalogue-options { margin-left:auto; }
.gallery-spatial .gallery-instructions { display:block; position:fixed; left:var(--gutter); bottom:86px; z-index:2; font-size:10px; color:var(--muted); pointer-events:none; }
.gallery-spatial .field-reset { display:inline-flex; justify-content:center; align-items:center; width:28px; font-size:18px; }
.gallery-spatial #catalogue.is-dragging { cursor:grabbing; }
.gallery-spatial #catalogue.is-dragging a { pointer-events:none; }
.field-reset::after { display:none; }
@media(min-width:901px){
 .gallery-index #catalogue.is-list { max-height:calc(100dvh - 160px); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; padding-right:12px; }
 .gallery-index .catalogue-layout #catalogue.is-list { max-height:calc(100dvh - 330px); }
}
@media(max-width:900px){
 .gallery-paged .exhibition-main,.gallery-paged .catalogue-main { position:fixed; inset:0; padding:0; }
 .gallery-paged .gallery-layout { display:block; width:100%; height:100%; }
 .gallery-paged #catalogue { position:relative; display:block; width:100%; height:100%; columns:auto; overflow-x:hidden; overflow-y:auto; scroll-snap-type:y mandatory; overscroll-behavior-y:contain; scrollbar-width:none; scroll-padding:0; touch-action:pan-y pinch-zoom; }
 .gallery-paged #catalogue::-webkit-scrollbar { display:none; }
 .gallery-paged #catalogue.is-paging { scroll-snap-type:none; }
 .gallery-paged #catalogue .gallery-intro { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); margin:0; padding:0; }
 .gallery-paged #catalogue .art-card { position:relative; display:block; width:100%; height:100%; min-height:480px; margin:0; padding:100px var(--gutter) 88px; scroll-snap-align:start; scroll-snap-stop:always; grid-column:auto; grid-row:auto; }
 .gallery-paged #catalogue .art-link { display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:16px auto minmax(100px,1fr) auto; gap:12px 20px; height:100%; width:100%; margin:0; padding:0; border:0; }
 .gallery-paged #catalogue .art-number { grid-column:1/-1; grid-row:1; margin:0; font-size:11px; line-height:1; }
 .gallery-paged #catalogue .art-caption { display:contents; }
 .gallery-paged #catalogue .art-caption h3 { grid-column:1; grid-row:2; font-size:clamp(24px,6.5vw,32px); font-weight:700; line-height:1.05; letter-spacing:-.025em; }
 .gallery-paged #catalogue .art-year { grid-column:2; grid-row:2; align-self:end; font-size:11px; padding-bottom:2px; }
 .gallery-paged #catalogue .art-image { grid-column:1/-1; grid-row:3; display:flex; justify-content:center; align-items:center; min-height:0; width:100%; height:100%; padding:16px 0; transform:none; }
 .gallery-paged #catalogue .art-image img { width:100%; height:100%; max-width:100%; max-height:100%; object-fit:contain; margin:0; }
 .gallery-paged #catalogue .art-medium { grid-column:1; grid-row:4; font-size:11px; line-height:1.5; margin:0; }
 .gallery-paged #catalogue .art-open { display:block; grid-column:2; grid-row:4; align-self:end; font-size:11px; line-height:1.5; white-space:nowrap; }
 .gallery-paged .index-preview { display:none; }
 .gallery-paged .catalogue-tools { position:fixed; inset:auto 0 0; z-index:20; display:flex; align-items:center; justify-content:space-between; min-height:64px; margin:0; padding:4px var(--gutter) max(8px,env(safe-area-inset-bottom)); gap:12px; flex-wrap:nowrap; background:var(--paper); }
 .gallery-paged .catalogue-tools .view-switch { position:static; transform:none; }
 .gallery-paged .catalogue-tools .material-filters,.gallery-paged .catalogue-count { display:none; }
 .gallery-paged .mobile-material { display:block; margin-left:auto; }
 .gallery-paged .mobile-material select { max-width:132px; min-height:44px; padding:0 3px; font:400 12px var(--sans); color:var(--ink); border:0; border-radius:0; background:transparent; }
 .gallery-paged .catalogue-options { margin-left:0; gap:0; }
 .gallery-paged .art-link:hover h3 { text-decoration:none; }
}
@media(max-height:500px) and (max-width:900px){
 .gallery-paged #catalogue { scroll-snap-type:y proximity; }
 .gallery-paged #catalogue .art-card { scroll-snap-stop:normal; }
}
@media(prefers-reduced-motion:reduce){
 .gallery-spatial #catalogue .art-card,.gallery-spatial #catalogue .gallery-intro { will-change:auto; }
}

.gallery-instructions { transition:opacity 200ms ease; }
.gallery-exploring .gallery-instructions { opacity:0; }
@media(min-width:901px){
 .gallery-index .site-footer { display:none; }
 .gallery-index .catalogue-main { padding-top:112px; padding-bottom:80px; }
 .gallery-index .catalogue-main>.page-heading { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); margin:0; }
 .gallery-index .catalogue-main>.catalogue-tools { position:fixed; inset:auto 0 0; margin:0; padding:12px var(--gutter); min-height:68px; z-index:20; background:var(--paper); }
 .gallery-index .catalogue-main>.catalogue-tools .view-switch { position:absolute; left:50%; transform:translateX(-50%); }
 .gallery-index .catalogue-main>.catalogue-tools .catalogue-options { margin-left:auto; }
}
@media(max-height:500px) and (max-width:900px){
 .gallery-paged #catalogue .art-card { min-height:0; padding-top:88px; padding-bottom:76px; }
 .gallery-paged #catalogue .art-link { grid-template-rows:16px auto minmax(64px,1fr) auto; }
 .gallery-paged #catalogue .art-caption h3 { font-size:24px; }
 .gallery-paged #catalogue .art-image { padding-block:8px; }
}
