:root {
  --paper: #f2f0eb;
  --ink: #171714;
  --muted: #69675f;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 14px;
}
.has-js body.is-loading { overflow: hidden; }
button, a { color: inherit; }
a { text-decoration: none; }
button { font: inherit; }

.site-shell {
  min-height: 100svh;
  background: var(--paper);
  opacity: 1;
  transition: opacity 900ms cubic-bezier(.16, 1, .3, 1);
}
.has-js body.is-loading .site-shell { opacity: 0; }

.site-loader { display: none; }
.has-js .site-loader {
  position: fixed;
  z-index: 100;
  inset: 0;
  display: block;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 74% 42%, rgba(112,105,91,.12), transparent 42%),
    #151513;
  color: #f1eee6;
  opacity: 1;
  visibility: visible;
  transition: opacity 850ms cubic-bezier(.16, 1, .3, 1), visibility 850ms;
}
.has-js .site-loader::after {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px) 0 0 / 25% 100%,
    linear-gradient(180deg, transparent 70%, rgba(0,0,0,.2));
  content: '';
  pointer-events: none;
}
.has-js .site-loader.is-complete {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.site-loader__art {
  position: absolute;
  top: 11%;
  right: 12%;
  width: min(38vw, 570px);
  height: 68%;
  background: #262622 var(--loader-art) center / cover no-repeat;
  filter: grayscale(1) contrast(1.08);
  opacity: .18;
  transform: scale(1.04);
  transition: opacity 1000ms ease, transform 1400ms cubic-bezier(.16, 1, .3, 1);
}
.site-loader.is-ready .site-loader__art { opacity: .06; transform: scale(1.09); }
.site-loader__name {
  position: absolute;
  z-index: 2;
  top: 28px;
  left: 3.2vw;
  margin: 0;
  font-size: clamp(17px, 1.4vw, 23px);
  letter-spacing: -.035em;
}
.site-loader__content {
  position: absolute;
  z-index: 2;
  right: 3.2vw;
  bottom: clamp(34px, 7vh, 76px);
  left: 3.2vw;
}
.site-loader__rule {
  position: relative;
  height: 1px;
  overflow: hidden;
  background: rgba(241,238,230,.22);
}
.site-loader__rule span {
  position: absolute;
  inset: 0;
  background: #f1eee6;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 500ms cubic-bezier(.16, 1, .3, 1);
}
.site-loader__meta {
  display: flex;
  justify-content: space-between;
  padding-top: 11px;
  color: rgba(241,238,230,.72);
  font-size: 10px;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.site-header {
  position: fixed;
  z-index: 20;
  top: 0;
  left: 0;
  display: grid;
  width: 100%;
  grid-template-columns: 1fr auto;
  align-items: center;
  padding: 28px 3.2vw;
  color: #fff;
  mix-blend-mode: difference;
  pointer-events: none;
  transition: background 220ms ease, color 220ms ease;
}
.site-header > * { pointer-events: auto; }
.site-header.is-over-exhibition {
  background: rgba(23,23,20,.94);
  color: #f1eee6;
  mix-blend-mode: normal;
  backdrop-filter: blur(12px);
}

.artist-name {
  width: max-content;
  font-size: clamp(17px, 1.4vw, 23px);
  letter-spacing: -0.035em;
}

.menu-trigger {
  position: relative;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 11px;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.menu-trigger { display: block; padding: 8px 0; }

.threshold {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  background: #eceae4;
  isolation: isolate;
}

.room {
  position: absolute;
  inset: -3%;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 52% 45%, rgba(255,255,255,.72) 0 20%, transparent 58%),
    linear-gradient(180deg, #ebe9e3 0%, #dedbd3 100%);
  filter: saturate(0.82);
  transform: scale(1.025) translate3d(0, 0, 0);
  transform-origin: 61% 47%;
  transition: transform 2800ms cubic-bezier(0.4, 0, 0.2, 1);
  backface-visibility: hidden;
  will-change: transform;
}

.room::after {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(50,46,40,.07), transparent 22%, transparent 76%, rgba(50,46,40,.08)),
    radial-gradient(ellipse at 52% 40%, transparent 0 35%, rgba(38,35,30,.055) 100%);
  content: '';
  pointer-events: none;
}

.back-plane {
  position: absolute;
  top: 16%; right: 9%; bottom: 15%; left: 43%;
  background: transparent;
}

.back-plane::before {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 48% 38%, rgba(255,255,255,.86), transparent 60%),
    linear-gradient(108deg, #efeee9 0%, #f7f6f2 48%, #e4e1da 100%);
  box-shadow: inset 0 16px 28px rgba(79,73,64,.045), inset -22px 0 36px rgba(79,73,64,.04);
  clip-path: polygon(7% 0, 100% 7%, 100% 100%, 0 86%, 0 13%);
  content: '';
}

.left-plane {
  position: absolute;
  top: 11%; bottom: 12%; left: -4%;
  width: 52%;
  background: transparent;
}

.left-plane::before {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 76% 38%, rgba(255,255,255,.62), transparent 58%),
    linear-gradient(100deg, #d9d6cf 0%, #eeece7 72%, #e4e1da 100%);
  box-shadow: inset -30px 0 48px rgba(69,64,56,.045);
  clip-path: polygon(0 0, 100% 13%, 93% 90%, 0 100%);
  content: '';
}

.right-plane {
  position: absolute;
  top: 11%; right: -6%; bottom: 8%;
  width: 18%;
  background: linear-gradient(94deg, #d0cdc5 0%, #e9e7e1 42%, #d7d4cc 100%);
  box-shadow: inset 16px 0 30px rgba(62,57,50,.055);
  clip-path: polygon(0 13%, 100% 0, 100% 100%, 0 92%);
}

.ceiling-plane {
  position: absolute;
  z-index: 2;
  top: -6%; right: -2%; left: -2%;
  height: 27%;
  background: radial-gradient(ellipse at 49% 100%, #faf9f6 0%, #f1efea 50%, #ddd9d1 100%);
  clip-path: polygon(0 0, 100% 0, 100% 38%, 74% 69%, 49% 100%, 24% 70%, 0 40%);
  filter: drop-shadow(0 10px 14px rgba(52,48,41,.075));
}

.floor-plane {
  position: absolute;
  z-index: 3;
  right: -4%; bottom: -10%; left: -4%;
  height: 36%;
  background:
    radial-gradient(ellipse at 50% 0, rgba(255,255,255,.36), transparent 54%),
    linear-gradient(100deg, #b9b5ad 0%, #cbc7bf 50%, #aaa69e 100%);
  clip-path: polygon(0 20%, 49% 0, 100% 19%, 100% 100%, 0 100%);
  box-shadow: inset 0 8px 18px rgba(65,60,53,.1);
}

.doorway {
  position: absolute;
  z-index: 4;
  top: 23%; left: 73%;
  width: 15%; height: 53%;
  overflow: hidden;
  background: #cbc8c0;
  box-shadow: -9px 2px 18px rgba(57,53,46,.14), inset 10px 0 0 #cecbc4, inset 0 10px 0 #d1cec7;
  clip-path: polygon(6% 0, 100% 3%, 100% 100%, 0 94%, 0 6%);
}

.doorway-light {
  position: absolute;
  inset: 3% 0 0 8%;
  background: linear-gradient(118deg, #f3f1e9, #fffdf5 60%, #e9e4d9);
  box-shadow: inset 18px 0 24px rgba(112,105,91,.07);
}

.distant-work {
  position: absolute;
  z-index: 2;
  top: 37%; right: 8%;
  width: 28%;
  aspect-ratio: .72;
  padding: 3px;
  background: #6a5948;
  box-shadow: 10px 12px 17px rgba(32,28,22,.24), 2px 3px 5px rgba(32,28,22,.12);
  transform: perspective(300px) rotateY(-5deg);
}

.hero-cycle { --hero-inset: 5px; }
.distant-work.hero-cycle { --hero-inset: 3px; }
.hero-cycle__slide {
  position: absolute;
  inset: var(--hero-inset);
  display: block;
  background-image: var(--hero-image, none);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 1800ms cubic-bezier(.4, 0, .2, 1);
  will-change: opacity;
}
.hero-cycle__slide.is-active { opacity: 1; }
.distant-work span {
  background-color: #f1eee6;
}

.artwork {
  position: absolute;
  z-index: 3;
  padding: 5px;
  background: linear-gradient(135deg, #5d4c3a, #291f17 44%, #7a654f);
  box-shadow: 15px 20px 28px rgba(36,31,25,.27), 3px 4px 7px rgba(36,31,25,.14);
  transition: transform 1100ms cubic-bezier(0.16, 1, 0.3, 1);
}

.artwork--left {
  top: 23%; left: 14%;
  width: clamp(210px, 24vw, 460px);
  aspect-ratio: 1;
  transform: perspective(800px) rotateY(4deg) skewY(.3deg);
}

.artwork--left span {
  background-color: #171714;
}

.artwork--back {
  top: 28%; left: 22%;
  width: clamp(140px, 15vw, 286px);
  aspect-ratio: 1.05;
  transform: perspective(650px) rotateY(-2deg);
}

.artwork--back span {
  background-color: #f1eee6;
}

.light-pool {
  position: absolute;
  z-index: 5;
  border-radius: 50%;
  background: rgba(255,252,237,.2);
  filter: blur(56px);
  mix-blend-mode: screen;
  pointer-events: none;
  will-change: transform, opacity;
}

.light-pool--one {
  top: 18%; left: 29%;
  width: 33vw; height: 18vw;
  animation: breathe 8s ease-in-out infinite alternate;
}

.light-pool--two {
  right: 6%; bottom: 17%;
  width: 28vw; height: 22vw;
  animation: breathe 11s 2s ease-in-out infinite alternate-reverse;
}

.enter-button {
  position: absolute;
  z-index: 10;
  right: 3.2vw; bottom: 34px;
  display: flex;
  width: min(310px, 36vw);
  align-items: center;
  justify-content: space-between;
  border: 0;
  border-top: 1px solid var(--ink);
  background: transparent;
  padding: 12px 0 18px;
  cursor: pointer;
  font-size: 12px;
  letter-spacing: .035em;
  text-align: left;
  text-transform: uppercase;
}

.enter-arrow {
  display: inline-block;
  font-size: 20px;
  transition: transform 500ms cubic-bezier(0.16, 1, 0.3, 1);
}
.enter-button:hover .enter-arrow, .enter-button:focus-visible .enter-arrow { transform: translateX(8px); }

.is-entered .room { transform: scale(1.95) translate3d(-23%, 1%, 0); }
.is-entered .artwork--left { transform: perspective(800px) rotateY(2deg) scale(1.04); }
.is-entered .enter-arrow { transform: rotate(180deg); }

@keyframes breathe {
  from { opacity: .5; transform: translate3d(-2%, -1%, 0) scale(.96); }
  to { opacity: .95; transform: translate3d(2%, 1%, 0) scale(1.04); }
}

@media (max-width: 760px) {
  .site-loader__name { top: 22px; left: 20px; }
  .site-loader__art { top: 16%; right: -10%; width: 76vw; height: 60%; }
  .site-loader__content { right: 20px; bottom: 30px; left: 20px; }
  .site-header { padding: 22px 20px; }
  .room { inset: 0; transform-origin: 63% 48%; }
  .left-plane { top: 17%; width: 60%; }
  .back-plane { top: 20%; right: 1%; left: 49%; }
  .right-plane { right: -15%; width: 25%; }
  .ceiling-plane { height: 29%; }
  .floor-plane { height: 34%; }
  .doorway { top: 27%; left: 68%; width: 26%; height: 48%; }
  .artwork--left { top: 43%; left: 10%; width: 32vw; }
  .artwork--back { display: none; }
  .enter-button { right: 20px; bottom: 24px; width: calc(100% - 40px); }
  .is-entered .room { transform: scale(1.75) translate3d(-18%, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}

.no-scroll { overflow: hidden; }

.mobile-menu {
  position: fixed;
  z-index: 18;
  inset: 0;
  display: grid;
  align-content: end;
  background: #171714;
  color: #f3f0e9;
  opacity: 0;
  padding: 100px 20px 38px;
  pointer-events: none;
  transform: translateY(-100%);
  transition: opacity 500ms ease, transform 800ms cubic-bezier(.16,1,.3,1);
}

.mobile-menu.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); }
.mobile-menu nav { display: grid; }
.mobile-menu a {
  display: grid;
  align-items: baseline;
  border-top: 1px solid rgba(255,255,255,.22);
  padding: 13px 0 11px;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(34px, 11vw, 52px);
  letter-spacing: -.045em;
}

.section-marker {
  display: grid;
  grid-template-columns: 70px 1fr auto;
  align-items: center;
  border-top: 1px solid rgba(23,23,20,.3);
  padding-top: 11px;
  font-size: 10px;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.section-marker span:last-child { color: #77746d; }
.section-marker--light { border-color: rgba(255,255,255,.32); }
.section-marker--light span:last-child { color: #aaa69e; }

.works-section {
  position: relative;
  background: #f3f1eb;
  padding: 28px 3.2vw 15vw;
}

.work-categories {
  position: sticky;
  z-index: 12;
  top: 0;
  display: flex;
  gap: clamp(28px, 4.5vw, 84px);
  border-bottom: 1px solid rgba(23,23,20,.2);
  margin: clamp(18px, 2vw, 32px) -3.2vw 0;
  background: #f3f1eb;
  padding: 68px 3.2vw 0;
}
.work-categories button {
  position: relative;
  display: flex;
  gap: 8px;
  border: 0;
  background: transparent;
  padding: 0 0 12px;
  color: #77746d;
  cursor: pointer;
  font-size: 10px;
  letter-spacing: .06em;
  text-transform: uppercase;
  transition: color 220ms ease;
}
.work-categories button::after {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 1px;
  background: var(--ink);
  content: '';
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 320ms cubic-bezier(.16,1,.3,1);
}
.work-categories button:hover,
.work-categories button:focus-visible,
.work-categories button.is-active { color: var(--ink); }
.work-categories button.is-active::after { transform: scaleX(1); }
.work-categories button span { color: #99968e; font-size: 8px; }

.gallery-hang {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 11vw 2.2vw;
  align-items: start;
  padding: clamp(80px, 8vw, 140px) 5.5vw 1vw;
  scroll-margin-top: 124px;
}

.work-card button, .available-card button {
  display: block;
  width: 100%;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: zoom-in;
}

.work-card {
  --art-width: clamp(240px, 18vw, 350px);
  display: grid;
  grid-template-columns: 42px minmax(0, var(--art-width)) clamp(130px, 8vw, 160px);
  gap: clamp(18px, 2vw, 40px);
  align-items: stretch;
  justify-content: center;
}

.work-card--featured { --art-width: clamp(340px, 24vw, 460px); grid-column: 2 / span 6; }
.work-card--tall { --art-width: clamp(220px, 14vw, 280px); grid-column: 8 / span 5; margin-top: -2vw; }
.work-card--small { --art-width: clamp(220px, 15vw, 300px); grid-column: 1 / span 6; margin-top: 4vw; }
.work-card--wide { --art-width: clamp(360px, 25vw, 500px); grid-column: 7 / span 6; margin-top: 12vw; }
.work-card--tall:nth-of-type(5) { --art-width: clamp(280px, 18vw, 360px); grid-column: 2 / span 5; margin-top: 8vw; }
.work-card--mid-tall { --art-width: clamp(280px, 18vw, 360px); grid-column: 2 / span 5; margin-top: 8vw; }
.work-card--square { --art-width: clamp(280px, 18vw, 360px); grid-column: 7 / span 6; margin-top: 20vw; }
.work-card[hidden] { display: none !important; }
.gallery-hang.is-filtered .work-card { margin-top: 0; }
.gallery-hang.is-filtered .filter-order-1 { grid-column: 2 / span 6; }
.gallery-hang.is-filtered .filter-order-2 { grid-column: 8 / span 5; margin-top: 5vw; }
.gallery-hang.is-filtered .filter-order-3 { grid-column: 1 / span 6; margin-top: 7vw; }
.gallery-hang.is-filtered .filter-order-4 { grid-column: 7 / span 6; margin-top: 12vw; }

.available-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(120px, 10vw, 172px);
  gap: clamp(18px, 2.2vw, 38px);
  align-items: stretch;
}

.art-frame {
  position: relative;
  display: flex;
  width: 100%;
  aspect-ratio: 1 / .93;
  align-items: center;
  justify-content: center;
  overflow: visible;
  background: transparent;
}
.available-card .art-frame { aspect-ratio: .88; }
.work-card .art-frame { aspect-ratio: var(--art-ratio, 730 / 1034); }

.art-surface {
  display: block;
  width: 58%;
  aspect-ratio: .78;
  border: 5px solid #4d4033;
  box-shadow: 12px 16px 26px rgba(36,31,25,.26), 2px 3px 6px rgba(36,31,25,.14);
  transition: transform 700ms cubic-bezier(.16,1,.3,1), box-shadow 700ms ease;
}
.work-card .art-surface { width: 100%; height: 100%; }
.work-card .art-surface img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.work-card button:hover .art-surface, .work-card button:focus-visible .art-surface,
.available-card button:hover .art-surface, .available-card button:focus-visible .art-surface {
  transform: scale(1.018);
  box-shadow: 16px 22px 32px rgba(36,31,25,.3), 3px 4px 7px rgba(36,31,25,.16);
}

.art-one {
  background:
    linear-gradient(90deg, transparent 48%, rgba(252,222,177,.17) 49% 51%, transparent 52%),
    radial-gradient(circle at 50% 42%, #d5a27d 0 12%, #6e3540 13% 27%, transparent 28%),
    linear-gradient(145deg, #181b20 0 38%, #8d513d 39% 61%, #d3b185 62% 66%, #303640 67%);
}
.art-two {
  background:
    radial-gradient(circle at 66% 20%, rgba(239,211,162,.9) 0 6%, transparent 7%),
    linear-gradient(169deg, #22344d 0 33%, #8499a5 34% 36%, #bd744b 37% 58%, #262934 59% 78%, #d1b17e 79%);
}
.art-three {
  background:
    radial-gradient(ellipse at 72% 68%, #a36a45 0 9%, transparent 10%),
    linear-gradient(36deg, #d1be91 0 27%, #3a3631 28% 53%, #6c3534 54% 71%, #b7a377 72%);
}
.art-four {
  background:
    linear-gradient(83deg, transparent 29%, rgba(205,173,128,.35) 30% 31%, transparent 32%),
    radial-gradient(circle at 61% 41%, #8b4d42 0 8%, transparent 9%),
    linear-gradient(153deg, #151c21 0 33%, #46353e 34% 61%, #8a684a 62% 71%, #263843 72%);
}
.art-five {
  background:
    radial-gradient(ellipse at 46% 56%, #ccb181 0 14%, #703f39 15% 27%, transparent 28%),
    linear-gradient(128deg, #28333d 0 46%, #a06b4b 47% 49%, #413138 50% 78%, #a59879 79%);
}
.art-six {
  background:
    linear-gradient(45deg, transparent 44%, rgba(227,198,151,.22) 45% 48%, transparent 49%),
    radial-gradient(circle at 30% 30%, #b67954 0 12%, transparent 13%),
    linear-gradient(145deg, #5c3033 0 28%, #222c35 29% 62%, #927551 63% 76%, #c9b083 77%);
}

.work-card .art-surface,
.available-card .art-surface,
.viewer-art {
  aspect-ratio: 730 / 1034;
  background-color: #171714;
  background-image: var(--art-image, none);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.work-card .art-surface.art-ceramic,
.viewer-art.art-ceramic { background-image: url('assets/sample-POTTERY.jpeg'); }
.work-card .art-surface.art-textile,
.viewer-art.art-textile { background-image: url('assets/sample-STITCHING.jpeg'); }

.work-number {
  align-self: start;
  padding-top: 3px;
  color: #77746d;
  font-size: 10px;
  letter-spacing: .05em;
  text-align: right;
}

.work-info {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  padding: 2px 0 0;
  color: #56534d;
  font-size: 9px;
  line-height: 1.4;
}
.work-info h3 { margin: 0; color: var(--ink); font-size: 12px; font-weight: 400; line-height: 1.2; }
.work-info p { margin: 0; }
.work-info .work-spec { margin-top: 16px; }
.work-info .work-price { margin-top: 18px; color: var(--ink); font-size: 9px; }
.work-card .work-info h3 { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(14px, .85vw, 17px); font-style: italic; }
.work-enquire {
  display: flex;
  width: 100%;
  justify-content: space-between;
  border-top: 1px solid rgba(23,23,20,.42);
  margin-top: auto;
  padding-top: 8px;
  color: var(--ink);
  font-size: 9px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.exhibition-section {
  position: relative;
  background: #171714;
  color: #f1eee6;
  padding: 28px 3.2vw clamp(52px, 5vw, 84px);
  scroll-margin-top: 72px;
}
.exhibition-layout {
  display: grid;
  grid-template-columns: minmax(300px, .78fr) minmax(0, 1.5fr);
  gap: clamp(46px, 5vw, 92px);
  margin-top: clamp(52px, 5vw, 82px);
}
.exhibition-info {
  display: flex;
  flex-direction: column;
  padding: 4px 0 2px;
}
.exhibition-status {
  width: max-content;
  border: 1px solid rgba(255,255,255,.3);
  margin: 0 0 22px;
  padding: 6px 9px;
  color: #c6c1b7;
  font-size: 10px;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.exhibition-status--current { border-color: rgba(217,225,190,.48); color: #d9e1be; }
.exhibition-info h2 {
  margin: 0;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(54px, 6vw, 94px);
  font-weight: 400;
  letter-spacing: -.06em;
  line-height: .88;
}
.exhibition-type {
  margin: 18px 0 0;
  color: #aaa69e;
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.exhibition-facts {
  display: grid;
  margin: clamp(42px, 4vw, 64px) 0 0;
}
.exhibition-facts div {
  display: grid;
  grid-template-columns: 84px 1fr;
  border-top: 1px solid rgba(255,255,255,.22);
  padding: 10px 0 11px;
  font-size: 12px;
  line-height: 1.45;
}
.exhibition-facts dt { color: #96928a; }
.exhibition-facts dd { margin: 0; }
.exhibition-artists { border-top: 1px solid rgba(255,255,255,.22); padding-top: 13px; }
.exhibition-artists > p { margin: 0 0 14px; color: #96928a; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.exhibition-artists ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 18px; margin: 0; padding: 0; list-style: none; }
.exhibition-artists li { color: #aaa69e; font-size: 11px; line-height: 1.35; }
.exhibition-artists strong { color: #f1eee6; font-weight: 400; }
.exhibition-credit { margin: 28px 0 0; color: #77746d; font-size: 9px; line-height: 1.45; }
.exhibition-poster-link {
  display: flex;
  justify-content: space-between;
  border-top: 1px solid rgba(255,255,255,.26);
  margin-top: 24px;
  padding-top: 11px;
  font-size: 10px;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.exhibition-gallery { min-width: 0; }
.exhibition-slider {
  display: flex;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.exhibition-slider::-webkit-scrollbar { display: none; }
.exhibition-slide {
  min-width: 100%;
  margin: 0;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
.exhibition-image-stage {
  position: relative;
  display: grid;
  height: min(660px, calc(100svh - 220px));
  min-height: 520px;
  overflow: hidden;
  place-items: center;
  background:
    radial-gradient(ellipse at 50% 34%, rgba(255,255,255,.72), transparent 54%),
    linear-gradient(115deg, #cbc6bc, #eeeae1 58%, #c6c0b5);
}
.exhibition-slide--poster .exhibition-image-stage {
  padding: clamp(20px, 3vw, 42px);
  background: #22221f;
}
.exhibition-slide--poster img {
  width: auto;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  box-shadow: 14px 20px 44px rgba(0,0,0,.42);
}
.exhibition-slide--video .exhibition-image-stage { background: #0c0c0b; }
.exhibition-slide--video video { display: block; width: 100%; height: 100%; object-fit: cover; }
.exhibition-video-toggle {
  position: absolute;
  right: 18px;
  bottom: 18px;
  border: 1px solid rgba(255,255,255,.65);
  background: rgba(16,16,14,.62);
  color: #f1eee6;
  cursor: pointer;
  padding: 9px 13px;
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
}
.exhibition-video-toggle:hover,
.exhibition-video-toggle:focus-visible { background: #f1eee6; color: #171714; }
.exhibition-slide--full .exhibition-image-stage::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 15%;
  background: linear-gradient(102deg, rgba(119,113,103,.55), rgba(177,171,160,.52));
  clip-path: polygon(0 35%, 100% 0, 100% 100%, 0 100%);
  content: '';
}
.exhibition-image-stage img { display: block; }
.exhibition-slide--full img {
  position: relative;
  z-index: 2;
  width: auto;
  height: 78%;
  border: 5px solid #4d4033;
  box-shadow: 18px 25px 36px rgba(36,31,25,.3), 3px 4px 8px rgba(36,31,25,.16);
}
.exhibition-slide--detail-top img,
.exhibition-slide--detail-bottom img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: contrast(1.02);
  transform: scale(1.05);
}
.exhibition-slide--detail-top img { object-position: center 14%; }
.exhibition-slide--detail-bottom img { object-position: center 88%; }
.exhibition-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid rgba(255,255,255,.26);
  margin-top: 24px;
  padding-top: 11px;
}
.exhibition-controls p {
  margin: 0;
  color: #a9a59d;
  font-size: 10px;
  letter-spacing: .07em;
}
.exhibition-controls div { display: flex; gap: 7px; }
.exhibition-controls button {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 50%;
  background: transparent;
  color: #f1eee6;
  cursor: pointer;
  font-size: 16px;
  transition: background 220ms ease, color 220ms ease, opacity 220ms ease;
}
.exhibition-controls button:hover,
.exhibition-controls button:focus-visible { background: #f1eee6; color: #171714; }
.exhibition-controls button:disabled { cursor: default; opacity: .28; }

.available-section { background: #e9e5dc; padding: 28px 3.2vw 13vw; }
.available-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 7vw; padding: clamp(90px, 9vw, 150px) 5.5vw 0; }
.available-card .art-frame { background: transparent; }
.available-card:nth-child(2) { margin-top: 12vw; }
.work-info--available > a { display: flex; width: 100%; justify-content: space-between; border-top: 1px solid rgba(23,23,20,.42); margin-top: auto; padding-top: 9px; color: var(--ink); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }

.about-section {
  background: #d9d5cc;
  color: var(--ink);
  padding: 28px 3.2vw clamp(110px, 11vw, 180px);
  scroll-margin-top: 72px;
}
.about-heading,
.about-content { max-width: 1080px; margin-right: auto; margin-left: auto; }
.about-heading { margin-top: clamp(74px, 7vw, 112px); }
.about-heading h2 {
  max-width: 720px;
  margin: 0;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(48px, 4vw, 66px);
  font-weight: 400;
  letter-spacing: -.055em;
  line-height: .94;
}
.about-content { margin-top: clamp(54px, 5vw, 80px); }
.about-copy,
.artist-statement {
  display: grid;
  grid-template-columns: minmax(120px, 170px) minmax(0, 700px);
  gap: clamp(34px, 5vw, 76px);
  justify-content: end;
  align-items: start;
}
.about-copy h3,
.artist-statement h3 {
  margin: 3px 0 0;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.about-biography {
  max-width: 700px;
  font-size: clamp(13px, .9vw, 16px);
  line-height: 1.65;
}
.about-biography p { margin: 0 0 1.5em; }
.about-biography p:last-child { margin-bottom: 0; }
.about-lead {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(18px, 1.3vw, 22px);
  letter-spacing: -.02em;
  line-height: 1.4;
}
.artist-statement {
  border-top: 1px solid rgba(23,23,20,.32);
  margin-top: clamp(72px, 7vw, 112px);
  padding-top: 16px;
}
.artist-statement blockquote {
  max-width: 700px;
  margin: 0;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(14px, .95vw, 16px);
  font-style: italic;
  letter-spacing: -.015em;
  line-height: 1.62;
}
.artist-statement blockquote p { margin: 0 0 1.25em; }
.artist-statement blockquote p:last-child { margin-bottom: 0; }

.contact-section {
  min-height: 95vh;
  display: flex;
  flex-direction: column;
  background: #000;
  color: #f4ece0;
  padding: 28px 3.2vw 34px;
}
.contact-topline {
  display: grid;
  grid-template-columns: 70px 1fr auto;
  border-top: 1px solid rgba(255,255,255,.48);
  padding-top: 11px;
  font-size: 10px;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.contact-invitation {
  margin: auto 0 6vw;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(44px, 7vw, 136px);
  letter-spacing: -.065em;
  line-height: .9;
}
.contact-email {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(255,255,255,.52);
  padding-bottom: 12px;
  font-size: clamp(24px, 4.4vw, 84px);
  letter-spacing: -.045em;
}
.footer-meta {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 30px;
  padding-top: 5vw;
  font-size: 10px;
  line-height: 1.5;
  text-transform: uppercase;
}
.footer-meta p { margin: 0; }
.footer-links { display: flex; gap: clamp(24px, 3vw, 54px); }
.footer-instagram,
.back-to-top { border-top: 1px solid rgba(255,255,255,.5); padding-top: 8px; }

.art-viewer {
  position: fixed;
  z-index: 40;
  inset: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 32vw);
  background: rgba(237,234,226,.98);
  animation: viewer-in 600ms cubic-bezier(.16,1,.3,1) both;
}
.art-viewer[hidden] { display: none; }
.viewer-close {
  position: absolute;
  z-index: 3;
  top: 25px; right: 3.2vw;
  display: flex;
  gap: 24px;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 10px;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.viewer-close span { font-size: 18px; line-height: 8px; }
.viewer-stage { display: grid; min-height: 100svh; place-items: center; padding: 6vw; background: #d9d6cf; }
.viewer-stage .art-frame--large { width: min(64vh, 70%); max-height: 78vh; aspect-ratio: .82; background: transparent; overflow: visible; }
.viewer-stage .art-surface { width: 100%; max-height: 78vh; box-shadow: 26px 36px 50px rgba(36,31,25,.28), 4px 6px 10px rgba(36,31,25,.16); }
.viewer-details { display: flex; flex-direction: column; justify-content: center; padding: 10vw 4vw 5vw; }
.viewer-details > span { color: #77746d; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.viewer-details h2 { max-width: 360px; margin: 28px 0 20px; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(34px, 4.6vw, 78px); font-weight: 400; letter-spacing: -.06em; line-height: .9; }
.viewer-details p { color: #68655f; font-size: 11px; line-height: 1.5; }
.viewer-description span { display: block; }
.viewer-description strong { display: block; margin-top: 1.5em; font-weight: 400; }
.viewer-details > a { display: flex; justify-content: space-between; border-top: 1px solid rgba(23,23,20,.42); margin-top: auto; padding-top: 10px; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }

@keyframes viewer-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 760px) {
  .section-marker { grid-template-columns: 35px 1fr auto; }
  .works-section, .available-section { padding-right: 20px; padding-left: 20px; }
  .work-categories {
    top: 0;
    gap: 26px;
    margin-right: -20px;
    margin-left: -20px;
    overflow-x: auto;
    padding: 58px 20px 0;
    scrollbar-width: none;
  }
  .work-categories::-webkit-scrollbar { display: none; }
  .work-categories button { flex: 0 0 auto; }
  .gallery-hang { scroll-margin-top: 112px; }
  .gallery-hang { display: block; padding: 90px 0 0; }
  .work-card {
    width: 100%;
    grid-template-columns: 1fr;
    gap: 16px;
    margin: 0 0 34vw !important;
  }
  .work-card:last-child { margin-bottom: 0 !important; }
  .work-card .art-frame, .work-card .work-info, .work-number { width: min(74vw, 320px); margin-right: auto; margin-left: auto; }
  .available-card {
    width: 100%;
    grid-template-columns: minmax(0, 1fr) minmax(108px, 31vw);
    gap: 16px;
  }
  .work-number { padding-top: 0; text-align: left; }
  .work-info { padding-top: 2px; font-size: 10px; }
  .work-info h3 { font-size: 12px; }
  .work-card .work-info h3 { font-size: 17px; }
  .work-info .work-spec { margin-top: 16px; }
  .work-info .work-price { margin-top: 18px; font-size: 11px; }
  .work-enquire { margin-top: 48px; }
  .exhibition-section { padding: 96px 20px 48px; scroll-margin-top: 0; }
  .exhibition-layout { display: block; min-height: 0; margin-top: 68px; }
  .exhibition-info { padding: 0; }
  .exhibition-info h2 { font-size: clamp(56px, 19vw, 88px); }
  .exhibition-type { font-size: 11px; }
  .exhibition-facts div { grid-template-columns: 82px 1fr; font-size: 12px; }
  .exhibition-artists ul { gap: 7px 16px; }
  .exhibition-artists li { font-size: 11px; }
  .exhibition-gallery { margin-top: 64px; }
  .exhibition-image-stage { height: 72svh; min-height: 460px; }
  .exhibition-slide--poster .exhibition-image-stage { padding: 20px; }
  .exhibition-slide--full img { height: 70%; }
  .exhibition-controls { margin-top: 20px; }
  .available-grid { display: block; padding: 90px 0 0; }
  .available-card, .available-card:nth-child(2) { margin: 0 0 28vw; }
  .about-section { padding: 24px 20px 22vw; }
  .about-section .section-marker { grid-template-columns: 35px 1fr; }
  .about-heading { margin-top: 70px; }
  .about-heading h2 { max-width: 500px; font-size: clamp(44px, 10vw, 54px); }
  .about-content { margin-top: 48px; }
  .about-copy, .artist-statement { display: block; max-width: 500px; }
  .about-copy h3, .artist-statement h3 { margin: 0 0 28px; }
  .about-biography { max-width: 500px; font-size: 13px; line-height: 1.62; }
  .about-lead { font-size: 17px; line-height: 1.42; }
  .artist-statement { margin-top: 20vw; padding-top: 12px; }
  .artist-statement blockquote { font-size: 14px; line-height: 1.62; }
  .contact-section { min-height: 90svh; padding: 24px 20px; }
  .contact-topline { grid-template-columns: 35px 1fr; }
  .contact-topline span:last-child { display: none; }
  .contact-invitation { margin: auto 0 18vw; font-size: 13.5vw; }
  .contact-email { font-size: 6.8vw; }
  .footer-meta { grid-template-columns: 1fr 1fr; gap: 28px; padding-top: 18vw; }
  .footer-links { display: grid; gap: 12px; }
  .back-to-top { text-align: right; }
  .art-viewer { grid-template-columns: 1fr; grid-template-rows: minmax(0, 62vh) 1fr; overflow-y: auto; }
  .viewer-stage { min-height: 62vh; padding: 72px 38px 26px; }
  .viewer-stage .art-frame--large { width: min(42vh, 78%); }
  .viewer-details { min-height: 38vh; padding: 27px 20px 24px; }
  .viewer-details h2 { margin: 15px 0 12px; font-size: 40px; }
  .viewer-details > a { margin-top: 28px; }
  .viewer-close { top: 22px; right: 20px; }
}
