@font-face {
  font-family: "Mono45 Draft";
  src: url("fonts/mono45-thin-draft.woff2?v=mono45-complete-20261009") format("woff2");
  font-weight: 100;
  font-display: swap;
}
@font-face {
  font-family: "Mono45 Light Draft";
  src: url("fonts/mono45-light-draft.woff2?v=sidebar-20261009") format("woff2");
  font-weight: 300;
  font-display: swap;
}
@font-face {
  font-family: "Times Draft";
  src: url("fonts/times-regular.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Times Draft";
  src: url("fonts/times-bold.woff2") format("woff2");
  font-weight: 700;
  font-display: swap;
}
:root {
  color-scheme: light;
  --paper: #fff;
  --ink: #24211f;
  --rule: #272421;
  --sidebar: 18.55vw;
  --header: 96px;
  --gutter: clamp(26px, 2.55vw, 42px);
  --body-size: clamp(12.5px, 0.92vw, 14px);
  --navigation: "Mono45 Draft", "Arial Narrow", sans-serif;
}
/* Shared click halves and mobile swipe for all artwork carousels.
   Allow vertical page scrolling and pinch zoom; horizontal gestures navigate
   via the existing controls rather than shifting the artwork or its margins. */
.proyectos-carousel, .fiore-carousel-stage, .geo-carousel-stage,
.gigantismo-carousel-stage, .nonce-passport-stage, .bosque-carousel-stage,
.vacia-triptych-stage, .gusci-carousel-image, [data-art-carousel],
.lightbox-image-wrap {
  touch-action: pan-y pinch-zoom;
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
}
.proyectos-carousel img, .fiore-carousel-stage img, .geo-carousel-stage img,
.gigantismo-carousel-stage img, .nonce-passport-stage img,
.bosque-carousel-stage img, .vacia-triptych-stage img, .gusci-carousel-image img,
[data-art-carousel] img, .lightbox-image-wrap img {
  -webkit-user-drag: none;
  user-select: none;
}

/* Consistent numeric labels for inline carousels and full-screen galleries. */
.carousel-counter {
  font:300 11px/1.2 "Helvetica Neue", Arial, sans-serif;
  font-variant-numeric:lining-nums tabular-nums;
  letter-spacing:.055em;
  color:#848484;
  text-align:center;
  white-space:nowrap;
}
.vacia-triptych-counter, .bosque-carousel-counter, .nonce-passport-counter,
.fiore-carousel-counter {margin:10px auto 0;}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scrollbar-gutter: stable; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "Times Draft", "Times New Roman", serif; font-size: var(--body-size); }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; cursor: pointer; border: 0; background: none; }
img { display: block; max-width: 100%; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, [tabindex]:focus-visible { outline: 1px solid var(--ink); outline-offset: 6px; }
p { margin: 0 0 1em; }
h1, h2 { font-size: inherit; font-weight: 700; margin: 0 0 1.3em; }
.skip-link { position: fixed; left: 24px; top: -100px; z-index: 30; background: white; padding: 14px; border: 1px solid; }
.skip-link:focus { top: 12px; }
.site-header { height: var(--header); padding: 20px var(--gutter) 0; display: flex; align-items: flex-start; justify-content: flex-end; }
.wordmark { position: absolute; left: var(--gutter); top: 30px; width: 14.25vw; max-width: 226px; z-index: 12; }
.wordmark img { width: 100%; height: auto; }
.primary-nav { display: flex; align-items: center; justify-content: space-between; width: clamp(360px, 35vw, 550px); margin-right: 0; gap: 14px; }
.primary-nav a { font: 100 clamp(12px, 0.92vw, 14px) / 38px var(--navigation); position: relative; }
.primary-nav a::after { content: ""; position: absolute; bottom: 7px; left: 0; right: 0; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform 140ms; }
.primary-nav a:hover::after, .primary-nav a[aria-current="page"]::after { transform: scaleX(1); }
.menu-toggle { display: none; }
.sidebar { position: fixed; left: 0; top: 8.5vh; bottom: 13vh; width: var(--sidebar); border-right: 0; z-index: 10; }
.sidebar::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 1px; background: var(--rule); opacity: 0.48; transform: scaleX(0.5); transform-origin: right; pointer-events: none; }
.sidebar-content { padding: 50px 18px 18px var(--gutter); height: 100%; overflow-y: auto; scrollbar-width: thin; }
/* Match Obras to the light, underlined category headings on the Obras page. */
.sidebar-heading { font: 100 clamp(17px, 1.18vw, 19px) / 1.2 var(--navigation); margin: 0 0 28px; }
.sidebar-heading a { display:inline-block; position:relative; padding:0 9px 2px 0; text-decoration:none; }
.sidebar-heading a::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:rgba(0,0,0,0.5);
  transform:scaleY(0.5);
  transform-origin:bottom;
  pointer-events:none;
}
.side-nav { display: flex; flex-direction: column; align-items: flex-start; }
.side-nav a, .sidebar-heading { font-synthesis: none; }
.side-nav a { font: 100 clamp(11px, 0.82vw, 12.5px) / 1.25 var(--navigation); min-height: 31px; display: flex; align-items: center; padding: 3px 0; position: relative; max-width: 100%; }
.side-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 6px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform 140ms; }
.side-nav a:hover::after, .side-nav a[aria-current="page"]::after { transform: scaleX(1); }
/* Active sidebar links use a hairline at 50% black opacity. */
.side-nav a[aria-current="page"]::after {
  height: 0.5px;
  background: rgba(0, 0, 0, 0.5);
}
.side-nav .section-back { margin-top: 24px; }
.side-group { width: 100%; margin: 0 0 18px; }
.side-group:last-of-type { margin-bottom: 0; }
.side-group-title { text-transform: uppercase; min-height: 26px !important; }
.side-group-items { display: flex; flex-direction: column; align-items: flex-start; padding-left: 12px; }
.side-group-items a { min-height: 27px; }
.mobile-sections { display: none; }
/* Centre the Obras sidebar contents between the viewport's top and bottom,
   independently of the wordmark/header. Keep the original vertical divider fixed.
   Auto margins fall back to a scrollable top-aligned list on shorter screens. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .sidebar-content:has(> .side-nav.works-nav) {
    height: 100dvh;
    margin-top: -8.5vh;
    padding-top: 0;
    padding-bottom: 0;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
  }
  .sidebar-content > .side-nav.works-nav {
    margin: auto 0;
    flex-shrink: 0;
  }
  /* The En contacto page has its own full-height sidebar position. */
  body.en-contacto-mode .sidebar-content:has(> .side-nav.works-nav) {
    margin-top: 0;
  }
  /* Subtle extra breathing room between the three artwork groups. */
  .sidebar-content > .side-nav.works-nav > .side-group + .side-group,
  .proyectos-obras-guide > .side-nav.works-nav > .side-group + .side-group {
    margin-top: 5px;
  }
  /* The invisible Obras list supplies the actual vertical size of its index.
     Centering the same-sized guide means Proyectos begins exactly at Escultura,
     even as viewport height or the Obras list changes. */
  .sidebar-content:has(> .proyectos-sidebar-alignment) {
    height: 100dvh;
    margin-top: -8.5vh;
    padding-top: 0;
    padding-bottom: 0;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
  }
  .proyectos-sidebar-alignment {
    position: relative;
    width: 100%;
    flex-shrink: 0;
    margin: auto 0;
  }
  .proyectos-obras-guide {
    visibility: hidden;
    pointer-events: none;
  }
  .proyectos-side-nav {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
  }
  /* Match the first link's line box to the Escultura category title. */
  .proyectos-side-nav > a { min-height: 26px; }
  .proyectos-nav-title {
    font:100 clamp(15px,1.18vw,19px) / 1.2 var(--navigation);
    text-transform:uppercase;
    margin:0 0 24px;
  }
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .proyectos-obras-guide { display: none; }
  .proyectos-nav-title {font:100 17px/1.2 var(--navigation);text-transform:uppercase;margin:0 0 18px;}
  .sidebar-content > .side-nav.works-nav > .side-group + .side-group {
    margin-top: 4px;
  }
}
main { margin-left: var(--sidebar); min-height: calc(100svh - var(--header)); outline: none; }
main[tabindex]:focus, main[tabindex]:focus-visible { outline: none; }
/* Statement — the same right-side editorial column, margins and font sizing
   as La casa vacía and El bosque domesticado; supplied square image at left. */
.statement.statement-editorial {
  --statement-right: var(--artwork-right-safe, calc(var(--gutter) + 4.25vw));
  --statement-left: clamp(20px, 1.8vw, 36px);
  --statement-copy-width: 24.5vw;
  --statement-between: clamp(24px, 3.1vw, 44px);
  width: 100%;
  margin: 0;
  /* Use the actual Proyectos overview baseline, not its scrolled detail route. */
  padding: clamp(80px, 7.5vw, 110px) var(--statement-right) clamp(80px, 9vw, 135px) var(--statement-left);
  color: #231f20;
}
.statement-editorial .statement-heading {
  width: var(--statement-copy-width);
  margin: 0 0 0 auto;
}
.statement-editorial .statement-heading h1 {
  font: 700 clamp(12.5px, 1.04vw, 17px)/1.2 "Times Draft", "Times New Roman", serif;
  text-align: right;
  margin: 0;
}
.statement-editorial .statement-spread {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, var(--statement-copy-width));
  column-gap: var(--statement-between);
  align-items: start;
  margin-top: clamp(27px, 2.45vw, 35px);
}
.statement-editorial .statement-portrait {
  min-width: 0;
  width: min(100%, clamp(150px, 13.5vw, 210px));
  margin: 0 0 0 auto;
}
.statement-editorial .statement-portrait img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  /* The supplied statement mockup uses a vertical ~0.766 frame. */
  aspect-ratio: 272 / 355;
  object-fit: cover;
  object-position: 47% center;
}
.statement-editorial .statement-copy {
  min-width: 0;
  width: 100%;
  font: 400 clamp(12px, 1.04vw, 17px)/1.27 "Times Draft", "Times New Roman", serif;
}
.statement-editorial .statement-copy p {
  margin: 0 0 1.1em;
  text-align: justify;
  text-align-last: left;
  hyphens: none;
  -webkit-hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
  white-space: normal;
}
.statement-editorial .statement-copy p:last-child { margin-bottom: 0; }
/* Proyectos — Chiara's two-column reference: photographs left, justified copy right. */
.proyectos-page {
  display: flex;
  flex-direction: column;
  gap: clamp(130px, 12.9vw, 170px);
  padding: clamp(80px, 7.5vw, 110px) var(--gutter) clamp(95px, 10vw, 140px);
}
.proyectos-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(285px, 24.5vw, 350px);
  column-gap: clamp(55px, 10vw, 135px);
  grid-template-rows: auto auto;
  align-items: start;
  scroll-margin-top: 90px;
}
/* Heading in row one; photo and paragraph share the exact same start in row two. */
.proyectos-title {
  grid-column: 2;
  grid-row: 1;
  font: 700 clamp(12.5px, 1.04vw, 17px) / 1.2 "Times Draft", "Times New Roman", serif;
  text-align: right;
  margin: 0 0 clamp(27px, 2.45vw, 35px);
}
.proyectos-figure {
  grid-column: 1;
  grid-row: 2;
  width: min(100%, clamp(270px, 29.4vw, 440px));
  margin: 0;
  justify-self: end;
}
.proyectos-figure a {display:block;}
.proyectos-figure img {width:100%;height:auto;object-fit:contain;}
/* Semillero al viento — same outside hairline chevrons and 01 / 03 counter
   as the other editorial carousels. The three landscape photos keep a 4:3 frame. */
.proyectos-carousel {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  background: #fff;
}
.proyectos-carousel-image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  cursor: zoom-in;
}
.proyectos-carousel-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.proyectos-carousel-controls {
  position: absolute;
  inset: 0 -32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  pointer-events: none;
  z-index: 2;
}
.proyectos-carousel-controls button {
  position: relative;
  flex: 0 0 27px;
  width: 27px;
  height: 40px;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #161616;
  opacity: .74;
  pointer-events: auto;
}
.proyectos-carousel-controls button span {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 9px;
  height: 9px;
  border-top: .75px solid currentColor;
  border-right: .75px solid currentColor;
  transform: translate(-35%,-50%) rotate(-135deg);
}
.proyectos-carousel-controls button:last-child span {transform:translate(-65%,-50%) rotate(45deg);}
.proyectos-carousel-controls button:hover,
.proyectos-carousel-controls button:focus-visible {opacity:1;}
.proyectos-carousel-counter {margin:10px auto 0;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  /* The Semillero photograph and controls stay inside the text column. */
  .proyectos-carousel {width:100%;max-width:100%;margin-inline:0;}
  .proyectos-carousel-controls {
    inset:auto 0;top:calc(100% + 4px);height:32px;
  }
  .proyectos-carousel-controls button {flex-basis:22px;width:22px;}
  .proyectos-carousel-counter {margin-top:12px;}
}
.proyectos-figure figcaption {
  margin: 10px 0 0;
  font: 400 clamp(10px, 0.86vw, 12px) / 1.25 "Times Draft", "Times New Roman", serif;
  text-align: center;
}
.proyectos-copy {
  grid-column: 2;
  grid-row: 2;
  min-width: 0;
  font: 400 clamp(12px, 0.94vw, 16px) / 1.26 "Times Draft", "Times New Roman", serif;
}
.proyectos-copy p {
  margin: 0;
  text-align: justify;
  text-align-last: left;
  hyphens: none;
  -webkit-hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}
.proyectos-copy p + p {margin-top: 0.2em;}
/* Semillero: match the Obras/BIO right-hand editorial text column. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .proyectos-entry:first-child {
    margin-right: 4.25vw;
    grid-template-columns: minmax(0, 1fr) 24.5vw;
  }
  .proyectos-entry:first-child .proyectos-copy {
    font: 400 clamp(12px, 1.04vw, 17px)/1.27 "Times Draft", "Times New Roman", serif;
  }
}
/* Eufemia: shift the entire existing layout left to the Semillero right margin,
   preserving its image/text sizes, spacing and vertical positioning. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .proyectos-entry:nth-child(2) { transform: translateX(-4.25vw); }
}
/* Retain the second project's closer heading-to-text spacing. */
.proyectos-entry:nth-child(2) .proyectos-title {margin-bottom:20px;}

@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .proyectos-page {padding:48px 24px 78px;gap:88px;}
  .proyectos-entry {display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;gap:0;scroll-margin-top:96px;}
  .proyectos-title {grid-column:1;grid-row:1;width:min(100%,440px);margin:0 auto 21px;font-size:15px;}
  .proyectos-copy {grid-column:1;grid-row:2;width:min(100%,440px);margin:0 auto;font-size:15px;line-height:1.34;}
  .proyectos-copy p + p {margin-top:0.4em;}
  .proyectos-figure {grid-column:1;grid-row:3;width:min(100%,440px);margin:25px auto 0;justify-self:center;}
  .proyectos-figure figcaption {font-size:11px;margin-top:9px;}
  .proyectos-entry:nth-child(2) .proyectos-title {margin-bottom:21px;}
}

.artboard { position: relative; width: 100%; height: calc(100vw * 0.70715 - var(--header)); min-height: 630px; overflow: hidden; }
.artwork-button { position: absolute; padding: 0; display: block; background: white; }
.artwork-button img { width: 100%; height: 100%; object-fit: fill; }
.artwork-button::after { content: "+"; font: 16px / 24px var(--navigation); position: absolute; right: 8px; bottom: 8px; width: 24px; height: 24px; opacity: 0; background: white; transition: opacity 140ms; }
.artwork-button:hover::after, .artwork-button:focus-visible::after { opacity: 1; }
.project-copy { position: absolute; top: calc(100vw * 0.145 - var(--header)); right: var(--gutter); width: 22.15vw; text-align: right; z-index: 2; }
.project-copy h1 { font-size: var(--body-size); margin-bottom: 19px; }
.project-copy p { line-height: 1.2; margin: 0; }
.project-copy p + p { margin-top: 1.2em; }
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .project[data-project="en-contacto"] .artboard { height: calc(100vw * 0.84); }
  .project[data-project="en-contacto"] .artwork-button { height: auto !important; top: 120px !important; width: 20% !important; }
  .project[data-project="en-contacto"] .artwork-button img { height: auto; }
  .project[data-project="en-contacto"] .artwork-button:nth-of-type(1) { left: 3% !important; top: 80px !important; width: 32% !important; }
  .project[data-project="en-contacto"] .artwork-button:nth-of-type(2) { left: 78% !important; }
  .project[data-project="en-contacto"] .artwork-button:nth-of-type(3) { left: 57% !important; }
  .project[data-project="en-contacto"] .artwork-button:nth-of-type(4) { left: 36% !important; }
  .project[data-project="en-contacto"] .artwork-button:nth-of-type(5) { left: 59% !important; top: 440px !important; }
  .project[data-project="en-contacto"] .artwork-button:nth-of-type(6) { left: 36% !important; top: 440px !important; }
}

/* Huellas, sombras, tiempo — use the same editorial text column as Bosque
   and Chiara non c'e. Artwork shifts into the space to its left; text is never
   moved to accommodate an oversized gallery. */
.huellas-project {
  --huellas-gap-x: clamp(8px, 1.1vw, 16px);
  --huellas-gap-y: calc(clamp(70px, 8vw, 120px) + 2cm);
  --huellas-right-edge: calc(var(--gutter) + 4.25vw);
}
.huellas-stage {
  position: relative;
  padding: clamp(235px, 20vw, 292px) var(--huellas-right-edge) clamp(82px, 7vw, 112px) var(--huellas-right-edge);
}
.huellas-project .project-copy {
  top: clamp(56px, 5.5vw, 96px);
  right: var(--huellas-right-edge);
  width: 24.5vw;
}
.huellas-sequence {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--huellas-gap-y);
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.huellas-block,
.huellas-image-button {
  min-width: 0;
  max-width: 100%;
}
.huellas-image-button {
  display: block;
  width: 100%;
  padding: 0;
  background: transparent;
}
.huellas-image-button img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.huellas-image-button::after {
  display: none;
}
.huellas-caption {
  grid-column: 1 / -1;
  justify-self: center;
  width: 100%;
  max-width: 100%;
  margin: 12px auto 0;
  text-align: center;
  font: 400 clamp(10px, .78vw, 13px)/1.28 "Times Draft", "Times New Roman", serif;
}
.huellas-caption p { margin: 0; }
.huellas-caption em { font-style: italic; }

/* 1. Full-width, four-part shadow sequence. */
.huellas-block--physiology {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.huellas-block--physiology .huellas-caption { max-width: 100%; }

/* 2. Two antotipie: begin ~18% into the content area, end at the text edge. */
.huellas-block--vegetal,
.huellas-block--tres,
.huellas-block--eco {
  display: grid;
  column-gap: var(--huellas-gap-x);
  row-gap: 0;
  align-items: start;
}
.huellas-block--vegetal {
  width: 82.5%;
  margin-left: auto;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* 3. The pair of Tres minutos prints stays smaller, with matching framing. */
.huellas-block--tres {
  width: 52.5%;
  margin-left: 17.75%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.huellas-block--tres .huellas-image-button img {
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: center;
}

/* 4. Three square Polaroids form a shorter, left-aligned final row. */
.huellas-block--eco {
  width: 75%;
  margin-left: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .huellas-project {
    --huellas-gap-x: 14px;
    --huellas-gap-y: calc(70px + 2cm);
    --huellas-right-edge: 22px;
  }
  .huellas-stage { padding: 38px 22px 64px; }
  .huellas-project .project-copy {
    position: static;
    width: min(100%, 440px);
    margin: 0 0 58px auto;
    text-align: right;
  }
  .huellas-block--vegetal,
  .huellas-block--tres,
  .huellas-block--eco {
    width: 100%;
    margin-left: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 0;
  }
  .huellas-caption {
    font-size: 11px;
    margin-top: 12px;
  }
  .huellas-block--physiology .huellas-caption { max-width: min(100%, 300px); }
  .huellas-block--eco .huellas-image-button:nth-child(3) { grid-column: 1 / 2; }
}

/* Appunti di campo — photographic score from Chiara's three reference
   screenshots (11 October 2026). Each row has a deliberate width, position and
   interval; image pairs/series share the same restrained, consistent gutter.
   No crops, no stretch, and no changes to other project grids. */
.appunti-stage {
  --appunti-inset: var(--artwork-right-safe, calc(var(--gutter) + 4.25vw));
  --appunti-photo-gap: clamp(8px, 1.45vw, 16px);
  position: relative;
  padding-top: max(40px, calc(13.78vw - var(--header)));
  padding-bottom: clamp(85px, 9vw, 150px);
}
.appunti-project .project-copy {
  top: calc(14.5vw - var(--header));
  right: var(--appunti-inset);
  width: 24.5vw;
  text-align: right;
}
/* Override the shared justified body-copy rule for this single page. */
.project.appunti-project[data-project="appunti-di-campo"] .project-copy p {
  text-align: right;
  text-align-last: right;
}
.appunti-composition {
  width: calc(100% - 2 * var(--appunti-inset));
  margin-inline: auto;
  max-width: 1150px;
}
.appunti-row {
  display: flex;
  align-items: flex-start;
  gap: var(--appunti-photo-gap);
  width: 100%;
  min-width: 0;
}
.appunti-photo-item {
  flex: 0 0 auto;
  margin: 0;
  min-width: 0;
}
.appunti-photo-item button {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  cursor: zoom-in;
}
.appunti-photo-item img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
}
.appunti-ficha {
  width: 100%;
  max-width: 100%;
  margin: 12px 0 0;
  text-align: center;
  font: 400 clamp(10px, .78vw, 13px)/1.3 "Times Draft", "Times New Roman", serif;
}
.appunti-ficha em { font-style: italic; }
.appunti-ficha > span { display: block; }
.appunti-photo-item button:focus-visible {
  outline: 1px solid var(--ink);
  outline-offset: 5px;
}
/* 01: one photograph at the left. */
.appunti-row--opening .appunti-photo-item { width: 41%; }
/* 02: snow and trees, a horizontal image beside a smaller vertical one. */
.appunti-row--trees { justify-content: flex-end; margin-top: clamp(90px, 18vw, 176px); }
.appunti-row--trees .appunti-photo-item:first-child { width: 52%; }
.appunti-row--trees .appunti-photo-item:last-child { width: 23%; }
/* 03: isolated blurred landscape. */
.appunti-row--drift {
  flex-direction: column;
  align-items: flex-end;
  gap: var(--appunti-photo-gap);
  margin-top: clamp(64px, 11vw, 110px);
}
.appunti-row--drift .appunti-photo-item { width: 41%; }
/* 04: an offset portrait and a broad landscape, with one shared baseline. */
.appunti-row--ridge { justify-content: flex-end; align-items: flex-start; margin-top: clamp(95px, 22vw, 185px); }
.appunti-row--ridge .appunti-photo-item:first-child { width: 22%; }
.appunti-row--ridge .appunti-photo-item:last-child { width: 49%; }
/* 05: narrow left column of studies, kept tightly together. */
.appunti-row--snow { flex-direction: column; gap: var(--appunti-photo-gap); margin-top: clamp(55px, 9.5vw, 95px); }
.appunti-row--snow .appunti-photo-item { width: 33%; }
/* 06: paired hills. */
.appunti-row--hills { margin-top: clamp(75px, 12vw, 130px); }
.appunti-row--hills .appunti-photo-item { width: 40.5%; }
/* 07: two photographs stacked on the right. */
.appunti-row--road { align-items: flex-end; flex-direction: column; margin-top: clamp(85px, 15vw, 150px); }
.appunti-row--road .appunti-photo-item { width: 40%; }
/* 08: three horizontal frames on a single line. */
.appunti-row--panorama { margin-top: clamp(90px, 17vw, 175px); }
.appunti-row--panorama .appunti-photo-item { width: calc((100% - 2 * var(--appunti-photo-gap)) / 3); }
/* 09: a solitary vertical mountain study on the left. */
.appunti-row--mountain { margin-top: clamp(50px, 8vw, 90px); }
.appunti-row--mountain .appunti-photo-item { width: 29%; }
/* 10: two seascapes one above another on the right. */
.appunti-row--sea { align-items: flex-end; flex-direction: column; margin-top: clamp(90px, 17vw, 175px); }
.appunti-row--sea .appunti-photo-item { width: 36%; }
/* 11: broad left image and a smaller image slightly lower on the right. */
.appunti-row--fields { align-items: flex-start; margin-top: clamp(75px, 14vw, 140px); }
.appunti-row--fields .appunti-photo-item:first-child { width: 61%; }
.appunti-row--fields .appunti-photo-item:last-child { width: 36%; margin-top: clamp(35px, 10vw, 95px); }
/* 12: small concluding vertical study. */
.appunti-row--final { margin-top: clamp(75px, 13vw, 130px); }
.appunti-row--final .appunti-photo-item { width: 29%; }
.appunti-row--additional { flex-wrap: wrap; margin-top: clamp(65px, 10vw, 125px); }
.appunti-row--additional .appunti-photo-item { width: 31%; }

@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) and (max-width: 1150px) {
  .appunti-stage { padding-top: 42px; }
  .appunti-project .project-copy {
    position: relative;
    top: auto;
    right: auto;
    width: min(310px, 48%);
    margin: 0 var(--appunti-inset) 42px auto;
  }
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .appunti-stage {
    --appunti-photo-gap: 10px;
    padding: 36px 22px 82px;
  }
  .appunti-project .project-copy {
    position: static;
    top: auto;
    right: auto;
    width: 100%;
    max-width: 440px;
    margin: 0 0 42px auto;
    text-align: right;
  }
  .appunti-composition { width: 100%; max-width: 580px; }
  .appunti-ficha { font-size: 11px; }
  /* Compact screens keep their content edge on the right. */
  .appunti-row { margin-top: 56px; }
  .appunti-row:first-child { margin-top: 0; }
  .appunti-row--opening .appunti-photo-item { width: 60%; }
  .appunti-row--trees .appunti-photo-item:first-child { width: 59%; }
  .appunti-row--trees .appunti-photo-item:last-child { width: 30%; }
  .appunti-row--drift .appunti-photo-item { width: 59%; }
  .appunti-row--ridge .appunti-photo-item:first-child { width: 31%; }
  .appunti-row--ridge .appunti-photo-item:last-child { width: 58%; }
  .appunti-row--snow .appunti-photo-item { width: 59%; }
  .appunti-row--hills .appunti-photo-item { width: calc((100% - var(--appunti-photo-gap)) / 2); }
  .appunti-row--road .appunti-photo-item,
  .appunti-row--sea .appunti-photo-item { width: 61%; }
  .appunti-row--mountain .appunti-photo-item { width: 48%; }
  .appunti-row--fields .appunti-photo-item:first-child { width: 59%; }
  .appunti-row--fields .appunti-photo-item:last-child { width: 37%; margin-top: 38px; }
  .appunti-row--final .appunti-photo-item { width: 48%; }
  .appunti-row--additional .appunti-photo-item { width: 45%; }
}

/* Appunti di campo: generous space BETWEEN photographic groups only.
   Photographs WITHIN a group retain their tighter original gap,
   including vertical pairs and triptychs. */
.appunti-row:not(:first-child) { margin-top: clamp(108px, 11.5vw, 145px); }
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .appunti-row:not(:first-child) { margin-top: 76px; }
}

/* Tablets display the mobile header but preserve the editorial text/gallery
   right alignment instead of letting the text extend to the viewport edge. */
@media (min-width: 761px) and (max-width: 1024px) {
  .appunti-project .project-copy {
    margin-right: max(0px, calc((100% - 580px) / 2));
  }
}

.project-footer { margin: 12px var(--gutter) 36px; display: flex; align-items: center; justify-content: space-between; gap: 20px; font: 100 12.5px / 1.4 var(--navigation); }
/* Artwork footers: title | gallery | previous/next on desktop only.
   Compact devices keep the existing two-column title/navigation layout. */
.project-footer.artwork-footer {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr) max-content;
  align-items: center;
}
.project-footer.artwork-footer > .project-footer-title {
  min-width: 0;
  overflow-wrap: anywhere;
}
.project-footer.artwork-footer > .project-footer-gallery {
  justify-self: center;
  padding: 0 4px;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
  white-space: nowrap;
}
.project-footer.artwork-footer > .project-pagination {
  justify-self: end;
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .project-footer.artwork-footer { grid-template-columns: minmax(0, 1fr) auto; }
  .project-footer.artwork-footer > .project-footer-gallery { display: none; }
}
.project-footer a, .project-footer button { min-height: 44px; display: inline-flex; align-items: center; }
.project-footer a:hover, .project-footer button:hover { text-decoration: underline; text-underline-offset: 5px; }
.project-pagination { display: flex; align-items: center; gap: 24px; }
.arrow { font-family: "Times Draft", serif; margin: 0 8px; }
.collection { padding: 34px var(--gutter) 64px; max-width: 1260px; }
.collection-heading { font-size: var(--body-size); margin: 32px 0 46px; }
.art-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 62px 48px; }
.art-grid figure { margin: 0; }
.art-grid figure:nth-child(3n + 2) { margin-top: 90px; }
.art-grid a, .art-grid button { display: block; padding: 0; width: 100%; }
.art-grid img { width: 100%; height: auto; max-height: 370px; object-fit: contain; }
.art-grid figcaption { font: 100 12.5px / 1.4 var(--navigation); margin-top: 13px; }
.art-grid a:hover figcaption { text-decoration: underline; text-underline-offset: 5px; }
.residui-board .project-copy { display: none; }
.residui-gallery { padding: 28px var(--gutter) 64px; }
.residui-gallery .art-grid img { max-height: 440px; }
.text-page { padding: 64px var(--gutter) 80px; margin-left: 21%; max-width: 560px; }
.text-page h1 { margin-bottom: 25px; }
.text-page p { line-height: 1.4; }
.text-page .mediums { margin-bottom: 42px; }
.empty-sheet { min-height: 460px; padding-top: 70px; }
/* CV — two-column editorial typography following the supplied reference.
   Keep the dates gray, titles condensed and captions subdued. No rules. */
.cv-sheet {
  width: min(100% - 2 * clamp(26px, 6.7vw, 96px), 970px);
  margin: 0 auto;
  padding: clamp(52px, 6.8vw, 92px) 0 clamp(80px, 9vw, 135px);
  color: #111;
}
/* Match the left edge of the CV to the final A of the wordmark in Chiara's
   annotated desktop reference, without affecting typography or mobile flow. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .cv-sheet { transform: translateX(calc(12px + 1cm)); }
}
.cv-section { margin: 0 0 clamp(27px, 2.7vw, 38px); }
.cv-section:last-child { margin-bottom: 0; }
.cv-section h2 {
  margin: 0 0 18px;
  font: 100 clamp(11px, 0.93vw, 13.5px)/1.15 var(--navigation);
  text-transform: uppercase;
  font-synthesis: none;
  letter-spacing: 0;
}
.cv-entries { display: flex; flex-direction: column; gap: 1px; }
.cv-entry {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 0;
  align-items: start;
}
.cv-year {
  padding-top: 2px;
  font: 400 clamp(9px, 0.74vw, 10.5px)/1.28 "Times Draft", "Times New Roman", serif;
  color: #8b8b8b;
  white-space: nowrap;
  font-variant-numeric: lining-nums;
}
.cv-detail {
  font: 400 clamp(11px, 0.85vw, 12.25px)/1.23 "Times Draft", "Times New Roman", serif;
  letter-spacing: 0;
  overflow-wrap: break-word;
}
.cv-detail em { font-style: italic; }
.cv-muted { color: #898989; }
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .cv-sheet {
    width: min(calc(100% - 44px), 580px);
    padding: 57px 0 85px;
  }
  .cv-section { margin-bottom: 36px; }
  .cv-section h2 { font-size: 12.5px; margin-bottom: 16px; }
  .cv-entry { grid-template-columns: 49px minmax(0, 1fr); }
  .cv-year { font-size: 9.25px; padding-top: 2px; }
  .cv-detail { font-size: clamp(10px, 2.55vw, 11.5px); line-height: 1.28; }
  .cv-entries { gap: 6px; }
}
@media (max-width: 370px) {
  .cv-sheet, body.no-sidebar .manifesto-sheet { width: calc(100% - 30px); }
  .cv-entry { grid-template-columns: 44px minmax(0, 1fr); }
  .cv-year { font-size: 9px; }
  .cv-detail { font-size: 10px; }
}

/* BIO / CV — paired editorial spread from Chiara's supplied reference.
   Both headings share the same top line; columns keep generous white space. */
.bio-cv-sheet {
  /* Full editorial canvas: the CV has an independent left anchor, while
     BIO follows precisely the right edge used by Obras descriptions. */
  width: 100%;
  margin: 0;
  padding: clamp(115px, 9.65vw, 154px) var(--artwork-right-safe, calc(var(--gutter) + 4.25vw)) clamp(80px, 9vw, 135px) clamp(32px, 11.35vw, 180px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 24.5vw);
  column-gap: clamp(50px, 11.9vw, 190px);
  align-items: start;
  color: #111;
}
.bio-cv-sheet .bio-column,
.bio-cv-sheet .cv-sheet { min-width: 0; }
/* The BIO occupies the exact right-hand text column used by standard Obras descriptions. */
.bio-cv-sheet .bio-column {
  width: 100%;
  justify-self: end;
}
.bio-cv-sheet .bio-column h2 {
  text-align: right;
  margin: 0 0 18px;
  font: 100 clamp(11px, 0.93vw, 13.5px)/1.15 var(--navigation);
  text-transform: uppercase;
  font-synthesis: none;
  letter-spacing: 0;
}
.bio-cv-sheet .bio-copy {
  font: 400 clamp(12px, 1.04vw, 17px)/1.27 "Times Draft", "Times New Roman", serif;
  text-align: justify;
  text-align-last: left;
  hyphens: none;
  -webkit-hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
  white-space: normal;
}
.bio-cv-sheet .bio-copy p { margin: 0; }
/* Contact uses BIO's existing heading and body typography, aligned to its column. */
.bio-cv-sheet .bio-contact { margin-top: calc(clamp(45px, 5vw, 72px) - 20px); }
.bio-cv-sheet .bio-contact .bio-copy {
  text-align: right;
  text-align-last: right;
}
.bio-cv-sheet .cv-sheet {
  width: min(100%, 620px);
  margin: 0;
  padding: 0;
  transform: none;
  align-self: start;
}
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  /* As in the supplied editorial spread, CV begins slightly below BIO. */
  .bio-cv-sheet .cv-sheet { margin-top: 18px; }
}
/* Standard Obras descriptions switch to a 310px column on wide screens. */
/* Match the reference copy width at every desktop viewport size. */
@media (min-width: 1700px) {
  .bio-cv-sheet { grid-template-columns: minmax(0, 1fr) 24.5vw; }
}
/* Bring the curriculum text closer to BIO without changing the column grid. */
.bio-cv-sheet .cv-detail {
  font-size: clamp(12px, 0.94vw, 16px);
  line-height: 1.3;
}
.bio-cv-sheet .cv-year {
  font-size: clamp(10px, 0.78vw, 12px);
  line-height: 1.3;
}

@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .bio-cv-sheet {
    width: min(calc(100% - 44px), 580px);
    margin: 0 auto;
    grid-template-columns: minmax(0, 1fr);
    gap: 54px;
    padding: 57px 0 85px;
  }
  .bio-cv-sheet .bio-column h2 { font-size: 12.5px; margin-bottom: 16px; }
  .bio-cv-sheet .bio-column { width: min(100%, 440px); justify-self: start; }
  .bio-cv-sheet .bio-copy { font-size: 15px; line-height: 1.35; }
  .bio-cv-sheet .cv-sheet { width: 100%; padding: 0; margin-top: 0; }
  .bio-cv-sheet .cv-detail { font-size: 14px; line-height: 1.35; }
  .bio-cv-sheet .cv-year { font-size: 10.5px; line-height: 1.35; }
}
@media (max-width: 370px) {
  .bio-cv-sheet { width: calc(100% - 30px); }
}

/* Manifiesto — original letterpress print at right; one freehand wandering line at left. */
.manifesto-sheet {
  width: min(calc(100% - 2 * clamp(26px, 6.7vw, 96px)), 1250px);
  margin: 0 auto;
  padding: 22px 0 84px;
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  column-gap: clamp(34px, 6.5vw, 105px);
  align-items: start;
}
.manifesto-sketch {
  width: 100%;
  height: min(740px, 58vw);
  margin-top: 26px;
  pointer-events: none;
}
.manifesto-sketch svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  transform: scale(.94);
  transform-origin: center center;
}
.manifesto-sketch path {
  fill: none;
  stroke: #565451;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 16 11;
  opacity: .84;
  vector-effect: non-scaling-stroke;
  filter: url(#manifesto-pencil-grain);
}
.manifesto-image-link {
  display: block;
  width: min(560px, 100%);
  margin-left: auto;
}
/* Lift only the typographic print by 1.5 cm on the two-column desktop layout. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .manifesto-image-link { transform: translateY(-1.5cm); }
}
.manifesto-image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .manifesto-sheet {
    display: flex;
    flex-direction: column;
    width: min(calc(100% - 44px), 580px);
    padding: 24px 0 64px;
  }
  .manifesto-image-link { order: 0; width: min(100%, 520px); margin: 0 auto; }
  .manifesto-sketch {
    order: 1;
    align-self: center;
    width: min(100%, 440px);
    height: 330px;
    margin: 20px 0 0;
  }
}
.intro-mode .site-header, .intro-mode .sidebar { display: none; }
.intro-mode main { margin: 0; min-height: 100svh; }
.intro { height: 100svh; min-height: 460px; display: flex; justify-content: center; align-items: flex-end; padding-bottom: 21vh; }
.intro-entry { display: flex; flex-direction: column; align-items: center; padding: 28px; }
.intro-name { width: clamp(180px, 20vw, 260px); }
.intro-wing { width: clamp(170px, 17vw, 230px); margin-top: 11px; }
.intro-cue { font: 100 14px var(--navigation); margin-top: 28px; opacity: 0.45; transition: opacity 140ms; }
.intro-entry:hover .intro-cue, .intro-entry:focus-visible .intro-cue { opacity: 1; }
.lightbox { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; padding: 0; margin: 0; border: 0; background: white; color: var(--ink); }
.lightbox::backdrop { background: rgb(255 255 255 / 96%); }
.lightbox[open] { display: grid; grid-template-rows: 76px 1fr 76px; }
.lightbox-toolbar, .lightbox-footer { margin: 0 36px; display: flex; align-items: center; justify-content: space-between; gap: 20px; font: 100 13px / 1.3 var(--navigation); }
.lightbox-toolbar { border-bottom: 1px solid var(--rule); }
.lightbox-footer { border-top: 1px solid var(--rule); }
.lightbox button { font: inherit; min-width: 44px; min-height: 44px; padding: 8px 0; }
.lightbox-close span, .lightbox-prev span, .lightbox-next span { font-family: "Times Draft", serif; }
.lightbox-close span { font-size: 24px; margin-left: 14px; }
.lightbox-image-wrap { min-height: 0; padding: 24px 48px; display: flex; align-items: center; justify-content: center; }
.lightbox-image { max-height: 100%; max-width: 100%; width: auto; height: auto; object-fit: contain; }
/* In fullscreen mode, a diptych/triptych occupies one slide. The images
   remain separate source files and retain their own aspect ratios. */
.lightbox-image[hidden] { display:none; }
/* A quarter-turn swaps the available width and height; fit the complete image. */
.lightbox-image--quarter-turn {
  max-width:calc(100dvh - 200px);
  max-height:calc(100dvw - 96px);
}
.lightbox-composition {
  --gallery-panel-gap:clamp(8px,1vw,18px);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:var(--gallery-panel-gap);
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
}
.lightbox-composition > img {
  display:block;
  flex:0 1 auto;
  width:auto;
  height:auto;
  min-width:0;
  max-width:calc((100% - (var(--panel-count) - 1) * var(--gallery-panel-gap)) / var(--panel-count));
  max-height:100%;
  object-fit:contain;
}
/* Artist-approved side-by-side diptychs: both source images share the same
   visual height; the gallery script computes natural, non-cropped widths. */
.page-gallery .lightbox-composition--equal-height > img {
  flex:0 0 auto;
  max-width:none;
  max-height:none;
  object-fit:contain;
}
/* En contacto: two vertically stacked panels at left, one tall panel at right,
   matching the work's exceptional editorial composition. */
.lightbox-composition--stacked-left {
  display:grid;
  grid-template-columns:minmax(0,1.135fr) minmax(0,1fr);
  grid-template-rows:repeat(2,minmax(0,1fr));
  width:min(100%,1120px);
}
.lightbox-composition--stacked-left > img {
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
}
.lightbox-composition--stacked-left > img:nth-child(1) {grid-column:1;grid-row:1;}
.lightbox-composition--stacked-left > img:nth-child(2) {grid-column:1;grid-row:2;}
.lightbox-composition--stacked-left > img:nth-child(3) {grid-column:2;grid-row:1 / 3;}
/* Four photographs are displayed as the original 2 × 2 artwork, not as
   four separate lightbox pages (35 Geopoiesis). */
.lightbox-composition--grid-two {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:repeat(2,minmax(0,1fr));
  justify-items:center;
  align-items:center;
  justify-content:center;
  align-content:center;
  column-gap:var(--gallery-panel-gap);
  row-gap:var(--gallery-panel-gap);
  width:min(100%,1100px);
}
.lightbox-composition--grid-two > img {
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
}
/* La casa que migra: one page for the seven-image series, arranged as the
   approved four-image left column beside the three-image right column. */
.lightbox-composition--migra-columns {
  display:grid;
  grid-template-columns:minmax(0,1.58fr) minmax(0,1fr);
  grid-template-rows:repeat(12,minmax(0,1fr));
  width:min(100%,950px);
  gap:clamp(4px,.5vw,10px);
}
.lightbox-composition--migra-columns > img {
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
}
.lightbox-composition--migra-columns > img:nth-child(1) {grid-area:1 / 1 / 4 / 2;}
.lightbox-composition--migra-columns > img:nth-child(2) {grid-area:4 / 1 / 7 / 2;}
.lightbox-composition--migra-columns > img:nth-child(3) {grid-area:7 / 1 / 10 / 2;}
.lightbox-composition--migra-columns > img:nth-child(4) {grid-area:10 / 1 / 13 / 2;}
.lightbox-composition--migra-columns > img:nth-child(5) {grid-area:1 / 2 / 5 / 3;}
.lightbox-composition--migra-columns > img:nth-child(6) {grid-area:5 / 2 / 9 / 3;}
.lightbox-composition--migra-columns > img:nth-child(7) {grid-area:9 / 2 / 13 / 3;}
/* Appunti di campo: Chiara's vertical photographic pairs / sequences.
   Preserve their original top-to-bottom order on one gallery screen. */
.page-gallery .lightbox-composition--vertical-stack {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
}
.page-gallery .lightbox-composition--vertical-stack > img {
  flex:0 1 auto;
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:calc((100% - (var(--panel-count) - 1) * var(--gallery-panel-gap)) / var(--panel-count));
  object-fit:contain;
}
/* En contacto: two small skin photographs frame the wide bronze activation.
   Do not merge the separate sculpture/detail photographs that follow. */
.page-gallery .lightbox-composition--en-contacto-hero {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,2.65fr) minmax(0,1fr);
  align-items:center;
  justify-items:center;
  width:min(100%,1280px);
  column-gap:clamp(10px,2.4vw,46px);
}
.page-gallery .lightbox-composition--en-contacto-hero > img {
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
}
.lightbox-counter { white-space: nowrap; }
.lightbox-title { font-family: "Times Draft", "Times New Roman", serif; }
/* Fullscreen artwork gallery: match the title to the navigation labels,
   with delicate hairlines above and below the artwork. */
.page-gallery .lightbox-title { font: inherit; }
.page-gallery .lightbox-toolbar { border-bottom: .5px solid rgb(36 33 31 / 35%); }
.page-gallery .lightbox-footer { border-top: .5px solid rgb(36 33 31 / 35%); }
/* Keep the fullscreen gallery inside its viewport. Wide equal-height
   diptychs must shrink the artwork, not expand the grid's implicit column:
   otherwise the next arrow is pushed beyond the right edge. */
.page-gallery[open] { grid-template-columns:minmax(0,1fr); }
.page-gallery .lightbox-image-wrap { min-width:0; }
.page-gallery .lightbox-composition { max-width:100%; }
/* Di quando ero in fiore: slightly reduce every fullscreen carousel photo.
   The editorial gallery photographs below the carousel keep their original size. */
.page-gallery[data-project="di-quando-ero-in-fiore"] .lightbox-image--fiore-carousel {
  max-width:82%;
  max-height:82%;
}
/* La casa vacía: give every archive-carousel triptych a slightly smaller
   common frame (66% of the padded gallery area), centered between the rules.
   Preserve the photographs' proportions, without cropping wide triptychs. */
.page-gallery[data-project="la-casa-vacia"].page-gallery--vacia-triptych .lightbox-image-wrap > .lightbox-image,
.page-gallery[data-project="la-casa-vacia"].page-gallery--vacia-triptych .lightbox-image-wrap > .lightbox-composition {
  height:66%;
  max-height:66%;
}
.page-gallery[data-project="la-casa-vacia"].page-gallery--vacia-triptych .lightbox-image-wrap > .lightbox-image {
  width:auto;
  max-width:100%;
  object-fit:contain;
}
.page-gallery[data-project="la-casa-vacia"].page-gallery--vacia-triptych .lightbox-composition > img {
  height:100%;
  max-height:100%;
}
.image-count { font-family: var(--navigation); font-weight: 100; font-synthesis: none; }
.no-script { max-width: 500px; margin: 60px auto; padding: 30px; }
body:has(.lightbox[open]) { overflow: hidden; }

/* Standalone editorial pages have no left sidebar or divider. The two
   collection sections (Obras and Proyectos) retain their original sidebar.
   At mobile sizes the Menu overlay stays available for site navigation. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  body.no-sidebar .sidebar { display:none; }
  body.no-sidebar main { margin-left:0; }
  body.no-sidebar .manifesto-sheet { transform: none; }
  body.no-sidebar .text-page { margin-left:auto; margin-right:auto; }
}
/* Equalize the two outer ink margins without changing the sketch/text gap. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  body.no-sidebar .manifesto-sheet {
    transform: translateX(clamp(-47px, calc(54px - 7vw), 0px));
  }
}

@media (min-width: 1700px) {
  .wordmark { width: 226px; }
  .project-copy { width: 310px; }
}

@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  :root { --sidebar: 0px; --header: 82px; --gutter: 22px; --body-size: 15px; }
  html { scrollbar-gutter: auto; }
  .site-header { position: sticky; top: 0; background: white; border-bottom: none; z-index: 11; padding: 0 22px; align-items: center; }
  .wordmark { position: static; width: 176px; max-width: calc(100% - 86px); margin-right: auto; }
  .primary-nav { display: none; }
  .menu-toggle { display: inline-flex; align-items: center; justify-content: space-between; min-width: 54px; min-height: 44px; gap: 10px; padding: 0; font: 100 15px var(--navigation); }
  .menu-toggle span { font-family: "Times Draft", serif; font-size: 23px; }
  .sidebar { display: none; position: fixed; inset: 82px 0 0; background: white; width: 100%; border: 0; z-index: 10; }
  .sidebar.is-open { display: block; }
  .sidebar-content { padding: 28px 22px 46px; overflow-y: auto; height: 100%; }
  .sidebar-heading { font-size: 21px; margin-bottom: 18px; }
  .side-nav a { font-size: 14px; min-height: 40px; }
  .side-group { margin-bottom: 12px; }
  .side-group-title { min-height: 36px !important; }
  .side-group-items { padding-left: 10px; }
  .side-group-items a { min-height: 36px; }
  .mobile-sections { padding-top: 28px; margin-top: 24px; border-top: 1px solid; display: grid; grid-template-columns: 1fr 1fr; }
  /* Keep the active underline no wider than its navigation label. */
  .mobile-sections a { justify-self: start; }
  /* Mobile follows Semillero's 24px text insets, 15px type, and heading/body start. */
  .statement.statement-editorial { width:100%; margin:0; padding:48px 24px 78px; --statement-copy-width:100%; }
  .statement-editorial .statement-heading { width:100%; }
  .statement-editorial .statement-heading h1 { font-size:15px; }
  .statement-editorial .statement-spread { display:flex; flex-direction:column-reverse; gap:40px; margin-top:21px; }
  .statement-editorial .statement-copy { font-size:15px; line-height:1.34; }
  .statement-editorial .statement-copy p { margin-bottom:0; }
  .statement-editorial .statement-copy p + p { margin-top:.4em; }
  .statement-editorial .statement-portrait { width:min(56%,200px); margin:0 auto; }
  /* Statement on phones: slightly smaller portrait and viewport-aware spacing.
     Preserve the complete text instead of hiding overflow on very short screens. */
  @media (max-width: 767px) {
    .statement.statement-editorial {
      padding:clamp(10px,calc(10dvh - 57px),28px) 24px clamp(10px,calc(8dvh - 43px),24px);
    }
    .statement-editorial .statement-spread {
      gap:clamp(26px,calc(6dvh - 14px),34px);
      margin-top:clamp(8px,calc(4dvh - 19px),16px);
    }
    .statement-editorial .statement-portrait {
      width:min(49%,170px,clamp(46%,calc(46% + 4dvh - 27px),49%));
    }
  }
  .artboard { height: auto; min-height: 0; display: flex; flex-direction: column; overflow: visible; padding: 36px 24px 0; }
  .project-copy { position: static; width: min(100%, 440px); margin: 0 0 42px auto; order: -1; text-align: right; }
  .project-copy h1 { font-size: 15px; margin-bottom: 20px; }
  .project-copy p { line-height: 1.35; }
  .artwork-button { position: static !important; width: 100% !important; height: auto !important; margin: 0 0 22px; }
  .artwork-button img { width: 100%; height: auto; max-height: 570px; object-fit: contain; }
  .artwork-button::after { display: none; }
  .project-footer { margin: 22px 22px 34px; align-items: flex-start; font-size: 13px; flex-wrap: wrap; }
  .project-pagination { gap: 8px; }
  .collection { padding: 24px 24px 50px; }
  .collection-heading { margin: 22px 0 38px; }
  .art-grid { gap: 40px 20px; }
  .art-grid figure:nth-child(3n + 2) { margin-top: 36px; }
  .art-grid img { max-height: 260px; }
  .art-grid figcaption { font-size: 12.5px; }
  .text-page { padding: 52px 32px 64px; max-width: 440px; margin: auto; }
  .empty-sheet { min-height: 400px; }
  .manifesto-sheet { transform: none; }
  .residui-gallery { padding: 24px; }
  .lightbox[open] { grid-template-rows: 72px 1fr 76px; }
  .lightbox-toolbar, .lightbox-footer { margin: 0 20px; gap: 10px; font-size: 14px; }
  .lightbox-title { max-width: 70%; }
  .lightbox-image-wrap { padding: 20px 12px; }
  .lightbox-close span { margin-left: 6px; }
  .intro { padding-bottom: 24vh; }
  body:has(.sidebar.is-open) { overflow: hidden; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}

/* Gusci supplied layout: vertical carousel and editorial image grid. */
.gusci-stage {
  position: relative;
  height: clamp(520px, calc(46vw - var(--header)), 680px);
  min-height: 0;
}
.gusci-project .project-copy {
  top: calc(100vw * 0.145 - var(--header));
  right: var(--gutter);
  width: 22.15vw;
}
.gusci-carousel {
  position: absolute;
  top: calc(100vw * 0.145 - var(--header) + 35px);
  right: calc(45.5vw + var(--gutter));
  left: auto;
  width: clamp(132px, 12vw, 176px);
}
.gusci-carousel-image {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  padding: 0;
  overflow: hidden;
  background: #fff;
}
.gusci-carousel-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.gusci-carousel-controls {
  display: grid;
  grid-template-columns: 28px 1fr 28px;
  align-items: center;
  gap: 5px;
  margin-top: 7px;
  font: 100 10px / 1 var(--navigation);
}
.gusci-carousel-controls button {
  min-width: 28px;
  min-height: 28px;
  padding: 0;
  opacity: 0.55;
}
.gusci-carousel-controls button:hover,
.gusci-carousel-controls button:focus-visible {
  opacity: 1;
}
.gusci-carousel-controls button:last-child { text-align: right; }
.gusci-carousel-counter { text-align: center; white-space: nowrap; }


.gusci-grid-section {
  padding: 0 var(--gutter) clamp(88px, 8vw, 126px);
}
.gusci-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: clamp(20px, 1.75vw, 30px);
  row-gap: clamp(26px, 2vw, 34px);
  align-items: start;
  width: 100%;
}
.gusci-grid-image {
  display: block;
  width: 100%;
  padding: 0;
  background: transparent;
}
.gusci-grid-image img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.gusci-grid-empty { display: block; width: 100%; min-height: 1px; }
.gusci-grid--group { grid-column: 3 / 9; grid-row: 1; }
.gusci-grid--single {
  grid-column: 9 / 13;
  grid-row: 1;
  width: 78%;
  justify-self: end;
}
.gusci-grid--skins {
  grid-column: 2 / 6;
  grid-row: 2;
  width: 100%;
  justify-self: start;
}
.gusci-grid--detail { grid-column: 7 / 13; grid-row: 2; }
.gusci-grid--bottom {
  grid-column: 2 / 9;
  grid-row: 3;
  width: 100%;
  justify-self: start;
}
.gusci-grid--installation {
  grid-column: 9 / 12;
  grid-row: 3;
  width: 100%;
  justify-self: center;
  min-height: clamp(170px, 16vw, 245px);
}
.gusci-caption {
  grid-column: 9 / 12;
  grid-row: 4;
  justify-self: start;
  width: 190px;
  margin-top: -8px;
  font: 400 10px / 1.25 "Times Draft", "Times New Roman", serif;
}
.gusci-caption p { margin: 0; }



@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .gusci-stage {
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding: 38px 22px 68px;
  }
  .gusci-project .project-copy {
    position: static;
    width: min(100%, 440px);
    margin: 0 0 54px auto;
    text-align: right;
  }
  .gusci-carousel {
    position: static;
    width: min(48vw, 190px);
    margin: 0 auto 0 18%;
  }
  .gusci-carousel-controls {
    font-size: 11px;
    margin-top: 8px;
  }
  .gusci-grid-section {
    padding: 0 22px 68px;
  }
  .gusci-grid {
    display: flex;
    flex-direction: column;
    gap: 28px;
  }
  .gusci-grid-image { width: 100%; }
  .gusci-grid--single {
    width: 58%;
    margin-left: auto;
  }
  .gusci-grid--skins { width: 76%; }
  .gusci-grid--bottom { width: 92%; }
  .gusci-grid--installation { display: none; }
  .gusci-caption {
    width: 210px;
    margin: 10px 0 0 auto;
    font-size: 11px;
  }
}

/* Individual InDesign compositions, rebuilt from 8 October 2026 PDF geometry. */
.pdf-artboard { width:100%;height:auto;position:relative;background:#fff;overflow:hidden; }
.pdf-image { display:block;position:absolute;padding:0;overflow:hidden;background:#fff; }
.pdf-image img {display:block;width:100%;height:100%;object-fit:fill;}
.pdf-image:hover {outline:1px solid #999;outline-offset:2px;}
.pdf-text {position:absolute;white-space:nowrap;color:#231f20;line-height:1.1;font-family:"Times Draft","Times New Roman",serif;font-weight:400;}
.pdf-text.pdf-bold {font-weight:700;}
.pdf-mobile-copy {display:none;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
 .pdf-artboard {aspect-ratio:auto!important;display:flex;flex-direction:column;gap:25px;padding:0 22px;}
 .pdf-artboard .pdf-text {display:none;}
 .pdf-artboard .pdf-image {position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:auto!important;}
 .pdf-artboard .pdf-image img {width:100%;height:auto;object-fit:contain;}
 .pdf-mobile-copy {display:block;padding:26px 22px 42px;text-align:right;line-height:1.45;}
 .pdf-mobile-copy h1 {font-size:17px;}
 .pdf-project .project-footer {padding-bottom:24px;}


}

/* The PDF coordinates include the whole sheet, not only the site's content column. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
 .pdf-project .pdf-artboard {width:100vw;max-width:none;margin-left:calc(-1 * var(--sidebar));container-type:inline-size;}
 .pdf-project .pdf-text {line-height:1.05;white-space:nowrap;letter-spacing:0;overflow:visible;}
 .pdf-project .pdf-image {z-index:1;}
 .pdf-project .pdf-text {z-index:2;pointer-events:none;}
}

/* Unified portfolio typography: consistent semantic roles on every work. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
 .pdf-project .pdf-text {
   font-family:"Times Draft","Times New Roman",serif;
   font-size:clamp(11px, 0.94cqw, 16px);
   line-height:1.18;
   font-weight:400;
 }
 .pdf-project .pdf-text--title {font-weight:700;font-size:clamp(12px, 1.04cqw, 17px);}
 .pdf-project .pdf-text--caption {font-size:clamp(10px, 0.78cqw, 13px);line-height:1.22;}
}
.pdf-mobile-copy, .pdf-mobile-copy p {font-family:"Times Draft","Times New Roman",serif;font-size:14px;line-height:1.4;font-weight:400;}
.pdf-mobile-copy h1 {font-family:"Times Draft","Times New Roman",serif;font-size:16px;font-weight:700;}

/* Flowing, left-aligned artwork descriptions: complete words, no forced hyphenation. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .pdf-project .pdf-flow-title,
  .pdf-project .pdf-flow-body {
    position:absolute;
    left:72.94%;
    width:24.5%;
    text-align:left;
    font-family:"Times Draft","Times New Roman",serif;
    color:#231f20;
    z-index:3;
  }
  .pdf-project .pdf-flow-title {font-size:clamp(12px,1.04cqw,17px);line-height:1.2;font-weight:700;margin:0;}
  .pdf-project .pdf-flow-body {font-size:clamp(11px,0.94cqw,16px);line-height:1.3;font-weight:400;}
  .pdf-project .pdf-flow-body p {margin:0 0 .65em;hyphens:none;overflow-wrap:normal;word-break:normal;white-space:normal;}
  .pdf-project .pdf-text--caption {white-space:nowrap;hyphens:none;word-break:normal;width:auto!important;}
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .pdf-project .pdf-flow-title,.pdf-project .pdf-flow-body {display:none;}
  .pdf-project .pdf-mobile-copy {text-align:left;}
  .pdf-project .pdf-mobile-copy p {hyphens:none;overflow-wrap:normal;word-break:normal;}
}
/* Editorial alignment matching the supplied reference: right-aligned heading,
   fully justified paragraphs, with whole words and no automatic syllabification. */
.pdf-project .pdf-flow-title { text-align: right; }
.pdf-project .pdf-flow-body,
.pdf-project .pdf-flow-body p { text-align: justify; text-align-last: left; hyphens: none; -webkit-hyphens: none; -ms-hyphens: none; overflow-wrap: normal; word-break: normal; word-wrap: normal; }
.pdf-project .pdf-mobile-copy { text-align: justify; }
.pdf-project .pdf-mobile-copy h1 { text-align: right; }
.pdf-project .pdf-mobile-copy p { text-align: justify; text-align-last: left; hyphens: none; -webkit-hyphens: none; overflow-wrap: normal; word-break: normal; }

@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
 .pdf-project .pdf-hero-caption {
   position:absolute; z-index:4; color:#231f20;
   font:400 clamp(10px,.78cqw,13px)/1.24 "Times Draft","Times New Roman",serif;
   text-align:center; white-space:pre-line; hyphens:none; overflow-wrap:normal;
 }
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
 .pdf-project .pdf-hero-caption {display:none;}
}

@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
 .pdf-project .pdf-image--hero {order:-2;}
 .pdf-project .pdf-hero-caption {display:block!important;position:relative;left:auto!important;top:auto!important;width:100%!important;order:-1;text-align:center;font-size:11px;white-space:pre-line;line-height:1.3;margin-top:-15px;}
}

/* Every technical label belongs to its own photograph. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
 .pdf-project .pdf-photo {position:absolute;margin:0;z-index:3;overflow:visible;}
 .pdf-project .pdf-photo .pdf-image {position:relative;left:auto;top:auto;display:block;}
 .pdf-project .pdf-photo-caption {
   position:absolute;left:0;top:calc(100% + 10px);width:100%;
   margin:0;text-align:center;white-space:pre-line;
   font:400 clamp(10px,.78cqw,13px)/1.25 "Times Draft","Times New Roman",serif;
   color:#231f20;hyphens:none;overflow-wrap:normal;word-break:normal;
 }
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
 .pdf-project .pdf-photo {position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:auto!important;display:block;margin:0 0 28px;}
 .pdf-project .pdf-photo .pdf-image {position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:auto!important;}
 .pdf-project .pdf-photo-caption {font:400 11px/1.3 "Times Draft","Times New Roman",serif;text-align:center;white-space:pre-line;margin:10px auto 0;}
 .pdf-project .pdf-photo--hero {order:-2;}
}

.pdf-project .pdf-art-carousel {position:relative;width:100%;height:100%;overflow:visible;}
.pdf-project .pdf-art-carousel > img {display:block;width:100%;height:100%;object-fit:cover;}
.pdf-project .pdf-art-carousel-controls {position:absolute;bottom:8px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;padding:4px 7px;background:rgba(255,255,255,.9);font:11px/1.2 "Times Draft","Times New Roman",serif;}
.pdf-project .pdf-art-carousel-controls button {padding:3px 7px;min-width:28px;}
.pdf-project .pdf-art-carousel-controls button:hover {text-decoration:underline;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {.pdf-project .pdf-art-carousel {height:auto;aspect-ratio:1307/2000;}.pdf-project .pdf-art-carousel > img {height:100%;}}

/* Carousel controls belong below the image and its technical caption, never on the artwork. */
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls {
  position:absolute; top:calc(100% + 76px); bottom:auto; left:50%;
  transform:translateX(-50%); padding:0; background:transparent;
  z-index:10; display:flex; align-items:center; gap:16px; white-space:nowrap;
  font:12px/1.4 "Times Draft","Times New Roman",serif;
}
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button { min-width:34px; min-height:32px; padding:5px 8px; }
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
 .pdf-project .pdf-photo--carousel .pdf-art-carousel-controls {
   position:relative; top:auto; left:auto; transform:none;
   justify-content:center; margin:12px 0 24px;
 }
}

/* Technical sheets use an identical two-line editorial composition. */
.pdf-project .pdf-photo-caption {white-space:normal; font-style:normal;}
.pdf-project .pdf-photo-caption em {font-style:italic;}
.pdf-project .pdf-caption-detail {display:block;line-height:1.3;}
/* Controls centered in the space between artwork and its technical sheet. */
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls {
 top:calc(100% + 10px); color:#8b8b8b; font-size:11px;
 letter-spacing:.06em; gap:20px;
}
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button {color:#8b8b8b; font-size:15px;transition:color .15s;}
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button:hover {color:#353535;}
.pdf-project .pdf-photo--carousel .pdf-photo-caption {top:calc(100% + 54px);}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
 .pdf-project .pdf-photo--carousel .pdf-art-carousel-controls {position:relative;top:auto;margin:10px 0 8px;}
 .pdf-project .pdf-photo--carousel .pdf-photo-caption {position:relative;top:auto;margin:4px 0 0;}
}
/* Side-mounted carousel navigation, outside the photograph. */
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls {
  position:absolute; top:0; bottom:auto; left:0; width:100%; height:100%;
  transform:none; display:block; pointer-events:none; background:none; padding:0;
}
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button {
  position:absolute; top:50%; transform:translateY(-50%); pointer-events:auto;
  color:#8a8a8a; font-size:20px; min-width:30px; min-height:36px;
  background:transparent; border:0; padding:5px; line-height:1;
}
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button[data-art-carousel-step="-1"] {left:-36px;}
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button[data-art-carousel-step="1"] {right:-36px;}
.pdf-project .pdf-photo--carousel .pdf-art-carousel-count {
  position:absolute; top:calc(100% + 12px); left:50%; transform:translateX(-50%);
}
.pdf-project .pdf-photo--carousel .pdf-photo-caption {top:calc(100% + 41px);}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
 .pdf-project .pdf-photo--carousel .pdf-art-carousel-controls {position:absolute;top:0;left:0;height:100%;width:100%;margin:0;transform:none;}
 .pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button[data-art-carousel-step="-1"] {left:-19px;}
 .pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button[data-art-carousel-step="1"] {right:-19px;}
 .pdf-project .pdf-photo--carousel .pdf-art-carousel-count {position:relative;top:auto;left:auto;transform:none;margin:10px auto 0;}
 .pdf-project .pdf-photo--carousel .pdf-photo-caption {margin-top:12px;}
}

/* October 8 editorial refinements */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .wordmark {position:fixed;top:30px;left:var(--gutter);transform:rotate(0deg);transform-origin:center center;}
  .pdf-project .pdf-flow-title, .pdf-project .pdf-flow-body {left:auto;right:calc(var(--gutter) + 3vw);width:24.5%;}
}
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button {color:rgba(90,90,90,.48);font-size:30px;font-family:Arial,sans-serif;font-weight:200;opacity:.65;transition:opacity .18s ease,color .18s ease;}
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button:hover,.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button:focus-visible {color:rgba(55,55,55,.85);opacity:1;}
.pdf-project .pdf-photo--carousel .pdf-photo-caption {top:calc(100% + 36px);}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
 .wordmark {transform:rotate(0deg);transform-origin:center center;}
 .pdf-project .pdf-photo--carousel .pdf-photo-caption {margin-top:12px;}
}
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) { .pdf-project .pdf-flow-title, .pdf-project .pdf-flow-body {right:calc(var(--gutter) + 4.25vw);} }
/* Reduce only the whitespace below the horizontal navigation on artwork pages.
   Preserve each photograph's authored dimensions and the header/navigation. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .pdf-project .pdf-artboard {transform:translateY(-128px);margin-bottom:-128px;}
}

/* Arqueología: use the original photograph position from the authored layout. */
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button {
 font-family:var(--navigation)!important;font-weight:100!important;
 font-size:25px;opacity:.6;
}

/* Surface preserves the PDF geometry; outer window ends at the last real element. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
 .site-header {position:relative;z-index:30;background:#fff;} /* visible at the top, scrolls away */
 .pdf-project .pdf-board-window {position:relative;width:100vw;margin-left:calc(-1 * var(--sidebar));overflow:hidden;}
 .pdf-project .pdf-board-window .pdf-artboard {margin-left:0!important;margin-bottom:0!important;}
}
/* Mobile keeps the natural editorial flow rather than a clipped surface. */
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
 .pdf-project .pdf-board-window {position:relative;width:100%;margin:0;overflow:visible;height:auto!important;}
}
/* The draft Mono45 font lacks chevron glyphs. Draw matched hairline chevrons
   with the same visual stroke weight as the left navigation. */
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button {
 font-family:var(--navigation)!important;
 font-size:0!important;
 font-weight:100!important;
 color:rgba(76,76,76,.65); opacity:.7;
}
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button::before {
 content:"";display:block;width:11px;height:11px;
 border-top:.65px solid currentColor;border-right:.65px solid currentColor;
 position:absolute;left:50%;top:50%;
 transform:translate(-62%,-50%) rotate(45deg);
}
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button[data-art-carousel-step="-1"]::before {
 transform:translate(-35%,-50%) rotate(-135deg);
}
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button:hover {opacity:1;color:rgba(44,44,44,.85);}
/* At tablet widths, keep the heading above the crop line without shrinking photos. */


/* Dark, readable hairline carousel controls, still outside the photograph. */
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button {
  color: #111 !important;
  opacity: 1 !important;
}
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button:hover,
.pdf-project .pdf-photo--carousel .pdf-art-carousel-controls button:focus-visible {
  color: #000 !important;
  opacity: 1 !important;
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  /* On small screens the description follows the photographs in natural flow. */
  .pdf-project .pdf-mobile-copy {padding-bottom:3.5cm;}
}

/* Artwork descriptions: justified text with short final lines aligned to the right. */
.pdf-project .pdf-flow-body p,
.pdf-project .pdf-mobile-copy p {
  text-align: justify;
  text-align-last: right;
  hyphens: none;
  -webkit-hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}

/* Desktop artwork index remains still as the page scrolls; only mobile has a
   separately scrollable menu panel. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .sidebar {
    position: fixed;
    left: 0;
    top: 8.5vh;
    bottom: 13vh;
  }
  .sidebar-content {
    overflow-y: visible;
    height: 100%;
  }
}

/* Fit the whole fixed index onto shorter landscape laptop displays. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) and (max-height:800px) {
  .sidebar {bottom:0;}
  .sidebar-content {padding-top:0;}
  .sidebar-heading {margin-bottom:15px;}
  .side-group {margin-bottom:9px;}
  .side-group-title {min-height:21px!important;}
  .proyectos-side-nav > a {min-height:21px;}
  .side-group-items a {min-height:23px;}
}

/* Shared editorial paragraph treatment across all individual artwork pages.
   Preserve each page's specific arrangement of photographs and captions. */
.pdf-project .pdf-flow-body p,
.pdf-project .pdf-mobile-copy p,
.project:not(.pdf-project) .project-copy p {
  text-align: justify;
  text-align-last: left;
  hyphens: none;
  -webkit-hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}

/* Archeologia di un corpo: preserve the intentional Italian-only line break. */
html[lang="it"] .pdf-project[data-project="arqueologia"] .pdf-flow-body p,
html[lang="it"] .pdf-project[data-project="arqueologia"] .pdf-mobile-copy p {
  white-space: pre-line;
}

/* Desktop wordmark belongs to the naturally scrolling top header, like the
   horizontal navigation. Keep the native image orientation, position and dimensions unchanged. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .site-header .wordmark {
    position: absolute;
    top:30px;
    left:var(--gutter);
  }
}
/* Natural-flow artwork galleries keep the same final breathing room on mobile. */
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
 .project:not(.pdf-project) .artboard {padding-bottom:3.5cm;}
}

/* Gusci: first photograph becomes an interactive carousel; five natural-aspect
   details follow in a staggered editorial grid. */
.pdf-project[data-project="gusci"] .pdf-photo--hero img {
  object-fit:contain !important;
  object-position:center;
}
.pdf-project[data-project="gusci"] .pdf-photo--hero {z-index:4;}
/* Gusci — 9-position editorial grid, following the author's supplied layout.
   The right edge coincides with the text column's permanent white margin.
   Images retain their proportions; empty slots await their original files. */

/* Gusci — the same compact photographic grid scale and spacing as En contacto.
   Preserve the existing nine photographs and the artist's staggered pairings.
   The main artwork column is 68.3% of the available desktop page, matching the
   width of En contacto's 74.35%-of-inner-content composition. */
.gusci-new-gallery {
  position:relative;
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-template-rows:20.5fr 20fr 18fr 14fr 27.5fr;
  gap:8px;
  width:68.3%;
  max-width:none;
  margin:clamp(45px,4.5vw,76px) auto 3.5cm;
  padding:0;
  aspect-ratio:1 / 2.5;
}
.gusci-new-gallery-item {
  position:relative;
  inset:auto;
  margin:0;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
}
.gusci-new-gallery-item:nth-child(1) {grid-area:1 / 4 / 2 / 13;}
.gusci-new-gallery-item:nth-child(2) {grid-area:2 / 1 / 3 / 6;}
.gusci-new-gallery-item:nth-child(3) {grid-area:2 / 6 / 3 / 13;}
.gusci-new-gallery-item:nth-child(4) {grid-area:3 / 1 / 4 / 9;}
.gusci-new-gallery-item:nth-child(5) {grid-area:3 / 9 / 4 / 13;}
.gusci-new-gallery-item:nth-child(6) {grid-area:4 / 1 / 5 / 6;}
.gusci-new-gallery-item:nth-child(7) {grid-area:4 / 6 / 5 / 13;}
.gusci-new-gallery-item:nth-child(8) {grid-area:5 / 1 / 6 / 7;}
.gusci-new-gallery-item:nth-child(9) {grid-area:5 / 7 / 6 / 13;}
.gusci-new-gallery-item button {
  display:block;
  width:100%;
  height:100%;
  padding:0;
  margin:0;
  overflow:hidden;
  cursor:zoom-in;
  background:white;
}
.gusci-new-gallery-item img {
  display:block;
  width:100%;
  height:100%!important;
  max-width:none;
  object-fit:cover!important;
  object-position:center;
  aspect-ratio:auto!important;
}
/* Keep the full final installation photograph aligned to the left grid gap,
   leaving the remaining space on its right. */
.gusci-new-gallery-item:nth-child(9) img {
  object-fit:contain!important;
  object-position:left center;
}
.gusci-new-gallery-item:nth-child(2) img {object-position:center 51%;}
/* Keep the intentional close crop of the lateral bronze shell. */
.gusci-new-gallery-item:nth-child(6) img {
  transform:scale(1.8);
  transform-origin:center center;
}
.gusci-new-gallery-item--empty {background:white;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  /* Align the gap below Gusci's mobile description with other artwork pages. */
  .pdf-project[data-project="gusci"] .pdf-mobile-copy {padding-bottom:56px;}
  .gusci-new-gallery {
    width:min(calc(100% - 44px),580px);
    margin:0 auto 3.5cm;
    gap:6px;
  }
}
/* Center Gusci's technical sheet under the visible final photograph,
   not the wider grid cell: object-fit:contain leaves space on its right. */
.gusci-new-gallery-ficha {
  display:block;
  position:relative;
  left:0;
  transform:none;
  margin:12px 0 0;
  width:77.6%;
  color:#231f20;
  font:400 clamp(10px,.78vw,13px)/1.3 "Times Draft","Times New Roman",serif;
  text-align:center;
  hyphens:none;
}
.gusci-new-gallery-ficha em {font-style:italic;}
.gusci-new-gallery-ficha span {display:block;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .gusci-new-gallery-ficha {font-size:11px;}
}

/* Gusci carousel: crop within each image's frame, leaving the carousel
   unclipped so the two hairline navigation arrows remain visible outside it. */
.pdf-project[data-project="gusci"] .pdf-photo--hero .pdf-art-carousel {
  width:100%;height:100%;overflow:visible;
}
.pdf-project[data-project="gusci"] .pdf-photo--hero .pdf-art-carousel > img {
  display:block;width:100%;height:100%;object-fit:cover!important;
  object-position:center!important;
}
/* The first five fullscreen slides belong to this carousel. Display all five
   at the exact 220 x 292 size of its two smaller originals. The second slide
   is cropped horizontally within this frame; the source files are untouched. */
.page-gallery[data-project="gusci"] .lightbox-image--gusci-carousel {
  width:220px;
  height:292px;
  max-width:100%;
  max-height:100%;
  object-fit:cover;
  object-position:center;
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .pdf-project[data-project="gusci"] .pdf-photo--hero .pdf-art-carousel {
    aspect-ratio:172 / 229;
    height:auto!important;
  }
  .pdf-project[data-project="gusci"] .pdf-photo--hero .pdf-art-carousel > img {
    width:100%;height:100%!important;position:absolute;inset:0;
  }
}

/* La casa vacía: three archive frames make a SINGLE carousel slide. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
 .pdf-project[data-project="la-casa-vacia"] .pdf-board-window {height:440px!important;}
 .pdf-project[data-project="la-casa-vacia"] .pdf-artboard .pdf-photo {display:none!important;}
 .vacia-triptych-figure {position:relative;width:37vw;max-width:650px;margin:-365px 0 120px calc(8vw + var(--sidebar));z-index:4;}
}
.vacia-triptych-figure {padding:0;}
.vacia-triptych {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,1vw,16px);align-items:start;}
.vacia-triptych img {display:block;width:100%;height:auto!important;aspect-ratio:auto!important;object-fit:contain!important;}
.vacia-photo-grid {display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:clamp(35px,4vw,68px);padding:0 3.5vw 3.5cm;}
.vacia-photo-grid figure {margin:0;min-width:0;}
.vacia-photo-grid figure:nth-child(1) {grid-column:4/13;}
.vacia-photo-grid figure:nth-child(2) {grid-column:2/7;}
.vacia-photo-grid figure:nth-child(3) {grid-column:7/13;}
.vacia-photo-grid figure:nth-child(4) {grid-column:2/9;}
.vacia-photo-grid figure:nth-child(5) {grid-column:9/13;}
.vacia-photo-grid .vacia-photo-grid--installation {grid-column:2/13;}
.vacia-photo-grid img {display:block;width:100%;height:auto!important;aspect-ratio:auto!important;object-fit:contain!important;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
 .vacia-triptych-figure {width:calc(100% - 44px);margin:26px 22px 30px;}
 .vacia-triptych {gap:5px;}
 .vacia-photo-grid {display:flex;flex-direction:column;gap:30px;padding:0 22px 3.5cm;}
}
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
 .vacia-triptych-figure {margin-left:clamp(12px,2vw,35px);width:40vw;max-width:600px;}
}

/* Align triptych with the first description line, retaining its image ratios. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
 .vacia-triptych-figure {margin-top:-318px;margin-bottom:200px;}
}
.vacia-triptych-caption {
 margin:15px 0 0;text-align:center;
 font:400 clamp(10px,.78vw,13px)/1.3 "Times Draft","Times New Roman",serif;
}
.vacia-triptych-caption em {font-style:italic;}
.vacia-triptych-caption span {display:block;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
 .vacia-triptych-figure {margin-top:26px;margin-bottom:72px;}
}

/* La casa vacía — restore the author's 8-position editorial layout.
   Each photograph remains in its natural aspect ratio: no stretch or crop. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
 .vacia-photo-grid {
   grid-template-columns:repeat(12,minmax(0,1fr));
   column-gap:clamp(18px,1.65vw,28px);
   row-gap:clamp(46px,4vw,72px);
   padding-left:clamp(19px,1.8vw,32px);
   padding-right:clamp(19px,1.8vw,32px);
 }
 .vacia-photo-grid figure:nth-child(1) {grid-column:4/13; grid-row:1;}
 .vacia-photo-grid figure:nth-child(2) {grid-column:1/6; grid-row:2;}
 .vacia-photo-grid figure:nth-child(3) {grid-column:7/13; grid-row:2;}
 .vacia-photo-grid figure:nth-child(4) {grid-column:1/9; grid-row:3;}
 .vacia-photo-grid figure:nth-child(5) {grid-column:9/13; grid-row:3;}
 .vacia-photo-grid .vacia-photo-grid--detail-45 {grid-column:1/6; grid-row:4;}
 .vacia-photo-grid .vacia-photo-grid--process-8 {grid-column:6/13; grid-row:4;}
 .vacia-photo-grid .vacia-photo-grid--installation {grid-column:1/13; grid-row:5;}
}
.vacia-photo-grid img {
 width:100%; height:auto!important; aspect-ratio:auto!important;
 object-fit:contain!important; object-position:center;
}

/* La casa vacía: reference-based editorial arrangement. The quotation sits
   above the body; the archive triptych begins exactly at the first body line.
   All rows of the lower grid end at the text column's right page margin. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .vacia-editorial-project {
    --vacia-right: calc(var(--gutter) + 4.25vw);
    --vacia-left: clamp(20px,1.8vw,36px);
    --vacia-copy-width: 24.5vw;
    --vacia-between: clamp(40px,5.6vw,100px);
  }
  .vacia-editorial-top {
    padding: clamp(56px,5.5vw,96px) var(--vacia-right) 0 var(--vacia-left);
  }
  .vacia-editorial-heading {
    width:var(--vacia-copy-width);margin:0 0 0 auto;
  }
  .vacia-editorial-heading h1 {
    font:700 clamp(12px,1.04vw,17px)/1.2 "Times Draft","Times New Roman",serif;
    text-align:right;margin:0 0 clamp(22px,2.2vw,34px);
  }
  .vacia-quote {
    margin:0;
    font:italic 400 clamp(12px,1.04vw,17px)/1.24 "Times Draft","Times New Roman",serif;
    color:#8a8480;
  }
  .vacia-quote p {
    margin:0;text-align:justify;text-align-last:right;
    hyphens:none;-webkit-hyphens:none;
  }
  .vacia-quote cite {
    display:block;margin-top:6px;text-align:right;font-style:normal;color:#24211f;
  }
  .vacia-story {
    display:grid;
    grid-template-columns:minmax(0,1fr) var(--vacia-copy-width);
    column-gap:var(--vacia-between);
    align-items:start;
    margin-top:clamp(32px,3vw,55px);
  }
  .vacia-editorial-project .vacia-story .vacia-triptych-figure {
    position:static;display:block;max-width:none;width:100%;margin:0;
  }
  .vacia-story-copy {
    min-width:0;
    font:400 clamp(12px,1.04vw,17px)/1.27 "Times Draft","Times New Roman",serif;
  }
  .vacia-story-copy p {
    text-align:justify;text-align-last:left;hyphens:none;-webkit-hyphens:none;
    overflow-wrap:normal;word-break:normal;margin:0 0 1.1em;
  }
  .vacia-editorial-project .vacia-photo-grid {
    padding:0 var(--vacia-right) 3.5cm var(--vacia-left);
    margin-top:clamp(70px,8vw,130px);
    grid-template-columns:repeat(12,minmax(0,1fr));
  }
}
.vacia-editorial-project .vacia-triptych {
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
}
.vacia-editorial-project .vacia-triptych img,
.vacia-editorial-project .vacia-photo-grid img {
  width:100%;height:auto!important;aspect-ratio:auto!important;
  object-fit:contain!important;object-position:center;
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .vacia-editorial-top {padding:28px 22px 0;}
  .vacia-editorial-heading h1 {
    font:700 16px/1.2 "Times Draft","Times New Roman",serif;
    text-align:right;margin:0 0 26px;
  }
  .vacia-quote {
    margin:0 0 35px;color:#8a8480;
    font:italic 400 14px/1.35 "Times Draft","Times New Roman",serif;
  }
  .vacia-quote p {
    margin:0;text-align:justify;text-align-last:right;hyphens:none;
  }
  .vacia-quote cite {
    display:block;margin-top:6px;text-align:right;color:#24211f;font-style:normal;
  }
  .vacia-story {display:flex;flex-direction:column;gap:30px;}
  .vacia-editorial-project .vacia-story .vacia-triptych-figure {
    position:static;margin:0;width:100%;max-width:none;
  }
  .vacia-story-copy {
    font:400 14px/1.4 "Times Draft","Times New Roman",serif;
  }
  .vacia-story-copy p {margin:0 0 1em;text-align:justify;text-align-last:left;hyphens:none;}
  .vacia-editorial-project .vacia-photo-grid {
    margin-top:70px;padding:0 22px 3.5cm;
    display:flex;flex-direction:column;gap:32px;
  }
}

/* La casa vacía: exact shared height in each photographic pair.
   Their intrinsic width-to-height ratios determine the two column widths,
   so images are neither distorted nor cropped. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .vacia-editorial-project .vacia-photo-grid {
    display:flex;
    flex-direction:column;
    gap:clamp(46px,4vw,72px);
  }
  .vacia-editorial-project .vacia-grid-lead {
    display:flex;
    justify-content:flex-end;
    width:100%;
  }
  .vacia-editorial-project .vacia-grid-lead > figure {
    width:74.5%;
  }
  .vacia-editorial-project .vacia-grid-pair {
    display:grid;
    width:100%;
    gap:clamp(18px,1.65vw,28px);
    align-items:start;
  }
  /* Ratios: 2366/1820 and 2170/1447 */
  .vacia-editorial-project .vacia-grid-pair--a {
    grid-template-columns:minmax(0,1.3fr) minmax(0,1.49965fr);
  }
  /* Ratios: 2812/1875 and 1243/1896 */
  .vacia-editorial-project .vacia-grid-pair--b {
    grid-template-columns:minmax(0,1.49973fr) minmax(0,.65559fr);
  }
  /* Ratios: 500/332 and 500/281 */
  .vacia-editorial-project .vacia-grid-pair--c {
    grid-template-columns:minmax(0,1.50602fr) minmax(0,1.77936fr);
  }
  .vacia-editorial-project .vacia-grid-pair > figure,
  .vacia-editorial-project .vacia-grid-installation > figure {
    width:100%;min-width:0;margin:0;
  }
}
.vacia-editorial-project .vacia-photo-grid figure {
  margin:0;min-width:0;
}
.vacia-editorial-project .vacia-photo-grid img {
  display:block;width:100%;height:auto!important;
  object-fit:contain!important;aspect-ratio:auto!important;
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .vacia-editorial-project .vacia-grid-lead,
  .vacia-editorial-project .vacia-grid-installation {
    width:100%;
  }
  .vacia-editorial-project .vacia-grid-pair {
    display:flex;flex-direction:column;gap:32px;width:100%;
  }
  .vacia-editorial-project .vacia-grid-lead > figure,
  .vacia-editorial-project .vacia-grid-pair > figure {
    width:100%;
  }
}
/* Prevent obsolete figure-level PDF column positions from overriding the
   paired editorial rows introduced above. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .vacia-editorial-project .vacia-grid-pair > figure {
    grid-column:auto!important;
    grid-row:auto!important;
    justify-self:stretch;
  }
}

/* La casa vacía: smaller Perec quotation and symmetric photo-gallery margins.
   Match the distance from the sidebar divider to the photographs with the
   existing right-hand page margin. Keep native photo ratios and row heights. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .vacia-editorial-project .vacia-quote {
    font-size:clamp(10px,.82vw,13px);
  }
  .vacia-editorial-project .vacia-photo-grid {
    padding-left:var(--vacia-right);
  }
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .vacia-editorial-project .vacia-quote {
    font-size:12px;
  }
}

/* Technical sheet directly beneath the final installation photograph. */
.vacia-editorial-project .vacia-installation-caption {
  display:block;
  margin:12px auto 0;
  font:400 clamp(10px,.78vw,13px)/1.3 "Times Draft","Times New Roman",serif;
  text-align:center;
}
.vacia-editorial-project .vacia-installation-caption em {font-style:italic;}
.vacia-editorial-project .vacia-installation-caption span {display:block;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .vacia-editorial-project .vacia-installation-caption {font-size:11px;}
}

/* La casa vacía: one stable frame for each complete three-photo sequence. */
.vacia-editorial-project .vacia-triptych-figure {position:relative;}
.vacia-editorial-project .vacia-triptych-stage {
  display:block;position:relative;width:100%;aspect-ratio:3.08 / 1;
}
.vacia-editorial-project .vacia-triptych-slide {
  display:flex;position:absolute;inset:0;align-items:center;justify-content:center;
  min-width:0;min-height:0;
}
.vacia-editorial-project .vacia-triptych-slide[hidden] {display:none!important;}
.vacia-editorial-project .vacia-triptych-slide .vacia-triptych {
  width:100%;height:100%;align-items:center;
}
.vacia-editorial-project .vacia-triptych-slide .vacia-triptych img {
  display:block;width:100%;height:auto!important;max-height:100%;object-fit:contain!important;
}
.vacia-editorial-project .vacia-triptych-slide--composite > img {
  display:block;width:100%;height:100%!important;object-fit:contain!important;
  object-position:center;
}
.vacia-editorial-project .vacia-triptych-navigation button {
  position:absolute;top:0;bottom:0;width:25px;color:#171717;
  background:transparent;cursor:pointer;font-family:var(--navigation);
  font-size:0;opacity:.8;
}
.vacia-editorial-project .vacia-triptych-navigation button:first-child {left:-25px;}
.vacia-editorial-project .vacia-triptych-navigation button:last-child {right:-25px;}
.vacia-editorial-project .vacia-triptych-navigation button span {
  display:block;width:9px;height:9px;position:absolute;top:50%;left:50%;
  border-top:.75px solid currentColor;border-right:.75px solid currentColor;
  transform:translate(-35%,-50%) rotate(-135deg);
}
.vacia-editorial-project .vacia-triptych-navigation button:last-child span {
  transform:translate(-65%,-50%) rotate(45deg);
}
.vacia-editorial-project .vacia-triptych-navigation button:hover,
.vacia-editorial-project .vacia-triptych-navigation button:focus-visible {opacity:1;color:#000;}
.vacia-editorial-project .vacia-triptych-navigation button:focus-visible {
  outline:1px solid currentColor;outline-offset:-3px;
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .vacia-editorial-project .vacia-triptych-navigation button:first-child {left:-21px;}
  .vacia-editorial-project .vacia-triptych-navigation button:last-child {right:-21px;}
  .vacia-editorial-project .vacia-triptych-navigation button {width:21px;}
}
/* The figure's desktop layout previously set position:static; explicitly
   anchor both hairline arrow controls to the photographic frame. */
.vacia-editorial-project .vacia-story .vacia-triptych-figure {
  position:relative;
}

/* Archive composition: compact gallery-standard gaps, centered as a single
   group relative to the original slide, with portrait panels slightly taller.
   The source images were re-composed at natural aspect ratio with 20px gaps.
   Each sequence is still ONE accessible carousel slide. */
.vacia-editorial-project .vacia-triptych-slide .vacia-triptych {
  gap:clamp(5px,.62vw,10px);
}
.vacia-editorial-project .vacia-triptych-stage[data-frame="portrait"] {
  aspect-ratio:2.5 / 1;
}
.vacia-editorial-project .vacia-triptych-stage[data-frame="landscape"] {
  aspect-ratio:2.96 / 1;
}
.vacia-editorial-project .vacia-triptych-slide--composite > img {
  width:100%;height:100%!important;
  object-fit:contain!important;object-position:center!important;
}

/* Archive carousel final alignment adjustments. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .vacia-editorial-project .vacia-story .vacia-triptych-figure {
    transform:translateX(clamp(12px,2.05vw,32px));
  }
}
.vacia-editorial-project .vacia-story .vacia-triptych-figure {container-type:inline-size;}
.vacia-editorial-project .vacia-triptych-navigation button {
  top:calc(100cqw / 6.16);bottom:auto;height:38px;
  transform:translateY(-50%);
}
.vacia-editorial-project .vacia-quote {color:#9a9591;}

/* El bosque domesticado — independent editorial layout based on the supplied
   composition. Text and imagery share the same boundaries as La casa vacía. */
.bosque-editorial-project {color:#231f20;}
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .bosque-editorial-project {
    --bosque-right:calc(var(--gutter) + 4.25vw);
    --bosque-left:clamp(20px,1.8vw,36px);
    --bosque-copy-width:24.5vw;
    --bosque-between:clamp(40px,5.6vw,100px);
  }
  .bosque-editorial-top {
    padding:clamp(56px,5.5vw,96px) var(--bosque-right) 0 var(--bosque-left);
  }
  .bosque-editorial-heading {
    width:var(--bosque-copy-width);margin:0 0 0 auto;
  }
  .bosque-editorial-heading h1 {
    font:700 clamp(12px,1.04vw,17px)/1.2 "Times Draft","Times New Roman",serif;
    text-align:right;margin:0 0 clamp(22px,2.2vw,34px);
  }
  .bosque-story {
    display:grid;
    grid-template-columns:minmax(0,1fr) var(--bosque-copy-width);
    column-gap:var(--bosque-between);
    align-items:start;
    margin-top:clamp(30px,3vw,55px);
  }
  .bosque-hero {width:min(66%,455px);margin:0 auto;position:relative;}
  .bosque-story-copy {
    min-width:0;
    font:400 clamp(12px,1.04vw,17px)/1.27 "Times Draft","Times New Roman",serif;
  }
  .bosque-image-grid {
    margin-top:clamp(80px,8vw,145px);
    padding:0 var(--bosque-right) 3.5cm var(--bosque-right);
  }
}
.bosque-quote {
  margin:0;color:#9a9591;
  font:italic 400 clamp(10px,.82vw,13px)/1.28 "Times Draft","Times New Roman",serif;
}
.bosque-quote p {
  margin:0;text-align:justify;text-align-last:right;
  hyphens:none;-webkit-hyphens:none;overflow-wrap:normal;
}
.bosque-quote cite {
  display:block;text-align:right;margin-top:6px;color:#24211f;font-style:normal;
}
.bosque-story-copy p {
  text-align:justify;text-align-last:left;hyphens:none;-webkit-hyphens:none;
  overflow-wrap:normal;word-break:normal;margin:0 0 1.1em;
}
.bosque-hero {min-width:0;}
.bosque-question {
  font:700 italic clamp(12px,1.04vw,17px)/1.3 "Times Draft","Times New Roman",serif;
  margin:0 0 10px;white-space:normal;
}
.bosque-carousel-stage {
  position:relative;width:100%;aspect-ratio:1792/1211;
}
.bosque-carousel-stage img {
  display:block;width:100%;height:100%;object-fit:cover;object-position:center;
}
.bosque-carousel-controls {
  position:absolute;top:calc(50% + 18px);left:-30px;right:-30px;
  transform:translateY(-50%);display:flex;justify-content:space-between;
  pointer-events:none;
}
.bosque-carousel-controls button {
  appearance:none;border:0;background:transparent;
  font:100 24px/1 var(--navigation);color:#222;
  opacity:.8;padding:4px;min-width:26px;min-height:36px;
  cursor:pointer;pointer-events:auto;
}
.bosque-carousel-controls button:hover,
.bosque-carousel-controls button:focus-visible {opacity:1;color:#000;}
.bosque-image-grid {display:flex;flex-direction:column;gap:clamp(42px,4.5vw,78px);}
.bosque-gallery-row {display:grid;align-items:start;gap:clamp(10px,1vw,22px);}
.bosque-gallery-pair {grid-template-columns:repeat(2,minmax(0,1fr));}
.bosque-gallery-triple {grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;}
.bosque-gallery-row figure {margin:0;min-width:0;}
.bosque-gallery-row img {
  display:block;width:100%;height:auto!important;max-width:100%;
  aspect-ratio:auto!important;object-fit:contain!important;
}
.bosque-gallery-row img.bosque-mirrored {transform:scaleX(-1);}

/* El bosque domesticado: keep the sentence break after catalogación without extra paragraph spacing. */
.bosque-story-copy p + p {margin-top:0;}
.bosque-story-copy p:first-child {margin-bottom:0;}

/* First diptych: identical frames, original image proportions.
   Both photos get the same visual height; contain prevents cropping.
   The shared grid stays inside the established outer white margins. */
.bosque-editorial-project .bosque-image-grid > .bosque-gallery-pair:first-child {
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
}
.bosque-editorial-project .bosque-image-grid > .bosque-gallery-pair:first-child figure {
  width:100%;
  aspect-ratio:1529 / 942;
  display:grid;
  place-items:center;
  overflow:hidden;
}
.bosque-editorial-project .bosque-image-grid > .bosque-gallery-pair:first-child img {
  display:block;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
}

.bosque-technical-caption {
  margin:13px 0 0;text-align:center;
  font:400 clamp(10px,.78vw,13px)/1.3 "Times Draft","Times New Roman",serif;
}
.bosque-technical-caption em {font-style:italic;}
.bosque-technical-caption span {display:block;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .bosque-editorial-top {padding:40px 22px 0;}
  .bosque-editorial-heading h1 {
    font:700 16px/1.2 "Times Draft","Times New Roman",serif;text-align:right;margin:0 0 26px;
  }
  .bosque-quote {font-size:12px;line-height:1.35;margin:0 0 35px;}
  .bosque-story {display:flex;flex-direction:column;gap:34px;}
  .bosque-hero {width:min(78%,380px);margin:0 auto;position:relative;}
  .bosque-question {font-size:13px;}
  .bosque-story-copy {font:400 14px/1.4 "Times Draft","Times New Roman",serif;}
  .bosque-carousel-controls {left:-25px;right:-25px;}
  .bosque-image-grid {margin-top:70px;padding:0 22px 3.5cm;gap:32px;}
  .bosque-gallery-row {gap:10px;}
  .bosque-gallery-pair,.bosque-gallery-triple {grid-template-columns:repeat(2,minmax(0,1fr));}
  .bosque-gallery-triple figure:last-child {grid-column:1/-1;width:65%;margin:22px auto 0;}
  .bosque-technical-caption {font-size:11px;}
}
/* The three framed views share one baseline and the same visual height.
   Column widths are proportional to each original photograph's aspect ratio. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .bosque-gallery-triple {
    grid-template-columns:minmax(0,1.08197fr) minmax(0,.91739fr) minmax(0,.84373fr);
    align-items:start;
  }
}

/* El bosque domesticado: 2026-10-09 corrections to the supplied design.
   Question stays above the photograph but does not offset its top edge:
   photo and first body paragraph start at precisely the same y coordinate. */
.bosque-quote p {
  text-align:justify;
  text-align-last:left;
}
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .bosque-story .bosque-hero {
    position:relative;
  }
  .bosque-story .bosque-question {
    position:absolute;bottom:calc(100% + 10px);left:0;
    margin:0;width:max-content;max-width:100%;
  }
}
.bosque-carousel-controls {
  top:50%;bottom:auto;left:-30px;right:-30px;
  transform:translateY(-50%);
}
.bosque-hero-caption {
  margin:13px 0 0;text-align:center;
  font:400 clamp(10px,.78vw,13px)/1.3 "Times Draft","Times New Roman",serif;
}
.bosque-hero-caption em {font-style:italic;}
.bosque-hero-caption span {display:block;}
/* Above row: three photos share a height calculated from native aspect ratios.
   Final two share precisely that visual height and are centered together.
   Never stretch or crop the original gallery images. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .bosque-image-grid {
    container-type:inline-size;
    --bosque-gallery-gap:clamp(10px,1vw,22px);
  }
  .bosque-gallery-triple {gap:var(--bosque-gallery-gap);}
  .bosque-gallery-last {
    display:flex;
    justify-content:center;
    align-items:flex-start;
    gap:var(--bosque-gallery-gap);
  }
  .bosque-gallery-last figure {flex:0 0 auto;max-width:50%;min-width:0;}
  .bosque-gallery-last img {
    height:calc((100cqw - 2 * var(--bosque-gallery-gap)) / 2.84309)!important;
    width:auto!important;
    max-width:100%;
    object-fit:contain!important;
    aspect-ratio:auto!important;
  }
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .bosque-hero-caption {font-size:11px;}
  .bosque-carousel-controls {left:-25px;right:-25px;}
  .bosque-gallery-last figure {min-width:0;}
}
/* Align the last two photographs with the first two columns of the
   three-image row above, rather than centering them as a separate pair. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .bosque-editorial-project .bosque-gallery-last {
    display:grid;
    grid-template-columns:minmax(0,1.08197fr) minmax(0,.91739fr) minmax(0,.84373fr);
    gap:var(--bosque-gallery-gap);
    justify-content:stretch;
    align-items:start;
  }
  .bosque-editorial-project .bosque-gallery-last figure {
    max-width:none;
    width:max-content;
    justify-self:start;
  }
  .bosque-editorial-project .bosque-gallery-last figure:nth-child(1) {grid-column:1;}
  .bosque-editorial-project .bosque-gallery-last figure:nth-child(2) {grid-column:2;}
}

/* Match La casa vacía's hairline arrow styling on the Bosque carousel. */
.bosque-carousel-controls button {
  position:relative;color:#171717;font-size:0;font-weight:100;opacity:.75;
}
.bosque-carousel-controls button span {
  display:block;width:9px;height:9px;position:absolute;top:50%;left:50%;
  color:inherit;font-size:0;
  border-top:.75px solid currentColor;border-right:.75px solid currentColor;
  transform:translate(-35%,-50%) rotate(-135deg);
}
.bosque-carousel-controls button:last-child span {
  transform:translate(-65%,-50%) rotate(45deg);
}
.bosque-carousel-stage {overflow:hidden;background:#030303;}
/* Slightly less zoom for cactus on the second slide. */
.bosque-carousel-stage[data-current-slide="1"] img {transform:scale(.955);}
/* Last two image edges coincide with upper-row columns; native ratios preserved. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .bosque-editorial-project .bosque-gallery-last figure {
    width:100%;max-width:none;justify-self:stretch;
  }
  .bosque-editorial-project .bosque-gallery-last img {
    width:100%!important;max-width:100%!important;
    height:auto!important;object-fit:contain!important;aspect-ratio:auto!important;
  }
}
/* Match both width and height of the three framed photographs above.
   Preserve native image ratios; crop only narrow peripheral strips. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .bosque-editorial-project .bosque-gallery-last img {
    width:100%!important;
    height:calc((100cqw - 2 * var(--bosque-gallery-gap)) / 2.84309)!important;
    max-width:100%!important;
    object-fit:cover!important;
    object-position:center!important;
    aspect-ratio:auto!important;
  }
}
/* Controls live inside the carousel stage: keep their outside arrows visible. */
.bosque-editorial-project .bosque-carousel-stage {overflow:visible;}
.bosque-editorial-project .bosque-carousel-controls {z-index:5;}
.bosque-editorial-project .bosque-carousel-controls button {opacity:1;}
.bosque-editorial-project .bosque-carousel-controls button span {border-color:#222;}
/* Deliberately offset the bottom-right image; leave its size unchanged. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
 .bosque-editorial-project .bosque-gallery-last figure:nth-child(2) {transform:translateX(clamp(20px,3vw,44px));}
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
 .bosque-editorial-project .bosque-gallery-last figure:nth-child(2) {transform:translateX(8px);}
}

/* Chiara non c’è — independent editorial structure using original unwarped photographs. */
.nonce-editorial-project {color:#231f20;}
.nonce-editorial-project figure {margin:0;min-width:0;}
.nonce-editorial-project figure img {display:block;max-width:100%;width:100%;height:auto!important;object-fit:contain!important;aspect-ratio:auto!important;}
.nonce-caption {margin:12px 0 0;text-align:center;font:400 clamp(10px,.78vw,13px)/1.28 "Times Draft","Times New Roman",serif;}
.nonce-caption em {font-style:italic;}
.nonce-caption span {display:block;}
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
 .nonce-editorial-project {--nonce-side:calc(var(--gutter) + 4.25vw);--nonce-left:clamp(20px,1.8vw,36px);--nonce-copy-width:24.5vw;--nonce-gap:clamp(35px,5.5vw,100px);}
 .nonce-intro {display:grid;grid-template-columns:minmax(0,1fr) var(--nonce-copy-width);column-gap:var(--nonce-gap);align-items:start;padding:clamp(56px,5.5vw,96px) var(--nonce-side) 0 var(--nonce-left);}
 .nonce-hero {width:57%;max-width:360px;justify-self:center;margin-top:clamp(18px,2.25vw,35px)!important;}
 .nonce-copy {font:400 clamp(12px,1.04vw,17px)/1.27 "Times Draft","Times New Roman",serif;}
 .nonce-copy h1 {font:700 clamp(12px,1.04vw,17px)/1.2 "Times Draft","Times New Roman",serif;text-align:right;margin:0 0 15px;}
 .nonce-copy p {margin:0 0 1.15em;text-align:justify;text-align-last:left;hyphens:none;overflow-wrap:normal;}
 .nonce-work-sequence {padding:0 var(--nonce-side) 3.5cm var(--nonce-left);}
 .nonce-passport {width:55%;max-width:600px;margin:clamp(95px,10vw,170px) auto clamp(140px,14vw,220px)!important;}
 .nonce-bottom-row {display:grid;grid-template-columns:minmax(0,1.78fr) minmax(0,.66fr);gap:clamp(60px,7vw,140px);align-items:start;}
 .nonce-fingerprints {width:100%;}
 .nonce-portrait {width:100%;max-width:270px;justify-self:end;}
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
 .nonce-intro {display:flex;flex-direction:column;padding:34px 22px 0;gap:45px;}
 .nonce-copy {font:400 14px/1.4 "Times Draft","Times New Roman",serif;}
 .nonce-copy h1 {font:700 16px/1.2 "Times Draft","Times New Roman",serif;text-align:right;margin:0 0 18px;}
 .nonce-copy p {text-align:justify;text-align-last:left;margin:0 0 1em;hyphens:none;}
 .nonce-hero {width:min(75%,360px);margin:auto!important;}
 .nonce-work-sequence {padding:0 22px 3.5cm;}
 .nonce-passport {width:90%;margin:95px auto!important;}
 .nonce-bottom-row {display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.8fr);gap:18px;}
 .nonce-caption {font-size:11px;}
}

/* Chiara non c’è — filastrocca del 2020, conservata in italiano in entrambe le lingue. */
.nonce-poem {
  box-sizing:border-box;
  position:absolute;
  left:69%;
  /* Preserve the original upper edge after slightly reducing the lettering. */
  top:calc(50% - 8px);
  transform:translateY(-50%);
  width:min(26vw,340px);
  margin:0;
  padding:0;
  text-align:left;
  font:400 clamp(11.5px,1vw,16.4px)/1.36 "Times Draft","Times New Roman",serif;
}
.nonce-poem .nonce-poem-stanza {margin:0 0 1.1em;font-style:italic;}
.nonce-poem .nonce-poem-stanza em {font-style:inherit;}
.nonce-poem .nonce-poem-credit {
  margin:1.4em 0 0;
  font:400 clamp(10px,.78vw,13px)/1.28 "Times Draft","Times New Roman",serif;
}
.nonce-poem .nonce-poem-credit em {font-style:italic;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .nonce-poem {
    position:static;
    left:auto;top:auto;transform:none;
    width:min(100%,470px);max-width:100%;
    margin:54px auto 0;padding:0 22px;
    font-size:14px;line-height:1.35;
  }
  .nonce-poem .nonce-poem-credit {font-size:11px;}
}

/* Chiara non c'è — smaller leading artwork and a single blank line before
   the added project statement. No change to the passport photograph. */
.nonce-copy .nonce-additional-text {margin-top:1.15em;}
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .nonce-editorial-project .nonce-hero {width:51%;max-width:320px;}
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .nonce-editorial-project .nonce-hero {width:min(68%,320px);}
  .nonce-copy .nonce-additional-text {margin-top:1em;}
}

/* Chiara non c'è: passport photos follow the PDF sequence in a stable
   horizontal frame. Original proportions remain intact, including page 1's
   upright passport. Navigation uses the same hairline chevrons as other works. */
.nonce-editorial-project .nonce-passport-stage {
  width:100%;aspect-ratio:3 / 2;position:relative;display:grid;place-items:center;
  background:#fff;
}
.nonce-editorial-project .nonce-passport-stage > img {
  width:100%;height:100%!important;max-width:100%;
  object-fit:contain!important;object-position:center!important;
  aspect-ratio:auto!important;
}
.nonce-editorial-project .nonce-passport-controls {
  position:absolute;inset:0;display:flex;justify-content:space-between;
  align-items:center;pointer-events:none;
}
.nonce-editorial-project .nonce-passport-controls button {
  appearance:none;border:none;background:transparent;color:#171717;opacity:.76;
  position:relative;flex:0 0 24px;height:38px;min-width:24px;
  padding:0;cursor:pointer;pointer-events:auto;font-size:0;
}
.nonce-editorial-project .nonce-passport-controls button:first-child {transform:translateX(-28px);}
.nonce-editorial-project .nonce-passport-controls button:last-child {transform:translateX(28px);}
.nonce-editorial-project .nonce-passport-controls button span {
  display:block;position:absolute;left:50%;top:50%;width:9px;height:9px;
  border-top:.75px solid currentColor;border-right:.75px solid currentColor;
  transform:translate(-35%,-50%) rotate(-135deg);
}
.nonce-editorial-project .nonce-passport-controls button:last-child span {
  transform:translate(-65%,-50%) rotate(45deg);
}
.nonce-editorial-project .nonce-passport-controls button:hover,
.nonce-editorial-project .nonce-passport-controls button:focus-visible {opacity:1;}
.nonce-editorial-project .nonce-passport-controls button:focus-visible {
  outline:1px solid currentColor;outline-offset:-2px;
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .nonce-editorial-project .nonce-passport-controls button:first-child {transform:translateX(-23px);}
  .nonce-editorial-project .nonce-passport-controls button:last-child {transform:translateX(23px);}
  .nonce-editorial-project .nonce-passport-controls button {flex-basis:20px;min-width:20px;}
}
/* Absolutely position the photo within the 3:2 frame. This prevents the
   first (portrait) photograph from enlarging the stage vertically and ensures
   the arrows never jump as images change. */
.nonce-editorial-project .nonce-passport-stage {display:block;}
.nonce-editorial-project .nonce-passport-stage > img {
  position:absolute;inset:0;min-height:0;min-width:0;
  width:100%!important;height:100%!important;max-width:100%;
  object-fit:contain!important;
}
.nonce-editorial-project .nonce-passport-controls {z-index:2;}

/* Chiara non c'è, final typography and composition:
   one paragraph break only after «ausencia» and a narrower editorial column.
   The feet are centered between the sidebar divider and the text's left edge. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .nonce-editorial-project {
    --nonce-copy-width:21.5vw;
    --nonce-gap:clamp(35px,5vw,85px);
  }
  .nonce-editorial-project .nonce-hero {
    width:46%;
    max-width:285px;
    transform:translateX(clamp(10px,1.65vw,26px));
  }
}
.nonce-editorial-project .nonce-copy p {margin-bottom:0;}
.nonce-editorial-project .nonce-copy .nonce-additional-text {margin-top:1.15em;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .nonce-editorial-project .nonce-hero {width:min(62%,285px);}
  .nonce-editorial-project .nonce-copy .nonce-additional-text {margin-top:1em;}
}

/* Slightly larger carousel for all passport spreads: approximately 1 cm of
   extra room on each side at ordinary desktop display sizes. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .nonce-editorial-project .nonce-passport {
    width:min(calc(55% + 110px), 710px);
    max-width:710px;
  }
}
/* The page-12 pop-up has marks extending beyond the bound book.
   Size the book itself like the other spreads, but let its extra-wide sheet
   extend from both sides without shifting the shared spine or carousel arrows.
   The source scan is unaltered, never cropped, stretched or redrawn. */
.nonce-editorial-project .nonce-passport-stage[data-popout="true"] > img {
  left:50%;right:auto;inset-block:0;
  width:151%!important;
  max-width:none!important;
  transform:translateX(-50%);
  object-fit:contain!important;
}
.nonce-editorial-project .nonce-passport-stage {
  overflow:visible;
}
.nonce-editorial-project .nonce-passport-controls {
  z-index:3;
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .nonce-editorial-project .nonce-passport-stage[data-popout="true"] > img {
    width:min(151%, calc(100vw - 36px))!important;
  }
}

/* Cover of the same passport: real (trimmed) image content is sized to match
   the visible height of a book page in the registered carousel images.  The
   registered book occupies roughly 91% of the 3:2 stage height, so a cover
   width of 42.5% at its original 1209:1753 ratio matches that physical height.
   The 6% inset aligns the cover with the left-hand book page, not the arrows. */
.nonce-editorial-project .nonce-cover-row {
  position:relative;
  width:55%;
  max-width:600px;
  margin:0 auto;
}
.nonce-editorial-project .nonce-book-cover {
  width:42.5%;
  margin:0 0 0 6%;
}
.nonce-editorial-project .nonce-book-cover img {
  display:block;
  width:100%;
  height:auto!important;
  max-width:100%;
  object-fit:contain!important;
}
.nonce-editorial-project .nonce-book-cover .nonce-caption {
  margin-top:12px;
  text-align:center;
}
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .nonce-editorial-project .nonce-passport--carousel {
    margin-bottom:clamp(44px,5vw,75px)!important;
  }
  .nonce-editorial-project .nonce-cover-row {
    width:min(calc(55% + 76px),676px);
    max-width:676px;
  }
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .nonce-editorial-project .nonce-passport--carousel {
    margin-bottom:42px!important;
  }
  .nonce-editorial-project .nonce-cover-row {
    /* Full mobile viewport width for the cover after the carousel. */
    width:calc(100% + 44px);
    max-width:none;
    margin-left:-22px;
    margin-right:-22px;
  }
  .nonce-editorial-project .nonce-book-cover {
    width:100%;
    max-width:none;
    margin:0;
  }
  /* The third image (passport cover) is half its previous mobile width;
     leave the technical caption and poem at their existing measures. */
  .nonce-editorial-project .nonce-book-cover img {
    width:50%!important;
    margin-inline:auto;
  }
  .nonce-editorial-project .nonce-book-cover .nonce-caption {
    padding-inline:22px;
  }
}

/* Chiara non c'è — editorial rhythm aligned with the revised work pages.
   The text uses the same body scale as .pdf-flow-body; small screens retain
   the common .pdf-mobile-copy size. The first artwork stays proportional. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .nonce-editorial-project .nonce-hero {
    width:36%;
    max-width:235px;
  }
  .nonce-editorial-project .nonce-copy {
    font-size:clamp(11px,.94vw,16px);
    line-height:1.3;
  }
  /* Include the technical caption in the perceived gap below the carousel;
     the resulting photo-to-photo interval is close to the gap above the carousel. */
  .nonce-editorial-project .nonce-passport--carousel {
    margin-bottom:calc(clamp(95px,10vw,170px) - 30px)!important;
  }
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .nonce-editorial-project .nonce-hero {
    width:min(55%,255px);
  }
  .nonce-editorial-project .nonce-passport--carousel {
    margin-bottom:105px!important;
  }
}


/* ¿Has pasado por aquí? — a centered, natural-ratio print carousel.
   The visual center is halfway between sidebar (18.55vw) and copy (72.94vw).
   Reuse the same unobtrusive hairline chevrons as the site's other galleries. */
.pdf-project[data-project="sei-passato-di-qui"] .pdf-photo--hero .pdf-art-carousel {
  width:100%;height:100%;overflow:visible;
}
.pdf-project[data-project="sei-passato-di-qui"] .pdf-photo--hero .pdf-art-carousel > img {
  display:block;width:100%;height:100%!important;object-fit:contain!important;
  object-position:center;
}
.pdf-project[data-project="sei-passato-di-qui"] .pdf-photo--carousel .pdf-art-carousel-controls {
  position:absolute;left:-33px;right:-33px;top:0;bottom:0;
  transform:none;display:flex;align-items:center;justify-content:space-between;
  padding:0;margin:0;gap:0;background:transparent;pointer-events:none;
}
.pdf-project[data-project="sei-passato-di-qui"] .pdf-photo--carousel .pdf-art-carousel-controls button {
  position:relative;width:28px;height:42px;min-width:28px;min-height:42px;
  padding:0;border:0;background:transparent;cursor:pointer;pointer-events:auto;
}
.pdf-project[data-project="sei-passato-di-qui"] .pdf-photo--carousel .pdf-art-carousel-controls button:focus-visible {
  outline:1px solid currentColor;outline-offset:1px;
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .pdf-project[data-project="sei-passato-di-qui"] .pdf-photo--hero {
    width:min(75%,380px)!important;max-width:380px;
    margin:0 auto 45px!important;height:auto!important;
  }
  .pdf-project[data-project="sei-passato-di-qui"] .pdf-photo--hero .pdf-art-carousel {
    width:100%;height:auto!important;aspect-ratio:1120 / 2000;
  }
  .pdf-project[data-project="sei-passato-di-qui"] .pdf-photo--carousel .pdf-art-carousel-controls {
    position:absolute;left:-27px;right:-27px;top:0;bottom:0;
    transform:none;margin:0;
  }
}


/* Browser-checked carousel alignment: the active copy column starts slightly
   earlier than the PDF coordinate model. Recenter the print between its
   visible left text edge and the sidebar rule, at desktop widths. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .pdf-project[data-project="sei-passato-di-qui"] .pdf-photo--hero {
    transform:translateX(-2.1vw);
  }
}
/* Existing global arrow styles retained top:50% and side offsets on the
   buttons themselves, which double-offset the new flex positioning. Reset
   them so the hairline arrows sit at the image's vertical center. */
.pdf-project[data-project="sei-passato-di-qui"] .pdf-photo--carousel .pdf-art-carousel-controls button {
  top:auto!important;left:auto!important;right:auto!important;transform:none!important;
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .pdf-project[data-project="sei-passato-di-qui"] .pdf-photo--carousel .pdf-art-carousel-controls {
    height:calc(100% - 55px);
  }
}


/* Keep both chevrons outside the print frame. Older carousel CSS pins
   width:100%, preventing the right inset from expanding the control layer. */
.pdf-project[data-project="sei-passato-di-qui"] .pdf-photo--carousel .pdf-art-carousel-controls {
  width:auto!important;
}


/* Prácticas de gigantismo — editorial composition from Chiara's reference. */
.gigantismo-editorial-project {color:#231f20;}
.gigantismo-editorial-project figure {margin:0;min-width:0;}
.gigantismo-editorial-project figure img {
  display:block;width:100%;height:auto!important;max-width:100%;object-fit:contain;
}
.gigantismo-caption {
  font:400 clamp(10px,.78vw,13px)/1.28 "Times Draft","Times New Roman",serif;
  color:#231f20;margin:10px auto 0;text-align:center;max-width:100%;
}
.gigantismo-caption span {display:block;}
.gigantismo-caption .gigantismo-credit {font-weight:400;}
.gigantismo-caption strong {font-weight:700;}
.gigantismo-caption em {font-style:italic;}
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .gigantismo-editorial-project {
    --gig-side:calc(var(--gutter) - 1vw);
    --gig-left:clamp(18px,1.85vw,36px);
    --gig-copy-width:24.5vw;
  }
  .gigantismo-intro {
    display:grid;grid-template-columns:minmax(0,1fr) var(--gig-copy-width);
    column-gap:clamp(45px,5.5vw,100px);align-items:start;
    padding:0 var(--gig-side) 0 var(--gig-left);
  }
  .gigantismo-covers {
    width:min(88%,34vw);justify-self:center;transform:translateX(22px);
    margin-top:clamp(12px,1.25vw,20px)!important;
  }
  .gigantismo-copy {
    font:400 clamp(11px,.94vw,16px)/1.3 "Times Draft","Times New Roman",serif;
  }
  .gigantismo-copy h1 {
    font:700 clamp(13px,1.11vw,18px)/1.2 "Times Draft","Times New Roman",serif;
    text-align:right;margin:16px 0;
  }
  .gigantismo-copy p {
    text-align:justify;text-align-last:left;hyphens:none;
    overflow-wrap:normal;word-break:normal;margin:0;
  }
  .gigantismo-copy p + p {margin-top:0;}
  .gigantismo-second-row {
    display:grid;grid-template-columns:minmax(0,26%) minmax(0,1fr);
    gap:clamp(26px,2.4vw,38px);align-items:start;
    padding:0 var(--gig-side) 3.5cm var(--gig-left);
    margin-top:clamp(120px,11vw,175px);
  }
  .gigantismo-type {
    width:116%;max-width:none;transform:translateX(.3vw);margin-top:clamp(7px,.7vw,11px)!important;
  }
  .gigantismo-spread {width:100%;}
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .gigantismo-intro {
    display:flex;flex-direction:column-reverse;gap:40px;
    padding:34px 22px 0;
  }
  .gigantismo-copy {font:400 14px/1.4 "Times Draft","Times New Roman",serif;}
  .gigantismo-copy h1 {font:700 17px/1.2 "Times Draft","Times New Roman",serif;text-align:right;margin:16px 0;}
  .gigantismo-copy p {text-align:justify;text-align-last:left;hyphens:none;margin:0;}
  .gigantismo-covers {width:min(87%,455px);margin:0 auto!important;}
  .gigantismo-second-row {
    display:grid;grid-template-columns:1fr;gap:55px;
    padding:0 22px 3.5cm;margin-top:100px;
  }
  .gigantismo-type {width:43%;max-width:230px;margin:0!important;}
  .gigantismo-spread {width:100%;}
  .gigantismo-caption {font-size:11px;}
}

/* En móvil, ampliar ligeramente la imagen tipográfica sin alterar su proporción. */
@media (max-width: 600px) {
  .gigantismo-editorial-project .gigantismo-type {width:53%;max-width:275px;}
}


/* Prácticas de gigantismo: fixed book frame, original image ratios, subtle side chevrons. */
.gigantismo-editorial-project .gigantismo-carousel-stage {
  position:relative;width:100%;aspect-ratio:2048/1486;background:#fff;
}
.gigantismo-editorial-project .gigantismo-carousel-image {
  position:absolute;inset:0;display:block;width:100%;height:100%;
  padding:0;margin:0;background:#fff;
}
.gigantismo-editorial-project .gigantismo-carousel-image img {
  width:100%!important;height:100%!important;max-width:100%;
  object-fit:contain!important;object-position:center;
}
.gigantismo-editorial-project .gigantismo-carousel-controls {
  position:absolute;left:-34px;right:-34px;top:0;bottom:0;
  display:flex;justify-content:space-between;align-items:center;
  pointer-events:none;z-index:2;
}
.gigantismo-editorial-project .gigantismo-carousel-controls button {
  position:relative;display:block;flex:0 0 27px;width:27px;height:40px;
  padding:0;background:transparent;border:0;pointer-events:auto;
  color:#161616;opacity:.74;cursor:pointer;
}
.gigantismo-editorial-project .gigantismo-carousel-controls button span {
  display:block;position:absolute;top:50%;left:50%;width:9px;height:9px;
  border-top:.75px solid currentColor;border-right:.75px solid currentColor;
  transform:translate(-35%,-50%) rotate(-135deg);
}
.gigantismo-editorial-project .gigantismo-carousel-controls button:last-child span {
  transform:translate(-65%,-50%) rotate(45deg);
}
.gigantismo-editorial-project .gigantismo-carousel-controls button:hover,
.gigantismo-editorial-project .gigantismo-carousel-controls button:focus-visible {opacity:1;}
.gigantismo-editorial-project .gigantismo-carousel-counter {margin:10px auto 0;}
.gigantismo-editorial-project .gigantismo-spread .gigantismo-caption {margin-top:10px;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .gigantismo-editorial-project .gigantismo-carousel-controls {left:-22px;right:-22px;}
  .gigantismo-editorial-project .gigantismo-carousel-controls button {flex-basis:21px;width:21px;}
}


/* ¿Has pasado por aquí? The arrows are anchored directly to the image stage,
   not to the figure (which also includes its technical caption).
   Both arrows are centered on the exact vertical midpoint at any image size. */
.pdf-project[data-project="sei-passato-di-qui"] .pdf-photo--hero .pdf-art-carousel .pdf-art-carousel-controls {
  position:absolute!important;
  top:0!important;bottom:0!important;left:-33px!important;right:-33px!important;
  width:auto!important;height:100%!important;
  display:block!important;transform:none!important;
  margin:0!important;padding:0!important;
  background:transparent!important;
  z-index:10;pointer-events:none;
}
.pdf-project[data-project="sei-passato-di-qui"] .pdf-photo--hero .pdf-art-carousel .pdf-art-carousel-controls button {
  position:absolute!important;
  top:50%!important;bottom:auto!important;
  width:28px;height:42px;
  transform:translateY(-50%)!important;
  background:transparent!important;pointer-events:auto;
}
.pdf-project[data-project="sei-passato-di-qui"] .pdf-photo--hero .pdf-art-carousel .pdf-art-carousel-controls button[data-art-carousel-step="-1"] {
  left:0!important;right:auto!important;
}
.pdf-project[data-project="sei-passato-di-qui"] .pdf-photo--hero .pdf-art-carousel .pdf-art-carousel-controls button[data-art-carousel-step="1"] {
  right:0!important;left:auto!important;
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .pdf-project[data-project="sei-passato-di-qui"] .pdf-photo--hero .pdf-art-carousel .pdf-art-carousel-controls {
    left:-26px!important;right:-26px!important;
  }
}


/* ¿Has pasado por aquí?: three book photographs use the same symmetric
   margins as the finished La casa vacía / Bosque editorial galleries.
   No image is warped or cropped; the original picture ratios survive. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .pdf-project[data-project="sei-passato-di-qui"] {
    --passi-gallery-margin:calc(var(--gutter) + 4.25vw);
  }
  .passi-image-gallery {
    display:grid;
    /* Three images with the ficha técnica occupying its own central gap. */
    grid-template-columns:minmax(0,1.07fr) minmax(145px,.73fr) minmax(0,1.1fr) minmax(0,1.08fr);
    align-items:start;
    gap:clamp(16px,1.6vw,26px);
    margin-top:clamp(68px,7vw,110px);
    padding:0 var(--passi-gallery-margin) 3.5cm;
  }
}
.passi-image-gallery figure {margin:0;min-width:0;}
.passi-image-gallery img {
  display:block;width:100%;height:auto!important;max-width:100%;
  object-fit:contain!important;aspect-ratio:auto!important;
}
.passi-gallery-caption {
  font:400 clamp(10px,.78vw,13px)/1.28 "Times Draft","Times New Roman",serif;
  text-align:center;margin:12px 0 0;
}
.passi-gallery-caption em {font-style:italic;}
.passi-gallery-caption .pdf-caption-detail {display:block;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .passi-image-gallery {
    display:flex;flex-direction:column;gap:35px;
    padding:0 22px 3.5cm;margin-top:38px;
  }
  .passi-gallery-caption {font-size:11px;}
}


/* ¿Has pasado por aquí? — technical credit in the negative space between
   the final photographs, aligned vertically with their visual centers. */
.passi-gallery-ficha {
  min-width:0;
  align-self:center;
  text-align:center;
  font:400 clamp(10px,.78vw,13px)/1.35 "Times Draft","Times New Roman",serif;
  hyphens:none;overflow-wrap:normal;
}
.passi-gallery-ficha em {font-style:italic;}
.passi-gallery-ficha .pdf-caption-detail {display:block;margin-top:3px;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .passi-gallery-ficha {
    align-self:center;width:min(85%,320px);
    margin:0 auto;
    font-size:11px;
  }
}


/* Ser y desaparecer — PDF composition constrained to the website's text edge.
   Natural proportions, including the two cropped vertical negative frames. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .pdf-project[data-project="ser-y-desaparecer"] { --ser-edge:calc(var(--gutter) + 4.25vw); }
  .pdf-project[data-project="ser-y-desaparecer"] .pdf-photo .pdf-image img { object-fit:cover;object-position:center; }
  .pdf-project[data-project="ser-y-desaparecer"] .pdf-photo:nth-of-type(1) { left:30.85%!important;width:30.10%!important; }
  .pdf-project[data-project="ser-y-desaparecer"] .pdf-photo:nth-of-type(2) { left:auto!important;right:var(--ser-edge); }
  .pdf-project[data-project="ser-y-desaparecer"] .pdf-photo:nth-of-type(3) { left:52.710%!important; }
  .pdf-project[data-project="ser-y-desaparecer"] .pdf-photo:nth-of-type(4) { left:auto!important;right:var(--ser-edge); }
  .pdf-project[data-project="ser-y-desaparecer"] .pdf-photo:nth-of-type(7) { left:33.3922%!important; }
  .pdf-project[data-project="ser-y-desaparecer"] .pdf-photo:nth-of-type(8) { left:auto!important;right:var(--ser-edge); }
  .pdf-project[data-project="ser-y-desaparecer"] .pdf-photo:nth-of-type(9) { left:54.0784%!important; }
}

/* Gigantismo October 9: shared editorial right boundary.
   Match the right edge of .pdf-flow-body and the La casa vacía text column.
   Every photograph, including the carousel arrows, stays inside that edge. */
:root { --artwork-right-safe:calc(var(--gutter) + 4.25vw); }
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .gigantismo-editorial-project {
    --gig-side:var(--artwork-right-safe);
  }
  .gigantismo-editorial-project .gigantismo-spread {
    width:calc(100% - 40px);
    margin-left:40px;
    margin-right:0;
  }
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  /* Image and arrows share the exact left/right edges of the text column. */
  .gigantismo-editorial-project .gigantismo-spread {
    width:100%;
    max-width:100%;
    margin-inline:0;
  }
  .gigantismo-editorial-project .gigantismo-carousel-controls {
    left:0;right:0;top:calc(100% + 4px);bottom:auto;height:32px;
  }
  .gigantismo-editorial-project .gigantismo-carousel-counter {margin-top:12px;}
}

/* Shared editorial baseline: the PDF artboard uses viewport width, whereas
   other artwork text columns use the scrollable page width. Compensate only
   for the actual scrollbar inset so all descriptions share one right edge. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .pdf-project .pdf-flow-title,
  .pdf-project .pdf-flow-body {
    right:calc(var(--artwork-right-safe) + var(--viewport-scrollbar-inset, 0px));
  }
}


/* Gigantismo — align text top to Arqueología's editorial title baseline.
   Preserve the common 24.5vw text column and its permanent right whitespace. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .gigantismo-editorial-project .gigantismo-intro {
    padding-top:calc(14.6667vw - 128px);
  }
}


/* Same final-line justification as the revised PDF artwork descriptions. */
.gigantismo-editorial-project .gigantismo-copy p {
  text-align-last:left;
}


/* Gigantismo's ficha técnica follows the common two-line, regular-weight format.
   Only the coordinator credit is printed at 50% black; no parentheses. */
.gigantismo-editorial-project .gigantismo-caption,
.gigantismo-editorial-project .gigantismo-caption strong {
  font-weight:400;
}
.gigantismo-editorial-project .gigantismo-caption .gigantismo-credit-role {
  display:inline;
  color:rgba(0,0,0,.5);
  font-weight:400;
}

/* La casa que migra — editorial photographs beneath the same text column as La casa vacía. */

.migra-editorial-project .migra-intro-photo {
  min-width:0;
  display:flex;
  justify-content:center;
  padding-top:clamp(10px,2vw,30px);
}
.migra-editorial-project .migra-intro-photo .migra-photo {
  width:min(100%,26vw);
}
.migra-editorial-project .migra-photo,
.migra-editorial-project .migra-photo-grid figure {
  margin:0;
  min-width:0;
}
.migra-editorial-project .migra-photo button {
  display:block;
  padding:0;
  border:0;
  width:100%;
  background:transparent;
  cursor:zoom-in;
}
.migra-editorial-project .migra-photo img {
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  object-fit:contain;
}
.migra-editorial-project .migra-ficha {
  display:block;
  margin:13px 0 0;
  font:400 clamp(10px,.78vw,13px)/1.3 "Times Draft","Times New Roman",serif;
  text-align:center;
}
.migra-editorial-project .migra-ficha em { font-style:italic; }
.migra-editorial-project .migra-ficha span { display:block; }
/* La casa que migra — photographic composition from the approved reference:
   four photographs in the wider left column, three in the right. The opening
   right-hand portrait shifts toward the center, as in the supplied layout.
   All spacing uses exactly the same tokens as Gusci, without cropping photos. */
.migra-editorial-project .migra-photo-column {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  min-width:0;
  gap:clamp(26px,2vw,34px);
}
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .migra-editorial-project .migra-photo-grid {
    display:grid;
    grid-template-columns:minmax(0,1.58fr) minmax(0,1fr);
    column-gap:clamp(20px,1.75vw,30px);
    align-items:start;
    margin-top:clamp(75px,8vw,130px);
    padding:0 var(--vacia-right) clamp(88px,8vw,126px);
  }
  .migra-editorial-project .migra-photo-column--left > .migra-photo:first-child {
    width:74%;
  }
  .migra-editorial-project .migra-photo-column--right > .migra-photo:first-child {
    width:100%;
    align-self:stretch;
    transform:translateX(-40%);
    margin-top:4px;
  }
  .migra-editorial-project .migra-photo-column--right > .migra-photo:last-child {
    width:100%;
    margin-top:0;
    align-self:flex-start;
    position:relative;
  }
  .migra-editorial-project .migra-photo-column--right > .migra-photo:last-child .migra-ficha {
    position:absolute;
    top:calc(100% + 12px);
    left:0;
    margin:0;
    width:100%;
  }
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .migra-editorial-project .migra-intro-photo {padding-top:0;width:100%;}
  .migra-editorial-project .migra-intro-photo .migra-photo {width:min(100%,310px);margin:auto;}
  .migra-editorial-project .migra-photo-grid {
    display:flex;
    flex-direction:column;
    gap:28px;
    padding:0 22px 68px;
    margin-top:70px;
  }
  .migra-editorial-project .migra-photo-column {gap:28px;}
  .migra-editorial-project .migra-photo-column--left > .migra-photo:first-child {width:76%;}
  .migra-editorial-project .migra-photo-column--right > .migra-photo:first-child {width:58%;margin-left:auto;}
  .migra-editorial-project .migra-photo-column--right > .migra-photo:last-child {width:100%;margin-top:0;}
  .migra-editorial-project .migra-ficha {font-size:11px;}
}

/* La casa que migra: no blank lines between body paragraphs.
   Typography and column width stay inherited from La casa vacía's shared
   .vacia-story-copy and .vacia-story layout rules at every breakpoint. */
.migra-editorial-project .vacia-story-copy p { margin-top:0; margin-bottom:0; }


/* Di quando ero in fiore — six source photographs follow the supplied
   editorial layout: isolated petal / paired grid / asymmetrical pair /
   a rotated, vertical detail. Margin rule matches the other artworks. */
.fiore-editorial-project {color:#231f20;}
.fiore-editorial-project figure {margin:0;min-width:0;}
.fiore-editorial-project .fiore-photo {
  display:block;width:100%;padding:0;margin:0;background:transparent;
  cursor:zoom-in;min-width:0;
}
.fiore-editorial-project .fiore-photo img {
  display:block;width:100%;height:auto!important;
  max-width:100%;object-fit:contain!important;aspect-ratio:auto!important;
}
.fiore-ficha {
  margin:12px 0 0;text-align:center;
  font:400 clamp(10px,.78vw,13px)/1.3 "Times Draft","Times New Roman",serif;
  hyphens:none;
}
.fiore-ficha em {font-style:italic;}
.fiore-ficha > span {display:block;}
.fiore-ficha .fiore-dimensions {white-space:nowrap;}
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .fiore-editorial-project {
    --fiore-edge:calc(var(--gutter) + 4.25vw);
    --fiore-gallery-gap:clamp(18px,1.7vw,28px);
    --fiore-copy-width:24.5vw;
  }
  .fiore-intro {
    display:grid;grid-template-columns:minmax(0,1fr) var(--fiore-copy-width);
    gap:clamp(55px,6vw,125px);
    padding:clamp(58px,5.8vw,102px) var(--fiore-edge) 0;
    align-items:start;
  }
  .fiore-intro-image {
    width:min(64%,385px);justify-self:center;
    margin-top:clamp(18px,2.1vw,35px)!important;
  }
  /* Give the technical caption its own readable measure, independent of
     the artwork's narrower image width. */
  .fiore-intro-image > .fiore-ficha {
    width:min(460px,140%);
    position:relative;left:50%;transform:translateX(-50%);
  }
  .fiore-story {
    font:400 clamp(12px,1.04vw,17px)/1.28 "Times Draft","Times New Roman",serif;
    min-width:0;
  }
  .fiore-story h1 {
    font:700 clamp(12px,1.04vw,17px)/1.2 "Times Draft","Times New Roman",serif;
    text-align:right;margin:0 0 clamp(18px,1.8vw,28px);
  }
  .fiore-story p {
    margin:0 0 .75em;text-align:justify;text-align-last:left;
    hyphens:none;-webkit-hyphens:none;overflow-wrap:normal;
  }
  .fiore-photo-gallery {
    padding:0 var(--fiore-edge) 3.5cm;
    margin-top:clamp(118px,12vw,205px);
  }
  .fiore-photo-row {
    display:grid;align-items:start;gap:var(--fiore-gallery-gap);
  }
  .fiore-photo-row--first {
    grid-template-columns:minmax(0,.395fr) minmax(0,.605fr);
    align-items:end;
  }
  .fiore-photo-row--second {
    /* Equal photo heights at any desktop width: the two column ratios
       match the original images (3630/2357 and 1439/2159).
       Together they occupy the full gallery width without cropping. */
    grid-template-columns:minmax(0,1.54009fr) minmax(0,.66651fr);
    align-items:end;
    margin-top:clamp(22px,2vw,38px);
  }
  .fiore-photo-row--second > figure:first-child {
    grid-column:1;
  }
  .fiore-photo-row--second > figure:last-child {
    grid-column:2;
  }
  .fiore-photo-row--final {
    grid-template-columns:minmax(0,27.5%) minmax(0,1fr);
    margin-top:clamp(22px,2vw,38px);
  }
  .fiore-photo-row--final figure {grid-column:1;min-width:0;}
}
.fiore-photo--rotated {
  position:relative;aspect-ratio:1090 / 1580;overflow:hidden;
}
.fiore-editorial-project .fiore-photo--rotated img {
  position:absolute;left:50%;top:50%;
  width:144.95%;height:69%!important;max-width:none!important;
  transform:translate(-50%,-50%) rotate(90deg);
  object-fit:contain!important;
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .fiore-intro {
    display:flex;flex-direction:column-reverse;
    gap:42px;padding:38px 22px 0;
  }
  .fiore-story {font:400 14px/1.4 "Times Draft","Times New Roman",serif;}
  .fiore-story h1 {
    font:700 16px/1.2 "Times Draft","Times New Roman",serif;
    text-align:right;margin:0 0 18px;
  }
  .fiore-story p {
    margin:0 0 .75em;text-align:justify;text-align-last:left;
    hyphens:none;
  }
  .fiore-intro-image {width:min(76%,370px);margin:0 auto!important;}
  .fiore-intro-image > .fiore-ficha {width:100%;left:auto;transform:none;}
  .fiore-ficha {font-size:11px;}
  .fiore-photo-gallery {
    display:flex;flex-direction:column;
    gap:30px;padding:0 22px 3.5cm;margin-top:80px;
  }
  .fiore-photo-row {display:flex;flex-direction:column;gap:30px;}
  .fiore-photo-row--final {margin-top:0;}
  .fiore-photo-row--final figure {width:min(54%,245px);}
}


/* Copy uses the Arqueología body scale; original layout and margins retained. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
 .fiore-editorial-project .fiore-story {
  font:400 clamp(11px,.94vw,16px)/1.3 "Times Draft","Times New Roman",serif;
 }
 .fiore-editorial-project .fiore-story p {margin-bottom:.65em;}
}
/* Stable aspect ratio, proportional cropping without image distortion. */
.fiore-editorial-project .fiore-carousel-stage {position:relative;aspect-ratio:1656 / 1183;width:100%;}
.fiore-editorial-project .fiore-carousel-image {position:absolute;inset:0;width:100%;height:100%;padding:0;overflow:hidden;background:white;}
.fiore-editorial-project .fiore-carousel-image img {display:block;width:100%!important;height:100%!important;max-width:100%!important;object-fit:cover!important;object-position:center!important;aspect-ratio:auto!important;}
.fiore-editorial-project .fiore-carousel-controls {position:absolute;inset:0 -31px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;}
.fiore-editorial-project .fiore-carousel-controls button {width:26px;height:40px;min-width:26px;padding:0;border:0;background:transparent;position:relative;pointer-events:auto;cursor:pointer;opacity:.75;color:#222;font-size:0;}
.fiore-editorial-project .fiore-carousel-controls button::before {content:"";display:block;width:10px;height:10px;position:absolute;left:50%;top:50%;border-top:.7px solid currentColor;border-right:.7px solid currentColor;transform:translate(-35%,-50%) rotate(-135deg);}
.fiore-editorial-project .fiore-carousel-controls button:last-child::before {transform:translate(-65%,-50%) rotate(45deg);}
.fiore-editorial-project .fiore-carousel-controls button:hover,.fiore-editorial-project .fiore-carousel-controls button:focus-visible {color:#000;opacity:1;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {.fiore-editorial-project .fiore-carousel-controls {left:-27px;right:-27px;} .fiore-editorial-project .fiore-carousel-controls button {width:23px;min-width:23px;}}

/* Prácticas de gigantismo: participatory credits, four original folio excerpts and booklet. */
.gigantismo-editorial-project .gigantismo-participants-copy {
  font:400 clamp(11px,.94vw,16px)/1.3 "Times Draft","Times New Roman",serif;
}
.gigantismo-editorial-project .gigantismo-participants-copy h2 {
  font:700 clamp(12px,1.04vw,17px)/1.2 "Times Draft","Times New Roman",serif;
  text-align:right;margin:0 0 16px;
}
.gigantismo-editorial-project .gigantismo-participants-copy p {
  text-align:justify;text-align-last:left;hyphens:none;margin:0;
}
.gigantismo-editorial-project .gigantismo-book-page {
  min-width:0;font:400 clamp(10px,.73vw,12px)/1.22 "Courier New",Courier,monospace;
  hyphens:none;overflow-wrap:normal;
}
.gigantismo-editorial-project .gigantismo-book-page h3 {
  font-family:inherit;font-size:1em;font-weight:700;line-height:inherit;
  text-align:center;margin:0 0 12px;
}
.gigantismo-editorial-project .gigantismo-book-page p {
  font:inherit;text-align:justify;text-align-last:left;margin:0 0 12px;
}
.gigantismo-editorial-project .gigantismo-book-page strong {font-weight:700;}
.gigantismo-editorial-project .gigantismo-book-page .gigantismo-book-subtitle,
.gigantismo-editorial-project .gigantismo-book-page .gigantismo-book-question,
.gigantismo-editorial-project .gigantismo-book-page .gigantismo-book-examples {
  text-align:right;text-align-last:right;
}
.gigantismo-editorial-project .gigantismo-leaflet-figure {margin:0;max-width:100%;}
.gigantismo-editorial-project .gigantismo-leaflet-figure img {
  display:block;width:100%;height:auto;max-width:100%;object-fit:contain;
}
.gigantismo-editorial-project .gigantismo-leaflet-caption {
  font:400 clamp(10px,.78vw,13px)/1.3 "Times Draft","Times New Roman",serif;
  margin:10px 0 0;text-align:center;
}
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .gigantismo-editorial-project .gigantismo-second-row {padding-bottom:0;}
  .gigantismo-editorial-project .gigantismo-participants-copy {grid-column:2;}
  .gigantismo-editorial-project .gigantismo-participants {
    display:grid;grid-template-columns:minmax(0,1fr) var(--gig-copy-width);
    padding:0 var(--gig-side) 0 var(--gig-left);
    margin-top:max(0px,calc(clamp(78px,7.8vw,122px) - 1cm));
  }
  .gigantismo-editorial-project .gigantismo-book-texts {
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
    gap:clamp(16px,2.2vw,40px);align-items:start;
    margin-top:max(0px,calc(clamp(105px,11vw,175px) - 1cm));
    padding:0 var(--gig-side) 0 calc(var(--gig-left) + clamp(48px,5vw,80px));
  }
  .gigantismo-editorial-project .gigantismo-leaflet {
    margin-top:clamp(12px,2vw,30px);
    padding:0 var(--gig-side) 3.5cm calc(var(--gig-left) + clamp(48px,5vw,80px));
  }
  .gigantismo-editorial-project .gigantismo-leaflet-figure {width:56%;}
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .gigantismo-editorial-project .gigantismo-second-row {padding-bottom:0;}
  .gigantismo-editorial-project .gigantismo-participants {
    display:flex;justify-content:flex-end;margin-top:calc(65px - 1cm);padding:0 22px;
  }
  .gigantismo-editorial-project .gigantismo-participants-copy {
    width:100%;font-size:14px;line-height:1.4;
  }
  .gigantismo-editorial-project .gigantismo-participants-copy h2 {font-size:16px;}
  .gigantismo-editorial-project .gigantismo-book-texts {
    display:grid;grid-template-columns:1fr;gap:34px;
    margin-top:calc(88px - 1cm);padding:0 22px;
  }
  .gigantismo-editorial-project .gigantismo-book-page {font-size:12px;line-height:1.32;}
  .gigantismo-editorial-project .gigantismo-leaflet {margin-top:28px;padding:0 30px 3.5cm;}
  .gigantismo-editorial-project .gigantismo-leaflet-figure {width:100%;}
  .gigantismo-editorial-project .gigantismo-leaflet-caption {font-size:11px;}
}


/* La casa imaginada — shared editorial alignment with La casa vacía.
   The quotation belongs above the story, while the first image and the
   description always start on the same grid row, independently of quote height.
   Maintain the established symmetric white margins and natural image ratios. */
.imaginada-editorial-project .imaginada-hero {
  min-width:0;
  width:min(100%,26vw);
  justify-self:center;
}
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  /* Visually center the photograph between the sidebar rule and text column. */
  .imaginada-editorial-project .imaginada-hero {
    transform:translateX(calc((var(--vacia-between) - var(--vacia-left)) / 2));
  }
}
.imaginada-editorial-project .imaginada-photo {margin:0;min-width:0;}
.imaginada-editorial-project .imaginada-photo button {display:block;width:100%;padding:0;text-align:left;}
.imaginada-editorial-project .imaginada-photo img {
  display:block;width:100%;height:auto;object-fit:contain;aspect-ratio:auto;
}
.imaginada-editorial-project .imaginada-ficha {
  margin:12px auto 0;
  font:400 clamp(10px,.78vw,13px)/1.3 "Times Draft","Times New Roman",serif;
  text-align:center;
  color:#231f20;
}
.imaginada-editorial-project .imaginada-ficha em {font-style:italic;}
.imaginada-editorial-project .imaginada-ficha span {display:block;}
/* The second technical sheet is tied to the third image on desktop. */
.imaginada-editorial-project .imaginada-photo--4 > .imaginada-ficha {display:none;}
/* La casa imaginada — reflow the four ORIGINAL editorial images:
   two close-ups plus the installation in the first row, drawing centered
   underneath. Fractional columns match each original photograph's intrinsic
   aspect ratio (1407/2110, 1591/2091 and 1379/2427); no image is cropped. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .imaginada-editorial-project .imaginada-gallery {
    padding:0 var(--vacia-right) 3.5cm;
    margin-top:clamp(90px,9vw,150px);
  }
  .imaginada-editorial-project .imaginada-gallery-composition {
    display:grid;
    grid-template-columns:minmax(0,.66682fr) minmax(0,.76088fr) minmax(0,.56819fr);
    column-gap:clamp(18px,1.75vw,30px);
    row-gap:clamp(28px,3.1vw,48px);
    align-items:start;
    width:100%;
  }
  .imaginada-editorial-project .imaginada-gallery-composition > .imaginada-photo {
    position:static;
    min-width:0;
    width:100%;
  }
  .imaginada-editorial-project .imaginada-photo--1 {grid-column:1;grid-row:1;}
  .imaginada-editorial-project .imaginada-photo--2 {grid-column:2;grid-row:1;}
  .imaginada-editorial-project .imaginada-photo--4 {grid-column:3;grid-row:1;}
  .imaginada-editorial-project .imaginada-gallery-composition > .imaginada-photo--3 {
    grid-column:1 / -1;
    grid-row:2;
    justify-self:center;
    width:min(29%,315px);
  }
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .imaginada-editorial-project .imaginada-hero {
    width:min(92%,420px);
    margin:0 auto;
  }
  .imaginada-editorial-project .imaginada-gallery {
    padding:0 22px 3.5cm;
    margin-top:70px;
  }
  .imaginada-editorial-project .imaginada-gallery-composition {
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:28px;
  }
  .imaginada-editorial-project .imaginada-gallery-composition > .imaginada-photo {
    width:min(85%,420px);
  }
  .imaginada-editorial-project .imaginada-gallery-composition > .imaginada-photo--3 {
    width:min(63%,295px);
    margin-top:0;
    margin-inline:auto;
  }
  .imaginada-editorial-project .imaginada-ficha {font-size:11px;}
  /* Compact screens: show the second technical sheet below photograph four. */
  .imaginada-editorial-project .imaginada-photo--2 > .imaginada-ficha {display:none;}
  .imaginada-editorial-project .imaginada-photo--4 > .imaginada-ficha {display:block;}
}

/* 35 Geopoiesis — October 9 supplied photographic composition.
   A single editorial right boundary is shared by text and image groups. */
.geopoiesis-project {
  --geo-edge: var(--artwork-right-safe, calc(var(--gutter) + 4.25vw));
  --geo-space: clamp(90px, 11.8vw, 170px);
}
.geopoiesis-project .geo-page {
  width:100%;
  max-width:100%;
  padding:clamp(56px, 5.5vw, 96px) var(--geo-edge) 0 calc(var(--gutter) + 7.3vw);
}
.geopoiesis-project .geo-intro {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,24.5vw);
  column-gap:clamp(40px,5.6vw,100px);
  align-items:start;
}
.geopoiesis-project .geo-copy {
  grid-column:2;
  grid-row:1;
  position:static;
  top:auto;
  right:auto;
  z-index:auto;
  width:100%;
  max-width:none;
  text-align:left;
  margin:0;
  color:#231f20;
  font:400 clamp(12px,1.04vw,17px)/1.27 "Times Draft","Times New Roman",serif;
}
.geopoiesis-project .geo-copy h1 {
  font:700 clamp(12px,1.04vw,17px)/1.2 "Times Draft","Times New Roman",serif;
  text-align:right;
  margin:0 0 clamp(22px,2.2vw,34px);
}
.geopoiesis-project .geo-copy p {
  text-align:justify;
  text-align-last:left;
  hyphens:none;
  -webkit-hyphens:none;
  overflow-wrap:normal;
  word-break:normal;
  line-height:1.27;
  margin:0;
}
.geopoiesis-project .geo-copy p + p {margin:0;}
.geopoiesis-project .geo-copy p:last-child {margin-top:1.27em;} /* Blank line before exhibition credit, both languages. */
.geopoiesis-project .geo-hero {
  grid-column:1;
  grid-row:1;
  justify-self:start;
  width:65%;
  min-width:0;
  margin:clamp(39px,4vw,63px) 0 0 4vw; /* align with body copy, keep the original aspect ratio */
}
.geopoiesis-project .geo-photo {
  display:block;
  width:100%;
  min-width:0;
  padding:0;
  margin:0;
  border:0;
  background:transparent;
  line-height:0;
  cursor:zoom-in;
}
.geopoiesis-project .geo-photo img {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:auto;
  object-fit:contain;
  max-width:100%;
}
.geopoiesis-project .geo-process-row {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:clamp(22px,5.4vw,88px);
  width:calc(100% + 5.2vw);
  margin:var(--geo-space) 0 0 -5.2vw;
}
/* Match the mud photo group's left white inset to the right-hand margin,
   shifting only this left group without resizing or moving the detail image. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .geopoiesis-project .geo-process-row .geo-mud-grid {
    transform:translateX(2.15vw);
  }
}
.geopoiesis-project .geo-mud-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(6px, .75vw, 12px);
  width:58%;
  flex:0 1 58%;
  min-width:0;
}
.geopoiesis-project .geo-process-detail {
  width:26%;
  flex:0 0 26%;
  margin-top:0;
  min-width:0;
}
.geopoiesis-project .geo-landscape-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(35px,5vw,80px);
  width:calc(100% + 4.15vw);
  margin-top:var(--geo-space);
  margin-left:-4.15vw;
}
.geopoiesis-project .geo-palms {
  display:grid;
  grid-template-columns:1fr 1.05fr;
  align-items:center;
  gap:clamp(10px,1.6vw,20px);
  width:40%;
  min-width:0;
}
.geopoiesis-project .geo-footprints {
  width:36%;
  flex:0 0 36%;
  min-width:0;
}
.geopoiesis-project .geo-hands-triptych {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(8px,1.1vw,16px);
  width:64%;
  max-width:100%;
  margin:calc(var(--geo-space) + 42px) 0 0 auto;
}
/* Technical captions match the restrained Times-style captions used by the other works.
   One centered ficha belongs to each photographic group, never to each photo. */
.geopoiesis-project .geo-ficha {
  display:block;
  width:100%;
  min-width:0;
  margin:13px 0 0;
  font:400 clamp(10px,.78vw,13px)/1.3 "Times Draft","Times New Roman",serif;
  color:#231f20;
  text-align:center;
  overflow-wrap:normal;
  word-break:normal;
}
.geopoiesis-project .geo-ficha em {font-style:italic;font-weight:400;}
.geopoiesis-project .geo-mud-grid > .geo-ficha,
.geopoiesis-project .geo-palms > .geo-ficha,
.geopoiesis-project .geo-hands-triptych > .geo-ficha {
  grid-column:1 / -1;
  justify-self:center;
}
.geopoiesis-project .geo-mud-grid > .geo-ficha,
.geopoiesis-project .geo-hands-triptych > .geo-ficha {margin-top:9px;}
.geopoiesis-project .geo-hero > .geo-ficha {margin-top:13px;}
.geopoiesis-project .geo-footprints > .geo-ficha {margin-top:13px;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .geopoiesis-project .geo-ficha {font-size:11px;line-height:1.3;}
}
/* 35 Geopoiesis: every original photo has the same displayed height.
   The image width and its side chevrons follow the slide's native aspect ratio. */
.geopoiesis-project .geo-hero {width:58%;}
.geopoiesis-project .geo-carousel-stage {
  position:relative;
  width:100%;
  aspect-ratio:1346/1800;
  overflow:visible;
  background:#fff;
}
.geopoiesis-project .geo-carousel-image {
  position:absolute;
  top:0;bottom:0;right:auto;
  left:var(--geo-slide-inset,0%);
  width:var(--geo-slide-width,100%);
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  cursor:zoom-in;
}
.geopoiesis-project .geo-carousel-image img {
  display:block;
  flex:0 0 auto;
  width:auto;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:contain;
  object-position:center;
  aspect-ratio:auto;
}
.geopoiesis-project .geo-carousel-controls {
  position:absolute;
  top:0;bottom:0;
  left:calc(var(--geo-slide-inset,0%) - 34px);
  right:calc(var(--geo-slide-inset,0%) - 34px);
  width:auto;height:auto;margin:0;
  display:flex;justify-content:space-between;align-items:center;
  gap:0;pointer-events:none;z-index:2;
}
.geopoiesis-project .geo-carousel-controls button {
  position:relative;display:block;flex:0 0 27px;
  width:27px;height:40px;min-width:0;min-height:0;
  padding:0;background:transparent;border:0;pointer-events:auto;
  color:#161616;opacity:.74;cursor:pointer;
}
.geopoiesis-project .geo-carousel-controls button span {
  display:block;position:absolute;top:50%;left:50%;width:9px;height:9px;
  border-top:.75px solid currentColor;border-right:.75px solid currentColor;
  transform:translate(-35%,-50%) rotate(-135deg);
}
.geopoiesis-project .geo-carousel-controls button:last-child span {
  transform:translate(-65%,-50%) rotate(45deg);
}
.geopoiesis-project .geo-carousel-controls button:hover,
.geopoiesis-project .geo-carousel-controls button:focus-visible {opacity:1;}
.geopoiesis-project .geo-carousel-counter {margin:10px auto 0;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  /* Reserve space for a 3:2 horizontal slide and the exterior chevrons. */
  .geopoiesis-project .geo-intro .geo-hero {
    width:min(60%,calc((100vw - 96px) * 0.49852));
  }
  .geopoiesis-project .geo-carousel-controls {
    left:calc(var(--geo-slide-inset,0%) - 22px);
    right:calc(var(--geo-slide-inset,0%) - 22px);
  }
  .geopoiesis-project .geo-carousel-controls button {
    flex-basis:21px;width:21px;
  }
}

.geopoiesis-project .geo-hero > .geo-ficha {margin-top:9px;}
.geopoiesis-project .geo-photo-pending {
  aspect-ratio: .74;
  background:#fff;
}
.geopoiesis-project .geo-page {
  padding-bottom:clamp(70px,8vw,125px);
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .geopoiesis-project {
    --geo-space:clamp(54px,12vw,90px);
  }
  .geopoiesis-project .geo-page {
    padding:36px 22px 60px;
  }
  .geopoiesis-project .geo-intro {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:40px;
  }
  .geopoiesis-project .geo-copy {
    width:min(100%,440px);
    margin-left:auto;
  }
  /* Match the 16px headings of the other artwork detail pages on compact screens. */
  .geopoiesis-project .geo-copy h1 {font-size:16px;}
  .geopoiesis-project .geo-hero {
    width:min(60%,260px);
    margin:0 auto;
    align-self:center;
  }
  .geopoiesis-project .geo-process-row {
    width:100%;
    margin:var(--geo-space) 0 0;
    flex-direction:column;
    gap:28px;
  }
  .geopoiesis-project .geo-process-row .geo-mud-grid {
    width:86%;
    flex:0 1 auto;
    gap:6px;
  }
  .geopoiesis-project .geo-process-detail {
    width:42%;
    flex:0 0 auto;
    margin:0 0 0 auto;
  }
  .geopoiesis-project .geo-landscape-row {
    gap:30px;
    width:100%;
    margin-left:0;
    align-items:center;
  }
  .geopoiesis-project .geo-palms { width:54%; gap:8px; }
  .geopoiesis-project .geo-footprints { width:38%; flex-basis:38%; }
  .geopoiesis-project .geo-hands-triptych { width:82%; gap:7px; }
}


/* Scultura landing: one 2-column-wide image, then two precise 3-image rows.
   The editorial white margins are shared with the artwork pages. Only this
   category is affected; images are clickable with accessible artwork names. */
.collection--scultura {
  max-width:none;
  padding:clamp(45px,4.5vw,76px) var(--artwork-right-safe, 7vw) 3.5cm 0;
}
.collection--scultura .scultura-index-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-rows:auto auto auto;
  column-gap:clamp(14px,1.45vw,23px);
  row-gap:clamp(15px,1.65vw,26px);
  width:min(100%,780px);
  margin:0 auto;
  align-items:start;
}
.collection--scultura .scultura-tile {min-width:0;margin:0;}
.collection--scultura .scultura-tile:nth-of-type(1){grid-area:1 / 2 / 2 / 4;}
.collection--scultura .scultura-tile:nth-of-type(2){grid-area:2 / 1;}
.collection--scultura .scultura-tile:nth-of-type(3){grid-area:2 / 2;}
.collection--scultura .scultura-tile:nth-of-type(4){grid-area:2 / 3;}
.collection--scultura .scultura-tile:nth-of-type(5){grid-area:3 / 1;}
.collection--scultura .scultura-tile:nth-of-type(6){grid-area:3 / 2;}
.collection--scultura .scultura-tile:nth-of-type(7){grid-area:3 / 3;}
.collection--scultura .scultura-tile:nth-of-type(8){grid-area:4 / 2 / 5 / 3;}
.collection--scultura .scultura-tile a {display:block;width:100%;text-decoration:none;overflow:hidden;}
.collection--scultura .scultura-tile img {
  display:block;
  width:100%;
  aspect-ratio:0.743 / 1;
  height:auto;
  object-fit:cover;
  object-position:center;
  max-height:none;
  transition:opacity .18s ease;
}
.collection--scultura .scultura-tile:first-of-type img {aspect-ratio:1.54 / 1;}
.collection--scultura .scultura-tile--el-bosque-domesticado img {object-position:54% center;}
.collection--scultura .scultura-tile--la-casa-vacia img {object-position:45% center;}
/* Archeología thumbnail: zoom the original sculpture photograph to match
   the approved layout; cropping is confined to this index tile only. */
.collection--scultura .scultura-tile--arqueologia img {
  /* Close-up from Chiara's reference: same source, only the tile crop changes. */
  transform:scale(2.45);
  transform-origin:37% 51%;
}
/* Preserve the full petal composition in the lead and all sixteen Gusci details in the seventh tile. */
.collection--scultura .scultura-tile--di-quando-ero-in-fiore img,
.collection--scultura .scultura-tile--gusci img {object-fit:contain;}
.collection--scultura .scultura-tile a:hover img {opacity:.83;}
.collection--scultura .scultura-tile a:focus-visible {outline:1px solid currentColor;outline-offset:4px;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .collection--scultura {padding:37px 22px 3.5cm;}
  .collection--scultura .scultura-index-grid {
    width:100%;grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:auto;
    column-gap:14px;row-gap:18px;
  }
  .collection--scultura .scultura-index-grid .scultura-tile:nth-of-type(n) {grid-area:auto;}
  .collection--scultura .scultura-index-grid .scultura-tile:first-of-type {grid-column:1 / -1;grid-row:auto;}
  .collection--scultura .scultura-index-grid .scultura-tile:nth-of-type(8) {
    grid-column:1 / -1;
    width:calc((100% - 14px)/2);
    justify-self:center;
  }
  .collection--scultura .scultura-tile img {aspect-ratio:.76 / 1;}
  .collection--scultura .scultura-tile:first-of-type img {aspect-ratio:1.54 / 1;}
}


/* Fotografia category — artist-approved five-photo asymmetrical arrangement.
   Positions and image identities are fixed independently of source order in
   the project data; existing sculpture and individual artwork pages are intact. */
.collection--fotografia {
  max-width:none;
  padding:clamp(45px,4.5vw,76px) var(--artwork-right-safe,7vw) 3.5cm 0;
}
.collection--fotografia .fotografia-index-grid {
  display:grid;
  grid-template-columns:repeat(20,minmax(0,1fr));
  grid-template-rows:auto auto auto;
  row-gap:clamp(13px,1.55vw,22px);
  width:min(100%,780px);
  margin:0 auto;
  align-items:start;
}
.collection--fotografia .fotografia-index-item {margin:0;min-width:0;}
.collection--fotografia .fotografia-index-item:nth-of-type(1){grid-area:1 / 11 / 2 / 21;}
.collection--fotografia .fotografia-index-item:nth-of-type(2){grid-area:2 / 1 / 3 / 13;}
.collection--fotografia .fotografia-index-item:nth-of-type(3){grid-area:2 / 14 / 3 / 21;}
.collection--fotografia .fotografia-index-item:nth-of-type(4){
  grid-area:3 / 1 / 4 / 11;
  padding-right:clamp(5px,.65vw,10px);
}
.collection--fotografia .fotografia-index-item:nth-of-type(5){
  grid-area:3 / 11 / 4 / 21;
  padding-left:clamp(5px,.65vw,10px);
}
.collection--fotografia .fotografia-index-item a {
  display:block;
  width:100%;
  overflow:hidden;
}
.collection--fotografia .fotografia-index-item img {
  display:block;
  width:100%;
  height:auto;
  object-fit:cover;
  object-position:center;
  max-height:none;
  transition:opacity .18s ease;
}
.collection--fotografia .fotografia-index-item:nth-of-type(1) img {aspect-ratio:1.4;}
.collection--fotografia .fotografia-index-item:nth-of-type(2) img {aspect-ratio:1.4;}
.collection--fotografia .fotografia-index-item:nth-of-type(3) img {aspect-ratio:.817;}
/* The single Gigantismo book cover is slightly enlarged and clipped to its
   editorial frame, removing excess white surround without stretching it. */
.collection--fotografia .fotografia-index-item--gigantismo img {
  transform:scale(1.13);
  transform-origin:50% 50%;
}
/* Fotografia's second row: match the narrow gutter beneath it without
   altering the neighbouring Ser y desaparecer photograph. Enlarge only the
   Gigantismo frame into the formerly empty grid column, then crop its height
   to keep the two thumbnails aligned. Compact layouts stay unchanged. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .collection--fotografia .fotografia-index-item--gigantismo:nth-of-type(3) {
    grid-area:2 / 13 / 3 / 21;
    padding-left:clamp(10px,1.3vw,20px);
  }
  .collection--fotografia .fotografia-index-item--gigantismo:nth-of-type(3) img {
    aspect-ratio:.875;
    object-fit:cover;
  }
}
.collection--fotografia .fotografia-index-item:nth-of-type(4) img,
.collection--fotografia .fotografia-index-item:nth-of-type(5) img {aspect-ratio:1.44;}
.collection--fotografia .fotografia-index-item a:hover img {opacity:.83;}
.collection--fotografia .fotografia-index-item a:focus-visible {
  outline:1px solid currentColor;
  outline-offset:4px;
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .collection--fotografia {padding:37px 22px 3.5cm;}
  .collection--fotografia .fotografia-index-grid {width:100%;}
}

/* Obras: category labels occupy the previously empty first-row area,
   directly above the next row, while keeping the image geometry unchanged. */
.opere-overview {
  display:flex;
  flex-direction:column;
  gap:4cm;
  padding:calc(clamp(45px,4.5vw,76px) + 40px) 0 3.5cm;
}
.opere-overview .collection {
  padding-top:0;
  padding-bottom:0;
}
.collection .category-index-title {
  font:100 clamp(17px,1.45vw,20px)/1.2 var(--navigation);
  font-synthesis:none;
  text-transform:uppercase;
  text-align:left;
  align-self:end;
  justify-self:start;
  width:max-content;
  max-width:100%;
  margin:0;
  padding:0 12px 2px 0;
  border-bottom:1px solid #bebebe;
}
/* Centre both editorial grids between the fixed sidebar rule and the
   usable right viewport edge. Existing section right padding otherwise
   biases an auto-centred 780px grid to the left by half that padding.
   Shift the complete grid (including its heading) rather than resizing
   or rearranging its photographs. Mobile already has symmetric insets. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .collection--scultura .scultura-index-grid,
  .collection--fotografia .fotografia-index-grid,
  .collection--obra-grafica .obra-grafica-index-grid {
    transform: translateX(calc((var(--artwork-right-safe) + var(--viewport-scrollbar-inset, 0px)) / 2));
  }
}

.collection--scultura .scultura-index-grid > .category-index-title {
  grid-area:1 / 1 / 2 / 2;
}
.collection--fotografia .fotografia-index-grid > .category-index-title {
  grid-area:1 / 1 / 2 / 11;
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .opere-overview {padding:37px 0 3.5cm; gap:3cm;}
  .opere-overview .collection {padding:0 22px;}
  .opere-overview .category-index-title {
    font-size:15px;
    margin:0;
    justify-self:start;
    align-self:end;
  }
  .opere-overview .scultura-index-grid > .category-index-title {
    grid-area:1 / 1 / 2 / -1;
  }
  /* The three restored category pages remain visually unchanged on mobile. */
  .collection .category-index-title--desktop-only {
    position:absolute;
    width:1px;
    height:1px;
    margin:-1px;
    padding:0;
    border:0;
    overflow:hidden;
    clip-path:inset(50%);
    white-space:nowrap;
  }
}

/* Obra gráfica — final section of Obras, using the single passport spread
   from Chiara non c'è. The preview occupies half the editorial image grid. */
.collection--obra-grafica {
  max-width:none;
  padding:clamp(45px,4.5vw,76px) var(--artwork-right-safe,7vw) 3.5cm 0;
}
.collection--obra-grafica .obra-grafica-index-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:clamp(14px,1.45vw,23px);
  row-gap:clamp(15px,1.5vw,20px);
  width:min(100%,780px);
  margin:0 auto;
  align-items:start;
}
.collection--obra-grafica .category-index-title {grid-column:1 / -1;}
.collection--obra-grafica .obra-grafica-index-item {grid-column:1;grid-row:2;margin:0;min-width:0;}
.collection--obra-grafica .obra-grafica-index-item a {display:block;overflow:hidden;width:100%;}
.collection--obra-grafica .obra-grafica-index-item img {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:3 / 2;
  object-fit:cover;
  object-position:center;
  transform:scale(1.3);
  transform-origin:center;
  transition:opacity .18s ease;
}
.collection--obra-grafica .obra-grafica-index-item a:hover img {opacity:.83;}
.collection--obra-grafica .obra-grafica-index-item a:focus-visible {outline:1px solid currentColor;outline-offset:4px;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .collection--obra-grafica {padding:37px 22px 3.5cm;}
  .collection--obra-grafica .obra-grafica-index-grid {grid-template-columns:1fr;width:100%;}
  .collection--obra-grafica .obra-grafica-index-item {width:min(74%,360px);}
  .opere-overview .collection--obra-grafica {padding:0 22px;}
}

/* Artwork title and date appear inside the thumbnail only while hovering on
   desktop or keyboard-focusing its link. No mobile captions or grid movement. */
.collection .category-index-hover {display:none;}
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .collection :is(.scultura-tile,.fotografia-index-item,.obra-grafica-index-item) > a {
    position:relative;
  }
  .collection .category-index-hover {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    position:absolute;
    left:10px;
    bottom:10px;
    z-index:1;
    max-width:calc(100% - 20px);
    padding:9px 12px;
    background:rgba(255,255,255,.94);
    color:var(--ink);
    font:400 clamp(12px,.9vw,14px)/1.35 "Times Draft","Times New Roman",serif;
    opacity:0;
    transform:translateY(4px);
    transition:opacity .16s ease,transform .16s ease;
    pointer-events:none;
  }
  .collection .category-index-hover-title {font-style:italic;}
  .collection .category-index-hover-year {font-size:.92em;}
  .collection :is(.scultura-tile,.fotografia-index-item,.obra-grafica-index-item) > a:is(:hover,:focus-visible) .category-index-hover {
    opacity:1;
    transform:translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .collection .category-index-hover {transition:none;}
}

/* ¿Has pasado por aquí? — restore exactly three side-by-side photos and put
   the single book credit BELOW the middle one, inside its own column. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  .pdf-project[data-project="sei-passato-di-qui"] .passi-image-gallery {
    grid-template-columns:minmax(0,22.5fr) minmax(0,27.451fr) minmax(0,25.8333fr);
  }
}
.pdf-project[data-project="sei-passato-di-qui"] .passi-gallery-figure:nth-child(2) .passi-gallery-caption {
  margin:12px auto 0;
  max-width:100%;
  text-align:center;
  font:400 clamp(10px,.78vw,13px)/1.28 "Times Draft","Times New Roman",serif;
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .pdf-project[data-project="sei-passato-di-qui"] .passi-gallery-figure:nth-child(2) .passi-gallery-caption {
    font-size:11px;
  }
}
/* The supplied body copy has exactly one paragraph break: after
   'observación.'; all earlier paragraphs run with no blank line. */
.pdf-project[data-project="sei-passato-di-qui"] .pdf-flow-body p,
.pdf-project[data-project="sei-passato-di-qui"] .pdf-mobile-copy p {
  margin-top:0;
  margin-bottom:0;
}
.pdf-project[data-project="sei-passato-di-qui"] .pdf-flow-body p:nth-last-child(2),
.pdf-project[data-project="sei-passato-di-qui"] .pdf-mobile-copy p:nth-last-child(2) {
  margin-bottom:1.15em;
}

/* En contacto
   Editorial photo arrangement remains unique to this work. The text column,
   typography and right white margin instead share the exact values used by
   the revised artwork pages (notably 35 Geopoiesis). All image groups are
   centered between the sidebar edge and that same safe right boundary. */
.en-contacto-project { --en-safe:var(--artwork-right-safe,calc(var(--gutter) + 4.25vw)); }
.en-contacto-project .en-contacto-page {
  width:100%;
  padding:clamp(56px,5.5vw,96px) var(--en-safe)
    clamp(70px,9vw,125px) 0;
}
.en-contacto-project .en-contacto-copy {
  position:static;
  inset:auto;
  z-index:auto;
  width:24.5vw;
  max-width:none;
  margin:0 0 0 auto;
  padding:0;
  text-align:left;
  color:#231f20;
  font:400 clamp(12px,1.04vw,17px)/1.27 "Times Draft","Times New Roman",serif;
}
.en-contacto-project .en-contacto-copy h1 {
  font:700 clamp(12px,1.04vw,17px)/1.2 "Times Draft","Times New Roman",serif;
  text-align:right;
  margin:0 0 clamp(22px,2.2vw,34px);
}
.en-contacto-project .en-contacto-copy p {
  margin:0;
  line-height:1.27;
  text-align:justify;
  text-align-last:left;
  hyphens:none;
  -webkit-hyphens:none;
  overflow-wrap:normal;
  word-break:normal;
}
.en-contacto-project .en-contacto-copy p + p {margin:0;}
/* En contacto: a continuous Italian paragraph, with the Spanish break preserved. */
.en-contacto-project .en-contacto-copy .en-contacto-continuation {display:block;}
html[lang="it"] .en-contacto-project .en-contacto-copy .en-contacto-continuation {display:inline;}

/* The artist-supplied stamped print, in the left part of the intro,
   opposite the existing right-hand text. Its absolute positioning keeps
   the approved photograph sequence and its generous whitespace intact. */
.en-contacto-project .en-contacto-page {position:relative;}
.en-contacto-project .en-contacto-intro-image {
  position:absolute;
  top:calc(clamp(56px,5.5vw,96px) + clamp(54px,5vw,90px));
  left:calc(clamp(25px,2vw,42px) + 11.4vw);
  right:auto;
  width:clamp(220px,29.3vw,378px);
  padding:0;
  margin:0;
  border:0;
  background:transparent;
  line-height:0;
  cursor:zoom-in;
}
.en-contacto-project .en-contacto-intro-image img {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:700 / 358;
  object-fit:contain;
}
/* Mask just the thin dark scanning edge at the top of the original.
   The stamped letters and image geometry remain exactly in place.
   Match the enlarged gallery view to the inline crop. */
.en-contacto-project .en-contacto-intro-image img,
.lightbox-image[src*="en-contacto-impronta-titulo.webp"] {
  clip-path:inset(3% 0 0 0);
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .en-contacto-project .en-contacto-intro-image {
    position:relative;
    top:auto;
    left:auto;
    right:auto;
    width:min(100%,360px);
    margin:clamp(34px,8vw,60px) auto 0;
  }
}


/* First row: two skin details framing the activation photo. */
.en-contacto-project .en-contacto-firstrow {
  display:grid;
  width:calc(100% - 2 * clamp(20px,2.5vw,38px));
  grid-template-columns:minmax(0,1fr) minmax(0,2.724fr) minmax(0,1fr);
  column-gap:clamp(14px,2.95vw,38px);
  align-items:center;
  margin:clamp(108px,11.2vw,148px) 0 0 auto;
}
.en-contacto-project .en-contacto-photo {
  display:block;
  width:100%;
  height:auto;
  min-width:0;
  padding:0;
  margin:0;
  border:0;
  background:transparent;
  overflow:hidden;
  line-height:0;
  cursor:zoom-in;
}
.en-contacto-project .en-contacto-photo img {
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center;
}
.en-contacto-project .en-contacto-skin-left,
.en-contacto-project .en-contacto-skin-right {aspect-ratio:1;}
.en-contacto-project .en-contacto-skin-left {transform:translateY(-11px);}
.en-contacto-project .en-contacto-skin-right {transform:translateY(-5px);}
.en-contacto-project .en-contacto-activation {aspect-ratio:2000 / 1062;}
/* Second technical caption sits directly below the central activation
   photograph. Absolute caption positioning preserves the approved three-photo
   alignment, dimensions and whitespace of the first row. */
.en-contacto-project .en-contacto-activation-figure {
  position:relative;
  width:100%;
  min-width:0;
}
.en-contacto-project .en-contacto-activation-figure .en-contacto-ficha {
  position:absolute;
  top:100%;
  left:0;
  margin-top:12px;
}


/* The two-stack/tall-photo arrangement and its three-image final row.
   Preserve every crop, while centering the whole composition on the
   available area, not on the text column or the entire viewport. */
.en-contacto-project .en-contacto-composition {
  width:74.35%;
  margin:clamp(150px,18vw,222px) auto 0;
}
.en-contacto-project .en-contacto-main-grid {
  display:grid;
  grid-template-columns:minmax(0,1.135fr) minmax(0,1fr);
  column-gap:7px;
  align-items:stretch;
  width:100%;
}
.en-contacto-project .en-contacto-left-stack {
  display:flex;
  flex-direction:column;
  gap:7px;
  min-width:0;
}
.en-contacto-project .en-contacto-sculpture-side,
.en-contacto-project .en-contacto-inscription {aspect-ratio:3 / 2;}
.en-contacto-project .en-contacto-upper-detail {height:100%; align-self:stretch;}
.en-contacto-project .en-contacto-upper-detail img {object-position:50% 50%;}
.en-contacto-project .en-contacto-bottom-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  width:calc(100% + 4px);
  margin:8px 0 0 -2px;
}
.en-contacto-project .en-contacto-bottom-grid .en-contacto-photo {aspect-ratio:.625;}
/* Ficha técnica — same quiet Times treatment as other artwork captions. */
.en-contacto-project .en-contacto-ficha {
  margin:12px auto 0;
  width:100%;
  color:#231f20;
  text-align:center;
  font:400 clamp(10px,.78vw,13px)/1.3 "Times Draft","Times New Roman",serif;
  hyphens:none;
}
.en-contacto-project .en-contacto-ficha span {display:block;}
.en-contacto-project .en-contacto-ficha em {font-style:italic;font-weight:400;}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .en-contacto-project .en-contacto-ficha {font-size:11px;}
}

.en-contacto-project .en-contacto-surface-detail img {
  transform:scale(1.45);
  transform-origin:50% 83%;
}
.en-contacto-project .en-contacto-photo:hover img {opacity:.94;}
.en-contacto-project .project-footer {margin-top:0;}

/* Restore the standard desktop header and sidebar for En contacto.
   Its text and image top offsets above exclude the header height so the
   previously approved artwork geometry stays in place. */
@media (min-width: 1025px) and (not ((max-width: 1366px) and (hover: none) and (pointer: coarse))) {
  body.en-contacto-mode main {min-height:calc(100svh - var(--header));}
  /* Center against the actual sidebar rule and the right edge of main.
     Main already excludes the scrollbar. Including it a second time would
     bias the gallery rightward. Keep image sizes and internal gaps intact. */
  body.en-contacto-mode .en-contacto-composition {
    transform:translateX(calc((var(--en-safe) - (var(--sidebar) - 17.8vw)) / 2));
  }
}

/* Escultura thumbnails follow the artist's 10 October reference.
   Crops are restricted to this index; project galleries remain unchanged. */
.collection--scultura .scultura-tile:nth-of-type(8) {
  grid-area:4 / 1 / 5 / 2;
  width:100%;
  justify-self:stretch;
}
.collection--scultura .scultura-tile:nth-of-type(9) {
  grid-area:4 / 2 / 5 / 3;
  width:100%;
  justify-self:stretch;
}
.collection--scultura .scultura-tile--35-geopoiesis img {
  transform:scale(2.4);
  transform-origin:center center;
}
.collection--scultura .scultura-tile--en-contacto img {
  object-position:left center;
}

@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
  .en-contacto-project .en-contacto-page {padding:36px 22px 62px;}
  .en-contacto-project .en-contacto-copy {
    width:min(100%,440px);
    margin:0 0 0 auto;
    font-size:12px;
    line-height:1.27;
  }
  .en-contacto-project .en-contacto-copy h1 {font-size:15px;margin-bottom:20px;}
  .en-contacto-project .en-contacto-copy p {line-height:1.27;}
  .en-contacto-project .en-contacto-firstrow {
    width:100%;
    margin:96px auto 0;
    column-gap:10px;
    grid-template-columns:minmax(0,1fr) minmax(0,2.65fr) minmax(0,1fr);
  }
  .en-contacto-project .en-contacto-skin-left {transform:translateY(-3px);}
  .en-contacto-project .en-contacto-skin-right {transform:none;}
  .en-contacto-project .en-contacto-composition {
    width:100%;
    margin:110px auto 0;
  }
  .en-contacto-project .en-contacto-main-grid {column-gap:5px;}
  .en-contacto-project .en-contacto-left-stack {gap:5px;}
  .en-contacto-project .en-contacto-bottom-grid {
    gap:6px;
    margin:6px 0 0;
    width:100%;
  }
  .collection--scultura .scultura-index-grid .scultura-tile:nth-of-type(8),
  .collection--scultura .scultura-index-grid .scultura-tile:nth-of-type(9) {
    grid-area:auto;
    grid-column:auto;
    width:100%;
    justify-self:stretch;
  }
}

