/*
Theme Name: Painter's Theme 3.0 – Motion Test
Theme URI: https://lukaszfurs.com/
Author: Lukasz Furs
Description: Motion architecture verification build, visually identical to Painter’s Theme 3.0. Compare scroll animations with the existing theme.
Version: 3.0.0-rc3
Requires at least: 6.4
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: lukasz-furs
*/
:root {
  /* Shared design tokens. Keep responsive overrides in their existing media queries. */
  --page-pad: 30px;
  --grid-gap: 22px;
  --measure-text: 68ch;
  --rule: rgba(0, 0, 0, 0.16);
  --black: #000;
  --white: #fff;
  --font: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
* {
  box-sizing: border-box;
}
html {
  margin: 0;
  padding: 0;
}
body {
  margin: 0;
  background: var(--white);
  font-family: var(--font);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.modal-open {
  overflow: hidden;
}
body,
body :where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,figcaption,time,small,strong,em,b,i,blockquote,button,input,textarea,select,label,summary,legend) {
  color: #000;
}
a,
a:visited,
a:hover,
a:focus,
a:active {
  color: #000;
  text-decoration: none;
}
a:focus-visible,
button:focus-visible,
select:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 1px solid #000;
  outline-offset: 3px;
}
img {
  display: block;
  max-width: 100%;
  height: auto;
}
figure {
  margin: 0;
}
button, input, textarea, select {
  font: inherit;
}
button {
  color: #000;
  background: transparent;
  border: 0;
  padding: 0;
}
/* Header */
.site-header {
  display: flex;
  justify-content: space-between;
}
.site-brand {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  line-height: 0;
  flex: 0 0 auto;
}
.site-brand img {
  display: block;
  height: auto;
}
.site-nav {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.site-nav a {
  white-space: nowrap;
}
.site-main {
  min-height: calc(100vh - 120px);
  padding: 0 var(--page-pad) 90px;
}
/* Generic page typography */
.page-wrap,
.post-single,
.archive-wrap {
  width: 100%;
}
.page-header {
  margin: 0 0 34px;
}
.page-title,
.archive-title,
.post-title,
.work-name,
.works-title {
  margin: 0;
}
.page-content > :first-child,
.entry-content > :first-child,
.post-content > :first-child {
  margin-top: 0;
}
.page-content > :last-child,
.entry-content > :last-child,
.post-content > :last-child {
  margin-bottom: 0;
}
.page-content img,
.post-content img,
.entry-content img {
  max-width: 100%;
  height: auto;
}
.page-content .aligncenter,
.post-content .aligncenter,
.entry-content .aligncenter {
  margin-left: auto;
  margin-right: auto;
}
.page-content hr,
.post-content hr,
.entry-content hr {
  border: 0;
  border-top: 1px solid var(--rule);
  margin: 30px 0;
}
/* Journal / homepage */
.journal {
  width: 100%;
}
.journal-entry {
  padding: 0 0 70px;
  margin: 0 0 70px;
}
.entry-date {
  white-space: nowrap;
}
.entry-kicker {
  margin: 0 0 9px;
}
.entry-lead {
  margin: 0 0 28px;
}
.entry-lead img {
  width: auto;
}
.entry-pagination,
.archive-pagination {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding-top: 15px;
}
/* Works archive */
.works-head {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 30px;
  margin-bottom: 26px;
}
.work-filters {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  justify-content: flex-end;
  text-align: right;
}
.work-filters a[aria-current="page"] {
  font-weight: 400;
}
.works-archive {
  width: 100%;
  min-width: 0;
}
/* Stable grid fallback. A small theme-owned script enhances this to masonry
   using measured grid-row spans; CSS columns are deliberately not used because
   balancing columns can reorder items when images load or the viewport changes. */
.works-grid {
  width: 100%;
  max-width: none;
  min-width: 0;
}
.work-card {
  vertical-align: top;
}
.work-card > a {
  display: block;
  width: 100%;
}
.work-card img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
}
.work-caption {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.work-caption .year {
  white-space: nowrap;
}
/* Single work */
.work-single {
  width: 100%;
}
.work-hero-link {
  display: block;
  width: 100%;
}
.work-hero-frame {
  width: 100%;
  aspect-ratio: var(--lf-hero-ratio, 1);
  max-height: 78vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.work-hero {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
  margin: 0;
}
.work-details {
  display: grid;
  grid-template-columns: minmax(160px, 220px) minmax(180px, 300px) minmax(0, 1fr);
  gap: 36px;
  align-items: start;
  margin-top: 24px;
}
.work-specs div + div {
  margin-top: 1px;
}
.work-text {
  max-width: 700px;
}
.work-gallery-item {
  display: inline-block;
  width: 100%;
  margin: 0 0 24px;
  break-inside: avoid;
  vertical-align: top;
}
.work-gallery-item img {
  width: 100%;
  height: auto;
}
.work-gallery-item figcaption {
  margin-top: 6px;
}
/* Vita */
.vita-page,
.vita-content {
  width: 100%;
}
.vita-section {
  width: 100%;
}
.vita-row {
  display: grid;
  grid-template-columns: 84px minmax(180px, 1fr) minmax(170px, 0.8fr) 90px;
  border-bottom: 1px solid var(--rule);
}
.vita-row > * {
  min-width: 0;
}
.vita-row .type {
  text-align: right;
}
/* Info */
.info-copy > :first-child {
  margin-top: 0;
}
.info-copy > :last-child {
  margin-bottom: 0;
}
.info-links {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
}
/* Single posts / journal entries */
.post-single {
  width: 100%;
}
.post-content .wp-block-image,
.post-content figure {
  margin-left: 0;
  margin-right: 0;
}
.post-content .wp-block-gallery {
  margin-left: 0;
  margin-right: 0;
}
.post-pagination {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  border-top: 0;
}
/* Lightbox: image uses the full available stage; controls overlay the image. */
.lf-lightbox[hidden] {
  display: none;
}
.lf-lightbox {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: rgba(255,255,255,0.985);
  padding: 24px;
}
.lf-lightbox-inner {
  position: relative;
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) auto;
  align-items: center;
}
.lf-lightbox-stage {
  position: relative;
  z-index: 1;
  min-width: 0;
  min-height: 0;
  width: 100%;
  height: 100%;
  grid-column: 1;
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lf-lightbox-stage img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
}
.lf-lightbox-nav {
  position: relative;
  z-index: 3;
  grid-column: 1;
  grid-row: 1;
  align-self: center;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin: 0;
  padding: 0;
  background: rgba(255,255,255,0.78);
  border-radius: 2px;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
}
.lf-lightbox-prev {
  justify-self: start;
  margin-left: 6px;
}
.lf-lightbox-next {
  justify-self: end;
  margin-right: 6px;
}
.lf-lightbox-nav[hidden] {
  display: none;
}
.lf-lightbox-close {
  position: absolute;
  top: 6px;
  right: 6px;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  background: rgba(255,255,255,0.94);
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  outline: none !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
}
.lf-lightbox-close:focus,
.lf-lightbox-close:active {
  outline: none !important;
  box-shadow: none !important;
}
.lf-lightbox-close:focus-visible {
  opacity: .65;
}
.lf-lightbox-caption {
  grid-column: 1;
  grid-row: 2;
  justify-self: center;
  max-width: min(900px, 86vw);
  padding-top: 10px;
  font-size: 0.625rem;
  text-align: center;
}
.lf-lightbox-caption[hidden] {
  display: none;
}
@media (max-width: 1100px) {
  .info-layout > :last-child {
    grid-column: 2;
  }
}
@media (max-width: 760px) {
  .site-header {
    align-items: flex-start;
    padding-top: 18px;
  }
  .journal-entry,
  .post-meta,
  .work-details,
  .info-layout {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .works-head {
    display: block;
  }
  .work-filters {
    justify-content: flex-start;
    margin-top: 10px;
  }
  .vita-row {
    grid-template-columns: 64px minmax(0, 1fr);
  }
  .vita-row .place,
  .vita-row .type {
    grid-column: 2;
    text-align: left;
  }
  .work-hero-frame {
    max-height: 66vh;
  }
  .lf-lightbox {
    padding: max(12px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));
  }
  .lf-lightbox-nav {
    width: 44px;
    height: 44px;
    font-size: 1.4375rem;
  }
  .lf-lightbox-prev {
    margin-left: 2px;
  }
  .lf-lightbox-next {
    margin-right: 2px;
  }
  .lf-lightbox-close {
    top: 4px;
    right: 4px;
    width: 44px;
    height: 44px;
  }
}
@media print {
  .site-header,
  .site-footer,
  .site-nav,
  .work-filters,
  .work-back,
  .lf-lightbox {
    display: none !important;
  }
  .site-main {
    padding: 0;
  }
  a {
    text-decoration: none !important;
  }
}
/* Required fallback/archive-safe layout */
.site-main--fallback {
  width: 100%;
}
.content-width {
  width: 100%;
  max-width: none;
}
.fallback-entry {
  margin: 0 0 72px;
}
.site-header {
  align-items: center;
  padding: 27px var(--page-pad) 35px;
  gap: 30px;
}
.site-brand img {
  width: 118px;
}
.site-nav {
  gap: 25px;
}
.site-main {
  padding-bottom: 100px;
}
.site-footer {
  letter-spacing: 0;
}
.page-header {
  margin-bottom: 36px;
}
.page-title,
.archive-title,
.work-name,
.works-title {
  font-size: 1rem;
  line-height: 1.25;
  letter-spacing: -0.025em;
  font-weight: 400;
}
/* Dates and categories act as metadata, not as competing headings. */
.entry-date {
  font-size: var(--type-small);
  line-height: 1.45;
  letter-spacing: -0.005em;
  font-variant-numeric: tabular-nums;
}
.entry-kicker {
  margin-bottom: 12px;
  font-size: 0.6875rem;
  line-height: 1.35;
  letter-spacing: 0.065em;
  text-transform: uppercase;
}
/* Journal index */
.entry-title {
  margin-bottom: 24px;
}
.entry-lead {
  margin-bottom: 29px;
}
.entry-lead img {
  max-width: min(1040px, 100%);
  height: auto;
}
.entry-content,
.page-content,
.post-content {
  letter-spacing: 0;
  overflow-wrap: break-word;
}
.entry-content p,
.page-content p,
.post-content p,
.entry-content ul,
.entry-content ol,
.page-content ul,
.page-content ol,
.post-content ul,
.post-content ol,
.entry-content blockquote,
.page-content blockquote,
.post-content blockquote {
  max-width: var(--measure-text);
}
.entry-content p,
.page-content p,
.post-content p {
  margin: 0 0 1.15em;
}
.entry-content ul,
.entry-content ol,
.page-content ul,
.page-content ol,
.post-content ul,
.post-content ol {
  padding-left: 1.25em;
  margin-top: 0;
  margin-bottom: 1.3em;
}
.entry-content li + li,
.page-content li + li,
.post-content li + li {
  margin-top: 0.35em;
}
.entry-content h1,
.page-content h1,
.post-content h1 {
  max-width: 25ch;
  text-wrap: pretty;
}
.entry-content blockquote,
.page-content blockquote,
.post-content blockquote {
  margin: 2em 0;
  padding: 0 0 0 20px;
  border-left: 1px solid #000;
  font-size: 1.1875rem;
  line-height: 1.45;
  letter-spacing: -0.02em;
}
.entry-content blockquote p,
.page-content blockquote p,
.post-content blockquote p {
  max-width: 50ch;
}
.entry-content a,
.page-content a,
.post-content a {
  text-decoration: none;
  text-underline-offset: 0;
}
.entry-content a:hover,
.page-content a:hover,
.post-content a:hover {
  text-decoration: none;
}
.wp-caption-text,
.entry-content figcaption,
.post-content figcaption,
.page-content figcaption,
.wp-block-image figcaption,
.wp-block-gallery figcaption {
  margin-top: 8px;
  font-size: var(--type-caption);
  letter-spacing: 0;
  font-weight: 400;
}
/* Lead / standfirst style used by the reusable post patterns. */
.lf-post-deck {
  max-width: 58ch !important;
  margin: 0 0 1.65em !important;
  font-size: clamp(1.125rem, 1.45vw, 1.3125rem) !important;
  line-height: 1.48 !important;
  letter-spacing: -0.018em !important;
  text-wrap: pretty;
}
/* Media has a separate rhythm from text; never force image crops. */
.entry-content > .wp-block-image,
.page-content > .wp-block-image,
.post-content > .wp-block-image,
.entry-content > figure,
.page-content > figure,
.post-content > figure {
  margin-top: 2em;
  margin-bottom: 2em;
}
.entry-content .wp-block-image img,
.page-content .wp-block-image img,
.post-content .wp-block-image img {
  width: auto;
  max-width: 100%;
  height: auto;
}
.entry-content .wp-block-gallery,
.page-content .wp-block-gallery,
.post-content .wp-block-gallery,
.entry-content .gallery,
.page-content .gallery,
.post-content .gallery {
  gap: 22px;
  margin-top: 2.25em;
  margin-bottom: 2.25em;
}
.entry-content .wp-block-gallery .wp-block-image,
.page-content .wp-block-gallery .wp-block-image,
.post-content .wp-block-gallery .wp-block-image {
  margin: 0;
}
.entry-content iframe,
.page-content iframe,
.post-content iframe,
.entry-content video,
.page-content video {
  max-width: 100%;
}
/* Single journal entry */
.post-meta {
  grid-template-columns: 132px minmax(0, 1fr);
  margin-bottom: 29px;
}
.post-content > img:first-child,
.post-content > .wp-post-image:first-child {
  margin-bottom: 2em;
}
.post-pagination {
  margin-top: 82px;
  padding-top: 16px;
  font-size: 0.75rem;
}
/* Works / image labels: clear, but subordinate to the artwork. */
.work-caption {
  margin-top: 9px;
  font-size: 0.75rem;
  line-height: 1.35;
  letter-spacing: -0.005em;
}
.work-name {
  font-size: 1rem;
}
.work-specs {
  font-size: 0.8125rem;
  line-height: 1.55;
}
.work-back {
  margin-top: 62px;
  font-size: 0.75rem;
}
.work-gallery {
  margin-top: 62px;
}
.work-gallery-item {
  margin-bottom: 28px;
}
.work-gallery-item figcaption {
  font-size: 0.6875rem;
}
.work-filters {
  font-size: 0.8125rem;
  line-height: 1.45;
}
/* Vita / info: same typographic system, quiet archive rules. */
/* Predictable, quiet interaction; supports keyboard focus without color cues. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
@media (max-width: 760px) {
  .entry-date {
    white-space: normal;
    font-size: 0.75rem;
  }
  .entry-title {
    margin-bottom: 19px;
  }
  .post-content {
    margin-left: 0;
  }
  .entry-content blockquote, .page-content blockquote, .post-content blockquote {
    font-size: 1.125rem;
  }
  .work-caption {
    font-size: 0.6875rem;
  }
}
@media (max-width: 440px) {
  .entry-title {
    font-size: 1.375rem;
  }
}
.post-header {
  width: 100%;
  margin: 0 0 clamp(24px, 3vw, 38px);
}
.post-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 7px 12px;
  margin: 0 0 12px;
  font-size: 0.6875rem;
  line-height: 1.35;
}
.post-meta .entry-kicker {
  margin: 0;
  font-size: 0.625rem;
  line-height: 1.35;
  letter-spacing: 0.075em;
  text-transform: uppercase;
}
.post-meta .entry-date {
  display: inline-block;
  font-size: 0.6875rem;
  line-height: 1.35;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
}
.post-title {
  display: block;
  width: 100%;
  max-width: 30ch;
  margin: 0;
  font-size: clamp(1.75rem, 3.2vw, 2.75rem);
  line-height: 1.06;
  letter-spacing: -0.043em;
  font-weight: 400;
  text-wrap: pretty;
}
.post-content {
  width: 100%;
  max-width: none;
  margin-left: 0;
  min-width: 0;
}
.post-content > .wp-post-image:first-child {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 0 0 clamp(24px, 3vw, 42px);
}
.post-content > :first-child {
  margin-top: 0;
}
.post-content > :last-child {
  margin-bottom: 0;
}
/* Homepage journal: date/category are one restrained metadata line, not a
   separate left-hand column competing with each post title. */
.entry-main {
  width: 100%;
  min-width: 0;
}
.entry-title {
  max-width: 46ch;
  margin: 0 0 22px;
  font-size: clamp(1.4375rem, 2vw, 1.875rem);
  line-height: 1.12;
  letter-spacing: -0.032em;
  font-weight: 400;
  text-wrap: pretty;
}
.entry-lead,
.entry-content {
  width: 100%;
  max-width: none;
}
/* Grid-driven masonry: CSS Grid fixes column tracks at breakpoints. JS only
   assigns row spans; item order and width do not depend on CSS column balancing. */
.works-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-flow: row;
  grid-auto-rows: auto;
  gap: var(--grid-gap);
  align-items: start;
}
.work-card {
  display: block;
  align-self: start;
  min-width: 0;
  width: 100%;
  margin: 0;
  padding: 0;
}
.works-grid.is-masonry {
  grid-auto-rows: 1px;
  column-gap: var(--grid-gap);
  row-gap: 0;
}
.works-grid.is-masonry .work-card {
  grid-row-end: span 1;
  padding-bottom: var(--grid-gap);
}
.works-grid img {
  width: 100%;
  max-width: 100%;
  height: auto;
}
@media (max-width: 1100px) {
  .works-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  :root {
    --type-body: 0.9375rem;
    --page-pad: 14px;
    --grid-gap: 12px;
  }
  .site-header {
    padding: 18px var(--page-pad) 25px;
    gap: 14px;
  }
  .site-brand img {
    width: 100px;
  }
  .site-nav {
    gap: 13px;
  }
  .site-main {
    padding-left: var(--page-pad);
    padding-right: var(--page-pad);
    padding-bottom: 60px;
  }
  .post-header {
    margin-bottom: 24px;
  }
  .post-meta {
    row-gap: 10px;
    gap: 6px 10px;
    margin-bottom: 10px;
  }
  .post-title {
    max-width: none;
    font-size: clamp(1.6875rem, 7.7vw, 2.25rem);
    line-height: 1.08;
  }
  .post-content {
    width: 100%;
    max-width: none;
    margin: 0;
  }
  .post-content p,
  .post-content ul,
  .post-content ol,
  .post-content blockquote {
    max-width: none;
  }
  .post-content > .wp-block-image,
  .post-content > figure.wp-block-image,
  .post-content > .wp-block-gallery,
  .post-content > .gallery {
    width: 100%;
    max-width: 100%;
  }
  .post-content > .wp-block-image:not(.alignleft):not(.alignright) img,
  .post-content > figure.wp-block-image:not(.alignleft):not(.alignright) img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
  }
  .post-content > .wp-post-image:first-child {
    width: 100%;
  }
  .post-content .wp-block-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .post-content .wp-block-gallery img {
    width: 100%;
    max-width: 100%;
    height: auto;
  }
  .post-content .gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    width: 100%;
  }
  .post-content .gallery-item {
    float: none;
    width: auto !important;
    max-width: 100%;
    margin: 0;
  }
  .post-content .gallery img {
    width: 100%;
    max-width: 100%;
    height: auto;
  }
  .post-pagination {
    margin-top: 48px;
  }
  .entry-title {
    max-width: none;
    font-size: clamp(1.375rem, 5.6vw, 1.75rem);
  }
  .works-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .work-gallery {
    column-count: 1;
  }
}
@media (max-width: 440px) {
  .site-header {
    align-items: flex-start;
  }
  .site-brand img {
    width: 94px;
  }
  .site-nav {
    gap: 10px;
  }
  .works-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .post-title {
    font-size: 1.8125rem;
  }
}
.journal-entry {
  display: grid;
  grid-template-areas: "main lead";
  align-items: start;
  row-gap: 0;
  width: 100%;
  padding-bottom: clamp(42px, 4.5vw, 66px);
  margin-bottom: clamp(42px, 4.5vw, 66px);
  border-bottom: 1px solid var(--rule);
}
.journal-entry:last-child {
  margin-bottom: 0;
  border-bottom: 0;
}
.journal-entry .entry-main {
  grid-area: main;
  width: 100%;
  min-width: 0;
}
.journal-entry .entry-lead {
  grid-area: lead;
  align-self: start;
  width: 100%;
  max-width: none;
  min-width: 0;
  margin: 0;
  padding-left: 0;
}
.journal-entry .entry-lead img,
.journal-entry .entry-lead .entry-lead-image {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0;
  object-fit: contain;
  width: 100%;
}
.journal-entry:not(.has-lead) {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "main";
}
.journal-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 11px;
  margin: 0 0 10px;
}
.journal-meta .entry-kicker {
  margin: 0;
  font-size: 0.625rem;
  line-height: 1.35;
  letter-spacing: 0.065em;
  text-transform: uppercase;
}
.journal-meta .entry-date {
  display: inline;
  margin: 0;
  font-size: 0.625rem;
  line-height: 1.35;
  letter-spacing: 0;
  white-space: normal;
  font-variant-numeric: tabular-nums;
}
.journal-entry .entry-title {
  max-width: 36ch;
  margin: 0 0 16px;
  font-size: clamp(1.1875rem, 1.45vw, 1.4375rem);
  line-height: 1.16;
  letter-spacing: -0.026em;
  font-weight: 400;
  text-wrap: pretty;
}
.journal-entry .entry-content > :first-child {
  margin-top: 0;
}
.journal-entry .entry-content > :last-child {
  margin-bottom: 0;
}
@media (max-width: 760px) {
  .journal-entry,
  .journal-entry.has-lead {
    padding-bottom: 38px;
    margin-bottom: 38px;
  }
  .journal-entry:not(.has-lead) {
    grid-template-areas: "main";
  }
  .journal-entry .entry-lead {
    margin: 0;
  }
  .journal-entry .entry-title {
    max-width: none;
    margin-bottom: 16px;
    line-height: 1.16;
  }
}
:root {
  --type-body: 13px;
  --type-small: 10.5px;
  --type-caption: 10px;
}
.site-nav,
.site-header {
  font-size: 0.8125rem;
}
/* The journal uses the full left column. There is no hidden editor spacing
   between the text and the fixed-size featured image column. */
.journal-entry {
  grid-template-columns: minmax(0, 1fr) minmax(250px, 40%);
}
.journal-entry .entry-content,
.journal-entry .entry-content p,
.journal-entry .entry-content ul,
.journal-entry .entry-content ol,
.journal-entry .entry-content blockquote {
  max-width: none;
}
.journal-entry .entry-content {
  width: 100%;
  overflow-wrap: break-word;
  font-size: 0.8125rem;
  line-height: 1.52;
  letter-spacing: 0;
}
.journal-entry .entry-content p {
  margin-bottom: 1em;
}
/* Vita: compact archive rhythm, without increasing perceived density. */
.vita-row {
  gap: 18px;
}
.vita-row .type {
  line-height: 1.28;
}
@media (max-width: 760px) {
  .journal-entry,
  .journal-entry.has-lead {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "lead" "main";
    column-gap: 0;
  }
  .journal-entry .entry-content,
  .journal-entry .entry-content p,
  .journal-entry .entry-content ul,
  .journal-entry .entry-content ol,
  .journal-entry .entry-content blockquote {
    max-width: none;
  }
  .journal-entry .entry-content {
    font-size: 0.8125rem;
    line-height: 1.52;
  }
  .journal-entry .entry-title {
    font-size: 1.25rem;
  }
}
/* One baseline size across the site: same 13px scale as the main navigation. */
body,
.page-content,
.post-content,
.entry-content,
.info-copy,
.vita-content {
  font-size: 0.8125rem;
  line-height: 1.5;
}
/* Vita: compact archive rhythm. Remove block/paragraph spacing that can make
   each CV line look vertically separated even when no Spacer block is visible. */
.vita-content {
  width: 100%;
  max-width: none;
  line-height: 1.28;
}
.vita-content > *,
.vita-content .wp-block-group,
.vita-content .wp-block-columns,
.vita-content .wp-block-column,
.vita-content .wp-block-table,
.vita-content table {
  margin-top: 0;
  margin-bottom: 0;
}
.vita-content p,
.vita-content li,
.vita-content dt,
.vita-content dd,
.vita-content td,
.vita-content th,
.vita-content div {
  font-size: 0.8125rem;
  line-height: 1.28;
}
.vita-content p {
  margin: 0;
}
.vita-content p + p {
  margin-top: 0;
}
.vita-content .wp-block-spacer {
  display: none;
}
.vita-content .wp-block-separator,
.vita-content hr {
  margin: 8px 0;
}
.vita-content h2,
.vita-content h3,
.vita-content h4 {
  margin-top: 18px;
  margin-bottom: 5px;
  line-height: 1.2;
}
.vita-content h2 {
  font-size:var(--lf-section-heading-size, 1.0625rem);
}
.vita-content h3 {
  font-size:var(--lf-section-heading-size, 1.0625rem);
}
.vita-content h4 {
  font-size:var(--lf-section-heading-size, 1.0625rem);
}
/* Journal index: keep the featured image at its current size, but leave the
   same horizontal breathing room as the page edge between text and image. */
.journal-entry {
  column-gap: var(--page-pad);
}
/* On small screens, use the same page-edge scale for the image/text separation. */
@media (max-width: 760px) {
  .journal-entry,
  .journal-entry.has-lead {
    row-gap: var(--page-pad);
  }
}
/* Restore a real heading hierarchy. The body/menu baseline remains 13px,
   while headings clearly step above it. */
.entry-content h1,
.page-content h1,
.post-content h1 {
  font-size:var(--lf-section-heading-size, 1.0625rem);
  line-height: 1.08;
  letter-spacing: -0.035em;
  margin: 1.55em 0 0.6em;
  font-weight: 400;
}
.entry-content h2,
.page-content h2,
.post-content h2 {
  text-wrap: pretty;
  max-width: 34ch;
  font-size:var(--lf-section-heading-size, 1.0625rem);
  line-height: 1.14;
  letter-spacing: -0.022em;
  margin: 2em 0 0.58em;
  font-weight: 400;
}
.entry-content h3,
.page-content h3,
.post-content h3 {
  max-width: 40ch;
  font-size:var(--lf-section-heading-size, 1.0625rem);
  line-height: 1.2;
  letter-spacing: -0.012em;
  margin: 1.65em 0 0.5em;
  font-weight: 400;
}
.entry-content h4,
.page-content h4,
.post-content h4 {
  font-size:var(--lf-section-heading-size, 1.0625rem);
  line-height: 1.25;
  letter-spacing: 0;
  margin: 1.45em 0 0.45em;
  font-weight: 600;
}
/* The Journal-specific rules previously collapsed H2/H3 to body size.
   Keep the same hierarchy inside inline journal entries. */
.journal-entry .entry-content h2 {
  max-width: 34ch;
  margin-top: 2em;
  margin-bottom: 0.58em;
  font-size:var(--lf-section-heading-size, 1.0625rem);
  line-height: 1.14;
  letter-spacing: -0.022em;
  font-weight: 400;
}
.journal-entry .entry-content h3 {
  max-width: 40ch;
  margin-top: 1.65em;
  margin-bottom: 0.5em;
  font-size:var(--lf-section-heading-size, 1.0625rem);
  line-height: 1.2;
  letter-spacing: -0.012em;
  font-weight: 400;
}
.journal-entry .entry-content h4 {
  margin-top: 1.45em;
  margin-bottom: 0.45em;
  font-size:var(--lf-section-heading-size, 1.0625rem);
  line-height: 1.25;
  font-weight: 600;
}
/* Preserve the same baseline on mobile; only the major title scale contracts. */
@media (max-width: 760px) {
  .entry-content,
  .page-content,
  .post-content,
  .vita-content {
    font-size: 0.8125rem;
    line-height: 1.5;
  }
  .entry-content h2,
  .page-content h2,
  .post-content h2,
  .journal-entry .entry-content h2 {
    font-size:var(--lf-section-heading-size, 1.0625rem);
  }
  .entry-content h3,
  .page-content h3,
  .post-content h3,
  .journal-entry .entry-content h3 {
    font-size:var(--lf-section-heading-size, 1.0625rem);
  }
}
/* Footer: minimal copyright and legal links, aligned to opposite edges. */
.site-footer {
  padding-right: var(--page-pad);
  padding-left: var(--page-pad);
}
.site-footer-inner {
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 24px;
}
.site-footer-bottom {
  white-space: nowrap;
}
.site-footer-legal {
  margin-left: auto;
}
/* Keep the back-to-top control away from the final content/footer area. */
.back-to-top {
  position: fixed;
  z-index: 999;
  right: var(--page-pad);
  bottom: max(62px, calc(env(safe-area-inset-bottom) + 48px));
  display: flex;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  padding: 3px;
  border: 0;
  background: transparent;
  color: #000;
  cursor: pointer;
}
.back-to-top[hidden] {
  display: none !important;
}
.back-to-top svg {
  display: block;
  width: 22px;
  height: 22px;
}
.back-to-top:focus-visible {
  outline: 1px solid #000;
  outline-offset: 3px;
}
@media (max-width: 680px) {
  .back-to-top {
    right: var(--page-pad);
    bottom: max(62px, calc(env(safe-area-inset-bottom) + 48px));
  }
}
@media (max-width: 760px) {
  .vita-content > * + *,
  .vita-content .is-layout-flow > * + *,
  .vita-content .is-layout-constrained > * + * {
    margin-block-start: 0.3em !important;
  }
  .vita-content h2,
  .vita-content h3,
  .vita-content h4,
  .vita-content .is-layout-flow > h2,
  .vita-content .is-layout-flow > h3,
  .vita-content .is-layout-flow > h4,
  .vita-content .is-layout-constrained > h2,
  .vita-content .is-layout-constrained > h3,
  .vita-content .is-layout-constrained > h4 {
    margin-block-start: 1em !important;
    margin-block-end: 0.25em !important;
    line-height: 1.2;
  }
  .vita-content .wp-block-separator,
  .vita-content hr,
  .vita-content .is-layout-flow > .wp-block-separator,
  .vita-content .is-layout-flow > hr,
  .vita-content .is-layout-constrained > .wp-block-separator,
  .vita-content .is-layout-constrained > hr {
    margin-block: 0.45em !important;
  }
  .vita-content .wp-block-spacer {
    display: none !important;
    height: 0 !important;
  }
}
@media (max-width: 760px) {
  .vita-page .vita-content,
  .vita-page .vita-content .wp-block-group,
  .vita-page .vita-content .wp-block-columns,
  .vita-page .vita-content .wp-block-column,
  .vita-page .vita-content .is-layout-flow,
  .vita-page .vita-content .is-layout-constrained,
  .vita-page .vita-content .is-layout-flex,
  .vita-page .vita-content .is-layout-grid {
    --wp--style--block-gap: 0.35em !important;
  }
  /* Paragraphs and text blocks should not carry their own default margins. */
  .vita-page .vita-content p,
  .vita-page .vita-content li,
  .vita-page .vita-content dt,
  .vita-page .vita-content dd,
  .vita-page .vita-content h1,
  .vita-page .vita-content h2,
  .vita-page .vita-content h3,
  .vita-page .vita-content h4,
  .vita-page .vita-content h5,
  .vita-page .vita-content h6 {
    margin-block-end: 0 !important;
    padding-block-start: 0 !important;
    padding-block-end: 0 !important;
  }
  .vita-page .vita-content p {
    margin-block-start: 0 !important;
  }
  /* Normal-flow block lists get a small, consistent gap regardless of nesting. */
  .vita-page .vita-content > * + *,
  .vita-page .vita-content .is-layout-flow > * + *,
  .vita-page .vita-content .is-layout-constrained > * + *,
  .vita-page .vita-content .wp-block-group:not(.is-layout-flex):not(.is-layout-grid) > * + *,
  .vita-page .vita-content .wp-block-column > * + * {
    margin-block-start: 0.4em !important;
  }
  /* Flex/grid groups use gap, not a second margin on each child. */
  .vita-page .vita-content .is-layout-flex > * + *,
  .vita-page .vita-content .is-layout-grid > * + * {
    margin-block-start: 0 !important;
  }
  .vita-page .vita-content .is-layout-flex,
  .vita-page .vita-content .is-layout-grid {
    gap: 0.4em !important;
    row-gap: 0.4em !important;
  }
  .vita-page .vita-content h2,
  .vita-page .vita-content h3,
  .vita-page .vita-content h4 {
    line-height: 1.2 !important;
  }
  .vita-page .vita-content .wp-block-separator,
  .vita-page .vita-content hr {
    margin-block: 0.45em !important;
  }
  .vita-page .vita-content .wp-block-spacer {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }
}
.vita-section h2 {
  padding-bottom: 6px;
  margin: 0 0 7px !important;
  padding: 0 !important;
  line-height: 1.25 !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
}
.vita-section + .vita-section {
  margin-top: 30px !important;
}
.vita-row {
  padding: 7px 0 !important;
  font-size: 0.8125rem !important;
  line-height: 1.28 !important;
}
@media (max-width: 760px) {
  .vita-section + .vita-section {
    margin-top: 22px !important;
  }
  .vita-section h2 {
    margin-bottom: 5px !important;
    font-size:var(--lf-section-heading-size, 1.0625rem)!important;
    line-height: 1.25 !important;
    border-bottom: 0 !important;
  }
  .vita-row {
    padding: 3px 0 !important;
    gap: 10px !important;
    font-size: 0.8125rem !important;
    line-height: 1.24 !important;
    border-bottom: 1px solid var(--rule);
  }
}
.vita-row.lf-vita-collection-row .title {
  grid-column: 2;
}
.vita-row.lf-vita-collection-row .place {
  grid-column: 3;
}
@media (max-width: 760px) {
  .vita-row.lf-vita-collection-row {
    grid-template-columns: minmax(0, 1fr);
  }
  .vita-row.lf-vita-collection-row .title,
  .vita-row.lf-vita-collection-row .place {
    grid-column: 1;
  }
}
.screen-reader-text {
  border: 0 !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
  clip-path: inset(50%) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important;
  white-space: nowrap !important;
}
.vita-intro {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}
.vita-intro .vita-intro-row {
  grid-template-columns: 84px minmax(180px, 1fr) minmax(170px, 0.8fr) 90px;
}
.vita-intro-row .place,
.vita-intro-row .type {
  display: none;
}
@media (max-width: 760px) {
  /* Match the biography rows to the main Vita list's mobile column pattern. */
  .vita-page .vita-content .vita-row {
    padding-block: 9px !important;
    gap: 8px 10px !important;
    line-height: 1.3 !important;
  }
  .vita-page .vita-content .vita-intro-row {
    grid-template-columns: 64px minmax(0, 1fr);
  }
  /* Keep the usual page gutter, but don't reserve a blank title row. */
  .vita-page > .page-header-title-hidden,
  .info-page > .page-header-title-hidden {
    height: 0 !important;
    margin: 0 !important;
  }
}
.vita-page .vita-content .vita-intro + .vita-section {
  margin-top: 28px !important;
}
/* Keep collection names in the same text column as the biography and other
   Vita rows on narrow screens instead of removing the year-gutter column. */
@media (max-width: 760px) {
  .vita-page .vita-content .vita-intro + .vita-section {
    margin-top: 24px !important;
  }
  .vita-page .vita-content .vita-row.lf-vita-collection-row {
    grid-template-columns: 64px minmax(0, 1fr) !important;
    gap: 8px 10px !important;
  }
  .vita-page .vita-content .vita-row.lf-vita-collection-row .title,
  .vita-page .vita-content .vita-row.lf-vita-collection-row .place {
    grid-column: 2 !important;
    text-align: left !important;
  }
  /* Each wrapped line of filters stays aligned to the right page edge. */
  .works-archive .works-head .work-filters {
    width: 100%;
    justify-content: flex-end !important;
    margin-top: 10px;
    text-align: right;
  }
}
/* A middle dot is quieter and visually lighter than a slash in the category nav. */
@media (min-width: 761px) {
  .journal-entry .entry-title,
  .entry-title {
    width: 100%;
    max-width: none !important;
    white-space: nowrap;
    text-wrap: nowrap;
  }
  .post-single .post-title {
    width: 100%;
    max-width: none !important;
    white-space: nowrap;
    text-wrap: nowrap;
  }
}
/* Painter's Theme: H2 size normalization */
/* Painter's Theme typography adjustment */
body h3,
body .entry-content h3,
body .page-content h3,
body .post-content h3,
body .journal-entry .entry-content h3,
body .vita-content h3 {
  font-size:var(--lf-section-heading-size, 1.0625rem)!important;
}
/* Vita section headings */
.vita-section h2 {
  font-size:var(--lf-section-heading-size, 1.0625rem)!important;
  border-bottom: 0 !important;
}
/* Works filters: use spacing only; no separator characters. */
.work-filters {
  gap: 22px;
}
.work-filters a + a::before {
  margin: 0 10px;
  content: none !important;
  display: none !important;
}
/* Footer: quiet legal links and copyright, with right-aligned legal links on mobile. */
@media (max-width: 680px) {
  .site-footer-inner {
    flex-direction: row !important;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: nowrap;
    gap: 12px;
  }
  .site-footer-bottom {
    width: auto;
    flex: 0 0 auto;
    white-space: nowrap;
  }
  .site-footer-legal {
    width: auto;
    flex: 0 0 auto;
    justify-content: flex-end !important;
    text-align: right;
    margin-left: auto !important;
    white-space: nowrap;
  }
}
.site-footer-legal a + a::before {
  content: none !important;
  display: none !important;
  margin: 0 !important;
}
/* Info: three-column contact / representation layout. */
.info-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(220px, 0.9fr) minmax(180px, 0.75fr);
  align-items: start;
  gap: 48px;
  width: 100%;
}
.info-intro {
  max-width: 52ch;
  font-size: 0.9375rem;
  line-height: 1.55;
}
.info-intro p {
  margin: 0 0 18px;
}
.info-contact-block {
  display: grid;
  gap: 24px;
  margin: 0;
}
.info-item {
  font-size: 0.8125rem;
  line-height: 1.45;
}
.info-label {
  margin-bottom: 3px;
}
.info-item a {
  color: #000;
  text-decoration: none;
}
.info-image {
  margin: 0;
  width: 100%;
}
.info-image img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}
.info-image-placeholder {
  min-height: 280px;
  width: 100%;
}
.info-placeholder-note {
  font-size: 0.6875rem;
  line-height: 1.45;
}
@media (max-width: 1100px) {
  .info-layout {
    grid-template-columns: minmax(0, 1.15fr) minmax(200px, 0.9fr) minmax(170px, 0.75fr);
    gap: 32px;
  }
}
@media (max-width: 760px) {
  .info-layout {
    grid-template-columns: 1fr;
    gap: 38px;
  }
  .info-intro {
    max-width: none;
    font-size: 0.9375rem;
    line-height: 1.55;
  }
  .info-image {
    width: 100%;
  }
  .info-image img {
    width: 100%;
    max-width: 100%;
  }
  .info-contact-block {
    gap: 20px;
  }
}
/* Legal pages keep their content but hide the visible page title, matching the rest of the site. */
.page-header-title-hidden {
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}
/* Work availability */
.work-availability {
  font-size: inherit;
  line-height: inherit;
}
.work-availability-sold {
  color: #c00000 !important;
}
.work-availability-available {
  color: #168238 !important;
}
.work-availability-not-available {
  color: #c00000 !important;
}
/* Previous / next navigation shared by Works and the journal archive. */
.work-navigation,
.journal-navigation {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: baseline;
  gap: 24px;
  margin-top: 62px;
  font-size: 0.75rem;
  line-height: 1.35;
}
.work-navigation-prev,
.journal-navigation-prev {
  justify-self: start;
}
.work-navigation-next,
.journal-navigation-next {
  justify-self: end;
  text-align: right;
}
.work-navigation a,
.journal-navigation a {
  color: #000;
  text-decoration: none;
}
@media (max-width: 760px) {
  .work-navigation,
  .journal-navigation {
    margin-top: 48px;
  }
}
/* Captions */
.lf-lightbox-caption,
.work-gallery-item figcaption,
.wp-caption-text,
.entry-content figcaption,
.post-content figcaption,
.page-content figcaption,
.wp-block-image figcaption,
.wp-block-gallery figcaption {
  font-size: 0.75rem !important;
  line-height: 1.35;
}
/* Restore H2 to the pre-change scale and set H3 to 18px. */
.entry-content h2,
.page-content h2,
.post-content h2,
.journal-entry .entry-content h2 {
  font-size:var(--lf-section-heading-size, 1.0625rem)!important;
}
.entry-content h3,
.page-content h3,
.post-content h3,
.journal-entry .entry-content h3,
.vita-content h3 {
  font-size:var(--lf-section-heading-size, 1.0625rem)!important;
}
.info-page .info-layout {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: clamp(24px, 2.6vw, 42px);
  row-gap: 0;
  align-items: start;
  width: 100%;
}
.info-page .info-intro {
  max-width: none;
  min-width: 0;
  align-self: start;
}
.info-page .info-layout > figure.info-image {
  margin: 0 !important;
  width: 100%;
  min-width: 0;
  align-self: start;
  justify-self: stretch;
}
.info-page .info-image img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}
.info-page .info-contact-block {
  min-width: 0;
  align-self: start;
}
@media (max-width: 760px) {
  /* Full-width intro first; portrait and contact information side-by-side below. */
  .info-page .info-layout {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 16px;
    row-gap: 24px;
    align-items: start;
  }
  .info-page .info-intro {
    grid-column: 1 / -1;
    grid-row: 1;
    width: 100%;
    max-width: none;
  }
  .info-page .info-layout > figure.info-image {
    grid-column: 1;
    grid-row: 2;
    width: 100%;
    margin: 0 !important;
  }
  .info-page .info-contact-block {
    grid-column: 2;
    grid-row: 2;
    width: 100%;
    gap: 20px;
    margin: 0;
  }
}
/* Primary WordPress menu: use the menu assigned in Appearance > Menus. */
.site-nav > .site-nav-list {
  display: flex;
  align-items: baseline;
  gap: 22px;
  flex-wrap: wrap;
  justify-content: flex-end;
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-nav > .site-nav-list li {
  list-style: none;
  margin: 0;
  padding: 0;
}
.site-nav > .site-nav-list a {
  white-space: nowrap;
}
.site-nav-fallback {
  display: flex;
}
@media (max-width: 760px) {
  .site-nav > .site-nav-list {
    gap: 14px;
  }
}
/* General typography controls. Dedicated Vita, Info and event labels carry
   .lf-managed-section-heading and are deliberately excluded for precise Customizer control. */
body :is(h1,h2,h3,h4,h5,h6):not(.work-name):not(.post-title):not(.entry-title):not(.works-title):not(.page-title):not(.exhibition-subtitle):not(.lf-managed-section-heading),
body .info-label:not(.lf-managed-section-heading) {
  font-size: var(--lf-section-heading-size, 1.0625rem) !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
}
/* Normal copy and work metadata are adjustable independently from headings.
   The work title itself is deliberately excluded to preserve its current appearance. */
body {
  letter-spacing: 0;
  font-feature-settings: "kern" 1, "liga" 1;
  font-kerning: normal;
  font-size: var(--lf-body-text-size, 0.8125rem) !important;
}
body .page-content,
body .post-content,
body .entry-content,
body .journal-entry .entry-content,
body .info-page .info-intro,
body .info-page .info-item,
body .vita-page .vita-content,
body .vita-page .vita-row,
body .work-single .work-specs,
body .work-single .work-availability,
body .work-single .work-text {
  font-size: var(--lf-body-text-size, 0.8125rem) !important;
}
body .vita-page .vita-content p,
body .vita-page .vita-content li,
body .vita-page .vita-content dt,
body .vita-page .vita-content dd,
body .vita-page .vita-content td,
body .vita-page .vita-content th,
body .vita-page .vita-content div {
  font-size: var(--lf-body-text-size, 0.8125rem) !important;
}
/* Single work: justified gallery. Portrait and landscape images share a row height
   while retaining their native proportions. */
.work-gallery {
  column-count: initial;
  column-gap: initial;
  display: block;
  visibility: hidden;
}
.work-gallery.is-ready {
  visibility: visible;
}
.work-gallery-row {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  margin: 0 0 var(--grid-gap);
}
.work-gallery-row:last-child {
  margin-bottom: 0;
}
.work-gallery .work-gallery-item {
  display: block;
  width: auto;
  margin: 0;
  break-inside: auto;
  vertical-align: initial;
  flex: 0 0 auto;
}
.work-gallery .work-gallery-item figure {
  margin: 0;
}
.work-gallery .work-gallery-item img {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 760px) {
  .work-gallery-row {
    display: block;
    margin-bottom: 14px;
  }
  .work-gallery-row .work-gallery-item {
    width: 100%;
  }
  .work-gallery-row .work-gallery-item + .work-gallery-item {
    margin-top: 14px;
  }
}
/* Works archive: restrained thumbnail hover feedback (CSS only). */
.works-grid .work-image-wrap {
  display: block;
  width: 100%;
  overflow: hidden;
}
.works-grid .work-image-wrap img {
  transition: transform 180ms ease, opacity 180ms ease;
  transform-origin: center center;
}
@media (hover: hover) and (pointer: fine) {
  .works-grid .work-card > a:hover .work-image-wrap img,
  .works-grid .work-card > a:focus-visible .work-image-wrap img {
    transform: scale(1.015);
    opacity: 0.9;
  }
}
@media (prefers-reduced-motion: reduce) {
  .works-grid .work-image-wrap img {
    transition: none;
  }
}
.exhibition-single {
  width: 100%;
}
.exhibition-layout {
  display: grid;
  grid-template-columns: minmax(250px, 25fr) minmax(0, 45fr) minmax(260px, 30fr);
  grid-template-areas: "left text hero";
  column-gap: clamp(26px, 3vw, 48px);
  align-items: start;
}
.exhibition-left {
  grid-area: left;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
}
.exhibition-heading {
  min-width: 0;
}
.exhibition-heading .post-title {
  max-width: 24ch;
  margin: 0;
}
.exhibition-heading .post-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 7px 12px;
  margin: 0;
  font-size: 0.6875rem;
  line-height: 1.35;
}
.exhibition-heading .post-meta .entry-kicker {
  margin: 0;
  font-size: 0.625rem;
  line-height: 1.35;
  letter-spacing: 0.075em;
}
.exhibition-heading .post-meta .entry-date {
  white-space: nowrap;
  font-size: 0.6875rem;
}
.exhibition-events {
  display: grid;
  gap: 28px;
  margin-top: 46px;
  padding-top: 0;
}
.exhibition-event h2 {
  margin: 0 0 9px;
  padding: 0;
  font-size: var(--lf-section-heading-size, 1.0625rem);
  line-height: 1.2;
  font-weight: 400;
  letter-spacing: -0.018em;
}
.exhibition-event-value {
  font-size: 0.8125rem;
  line-height: 1.45;
}
.exhibition-event-value p {
  margin: 0;
  max-width: none;
}
.exhibition-event-credit {
  font-size: 0.8125rem;
  line-height: 1.45;
  margin: 0;
}
.exhibition-event-credit p {
  margin: 0;
}
.exhibition-text {
  grid-area: text;
  min-width: 0;
  font-size: 0.8125rem;
  line-height: 1.52;
}
.exhibition-text .exhibition-subtitle {
  width: 100%;
  max-width: none;
  margin: 0 0 18px;
  padding: 0;
  font-size: 1.25rem !important;
  line-height: 1.16 !important;
  letter-spacing: -0.018em !important;
  font-weight: 400 !important;
}
.exhibition-text p {
  max-width: none;
  margin-top: 0;
  margin-bottom: 1em;
}
.exhibition-text .lf-post-deck {
  margin-bottom: 1.35em;
  font-size: 0.875rem;
  line-height: 1.45;
}
.exhibition-hero {
  grid-area: hero;
  margin: 0;
  min-width: 0;
}
.exhibition-hero img {
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
}
.featured-image-credit {
  margin: 8px 0 0;
  padding: 0;
  font-size: var(--type-caption, 0.6875rem);
  line-height: 1.45;
  color: inherit;
}
.featured-image-credit p {
  margin: 0;
}
.post-featured-image {
  margin: 0 0 1.5em;
}
@media (max-width: 760px) {
  .exhibition-layout {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "hero"
      "title"
      "text"
      "events";
    row-gap: 24px;
  }
  /* Let the title and event details become separate grid items on mobile. */
  .exhibition-left {
    display: contents;
  }
  .exhibition-heading {
    grid-area: title;
    min-width: 0;
  }
  .exhibition-events {
    grid-area: events;
    gap: 22px;
    margin-top: 0;
    padding-top: 0;
  }
  .exhibition-heading .post-title {
    max-width: 30ch;
    margin-bottom: 0;
  }
  .exhibition-heading .post-meta {
    margin-bottom: 0;
  }
  .exhibition-hero {
    margin-top: 2px;
  }
  .exhibition-event h2 {
    font-size: var(--lf-section-heading-size, 1.0625rem);
  }
  .exhibition-text {
    font-size: 0.8125rem;
    line-height: 1.52;
  }
}
/* Exhibition entries on the homepage use the same three-column editorial
   layout as their individual post pages. The surrounding journal keeps its
   established entry spacing and separator. */
.journal-entry.exhibition-journal-entry {
  display: block;
  width: 100%;
  padding: 0 0 clamp(42px, 4.5vw, 66px);
  margin: 0 0 clamp(42px, 4.5vw, 66px);
  border-bottom: 1px solid var(--rule);
}
.journal-entry.exhibition-journal-entry:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
}
.journal-entry.exhibition-journal-entry .exhibition-heading .post-title a {
  color: inherit;
  text-decoration: none;
}
.journal-entry.exhibition-journal-entry .exhibition-heading .post-title a:hover,
.journal-entry.exhibition-journal-entry .exhibition-heading .post-title a:focus {
  color: inherit;
  text-decoration: none;
}
@media (max-width: 760px) {
  .journal-entry.exhibition-journal-entry {
    padding-bottom: 38px;
    margin-bottom: 38px;
  }
}
/* News and Press journal entries: same restrained three-column system as
   Exhibition posts, without event metadata, category labels or publication dates. */
.editorial-layout {
  display: grid;
  grid-template-columns: minmax(250px, 25fr) minmax(0, 45fr) minmax(260px, 30fr);
  grid-template-areas: "heading text hero";
  column-gap: clamp(26px, 3vw, 48px);
  align-items: start;
  width: 100%;
}
.editorial-layout .editorial-heading {
  grid-area: heading;
  min-width: 0;
}
.editorial-layout .editorial-heading .post-title {
  max-width: 24ch;
  margin: 0;
}
.editorial-layout .editorial-heading .post-title a {
  color: inherit;
  text-decoration: none;
}
.editorial-layout .editorial-heading .post-title a:hover,
.editorial-layout .editorial-heading .post-title a:focus {
  color: inherit;
  text-decoration: none;
}
.editorial-layout .editorial-text {
  grid-area: text;
  min-width: 0;
  font-size: 0.8125rem;
  line-height: 1.52;
  letter-spacing: 0;
}
@media (min-width: 761px) {
  .editorial-layout .editorial-text p,
  .exhibition-layout .exhibition-text p {
    text-align: var(--lf-news-text-align, justify);
    text-align-last: var(--lf-news-text-last-align, center);
  }
}
.editorial-layout .editorial-text > :first-child {
  margin-top: 0;
}
.editorial-layout .editorial-text > :last-child {
  margin-bottom: 0;
}
.editorial-layout .editorial-text p,
.editorial-layout .editorial-text ul,
.editorial-layout .editorial-text ol,
.editorial-layout .editorial-text blockquote {
  max-width: none;
}
.editorial-layout .editorial-hero {
  grid-area: hero;
}
.editorial-layout.no-editorial-image {
  grid-template-columns: minmax(250px, 25%) minmax(0, 75%);
  grid-template-areas: "heading text";
}
.editorial-journal-entry {
  display: block;
  width: 100%;
  padding: 0 0 clamp(42px, 4.5vw, 66px);
  margin: 0 0 clamp(42px, 4.5vw, 66px);
  border-bottom: 1px solid var(--rule);
}
.editorial-journal-entry:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
}
.editorial-single {
  width: 100%;
}
@media (max-width: 760px) {
  .editorial-layout {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "hero" "heading" "text";
    row-gap: 24px;
  }
  .editorial-layout.no-editorial-image {
    grid-template-areas: "heading" "text";
  }
  .editorial-layout .editorial-heading .post-title {
    max-width: none;
  }
  .editorial-journal-entry {
    padding-bottom: 38px;
    margin-bottom: 38px;
  }
}
.info-contact-items {
  display: flex;
  flex-direction: column;
  gap: 24px;
  min-width: 0;
}
@media (max-width: 760px) {
  .info-page .info-contact-block {
    display: contents;
  }
  .info-page .info-contact-items {
    grid-column: 2;
    grid-row: 2;
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 100%;
    min-width: 0;
  }
  .info-page .info-contact-items .info-item {
    margin-bottom: 0;
  }
}
body.single-post .post-pagination,
body.single-post .post-pagination::before,
body.single-post .post-pagination::after {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  content: none !important;
}
body.single-post .post-content > hr:last-child,
body.single-post .post-content > .wp-block-separator:last-child,
body.single-post .editorial-text > hr:last-child,
body.single-post .editorial-text > .wp-block-separator:last-child,
body.single-post .exhibition-text > hr:last-child,
body.single-post .exhibition-text > .wp-block-separator:last-child {
  display: none !important;
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
/* Keep pagination typography and arrow glyphs consistent across every template. */
.post-pagination,
.work-navigation,
.journal-navigation,
body.archive .navigation.pagination,
body.search .navigation.pagination {
  font-family: var(--font) !important;
  font-size: 0.75rem !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
}
.post-pagination a,
.work-navigation a,
.journal-navigation a,
body.archive .navigation.pagination a,
body.search .navigation.pagination a {
  color: #000 !important;
  text-decoration: none !important;
}
body.archive .navigation.pagination .nav-links,
body.search .navigation.pagination .nav-links {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
}
.site-nav {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: 0;
}
@media (max-width: 760px) {
  .site-nav {
    font-size: 0.8125rem;
  }
}
.lf-lightbox button.lf-lightbox-nav,
.lf-lightbox button.lf-lightbox-close,
.lf-lightbox button.lf-lightbox-nav:hover,
.lf-lightbox button.lf-lightbox-nav:active,
.lf-lightbox button.lf-lightbox-nav:focus,
.lf-lightbox button.lf-lightbox-nav:focus-visible,
.lf-lightbox button.lf-lightbox-close:hover,
.lf-lightbox button.lf-lightbox-close:active,
.lf-lightbox button.lf-lightbox-close:focus,
.lf-lightbox button.lf-lightbox-close:focus-visible {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  outline: none !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
}
.lf-lightbox button.lf-lightbox-nav:focus-visible,
.lf-lightbox button.lf-lightbox-close:focus-visible {
  opacity: .65;
}
/* Clickable work images use a subtle image change as their focus cue instead
   of a rectangular outline around the full image link. Text links retain the
   site's standard keyboard focus outline. */
.works-grid .work-card > a:focus-visible,
a.work-hero-link:focus-visible,
a.work-gallery-item:focus-visible {
  outline: none !important;
  outline-offset: 0 !important;
}
.works-grid .work-card > a:focus-visible .work-image-wrap img,
a.work-hero-link:focus-visible img,
a.work-gallery-item:focus-visible img {
  opacity: .82;
}
/* Journal separators: replace full-width rules with short printer's marks.
   Scoped to the homepage journal so archive, search and single pages keep
   their own content dividers. */
.journal > .journal-entry {
  position: relative;
  border-bottom: 0 !important;
}
.journal > .journal-entry:not(:last-of-type)::before,
.journal > .journal-entry:not(:last-of-type)::after {
  content: "";
  position: absolute;
  bottom: 0;
  display: block;
  width: 24px;
  height: 1px;
  background: #000;
  pointer-events: none;
}
.journal > .journal-entry:not(:last-of-type)::before {
  left: 0;
}
.journal > .journal-entry:not(:last-of-type)::after {
  right: 0;
}
.journal > .journal-entry:last-of-type {
  border-bottom: 0 !important;
  padding-bottom: 0;
  margin-bottom: 0;
}
/* Journal thumbnails are navigational links as well as the title. */
.journal-image-link {
  display: block;
  width: 100%;
  max-width: 100%;
  color: inherit;
  text-decoration: none;
}
.journal-image-link img {
  display: block;
  max-width: 100%;
}
.journal-image-link:focus-visible {
  outline: 1px solid #000;
  outline-offset: 3px;
}
/* Editorial text sizes and line heights are controlled by one shared Customizer rule on the homepage and single posts. */
body .editorial-text h2, body .editorial-text h3,
body .exhibition-text h2:not(.exhibition-subtitle), body .exhibition-text h3 {
  font-size:var(--lf-section-heading-size,1.0625rem)!important;
  line-height:1.25!important;
  font-weight:400!important;
}
.site-footer {
  display:block;
  width:100%;
  background:#fff!important;
  color:#000!important;
}
.site-footer-inner {
  display:block!important;
  width:100%;
}
.footer-newsletter-top {
  display:grid;
  grid-template-columns:minmax(220px,24fr) minmax(280px,36fr) minmax(420px,40fr);
  gap:clamp(24px,3.2vw,64px);
  align-items:center;
  padding-top:22px;
  padding-right:0;
  padding-bottom:22px;
  padding-left:0;
  border-bottom:0!important;
}
.footer-newsletter-heading h2 {
  margin:0;
  font-size:clamp(1.35rem,1.65vw,1.95rem);
  line-height:1.1;
  font-weight:400;
  letter-spacing:-.025em;
}
.footer-newsletter-copy p {
  margin:0;
  font-size:clamp(.75rem,.78vw,.9rem);
  line-height:1.4;
}
.footer-newsletter-form {
  width:100%;
  max-width:none;
  margin:0;
}
.footer-newsletter-field {
  display:flex;
  align-items:center;
  width:100%;
  min-height:74px;
  border:1px solid rgba(0,0,0,.14);
  background:#fff;
}
.footer-newsletter-field input[type="email"] {
  display:block;
  min-width:0;
  flex:1 1 auto;
  width:100%;
  height:72px;
  padding:0 22px;
  margin:0;
  border:0;
  outline:0;
  background:transparent;
  color:#000;
  font:inherit;
  font-size:clamp(.75rem,.78vw,.9rem);
  line-height:1.4;
}
.footer-newsletter-field input[type="email"]::placeholder {
  color:#000;
  opacity:1;
}
.footer-newsletter-field button[type="submit"] {
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 58px;
  width:58px;
  height:72px;
  padding:0;
  border:0;
  background:transparent;
  color:#000;
  cursor:pointer;
  font-size:1.05rem;
  line-height:1;
}
.footer-newsletter-honeypot {
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}
.site-footer-bottom {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:20px;
  flex-wrap:nowrap;
  width:100%;
  margin:0;
  padding:14px 0 24px;
  border-top:0!important;
}
.site-footer-copyright {
  white-space:nowrap;
}
.site-footer-legal {
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:flex-end;
  margin:0 0 0 auto;
  padding:0;
  font-size:inherit;
  line-height:1.4;
}
.site-footer-legal a {
  color:#000;
  text-decoration:none;
  white-space:nowrap;
}
.site-footer-legal a:hover, .site-footer-legal a:focus-visible {
  text-decoration:none;
}
@media (max-width:760px) {
  .footer-newsletter-top {
    grid-template-columns:1fr;
    gap:12px;
    padding:22px 0;
  }
  .footer-newsletter-field {
    min-height:58px;
  }
  .footer-newsletter-field input[type="email"] {
    height:56px;
    padding:0 14px;
  }
  .footer-newsletter-field button[type="submit"] {
    flex-basis:48px;
    width:48px;
    height:56px;
  }
  .site-footer-bottom {
    margin-top:0;
    padding:14px 0 24px;
    align-items:center;
    flex-direction:row;
    flex-wrap:nowrap;
    gap:12px;
  }
  .site-footer-copyright, .site-footer-legal {
    white-space:nowrap;
    min-width:0;
  }
  .site-footer-legal {
    justify-content:flex-end;
    margin-left:auto;
    gap:12px;
  }
}
/* Match the single-post lead/standfirst to the homepage journal card. */
.journal-entry .entry-content .lf-post-deck,
.post-single .post-content .lf-post-deck {
  max-width:none!important;
  margin-bottom:1.35em!important;
  font-size:0.875rem!important;
  line-height:1.45!important;
}
.lf-screen-reader-only {
  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;
}
.footer-newsletter-copy p::after {
  content:none !important;
}
.journal-entry .entry-main {
  display:flex;
  flex-direction:column;
  min-height:100%;
}
.journal-entry .journal-post-summary {
  margin-top:auto;
  margin-bottom:auto;
  padding:22px 0;
  max-width:68ch;
}
/* Journal index summary: only the middle editorial text column changes.
   The surrounding title/event-data and image columns remain unchanged. */
@media (min-width:761px) {
  .editorial-layout > .is-index-summary,
  .exhibition-layout > .is-index-summary {
    align-self:stretch;
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:100%;
  }
  .editorial-layout > .is-index-summary .journal-post-summary,
  .exhibition-layout > .is-index-summary .journal-post-summary {
    margin:0;
    padding:22px 0;
  }
}
@media (max-width:760px) {
  .editorial-layout > .is-index-summary,
  .exhibition-layout > .is-index-summary {
    align-self:auto;
    display:block;
  }
  .editorial-layout > .is-index-summary .journal-post-summary,
  .exhibition-layout > .is-index-summary .journal-post-summary {
    margin:0;
    padding:0;
  }
}
.journal-entry .journal-post-summary .entry-subtitle {
  margin:0;
  max-width:68ch;
}
.journal-entry .journal-post-summary .entry-learn-more {
  display:inline-block;
  margin-top:14px;
  text-decoration:none;
}
.journal-entry .journal-post-summary .entry-learn-more:hover {
  text-decoration:none;
}
.editorial-image-frame {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:auto !important;
  overflow:visible !important;
}
.editorial-image-frame img {
  display:block;
  width:100%;
  height:auto !important;
  max-width:100%;
  object-fit:initial !important;
  object-position:initial !important;
}
@media (max-width:760px) {
  .journal-entry .journal-post-summary {
    margin-top:0;
    margin-bottom:0;
    padding:0;
  }
}

/* Footer settings — static presentation, dynamically supplied custom properties.
   Option names and original !important precedence are retained for compatibility.
   The default values are equivalent to those emitted by PHP before this refactor. */
.site-footer {
  font-size: var(--lf-footer-font-size, 0.625rem) !important;
  font-weight: var(--lf-footer-font-weight, 400) !important;
  line-height: var(--lf-footer-line-height, 1.40) !important;
  padding-top: var(--lf-footer-padding-top, 26px) !important;
  padding-bottom: var(--lf-footer-padding-bottom, 34px) !important;
}
.site-footer-bottom,
.site-footer-legal,
.site-footer-legal a {
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}
.site-footer-legal {
  gap: var(--lf-footer-legal-gap, 16px) !important;
}
@media (max-width: 680px) {
  .site-footer {
    padding-bottom: var(--lf-footer-mobile-padding-bottom, 24px) !important;
  }
  .site-footer-legal {
    gap: var(--lf-footer-mobile-legal-gap, 12px) !important;
  }
}


/* ================================================================
   WORKS ARCHIVE — fixed presentation (Customizer values are CSS vars)
   The one user-selectable desktop wrap breakpoint is emitted by
   inc/works-display.php after this stylesheet. Do not duplicate it here.
   ================================================================ */
.site-header.site-header--works {
  display: grid !important;
  grid-template-columns: max-content minmax(0, 1fr) max-content;
  grid-template-rows: auto;
  align-items: center;
  column-gap: 24px;
  row-gap: var(--lf-works-wrap-row-gap, 12px);
  margin-bottom: var(--lf-works-filter-content-gap, 0px);
}
.site-header--works .site-brand {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  min-width: 0;
}
.site-header--works .work-filters-header {
  grid-column: 2;
  grid-row: 1;
  justify-self: stretch;
  align-self: center;
  display: flex;
  width: 100%;
  min-width: 0;
  flex-wrap: nowrap;
  justify-content: center;
  gap: var(--lf-works-filter-desktop-gap, 22px);
  margin: 0;
  font-size: var(--lf-works-filter-desktop-size, 0.8125rem);
  font-weight: var(--lf-works-filter-weight, 400);
  letter-spacing: var(--lf-works-filter-spacing, 0);
  line-height: var(--lf-works-filter-line, 1.45);
  text-align: center;
  white-space: nowrap;
}
.site-header--works .work-filters-header a { white-space: nowrap; }
.site-header--works .site-nav {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  min-width: 0;
}

/* Mobile filters occupy their own centered line. */
@media (max-width: 760px) {
  .site-header.site-header--works {
    grid-template-columns: minmax(0, 1fr) max-content;
    grid-template-rows: auto auto;
    row-gap: var(--lf-works-mobile-row-gap, 10px);
    align-items: baseline;
  }
  .site-header--works .site-brand { grid-column: 1; grid-row: 1; }
  .site-header--works .site-nav { grid-column: 2; grid-row: 1; }
  .site-header--works .work-filters-header {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-self: center;
    width: 100%;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--lf-works-filter-mobile-gap, 14px);
    font-size: var(--lf-works-filter-mobile-size, 0.8125rem);
    white-space: normal;
  }
}

/* Two-row archive captions: title/year and optional medium/dimensions. */
.works-archive .work-caption {
  display: block;
  margin-top: var(--lf-works-caption-top-gap, 9px);
  font-size: var(--lf-works-title-size-desktop, 0.75rem);
  line-height: var(--lf-works-caption-title-line, 1.35);
  letter-spacing: var(--lf-works-caption-title-spacing, -.005em);
  font-weight: var(--lf-works-caption-title-weight, 400);
}
.works-archive .work-caption-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  align-items: baseline;
}
.works-archive .work-caption-title { min-width: 0; }
.works-archive .work-caption-year {
  white-space: nowrap;
  text-align: right;
  font-size: var(--lf-works-meta-size-desktop, 0.75rem);
  font-weight: var(--lf-works-caption-meta-weight, 400);
  letter-spacing: var(--lf-works-caption-meta-spacing, 0);
  line-height: var(--lf-works-caption-meta-line, 1.3);
}
.works-archive .work-caption-details {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  row-gap: 0;
  margin-top: var(--lf-works-caption-row-gap, 3px);
  font-size: var(--lf-works-meta-size-desktop, 0.75rem);
  line-height: var(--lf-works-caption-meta-line, 1.3);
  font-weight: var(--lf-works-caption-meta-weight, 400);
  letter-spacing: var(--lf-works-caption-meta-spacing, 0);
}
.works-archive .work-caption-details.is-single { grid-template-columns: minmax(0, 1fr); }
.works-archive .work-caption-medium { min-width: 0; }
.works-archive .work-caption-dimensions { text-align: right; white-space: nowrap; }
@media (max-width: 760px) {
  .works-archive .work-caption { font-size: var(--lf-works-title-size-mobile, 0.6875rem); }
  .works-archive .work-caption-year,
  .works-archive .work-caption-details { font-size: var(--lf-works-meta-size-mobile, 0.6875rem); }
}
