@font-face {
  font-family:Grotesk;
  src:url('/fonts/LiberationSans-Regular.ttf') format('truetype');
  font-display:swap
}
@font-face {
  font-family:Roman;
  src:url('/fonts/LiberationSerif-Regular.ttf') format('truetype');
  font-display:swap
}
:root {
  --paper:#f9f9f6;
  --ink:#20221f;
  --muted:#666862;
  --rule:#c7c9c2;
  --margin:clamp(24px,4.45vw,80px);
  --serif:Roman,Georgia,serif;
  --sans:Grotesk,Arial,sans-serif
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:35px
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:16px/1.5 var(--sans);
  -webkit-font-smoothing:antialiased
}
body.menu-open,body.viewer-open {
  overflow:hidden
}
.visually-hidden {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0
}
a {
  color:inherit;
  text-decoration:none
}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible {
  outline:2px solid var(--ink);
  outline-offset:6px
}
a:hover .arrow,.text-link:hover .arrow {
  transform:translate(5px,-3px)
}
button,input {
  font:inherit;
  color:inherit
}
button {
  cursor:pointer
}
img {
  display:block;
  width:100%;
  height:auto
}
figure,blockquote,p,h1,h2,h3 {
  margin:0
}
h1,h2,h3 {
  font-weight:400
}
button {
  border:0;
  background:transparent
}
::selection {
  background:#d9ded1
}
.skip {
  position:fixed;
  top:0;
  left:24px;
  z-index:100;
  background:var(--ink);
  color:white;
  padding:12px;
  transform:translateY(-120%)
}
.skip:focus {
  transform:none
}
.site-header {
  padding:30px var(--margin);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px
}
.wordmark {
  font-size:17px;
  /* Compensate the replacement face's kerning, not the interface scale. */
  letter-spacing:.0255em;
  white-space:nowrap
}
.primary-nav {
  display:flex;
  gap:38px;
  font-size:15px
}
.primary-nav a {
  position:relative;
  padding:5px 0
}
.primary-nav a[aria-current=page]:after {
  content:'';
  height:1px;
  background:currentColor;
  position:absolute;
  left:0;
  right:0;
  bottom:1px
}
.menu-toggle {
  display:none
}
.home-site-header {
  position:sticky;
  top:0;
  z-index:40;
  background:var(--paper);
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:baseline;
  column-gap:3em;
  font-size:18px
}
.home-site-header .wordmark {
  font-size:18px;
  font-weight:700;
  font-style:normal
}
.home-header-quote {
  position:relative;
  display:inline-block;
  min-width:0;
  justify-self:start;
  font:italic 400 18px/1.2 var(--serif);
  letter-spacing:-.013em;
  white-space:nowrap;
  transform-origin:left center;
  transition:transform .75s cubic-bezier(.2,.75,.25,1)
}
.home-header-quote-text {
  position:relative;
  z-index:1
}
.home-header-quote-echo {
  position:absolute;
  inset:0;
  z-index:0;
  opacity:0;
  filter:blur(5px);
  pointer-events:none;
  transition:opacity .75s ease
}
.home-showcase {
  position:relative;
  isolation:isolate;
  padding:clamp(4px,1.5vh,18px) var(--margin) 0
}
.home-ambient-memory {
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  opacity:0;
  pointer-events:none;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 9%,#000 76%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0,#000 9%,#000 76%,transparent 100%)
}
.home-ambient-memory img {
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.01)
}
.home-slideshow {
  position:relative;
  z-index:1;
  max-width:1600px;
  margin:0 auto
}
.home-slideshow-stage {
  position:relative;
  height:min(720px,calc(100dvh - 190px),70vw);
  min-height:360px;
  overflow:visible;
  contain:layout;
  touch-action:pan-y
}
.home-slide-layer {
  position:absolute;
  inset:0;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:minmax(0,1fr);
  place-items:center
}
.home-slide-layer img,
.home-slide-image {
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center
}
.home-slide-current {
  z-index:3
}
.home-slide-memory {
  z-index:2;
  opacity:0;
  pointer-events:none
}
.home-slide-next {
  z-index:1;
  opacity:0;
  pointer-events:none
}
.home-slideshow.is-transitioning .home-slide-layer {
  pointer-events:none
}
.home-slideshow.is-transitioning .home-slide-current {
  animation:home-current-out 1.6s linear both
}
.home-slideshow.is-transitioning .home-slide-memory {
  animation:home-memory-through 1.6s cubic-bezier(.36,0,.2,1) both
}
.home-slideshow.is-transitioning .home-slide-next {
  animation:home-next-in 1.6s linear both
}
.home-slide-footer {
  display:flex;
  min-height:50px;
  align-items:center;
  justify-content:flex-end;
  padding:8px 0;
  border-bottom:1px solid var(--rule)
}
.home-slide-controls {
  display:flex;
  align-items:center;
  gap:4px;
  white-space:nowrap
}
.home-slide-controls button {
  min-width:34px;
  height:34px;
  padding:0 9px;
  border:1px solid transparent;
  font-size:13px
}
.home-slide-controls button:hover {
  border-color:var(--rule)
}
.home-slide-controls button:disabled {
  cursor:default;
  opacity:.35
}
.home-slide-counter {
  min-width:68px;
  padding:0 7px;
  color:var(--muted);
  font-size:10px;
  letter-spacing:.07em;
  text-align:center
}
.home-slide-toggle {
  min-width:58px!important;
  color:var(--muted)
}
@keyframes home-current-out {
  0% {opacity:1}
  25%,100% {opacity:0}
}
@keyframes home-memory-through {
  0% {opacity:0;transform:scale(1)}
  25% {opacity:1;transform:scale(1)}
  56.25% {opacity:1;transform:scale(1.04)}
  100% {opacity:0;transform:scale(1.04)}
}
@keyframes home-next-in {
  0%,56.25% {opacity:0}
  100% {opacity:1}
}
@keyframes home-ambient-through {
  0% {opacity:0}
  25% {opacity:.16}
  56.25% {opacity:.22}
  100% {opacity:0}
}
@keyframes home-ambient-expand {
  0% {transform:scale(1.01)}
  56.25%,100% {transform:scale(1.04)}
}
.home-showcase.is-transitioning .home-ambient-memory {
  animation:home-ambient-through 1.6s cubic-bezier(.36,0,.2,1) both
}
.home-showcase.is-transitioning .home-ambient-memory img {
  animation:home-ambient-expand 1.6s cubic-bezier(.36,0,.2,1) both
}
@media(hover:hover) and (pointer:fine) {
  .home-header-quote:hover {
    transform:scale(1.012)
  }
  .home-header-quote:hover .home-header-quote-echo {
    opacity:.1
  }
}
.arrow {
  display:inline-block;
  transition:transform .2s;
  font-family:Arial,sans-serif
}
.art-image {
  background:#efefeb
}
.art-image img {
  object-fit:contain
}
.image-link {
  display:block
}
.caption {
  display:flex;
  justify-content:space-between;
  gap:25px;
  font-size:13px;
  line-height:1.5;
  padding-top:17px
}
.caption .caption-secondary {
  color:var(--muted)
}
.caption .caption-number {
  font-size:11px;
  letter-spacing:.05em;
  color:var(--muted)
}
.section-label {
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--muted)
}
.section-heading {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  border-top:1px solid var(--rule);
  padding-top:22px;
  gap:25px;
  margin-bottom:70px
}
.section-heading h2 {
  font-size:35px;
  letter-spacing:-.025em
}
.text-link {
  font-size:14px;
  display:inline-flex;
  gap:30px;
  align-items:center
}
.home-works,.home-archive {
  padding:0 var(--margin) 120px
}
.work-composition {
  display:grid;
  grid-template-columns:repeat(12,1fr);
  column-gap:28px;
  row-gap:100px
}
.work-composition figure:nth-child(3n+1) {
  grid-column:1 / 7
}
.work-composition figure:nth-child(3n+2) {
  grid-column:9 / 13;
  margin-top:170px
}
.work-composition figure:nth-child(3n) {
  grid-column:3 / 11;
  margin-top:5px
}
.work-composition figure:nth-child(6n+4) {
  grid-column:1 / 6
}
.work-composition figure:nth-child(6n+5) {
  grid-column:7 / 13;
  margin-top:150px
}
.period-links {
  padding:0;
  max-width:none;
  margin-left:0
}
/* Align title and date ranges as a single editorial composition. */
@media (min-width: 901px) {
  .home-works {
    display:grid;
    grid-template-columns:minmax(210px, .42fr) minmax(0, 1fr);
    align-items:start;
    column-gap:clamp(48px, 6vw, 130px)
  }
  .home-works .section-heading {
    margin-bottom:0;
    padding-top:13px;
    border-top:1px solid var(--rule)
  }
  .home-works .period-links {
    min-width:0
  }
}
.period-link {
  border-top:1px solid var(--rule);
  padding:23px 0;
  display:flex;
  gap:30px;
  align-items:center
}
.period-link:last-child {
  border-bottom:1px solid var(--rule)
}
.period-link .num {
  font-size:11px;
  color:var(--muted);
  width:55px
}
.period-link .period {
  font-size:38px;
  letter-spacing:-.03em
}
.period-link .arrow {
  margin-left:auto;
  font-size:23px
}
.home-archive-layout {
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:10vw;
  align-items:center
}
.home-archive-copy h2 {
  font:46px/1.1 var(--serif);
  letter-spacing:-.02em;
  margin-bottom:28px
}
.home-archive-copy p {
  color:var(--muted);
  max-width:390px;
  margin-bottom:35px;
  font-size:17px;
  line-height:1.6
}
.site-footer {
  margin:40px var(--margin) 0;
  padding:26px 0 28px;
  border-top:1px solid var(--rule);
  display:grid;
  grid-template-columns:1fr auto;
  gap:50px
}
.footer-name {
  font-size:29px;
  letter-spacing:-.03em
}
.footer-nav {
  display:flex;
  gap:30px;
  font-size:13px;
  align-items:start
}
.footer-note {
  font-size:11px;
  color:var(--muted);
  grid-column:1/-1;
  display:flex;
  justify-content:space-between;
  gap:20px
}
.page-head {
  padding:100px var(--margin) 70px
}
/* Biography: no duplicate eyebrow and no oversized gap below the site header. */
.page-head.bio-page-head {
  padding-top:clamp(6px, .7vw, 12px);
  padding-bottom:clamp(20px, 1.8vw, 30px);
}
.eyebrow {
  font-size:12px;
  color:var(--muted);
  margin-bottom:30px;
  display:flex;
  gap:16px;
  align-items:center
}
.page-title {
  font-size:clamp(60px,6.2vw,108px);
  letter-spacing:-.05em;
  line-height:1.03
}
.page-deck {
  font:26px/1.35 var(--serif);
  max-width:610px;
  margin-top:34px
}
.works-filter {
  margin:0 var(--margin) 80px;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  display:flex;
  gap:32px;
  padding:19px 0;
  flex-wrap:wrap;
  font-size:14px
}
.works-filter a {
  color:var(--muted)
}
.works-filter a[aria-current=page] {
  color:var(--ink);
  text-decoration:underline;
  text-underline-offset:6px
}
.works-body {
  padding:0 var(--margin) 130px
}
.empty-period {
  min-height:340px;
  max-width:650px;
  padding:70px 0
}
.empty-period h2 {
  font:36px var(--serif);
  margin-bottom:22px
}
.empty-period p {
  color:var(--muted);
  line-height:1.7
}
.placeholder {
  min-height:280px;
  background:#eeefea;
  display:grid;
  place-items:center;
  text-align:center;
  padding:20px;
  color:var(--muted);
  font-size:13px
}
.placeholder span {
  border-bottom:1px solid var(--rule);
  padding-bottom:10px
}
.artwork-head {
  padding:60px var(--margin) 30px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:25px;
  font-size:13px;
  color:var(--muted)
}
.artwork-main {
  padding:20px var(--margin) 90px
}
.artwork-main>figure {
  margin:0 auto;
  max-width:1160px
}
.viewer-trigger {
  display:block;
  padding:0;
  width:100%;
  cursor:zoom-in
}
.artwork-main .art-image img {
  max-height:78vh;
  width:100%;
  object-fit:contain
}
.viewer-hint {
  font-size:11px;
  margin:14px 0 0;
  color:var(--muted);
  display:flex;
  justify-content:space-between
}
.artwork-info {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  max-width:1160px;
  margin:70px auto 0
}
.artwork-info h1 {
  font:44px/1.1 var(--serif);
  letter-spacing:-.02em
}
.metadata {
  display:grid;
  grid-template-columns:110px 1fr;
  font-size:14px;
  gap:11px 24px;
  margin:0
}
.metadata dt {
  color:var(--muted)
}
.metadata dd {
  margin:0
}
.placeholder-note {
  font-size:12px;
  color:var(--muted);
  margin-top:18px;
  max-width:310px
}
.artwork-pagination {
  border-top:1px solid var(--rule);
  margin:30px var(--margin) 100px;
  padding-top:23px;
  display:flex;
  justify-content:space-between;
  font-size:14px;
  gap:20px
}
.viewer {
  position:fixed;
  inset:0;
  background:var(--paper);
  z-index:100;
  display:none
}
.viewer.is-open {
  display:block
}
.viewer-bar {
  height:75px;
  padding:20px 30px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  border-bottom:1px solid var(--rule)
}
.viewer-actions {
  display:flex;
  gap:22px;
  align-items:center
}
.viewer-actions button {
  padding:7px;
  font-size:16px
}
.viewer-scroll {
  position:absolute;
  top:76px;
  bottom:0;
  left:0;
  right:0;
  overflow:auto;
  touch-action:pan-x pan-y pinch-zoom;
  display:grid;
  place-items:center;
  padding:35px
}
.viewer-scroll img {
  width:auto;
  height:auto;
  max-width:100%;
  max-height:calc(100dvh - 145px);
  transform-origin:center
}
.viewer-scroll:focus-visible {
  outline:1px solid var(--ink);
  outline-offset:-2px
}
.viewer-scroll.is-zoomed {
  display:block;
  /* Keep both image edges inside the scrollable coordinate space. */
  place-items:start
}
.viewer-scroll.is-zoomed img {
  width:180%;
  max-width:none;
  max-height:none;
  margin:0;
  cursor:zoom-out
}
.exhibitions {
  padding:0 var(--margin) 120px
}
.exhibition-entry {
  border-top:1px solid var(--rule);
  display:grid;
  grid-template-columns:100px 1.1fr 1fr;
  gap:50px;
  padding:35px 0 65px;
  align-items:start
}
.exhibition-entry .year {
  font-size:17px
}
.exhibition-entry h2 {
  font:35px/1.15 var(--serif);
  margin-bottom:18px
}
.exhibition-entry .place {
  font-size:14px;
  color:var(--muted);
  line-height:1.6
}
.exhibition-entry .text-link {
  margin-top:38px
}
.exhibition-entry figure {
  max-width:470px
}
.exhibition-simple {
  border-top:1px solid var(--rule);
  display:grid;
  grid-template-columns:100px 1fr;
  gap:50px;
  padding:24px 0
}
.exhibition-simple h2 {
  font-size:20px
}
.exhibition-simple p {
  color:var(--muted);
  font-size:14px;
  margin-top:6px
}
.article-cover {
  padding:0 var(--margin) 95px
}
.article-cover img {
  max-height:780px;
  object-fit:contain
}
.article-content {
  margin:0 auto;
  padding:0 var(--margin) 90px;
  max-width:920px;
  font:23px/1.55 var(--serif)
}
.article-content p+p {
  margin-top:25px
}
.article-content h2 {
  font:15px var(--sans);
  margin-bottom:25px
}
.article-details {
  padding:0 var(--margin) 60px;
  max-width:850px;
  margin:0 auto
}
.installation-gallery {
  padding:0 var(--margin) 100px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:65px 45px
}
.installation-gallery figure:first-child {
  grid-column:1/-1;
  max-width:1080px;
  justify-self:center
}
.bio-intro {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10vw;
  padding:0 var(--margin) 120px;
  align-items:start
}
.bio-portrait {
  max-width:580px;
  position:sticky;
  top:18px;
  align-self:start;
}
.bio-sticky-layout .bio-portrait img {
  width:auto;
  max-width:100%;
  max-height:calc(100vh - 36px);
  max-height:calc(100svh - 36px);
  object-fit:contain;
  object-position:top left;
}
.bio-copy {
  padding-top:0
}
.bio-copy .lead {
  font:32px/1.3 var(--serif);
  letter-spacing:-.018em;
  margin-bottom:35px
}
.bio-copy p+p {
  margin-top:24px
}
.bio-copy p {
  font-size:17px;
  line-height:1.7
}
.bio-sticky-layout .bio-chronology {
  padding:95px 0 110px;
  max-width:none;
  margin:0;
}
.bio-sticky-layout .chronology-section {
  grid-template-columns:minmax(110px, .34fr) minmax(0, 1fr);
  gap:clamp(20px, 2vw, 40px)
}
.bio-sticky-layout .chronology-row {
  grid-template-columns:minmax(72px, 85px) minmax(0, 1fr);
  gap:15px
}
.chronology-section {
  display:grid;
  grid-template-columns:200px 1fr;
  gap:50px;
  border-top:1px solid var(--rule);
  padding:28px 0 55px
}
.chronology-section h2 {
  font-size:15px
}
.chronology-row {
  display:grid;
  grid-template-columns:85px 1fr;
  gap:25px;
  padding-bottom:20px;
  font-size:15px
}
.chronology-row .year {
  color:var(--muted)
}
.archive-body {
  padding:0 var(--margin) 120px
}
.archive-tabs {
  display:flex;
  flex-wrap:wrap;
  gap:28px;
  padding:22px 0;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  margin-bottom:70px;
  font-size:14px
}
.archive-section {
  margin-bottom:100px;
  scroll-margin-top:30px
}
.archive-section h2 {
  font-size:32px;
  letter-spacing:-.025em;
  margin-bottom:35px
}
.archive-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:40px
}
.archive-grid img {
  aspect-ratio:1.3;
  object-fit:contain;
  object-position:left bottom
}
.archive-list a,.archive-list .archive-row {
  display:grid;
  grid-template-columns:95px 1fr auto;
  gap:30px;
  border-top:1px solid var(--rule);
  padding:22px 0;
  font-size:15px
}
.archive-list .year {
  color:var(--muted)
}
.archive-explainer {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10vw;
  border-top:1px solid var(--rule);
  padding-top:30px
}
.archive-explainer h2 {
  font:42px/1.15 var(--serif)
}
.archive-explainer p {
  font-size:16px;
  line-height:1.8;
  max-width:550px;
  margin-bottom:22px
}
.archive-source-link {
  font-size:13px;
  text-decoration:underline;
  text-underline-offset:4px
}
.gap-note {
  font-size:14px;
  color:var(--muted);
  border-left:1px solid var(--rule);
  padding:3px 0 3px 20px;
  max-width:650px;
  line-height:1.7
}
.contact-body {
  padding:0 var(--margin) 160px;
  max-width:850px
}
.contact-body p {
  font:27px/1.5 var(--serif);
  margin-bottom:25px
}
.contact-body .gap-note {
  font:15px/1.7 var(--sans)
}
@media(max-width:1180px) {
  .home-site-header .menu-toggle {
    display:flex;
    grid-column:3;
    align-items:center;
    gap:14px;
    padding:2px 0;
    font-size:13px;
    z-index:60
  }
  .home-site-header .menu-symbol {
    display:block;
    width:20px;
    height:10px;
    border-top:1px solid;
    border-bottom:1px solid
  }
  .home-site-header .primary-nav {
    display:none;
    position:fixed;
    inset:0;
    z-index:50;
    padding:125px var(--margin) 50px;
    background:var(--paper);
    flex-direction:column;
    overflow-y:auto;
    overscroll-behavior:contain;
    gap:23px;
    font:43px/1.3 var(--serif)
  }
  .home-site-header .primary-nav.is-open {
    display:flex
  }
  .home-site-header .primary-nav a {
    align-self:start;
    flex-shrink:0
  }
  .menu-open .home-site-header .wordmark {
    position:relative;
    z-index:60
  }
  .menu-open .home-site-header .menu-toggle {
    position:fixed;
    top:30px;
    right:var(--margin)
  }
}
@media(max-width:900px) {
  .home-site-header {
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    column-gap:24px;
    row-gap:8px
  }
  .home-site-header .wordmark {
    grid-column:1;
    grid-row:1
  }
  .home-site-header .home-header-quote {
    grid-column:1 / -1;
    grid-row:2;
    font-size:clamp(14px,2.2vw,17px)
  }
  .home-site-header .menu-toggle {
    grid-column:2;
    grid-row:1
  }
}
@media(max-width:1000px) {
  .primary-nav {
    gap:23px
  }
  .work-composition {
    column-gap:20px;
    row-gap:65px
  }
  .work-composition figure:nth-child(3n+2) {
    grid-column:8 / 13;
    margin-top:130px
  }
  .home-archive-layout {
    gap:7vw
  }
  .home-archive-copy h2 {
    font-size:38px
  }
  .exhibition-entry {
    grid-template-columns:60px 1fr 1fr;
    gap:28px
  }
  .chronology-section {
    grid-template-columns:150px 1fr;
    gap:30px
  }
  .bio-intro {
    gap:6vw
  }
  .bio-copy {
    padding-top:10px
  }
  .bio-copy .lead {
    font-size:27px
  }
}
@media(min-width:701px) and (max-width:1100px) {
  .bio-sticky-layout .chronology-section {
    grid-template-columns:minmax(0,1fr);
    gap:20px
  }
}
@media(max-width:700px) {
  :root {
    --margin:24px
  }
  .site-header {
    padding:24px var(--margin);
    gap:15px
  }
  .wordmark {
    font-size:14px;
    letter-spacing:.0155em
  }
  .home-site-header .wordmark {
    font-size:15px;
    letter-spacing:.0155em
  }
  .home-site-header .home-header-quote {
    font-size:13px;
    line-height:1.25
  }
  .menu-toggle {
    display:flex;
    align-items:center;
    gap:14px;
    padding:2px 0;
    font-size:13px;
    z-index:60
  }
  .menu-symbol {
    display:block;
    width:20px;
    height:10px;
    border-top:1px solid;
    border-bottom:1px solid
  }
  .primary-nav {
    display:none;
    position:fixed;
    inset:0;
    background:var(--paper);
    z-index:50;
    padding:125px 24px 50px;
    flex-direction:column;
    overflow-y:auto;
    overscroll-behavior:contain;
    gap:23px;
    font:43px/1.3 var(--serif)
  }
  .primary-nav.is-open {
    display:flex
  }
  .primary-nav a {
    align-self:start;
    flex-shrink:0
  }
  .primary-nav a[aria-current=page]:after {
    bottom:0
  }
  .menu-open .wordmark {
    position:relative;
    z-index:60
  }
  .menu-open .menu-toggle {
    position:fixed;
    top:24px;
    right:24px
  }
  .home-showcase {
    padding-top:4px
  }
  .home-slideshow-stage {
    height:min(360px,calc(100dvh - 220px),calc(74.6vw - 36px));
    min-height:230px
  }
  .home-slide-footer {
    min-height:48px;
    padding:7px 0
  }
  .home-slide-controls {
    justify-content:flex-end
  }
  .home-slide-counter {
    margin-left:0
  }
  .caption {
    font-size:12px;
    padding-top:13px;
    gap:15px
  }
  .caption .caption-number {
    font-size:10px
  }
  .section-heading {
    margin-bottom:42px;
    padding-top:19px
  }
  .section-heading h2 {
    font-size:27px
  }
  .text-link {
    font-size:12px;
    gap:13px
  }
  .home-works,.home-archive {
    padding-bottom:80px
  }
  .work-composition {
    display:block
  }
  .work-composition figure {
    margin:0 0 65px!important
  }
  .work-composition figure:nth-child(3n+2) {
    width:82%;
    margin-left:auto!important
  }
  .work-composition figure:nth-child(3n) {
    width:100%
  }
  .period-links {
    padding-top:5px
  }
  .period-link {
    padding:20px 0;
    gap:12px
  }
  .period-link .num {
    width:26px;
    font-size:10px
  }
  .period-link .period {
    font-size:30px
  }
  .period-link .arrow {
    font-size:19px
  }
  .home-archive-layout {
    display:flex;
    flex-direction:column;
    gap:35px;
    align-items:stretch
  }
  .home-archive-copy h2 {
    font-size:36px;
    max-width:300px;
    margin-bottom:20px
  }
  .home-archive-copy p {
    font-size:15px;
    margin-bottom:25px
  }
  .site-footer {
    grid-template-columns:1fr;
    gap:30px;
    padding-top:23px;
    margin-top:10px
  }
  .footer-name {
    font-size:26px
  }
  .footer-nav {
    flex-wrap:wrap;
    gap:20px;
    font-size:12px
  }
  .footer-note {
    font-size:10px;
    display:block;
    line-height:1.8
  }
  .footer-note span {
    display:block
  }
  .page-head {
    padding-top:70px;
    padding-bottom:50px
  }
  .eyebrow {
    font-size:11px;
    margin-bottom:24px
  }
  .page-title {
    font-size:58px;
    line-height:1.03
  }
  .page-deck {
    font-size:24px;
    margin-top:28px
  }
  .works-filter {
    gap:18px 23px;
    padding:18px 0;
    margin-bottom:50px;
    font-size:12px
  }
  .works-body {
    padding-bottom:55px
  }
  .artwork-head {
    font-size:11px;
    padding-top:40px;
    padding-bottom:28px;
    align-items:start
  }
  .artwork-head a:last-child {
    max-width:130px;
    text-align:right
  }
  .artwork-main {
    padding-top:10px;
    padding-bottom:50px
  }
  .artwork-main .art-image img {
    max-height:none
  }
  .artwork-info {
    display:block;
    margin-top:45px
  }
  .artwork-info h1 {
    font-size:35px
  }
  .metadata {
    margin-top:30px;
    font-size:13px;
    grid-template-columns:90px 1fr
  }
  .placeholder-note {
    font-size:11px;
    max-width:270px
  }
  .viewer-hint {
    font-size:10px
  }
  .artwork-pagination {
    font-size:12px;
    margin-bottom:65px
  }
  .viewer-bar {
    padding:15px 20px;
    font-size:12px
  }
  .viewer-actions {
    gap:14px
  }
  .viewer-scroll {
    padding:20px
  }
  .exhibitions {
    padding-bottom:65px
  }
  .exhibition-entry {
    grid-template-columns:40px 1fr;
    gap:20px;
    padding:25px 0 50px
  }
  .exhibition-entry .year {
    font-size:13px;
    padding-top:4px
  }
  .exhibition-entry h2 {
    font-size:29px
  }
  .exhibition-entry .place {
    font-size:13px
  }
  .exhibition-entry .text-link {
    margin-top:22px
  }
  .exhibition-entry figure {
    grid-column:2;
    margin-top:10px
  }
  .exhibition-simple {
    grid-template-columns:40px 1fr;
    gap:20px
  }
  .exhibition-simple h2 {
    font-size:18px
  }
  .exhibition-simple p {
    font-size:13px
  }
  .article-cover {
    padding-bottom:50px
  }
  .article-content {
    font-size:21px;
    padding-bottom:60px
  }
  .installation-gallery {
    grid-template-columns:1fr;
    gap:35px;
    padding-bottom:65px
  }
  .installation-gallery figure:first-child {
    grid-column:auto
  }
  .bio-intro {
    display:flex;
    flex-direction:column;
    gap:40px;
    padding-bottom:70px
  }
  .bio-portrait {
    width:88%
  }
  .bio-copy {
    padding:0
  }
  .bio-copy .lead {
    font-size:28px
  }
  .bio-copy p {
    font-size:15px;
    line-height:1.75
  }
  .bio-sticky-layout .bio-portrait {
    position:static;
    top:auto;
    width:88%;
  }
  .bio-sticky-layout .bio-portrait img {
    width:100%;
    max-height:none;
  }
  .bio-sticky-layout .bio-chronology {
    padding:15px 0 0;
  }
  .chronology-section,
  .bio-sticky-layout .chronology-section {
    display:block;
    padding:22px 0 25px
  }
  .chronology-section h2 {
    font-size:15px;
    margin-bottom:30px
  }
  .chronology-row {
    font-size:13px;
    grid-template-columns:66px 1fr;
    gap:15px
  }
  .archive-body {
    padding-bottom:60px
  }
  .archive-tabs {
    font-size:12px;
    gap:15px 22px;
    margin-bottom:45px
  }
  .archive-section {
    margin-bottom:65px
  }
  .archive-section h2 {
    font-size:27px
  }
  .archive-grid {
    grid-template-columns:1fr;
    gap:40px
  }
  .archive-grid img {
    aspect-ratio:auto;
    max-height:400px;
    object-position:left
  }
  .archive-list a,.archive-list .archive-row {
    grid-template-columns:50px 1fr auto;
    gap:15px;
    font-size:13px
  }
  .archive-explainer {
    display:block;
    padding-top:24px
  }
  .archive-explainer h2 {
    font-size:34px;
    margin-bottom:30px
  }
  .archive-explainer p {
    font-size:14px
  }
  .gap-note {
    font-size:13px
  }
  .contact-body {
    padding-bottom:100px
  }
  .contact-body p {
    font-size:24px
  }
}
@media(max-width:1180px) and (max-height:500px) {
  .home-site-header .primary-nav {
    padding-top:85px;
    padding-bottom:24px;
    gap:12px
  }
}
@media(max-width:700px) and (max-height:500px) {
  .primary-nav {
    padding-top:85px;
    padding-bottom:24px;
    gap:12px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    transition:none!important;
    animation:none!important
  }
  .home-header-quote:hover {
    transform:none!important
  }
  .home-header-quote-echo,
  .home-ambient-memory {
    opacity:0!important
  }
}

/* Canonical artwork labels */
.artwork-label {
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-height:118px;
  padding-top:14px;
  font-size:12px;
  line-height:1.35
}
.label-artist {
  margin-bottom:5px;
  color:var(--muted);
  font-size:10px;
  letter-spacing:.09em;
  text-transform:uppercase
}
.label-title {
  padding-right:42px;
  font:17px/1.23 var(--serif)
}
.label-title em {
  font-style:italic
}
.label-detail,.label-series {
  margin-top:3px
}
.label-number {
  position:absolute;
  top:16px;
  right:0;
  color:var(--muted);
  font-size:10px;
  letter-spacing:.06em
}
.home-work-composition .artwork-label {
  min-height:132px
}

/* Horizontal Works routes */
.works-gallery-page {
  overflow:hidden
}
.gallery-page-head {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:40px;
  padding:12px var(--margin) 14px
}
.gallery-page-head .eyebrow {
  margin-bottom:2px;
  font-size:10px
}
.gallery-page-head h1 {
  font-size:clamp(60px,6.2vw,108px);
  letter-spacing:-.05em;
  line-height:1.03
}
.gallery-page-head>p {
  max-width:470px;
  color:var(--muted);
  font-size:13px;
  text-align:right
}
.works-gallery-page .works-filter {
  margin-bottom:0;
  flex-wrap:nowrap;
  overflow-x:auto;
  scrollbar-width:none;
  white-space:nowrap
}
.works-gallery-page .works-filter::-webkit-scrollbar {
  display:none
}
.gallery-shell {
  --gallery-height:clamp(350px,calc(100dvh - 290px),740px)
}
.gallery-toolbar {
  min-height:46px;
  padding:0 var(--margin);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  font-size:11px;
  color:var(--muted)
}
.gallery-guidance {
  letter-spacing:.035em
}
.gallery-controls {
  display:flex;
  align-items:center;
  gap:7px
}
.gallery-status {
  min-width:66px;
  margin-right:6px;
  font-variant-numeric:tabular-nums;
  text-align:right
}
.gallery-controls button {
  width:34px;
  height:30px;
  border:1px solid var(--rule);
  display:grid;
  place-items:center;
  transition:border-color .2s,color .2s
}
.gallery-controls button:hover:not(:disabled) {
  border-color:var(--ink)
}
.gallery-controls button:disabled {
  opacity:.32;
  cursor:default
}
.horizontal-gallery {
  height:var(--gallery-height);
  display:flex;
  align-items:stretch;
  gap:clamp(28px,5vw,96px);
  overflow-x:auto;
  overflow-y:hidden;
  padding:0 var(--margin) 18px;
  scroll-padding-inline:var(--margin);
  scroll-snap-type:none;
  scroll-behavior:auto;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
  scrollbar-color:var(--rule) transparent;
  touch-action:pan-x pan-y pinch-zoom;
  cursor:grab
}
.horizontal-gallery.is-dragging {
  cursor:grabbing;
  user-select:none;
  scroll-snap-type:none;
  scroll-behavior:auto
}
.horizontal-gallery:focus-visible {
  outline:1px solid var(--ink);
  outline-offset:-1px
}
.gallery-item {
  --item-width:42vw;
  --figure-width:36vw;
  --art-height:66.667%;
  flex:0 0 min(var(--item-width),760px);
  width:min(var(--item-width),760px);
  min-width:300px;
  height:100%;
  display:grid;
  grid-template-rows:minmax(0,1fr) 124px;
  scroll-snap-align:none;
  scroll-snap-stop:normal
}
.gallery-item.format-portrait {
  --item-width:34vw;
  --figure-width:28vw
}
.gallery-item.format-wide {
  --item-width:54vw;
  --figure-width:50vw
}
.gallery-item.format-panorama {
  --item-width:68vw;
  --figure-width:64vw
}
.gallery-item[data-display-scale="1.5"] {
  --item-width:72vw;
  --figure-width:68vw;
  --art-height:100%;
  flex-basis:min(var(--item-width),1180px);
  width:min(var(--item-width),1180px)
}
.gallery-item[data-display-scale="0.45"] {
  --item-width:48vw;
  --figure-width:21vw;
  --art-height:30%;
  flex-basis:min(var(--item-width),860px);
  width:min(var(--item-width),860px)
}
.gallery-art-link {
  width:min(var(--figure-width),100%);
  max-width:100%;
  height:auto;
  min-height:0;
  align-self:stretch;
  justify-self:center;
  display:block;
  position:relative;
  overflow:hidden
}
.gallery-item>.gallery-art-link {
  height:var(--art-height);
  align-self:end
}
.gallery-art-image {
  position:absolute;
  inset:0;
  min-height:0;
  display:grid;
  place-items:center;
  background:transparent
}
.gallery-art-image img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain
}
.gallery-item .artwork-label {
  width:min(var(--figure-width),100%);
  min-height:124px;
  height:124px;
  justify-self:center
}
.period-panel {
  --art-height:100%;
  flex:0 0 min(62vw,1040px);
  width:min(62vw,1040px);
  min-width:620px;
  height:100%;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:8px;
  scroll-snap-align:none
}
.period-panel.format-wide {
  flex-basis:min(68vw,1120px);
  width:min(68vw,1120px)
}
.period-panel.format-panorama,
.period-panel[data-display-scale="1.5"] {
  flex-basis:min(76vw,1240px);
  width:min(76vw,1240px)
}
.period-panel[data-display-scale="1.5"] {
  --art-height:100%
}
.period-panel-head {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  border-top:1px solid var(--rule);
  padding-top:10px
}
.period-panel-head span {
  color:var(--muted);
  font-size:10px;
  letter-spacing:.06em
}
.period-panel-head h2 {
  font:30px/1 var(--serif);
  letter-spacing:-.02em
}
.period-panel figure {
  min-height:0;
  display:grid;
  grid-template-rows:minmax(0,1fr) 98px
}
.period-panel .gallery-art-link,
.period-panel .artwork-label {
  width:min(32vw,520px)
}
.period-panel.format-wide .gallery-art-link,
.period-panel.format-wide .artwork-label {
  width:min(45vw,720px)
}
.period-panel.format-panorama .gallery-art-link,
.period-panel.format-panorama .artwork-label {
  width:min(58vw,920px)
}
.period-panel .gallery-art-link {
  height:var(--art-height);
  align-self:end
}
.period-panel .artwork-label {
  min-height:98px;
  height:98px;
  justify-self:center
}
.period-enter {
  min-height:32px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-top:1px solid var(--rule);
  padding-top:8px;
  font-size:12px
}
.period-enter .arrow {
  margin-left:20px
}
.artwork-artist {
  margin-bottom:8px;
  color:var(--muted);
  font-size:11px;
  letter-spacing:.09em;
  text-transform:uppercase
}
.artwork-main .viewer-trigger .art-image {
  position:relative;
  height:min(76dvh,calc(100dvh - 190px));
  min-height:280px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:transparent
}
.artwork-main .viewer-trigger .art-image img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain
}
.artwork-pagination .text-link {
  max-width:32%;
  line-height:1.35
}
.artwork-pagination .period-return {
  text-align:center
}

@media(max-width:700px) {
  .artwork-label {
    min-height:108px;
    padding-top:11px;
    font-size:11px
  }
  .label-title {
    padding-right:34px;
    font-size:16px
  }
  .label-artist {
    font-size:9px
  }
  .home-work-composition .artwork-label {
    min-height:116px
  }
  .gallery-page-head {
    display:block;
    padding:18px var(--margin) 15px
  }
  .gallery-page-head .eyebrow {
    margin-bottom:5px
  }
  .gallery-page-head h1 {
    font-size:clamp(50px,9vw,64px)
  }
  .gallery-page-head>p {
    max-width:none;
    margin-top:8px;
    font-size:11px;
    text-align:left
  }
  .works-gallery-page .works-filter {
    gap:20px;
    margin:0 var(--margin);
    padding:12px 0;
    font-size:11px
  }
  .gallery-shell {
    --gallery-height:clamp(330px,calc(100dvh - 260px),520px)
  }
  .gallery-toolbar {
    min-height:40px;
    padding:0 var(--margin)
  }
  .gallery-guidance {
    font-size:9px
  }
  .gallery-controls {
    gap:5px
  }
  .gallery-status {
    min-width:51px;
    margin-right:2px;
    font-size:9px
  }
  .gallery-controls button {
    width:30px;
    height:27px
  }
  .horizontal-gallery {
    gap:18px;
    padding:0 18px 14px;
    scroll-padding-inline:18px
  }
  .gallery-item,
  .gallery-item.format-portrait,
  .gallery-item.format-wide,
  .gallery-item.format-panorama,
  .gallery-item[data-display-scale="1.5"],
  .gallery-item[data-display-scale="0.45"] {
    --item-width:calc(100vw - 36px);
    --figure-width:100%;
    flex:0 0 var(--item-width);
    width:var(--item-width);
    min-width:0;
    grid-template-rows:minmax(0,1fr) 110px
  }
  .gallery-item[data-display-scale="0.45"] {
    --figure-width:48%
  }
  .gallery-item .artwork-label {
    min-height:110px;
    height:110px
  }
  .period-panel,
  .period-panel.format-wide,
  .period-panel.format-panorama,
  .period-panel[data-display-scale="1.5"] {
    flex:0 0 calc(100vw - 36px);
    width:calc(100vw - 36px);
    min-width:0
  }
  .period-panel-head h2 {
    font-size:25px
  }
  .period-panel figure {
    grid-template-rows:minmax(0,1fr) 108px
  }
  .period-panel .gallery-art-link,
  .period-panel.format-wide .gallery-art-link,
  .period-panel.format-panorama .gallery-art-link,
  .period-panel .artwork-label,
  .period-panel.format-wide .artwork-label,
  .period-panel.format-panorama .artwork-label {
    width:100%
  }
  .period-panel .artwork-label {
    min-height:108px;
    height:108px
  }
  .period-enter {
    font-size:11px
  }
  .artwork-main .viewer-trigger .art-image {
    height:min(68dvh,calc(100dvh - 155px));
    min-height:220px
  }
  .artwork-pagination {
    display:grid;
    grid-template-columns:1fr 1fr
  }
  .artwork-pagination .text-link {
    max-width:none
  }
  .artwork-pagination .period-return {
    grid-column:1/-1;
    grid-row:2;
    justify-self:center
  }
  .artwork-pagination .text-link:last-child {
    text-align:right;
    justify-self:end
  }
}

@media(prefers-reduced-motion:reduce) {
  .horizontal-gallery {
    scroll-behavior:auto
  }
}

/* Period-led homepage: heading acts as a navigation link, without button styling. */
.home-works .section-heading h2 a { color:inherit; text-decoration:none }
.home-works .section-heading h2 a:hover { text-decoration:underline; text-underline-offset:.12em }

/* Uniform-height paintings in the four chronological galleries.
   Preserve each image's natural ratio; figure width follows image ratio.
   This deliberately overrides the old 66.667% / 100% / 30% scale tiers. */
.works-gallery-page .gallery-shell:not(.period-progression) {
  --gallery-art-height:clamp(205px, min(calc(100dvh - 390px), 28vw), 505px);
  --gallery-height:calc(var(--gallery-art-height) + 124px + 18px);
}
.works-gallery-page .gallery-shell:not(.period-progression) .gallery-item,
.works-gallery-page .gallery-shell:not(.period-progression) .gallery-item.format-portrait,
.works-gallery-page .gallery-shell:not(.period-progression) .gallery-item.format-wide,
.works-gallery-page .gallery-shell:not(.period-progression) .gallery-item.format-panorama,
.works-gallery-page .gallery-shell:not(.period-progression) .gallery-item[data-display-scale="1.5"],
.works-gallery-page .gallery-shell:not(.period-progression) .gallery-item[data-display-scale="0.45"] {
  --item-width:max(215px, calc(var(--gallery-art-height) * var(--art-ratio)));
  --figure-width:var(--item-width);
  --art-height:var(--gallery-art-height);
  flex:0 0 var(--item-width);
  width:var(--item-width);
  min-width:0;
  height:100%;
  grid-template-rows:var(--gallery-art-height) 124px;
}
.works-gallery-page .gallery-shell:not(.period-progression) .gallery-item > .gallery-art-link {
  width:100%;
  height:100%;
  align-self:stretch;
}
.works-gallery-page .gallery-shell:not(.period-progression) .gallery-item .artwork-label {
  width:100%;
  min-height:124px;
  height:124px;
}
@media(max-width:700px) {
  /* One complete artwork per mobile view, centred in a stable image stage.
     Panoramas must be reduced to fit the phone without cropping. */
  .works-gallery-page .gallery-shell:not(.period-progression) {
    --gallery-art-height:clamp(215px, calc(100dvh - 470px), 315px);
    --gallery-height:calc(var(--gallery-art-height) + 110px + 14px);
  }
  .works-gallery-page .gallery-shell:not(.period-progression) .gallery-item,
  .works-gallery-page .gallery-shell:not(.period-progression) .gallery-item.format-portrait,
  .works-gallery-page .gallery-shell:not(.period-progression) .gallery-item.format-wide,
  .works-gallery-page .gallery-shell:not(.period-progression) .gallery-item.format-panorama,
  .works-gallery-page .gallery-shell:not(.period-progression) .gallery-item[data-display-scale="1.5"],
  .works-gallery-page .gallery-shell:not(.period-progression) .gallery-item[data-display-scale="0.45"] {
    --item-width:calc(100vw - 36px);
    --figure-width:100%;
    flex:0 0 var(--item-width);
    width:var(--item-width);
    min-width:0;
    grid-template-rows:var(--gallery-art-height) 110px;
  }
  .works-gallery-page .gallery-shell:not(.period-progression) .gallery-item .artwork-label {
    min-height:110px;
    height:110px;
  }
}
