:root {
  --paper: #f1efe9;
  --paper-soft: #e8e5de;
  --ink: #11110f;
  --muted: #67655f;
  --line: rgba(17, 17, 15, 0.18);
  --acid: #d9ff43;
  --max: 1440px;
  --pad: clamp(1.25rem, 4vw, 4.5rem);
  --serif: "Iowan Old Style", "Baskerville", "Times New Roman", serif;
  --sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --display: "Avenir Next", "Century Gothic", Futura, "Helvetica Neue", Arial, sans-serif;
  --statement-size: clamp(1.45rem, 2.3vw, 2.25rem);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.52;
}

body.menu-open,
body.archive-open { overflow: hidden; }

a { color: inherit; }
button { font: inherit; }
img { display: block; max-width: 100%; }

.skip-link {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 1rem;
  transform: translateY(-120%);
  background: var(--acid);
  color: var(--ink);
  padding: .7rem 1rem;
}

.skip-link:focus { transform: translateY(0); }

.site-header {
  position: sticky;
  z-index: 20;
  top: 0;
  display: flex;
  min-height: 84px;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 0 var(--pad);
  background: rgba(241, 239, 233, .9);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px);
}

.brand {
  display: flex;
  align-items: center;
  gap: .75rem;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .95rem;
  font-weight: 650;
}

.brand-mark {
  display: block;
  overflow: hidden;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  background: var(--ink);
}

.brand-mark img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: sepia(.16) saturate(.45) brightness(.96);
}

.brand-copy {
  display: flex;
  flex-direction: column;
}

.brand-copy small {
  margin-top: .15rem;
  color: var(--muted);
  font-size: .57rem;
  letter-spacing: .16em;
  font-weight: 600;
}

.primary-nav { display: flex; gap: clamp(.75rem, 1.8vw, 1.8rem); }

.primary-nav a {
  position: relative;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .68rem;
  font-weight: 650;
}

.primary-nav a::after {
  position: absolute;
  right: 0;
  bottom: -.45rem;
  left: 0;
  height: 2px;
  background: var(--ink);
  content: "";
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .25s ease;
}

.primary-nav a:hover::after,
.primary-nav a[aria-current="page"]::after {
  transform: scaleX(1);
  transform-origin: left;
}

.primary-nav a[aria-current="page"] {
  padding: .55rem .72rem .55rem 1.42rem;
  background: var(--paper-soft);
  box-shadow: inset 0 0 0 1px var(--line);
}

.primary-nav a[aria-current="page"]::before {
  position: absolute;
  top: 50%;
  left: .68rem;
  width: .36rem;
  height: .36rem;
  background: var(--ink);
  border-radius: 50%;
  content: "";
  transform: translateY(-50%);
}

.primary-nav a[aria-current="page"]::after { display: none; }

.menu-toggle { display: none; }

main { min-height: calc(100vh - 170px); }

.hero,
.home-residency,
.page-intro,
.section,
.manifesto,
.project-detail { max-width: var(--max); margin: 0 auto; }

/* Pagina di attesa della mostra: la homepage curatoriale resta separata. */
.launch-page .site-header,
.launch-page .site-footer { display: none; }
.launch-page .skip-link:focus { z-index: 20; }
.launch {
  position: relative;
  display: grid;
  min-height: 100svh;
  overflow: hidden;
  background: #171718;
  color: #f4f1e9;
}
.launch-images { position: absolute; inset: 0; display: grid; grid-template-columns: 1fr 1fr; }
.launch-images img { width: 100%; height: 100%; object-fit: cover; opacity: .7; }
.launch-images img:first-child { object-position: center; }
.launch-images img:last-child { object-position: center; }
.launch::after { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(12,12,12,.73),rgba(12,12,12,.12) 90%),linear-gradient(0deg,rgba(12,12,12,.67),transparent 65%); content: ""; }
.launch-content { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: flex-end; width: min(100%,1500px); min-height: 100svh; margin: 0 auto; padding: clamp(2rem,6vw,6rem); }
.launch-kicker,.launch-date,.exhibition-countdown-label,.launch-preview { text-transform: uppercase; letter-spacing: .14em; }
.launch-kicker { margin-bottom: clamp(2rem,6vh,5rem); font-size: clamp(.75rem,1vw,.9rem); }
.launch h1 { max-width: 13ch; margin-bottom: 2rem; font-family: var(--display); font-size: clamp(3.6rem,9vw,9rem); font-weight: 300; line-height: .86; letter-spacing: -.06em; text-transform: uppercase; }
.launch h1 span { display: block; }
.launch-date { margin-bottom: 2rem; font-size: clamp(.8rem,1.2vw,1rem); }
.exhibition-countdown { max-width: 650px; padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.62); }
.exhibition-countdown-label { margin-bottom: 1rem; font-size: .75rem; }
.exhibition-countdown-units { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: clamp(.5rem,2vw,2rem); }
.exhibition-countdown-units span { display: grid; gap: .15rem; }
.exhibition-countdown-units strong { font-family: var(--display); font-size: clamp(2.5rem,5vw,5rem); font-weight: 300; line-height: 1; font-variant-numeric: tabular-nums; }
.exhibition-countdown-units small { font-size: .73rem; letter-spacing: .08em; text-transform: uppercase; }
.launch-preview { align-self: flex-start; margin-top: clamp(2rem,5vh,4rem); padding-bottom: .4rem; border-bottom: 1px solid currentColor; color: inherit; font-size: .72rem; text-decoration: none; }
.launch-preview:hover,.launch-preview:focus-visible { opacity: .7; }
.launch-collector-link {
  align-self: flex-start;
  margin-top: 1rem;
  color: inherit;
  font-size: .62rem;
  font-weight: 650;
  letter-spacing: .14em;
  opacity: .72;
  text-decoration: none;
  text-transform: uppercase;
  transition: opacity .25s ease;
}
.launch-collector-link span { display: inline-block; margin-left: .45rem; transition: transform .3s ease; }
.launch-collector-link:hover,
.launch-collector-link:focus-visible { opacity: 1; }
.launch-collector-link:hover span,
.launch-collector-link:focus-visible span { transform: translateY(.25rem); }
.launch-preview--disabled {
  border-bottom-color: color-mix(in srgb, currentColor 30%, transparent);
  cursor: default;
  opacity: .48;
}
@media (max-width: 700px) {
  .launch-images { grid-template-columns: 1fr; }
  .launch-images img:last-child { display: none; }
  .launch-content { padding: 2rem 1.3rem 2.6rem; }
  .launch h1 { font-size: clamp(3.1rem,15vw,6rem); }
  .launch-title-long { font-size: .72em; letter-spacing: -.07em; white-space: nowrap; }
  .exhibition-countdown-units strong { font-size: clamp(2.2rem,10vw,3.8rem); }
}

.hero {
  display: grid;
  min-height: min(800px, calc(100vh - 84px));
  grid-template-columns: minmax(0, .9fr) minmax(320px, 1.1fr);
  border-right: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(3rem, 8vw, 8rem) var(--pad) 3rem;
  border-right: 1px solid var(--line);
}

.eyebrow {
  margin: 0 0 1.5rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: .66rem;
  font-weight: 700;
}

h1, h2, h3, p { margin-top: 0; }

.display {
  max-width: 11ch;
  margin-bottom: 2rem;
  font-family: var(--serif);
  font-size: clamp(4rem, 9.2vw, 9.5rem);
  font-weight: 400;
  letter-spacing: -.055em;
  line-height: .84;
}

.display em { font-weight: 400; }

.display--brand {
  font-family: var(--display);
  font-size: clamp(3.5rem, 8.4vw, 8.7rem);
  font-weight: 300;
  letter-spacing: -.075em;
  line-height: .82;
  text-transform: uppercase;
}

.display--brand span { display: block; }
.display--brand span:last-child { margin-left: .04em; }

.lead {
  max-width: 35rem;
  font-family: var(--sans);
  font-size: clamp(.92rem, 1.05vw, 1.12rem);
  line-height: 1.5;
}

.hero-actions { display: flex; align-items: center; gap: 1.4rem; margin-top: 3rem; }

.button,
.text-link {
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .67rem;
  font-weight: 750;
}

.button {
  min-height: 48px;
  padding: .9rem 1.1rem;
  background: var(--ink);
  color: var(--paper);
  border: 1px solid var(--ink);
}

.button:hover,
.button:focus-visible {
  background: var(--paper);
  color: var(--ink);
  border-color: var(--ink);
}
.text-link::after { content: "↗"; font-size: 1rem; }
.text-link:hover { text-decoration: underline; text-underline-offset: .35rem; }

.hero-feature {
  position: relative;
  overflow: hidden;
  min-height: 520px;
  background: #1a1b1c;
}

.hero-feature::after {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to top, rgba(0,0,0,.88), rgba(0,0,0,.06) 68%);
  content: "";
  pointer-events: none;
}

.hero-slides,
.hero-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero-slide {
  object-fit: cover;
  object-position: center;
  opacity: 0;
  filter: saturate(.9) contrast(1.04);
  animation: hero-crossfade 12s infinite ease-in-out;
  transform: scale(1.015);
}

.hero-slide:nth-child(2) { animation-delay: 6s; }
.hero-feature:hover .hero-slide { animation-play-state: paused; }

@keyframes hero-crossfade {
  0% { opacity: 0; transform: scale(1.015); }
  8% { opacity: 1; }
  45% { opacity: 1; }
  54% { opacity: 0; transform: scale(1.055); }
  100% { opacity: 0; transform: scale(1.055); }
}

.feature-label {
  position: absolute;
  right: var(--pad);
  bottom: 2.8rem;
  left: var(--pad);
  z-index: 2;
  color: white;
}

.feature-label h2 {
  max-width: 100%;
  margin-bottom: .8rem;
  font-family: var(--display);
  font-size: clamp(1.95rem, 3.7vw, 4rem);
  font-weight: 300;
  letter-spacing: -.055em;
  line-height: .92;
  text-transform: uppercase;
}

.feature-label p { margin-bottom: 1.4rem; color: rgba(255,255,255,.72); font-size: .82rem; }
.feature-label .feature-date {
  margin-bottom: .55rem;
  color: white;
  font-size: .78rem;
  font-weight: 650;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.feature-label .text-link { color: white; }

.slide-dots {
  position: absolute;
  z-index: 3;
  top: 2rem;
  right: 2rem;
  display: flex;
  gap: .45rem;
}

.slide-dots span {
  width: 1.9rem;
  height: 2px;
  overflow: hidden;
  background: rgba(255,255,255,.35);
}

.slide-dots span::after {
  display: block;
  width: 100%;
  height: 100%;
  background: white;
  content: "";
  animation: slide-progress 12s infinite linear;
  transform: scaleX(0);
  transform-origin: left;
}

.slide-dots span:nth-child(2)::after { animation-delay: 6s; }

@keyframes slide-progress {
  0%, 50% { transform: scaleX(0); }
  8%, 45% { transform: scaleX(1); }
  50%, 100% { transform: scaleX(0); }
}

.home-residency {
  position: relative;
  display: grid;
  min-height: min(820px, 82vh);
  padding: clamp(4.5rem, 8vw, 8rem) var(--pad) clamp(5.5rem, 10vw, 10rem);
  align-content: space-between;
  gap: clamp(6rem, 14vw, 13rem);
  overflow: hidden;
  background: var(--paper);
  border: 1px solid var(--line);
  border-top: 0;
}

.home-residency::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: clamp(12rem, 27vw, 27rem);
  width: 1px;
  background: linear-gradient(to bottom, transparent, var(--line) 16%, var(--line) 84%, transparent);
  content: "";
}

.home-residency-meta {
  display: grid;
  grid-template-columns: minmax(180px, .4fr) minmax(0, 1fr);
  gap: 2rem;
  align-items: start;
}

.home-residency-meta .eyebrow { margin-bottom: 0; }

.home-residency-meta time {
  justify-self: end;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 650;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.home-residency-statement {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(3.5rem, 7vw, 7rem);
  align-items: end;
}

.home-residency-statement h2 {
  position: relative;
  z-index: 1;
  margin: 0;
  font-family: var(--display);
  font-size: clamp(3.5rem, 7.2vw, 7.4rem);
  font-weight: 300;
  letter-spacing: -.068em;
  line-height: .86;
  text-transform: uppercase;
}

.home-residency-statement h2 span { display: block; }
.home-residency-statement h2 span:last-child { margin-left: clamp(1.5rem, 5vw, 5.5rem); }

.home-residency-statement > p {
  position: relative;
  z-index: 1;
  width: min(31rem, 100%);
  max-width: 31rem;
  margin: 0 0 .3rem;
  justify-self: end;
  color: var(--muted);
  font-size: .94rem;
  line-height: 1.78;
}

.home-residency.is-ready [data-home-residency-item] {
  opacity: 0;
  filter: blur(5px);
  transform: translateY(1.2rem);
  transition:
    opacity 2.2s cubic-bezier(.22,.61,.36,1),
    filter 2.6s cubic-bezier(.22,.61,.36,1),
    transform 2.2s cubic-bezier(.22,.61,.36,1);
}

.home-residency.is-visible [data-home-residency-item] {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
}

.home-residency.is-visible .home-residency-statement h2 { transition-delay: .3s; }
.home-residency.is-visible .home-residency-statement > p { transition-delay: .82s; }

.section { padding: clamp(5rem, 10vw, 10rem) var(--pad); }
.section + .section { border-top: 1px solid var(--line); }

.section-heading {
  display: grid;
  grid-template-columns: minmax(180px, .4fr) minmax(0, 1fr);
  gap: 2rem;
  align-items: start;
  margin-bottom: clamp(3rem, 6vw, 6rem);
}

.section-heading h2,
.page-intro h1 {
  max-width: 13ch;
  font-family: var(--display);
  font-size: clamp(3rem, 7vw, 7.2rem);
  font-weight: 300;
  letter-spacing: -.06em;
  line-height: .88;
}

.section-heading .lead { max-width: 28ch; justify-self: end; }

.project-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: clamp(1.25rem, 3vw, 3rem);
}

.project-card { grid-column: span 7; }
.project-card:nth-child(even) { grid-column: 8 / span 5; margin-top: 8rem; }

.project-card a { display: block; text-decoration: none; }

.project-image {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: var(--paper-soft);
}

.project-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  transition: transform .7s cubic-bezier(.2,.7,.2,1);
}

.project-card a:hover img { transform: scale(1.025); }

.project-placeholder {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  background:
    linear-gradient(135deg, transparent 47.8%, rgba(17,17,15,.2) 48%, rgba(17,17,15,.2) 52%, transparent 52.2%),
    var(--paper-soft);
}

.project-placeholder span {
  display: grid;
  width: 44%;
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid var(--ink);
  border-radius: 50%;
  font-family: var(--serif);
  font-size: clamp(2rem, 5vw, 5rem);
}

.project-meta {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--ink);
}

.project-meta h3 {
  margin-bottom: .4rem;
  font-family: var(--display);
  font-size: clamp(1.7rem, 3vw, 3rem);
  font-weight: 350;
  letter-spacing: -.045em;
  line-height: .98;
}

.project-meta p, .project-meta small { margin: 0; color: var(--muted); }
.project-meta p { font-size: .8rem; }
.project-meta small { text-transform: uppercase; letter-spacing: .12em; font-size: .6rem; }

.project-archive {
  display: grid;
  gap: clamp(7rem, 13vw, 13rem);
}

.archive-project a {
  display: block;
  text-decoration: none;
}

.archive-media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: var(--paper-soft);
}

.archive-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .8s cubic-bezier(.2,.7,.2,1);
}

.archive-project:hover .archive-media img,
.archive-project a:focus-visible .archive-media img { transform: scale(1.025); }

.archive-number {
  position: absolute;
  top: 1rem;
  left: 1rem;
  display: grid;
  width: 3.2rem;
  aspect-ratio: 1;
  place-items: center;
  background: var(--paper);
  border: 1px solid var(--ink);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .12em;
}

.archive-copy {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2rem;
  align-items: end;
  padding-top: 1.25rem;
  border-top: 1px solid var(--ink);
}

.archive-copy .eyebrow { margin-bottom: .8rem; }

.archive-copy h2 {
  max-width: 16ch;
  margin-bottom: .65rem;
  font-family: var(--display);
  font-size: clamp(2.2rem, 4.6vw, 5rem);
  font-weight: 300;
  letter-spacing: -.055em;
  line-height: .92;
}

.archive-copy > div:first-child > p:last-child {
  max-width: 38rem;
  margin-bottom: 0;
  color: var(--muted);
  font-size: .84rem;
}

.archive-meta {
  display: grid;
  min-width: 14rem;
  gap: .45rem;
  padding-bottom: .2rem;
  color: var(--muted);
  font-size: .58rem;
  letter-spacing: .12em;
  text-align: right;
  text-transform: uppercase;
}

.archive-projects-duo {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  gap: clamp(2rem, 5vw, 6rem);
  align-items: start;
}

.archive-projects-duo .archive-project:nth-child(2) { margin-top: clamp(6rem, 11vw, 11rem); }
.archive-projects-duo .archive-media { aspect-ratio: 4 / 3; }
.archive-projects-duo .archive-copy { grid-template-columns: 1fr; }
.archive-projects-duo .archive-copy h2 { font-size: clamp(2rem, 3.7vw, 3.8rem); }
.archive-projects-duo .archive-meta { min-width: 0; text-align: left; }

.archive-project--future a {
  display: grid;
  grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}

.archive-project--future .archive-media {
  aspect-ratio: 1;
  border-right: 1px solid var(--line);
}

.archive-project--future .archive-copy {
  padding: clamp(2rem, 5vw, 5rem);
  border-top: 0;
}

.archive-future-visual {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background:
    linear-gradient(rgba(17,17,15,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(17,17,15,.055) 1px, transparent 1px),
    var(--paper-soft);
  background-size: 12.5% 12.5%;
}

.archive-future-visual::before {
  position: absolute;
  width: 48%;
  aspect-ratio: 1;
  border: 1px solid var(--ink);
  border-radius: 50%;
  content: "";
}

.archive-future-visual span {
  position: relative;
  z-index: 1;
  font-family: var(--display);
  font-size: clamp(4.5rem, 9vw, 9rem);
  font-weight: 300;
  letter-spacing: -.08em;
}

.archive-future-visual small {
  position: absolute;
  right: 1.5rem;
  bottom: 1.5rem;
  font-size: .56rem;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.artist-teaser {
  margin-top: clamp(9rem, 16vw, 16rem);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}

.artist-teaser a {
  display: grid;
  min-height: 620px;
  grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr);
  text-decoration: none;
}

.artist-teaser-image {
  position: relative;
  overflow: hidden;
  min-height: 620px;
  background: var(--paper-soft);
}

.artist-teaser-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
  transition: transform .9s cubic-bezier(.2,.7,.2,1);
}

.artist-teaser-copy {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(2.5rem, 6vw, 6rem);
  border-left: 1px solid var(--line);
}

.artist-teaser-copy h2 {
  margin-bottom: 1.5rem;
  font-family: var(--display);
  font-size: clamp(3rem, 6.8vw, 7rem);
  font-weight: 300;
  letter-spacing: -.07em;
  line-height: .82;
  text-transform: uppercase;
}

.artist-teaser-copy > p:not(.eyebrow) {
  max-width: 32rem;
  margin-bottom: 2.5rem;
  font-family: var(--serif);
  font-size: 1rem;
  line-height: 1.58;
}

.artist-teaser a:hover .artist-teaser-image img,
.artist-teaser a:focus-visible .artist-teaser-image img { transform: scale(1.018); }

.artist-name-link,
.inline-profile-link {
  color: inherit;
  text-decoration-color: currentColor;
  text-decoration-thickness: 1px;
  text-underline-offset: .22em;
}

.artist-name-link { text-decoration: none; }
.artist-name-link:hover,
.inline-profile-link:hover { text-decoration: underline; }

.manifesto {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 580px;
  border: 1px solid var(--line);
}

.manifesto-copy {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: var(--pad);
}

.manifesto-copy blockquote {
  margin: 0;
  font-family: var(--serif);
  font-size: var(--statement-size);
  letter-spacing: -.025em;
  line-height: 1.28;
}

.manifesto-art {
  position: relative;
  overflow: hidden;
  min-height: 420px;
  margin: 0;
  background: var(--ink);
}

.manifesto-art img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.manifesto-art::after {
  position: absolute;
  inset: 55% 0 0;
  background: linear-gradient(transparent, rgba(0,0,0,.48));
  content: "";
}

.manifesto-art figcaption {
  position: absolute;
  z-index: 1;
  right: 2rem;
  bottom: 1.7rem;
  left: 2rem;
  color: var(--paper);
  font-size: .64rem;
  font-style: normal;
  font-weight: 650;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.page-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  min-height: 55vh;
  align-items: end;
  padding: clamp(5rem, 12vw, 11rem) var(--pad) clamp(3rem, 6vw, 6rem);
  border-right: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.page-intro .lead { align-self: end; max-width: 28ch; }

.content-grid {
  display: grid;
  grid-template-columns: minmax(180px, .38fr) minmax(0, 1fr);
  gap: clamp(2rem, 7vw, 8rem);
}

.content-grid aside { color: var(--muted); font-size: .72rem; }
.content-grid article { max-width: 850px; }
.content-grid article p { font-family: var(--serif); font-size: clamp(.98rem, 1.25vw, 1.2rem); line-height: 1.52; }

.profile-portrait {
  position: relative;
  display: grid;
  overflow: hidden;
  max-width: 980px;
  margin: 0 auto clamp(5rem, 10vw, 10rem);
  grid-template-columns: minmax(0, 3fr) minmax(130px, 1fr);
  background: var(--ink);
  border: 1px solid var(--ink);
}

.profile-image-main,
.profile-image-detail {
  position: relative;
  overflow: hidden;
  min-height: 0;
}

.profile-image-main { aspect-ratio: 1; }

.profile-image-main img,
.profile-image-detail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.profile-image-main img { object-position: center; }

.profile-image-detail {
  border-left: 1px solid rgba(241,239,233,.55);
}

.profile-image-detail img {
  object-position: 58% 42%;
  filter: grayscale(1) contrast(1.08);
  opacity: .72;
  transform: scale(2.15);
}

.profile-image-detail::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 45%, rgba(17,17,15,.7));
  content: "";
}

.profile-caption {
  position: absolute;
  z-index: 2;
  bottom: clamp(1rem, 3vw, 2.5rem);
  left: clamp(1rem, 3vw, 2.5rem);
  display: flex;
  min-width: min(330px, calc(100% - 2rem));
  flex-direction: column;
  padding: 1rem 1.2rem;
  background: var(--paper);
  color: var(--ink);
}

.profile-caption span {
  font-family: var(--display);
  font-size: clamp(1.15rem, 2vw, 1.8rem);
  font-weight: 350;
  letter-spacing: -.03em;
  text-transform: uppercase;
}

.profile-caption small {
  margin-top: .3rem;
  color: var(--muted);
  font-size: .6rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.profile-copy {
  padding-top: clamp(1rem, 3vw, 3rem);
  border-top: 1px solid var(--line);
}

.profile-copy article p + p { margin-top: clamp(1.5rem, 3vw, 2.4rem); }

.profile-voices {
  margin-top: clamp(6rem, 12vw, 12rem);
  padding: clamp(3rem, 6vw, 6rem) 0;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
}

.profile-voices > div {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(2rem, 4vw, 5rem);
  align-items: start;
}

.profile-voices blockquote {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(1.08rem, 1.65vw, 1.6rem);
  font-weight: 350;
  letter-spacing: -.03em;
  line-height: 1.36;
}

.profile-voices blockquote:nth-child(1) { grid-column: 1 / span 4; }
.profile-voices blockquote:nth-child(2) { grid-column: 5 / span 5; margin-top: clamp(3rem, 7vw, 7rem); }
.profile-voices blockquote:nth-child(3) { grid-column: 10 / span 3; margin-top: clamp(8rem, 14vw, 14rem); }

.curatorial-atlas {
  margin-top: clamp(7rem, 14vw, 14rem);
  padding-top: clamp(3rem, 6vw, 6rem);
  border-top: 1px solid var(--ink);
}

.atlas-intro {
  display: grid;
  grid-template-columns: minmax(180px, .4fr) minmax(0, 1fr);
  gap: 1.4rem 2rem;
  align-items: end;
  margin-bottom: clamp(3rem, 6vw, 6rem);
}

.atlas-intro .eyebrow { align-self: start; }

.atlas-intro h2 {
  max-width: 24ch;
  margin-bottom: 0;
  font-family: var(--display);
  font-size: var(--statement-size);
  font-weight: 350;
  letter-spacing: -.035em;
  line-height: 1.28;
}

.atlas-intro > p:last-child {
  grid-column: 2;
  max-width: 36rem;
  margin: 0;
  color: var(--muted);
  font-size: .82rem;
}

.atlas-shell {
  display: grid;
  overflow: hidden;
  min-height: 620px;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, .75fr);
  background: var(--paper);
  color: var(--ink);
  border: 1px solid var(--ink);
}

.atlas-map {
  position: relative;
  overflow: hidden;
  min-height: 620px;
  border-right: 1px solid var(--line);
  background:
    linear-gradient(rgba(17,17,15,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(17,17,15,.055) 1px, transparent 1px),
    var(--paper);
  background-size: 10% 10%;
}

.atlas-coordinate {
  position: absolute;
  z-index: 2;
  color: var(--muted);
  font-size: .55rem;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.atlas-coordinate--top { top: 1.5rem; left: 1.5rem; }
.atlas-coordinate--bottom { right: 1.5rem; bottom: 1.5rem; }

.atlas-route {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.atlas-route path {
  fill: none;
  stroke: rgba(17,17,15,.5);
  stroke-width: 1.5;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  vector-effect: non-scaling-stroke;
  animation: atlas-draw 1.8s ease forwards;
}

@keyframes atlas-draw { to { stroke-dashoffset: 0; } }

.atlas-point {
  position: absolute;
  z-index: 3;
  top: var(--y);
  left: var(--x);
  width: 1rem;
  height: 1rem;
  padding: 0;
  background: transparent;
  border: 0;
  color: var(--ink);
  cursor: pointer;
  transform: translate(-50%, -50%);
}

.atlas-dot {
  display: block;
  width: 12px;
  height: 12px;
  margin: 2px;
  background: var(--paper);
  border: 1px solid var(--ink);
  border-radius: 50%;
  box-shadow: 0 0 0 5px rgba(17,17,15,.07);
  transition: background .2s ease, transform .2s ease;
}

.atlas-place {
  position: absolute;
  top: 1.3rem;
  left: 50%;
  font-size: .57rem;
  font-weight: 650;
  letter-spacing: .12em;
  text-transform: uppercase;
  white-space: nowrap;
  transform: translateX(-50%);
}

.atlas-point:hover .atlas-dot,
.atlas-point.is-active .atlas-dot {
  background: var(--ink);
  transform: scale(1.35);
}

.atlas-point:focus-visible {
  outline: 1px solid var(--ink);
  outline-offset: .6rem;
}

.atlas-panels {
  min-width: 0;
  min-height: 620px;
  padding: clamp(1.2rem, 2vw, 2rem);
  background: var(--paper-soft);
}

.atlas-card {
  display: flex;
  height: 100%;
  flex-direction: column;
  animation: atlas-card-in .3s ease both;
}

.atlas-card[hidden] { display: none; }

@keyframes atlas-card-in {
  from { opacity: 0; transform: translateY(.65rem); }
  to { opacity: 1; transform: translateY(0); }
}

.atlas-card-visual {
  display: grid;
  overflow: hidden;
  min-height: 270px;
  flex: 1;
  place-items: center;
  background: var(--paper-soft);
  color: var(--ink);
}

.atlas-card-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.atlas-card-visual--cover { padding: clamp(1rem, 2vw, 1.8rem); }

.atlas-card-visual--cover img {
  object-fit: contain;
  filter: drop-shadow(0 1rem 1.5rem rgba(17,17,15,.18));
}

.atlas-card-visual--graphic {
  position: relative;
  background:
    linear-gradient(135deg, transparent 49.8%, rgba(17,17,15,.28) 50%, transparent 50.2%),
    var(--paper);
}

.atlas-card-visual--graphic::before,
.atlas-card-visual--graphic::after {
  position: absolute;
  width: 48%;
  aspect-ratio: 1;
  border: 1px solid rgba(17,17,15,.4);
  border-radius: 50%;
  content: "";
}

.atlas-card-visual--graphic::after { width: 24%; }

.atlas-card-visual--graphic span {
  z-index: 1;
  font-family: var(--display);
  font-size: clamp(4rem, 8vw, 8rem);
  font-weight: 300;
  letter-spacing: -.08em;
}

.atlas-card-copy { padding: 1.4rem 0 .3rem; }

.atlas-card-copy time,
.atlas-card-copy small {
  color: var(--muted);
  font-size: .56rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.atlas-card-copy h3 {
  margin: .45rem 0 .7rem;
  font-family: var(--display);
  font-size: clamp(1.8rem, 3vw, 3.2rem);
  font-weight: 300;
  letter-spacing: -.05em;
  line-height: .95;
}

.atlas-card-copy p {
  max-width: 34rem;
  margin-bottom: 1.1rem;
  color: var(--muted);
  font-size: .8rem;
  line-height: 1.55;
}

.atlas-card-copy .text-link { color: var(--ink); }

.profile-constellation {
  position: relative;
  overflow: hidden;
  min-height: clamp(560px, 58vw, 760px);
  background:
    radial-gradient(circle at 51% 48%, rgba(17,17,15,.035), transparent 31%),
    var(--paper-soft);
  border: 1px solid var(--ink);
  isolation: isolate;
}

.profile-constellation::before {
  position: absolute;
  inset: 11% 8%;
  z-index: -1;
  background: radial-gradient(circle, rgba(241,239,233,.85), transparent 64%);
  content: "";
}

.profile-constellation-code {
  position: absolute;
  color: var(--muted);
  font-size: .55rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.profile-constellation-code--top { top: 1.5rem; left: 1.5rem; }
.profile-constellation-code--bottom { right: 1.5rem; bottom: 1.5rem; }

.profile-constellation-hint {
  position: absolute;
  bottom: 1.5rem;
  left: 1.5rem;
  max-width: 20ch;
  margin: 0;
  color: var(--muted);
  font-family: var(--serif);
  font-size: clamp(.95rem, 1.4vw, 1.2rem);
  font-style: italic;
  line-height: 1.35;
}

.profile-constellation-point {
  position: absolute;
  z-index: 2;
  top: var(--y);
  left: var(--x);
  display: block;
  width: 3.35rem;
  height: 3.35rem;
  color: var(--ink);
  text-decoration: none;
  transform: translate(-50%, -50%);
}

.profile-constellation-dot {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  display: block;
  width: 1.1rem;
  height: 1.1rem;
  background: var(--ink);
  border: 4px solid var(--paper-soft);
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--ink);
  transform: translate(-50%, -50%);
  transition: transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease;
}

.profile-constellation-dot::before {
  position: absolute;
  inset: -.7rem;
  border: 1px solid var(--ink);
  border-radius: 50%;
  content: "";
  opacity: .18;
  transition: opacity .45s ease, transform .55s cubic-bezier(.2,.7,.2,1);
}

.profile-constellation-orbit {
  position: absolute;
  z-index: 1;
  inset: 0;
  border: 1px solid rgba(17,17,15,.48);
  border-radius: 50%;
  animation: contact-orbit 9s linear infinite;
}

.profile-constellation-orbit i {
  position: absolute;
  top: 50%;
  right: -.3rem;
  width: .6rem;
  height: .6rem;
  background: var(--ink);
  border: 2px solid var(--paper-soft);
  border-radius: 50%;
  transform: translateY(-50%);
}

.profile-constellation-card {
  position: absolute;
  bottom: calc(100% + .85rem);
  left: 50%;
  display: grid;
  visibility: hidden;
  width: min(22rem, 82vw);
  gap: .62rem;
  padding: 1.35rem 1.45rem 1.45rem;
  background: rgba(241,239,233,.96);
  border: 1px solid var(--ink);
  box-shadow: 0 1.2rem 2.5rem rgba(17,17,15,.12);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 1rem) scale(.96);
  transition: opacity .55s ease, transform .72s cubic-bezier(.2,.7,.2,1), visibility .55s;
}

.profile-constellation-card strong {
  font-family: var(--display);
  font-size: clamp(1.35rem, 2.2vw, 1.8rem);
  font-weight: 450;
  letter-spacing: -.03em;
  line-height: 1.05;
  text-transform: uppercase;
}

.profile-constellation-card small {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 650;
  letter-spacing: .1em;
}

.profile-constellation-card em {
  padding-top: .65rem;
  border-top: 1px solid var(--line);
  font-size: .82rem;
  font-style: normal;
}

.profile-constellation-card b {
  margin-top: .2rem;
  font-size: .64rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.profile-constellation-point--left .profile-constellation-card {
  left: .45rem;
  transform: translateY(1rem) scale(.96);
}

.profile-constellation-point--right .profile-constellation-card {
  right: .45rem;
  left: auto;
  transform: translateY(1rem) scale(.96);
}

.profile-constellation-point--below .profile-constellation-card {
  top: calc(100% + .85rem);
  bottom: auto;
}

.profile-constellation-point:hover,
.profile-constellation-point:focus-visible { z-index: 5; }

.profile-constellation-point:hover .profile-constellation-dot,
.profile-constellation-point:focus-visible .profile-constellation-dot,
.profile-constellation-point.is-active .profile-constellation-dot {
  box-shadow: 0 0 0 1px var(--ink), 0 0 0 .65rem rgba(17,17,15,.06);
  transform: translate(-50%, -50%) scale(1.28);
}

.profile-constellation-point:hover .profile-constellation-dot::before,
.profile-constellation-point:focus-visible .profile-constellation-dot::before,
.profile-constellation-point.is-active .profile-constellation-dot::before {
  opacity: 0;
  transform: scale(2.2);
}

.profile-constellation-point:hover .profile-constellation-card,
.profile-constellation-point:focus-visible .profile-constellation-card,
.profile-constellation-point.is-active .profile-constellation-card {
  visibility: visible;
  opacity: 1;
  transform: translate(-50%, 0) scale(1);
}

.profile-constellation-point--left:hover .profile-constellation-card,
.profile-constellation-point--left:focus-visible .profile-constellation-card,
.profile-constellation-point--left.is-active .profile-constellation-card,
.profile-constellation-point--right:hover .profile-constellation-card,
.profile-constellation-point--right:focus-visible .profile-constellation-card,
.profile-constellation-point--right.is-active .profile-constellation-card {
  transform: translateY(0) scale(1);
}

.profile-constellation-point:hover .profile-constellation-orbit,
.profile-constellation-point:focus-visible .profile-constellation-orbit,
.profile-constellation-point.is-active .profile-constellation-orbit {
  animation-play-state: paused;
}

.profile-constellation-point:focus-visible { outline: none; }

.profile-manifesto {
  margin-top: clamp(7rem, 14vw, 14rem);
  padding: clamp(3rem, 6vw, 6rem) 0 clamp(1rem, 3vw, 3rem);
  border-top: 1px solid var(--ink);
}

.profile-manifesto h2 {
  max-width: 32ch;
  margin: 0;
  font-family: var(--display);
  font-size: var(--statement-size);
  font-weight: 350;
  letter-spacing: -.035em;
  line-height: 1.28;
}

.placeholder-note {
  margin-top: 3rem;
  padding: 1rem 0;
  color: var(--muted);
  border-top: 1px solid var(--line);
  font-size: .75rem;
}

.index-list { border-top: 1px solid var(--ink); }
.index-item {
  display: grid;
  grid-template-columns: 7rem 1fr auto;
  gap: 2rem;
  align-items: baseline;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
}
.index-item:hover h2 { transform: translateX(.5rem); }
.index-item time, .index-item small { color: var(--muted); font-size: .67rem; text-transform: uppercase; letter-spacing: .12em; }
.index-item h2 { margin: 0; font-family: var(--display); font-size: clamp(1.8rem, 4vw, 4.2rem); font-weight: 350; letter-spacing: -.05em; transition: transform .2s ease; }

/* Monia Marchionni — profilo artista */
.artist-profile {
  max-width: var(--max);
  margin: 0 auto;
  border-right: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.artist-hero {
  display: grid;
  min-height: calc(100vh - 84px);
  grid-template-columns: minmax(330px, .78fr) minmax(0, 1.22fr);
}

.artist-hero-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(3rem, 7vw, 7rem) var(--pad) clamp(2.5rem, 4vw, 4rem);
  border-right: 1px solid var(--line);
}

.artist-hero-copy h1 {
  margin: 0 0 2.5rem;
  font-family: var(--display);
  font-size: clamp(4rem, 7.5vw, 8rem);
  font-weight: 300;
  letter-spacing: -.075em;
  line-height: .8;
  text-transform: uppercase;
}

.artist-hero-copy h1 span { display: block; }
.artist-hero-copy h1 span:last-child {
  margin-top: .25em;
  font-size: .47em;
  letter-spacing: -.065em;
}

.artist-hero-copy .lead {
  max-width: 28rem;
  font-family: var(--serif);
  font-size: clamp(1rem, 1.4vw, 1.3rem);
  line-height: 1.45;
}

.artist-portrait {
  position: relative;
  width: min(52%, 390px);
  min-height: 0;
  aspect-ratio: 2 / 3;
  align-self: center;
  justify-self: center;
  margin: clamp(3rem, 6vw, 6rem) auto;
  overflow: hidden;
  background: #e6e5e2;
  box-shadow: 0 24px 60px rgba(17, 17, 15, .08);
}

.artist-portrait > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  filter: contrast(1.02);
}

.artist-portrait::after {
  position: absolute;
  inset: 0;
  border: clamp(1rem, 2.5vw, 2.5rem) solid rgba(241,239,233,.22);
  content: "";
  pointer-events: none;
}

.artist-portrait-words {
  position: absolute;
  z-index: 2;
  top: clamp(1rem, 3vw, 3rem);
  right: clamp(1rem, 3vw, 3rem);
  display: grid;
  gap: .35rem;
  justify-items: end;
}

.artist-portrait-words span {
  width: fit-content;
  padding: .55rem .75rem;
  color: var(--ink);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  background: rgba(241,239,233,.9);
  backdrop-filter: blur(10px);
}

.artist-portrait figcaption {
  position: absolute;
  z-index: 2;
  right: clamp(1rem, 3vw, 3rem);
  bottom: clamp(1rem, 3vw, 3rem);
  padding: .7rem .85rem;
  color: var(--ink);
  font-size: .68rem;
  font-weight: 650;
  letter-spacing: .1em;
  text-transform: uppercase;
  background: rgba(241,239,233,.9);
  backdrop-filter: blur(10px);
}

.artist-biography {
  display: grid;
  grid-template-columns: minmax(180px, .35fr) minmax(0, 1fr);
  gap: clamp(3rem, 8vw, 9rem);
  padding: clamp(7rem, 14vw, 14rem) var(--pad);
  scroll-margin-top: 7rem;
}

.artist-biography aside {
  color: var(--muted);
  font-size: .74rem;
  line-height: 1.7;
}

.artist-biography > div {
  max-width: 820px;
}

.artist-biography > div p {
  margin-bottom: 0;
  font-family: var(--serif);
  font-size: clamp(.98rem, 1.18vw, 1.16rem);
  line-height: 1.64;
}

.artist-biography > div p + p { margin-top: clamp(1.7rem, 3vw, 2.6rem); }

.artist-biography > div p:first-child::first-letter {
  float: left;
  margin: .06em .12em 0 0;
  font-family: var(--display);
  font-size: 4.2rem;
  font-weight: 300;
  line-height: .78;
}

.artist-practice {
  padding: clamp(4rem, 8vw, 8rem) var(--pad);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}

.artist-practice > header,
.artist-timeline > header,
.artist-projects > header {
  display: grid;
  grid-template-columns: minmax(180px, .35fr) minmax(0, 1fr);
  gap: 2rem;
  align-items: start;
  margin-bottom: clamp(4rem, 8vw, 8rem);
}

.artist-practice h2,
.artist-timeline h2,
.artist-recognition h2,
.artist-projects > header h2 {
  max-width: 26ch;
  margin: 0;
  font-family: var(--display);
  font-size: var(--statement-size);
  font-weight: 350;
  letter-spacing: -.035em;
  line-height: 1.28;
}

.artist-practice ol {
  display: grid;
  margin: 0;
  padding: 0;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--ink);
  list-style: none;
}

.artist-practice li {
  min-height: 270px;
  padding: 1.25rem;
  border-right: 1px solid var(--line);
}

.artist-practice li:last-child { border-right: 0; }

.artist-practice li > span {
  display: block;
  margin-bottom: clamp(3rem, 6vw, 6rem);
  color: var(--muted);
  font-size: .68rem;
  letter-spacing: .12em;
}

.artist-practice li strong {
  display: block;
  margin-bottom: .75rem;
  font-family: var(--display);
  font-size: clamp(1rem, 1.4vw, 1.35rem);
  font-weight: 400;
  letter-spacing: -.025em;
}

.artist-practice li p {
  max-width: 24rem;
  margin: 0;
  color: var(--muted);
  font-size: .8rem;
  line-height: 1.55;
}

.artist-timeline {
  padding: clamp(8rem, 15vw, 15rem) var(--pad);
}

.artist-timeline-list { border-top: 1px solid var(--ink); }

.artist-timeline-list article {
  display: grid;
  grid-template-columns: minmax(100px, .25fr) minmax(0, 1fr);
  gap: 2rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--line);
}

.artist-timeline-list time {
  color: var(--muted);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .12em;
}

.artist-timeline-list article > div {
  display: grid;
  grid-template-columns: minmax(220px, .52fr) minmax(0, 1fr);
  gap: 2rem;
}

.artist-timeline-list h3 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(1.2rem, 2vw, 1.9rem);
  font-weight: 350;
  letter-spacing: -.035em;
  line-height: 1.1;
}

.artist-timeline-list p {
  max-width: 32rem;
  margin: 0;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.58;
}

.artist-recognition {
  display: grid;
  grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}

.artist-recognition-intro {
  padding: clamp(3rem, 6vw, 6rem) var(--pad);
  border-right: 1px solid var(--line);
}

.artist-awards { padding: clamp(2rem, 4vw, 4rem); }

.artist-awards article {
  display: grid;
  grid-template-columns: 5rem minmax(0, 1fr);
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
}

.artist-awards article:last-child { border-bottom: 0; }
.artist-awards time {
  color: var(--muted);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .1em;
}

.artist-awards p {
  margin: 0;
  color: var(--muted);
  font-size: .8rem;
  line-height: 1.5;
}

.artist-awards strong { color: var(--ink); font-weight: 600; }

.artist-award-moment {
  display: grid;
  min-height: min(820px, 84vh);
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1.38fr) minmax(280px, .62fr);
  margin: 0;
  border-top: 1px solid var(--ink);
  background: var(--paper-soft);
}

.artist-award-moment-visual {
  position: relative;
  overflow: hidden;
  min-height: 720px;
  background: #d7d5cf;
}

.artist-award-moment-main {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 31%;
  filter: contrast(1.04);
}

.artist-award-moment-detail {
  position: absolute;
  right: clamp(1.25rem, 3vw, 3rem);
  bottom: clamp(1.25rem, 3vw, 3rem);
  overflow: hidden;
  width: clamp(120px, 18vw, 230px);
  aspect-ratio: 3 / 4;
  border: 1px solid rgba(241, 239, 233, .72);
  background: var(--ink);
  box-shadow: 0 16px 40px rgba(17, 17, 15, .22);
}

.artist-award-moment-detail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 49%;
  transform: scale(2.7);
  transform-origin: 50% 49%;
}

.artist-award-moment-year {
  position: absolute;
  top: clamp(1rem, 2.5vw, 2.5rem);
  left: clamp(1rem, 2.5vw, 2.5rem);
  color: rgba(241, 239, 233, .93);
  font-family: var(--display);
  font-size: clamp(4.25rem, 9vw, 9rem);
  font-weight: 300;
  letter-spacing: -.08em;
  line-height: .8;
  text-shadow: 0 1px 20px rgba(17, 17, 15, .18);
}

.artist-award-moment figcaption {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(2.25rem, 5vw, 5rem) var(--pad);
  border-left: 1px solid var(--ink);
}

.artist-award-moment figcaption .eyebrow { margin-bottom: auto; }

.artist-award-moment h3 {
  margin: 5rem 0 1.4rem;
  font-family: var(--display);
  font-size: clamp(3.2rem, 6vw, 6.5rem);
  font-weight: 300;
  letter-spacing: -.07em;
  line-height: .78;
  text-transform: uppercase;
}

.artist-award-moment figcaption > p:last-child {
  max-width: 30rem;
  margin: 0;
  color: var(--muted);
  font-family: var(--serif);
  font-size: .86rem;
  line-height: 1.72;
}

.artist-projects {
  padding: clamp(8rem, 15vw, 15rem) var(--pad);
}

.artist-projects > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 3rem);
}

.artist-projects a { text-decoration: none; }
.artist-projects figure {
  overflow: hidden;
  margin: 0 0 1rem;
  aspect-ratio: 4 / 5;
  background: var(--paper-soft);
}

.artist-projects img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .8s cubic-bezier(.2,.7,.2,1);
}

.artist-projects a:hover img,
.artist-projects a:focus-visible img { transform: scale(1.025); }

.artist-projects a > span {
  color: var(--muted);
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.artist-projects h3 {
  margin: .55rem 0 0;
  font-family: var(--display);
  font-size: clamp(1.35rem, 2.3vw, 2.4rem);
  font-weight: 350;
  letter-spacing: -.04em;
  line-height: 1;
}

.artist-contact {
  display: grid;
  grid-template-columns: minmax(160px, .3fr) minmax(0, .7fr) minmax(300px, 1fr);
  gap: 2rem;
  align-items: start;
  padding: clamp(4rem, 8vw, 8rem) var(--pad);
  border-top: 1px solid var(--ink);
}

.artist-contact h2 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(1.7rem, 3vw, 3.2rem);
  font-weight: 350;
  letter-spacing: -.045em;
  line-height: .95;
}

.artist-contact > div { display: grid; border-top: 1px solid var(--ink); }
.artist-contact a {
  padding: .9rem 0;
  border-bottom: 1px solid var(--line);
  font-size: .76rem;
  letter-spacing: .06em;
  overflow-wrap: anywhere;
  text-decoration: none;
}

.artist-contact a:hover { text-decoration: underline; text-underline-offset: .25rem; }

/* Mostre — archivio selezionato */
.exhibitions-archive {
  display: grid;
  gap: clamp(8rem, 15vw, 15rem);
}

.exhibition-entry a {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
  min-height: 640px;
  color: var(--ink);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
  text-decoration: none;
}

.exhibition-entry--archive a { grid-template-columns: minmax(280px, .78fr) minmax(0, 1.22fr); }

.exhibition-image {
  position: relative;
  min-height: 520px;
  overflow: hidden;
  background: var(--paper-soft);
}

.exhibition-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .9s cubic-bezier(.2,.7,.2,1);
}

.exhibition-entry--current .exhibition-image img { object-position: center; }
.exhibition-entry--archive .exhibition-image img { object-position: top center; }
.exhibition-entry:hover .exhibition-image img,
.exhibition-entry a:focus-visible .exhibition-image img { transform: scale(1.02); }

.exhibition-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(2rem, 5vw, 5rem);
  border-left: 1px solid var(--line);
}

.exhibition-entry--archive .exhibition-copy {
  border-right: 1px solid var(--line);
  border-left: 0;
}

.exhibition-copy h2 {
  margin-bottom: 1.2rem;
  font-family: var(--display);
  font-size: clamp(2.5rem, 5vw, 5.4rem);
  font-weight: 300;
  letter-spacing: -.065em;
  line-height: .88;
  text-transform: uppercase;
}

.exhibition-copy > p:not(.eyebrow) {
  max-width: 28rem;
  margin-bottom: 2rem;
  color: var(--muted);
  font-size: .88rem;
}

.exhibition-copy dl {
  margin: auto 0 2rem;
  border-top: 1px solid var(--ink);
}

.exhibition-copy dl div {
  display: grid;
  grid-template-columns: 5rem 1fr;
  gap: 1rem;
  padding: .75rem 0;
  border-bottom: 1px solid var(--line);
}

.exhibition-copy dt,
.exhibition-copy dd {
  margin: 0;
  font-size: .7rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.exhibition-copy dt { color: var(--muted); }
.exhibition-copy dd { text-align: right; }

.exhibitions-related {
  display: grid;
  max-width: 760px;
  margin: clamp(8rem, 15vw, 15rem) 0 0 auto;
  grid-template-columns: minmax(140px, .35fr) minmax(0, 1fr);
  gap: 1rem 2rem;
  padding-top: 2rem;
  border-top: 1px solid var(--ink);
}

.exhibitions-related > p:not(.eyebrow) {
  max-width: 34rem;
  margin: 0;
  font-family: var(--serif);
  font-size: 1rem;
  line-height: 1.55;
}

.exhibitions-related .text-link { grid-column: 2; justify-self: start; }

/* Testi — catalogo digitale 24 × 22 */
.writings-index {
  display: grid;
  margin-bottom: clamp(6rem, 11vw, 11rem);
  grid-template-columns: minmax(150px, .34fr) minmax(0, 1fr);
  border-top: 1px solid var(--ink);
}

.writings-index > .eyebrow { padding-top: 1rem; }

.writings-index a {
  display: grid;
  grid-column: 2;
  grid-template-columns: 3rem minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: baseline;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
}

.writings-index a span,
.writings-index a small {
  color: var(--muted);
  font-size: .7rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.writings-index a strong {
  font-family: var(--display);
  font-size: clamp(1.25rem, 2vw, 2rem);
  font-weight: 350;
  letter-spacing: -.03em;
}

.writings-index a small::after { color: var(--ink); content: " ↓"; }

.writings-index a:hover strong { transform: translateX(.35rem); }
.writings-index a strong { transition: transform .2s ease; }

.catalog-object {
  display: grid;
  grid-template-columns: minmax(220px, .42fr) minmax(0, 1fr);
  gap: clamp(3rem, 7vw, 8rem);
  align-items: start;
  scroll-margin-top: 7.5rem;
}

.catalog-object-meta {
  position: sticky;
  top: 132px;
}

.catalog-object-meta h2 {
  margin-bottom: 1.25rem;
  font-family: var(--display);
  font-size: clamp(2rem, 2.9vw, 3.1rem);
  font-weight: 300;
  letter-spacing: -.06em;
  line-height: .88;
  text-transform: uppercase;
}

.catalog-byline {
  max-width: 20rem;
  margin-bottom: 2rem;
  font-family: var(--serif);
  font-size: 1rem;
  line-height: 1.45;
}

.catalog-object-meta dl {
  margin: 0 0 2rem;
  border-top: 1px solid var(--ink);
}

.catalog-object-meta dl div {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1rem;
  padding: .8rem 0;
  border-bottom: 1px solid var(--line);
}

.catalog-object-meta dt,
.catalog-object-meta dd {
  margin: 0;
  font-size: .64rem;
  letter-spacing: .09em;
  line-height: 1.4;
  text-transform: uppercase;
}

.catalog-object-meta dt { color: var(--muted); }
.catalog-object-meta dd { text-align: right; }

.catalog-request {
  margin-top: 1.35rem;
}

.catalog-reader {
  width: 100%;
  max-width: 880px;
  min-width: 0;
  justify-self: end;
  outline: none;
}

.catalog-reader:focus-visible .catalog-page-stack {
  outline: 1px solid var(--ink);
  outline-offset: .5rem;
}

.catalog-page-stack {
  position: relative;
  z-index: 0;
  width: 100%;
  aspect-ratio: 24 / 22;
  perspective: 1600px;
}

.catalog-page-stack::before,
.catalog-page-stack::after {
  position: absolute;
  z-index: -1;
  border: 1px solid rgba(17,17,15,.16);
  background: #ddd7ca;
  content: "";
}

.catalog-page-stack::before { inset: 1.4% -1.2% -1.4% 1.6%; }
.catalog-page-stack::after { inset: .7% -.6% -.7% .8%; background: #e9e3d7; }

.catalog-page {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border: 1px solid rgba(17,17,15,.28);
  background: #f6f1e7;
  box-shadow: 0 2rem 4rem rgba(17,17,15,.16);
  transform-origin: left center;
}

.catalog-page[hidden] { display: none; }

.catalog-page.is-active {
  animation: catalog-page-forward .46s cubic-bezier(.2,.72,.2,1) both;
}

.catalog-reader[data-direction="backward"] .catalog-page.is-active {
  animation-name: catalog-page-backward;
  transform-origin: right center;
}

@keyframes catalog-page-forward {
  from { opacity: .2; transform: rotateY(-8deg) translateX(1.3%); }
  to { opacity: 1; transform: rotateY(0) translateX(0); }
}

@keyframes catalog-page-backward {
  from { opacity: .2; transform: rotateY(8deg) translateX(-1.3%); }
  to { opacity: 1; transform: rotateY(0) translateX(0); }
}

.catalog-page--cover {
  color: #f6f1e7;
  background: #11110f;
}

.catalog-page--cover > img,
.catalog-cover-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.catalog-page--cover > img {
  object-fit: cover;
  object-position: center 45%;
  filter: saturate(.72) contrast(1.05);
}

.catalog-cover-shade {
  background: linear-gradient(115deg, rgba(17,17,15,.92) 0%, rgba(17,17,15,.65) 42%, rgba(17,17,15,.08) 76%);
}

.catalog-cover-copy {
  position: absolute;
  z-index: 1;
  top: clamp(1.4rem, 4vw, 4rem);
  bottom: clamp(1.4rem, 4vw, 4rem);
  left: clamp(1.4rem, 4vw, 4rem);
  display: flex;
  max-width: 62%;
  flex-direction: column;
  justify-content: space-between;
}

.catalog-cover-copy > span,
.catalog-cover-size {
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.catalog-cover-copy h2 {
  margin: auto 0;
  font-family: var(--display);
  font-size: clamp(2.35rem, 5vw, 5.2rem);
  font-weight: 300;
  letter-spacing: -.075em;
  line-height: .8;
  text-transform: uppercase;
}

.catalog-cover-copy p {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1rem, 1.7vw, 1.5rem);
}

.catalog-cover-size {
  position: absolute;
  z-index: 1;
  right: clamp(1.4rem, 4vw, 4rem);
  bottom: clamp(1.4rem, 4vw, 4rem);
  writing-mode: vertical-rl;
}

.catalog-page--text {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  padding: clamp(1.25rem, 3.2vw, 3.2rem) clamp(1.4rem, 4.2vw, 4.5rem);
}

.catalog-page-header,
.catalog-page-footer {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  color: var(--muted);
  font-size: .55rem;
  font-weight: 650;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.catalog-page-header { padding-bottom: .8rem; border-bottom: 1px solid var(--line); }
.catalog-page-footer { padding-top: .8rem; border-top: 1px solid var(--line); }

.catalog-page-scroll {
  overflow-y: auto;
  padding: clamp(1.2rem, 2.5vw, 2.5rem) max(.3rem, 1vw) clamp(1rem, 2vw, 2rem) 0;
  overscroll-behavior: contain;
  scrollbar-color: var(--ink) transparent;
  scrollbar-width: thin;
}

.catalog-page-scroll p {
  max-width: 66ch;
  margin: 0 0 1.05rem;
  font-family: var(--serif);
  font-size: clamp(.94rem, 1.18vw, 1.08rem);
  line-height: 1.5;
}

.catalog-page-scroll p:last-child { margin-bottom: 0; }
.catalog-page-scroll strong { font-weight: 700; }

.catalog-page--colophon {
  display: grid;
  grid-template-rows: auto 1fr auto;
  padding: clamp(1.5rem, 4.2vw, 4.5rem);
  background: var(--ink);
  color: var(--paper);
}

.catalog-colophon-mark {
  width: clamp(58px, 9vw, 92px);
  aspect-ratio: 1;
  overflow: hidden;
}

.catalog-colophon-mark img { width: 100%; height: 100%; object-fit: cover; }

.catalog-page--colophon > div:nth-child(2) {
  align-self: center;
}

.catalog-page--colophon p {
  margin-bottom: .75rem;
  color: rgba(241,239,233,.62);
  font-size: .62rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.catalog-page--colophon h2 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(2rem, 4.8vw, 4.8rem);
  font-weight: 300;
  letter-spacing: -.065em;
  line-height: .88;
  text-transform: uppercase;
}

.catalog-page--colophon footer {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-top: .8rem;
  border-top: 1px solid rgba(241,239,233,.3);
  color: rgba(241,239,233,.62);
  font-size: .55rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.catalog-toolbar {
  display: grid;
  grid-template-columns: auto minmax(110px, 1fr) auto;
  gap: clamp(.7rem, 2vw, 1.5rem);
  align-items: center;
  margin-top: 2rem;
}

.catalog-control {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: .7rem;
  padding: .75rem 1rem;
  border: 1px solid var(--ink);
  background: var(--ink);
  color: var(--paper);
  cursor: pointer;
  font: inherit;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
  transition: background .2s ease, color .2s ease, opacity .2s ease;
}

.catalog-control:hover,
.catalog-control:focus-visible {
  background: var(--paper);
  color: var(--ink);
}

.catalog-control:disabled {
  cursor: default;
  opacity: .24;
}

.catalog-position {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: .55rem;
  align-items: center;
}

.catalog-status {
  color: var(--muted);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .14em;
}

.catalog-progress {
  display: block;
  overflow: hidden;
  width: 100%;
  height: 1px;
  background: var(--line);
}

.catalog-progress i {
  display: block;
  width: 0;
  height: 100%;
  background: var(--ink);
  transition: width .35s ease;
}

.catalog-help {
  max-width: 46rem;
  margin: 1rem auto 0;
  color: var(--muted);
  font-size: .65rem;
  line-height: 1.55;
  text-align: center;
}
/* Primo Amore — libro audiovisivo */
.primo-book-object {
  display: grid;
  grid-template-columns: minmax(220px, .42fr) minmax(0, 1fr);
  gap: clamp(3rem, 7vw, 8rem);
  align-items: start;
  margin-top: clamp(7rem, 13vw, 13rem);
  padding-top: clamp(4rem, 8vw, 8rem);
  border-top: 1px solid var(--ink);
  scroll-margin-top: 7.5rem;
}

.primo-book-meta {
  position: sticky;
  top: 132px;
}

.primo-book-meta h2 {
  margin-bottom: 1.25rem;
  font-family: var(--display);
  font-size: clamp(2rem, 2.9vw, 3.1rem);
  font-weight: 300;
  letter-spacing: -.06em;
  line-height: .88;
  text-transform: uppercase;
}

.primo-book-meta dl {
  margin: 0 0 2rem;
  border-top: 1px solid var(--ink);
}

.primo-book-meta dl div {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1rem;
  padding: .8rem 0;
  border-bottom: 1px solid var(--line);
}

.primo-book-meta dt,
.primo-book-meta dd {
  margin: 0;
  font-size: .64rem;
  letter-spacing: .09em;
  line-height: 1.4;
  text-transform: uppercase;
}

.primo-book-meta dt { color: var(--muted); }
.primo-book-meta dd { text-align: right; }

.primo-book-note {
  max-width: 23rem;
  margin: 0;
  color: var(--muted);
  font-family: var(--serif);
  font-size: .88rem;
  line-height: 1.55;
}

.primo-book {
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: clamp(500px, 54vw, 750px);
  perspective: 1800px;
}

.primo-book-cover {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: min(58%, 520px);
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  transform: translate(-50%, -50%) rotateY(-4deg);
  transform-origin: left center;
  transition: opacity .5s ease, transform .7s cubic-bezier(.2,.72,.2,1);
}

.primo-book-cover:hover,
.primo-book-cover:focus-visible {
  outline: none;
  transform: translate(-50%, -51.5%) rotateY(0);
}

.primo-book-cover:focus-visible .primo-book-cover-image {
  outline: 1px solid var(--ink);
  outline-offset: .55rem;
}

.primo-book-cover-image {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 24 / 22;
  background: var(--ink);
  border: 1px solid rgba(17,17,15,.32);
  box-shadow: 1.8rem 2.2rem 4rem rgba(17,17,15,.2);
}

.primo-book-cover-image::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(17,17,15,.2), transparent 10%, transparent 88%, rgba(17,17,15,.13));
  content: "";
  pointer-events: none;
}

.primo-book-cover-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.primo-book-action {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .35rem 1rem;
  align-items: baseline;
  padding: 1rem 0 0;
  text-align: left;
}

.primo-book-action b {
  font-size: .67rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.primo-book-action b::after { content: " ↗"; }

.primo-book-action small {
  color: var(--muted);
  font-family: var(--serif);
  font-size: .76rem;
}

.primo-book-spread {
  position: absolute;
  inset: 0;
  display: grid;
  overflow: hidden;
  grid-template-columns: minmax(210px, .62fr) minmax(0, 1.38fr);
  border: 1px solid rgba(17,17,15,.3);
  background: #f7f1e6;
  box-shadow: 0 2.4rem 5rem rgba(17,17,15,.2);
  opacity: 0;
  transform: scale(.95) rotateX(2deg);
  transform-origin: center;
  transition: opacity .45s ease .08s, transform .65s cubic-bezier(.2,.72,.2,1);
}

.primo-book-spread[hidden] { display: none; }

.primo-book-spread::after {
  position: absolute;
  z-index: 3;
  top: 0;
  bottom: 0;
  left: 31%;
  width: 1px;
  background: rgba(17,17,15,.28);
  box-shadow: -.7rem 0 1.3rem rgba(17,17,15,.13), .7rem 0 1.3rem rgba(255,255,255,.52);
  content: "";
  pointer-events: none;
}

.primo-book.is-open .primo-book-cover {
  pointer-events: none;
  opacity: 0;
  transform: translate(-58%, -50%) rotateY(-42deg) scale(.88);
}

.primo-book.is-open .primo-book-spread {
  opacity: 1;
  transform: scale(1) rotateX(0);
}

.primo-book-page {
  position: relative;
  min-width: 0;
}

.primo-book-page--title {
  overflow: hidden;
  background: #1a5b59;
  color: white;
}

.primo-book-page--title > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.primo-book-page--title::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(17,17,15,.82), transparent 58%);
  content: "";
}

.primo-book-page--title > div {
  position: absolute;
  z-index: 1;
  right: 1.5rem;
  bottom: 1.5rem;
  left: 1.5rem;
}

.primo-book-page--title p {
  margin-bottom: .45rem;
  font-family: var(--display);
  font-size: clamp(1.35rem, 2.4vw, 2.4rem);
  font-weight: 350;
  letter-spacing: -.04em;
  text-transform: uppercase;
}

.primo-book-page--title span {
  color: rgba(255,255,255,.74);
  font-size: .58rem;
  letter-spacing: .1em;
  line-height: 1.55;
  text-transform: uppercase;
}

.primo-book-page--video {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(3.8rem, 6vw, 5rem) clamp(1.25rem, 3vw, 3rem) 1.4rem;
  background: #f7f1e6;
}

.primo-book-close {
  position: absolute;
  z-index: 4;
  top: 1.2rem;
  right: 1.3rem;
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  padding: .45rem 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.primo-book-close b {
  font-size: 1.35rem;
  font-weight: 300;
  line-height: 1;
}

.primo-book-close:hover span,
.primo-book-close:focus-visible span { text-decoration: underline; text-underline-offset: .28rem; }

.primo-video-shell {
  overflow: hidden;
  background: var(--ink);
  box-shadow: 0 1.4rem 3rem rgba(17,17,15,.18);
}

.primo-video-shell video {
  display: block;
  width: 100%;
  aspect-ratio: 20 / 9;
  background: var(--ink);
  object-fit: contain;
}

.primo-chapters {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: .8rem;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.primo-chapters button {
  display: grid;
  gap: .25rem;
  padding: .7rem .8rem;
  color: var(--ink);
  text-align: left;
  background: transparent;
  border: 0;
  border-right: 1px solid var(--line);
  cursor: pointer;
  font-size: .7rem;
  line-height: 1.35;
}

.primo-chapters button:last-child { border-right: 0; }
.primo-chapters button:hover,
.primo-chapters button:focus-visible { background: var(--paper); }
.primo-chapters button span {
  color: var(--muted);
  font-size: .66rem;
  letter-spacing: .1em;
}

.primo-book-page--video footer {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 1rem;
  color: var(--muted);
  font-size: .55rem;
  letter-spacing: .11em;
  text-transform: uppercase;
}


.project-detail { border-right: 1px solid var(--line); border-left: 1px solid var(--line); }
.project-detail .project-hero { display: grid; grid-template-columns: 1fr 1fr; min-height: calc(100vh - 84px); }
.project-title { display: flex; flex-direction: column; justify-content: end; padding: var(--pad); }
.project-title h1 { margin-bottom: 2rem; font-family: var(--display); font-size: clamp(4rem, 9vw, 9rem); line-height: .82; letter-spacing: -.07em; font-weight: 300; text-transform: uppercase; }
.project-title--long h1 { font-size: clamp(2.7rem, 5.2vw, 5.6rem); line-height: .88; }
.project-title dl { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin: 0; padding-top: 1.2rem; border-top: 1px solid var(--line); }
.project-title dt { color: var(--muted); text-transform: uppercase; letter-spacing: .12em; font-size: .6rem; }
.project-title dd { margin: .3rem 0 0; font-size: .78rem; }
.project-cover { overflow: hidden; min-height: 560px; background: #151617; }
.project-cover img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.critical-text { max-width: 920px; margin: 0 auto; padding: clamp(5rem, 12vw, 12rem) var(--pad); }
.critical-text h2 { max-width: 32ch; margin-bottom: 3rem; font-family: var(--display); font-size: var(--statement-size); font-weight: 350; letter-spacing: -.035em; line-height: 1.28; }
.critical-text p { margin-left: auto; max-width: 760px; font-family: var(--serif); font-size: clamp(.98rem, 1.3vw, 1.24rem); line-height: 1.52; }

.project-gallery {
  display: grid;
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 var(--pad) clamp(7rem, 14vw, 14rem);
  grid-template-columns: repeat(12, 1fr);
  gap: clamp(2rem, 5vw, 6rem);
}

.project-gallery figure { margin: 0; }

.project-gallery img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.project-gallery figcaption {
  margin-top: .7rem;
  color: var(--muted);
  font-size: .56rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.project-gallery--two figure:first-child { grid-column: 1 / span 7; }
.project-gallery--two figure:last-child { grid-column: 8 / span 5; margin-top: clamp(5rem, 9vw, 9rem); }

.project-gallery--four figure:nth-child(1),
.project-gallery--four figure:nth-child(4) { grid-column: span 7; }

.project-gallery--four figure:nth-child(2),
.project-gallery--four figure:nth-child(3) { grid-column: span 5; }

.project-gallery--four figure:nth-child(2),
.project-gallery--four figure:nth-child(4) { margin-top: clamp(5rem, 9vw, 9rem); }

.project-gallery--single figure { grid-column: 2 / span 10; }

.project-next {
  max-width: var(--max);
  margin: clamp(3rem, 7vw, 7rem) auto 0;
  border-top: 1px solid var(--ink);
}

.project-next a {
  display: grid;
  min-height: 460px;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
  color: var(--ink);
  text-decoration: none;
}

.project-next-image {
  position: relative;
  min-height: 460px;
  overflow: hidden;
  background: var(--paper-soft);
}

.project-next-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .9s cubic-bezier(.2,.7,.2,1);
}

.project-next a:hover .project-next-image img,
.project-next a:focus-visible .project-next-image img { transform: scale(1.025); }

.project-next-copy {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: flex-end;
  padding: var(--pad);
  border-left: 1px solid var(--line);
}

.project-next-copy h2 {
  max-width: 12ch;
  margin-bottom: 1rem;
  font-family: var(--display);
  font-size: clamp(2.1rem, 4.2vw, 4.6rem);
  font-weight: 300;
  letter-spacing: -.055em;
  line-height: .92;
}

.project-next-copy > span {
  color: var(--muted);
  font-size: .7rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.project-next-copy b {
  position: absolute;
  top: var(--pad);
  right: var(--pad);
  font-size: 1.5rem;
  font-weight: 300;
  transition: transform .25s ease;
}

.project-next a:hover .project-next-copy b { transform: translateX(.4rem); }

/* Udine Contemporanea — percorso fotografico */
.project-detail--journey {
  max-width: none;
  overflow-x: clip;
  border: 0;
}

.journey-opening {
  display: grid;
  min-height: calc(100vh - 84px);
  max-width: var(--max);
  margin: 0 auto;
  grid-template-columns: minmax(320px, .82fr) minmax(0, 1.18fr);
  border-right: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.journey-opening-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(3rem, 6vw, 6rem) var(--pad) clamp(2.2rem, 4vw, 4rem);
  border-right: 1px solid var(--line);
}

.journey-opening h1 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(4.2rem, 7.1vw, 7.8rem);
  font-weight: 300;
  letter-spacing: -.075em;
  line-height: .78;
  text-transform: uppercase;
}

.journey-opening h1 span {
  display: block;
  margin-top: .14em;
  font-size: clamp(1.65rem, 3.1vw, 2.9rem);
  letter-spacing: -.07em;
}

.journey-deck {
  max-width: 24rem;
  margin: clamp(2rem, 4vw, 4rem) 0 0;
  font-family: var(--serif);
  font-size: clamp(1.15rem, 1.8vw, 1.65rem);
  line-height: 1.25;
}

.journey-opening-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  align-items: end;
  padding-top: 1.25rem;
  border-top: 1px solid var(--ink);
}

.journey-opening-meta p {
  margin: 0;
  color: var(--muted);
  font-size: .7rem;
  line-height: 1.65;
}

.journey-opening-meta strong { color: var(--ink); font-weight: 600; }

.journey-enter {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  margin-top: .5rem;
  padding-top: 1rem;
  color: var(--ink);
  border-top: 1px solid var(--line);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-decoration: none;
  text-transform: uppercase;
}

.journey-enter span { font-size: 1rem; transition: transform .2s ease; }
.journey-enter:hover span { transform: translateY(.25rem); }
.journey-enter--atlas { margin-top: .8rem; padding: 1rem; border: 1px solid var(--ink); background: var(--paper-soft); transition: background .25s ease, transform .25s ease; }
.journey-enter--atlas:hover,
.journey-enter--atlas:focus-visible { background: #eee8dc; transform: translateY(-2px); }
.journey-enter--atlas:hover span { transform: translate(.2rem, -.2rem); }
.journey-enter--backstage { margin-top: 0; }
.journey-enter--backstage:hover span { transform: translate(.2rem, -.2rem); }

.atlas-gateway {
  position: relative;
  z-index: 3;
  max-width: var(--max);
  margin: 0 auto;
  padding: clamp(1.25rem, 2.5vw, 2.5rem) var(--pad);
  border: 1px solid var(--ink);
  border-top: 0;
  background: var(--paper-soft);
}

.atlas-gateway > a {
  position: relative;
  display: grid;
  min-height: clamp(180px, 20vw, 270px);
  grid-template-columns: minmax(150px, .28fr) minmax(0, 1fr) auto;
  grid-template-rows: 1fr auto;
  gap: 1rem 2rem;
  align-items: start;
  padding: clamp(1.4rem, 3vw, 3rem);
  overflow: hidden;
  border: 1px solid var(--ink);
  background: var(--paper);
  color: var(--ink);
  text-decoration: none;
  transition: background .35s ease, transform .35s ease, box-shadow .35s ease;
}

.atlas-gateway > a::before {
  position: absolute;
  right: -7%;
  bottom: -80%;
  width: clamp(180px, 27vw, 390px);
  aspect-ratio: 1;
  border: 1px solid rgba(17,17,15,.2);
  border-radius: 50%;
  content: "";
  transition: transform .55s cubic-bezier(.2,.7,.2,1), background .35s ease;
}

.atlas-gateway > a:hover,
.atlas-gateway > a:focus-visible {
  background: #eee8dc;
  box-shadow: 0 16px 40px rgba(17,17,15,.08);
  transform: translateY(-3px);
}

.atlas-gateway > a:hover::before,
.atlas-gateway > a:focus-visible::before { background: rgba(255,255,255,.28); transform: scale(1.16); }
.atlas-gateway-kicker { align-self: start; font-size: .62rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.atlas-gateway strong { max-width: 13ch; font-family: var(--display); font-size: clamp(2.3rem, 5.2vw, 5.8rem); font-weight: 320; letter-spacing: -.07em; line-height: .84; }
.atlas-gateway-meta { align-self: end; color: var(--muted); font-size: .63rem; letter-spacing: .11em; text-transform: uppercase; }
.atlas-gateway i { z-index: 1; display: grid; width: clamp(3.5rem, 6vw, 5.5rem); aspect-ratio: 1; grid-column: 3; grid-row: 1 / -1; place-items: center; align-self: center; border: 1px solid var(--ink); border-radius: 50%; font-size: clamp(1.25rem, 2vw, 2rem); font-style: normal; transition: background .3s ease, color .3s ease, transform .3s ease; }
.atlas-gateway > a:hover i,
.atlas-gateway > a:focus-visible i { background: var(--ink); color: var(--paper); transform: rotate(45deg); }
.atlas-gateway--backstage { border-top: 1px solid var(--ink); }

.journey-opening-art {
  display: grid;
  min-width: 0;
  padding: clamp(1.5rem, 4vw, 4.5rem);
  place-items: center;
  background: var(--paper-soft);
}

.journey-opening-art .journey-frame { width: 100%; }

.journey-progress {
  position: sticky;
  z-index: 9;
  top: 84px;
  display: grid;
  height: 46px;
  grid-template-columns: auto minmax(120px, 1fr) auto;
  gap: clamp(1rem, 3vw, 3rem);
  align-items: center;
  padding: 0 var(--pad);
  background: rgba(241, 239, 233, .93);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(16px);
  color: var(--muted);
  font-size: .56rem;
  font-weight: 650;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.journey-progress b {
  color: var(--ink);
  font-weight: 750;
}

.journey-progress-line {
  display: block;
  overflow: hidden;
  height: 1px;
  background: var(--line);
}

.journey-progress-line i {
  display: block;
  width: 0;
  height: 100%;
  background: var(--ink);
  transition: width .5s cubic-bezier(.2,.7,.2,1);
}

.journey-body {
  position: relative;
  overflow: visible;
  max-width: var(--max);
  margin: 0 auto;
  border-right: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.journey-body::before {
  position: absolute;
  z-index: 0;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: rgba(17,17,15,.1);
  content: "";
}

.journey-time-legend {
  position: relative;
  z-index: 2;
  display: grid;
  max-width: 640px;
  margin: 0 0 0 auto;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  padding: clamp(2rem, 4vw, 4rem) var(--pad) 0;
  background: var(--paper);
}

.journey-time-legend > span {
  display: grid;
  width: 2.4rem;
  height: 2.4rem;
  place-items: center;
  color: var(--paper);
  background: var(--ink);
}

.journey-time-legend p {
  max-width: 32rem;
  margin: 0;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.58;
}

.journey-time-legend strong { color: var(--ink); }

.journey-sketches {
  position: relative;
  z-index: 2;
  padding: clamp(7rem, 13vw, 13rem) var(--pad) clamp(7rem, 12vw, 12rem);
  overflow: hidden;
  border-bottom: 1px solid var(--ink);
  background:
    radial-gradient(circle at 82% 18%, rgba(210, 204, 190, .25), transparent 24%),
    var(--paper);
}

.journey-sketches::before {
  position: absolute;
  top: clamp(2rem, 6vw, 6rem);
  right: -0.08em;
  color: rgba(17, 17, 15, .035);
  font-family: var(--display);
  font-size: clamp(9rem, 27vw, 28rem);
  font-weight: 300;
  letter-spacing: -.09em;
  line-height: .7;
  content: "04";
  pointer-events: none;
}

.journey-sketches-heading {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(150px, .3fr) minmax(0, .7fr);
  gap: clamp(2rem, 6vw, 7rem);
  align-items: start;
  opacity: 0;
  transform: translateY(2.5rem);
  transition: opacity .9s ease, transform 1.1s cubic-bezier(.2, .7, .2, 1);
}

.journey-sketches-heading.is-visible { opacity: 1; transform: translateY(0); }

.journey-sketches-heading h2 {
  max-width: 12ch;
  margin: 0;
  font-family: var(--display);
  font-size: clamp(3rem, 7vw, 7.3rem);
  font-weight: 310;
  letter-spacing: -.075em;
  line-height: .82;
  text-transform: uppercase;
}

.journey-sketches-heading > div > p {
  max-width: 36rem;
  margin: clamp(2rem, 4vw, 4rem) 0 0;
  font-family: var(--serif);
  font-size: clamp(.94rem, 1.3vw, 1.15rem);
  line-height: 1.62;
}

.journey-sketches-field {
  position: relative;
  z-index: 1;
  height: clamp(1120px, 123vw, 1740px);
  margin-top: clamp(5rem, 10vw, 11rem);
}

.journey-sketch {
  --sketch-rotation: 0deg;
  position: absolute;
  display: block;
  width: 52%;
  padding: 0;
  color: var(--ink);
  font: inherit;
  text-align: left;
  background: transparent;
  border: 0;
  opacity: 0;
  transform: translateY(5rem) rotate(var(--sketch-rotation));
  transform-origin: center;
  cursor: zoom-in;
  transition: opacity 1s ease, transform 1.15s cubic-bezier(.2, .72, .16, 1);
}

.journey-sketch.is-visible { opacity: 1; transform: translateY(0) rotate(var(--sketch-rotation)); }
.journey-sketch--one { --sketch-rotation: -1.8deg; top: 0; left: 3%; width: 58%; }
.journey-sketch--two { --sketch-rotation: 1.4deg; top: 24%; right: 1%; width: 49%; transition-delay: .08s; }
.journey-sketch--three { --sketch-rotation: -1deg; top: 49%; left: -1%; width: 54%; transition-delay: .12s; }
.journey-sketch--four { --sketch-rotation: 1.6deg; top: 73%; right: 3%; width: 57%; transition-delay: .16s; }

.journey-sketch-sheet {
  display: block;
  padding: clamp(.45rem, .8vw, .8rem);
  background: #faf8f1;
  border: 1px solid rgba(17, 17, 15, .16);
  box-shadow: 0 1.6rem 3.5rem rgba(17, 17, 15, .12);
  transition: box-shadow .45s ease;
}

.journey-sketch-sheet img { display: block; width: 100%; height: auto; }

.journey-sketch-meta {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: .9rem;
  align-items: center;
  margin-top: .7rem;
  padding-top: .65rem;
  border-top: 1px solid var(--ink);
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.journey-sketch-meta b { font-weight: 750; }
.journey-sketch-meta i { color: var(--muted); font-style: normal; }
.journey-sketch-meta em { font-size: .6rem; font-style: normal; font-weight: 700; }
.journey-sketch:hover,
.journey-sketch:focus-visible { transform: translateY(-.7rem) rotate(0deg); outline: 0; }
.journey-sketch:hover .journey-sketch-sheet,
.journey-sketch:focus-visible .journey-sketch-sheet { box-shadow: 0 2.2rem 4.8rem rgba(17, 17, 15, .18); }
.journey-sketch:focus-visible .journey-sketch-meta { outline: 2px solid var(--ink); outline-offset: 5px; }

.journey-sketches-closing {
  position: relative;
  z-index: 2;
  max-width: 24ch;
  margin: clamp(4rem, 8vw, 8rem) 0 0 auto;
  font-family: var(--display);
  font-size: clamp(1.2rem, 2vw, 2rem);
  font-weight: 350;
  letter-spacing: -.025em;
  line-height: 1.25;
  opacity: 0;
  transform: translateY(2rem);
  transition: opacity .9s ease, transform 1s ease;
}

.journey-sketches-closing.is-visible { opacity: 1; transform: translateY(0); }

.sketch-cinema {
  position: fixed;
  z-index: 1400;
  inset: 0;
  width: 100vw;
  max-width: none;
  height: 100svh;
  max-height: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  color: var(--ink);
  background: var(--paper);
  border: 0;
  opacity: 0;
  transform: scale(.86);
  transform-origin: center;
  transition: opacity 1.05s ease, transform 1.5s cubic-bezier(.2, .72, .16, 1);
}

.sketch-cinema::backdrop { background: rgba(17, 17, 15, .68); backdrop-filter: blur(8px); }
.sketch-cinema.is-open { opacity: 1; transform: scale(1); }
.sketch-cinema.is-closing { opacity: 0; transform: scale(.92); transition-duration: .78s; }
.sketch-cinema-shell { display: grid; height: 100%; grid-template-rows: auto minmax(0, 1fr) auto; padding: clamp(1rem, 2vw, 2rem); }

.sketch-cinema-bar,
.sketch-cinema-nav,
.sketch-cinema-figure figcaption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  font-size: .68rem;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.sketch-cinema-bar { padding-bottom: .8rem; border-bottom: 1px solid var(--ink); }
.sketch-cinema-bar > span { font-weight: 700; }
.sketch-cinema-bar button {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  padding: .55rem .7rem;
  color: var(--ink);
  background: transparent;
  border: 1px solid var(--ink);
  cursor: pointer;
  font: inherit;
  font-size: .62rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.sketch-cinema-bar button:hover,
.sketch-cinema-bar button:focus-visible { color: var(--paper); background: var(--ink); }
.sketch-cinema-bar button i { position: relative; width: .8rem; height: .8rem; }
.sketch-cinema-bar button i::before,
.sketch-cinema-bar button i::after { position: absolute; top: 50%; left: 0; width: 100%; height: 1px; background: currentColor; content: ""; }
.sketch-cinema-bar button i::before { transform: rotate(45deg); }
.sketch-cinema-bar button i::after { transform: rotate(-45deg); }

.sketch-cinema-figure {
  display: grid;
  min-height: 0;
  margin: 0;
  padding: clamp(1rem, 2vw, 2rem) 0 .8rem;
  grid-template-rows: minmax(0, 1fr) auto;
}

.sketch-cinema-figure > img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: contain;
  filter: blur(26px) contrast(.72) drop-shadow(0 1.2rem 2.4rem rgba(17, 17, 15, .14));
  opacity: .06;
  transform: scale(1.035);
  transition:
    opacity 2.5s cubic-bezier(.16, .7, .22, 1) .12s,
    filter 2.9s cubic-bezier(.16, .7, .22, 1) .12s,
    transform 2.9s cubic-bezier(.16, .7, .22, 1) .12s;
}

.sketch-cinema.is-open .sketch-cinema-figure > img {
  filter: blur(0) contrast(1) drop-shadow(0 1.2rem 2.4rem rgba(17, 17, 15, .14));
  opacity: 1;
  transform: scale(1);
}

.sketch-cinema.is-closing .sketch-cinema-figure > img {
  filter: blur(12px) contrast(.82) drop-shadow(0 1.2rem 2.4rem rgba(17, 17, 15, .1));
  opacity: 0;
  transform: scale(.985);
  transition-duration: .72s;
  transition-delay: 0s;
}

.sketch-cinema-figure figcaption {
  align-self: end;
  padding-top: .7rem;
  border-top: 1px solid var(--line);
  opacity: 0;
  transform: translateY(.55rem);
  transition: opacity .9s ease 1.25s, transform 1s ease 1.25s;
}
.sketch-cinema.is-open .sketch-cinema-figure figcaption { opacity: 1; transform: translateY(0); }
.sketch-cinema.is-closing .sketch-cinema-figure figcaption { opacity: 0; transition-delay: 0s; transition-duration: .35s; }
.sketch-cinema-figure figcaption strong { font-weight: 700; }
.sketch-cinema-figure figcaption span { color: var(--muted); }
.sketch-cinema-figure figcaption em { color: var(--ink); font-style: normal; }
.sketch-cinema-nav { padding-top: .8rem; border-top: 1px solid var(--ink); }
.sketch-cinema-nav button {
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  padding: .65rem 0;
  color: var(--ink);
  background: transparent;
  border: 0;
  cursor: pointer;
  font: inherit;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.sketch-cinema-nav button:hover,
.sketch-cinema-nav button:focus-visible { text-decoration: underline; text-underline-offset: .35rem; }
.sketch-modal-open,
.latent-modal-open { overflow: hidden; }

.journey-chapter {
  position: relative;
  z-index: 1;
  padding-bottom: clamp(7rem, 14vw, 14rem);
}

.journey-text {
  position: relative;
  z-index: 2;
  width: min(78%, 960px);
  padding: clamp(7rem, 14vw, 14rem) var(--pad) clamp(5rem, 10vw, 10rem);
  background: var(--paper);
}

.journey-text--left { margin-right: auto; }
.journey-text--right { margin-left: auto; }
.journey-text--center { margin-right: auto; margin-left: auto; text-align: center; }

.journey-text p {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.45rem, 2.8vw, 2.85rem);
  letter-spacing: -.025em;
  line-height: 1.28;
}

.journey-text strong {
  font-family: var(--display);
  font-weight: 500;
  letter-spacing: -.04em;
}

.photo-reference {
  color: var(--muted);
  font-family: var(--sans);
  font-size: .35em;
  font-style: normal;
  font-weight: 650;
  letter-spacing: .1em;
  text-transform: uppercase;
  white-space: nowrap;
}

.journey-cluster {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(2rem, 4vw, 5rem);
  align-items: start;
  padding: 0 var(--pad);
}

.journey-frame { margin: 0; min-width: 0; }

.journey-image {
  overflow: hidden;
  background: var(--paper-soft);
}

.journey-frame img {
  width: 100%;
  height: auto;
  transition: transform .9s cubic-bezier(.2,.7,.2,1);
}

.journey-frame:hover img { transform: scale(1.012); }

.journey-frame figcaption {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .8rem;
  margin-top: .65rem;
  padding-top: .65rem;
  border-top: 1px solid var(--ink);
  color: var(--muted);
  font-size: .56rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.journey-frame figcaption span { color: var(--ink); font-weight: 750; }
.journey-frame figcaption cite { font-style: normal; }
.journey-frame figcaption cite small {
  display: block;
  margin-top: .35rem;
  color: var(--muted);
  font-size: .68rem;
  letter-spacing: .06em;
  line-height: 1.4;
  text-transform: none;
}

.journey-frame--latent {
  position: relative;
  isolation: isolate;
  overflow: visible;
}

.journey-latent-cue {
  position: relative;
  z-index: 7;
  display: grid;
  width: min(100%, 440px);
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .25rem 1rem;
  align-items: center;
  margin-top: 1rem;
  padding: .85rem 1rem;
  color: var(--ink);
  text-align: left;
  background: var(--paper);
  border: 1px solid var(--ink);
  cursor: pointer;
  transition: background .3s ease, box-shadow .3s ease, transform .3s ease;
}

.journey-latent-cue span {
  font-family: var(--sans);
  font-size: .68rem;
  font-weight: 750;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.journey-latent-cue small {
  grid-column: 1;
  color: var(--muted);
  font-family: var(--serif);
  font-size: .76rem;
  line-height: 1.35;
}

.journey-latent-cue i {
  grid-column: 2;
  grid-row: 1 / span 2;
  font-size: 1rem;
  font-style: normal;
  transition: transform .3s ease;
}

.journey-latent-cue:hover,
.journey-latent-cue:focus-visible {
  background: #eee8dc;
  box-shadow: 0 1rem 2.2rem rgba(17, 17, 15, .1);
  outline: 0;
  transform: translateY(-2px);
}

.journey-latent-cue:hover i,
.journey-latent-cue:focus-visible i { transform: translate(.2rem, -.2rem); }
.journey-frame--wide-right .journey-latent-cue,
.journey-frame--full .journey-latent-cue { margin-left: auto; }

.journey-latent-preview {
  position: absolute;
  z-index: 8;
  top: 8%;
  display: block;
  width: min(35vw, 500px);
  padding: clamp(.4rem, .7vw, .7rem);
  color: var(--ink);
  background: #faf8f1;
  border: 1px solid rgba(17, 17, 15, .2);
  box-shadow: 0 2rem 5rem rgba(17, 17, 15, .22);
  opacity: 0;
  pointer-events: none;
  transform: translateY(2rem) scale(.9) rotate(-1.2deg);
  transform-origin: center;
  transition: opacity 1.45s ease, transform 2.1s cubic-bezier(.16, .7, .22, 1);
}

.journey-latent-preview--left { right: calc(100% + 1.5rem); }
.journey-latent-preview--right { left: calc(100% + 1.5rem); transform: translateY(2rem) scale(.9) rotate(1.2deg); }
.journey-frame--full .journey-latent-preview--right,
.journey-frame--musa .journey-latent-preview--right {
  right: 4%;
  left: auto;
  width: min(38vw, 540px);
}

.journey-latent-preview img {
  display: block;
  width: 100%;
  height: auto;
  filter: blur(18px) contrast(.72);
  opacity: .08;
  transform: scale(1.035);
  transition:
    opacity 2.15s cubic-bezier(.16, .7, .22, 1) .08s,
    filter 2.55s cubic-bezier(.16, .7, .22, 1) .08s,
    transform 2.55s cubic-bezier(.16, .7, .22, 1) .08s;
}
.journey-latent-preview em {
  display: block;
  padding: .65rem .15rem .05rem;
  font-family: var(--sans);
  font-size: .62rem;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
  opacity: 0;
  transition: opacity .7s ease 1.25s;
}

.journey-frame--latent.is-latent-peek .journey-latent-preview {
  opacity: 1;
  transform: translateY(0) scale(1) rotate(0deg);
}

.journey-frame--latent.is-latent-peek .journey-latent-preview img {
  filter: blur(0) contrast(1);
  opacity: 1;
  transform: scale(1);
}

.journey-frame--latent.is-latent-peek .journey-latent-preview em { opacity: 1; }

.journey-frame--musa .journey-latent-cue {
  position: absolute;
  right: var(--pad);
  bottom: clamp(1rem, 2vw, 2rem);
  width: min(360px, 38vw);
  margin: 0;
  background: rgba(241, 239, 233, .94);
  backdrop-filter: blur(12px);
}

.journey-frame--portrait-left { grid-column: 1 / span 4; }
.journey-frame--portrait-right { grid-column: 9 / span 4; margin-top: clamp(5rem, 10vw, 10rem); }
.journey-frame--wide-right { grid-column: 6 / span 7; margin-top: clamp(5rem, 9vw, 9rem); }
.journey-frame--wide-left { grid-column: 1 / span 8; }
.journey-frame--large-left { grid-column: 1 / span 10; }
.journey-frame--panorama-left { grid-column: 1 / span 7; }
.journey-frame--panorama-right { grid-column: 6 / span 7; }
.journey-frame--medium-left { grid-column: 1 / span 5; }
.journey-frame--medium-right { grid-column: 8 / span 5; margin-top: clamp(5rem, 9vw, 9rem); }
.journey-frame--center-stage { grid-column: 3 / span 8; }
.journey-frame--full { grid-column: 1 / -1; }

.journey-frame--musa {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc((100% - 100vw) / 2);
}

.journey-frame--musa .journey-image {
  height: calc(100svh - 130px);
  min-height: 620px;
}

.journey-frame--musa img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.journey-frame--musa figcaption {
  position: absolute;
  right: var(--pad);
  bottom: clamp(1rem, 2vw, 2rem);
  left: var(--pad);
  width: fit-content;
  margin: 0;
  padding: .8rem 1rem;
  background: rgba(241, 239, 233, .92);
  border: 0;
  backdrop-filter: blur(12px);
}

.journey-time-stage {
  position: relative;
  isolation: isolate;
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden;
  color: var(--ink);
  font: inherit;
  text-align: left;
  background: var(--paper-soft);
  border: 0;
  border-radius: 0;
  appearance: none;
  cursor: e-resize;
}

.journey-time-stage::after {
  position: absolute;
  z-index: 3;
  inset: 0;
  border: 1px solid rgba(241, 239, 233, .28);
  content: "";
  pointer-events: none;
}

.journey-frame--time .journey-time-archive {
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0;
  transition: opacity 1.05s cubic-bezier(.2, .7, .2, 1), transform .9s cubic-bezier(.2, .7, .2, 1);
}

.journey-time-stage img { display: block; }

.journey-time-era,
.journey-time-cue {
  position: absolute;
  z-index: 4;
  top: clamp(1rem, 2vw, 2rem);
  display: inline-flex;
  align-items: center;
  min-height: 2.4rem;
  color: var(--ink);
  font-family: var(--sans);
  font-size: .52rem;
  font-weight: 720;
  letter-spacing: .13em;
  line-height: 1;
  text-transform: uppercase;
  background: rgba(241, 239, 233, .9);
  backdrop-filter: blur(12px);
}

.journey-time-era {
  left: clamp(.75rem, 2vw, 1.5rem);
  padding: 0 .9rem;
  transition: opacity .55s ease, transform .55s ease;
}

.journey-time-era--archive {
  color: var(--paper);
  background: rgba(19, 18, 16, .84);
  opacity: 0;
  transform: translateY(.35rem);
}

.journey-time-cue {
  right: clamp(.75rem, 2vw, 1.5rem);
  gap: .75rem;
  padding: 0 1rem 0 0;
}

.journey-time-cue i {
  display: grid;
  width: 2.4rem;
  height: 2.4rem;
  place-items: center;
  color: var(--paper);
  font-size: .8rem;
  font-style: normal;
  background: var(--ink);
}

.journey-time-cue b { font: inherit; }

.journey-frame--musa .journey-time-era { left: var(--pad); }
.journey-frame--musa .journey-time-cue { right: var(--pad); }

.journey-frame--time.is-time-revealed .journey-time-archive {
  opacity: 1;
}

.journey-frame--time.is-time-revealed .journey-time-era--now {
  opacity: 0;
  transform: translateY(-.35rem);
}

.journey-frame--time.is-time-revealed .journey-time-era--archive {
  opacity: 1;
  transform: translateY(0);
}

.journey-time-stage:focus-visible {
  outline: 2px solid var(--paper);
  outline-offset: -7px;
}

@media (hover: hover) and (pointer: fine) {
  .journey-time-stage:hover .journey-time-archive { opacity: 1; }
  .journey-time-stage:hover .journey-time-era--now { opacity: 0; transform: translateY(-.35rem); }
  .journey-time-stage:hover .journey-time-era--archive { opacity: 1; transform: translateY(0); }
}

.journey-archive-trigger {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden;
  background: var(--paper-soft);
  border: 0;
  border-radius: 0;
  appearance: none;
  cursor: zoom-in;
}

.journey-archive-trigger img { display: block; }

.journey-archive-cue {
  position: absolute;
  top: .75rem;
  right: .75rem;
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  min-height: 2.35rem;
  padding-right: .85rem;
  color: var(--ink);
  font-family: var(--sans);
  font-size: .5rem;
  font-weight: 720;
  letter-spacing: .12em;
  text-transform: uppercase;
  background: rgba(241, 239, 233, .92);
  backdrop-filter: blur(12px);
  transition: color .25s ease, background .25s ease;
}

.journey-archive-cue i {
  display: grid;
  width: 2.35rem;
  height: 2.35rem;
  place-items: center;
  color: var(--paper);
  font-size: .85rem;
  font-style: normal;
  background: var(--ink);
}

.journey-archive-cue b { font: inherit; }
.journey-archive-trigger:hover .journey-archive-cue { color: var(--paper); background: var(--ink); }
.journey-archive-trigger:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }

.archive-cinema {
  position: fixed;
  z-index: 1200;
  inset: 0;
  display: grid;
  overflow: hidden;
  place-items: center;
  color: var(--paper);
  background: #0b0b0a;
  opacity: 0;
  visibility: hidden;
  transition: opacity .7s ease, visibility .7s ease;
}

.archive-cinema[hidden] { display: none; }

.archive-cinema.is-open {
  opacity: 1;
  visibility: visible;
}

.archive-cinema-stage {
  position: relative;
  width: 100vw;
  height: 100svh;
  overflow: hidden;
  opacity: 0;
  transform: scale(.72);
  transform-origin: center;
  transition: opacity .55s ease, transform 1.15s cubic-bezier(.2, .75, .15, 1);
}

.archive-cinema.is-open .archive-cinema-stage {
  opacity: 1;
  transform: scale(1);
}

.archive-cinema-stage::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.32), transparent 22%, transparent 68%, rgba(0,0,0,.7));
  content: "";
  pointer-events: none;
}

.archive-cinema-stage > img {
  width: 100%;
  height: 100%;
  padding: clamp(1rem, 2vw, 2rem);
  object-fit: contain;
}

.archive-cinema-index,
.archive-cinema-close,
.archive-cinema-caption {
  position: absolute;
  z-index: 2;
}

.archive-cinema-index {
  top: clamp(1.25rem, 3vw, 2.75rem);
  left: clamp(1.25rem, 3vw, 2.75rem);
  display: flex;
  align-items: center;
  gap: .8rem;
  font-size: .58rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.archive-cinema-index i { width: 2.5rem; height: 1px; background: currentColor; }

.archive-cinema-close {
  top: clamp(1.25rem, 3vw, 2.75rem);
  right: clamp(1.25rem, 3vw, 2.75rem);
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  padding: .65rem .8rem;
  color: var(--paper);
  font-size: .58rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  background: rgba(11, 11, 10, .66);
  border: 1px solid rgba(241, 239, 233, .55);
  cursor: pointer;
  backdrop-filter: blur(10px);
}

.archive-cinema-close i {
  position: relative;
  width: .9rem;
  height: .9rem;
}

.archive-cinema-close i::before,
.archive-cinema-close i::after {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  background: currentColor;
  content: "";
}

.archive-cinema-close i::before { transform: rotate(45deg); }
.archive-cinema-close i::after { transform: rotate(-45deg); }
.archive-cinema-close:hover { color: var(--ink); background: var(--paper); }
.archive-cinema-close:focus-visible { outline: 2px solid var(--paper); outline-offset: 4px; }

.archive-cinema-caption {
  right: clamp(1.25rem, 3vw, 2.75rem);
  bottom: clamp(1.25rem, 3vw, 2.75rem);
  left: clamp(1.25rem, 3vw, 2.75rem);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  padding-top: .9rem;
  border-top: 1px solid rgba(241, 239, 233, .55);
}

.archive-cinema-caption p {
  max-width: 44rem;
  margin: 0;
  font-family: var(--display);
  font-size: clamp(1.1rem, 2vw, 1.9rem);
  font-weight: 350;
  letter-spacing: -.025em;
  line-height: 1.08;
}

.archive-cinema-caption span {
  flex: 0 0 auto;
  font-size: .56rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.journey-cluster--opening .journey-frame--wide-left { margin-top: clamp(3rem, 7vw, 7rem); }
.journey-cluster--stone .journey-frame--center-stage { margin-top: clamp(3rem, 6vw, 6rem); }

.journey-cluster--verticals { gap: clamp(1.2rem, 2vw, 2.5rem); }
.journey-frame--vertical-one { grid-column: 1 / span 3; }
.journey-frame--vertical-two { grid-column: 4 / span 3; margin-top: clamp(4rem, 8vw, 8rem); }
.journey-frame--vertical-three { grid-column: 7 / span 3; margin-top: clamp(8rem, 16vw, 16rem); }
.journey-frame--vertical-four { grid-column: 10 / span 3; margin-top: clamp(12rem, 24vw, 24rem); }

.journey-cluster--bodies .journey-frame--medium-left,
.journey-cluster--bodies .journey-frame--medium-right { margin-top: clamp(4rem, 8vw, 8rem); }

.journey-frame--cloud { margin-top: clamp(5rem, 10vw, 10rem); }
.journey-cluster--memory .journey-frame--portrait-left,
.journey-cluster--memory .journey-frame--portrait-right { margin-top: clamp(5rem, 10vw, 10rem); }

.journey-text--final-voice { padding-bottom: clamp(4rem, 8vw, 8rem); }
.journey-frame--epilogue { grid-column: 2 / span 10; }

.journey-ending {
  position: relative;
  z-index: 2;
  padding: clamp(7rem, 14vw, 14rem) var(--pad) clamp(5rem, 9vw, 9rem);
  background: var(--paper);
  border-top: 1px solid var(--ink);
}

.journey-ending > p {
  max-width: 32ch;
  margin-bottom: clamp(4rem, 8vw, 8rem);
  font-family: var(--display);
  font-size: var(--statement-size);
  font-weight: 350;
  letter-spacing: -.035em;
  line-height: 1.28;
}

.journey-ending > div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 2rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: .58rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.journey-ending-links { display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; }
.atlas-footer-link { display: inline-flex; min-height: 50px; align-items: center; gap: 1.2rem; padding: .9rem 1.1rem; border: 1px solid var(--ink); background: var(--paper-soft); color: var(--ink); font-size: .67rem; font-weight: 750; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; transition: background .25s ease, transform .25s ease; }
.atlas-footer-link:hover,
.atlas-footer-link:focus-visible { background: #eee8dc; transform: translateY(-2px); }
.atlas-footer-link span { font-size: 1rem; }

.event-socials {
  display: grid;
  grid-template-columns: minmax(220px, .42fr) minmax(0, .58fr);
  gap: clamp(3rem, 7vw, 7rem);
  padding: clamp(6rem, 11vw, 11rem) var(--pad);
  border-top: 1px solid var(--ink);
  background: var(--paper);
}

.event-socials header h2 {
  max-width: 14ch;
  margin: 0 0 1.5rem;
  font-family: var(--display);
  font-size: var(--statement-size);
  font-weight: 350;
  letter-spacing: -.035em;
  line-height: 1.18;
}

.event-socials header > p:last-child {
  max-width: 29rem;
  margin: 0;
  color: var(--muted);
  font-family: var(--serif);
  font-size: .88rem;
  line-height: 1.65;
}

.event-social-list { border-top: 1px solid var(--ink); }

.event-social-list article {
  display: grid;
  grid-template-columns: minmax(90px, .25fr) minmax(0, 1fr) auto;
  gap: 1.5rem;
  align-items: center;
  padding: 1.4rem .75rem 1.4rem 0;
  border-bottom: 1px solid var(--line);
  transition: padding .2s ease, background .2s ease;
}

.event-social-list article:hover { padding-left: .75rem; background: var(--paper-soft); }

.event-social-list article > span {
  color: var(--muted);
  font-size: .62rem;
  font-weight: 650;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.event-social-list article > div { display: grid; gap: .3rem; }
.event-social-list article > nav { display: flex; gap: .5rem; }
.event-social-list strong { font-family: var(--display); font-size: clamp(1.1rem, 1.7vw, 1.6rem); font-weight: 400; letter-spacing: -.035em; }
.event-social-list small { color: var(--muted); font-size: .68rem; letter-spacing: .04em; }

.social-icon {
  display: inline-flex;
  width: 2.35rem;
  height: 2.35rem;
  align-items: center;
  justify-content: center;
  flex: 0 0 2.35rem;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--ink);
  background: transparent;
  text-decoration: none;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}

.social-icon svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.social-icon:hover,
.social-icon:focus-visible { border-color: var(--ink); background: var(--paper-soft); transform: translateY(-2px); }

/* Udine Contemporanea — backstage in progress */
.backstage {
  max-width: var(--max);
  margin: 0 auto;
  border-right: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.backstage-hero {
  display: grid;
  min-height: calc(100vh - 84px);
  grid-template-columns: minmax(360px, .9fr) minmax(0, 1.1fr);
}

.backstage-hero-copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 5rem;
  padding: clamp(3rem, 6vw, 6rem) var(--pad) clamp(2.5rem, 4vw, 4rem);
  border-right: 1px solid var(--ink);
}

.backstage-hero-copy h1 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(3.25rem, 4.6vw, 5.4rem);
  font-weight: 300;
  letter-spacing: -.075em;
  line-height: .78;
  text-transform: uppercase;
}

.backstage-hero-copy > div:last-child > p {
  max-width: 28rem;
  margin-bottom: 2rem;
  font-family: var(--serif);
  font-size: clamp(1rem, 1.35vw, 1.25rem);
  line-height: 1.48;
}

.backstage-hero-image {
  position: relative;
  min-height: 640px;
  margin: 0;
  overflow: hidden;
  background: var(--paper-soft);
}

.backstage-hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.backstage-hero-image figcaption,
.backstage-comparison figcaption {
  position: absolute;
  right: 1.25rem;
  bottom: 1.25rem;
  left: 1.25rem;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-top: .8rem;
  border-top: 1px solid rgba(241, 239, 233, .72);
  color: var(--paper);
  font-size: .62rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.backstage-hero-image cite,
.backstage-comparison cite { font-family: var(--serif); font-style: italic; letter-spacing: 0; text-transform: none; }

.backstage-statement {
  display: grid;
  grid-template-columns: minmax(150px, .32fr) minmax(0, .68fr);
  gap: 2rem;
  padding: clamp(7rem, 14vw, 14rem) var(--pad);
  border-top: 1px solid var(--ink);
}

.backstage-statement .eyebrow { grid-row: 1 / span 2; }

.backstage-statement h2 {
  max-width: 23ch;
  margin: 0;
  font-family: var(--display);
  font-size: clamp(1.7rem, 3.4vw, 3.5rem);
  font-weight: 350;
  letter-spacing: -.05em;
  line-height: 1.06;
}

.backstage-statement > p:last-child {
  max-width: 48rem;
  margin: clamp(2rem, 4vw, 4rem) 0 0;
  color: var(--muted);
  font-family: var(--serif);
  font-size: .94rem;
  line-height: 1.7;
}

.backstage-opening,
.backstage-diary,
.backstage-transformation {
  padding: clamp(5rem, 10vw, 10rem) var(--pad);
  border-top: 1px solid var(--ink);
}

.backstage-section-heading {
  display: grid;
  grid-template-columns: minmax(150px, .32fr) minmax(0, .68fr);
  gap: 2rem;
  margin-bottom: clamp(3rem, 6vw, 6rem);
}

.backstage-section-heading h2,
.backstage-voices h2 {
  max-width: 24ch;
  margin: 0 0 1rem;
  font-family: var(--display);
  font-size: var(--statement-size);
  font-weight: 350;
  letter-spacing: -.035em;
  line-height: 1.2;
}

.backstage-section-heading div > p {
  max-width: 42rem;
  margin: 0;
  color: var(--muted);
  font-family: var(--serif);
  font-size: .88rem;
  line-height: 1.65;
}

.backstage-media-placeholder {
  position: relative;
  display: flex;
  min-height: 420px;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background: var(--paper-soft);
  border: 1px solid var(--line);
  color: var(--muted);
  text-align: center;
}

.backstage-media-placeholder--film { aspect-ratio: 16 / 9; min-height: 0; background: #e3e0d8; }

.backstage-media-placeholder::before,
.backstage-media-placeholder::after {
  position: absolute;
  width: 2rem;
  height: 2rem;
  border-color: var(--ink);
  border-style: solid;
  content: "";
  opacity: .34;
}

.backstage-media-placeholder::before { top: 1rem; left: 1rem; border-width: 1px 0 0 1px; }
.backstage-media-placeholder::after { right: 1rem; bottom: 1rem; border-width: 0 1px 1px 0; }
.backstage-media-placeholder div { display: grid; gap: .45rem; }
.backstage-media-placeholder b { color: var(--ink); font-family: var(--display); font-size: clamp(1.2rem, 2.2vw, 2rem); font-weight: 400; letter-spacing: -.035em; }
.backstage-media-placeholder small { font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; }

.backstage-rec,
.backstage-time {
  position: absolute;
  top: 1.5rem;
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.backstage-rec { left: 1.5rem; display: flex; align-items: center; gap: .5rem; color: var(--ink); }
.backstage-rec i { width: .55rem; height: .55rem; border-radius: 50%; background: #a34d43; }
.backstage-time { right: 1.5rem; }

.backstage-diary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}

.backstage-slot {
  display: flex;
  min-height: 380px;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.25rem;
  border-right: 1px solid var(--line);
}

.backstage-slot:last-child { border-right: 0; }
.backstage-slot > span { color: var(--muted); font-size: .65rem; letter-spacing: .14em; }
.backstage-slot p { margin-bottom: .55rem; font-family: var(--display); font-size: clamp(1.2rem, 2.1vw, 2rem); font-weight: 350; letter-spacing: -.04em; }
.backstage-slot small { color: var(--muted); font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; }

.backstage-comparison {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--ink);
}

.backstage-comparison figure { position: relative; min-height: 600px; margin: 0; overflow: hidden; border-right: 1px solid var(--ink); }
.backstage-comparison figure img { width: 100%; height: 100%; object-fit: cover; }
.backstage-comparison .backstage-media-placeholder { min-height: 600px; border: 0; }

.backstage-voices {
  display: grid;
  grid-template-columns: minmax(180px, .32fr) minmax(0, .68fr);
  gap: 2rem;
  padding: clamp(6rem, 12vw, 12rem) var(--pad);
  border-top: 1px solid var(--ink);
}

.backstage-voices > div { border-top: 1px solid var(--ink); }
.backstage-voices article { display: grid; grid-template-columns: minmax(120px, .35fr) minmax(0, 1fr) auto; gap: 1.5rem; align-items: baseline; padding: 1.3rem 0; border-bottom: 1px solid var(--line); }
.backstage-voices article span { font-size: .7rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.backstage-voices article p { margin: 0; color: var(--muted); font-family: var(--serif); font-size: .86rem; }
.backstage-voices article small { color: var(--muted); font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; }

.backstage-ending {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3rem;
  align-items: end;
  padding: clamp(6rem, 11vw, 11rem) var(--pad);
  border-top: 1px solid var(--ink);
  background: var(--paper-soft);
}

.backstage-ending p { max-width: 26ch; margin: 0; font-family: var(--display); font-size: var(--statement-size); font-weight: 350; letter-spacing: -.035em; line-height: 1.25; }

@media (max-width: 900px) {
  .event-socials { grid-template-columns: 1fr; }
  .backstage-hero { min-height: auto; grid-template-columns: 1fr; }
  .backstage-hero-copy { min-height: 70vh; border-right: 0; border-bottom: 1px solid var(--ink); }
  .backstage-hero-image { min-height: 70vh; }
  .backstage-statement,
  .backstage-section-heading,
  .backstage-voices { grid-template-columns: 1fr; }
  .backstage-statement .eyebrow { grid-row: auto; }
  .backstage-comparison figure,
  .backstage-comparison .backstage-media-placeholder { min-height: 480px; }
}

@media (max-width: 620px) {
  .atlas-gateway { padding-right: 1.25rem; padding-left: 1.25rem; }
  .atlas-gateway > a { min-height: 250px; grid-template-columns: 1fr auto; grid-template-rows: auto 1fr auto; gap: 1.3rem; }
  .atlas-gateway-kicker { grid-column: 1 / -1; }
  .atlas-gateway strong { grid-column: 1 / -1; font-size: clamp(2.7rem, 13vw, 4rem); }
  .atlas-gateway-meta { grid-column: 1; grid-row: 3; }
  .atlas-gateway i { width: 3.25rem; grid-column: 2; grid-row: 3; }
  .event-socials { padding-right: 1.25rem; padding-left: 1.25rem; }
  .event-social-list article { grid-template-columns: 1fr auto; gap: .7rem 1rem; }
  .event-social-list article > span { grid-column: 1 / -1; }
  .backstage-hero-copy { min-height: 66vh; padding-right: 1.25rem; padding-left: 1.25rem; }
  .backstage-hero-copy h1 { font-size: clamp(2.85rem, 12.6vw, 4.25rem); }
  .backstage-hero-image { min-height: 58vh; }
  .backstage-statement,
  .backstage-opening,
  .backstage-diary,
  .backstage-transformation,
  .backstage-voices,
  .backstage-ending { padding-right: 1.25rem; padding-left: 1.25rem; }
  .backstage-diary-grid { grid-template-columns: 1fr; }
  .backstage-slot { min-height: 240px; border-right: 0; border-bottom: 1px solid var(--line); }
  .backstage-slot:last-child { border-bottom: 0; }
  .backstage-comparison { grid-template-columns: 1fr; }
  .backstage-comparison figure { min-height: 62vh; border-right: 0; border-bottom: 1px solid var(--ink); }
  .backstage-comparison .backstage-media-placeholder { min-height: 420px; }
  .backstage-voices article { grid-template-columns: 1fr; gap: .6rem; }
  .backstage-ending { grid-template-columns: 1fr; align-items: start; }
  .backstage-ending .button { justify-self: start; }
}

/* Udine Contemporanea — diario backstage */
.backstage-path {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
  background: var(--paper-soft);
}

.backstage-path span {
  display: flex;
  gap: .75rem;
  padding: 1rem 1.25rem;
  border-right: 1px solid var(--line);
  font-size: .67rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.backstage-path span:last-child { border-right: 0; }
.backstage-path b { font-weight: 500; opacity: .5; }

.backstage-opening { overflow: hidden; }

.backstage-main-film {
  margin: 0;
  border: 1px solid var(--ink);
  background: var(--paper-soft);
}

.backstage-main-film video {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #d8d3c9;
  object-fit: contain;
}

.backstage-main-film figcaption,
.backstage-film-card figcaption {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: baseline;
  padding: .8rem 1rem;
  border-top: 1px solid var(--line);
  font-size: .64rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.backstage-main-film figcaption p,
.backstage-film-card figcaption p { margin: 0; letter-spacing: 0; text-transform: none; }
.backstage-main-film figcaption small,
.backstage-film-card figcaption small { color: var(--muted); font-size: .6rem; }

.backstage-film-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: clamp(1.5rem, 3vw, 3rem);
  background: var(--line);
  border: 1px solid var(--ink);
}

.backstage-film-card { min-width: 0; margin: 0; background: var(--paper); }
.backstage-film-card video {
  display: block;
  width: 100%;
  height: clamp(430px, 48vw, 620px);
  background: #d8d3c9;
  object-fit: contain;
}

.backstage-diary { padding: clamp(5rem, 10vw, 10rem) 0 0; }
.backstage-diary > .backstage-section-heading { padding: 0 var(--pad); }

.backstage-chapter {
  padding: clamp(5rem, 9vw, 9rem) var(--pad);
  border-top: 1px solid var(--ink);
}

.backstage-chapter-head {
  display: grid;
  grid-template-columns: minmax(90px, .23fr) minmax(0, .77fr);
  gap: 2rem;
  margin-bottom: clamp(2.5rem, 5vw, 5rem);
}

.backstage-chapter-head > span {
  color: var(--muted);
  font-size: .65rem;
  letter-spacing: .12em;
}

.backstage-chapter-head h3 {
  margin: 0 0 1rem;
  font-family: var(--display);
  font-size: clamp(1.8rem, 3.3vw, 3.3rem);
  font-weight: 350;
  letter-spacing: -.045em;
  line-height: 1.04;
}

.backstage-chapter-head p {
  max-width: 42rem;
  margin: 0;
  color: var(--muted);
  font-family: var(--serif);
  font-size: .86rem;
  line-height: 1.72;
}

.backstage-grid {
  display: grid;
  gap: 1px;
  overflow: hidden;
  background: var(--line);
  border: 1px solid var(--line);
}

.backstage-grid figure {
  position: relative;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: var(--paper-soft);
}

.backstage-grid img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  transition: transform .8s cubic-bezier(.2,.7,.2,1);
}

.backstage-grid figure:hover img { transform: scale(1.018); }

.backstage-grid figcaption {
  position: absolute;
  right: .7rem;
  bottom: .65rem;
  left: .7rem;
  padding-top: .55rem;
  border-top: 1px solid rgba(244, 241, 234, .72);
  color: #f6f2ea;
  font-size: .58rem;
  letter-spacing: .1em;
  text-shadow: 0 1px 12px rgba(0,0,0,.65);
  text-transform: uppercase;
}

.backstage-grid--ideas { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.backstage-grid--ideas figure:first-child { grid-row: span 2; }
.backstage-grid--ideas figure:nth-child(3),
.backstage-grid--ideas figure:nth-child(7) { grid-column: span 2; }
.backstage-grid--ideas figure:nth-child(3) img,
.backstage-grid--ideas figure:nth-child(7) img { aspect-ratio: 3 / 2; }

.backstage-grid--looking { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.backstage-grid--city { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.backstage-grid--city .backstage-grid-wide { grid-column: span 2; }
.backstage-grid--city .backstage-grid-wide img { aspect-ratio: 3 / 2; }
.backstage-grid--city figure:last-child { grid-column: span 3; }
.backstage-grid--city figure:last-child img { aspect-ratio: 16 / 9; }
.backstage-grid--bodies { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.backstage-grid--bodies .backstage-grid-tall { grid-row: span 2; }

.backstage-transformations { display: grid; gap: clamp(1.5rem, 3vw, 3rem); }
.backstage-comparison { background: var(--line); }
.backstage-comparison figure { aspect-ratio: 4 / 3; min-height: 0; background: var(--paper-soft); }
.backstage-comparison figure:last-child { border-right: 0; }
.backstage-comparison:nth-child(2) figure { aspect-ratio: 3 / 4; }
.backstage-comparison figure img { display: block; }

.backstage-voices article a { justify-self: end; white-space: nowrap; }

@media (max-width: 900px) {
  .backstage-grid--ideas,
  .backstage-grid--city,
  .backstage-grid--bodies { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .backstage-grid--ideas figure:first-child { grid-row: auto; }
  .backstage-grid--ideas figure:nth-child(3),
  .backstage-grid--ideas figure:nth-child(7),
  .backstage-grid--city .backstage-grid-wide,
  .backstage-grid--city figure:last-child { grid-column: span 2; }
  .backstage-grid--bodies .backstage-grid-tall { grid-row: auto; }
  .backstage-comparison { grid-template-columns: 1fr 1fr; }
  .backstage-comparison figure,
  .backstage-comparison:nth-child(2) figure { min-height: 0; }
}

@media (max-width: 620px) {
  .backstage-path { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .backstage-path span:nth-child(2) { border-right: 0; }
  .backstage-path span:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .backstage-main-film figcaption,
  .backstage-film-card figcaption { grid-template-columns: auto 1fr; }
  .backstage-main-film figcaption small,
  .backstage-film-card figcaption small { display: none; }
  .backstage-film-strip {
    display: flex;
    gap: 1px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
  }
  .backstage-film-card { min-width: 78vw; scroll-snap-align: start; }
  .backstage-film-card video { height: min(128vw, 600px); }
  .backstage-diary > .backstage-section-heading,
  .backstage-chapter { padding-right: 1.25rem; padding-left: 1.25rem; }
  .backstage-chapter-head { grid-template-columns: 1fr; gap: 1rem; }
  .backstage-grid--looking { grid-template-columns: 1fr; }
  .backstage-comparison { grid-template-columns: 1fr; }
  .backstage-comparison figure,
  .backstage-comparison:nth-child(2) figure { min-height: 0; aspect-ratio: 4 / 5; border-right: 0; }
  .backstage-comparison figure:first-child { border-bottom: 1px solid var(--ink); }
  .backstage-voices article a { justify-self: start; }
}

/* Udine Contemporanea — percorsi separati e popup */
body.backstage-modal-open { overflow: hidden; }

.backstage--portals [data-backstage-reveal] {
  opacity: 0;
  transform: translateY(2rem);
  transition: opacity .9s ease, transform 1.05s cubic-bezier(.2,.7,.2,1);
}

.backstage--portals [data-backstage-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

.backstage-projects {
  padding: clamp(6rem, 11vw, 11rem) var(--pad);
  border-top: 1px solid var(--ink);
}

.backstage-portals {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(.8rem, 1.5vw, 1.5rem);
}

.backstage-portal {
  position: relative;
  min-height: clamp(390px, 48vw, 690px);
  grid-column: span 5;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--ink);
  background: var(--paper-soft);
  color: #f6f2ea;
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.backstage-portal:nth-child(1),
.backstage-portal:nth-child(4),
.backstage-portal:nth-child(5) { grid-column: span 7; }

.backstage-portal > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: filter 1s ease, transform 1.2s cubic-bezier(.2,.7,.2,1);
}

.backstage-portal::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15,15,14,.06) 15%, rgba(15,15,14,.68) 100%);
  content: "";
  transition: background .8s ease;
}

.backstage-portal:hover > img,
.backstage-portal:focus-visible > img { filter: saturate(.78); transform: scale(1.035); }
.backstage-portal:hover::after,
.backstage-portal:focus-visible::after { background: linear-gradient(180deg, rgba(239,233,222,.1), rgba(15,15,14,.78)); }

.backstage-portal-index,
.backstage-portal-title { position: absolute; z-index: 3; transition: opacity .6s ease, transform .7s ease; }

.backstage-portal-index {
  top: 1.25rem;
  left: 1.25rem;
  font-size: .62rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.backstage-portal-title {
  right: 1.25rem;
  bottom: 1.35rem;
  left: 1.25rem;
  max-width: 13ch;
  padding-right: 4.5rem;
  font-family: var(--display);
  font-size: clamp(2rem, 4.2vw, 4.8rem);
  font-weight: 320;
  letter-spacing: -.06em;
  line-height: .94;
}

.backstage-portal--interlude::after { background: linear-gradient(180deg, rgba(232,226,214,.04), rgba(39,37,34,.78)); }

.backstage-portal-overload {
  position: absolute;
  z-index: 2;
  inset: 0;
  overflow: hidden;
  background: rgba(18,17,16,.42);
  opacity: 0;
  pointer-events: none;
  transition: opacity .62s ease;
}

.backstage-overload-frame {
  position: absolute;
  display: block;
  overflow: hidden;
  border: 1px solid rgba(246,242,234,.82);
  background: #171614;
  box-shadow: 0 1.2rem 4rem rgba(0,0,0,.3);
  opacity: 0;
  will-change: opacity, transform;
}

.backstage-overload-frame--a {
  top: 8%;
  left: -4%;
  width: 54%;
  height: 56%;
  transform: rotate(-2deg) translate(-8%, 8%) scale(.9);
}

.backstage-overload-frame--b {
  top: 5%;
  right: 5%;
  width: 48%;
  height: 68%;
  transform: rotate(1.6deg) translate(8%, -5%) scale(.9);
}

.backstage-overload-frame--c {
  right: 17%;
  bottom: 4%;
  width: 58%;
  height: 42%;
  transform: rotate(-.7deg) translateY(12%) scale(.9);
}

.backstage-overload-frame img,
.backstage-overload-frame video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.backstage-overload-signal {
  position: absolute;
  z-index: 5;
  right: 1.1rem;
  bottom: 1rem;
  left: 1.1rem;
  display: flex;
  align-items: center;
  gap: .75rem;
  color: #f6f2ea;
  opacity: 0;
  transform: translateY(.7rem);
}

.backstage-overload-signal i {
  display: block;
  width: clamp(2.5rem, 6vw, 6rem);
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
}

.backstage-overload-signal b {
  font-size: .58rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.backstage-portal.is-primed > img {
  filter: grayscale(.45) brightness(.48) blur(2px);
  transform: scale(1.08);
}

.backstage-portal.is-primed::after { background: rgba(15,14,13,.34); }
.backstage-portal.is-primed .backstage-portal-overload { opacity: 1; }
.backstage-portal.is-primed .backstage-portal-index,
.backstage-portal.is-primed .backstage-portal-title { opacity: .08; transform: translateY(.4rem); }

.backstage-portal.is-primed .backstage-overload-frame--a {
  animation: backstage-overload-a 5.2s .04s both cubic-bezier(.2,.7,.2,1);
}

.backstage-portal.is-primed .backstage-overload-frame--b {
  animation: backstage-overload-b 5.2s .15s both cubic-bezier(.2,.7,.2,1);
}

.backstage-portal.is-primed .backstage-overload-frame--c {
  animation: backstage-overload-c 5.2s .27s both cubic-bezier(.2,.7,.2,1);
}

.backstage-portal.is-primed .backstage-overload-signal {
  animation: backstage-overload-signal .7s .72s both ease;
}

.backstage-portal.is-primed .backstage-overload-signal i {
  animation: backstage-overload-line .8s .92s both cubic-bezier(.2,.7,.2,1);
}

@keyframes backstage-overload-a {
  0% { opacity: 0; transform: rotate(-2deg) translate(-8%, 8%) scale(.9); }
  12%, 86% { opacity: .96; transform: rotate(-2deg) translate(0, 0) scale(1); }
  100% { opacity: .84; transform: rotate(-1.4deg) translate(2%, -1%) scale(1.025); }
}

@keyframes backstage-overload-b {
  0% { opacity: 0; transform: rotate(1.6deg) translate(8%, -5%) scale(.9); }
  14%, 84% { opacity: .96; transform: rotate(1.6deg) translate(0, 0) scale(1); }
  100% { opacity: .82; transform: rotate(1deg) translate(-2%, 2%) scale(1.03); }
}

@keyframes backstage-overload-c {
  0% { opacity: 0; transform: rotate(-.7deg) translateY(12%) scale(.9); }
  15%, 82% { opacity: .96; transform: rotate(-.7deg) translateY(0) scale(1); }
  100% { opacity: .88; transform: rotate(-.3deg) translateY(-2%) scale(1.035); }
}

@keyframes backstage-overload-signal {
  to { opacity: 1; transform: translateY(0); }
}

@keyframes backstage-overload-line {
  to { transform: scaleX(1); }
}

.backstage-dialog {
  position: fixed;
  inset: 0;
  width: calc(100vw - 2rem);
  max-width: 1540px;
  height: calc(100dvh - 2rem);
  max-height: none;
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(24,23,21,.72);
  background: rgba(244,241,234,.97);
  color: var(--ink);
  opacity: 0;
  transform: scale(.985) translateY(.7rem);
  transition: opacity .36s ease, transform .48s cubic-bezier(.2,.7,.2,1);
}

.backstage-dialog::backdrop {
  background: rgba(15,14,13,.68);
  backdrop-filter: blur(9px);
  transition: background .36s ease, backdrop-filter .36s ease;
}

.backstage-dialog.is-open { opacity: 1; transform: scale(1) translateY(0); }
.backstage-dialog.is-closing { opacity: 0; transform: scale(.992) translateY(.5rem); }
.backstage-dialog.is-closing::backdrop { background: transparent; backdrop-filter: blur(0); }

.backstage-dialog-shell {
  height: 100%;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: var(--muted) transparent;
}

.backstage-dialog-bar {
  position: sticky;
  z-index: 8;
  top: 0;
  display: flex;
  min-height: 64px;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .8rem clamp(1.1rem, 2.5vw, 2.5rem);
  border-bottom: 1px solid rgba(24,23,21,.42);
  background: rgba(244,241,234,.82);
  backdrop-filter: blur(18px);
  font-size: .62rem;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.backstage-dialog-bar button {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: .55rem 0 .55rem .8rem;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}

.backstage-dialog-bar i { position: relative; display: block; width: 1.25rem; height: 1.25rem; }
.backstage-dialog-bar i::before,
.backstage-dialog-bar i::after {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  background: currentColor;
  content: "";
}
.backstage-dialog-bar i::before { transform: rotate(45deg); }
.backstage-dialog-bar i::after { transform: rotate(-45deg); }

.backstage-dialog-intro {
  display: grid;
  grid-template-columns: minmax(130px, .22fr) minmax(0, .5fr) minmax(220px, .28fr);
  gap: 2rem;
  align-items: start;
  padding: clamp(4rem, 8vw, 8rem) clamp(1.5rem, 5vw, 6rem);
}

.backstage-dialog-intro h2 {
  max-width: 13ch;
  margin: 0;
  font-family: var(--display);
  font-size: clamp(2.7rem, 6.2vw, 7rem);
  font-weight: 300;
  letter-spacing: -.075em;
  line-height: .86;
}

.backstage-dialog-intro > p:last-child {
  margin: 0;
  color: var(--muted);
  font-family: var(--serif);
  font-size: .9rem;
  line-height: 1.75;
}

.backstage-dialog-film {
  width: calc(100% - clamp(3rem, 10vw, 12rem));
  margin: 0 auto clamp(4rem, 8vw, 8rem);
  border: 1px solid var(--line);
  background: rgba(224,218,207,.72);
}

.backstage-dialog-film video {
  display: block;
  width: 100%;
  max-height: 82vh;
  aspect-ratio: 16 / 9;
  background: transparent;
  object-fit: contain;
}

.backstage-dialog-film--portrait { max-width: 620px; }
.backstage-dialog-film--portrait video { aspect-ratio: 9 / 16; }

.backstage-dialog-film figcaption,
.backstage-dialog-diptych figcaption {
  padding: .8rem 1rem;
  border-top: 1px solid var(--line);
  font-size: .62rem;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.backstage-dialog-films {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  width: calc(100% - clamp(3rem, 10vw, 12rem));
  max-width: 980px;
  margin: 0 auto clamp(4rem, 8vw, 8rem);
}

.backstage-dialog-films .backstage-dialog-film { width: 100%; margin: 0; }
.backstage-dialog-films video { height: min(68vh, 760px); aspect-ratio: 9 / 16; }

.backstage-dialog-gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: 0 clamp(1.5rem, 5vw, 6rem) clamp(5rem, 10vw, 10rem);
  overflow: hidden;
  background: var(--line);
  border: 1px solid var(--line);
}

.backstage-dialog-gallery figure,
.backstage-dialog-diptych figure,
.backstage-dialog-final { position: relative; margin: 0; overflow: hidden; background: var(--paper-soft); }

.backstage-dialog-gallery img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 420px;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}

.backstage-dialog-gallery figcaption {
  position: absolute;
  right: .7rem;
  bottom: .7rem;
  left: .7rem;
  padding-top: .55rem;
  border-top: 1px solid rgba(246,242,234,.7);
  color: #f6f2ea;
  font-size: .58rem;
  letter-spacing: .1em;
  text-shadow: 0 1px 12px rgba(0,0,0,.7);
  text-transform: uppercase;
}

.backstage-dialog-gallery--five figure:first-child,
.backstage-dialog-gallery--five figure:last-child { grid-column: span 2; }
.backstage-dialog-gallery--five figure:first-child img { aspect-ratio: 3 / 2; }
.backstage-dialog-gallery--two { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-right: clamp(1.5rem, 12vw, 14rem); margin-left: clamp(1.5rem, 12vw, 14rem); }
.backstage-dialog-gallery--regia { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.backstage-dialog-gallery--regia figure { grid-column: span 2; }
.backstage-dialog-gallery--regia figure:nth-child(4),
.backstage-dialog-gallery--regia figure:nth-child(5) { grid-column: span 3; }

.backstage-dialog-final {
  margin: 0 clamp(1.5rem, 5vw, 6rem) clamp(5rem, 10vw, 10rem);
  border: 1px solid var(--ink);
}

.backstage-dialog-final img { display: block; width: 100%; max-height: 86vh; object-fit: contain; }
.backstage-dialog-final--portrait { background: #e2ddd2; }
.backstage-dialog-final--portrait img { width: auto; max-width: 100%; margin: 0 auto; }
.backstage-dialog-final figcaption {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 2rem;
  padding: 1rem 1.25rem;
  border-top: 1px solid var(--ink);
}
.backstage-dialog-final figcaption span { font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; }
.backstage-dialog-final h3 { margin: 0; font-family: var(--display); font-size: clamp(1.2rem, 2.3vw, 2.25rem); font-weight: 350; letter-spacing: -.035em; }

.backstage-dialog-diptych {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin: 0 clamp(1.5rem, 8vw, 10rem) clamp(5rem, 10vw, 10rem);
  background: var(--ink);
  border: 1px solid var(--ink);
}
.backstage-dialog-diptych img { display: block; width: 100%; height: min(76vh, 900px); object-fit: contain; }
.backstage-dialog-diptych--direction { margin-right: clamp(1.5rem, 12vw, 14rem); margin-left: clamp(1.5rem, 12vw, 14rem); }
.backstage-dialog-diptych--direction img { object-fit: cover; }
.backstage-dialog-diptych--direction figcaption { padding: .8rem 1rem; background: var(--paper-soft); color: var(--ink); font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; }

.backstage-dialog-subchapter { display: grid; grid-template-columns: minmax(130px, .25fr) minmax(0, 1fr); gap: 2rem; margin: 0 clamp(1.5rem, 12vw, 14rem) 2rem; padding-top: clamp(1rem, 3vw, 3rem); border-top: 1px solid var(--ink); }
.backstage-dialog-subchapter h3 { max-width: 14ch; margin: 0; font-family: var(--display); font-size: clamp(2rem, 4vw, 4.6rem); font-weight: 320; letter-spacing: -.055em; line-height: .95; }

.backstage-dialog-footer {
  display: flex;
  justify-content: center;
  padding: 0 1.5rem clamp(4rem, 8vw, 8rem);
}

.backstage-dialog.is-open .backstage-dialog-intro,
.backstage-dialog.is-open .backstage-dialog-film,
.backstage-dialog.is-open .backstage-dialog-films,
.backstage-dialog.is-open .backstage-dialog-gallery,
.backstage-dialog.is-open .backstage-dialog-final,
.backstage-dialog.is-open .backstage-dialog-diptych {
  animation: backstage-dialog-rise .82s both cubic-bezier(.2,.7,.2,1);
}

@keyframes backstage-dialog-rise {
  from { opacity: 0; transform: translateY(1.6rem); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 900px) {
  .backstage-portal,
  .backstage-portal:nth-child(1),
  .backstage-portal:nth-child(4),
  .backstage-portal:nth-child(5) { grid-column: span 6; }
  .backstage-dialog-intro { grid-template-columns: 1fr; }
  .backstage-dialog-intro h2 { max-width: 15ch; }
  .backstage-dialog-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .backstage-dialog-gallery--regia { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .backstage-dialog-gallery--regia figure,
  .backstage-dialog-gallery--regia figure:nth-child(4),
  .backstage-dialog-gallery--regia figure:nth-child(5) { grid-column: auto; }
}

@media (max-width: 620px) {
  .backstage-projects { padding-right: 1.25rem; padding-left: 1.25rem; }
  .backstage-portal,
  .backstage-portal:nth-child(1),
  .backstage-portal:nth-child(4),
  .backstage-portal:nth-child(5) { min-height: 72vh; grid-column: 1 / -1; }
  .backstage-portal-title { padding-right: 3.25rem; font-size: clamp(2.4rem, 12vw, 4.1rem); }
  .backstage-overload-frame--a { width: 62%; height: 52%; }
  .backstage-overload-frame--b { top: 13%; right: -5%; width: 58%; height: 61%; }
  .backstage-overload-frame--c { right: 8%; bottom: 7%; width: 72%; height: 38%; }
  .backstage-overload-signal { right: .9rem; bottom: .9rem; left: .9rem; }
  .backstage-dialog { width: 100vw; height: 100dvh; border: 0; }
  .backstage-dialog-bar { min-height: 58px; }
  .backstage-dialog-bar > span { max-width: 19ch; }
  .backstage-dialog-intro { padding-right: 1.25rem; padding-left: 1.25rem; }
  .backstage-dialog-intro h2 { font-size: clamp(2.7rem, 15vw, 4.7rem); }
  .backstage-dialog-film,
  .backstage-dialog-films { width: calc(100% - 2.5rem); }
  .backstage-dialog-films { grid-template-columns: 1fr; }
  .backstage-dialog-gallery { margin-right: 1.25rem; margin-left: 1.25rem; }
  .backstage-dialog-gallery img { min-height: 320px; }
  .backstage-dialog-gallery--five figure:first-child,
  .backstage-dialog-gallery--five figure:last-child { grid-column: span 2; }
  .backstage-dialog-gallery--two { margin-right: 1.25rem; margin-left: 1.25rem; }
  .backstage-dialog-final,
  .backstage-dialog-diptych { margin-right: 1.25rem; margin-left: 1.25rem; }
  .backstage-dialog-subchapter { grid-template-columns: 1fr; margin-right: 1.25rem; margin-left: 1.25rem; }
  .backstage-dialog-diptych { grid-template-columns: 1fr; }
  .backstage-dialog-diptych img { height: 68vh; }
  .backstage-dialog-final figcaption { align-items: flex-start; flex-direction: column; gap: .5rem; }
}

@media (prefers-reduced-motion: reduce) {
  .backstage--portals [data-backstage-reveal] { opacity: 1; transform: none; transition: none; }
  .backstage-portal > img,
  .backstage-dialog { transition: none; }
  .backstage-portal.is-primed .backstage-overload-frame { animation: none; opacity: .9; transform: none; }
  .backstage-portal.is-primed .backstage-overload-signal { animation: none; opacity: 1; transform: none; }
  .backstage-portal.is-primed .backstage-overload-signal i { animation: none; transform: scaleX(1); }
  .backstage-dialog.is-open .backstage-dialog-intro,
  .backstage-dialog.is-open .backstage-dialog-film,
  .backstage-dialog.is-open .backstage-dialog-films,
  .backstage-dialog.is-open .backstage-dialog-gallery,
  .backstage-dialog.is-open .backstage-dialog-final,
  .backstage-dialog.is-open .backstage-dialog-diptych { animation: none; }
}

@media (prefers-reduced-motion: no-preference) {
  .journey-frame:not(.journey-frame--portal) {
    animation: journey-rise linear both;
    animation-range: entry 5% cover 28%;
    animation-timeline: view();
  }

  @keyframes journey-rise {
    from { opacity: .25; transform: translateY(2.5rem); }
    to { opacity: 1; transform: translateY(0); }
  }
}

/* Udine Contemporanea — Atlante dell’impossibile */
.city-atlas {
  --atlas-dark: #12110f;
  --atlas-light: #f0ece2;
  --atlas-line: rgba(242,237,226,.35);
  background: var(--atlas-dark);
  color: var(--atlas-light);
}

.city-atlas-hero {
  display: grid;
  min-height: 72vh;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .55fr);
  gap: clamp(3rem, 8vw, 9rem);
  align-items: end;
  padding: clamp(7rem, 13vw, 13rem) var(--pad) clamp(4rem, 7vw, 7rem);
  border-bottom: 1px solid var(--atlas-line);
}

.city-atlas-hero h1 {
  max-width: 10ch;
  margin: .7rem 0 0;
  font-family: var(--display);
  font-size: clamp(4rem, 10.5vw, 10.8rem);
  font-weight: 290;
  letter-spacing: -.085em;
  line-height: .78;
}

.city-atlas-hero-copy { display: grid; gap: clamp(1.5rem, 3vw, 3rem); }
.city-atlas-hero-copy > p { max-width: 36ch; margin: 0; color: rgba(242,237,226,.74); font-family: var(--serif); font-size: .9rem; line-height: 1.8; }
.city-atlas-hero-copy .city-atlas-coordinate-key { position: relative; max-width: 29rem; margin-top: -1rem; padding: 1rem 0 0 2rem; border-top: 1px solid var(--atlas-line); color: rgba(242,237,226,.68); font-family: var(--sans); font-size: .7rem; line-height: 1.55; letter-spacing: .04em; }
.city-atlas-coordinate-key i { position: absolute; top: .9rem; left: .1rem; width: .75rem; height: .75rem; border: 1px solid currentColor; border-radius: 50%; }
.city-atlas-coordinate-key i::after { position: absolute; top: 50%; left: calc(100% + .3rem); width: .55rem; height: 1px; background: currentColor; content: ""; }
.city-atlas-hero-copy dl { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; border-top: 1px solid var(--atlas-line); }
.city-atlas-hero-copy dl div { padding: 1rem .7rem 0 0; border-right: 1px solid var(--atlas-line); }
.city-atlas-hero-copy dl div:last-child { padding-left: .7rem; border-right: 0; }
.city-atlas-hero-copy dt { color: rgba(242,237,226,.55); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
.city-atlas-hero-copy dd { margin: .45rem 0 0; font-family: var(--display); font-size: clamp(1.5rem, 3vw, 2.5rem); font-weight: 350; }

.city-atlas-experience {
  display: grid;
  min-height: 82vh;
  grid-template-columns: minmax(0, 1fr) minmax(330px, 31vw);
  border-bottom: 1px solid var(--atlas-line);
}

.city-atlas-map {
  position: relative;
  min-height: 82vh;
  overflow: hidden;
  background: #ddd7ca;
  isolation: isolate;
}

.city-atlas-map iframe {
  position: absolute;
  z-index: 0;
  inset: -10px;
  width: calc(100% + 20px);
  height: calc(100% + 20px);
  border: 0;
  filter: grayscale(1) sepia(.22) contrast(.9) brightness(1.05);
  pointer-events: none;
}

.city-atlas-map-wash {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(135deg, rgba(240,234,221,.58), rgba(199,190,175,.14));
  mix-blend-mode: multiply;
  pointer-events: none;
}

.city-atlas-markers { position: absolute; z-index: 3; inset: 0; }

.city-atlas-pin {
  position: absolute;
  top: var(--atlas-y);
  left: var(--atlas-x);
  width: 3.3rem;
  height: 4.15rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  transform: translate(-50%, -50%) rotate(var(--atlas-tilt));
  transition: z-index 0s, transform .5s cubic-bezier(.2,.7,.2,1);
}

.city-atlas-pin::after {
  position: absolute;
  top: calc(100% - .08rem);
  left: 50%;
  width: 1px;
  height: 1.1rem;
  background: rgba(18,17,15,.72);
  content: "";
  transform-origin: top;
}

.city-atlas-pin-photo {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
  border: 3px solid #f3eee4;
  background: #ddd6c8;
  box-shadow: 0 .65rem 1.8rem rgba(31,28,24,.28);
  transition: border-color .35s ease, box-shadow .45s ease;
}

.city-atlas-pin-photo img { width: 100%; height: 100%; object-fit: cover; transition: filter .45s ease, transform .65s cubic-bezier(.2,.7,.2,1); }

.city-atlas-pin-count {
  position: absolute;
  z-index: 2;
  top: -.55rem;
  right: -.55rem;
  display: grid;
  width: 1.6rem;
  height: 1.6rem;
  place-items: center;
  border: 1px solid #f3eee4;
  border-radius: 50%;
  background: var(--atlas-dark);
  color: var(--atlas-light);
  font-size: .62rem;
  letter-spacing: .04em;
}

.city-atlas-pin-name {
  position: absolute;
  top: calc(100% + 1.35rem);
  left: 50%;
  width: max-content;
  max-width: 13rem;
  padding: .45rem .6rem;
  border: 1px solid rgba(18,17,15,.45);
  background: rgba(242,237,226,.9);
  box-shadow: 0 .5rem 1.5rem rgba(31,28,24,.14);
  font-size: .65rem;
  letter-spacing: .05em;
  line-height: 1.3;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, .4rem);
  transition: opacity .35s ease, transform .35s ease;
}

.city-atlas-pin:hover,
.city-atlas-pin:focus-visible,
.city-atlas-pin.is-active { z-index: 8; transform: translate(-50%, -50%) rotate(0) scale(1.3); }
.city-atlas-pin:hover .city-atlas-pin-photo img,
.city-atlas-pin:focus-visible .city-atlas-pin-photo img,
.city-atlas-pin.is-active .city-atlas-pin-photo img { filter: saturate(1.08); transform: scale(1.06); }
.city-atlas-pin.is-active .city-atlas-pin-photo { border-color: var(--atlas-dark); box-shadow: 0 0 0 2px #f3eee4, 0 1rem 2.2rem rgba(31,28,24,.32); }
.city-atlas-pin:hover .city-atlas-pin-name,
.city-atlas-pin:focus-visible .city-atlas-pin-name { opacity: 1; transform: translate(-50%, 0); }

.city-atlas-north {
  position: absolute;
  z-index: 4;
  top: 1.3rem;
  right: 1.3rem;
  display: grid;
  justify-items: center;
  gap: .35rem;
  color: rgba(18,17,15,.72);
  font-size: .65rem;
  letter-spacing: .14em;
}
.city-atlas-north i { width: 1px; height: 2.6rem; background: currentColor; }

.city-atlas-instruction,
.city-atlas-credit {
  position: absolute;
  z-index: 4;
  bottom: 1rem;
  margin: 0;
  color: rgba(18,17,15,.7);
  font-size: .62rem;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.city-atlas-instruction { left: 1rem; }
.city-atlas-credit { right: 1rem; text-transform: none; }
.city-atlas-credit a { color: inherit; }

.city-atlas-panel {
  min-width: 0;
  padding: clamp(1.5rem, 3vw, 3rem);
  border-left: 1px solid var(--atlas-line);
  background: var(--atlas-dark);
  color: var(--atlas-light);
  transition: opacity .24s ease, transform .35s ease;
}
.city-atlas-panel.is-updating { opacity: .25; transform: translateX(.5rem); }
.city-atlas-panel-head { min-height: 14rem; }
.city-atlas-panel-head .eyebrow { color: rgba(242,237,226,.55); }
.city-atlas-panel-head h2 { max-width: 12ch; margin: 1.2rem 0 1.4rem; font-family: var(--display); font-size: clamp(2rem, 4.5vw, 4.6rem); font-weight: 320; letter-spacing: -.065em; line-height: .88; }
.city-atlas-panel-head > p:last-child { margin: 1.35rem 0 0; color: rgba(242,237,226,.62); font-family: var(--serif); font-size: .8rem; }

.city-atlas-dual-coordinate {
  position: relative;
  display: grid;
  gap: .75rem;
  max-width: 30rem;
  padding-left: 1.6rem;
  color: rgba(242,237,226,.76);
}

.city-atlas-dual-coordinate::before {
  position: absolute;
  top: .45rem;
  bottom: .45rem;
  left: .35rem;
  width: 1px;
  background: rgba(242,237,226,.3);
  content: "";
}

.city-atlas-dual-coordinate::after {
  position: absolute;
  top: .32rem;
  left: .12rem;
  width: .46rem;
  height: .46rem;
  border-radius: 50%;
  background: var(--atlas-light);
  box-shadow: 0 0 0 3px var(--atlas-dark);
  content: "";
  animation: atlas-coordinate-travel 1.25s cubic-bezier(.3,.7,.25,1) .12s both;
}

.city-atlas-coordinate-node { position: relative; display: grid; grid-template-columns: minmax(5.4rem, auto) 1fr; gap: .75rem; align-items: baseline; }
.city-atlas-coordinate-node > i { position: absolute; top: .3rem; left: -1.48rem; width: .45rem; height: .45rem; border: 1px solid var(--atlas-light); border-radius: 50%; background: var(--atlas-dark); }
.city-atlas-coordinate-node--real > i { background: var(--atlas-light); }
.city-atlas-coordinate-node small { color: rgba(242,237,226,.48); font-size: .56rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.city-atlas-coordinate-node b { min-width: 0; font-family: var(--sans); font-size: .64rem; font-weight: 500; letter-spacing: .05em; line-height: 1.35; }
.city-atlas-coordinate-node em { margin-left: .65rem; color: rgba(242,237,226,.42); font-size: .54rem; font-style: normal; letter-spacing: .13em; white-space: nowrap; }

@keyframes atlas-coordinate-travel {
  0% { opacity: 0; transform: translateY(0) scale(.55); }
  18% { opacity: 1; }
  72% { opacity: 1; }
  100% { opacity: 0; transform: translateY(1.75rem) scale(1); }
}

.city-atlas-panel-image { margin: 0; border: 1px solid var(--atlas-line); background: #22201d; }
.city-atlas-panel-image img { display: block; width: 100%; height: min(43vh, 520px); object-fit: contain; }
.city-atlas-panel-image figcaption { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem .85rem; border-top: 1px solid var(--atlas-line); color: rgba(242,237,226,.55); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }

.city-atlas-work-switcher { display: grid; grid-template-columns: repeat(auto-fit, minmax(3.4rem, 1fr)); gap: .6rem; margin-top: 1rem; }
.city-atlas-work-switcher button { position: relative; min-height: 4.6rem; padding: 0; overflow: hidden; border: 1px solid var(--atlas-line); background: #22201d; color: #fff; cursor: pointer; }
.city-atlas-work-switcher img { width: 100%; height: 100%; min-height: 4.6rem; object-fit: cover; opacity: .45; transition: opacity .35s ease, transform .5s ease; }
.city-atlas-work-switcher span { position: absolute; right: .35rem; bottom: .25rem; font-size: .6rem; }
.city-atlas-work-switcher button:hover img,
.city-atlas-work-switcher button:focus-visible img,
.city-atlas-work-switcher button[aria-pressed="true"] img { opacity: 1; transform: scale(1.04); }
.city-atlas-work-switcher button[aria-pressed="true"] { border-color: var(--atlas-light); }

.city-atlas-map-link { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; padding: .8rem 0; border-top: 1px solid var(--atlas-line); border-bottom: 1px solid var(--atlas-line); color: inherit; font-size: .68rem; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }

.city-atlas-index { padding: clamp(7rem, 12vw, 12rem) var(--pad); background: var(--paper); color: var(--ink); }
.city-atlas-index > header { display: grid; grid-template-columns: minmax(150px, .28fr) minmax(0, 1fr); gap: 2rem; margin-bottom: clamp(4rem, 8vw, 8rem); }
.city-atlas-index h2 { max-width: 13ch; margin: 0; font-family: var(--display); font-size: clamp(3rem, 7vw, 7.5rem); font-weight: 300; letter-spacing: -.075em; line-height: .9; }
.city-atlas-index > div { border-top: 1px solid var(--ink); }
.city-atlas-index button { display: grid; width: 100%; grid-template-columns: 3rem minmax(0, 1fr) minmax(180px, .52fr) auto; gap: 1.2rem; align-items: baseline; padding: 1.05rem 0; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: inherit; cursor: pointer; font: inherit; text-align: left; transition: padding .35s ease, background .35s ease; }
.city-atlas-index button:hover,
.city-atlas-index button:focus-visible,
.city-atlas-index button[aria-current="true"] { padding-right: .8rem; padding-left: .8rem; background: var(--paper-soft); }
.city-atlas-index button > span { color: var(--muted); font-size: .68rem; letter-spacing: .1em; }
.city-atlas-index button > .city-atlas-index-title { color: inherit; font-size: inherit; letter-spacing: normal; }
.city-atlas-index-title { display: grid; gap: .85rem; }
.city-atlas-index button strong { font-family: var(--display); font-size: clamp(1.15rem, 2vw, 1.75rem); font-weight: 400; letter-spacing: -.035em; }
.city-atlas-index button .city-atlas-index-place { color: var(--muted); font-size: .72rem; }
.city-atlas-index button i { font-style: normal; }

.city-atlas-dual-coordinate--compact { max-width: 23rem; gap: .35rem; padding-left: 1.2rem; color: var(--ink); opacity: .62; transition: opacity .3s ease; }
.city-atlas-dual-coordinate--compact::before { left: .22rem; background: var(--line); }
.city-atlas-dual-coordinate--compact::after { left: 0; width: .42rem; height: .42rem; background: var(--ink); box-shadow: 0 0 0 3px var(--paper); animation: none; opacity: 0; }
.city-atlas-dual-coordinate--compact .city-atlas-coordinate-node { grid-template-columns: 4.8rem 1fr; gap: .5rem; }
.city-atlas-dual-coordinate--compact .city-atlas-coordinate-node > i { left: -1.17rem; width: .4rem; height: .4rem; border-color: var(--ink); background: var(--paper); }
.city-atlas-dual-coordinate--compact .city-atlas-coordinate-node--real > i { background: var(--ink); }
.city-atlas-dual-coordinate--compact .city-atlas-coordinate-node small { color: var(--muted); font-size: .49rem; }
.city-atlas-dual-coordinate--compact .city-atlas-coordinate-node b { color: var(--muted); font-size: .55rem; font-weight: 500; }
.city-atlas-dual-coordinate--compact .city-atlas-coordinate-node em { color: var(--muted); font-size: .48rem; }
.city-atlas-index button:hover .city-atlas-dual-coordinate--compact,
.city-atlas-index button:focus-visible .city-atlas-dual-coordinate--compact,
.city-atlas-index button[aria-current="true"] .city-atlas-dual-coordinate--compact { opacity: 1; }
.city-atlas-index button:hover .city-atlas-dual-coordinate--compact::after,
.city-atlas-index button:focus-visible .city-atlas-dual-coordinate--compact::after,
.city-atlas-index button[aria-current="true"] .city-atlas-dual-coordinate--compact::after { animation: atlas-coordinate-travel 1.1s cubic-bezier(.3,.7,.25,1) both; }

.city-atlas-ending { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3rem; align-items: end; padding: clamp(6rem, 11vw, 11rem) var(--pad); background: var(--atlas-dark); color: var(--atlas-light); }
.city-atlas-ending > p { max-width: 24ch; margin: 0; font-family: var(--display); font-size: var(--statement-size); font-weight: 320; letter-spacing: -.045em; line-height: 1.18; }
.city-atlas-ending nav { display: grid; gap: 1rem; justify-items: end; }
.city-atlas-ending .text-link { color: inherit; }
.backstage-ending > div { display: grid; gap: 1rem; justify-items: end; }

@media (max-width: 900px) {
  .city-atlas-hero { min-height: auto; grid-template-columns: 1fr; align-items: start; }
  .city-atlas-hero-copy { grid-template-columns: 1fr; }
  .city-atlas-experience { grid-template-columns: 1fr; }
  .city-atlas-map { min-height: 74vh; }
  .city-atlas-panel { border-top: 1px solid var(--atlas-line); border-left: 0; }
  .city-atlas-panel-head { min-height: 0; padding-bottom: 3rem; }
  .city-atlas-panel-head h2 { max-width: 14ch; }
}

@media (max-width: 620px) {
  .city-atlas-hero { padding-right: 1.25rem; padding-left: 1.25rem; }
  .city-atlas-hero h1 { font-size: clamp(3.6rem, 18vw, 5.6rem); }
  .city-atlas-hero-copy dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .city-atlas-map { min-height: 78vh; }
  .city-atlas-pin { width: 2.65rem; height: 3.4rem; }
  .city-atlas-pin:hover,
  .city-atlas-pin:focus-visible,
  .city-atlas-pin.is-active { transform: translate(-50%, -50%) rotate(0) scale(1.12); }
  .city-atlas-pin-name { display: none; }
  .city-atlas-pin-count { top: -.45rem; right: -.45rem; width: 1.35rem; height: 1.35rem; }
  .city-atlas-north { top: .8rem; right: .8rem; }
  .city-atlas-instruction { right: .8rem; bottom: .8rem; left: .8rem; text-align: center; }
  .city-atlas-credit { display: none; }
  .city-atlas-panel { padding: 2.5rem 1.25rem; }
  .city-atlas-panel-image img { height: min(58vh, 520px); }
  .city-atlas-index { padding-right: 1.25rem; padding-left: 1.25rem; }
  .city-atlas-index > header { grid-template-columns: 1fr; }
  .city-atlas-index button { grid-template-columns: 2.4rem minmax(0, 1fr) auto; gap: .8rem; }
  .city-atlas-index button .city-atlas-index-place { grid-column: 2 / -1; }
  .city-atlas-dual-coordinate--compact .city-atlas-coordinate-node { grid-template-columns: 4.3rem minmax(0, 1fr); }
  .city-atlas-coordinate-node b { overflow-wrap: anywhere; }
  .city-atlas-ending { grid-template-columns: 1fr; padding-right: 1.25rem; padding-left: 1.25rem; }
  .city-atlas-ending nav,
  .backstage-ending > div { justify-items: start; }
}

@media (prefers-reduced-motion: reduce) {
  .city-atlas-pin,
  .city-atlas-pin-photo img,
  .city-atlas-panel { transition: none; }
  .city-atlas-dual-coordinate::after { animation: none !important; }
}

.contact-panel {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 650px;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}

.contact-details {
  display: flex;
  flex-direction: column;
  padding: var(--pad);
}

.contact-panel h2 { font-family: var(--display); font-size: clamp(2.6rem, 5vw, 5rem); font-weight: 300; letter-spacing: -.055em; line-height: .92; }
.contact-panel p { font-size: .88rem; }

.contact-list {
  margin-top: auto;
  font-style: normal;
  border-top: 1px solid var(--ink);
}

.contact-item {
  display: grid;
  gap: .65rem;
  padding: 1.35rem 0;
  border-bottom: 1px solid var(--line);
}

.contact-item span {
  color: var(--muted);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.contact-item a {
  width: fit-content;
  max-width: 100%;
  font-family: var(--display);
  font-size: clamp(1.1rem, 1.8vw, 1.75rem);
  font-weight: 350;
  letter-spacing: -.035em;
  overflow-wrap: anywhere;
  text-decoration: none;
}

.contact-item a::after {
  display: inline-block;
  margin-left: .65rem;
  font-size: .7em;
  content: "↗";
  transition: transform .2s ease;
}

.contact-item:last-child a::after { content: "→"; }
.contact-item a:hover::after { transform: translate(.2rem, -.15rem); }

.contact-orbit {
  position: relative;
  display: grid;
  min-width: 0;
  margin: 0;
  padding: var(--pad);
  place-items: center;
  background: var(--paper-soft);
  border-left: 1px solid var(--line);
  outline: none;
}

.orbit-visual {
  position: relative;
  width: min(72%, 390px);
  aspect-ratio: 1;
  border: 1px solid var(--ink);
  border-radius: 50%;
}

.orbit-visual::before,
.orbit-visual::after {
  position: absolute;
  content: "";
}

.orbit-visual::before {
  inset: 18%;
  border: 1px solid var(--line);
  border-radius: 50%;
}

.orbit-visual::after {
  top: 50%;
  right: -12%;
  left: -12%;
  height: 1px;
  background: var(--line);
}

.orbit-core {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  width: 11%;
  aspect-ratio: 1;
  background: var(--ink);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.orbit-runner {
  position: absolute;
  z-index: 3;
  inset: -1px;
  border-radius: 50%;
  animation: contact-orbit 12s linear infinite;
}

.orbit-runner i {
  position: absolute;
  top: 50%;
  right: -6px;
  width: 12px;
  height: 12px;
  background: var(--ink);
  border: 3px solid var(--paper-soft);
  border-radius: 50%;
  transform: translateY(-50%);
}

.orbit-code {
  position: absolute;
  top: 50%;
  left: 50%;
  color: var(--muted);
  font-size: .52rem;
  letter-spacing: .18em;
  transform: translate(-50%, calc(-50% + 3.4rem));
}

@keyframes contact-orbit { to { transform: rotate(360deg); } }

.contact-orbit figcaption {
  position: absolute;
  right: var(--pad);
  bottom: var(--pad);
  left: var(--pad);
  max-width: 18ch;
  margin: 0 auto;
  font-family: var(--serif);
  font-size: clamp(1.25rem, 2vw, 1.8rem);
  line-height: 1.15;
  text-align: center;
  opacity: .55;
  transition: opacity .3s ease, transform .3s ease;
  transform: translateY(.35rem);
}

.contact-orbit:hover .orbit-runner,
.contact-orbit:focus-visible .orbit-runner { animation-play-state: paused; }

.contact-orbit:hover figcaption,
.contact-orbit:focus-visible figcaption {
  opacity: 1;
  transform: translateY(0);
}

.collector-preview {
  display: grid;
  min-height: min(82vh, 820px);
  margin-top: clamp(7rem, 14vw, 14rem);
  grid-template-columns: minmax(0, .88fr) minmax(360px, 1.12fr);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
  scroll-margin-top: 7rem;
}

.collector-preview--landing {
  min-height: 100svh;
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  border-top: 0;
  scroll-margin-top: 0;
}

.collector-preview-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: clamp(2rem, 5vw, 5.5rem);
}

.collector-preview-copy h2 {
  max-width: 10ch;
  margin: auto 0 clamp(2rem, 5vw, 4rem);
  font-family: var(--display);
  font-size: clamp(2.75rem, 5.8vw, 6.4rem);
  font-weight: 300;
  letter-spacing: -.065em;
  line-height: .9;
  text-transform: uppercase;
}

.collector-preview-copy > p:not(.eyebrow) {
  max-width: 35rem;
  margin: 0 0 2.5rem;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.65;
}

.collector-preview-action {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .3rem 1rem;
  align-items: center;
  padding: 1.25rem 3.25rem 1.25rem 0;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
  text-decoration: none;
}

.collector-preview-action span {
  font-family: var(--display);
  font-size: clamp(1.05rem, 1.7vw, 1.55rem);
  font-weight: 400;
  letter-spacing: -.035em;
}

.collector-preview-action small {
  grid-column: 1;
  color: var(--muted);
  font-size: .58rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.collector-preview-action i {
  position: absolute;
  right: .3rem;
  font-size: 1.3rem;
  font-style: normal;
  transition: transform .3s ease;
}

.collector-preview-action:hover i,
.collector-preview-action:focus-visible i { transform: translate(.25rem, -.25rem); }

.collector-preview-details {
  display: grid;
  gap: .3rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
}

.collector-preview-details span {
  width: fit-content;
  font-family: var(--display);
  font-size: clamp(1rem, 1.5vw, 1.35rem);
  font-weight: 400;
  letter-spacing: -.03em;
}

.collector-preview-details small {
  color: var(--muted);
  font-size: .58rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.collector-preview-details:hover span,
.collector-preview-details:focus-visible span { text-decoration: underline; text-underline-offset: .35rem; }

.collector-preview-portal {
  position: relative;
  display: block;
  min-height: 640px;
  overflow: hidden;
  background: var(--ink);
  color: var(--paper);
  border-left: 1px solid var(--ink);
  text-decoration: none;
}

.collector-preview-image,
.collector-preview-image::after { position: absolute; inset: 0; }

.collector-preview-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: grayscale(1) contrast(.92) brightness(.56) blur(7px);
  opacity: .62;
  transform: scale(1.045);
  transition: filter 1.4s cubic-bezier(.2,.7,.2,1), opacity 1.4s ease, transform 1.8s cubic-bezier(.2,.7,.2,1);
}

.collector-preview-image::after {
  background: linear-gradient(180deg, rgba(17,17,15,.28), rgba(17,17,15,.08) 45%, rgba(17,17,15,.8));
  content: "";
  transition: opacity 1.2s ease;
}

.collector-preview-portal:hover .collector-preview-image img,
.collector-preview-portal:focus-visible .collector-preview-image img {
  filter: grayscale(0) contrast(1) brightness(.88) blur(0);
  opacity: 1;
  transform: scale(1);
}

.collector-preview-portal:hover .collector-preview-image::after,
.collector-preview-portal:focus-visible .collector-preview-image::after { opacity: .72; }

.collector-preview-index,
.collector-preview-caption,
.collector-preview-seal { position: absolute; z-index: 2; }

.collector-preview-index {
  top: clamp(1.5rem, 4vw, 3.5rem);
  left: clamp(1.5rem, 4vw, 3.5rem);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.collector-preview-caption {
  right: clamp(1.5rem, 4vw, 3.5rem);
  bottom: clamp(1.5rem, 4vw, 3.5rem);
  left: clamp(1.5rem, 4vw, 3.5rem);
  max-width: 15ch;
  font-family: var(--serif);
  font-size: clamp(1.4rem, 2.8vw, 2.7rem);
  line-height: 1.08;
}

.collector-preview-seal {
  top: 50%;
  left: 50%;
  display: grid;
  width: clamp(8rem, 15vw, 11rem);
  aspect-ratio: 1;
  place-items: center;
  background: rgba(241,239,233,.9);
  color: var(--ink);
  border-radius: 50%;
  backdrop-filter: blur(8px);
  transition: background .35s ease, color .35s ease, transform .55s cubic-bezier(.2,.7,.2,1);
  transform: translate(-50%, -50%);
}

.collector-preview-seal::before {
  position: absolute;
  inset: .55rem;
  border: 1px solid rgba(17,17,15,.32);
  border-radius: 50%;
  content: "";
}

.collector-preview-seal i {
  font-size: .58rem;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.collector-preview-seal b {
  position: absolute;
  bottom: 1.5rem;
  font-size: 1.2rem;
  font-weight: 400;
}

.collector-preview-portal:hover .collector-preview-seal,
.collector-preview-portal:focus-visible .collector-preview-seal {
  background: var(--ink);
  color: var(--paper);
  transform: translate(-50%, -50%) rotate(8deg) scale(1.06);
}

/* Materia dell’opera — edizioni e caratteristiche tecniche */
.edition-matter { max-width: var(--max); margin: 0 auto; }

.edition-matter-hero {
  display: grid;
  min-height: min(820px, calc(100svh - 84px));
  grid-template-columns: minmax(0, .88fr) minmax(360px, 1.12fr);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--ink);
  border-left: 1px solid var(--line);
}

.edition-matter-copy {
  position: relative;
  z-index: 2;
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: clamp(3rem, 7vw, 7rem) var(--pad);
  background: var(--paper);
  border-right: 1px solid var(--line);
}

.edition-matter-copy h1 {
  margin: auto 0 clamp(2rem, 5vw, 4rem);
  font-family: var(--display);
  font-size: clamp(3.2rem, 5.2vw, 5.6rem);
  font-weight: 300;
  letter-spacing: -.065em;
  line-height: .86;
  text-transform: uppercase;
}

.edition-matter-copy h1 span { display: block; }
.edition-matter-copy h1 span:last-child { margin-left: clamp(1.5rem, 5vw, 5rem); }

.edition-matter-copy > p:not(.eyebrow) {
  max-width: 34rem;
  margin-bottom: 2.25rem;
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.7;
}

.edition-matter-copy .text-link { align-self: flex-start; }

.edition-matter-image {
  position: relative;
  min-width: 0;
  min-height: 680px;
  margin: 0;
  overflow: hidden;
  background: var(--ink);
}

.edition-matter-image > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.edition-matter-image::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 58%, rgba(17,17,15,.68));
  content: "";
}

.edition-matter-image figcaption {
  position: absolute;
  z-index: 2;
  right: var(--pad);
  bottom: var(--pad);
  left: var(--pad);
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  color: var(--paper);
  font-size: .58rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.edition-specifications { padding: clamp(6rem, 12vw, 12rem) var(--pad); }

.edition-specifications > header {
  display: grid;
  grid-template-columns: minmax(160px, .3fr) minmax(0, .7fr);
  gap: 1.5rem 3rem;
  align-items: start;
  margin-bottom: clamp(4rem, 8vw, 8rem);
}

.edition-specifications > header h2 {
  max-width: 22ch;
  margin: 0;
  font-family: var(--display);
  font-size: var(--statement-size);
  font-weight: 350;
  letter-spacing: -.035em;
  line-height: 1.25;
}

.edition-specifications > header > p:last-child {
  grid-column: 2;
  max-width: 38rem;
  margin: 0;
  color: var(--muted);
  font-size: .84rem;
  line-height: 1.65;
}

.edition-specifications-grid {
  border-top: 1px solid var(--ink);
}

.edition-specifications-grid article {
  display: grid;
  grid-template-columns: minmax(5rem, .15fr) minmax(14rem, .42fr) minmax(0, 1fr);
  gap: 1.5rem clamp(1.5rem, 4vw, 5rem);
  align-items: start;
  padding: clamp(2.5rem, 5vw, 5rem) 0;
  border-bottom: 1px solid var(--ink);
}

.edition-specifications-grid article > div {
  display: flex;
  flex-direction: column;
  gap: .65rem;
  color: var(--muted);
  font-size: .58rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.edition-specifications-grid h3 {
  max-width: 14ch;
  margin: 0;
  font-family: var(--display);
  font-size: clamp(1.5rem, 2.5vw, 2.6rem);
  font-weight: 350;
  letter-spacing: -.045em;
  line-height: 1.08;
  text-transform: uppercase;
}

.edition-status { max-width: 14ch; margin: 0; }

.edition-reference {
  grid-column: 2;
  margin: -1rem 0 0;
  color: var(--muted);
  font-size: .66rem;
  letter-spacing: .1em;
  line-height: 1.45;
  text-transform: uppercase;
}

.edition-specifications-grid dl {
  grid-row: 1 / span 2;
  grid-column: 3;
  margin: 0;
  border-top: 1px solid var(--line);
}

.edition-specifications-grid dl > div {
  display: grid;
  grid-template-columns: minmax(6.5rem, .3fr) minmax(0, 1fr);
  gap: 1.25rem;
  padding: .85rem 0;
  border-bottom: 1px solid var(--line);
}

.edition-specifications-grid dt {
  color: var(--muted);
  font-size: .61rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.edition-specifications-grid dd {
  margin: 0;
  font-size: .78rem;
  line-height: 1.65;
}

.edition-matter-contact {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3rem;
  align-items: end;
  padding: clamp(4rem, 8vw, 8rem) var(--pad);
  border-top: 1px solid var(--ink);
}

.edition-matter-contact h2 {
  max-width: 18ch;
  margin: 0;
  font-family: var(--display);
  font-size: var(--statement-size);
  font-weight: 350;
  letter-spacing: -.035em;
  line-height: 1.25;
}

.edition-matter-contact > a {
  max-width: 19rem;
  padding: 1rem 1.2rem;
  background: var(--ink);
  color: var(--paper);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.45;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
}

.edition-matter-contact > a:hover,
.edition-matter-contact > a:focus-visible { background: var(--paper-soft); color: var(--ink); }

@media (max-width: 900px) {
  .collector-preview { grid-template-columns: 1fr; }
  .collector-preview-copy { min-height: 590px; }
  .collector-preview-portal {
    min-height: min(78vh, 720px);
    border-top: 1px solid var(--ink);
    border-left: 0;
  }
  .edition-matter-hero { grid-template-columns: 1fr; }
  .edition-matter-copy { min-height: 620px; border-right: 0; border-bottom: 1px solid var(--line); }
  .edition-matter-image { min-height: 70vh; }
  .edition-specifications-grid article { grid-template-columns: minmax(4rem, .12fr) minmax(12rem, .4fr) minmax(0, 1fr); }
}

@media (max-width: 620px) {
  .collector-preview { margin-top: 6rem; }
  .collector-preview-copy { min-height: 540px; padding: 2.25rem 1.25rem; }
  .collector-preview-copy h2 { font-size: clamp(2.65rem, 13vw, 4.35rem); }
  .collector-preview-portal { min-height: 68vh; }
  .collector-preview-seal { width: 8rem; }
  .edition-matter-hero { border-right: 0; border-left: 0; }
  .edition-matter-copy { min-height: 540px; padding: 3rem 1.25rem; }
  .edition-matter-copy h1 { font-size: clamp(3rem, 15vw, 5rem); }
  .edition-matter-copy h1 span:last-child { margin-left: 1.4rem; }
  .edition-matter-image { min-height: 66vh; }
  .edition-matter-image figcaption { align-items: flex-start; flex-direction: column; }
  .edition-specifications { padding-right: 1.25rem; padding-left: 1.25rem; }
  .edition-specifications > header { grid-template-columns: 1fr; }
  .edition-specifications > header > p:last-child { grid-column: 1; }
  .edition-specifications-grid article { grid-template-columns: 3rem minmax(0, 1fr); gap: 1.25rem 1rem; padding: 2.5rem 0; }
  .edition-specifications-grid article > div { grid-row: 1 / span 2; grid-column: 1; }
  .edition-specifications-grid h3 { grid-column: 2; }
  .edition-reference { grid-column: 2; margin-top: -.65rem; }
  .edition-specifications-grid dl { grid-row: auto; grid-column: 1 / -1; margin-top: 1rem; }
  .edition-specifications-grid dl > div { grid-template-columns: 1fr; gap: .35rem; }
  .edition-matter-contact { grid-template-columns: 1fr; padding-right: 1.25rem; padding-left: 1.25rem; }
  .edition-matter-contact > a { justify-self: start; }
}

.site-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 1.4rem var(--pad);
  border-top: 1px solid var(--line);
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .58rem;
}
.site-footer p { margin: 0; }
.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover,
.site-footer a:focus-visible { color: var(--ink); text-decoration: underline; text-underline-offset: .3rem; }
.site-socials { display: flex; gap: .5rem; }
.site-footer .social-icon:hover,
.site-footer .social-icon:focus-visible { color: var(--ink); text-decoration: none; }

/* Microtipografia: compatta, ma leggibile anche su schermi piccoli */
.brand-copy small,
.eyebrow,
.project-meta small,
.archive-number,
.archive-meta,
.archive-future-visual small,
.profile-caption small,
.atlas-coordinate,
.atlas-place,
.atlas-card-copy time,
.atlas-card-copy small,
.catalog-page-header,
.catalog-page-footer,
.catalog-cover-copy > span,
.catalog-cover-size,
.catalog-page--colophon footer,
.catalog-object-meta dt,
.catalog-object-meta dd,
.catalog-control,
.catalog-status,
.catalog-help,
.primo-book-meta dt,
.primo-book-meta dd,
.primo-book-page--title span,
.primo-book-close,
.primo-book-page--video footer,
.project-title dt,
.project-gallery figcaption,
.journey-progress,
.journey-frame figcaption,
.journey-time-era,
.journey-time-cue,
.journey-archive-cue,
.archive-cinema-index,
.archive-cinema-close,
.archive-cinema-caption span,
.journey-ending > div,
.contact-item span,
.site-footer {
  font-size: .68rem;
}

@media (max-width: 900px) {
  .site-header { min-height: 72px; }
  .menu-toggle {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    padding: .75rem 0;
    background: none;
    border: 0;
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: .65rem;
    font-weight: 700;
  }
  .menu-toggle i, .menu-toggle i::after { display: block; width: 1.4rem; height: 1px; background: var(--ink); content: ""; transition: .25s ease; }
  .menu-toggle i::after { transform: translateY(5px); }
  .menu-open .menu-toggle i { transform: rotate(45deg); }
  .menu-open .menu-toggle i::after { transform: rotate(-90deg); }
  .primary-nav {
    position: fixed;
    inset: 72px 0 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1.25rem;
    padding: var(--pad);
    background: var(--paper);
    transform: translateX(100%);
    transition: transform .35s cubic-bezier(.3,.7,.2,1);
  }
  .menu-open .primary-nav { transform: translateX(0); }
  .primary-nav a { font-family: var(--serif); font-size: clamp(2.8rem, 10vw, 5rem); font-weight: 400; letter-spacing: -.02em; text-transform: none; }
  .primary-nav a::after { display: none; }
  .primary-nav a[aria-current="page"] {
    align-self: flex-start;
    padding: .12rem 0 .12rem 1.45rem;
    background: transparent;
    box-shadow: none;
  }
  .primary-nav a[aria-current="page"]::before { left: .25rem; width: .55rem; height: .55rem; }
  .hero, .page-intro, .project-detail .project-hero { grid-template-columns: 1fr; }
  .hero-copy { min-height: 54vh; border-right: 0; border-bottom: 1px solid var(--line); }
  .hero-feature { order: -1; min-height: 68vh; }
  .home-residency { min-height: 76vh; gap: 5.5rem; }
  .home-residency::before { left: var(--pad); }
  .home-residency-statement { grid-template-columns: 1fr; }
  .home-residency-statement > p { max-width: 38rem; }
  .page-intro { gap: 2rem; min-height: 60vh; }
  .catalog-object { grid-template-columns: 1fr; }
  .catalog-object-meta { position: static; max-width: 38rem; }
  .catalog-reader { max-width: 820px; justify-self: center; }
  .primo-book-object { grid-template-columns: 1fr; }
  .primo-book-meta { position: static; max-width: 38rem; }
  .primo-book { min-height: min(74vw, 700px); }
  .project-detail .project-hero { min-height: auto; }
  .project-title { min-height: 65vh; }
  .project-cover { min-height: 70vh; }
  .section-heading, .content-grid { grid-template-columns: 1fr; }
  .section-heading .lead { justify-self: start; }
  .atlas-intro { grid-template-columns: 1fr; }
  .atlas-intro > p:last-child { grid-column: auto; }
  .atlas-shell { grid-template-columns: 1fr; }
  .atlas-map { min-height: 480px; border-right: 0; border-bottom: 1px solid var(--line); }
  .atlas-panels { min-height: auto; }
  .atlas-card { min-height: 540px; }
  .profile-constellation { min-height: 620px; }
  .archive-projects-duo { grid-template-columns: 1fr; }
  .archive-projects-duo .archive-project:nth-child(2) { width: 82%; margin-top: 0; margin-left: auto; }
  .archive-project--future a { grid-template-columns: 1fr; }
  .archive-project--future .archive-media { max-height: 560px; border-right: 0; border-bottom: 1px solid var(--line); }
  .artist-teaser a { grid-template-columns: 1fr; }
  .artist-teaser-image { min-height: 72vh; }
  .artist-teaser-copy { min-height: 460px; border-top: 1px solid var(--line); border-left: 0; }
  .artist-hero { min-height: auto; grid-template-columns: 1fr; }
  .artist-hero-copy { min-height: 62vh; border-right: 0; border-bottom: 1px solid var(--line); }
  .artist-portrait { width: min(68%, 390px); min-height: 0; margin: clamp(4rem, 10vw, 6rem) auto; }
  .artist-biography { grid-template-columns: 1fr; }
  .artist-practice > header,
  .artist-timeline > header,
  .artist-projects > header { grid-template-columns: 1fr; }
  .artist-practice ol { grid-template-columns: repeat(2, 1fr); }
  .artist-practice li:nth-child(2) { border-right: 0; }
  .artist-practice li:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .artist-timeline-list article > div { grid-template-columns: 1fr; gap: .65rem; }
  .artist-recognition { grid-template-columns: 1fr; }
  .artist-recognition-intro { border-right: 0; border-bottom: 1px solid var(--line); }
  .artist-award-moment { grid-template-columns: 1fr; }
  .artist-award-moment-visual { min-height: 76vh; }
  .artist-award-moment figcaption { min-height: 380px; border-top: 1px solid var(--ink); border-left: 0; }
  .artist-award-moment-detail { width: clamp(120px, 25vw, 210px); }
  .artist-contact { grid-template-columns: minmax(150px, .35fr) minmax(0, .65fr); }
  .artist-contact > div { grid-column: 1 / -1; }
  .project-gallery figure { grid-column: 1 / -1 !important; }
  .project-gallery figure:nth-child(even) { width: 82%; margin-top: 0; margin-left: auto; }
  .project-gallery--two figure:last-child,
  .project-gallery--four figure:nth-child(2),
  .project-gallery--four figure:nth-child(4) { margin-top: 0; }
  .project-card, .project-card:nth-child(even) { grid-column: 1 / -1; margin-top: 0; }
  .project-card:nth-child(even) { width: 82%; margin-left: auto; }
  .exhibition-entry a,
  .exhibition-entry--archive a { grid-template-columns: 1fr; }
  .exhibition-entry--archive .exhibition-copy { order: 2; border-right: 0; border-left: 0; }
  .exhibition-copy { min-height: 440px; border-left: 0; border-top: 1px solid var(--line); }
  .exhibition-image { min-height: 62vh; }
  .project-next a { grid-template-columns: 1fr; }
  .project-next-copy { min-height: 360px; border-top: 1px solid var(--line); border-left: 0; }
  .journey-sketches-heading { grid-template-columns: 1fr; }
  .journey-sketches-heading > .eyebrow { margin-bottom: 1rem; }
  .journey-sketches-field { height: clamp(1080px, 150vw, 1450px); }
  .journey-sketch--one { width: 66%; }
  .journey-sketch--two { width: 59%; }
  .journey-sketch--three { width: 63%; }
  .journey-sketch--four { width: 68%; }
  .journey-opening { min-height: auto; grid-template-columns: 1fr; }
  .journey-opening-copy { min-height: 72vh; border-right: 0; border-bottom: 1px solid var(--line); }
  .journey-opening-art { min-height: 64vh; }
  .journey-progress { top: 72px; }
  .journey-text { width: 88%; }
  .journey-cluster { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .journey-frame--portrait-left,
  .journey-frame--portrait-right,
  .journey-frame--vertical-one,
  .journey-frame--vertical-two,
  .journey-frame--vertical-three,
  .journey-frame--vertical-four {
    width: 68%;
    grid-column: 1 / -1;
    margin-top: 0;
  }
  .journey-frame--portrait-right,
  .journey-frame--vertical-two,
  .journey-frame--vertical-four { justify-self: end; }
  .journey-frame--wide-right,
  .journey-frame--wide-left,
  .journey-frame--panorama-left,
  .journey-frame--panorama-right,
  .journey-frame--medium-left,
  .journey-frame--medium-right,
  .journey-frame--center-stage,
  .journey-frame--full,
  .journey-frame--epilogue {
    grid-column: 1 / -1;
    margin-top: 0;
  }
  .journey-frame--medium-left,
  .journey-frame--medium-right { width: 78%; }
  .journey-frame--medium-right { justify-self: end; }
  .journey-latent-preview { width: min(42vw, 430px); }
  .journey-frame--full .journey-latent-preview--right,
  .journey-frame--musa .journey-latent-preview--right { width: min(48vw, 480px); }
  .journey-frame--musa { width: 100vw; }
  .journey-frame--musa .journey-image { height: calc(100svh - 114px); min-height: 560px; }
}

@media (max-width: 620px) {
  .display { font-size: clamp(3.5rem, 18vw, 6rem); }
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .home-residency {
    min-height: 82vh;
    padding: 4rem 1.25rem 5rem;
    gap: 4.5rem;
  }
  .home-residency-meta { grid-template-columns: 1fr; gap: .75rem; }
  .home-residency-meta time { justify-self: start; }
  .home-residency-statement { gap: 2.5rem; }
  .home-residency-statement h2 { font-size: clamp(2.75rem, 12vw, 4.8rem); line-height: .9; }
  .home-residency-statement h2 span:last-child { margin-left: 1.15rem; }
  .manifesto, .contact-panel { grid-template-columns: 1fr; }
  .contact-details { min-height: 500px; }
  .contact-orbit { min-height: 520px; border-top: 1px solid var(--line); border-left: 0; }
  .orbit-visual { width: min(72vw, 360px); }
  .manifesto-art { order: -1; }
  .page-intro { grid-template-columns: 1fr; align-items: end; }
  .index-item { grid-template-columns: 1fr auto; gap: .8rem; }
  .index-item time { grid-column: 1 / -1; }
  .profile-voices > div { grid-template-columns: 1fr; gap: 2.8rem; }
  .profile-voices blockquote:nth-child(n) { grid-column: 1; max-width: 24rem; margin-top: 0; }
  .profile-voices blockquote:nth-child(2) { margin-left: auto; }
  .exhibition-image { min-height: 56vh; }
  .exhibition-copy { min-height: 390px; padding: 2rem 0; }
  .exhibitions-related { grid-template-columns: 1fr; }
  .exhibitions-related .text-link { grid-column: 1; }
  .writings-index { grid-template-columns: 1fr; }
  .writings-index a { grid-column: 1; grid-template-columns: 2.4rem minmax(0, 1fr); }
  .writings-index a small { grid-column: 2; }
  .catalog-object { gap: 3.5rem; }
  .catalog-page--text { padding: 1rem 1.2rem; }
  .catalog-page-scroll { padding: 1rem .35rem .85rem 0; }
  .catalog-page-scroll p { font-size: .95rem; line-height: 1.48; }
  .catalog-page-header span:last-child { display: none; }
  .catalog-toolbar { grid-template-columns: 1fr minmax(68px, .7fr) 1fr; margin-top: 1.5rem; }
  .catalog-control { min-width: 0; padding: .7rem .55rem; font-size: .68rem; }
  .catalog-help { text-align: left; }
  .primo-book { min-height: 740px; }
  .primo-book-cover { width: min(86%, 460px); }
  .primo-book-spread {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(270px, .9fr) minmax(330px, 1.1fr);
  }
  .primo-book-spread::after {
    top: 40%;
    right: 0;
    bottom: auto;
    left: 0;
    width: auto;
    height: 1px;
  }
  .primo-book-page--video { padding: 3.6rem 1rem 1.1rem; }
  .primo-book-page--video footer { align-items: flex-start; flex-direction: column; gap: .4rem; }
  .primo-chapters { grid-template-columns: 1fr; }
  .primo-chapters button { grid-template-columns: 3rem 1fr; border-right: 0; border-bottom: 1px solid var(--line); }
  .primo-chapters button:last-child { border-bottom: 0; }
  .project-title dl { grid-template-columns: 1fr; }
  .site-footer { flex-direction: column; }
  .profile-portrait { grid-template-columns: minmax(0, 3.4fr) minmax(70px, .8fr); }
  .profile-caption { right: 1rem; min-width: 0; }
  .atlas-map { min-height: 400px; }
  .atlas-place { font-size: .62rem; }
  .atlas-card { min-height: 480px; }
  .profile-constellation { min-height: 570px; }
  .profile-constellation-hint { bottom: 1.1rem; left: 1.1rem; font-size: .9rem; }
  .profile-constellation-code--top { top: 1.1rem; left: 1.1rem; }
  .profile-constellation-code--bottom { right: 1.1rem; bottom: 1.1rem; }
  .profile-constellation-card { width: min(17.5rem, 82vw); padding: 1.05rem 1.1rem 1.15rem; }
  .profile-constellation-card strong { font-size: 1.2rem; }
  .archive-copy { grid-template-columns: 1fr; }
  .archive-meta { min-width: 0; text-align: left; }
  .archive-projects-duo .archive-project:nth-child(2),
  .project-gallery figure:nth-child(even) { width: 100%; }
  .archive-project--future .archive-copy { padding: 2rem 0; }
  .artist-teaser-image { min-height: 68vh; }
  .artist-teaser-copy { min-height: 420px; padding: 2.5rem 0; }
  .artist-hero-copy { min-height: 58vh; }
  .artist-hero-copy h1 { font-size: clamp(3.5rem, 17vw, 5.5rem); }
  .artist-portrait { width: min(72%, 310px); min-height: 0; }
  .artist-portrait-words { top: 1.25rem; right: 1.25rem; }
  .artist-portrait-words span { font-size: .62rem; }
  .artist-portrait figcaption { right: 1.25rem; bottom: 1.25rem; left: 1.25rem; text-align: center; }
  .artist-biography { padding-right: 1.25rem; padding-left: 1.25rem; }
  .artist-practice,
  .artist-timeline,
  .artist-projects,
  .artist-contact { padding-right: 1.25rem; padding-left: 1.25rem; }
  .artist-practice ol { grid-template-columns: 1fr; }
  .artist-practice li { min-height: 230px; border-right: 0; border-bottom: 1px solid var(--line); }
  .artist-practice li:nth-child(3) { border-bottom: 1px solid var(--line); }
  .artist-practice li:last-child { border-bottom: 0; }
  .artist-timeline-list article { grid-template-columns: 1fr; gap: .7rem; }
  .artist-awards { padding-right: 0; padding-left: 0; }
  .artist-award-moment-visual { min-height: 68vh; }
  .artist-award-moment-detail { right: 1.25rem; bottom: 1.25rem; width: 34%; }
  .artist-award-moment figcaption { min-height: 330px; padding: 2.5rem 1.25rem; }
  .artist-award-moment h3 { margin-top: 4rem; font-size: clamp(3rem, 16vw, 5rem); }
  .artist-projects > div { grid-template-columns: 1fr; gap: 4rem; }
  .artist-projects a:nth-child(2) { width: 82%; margin-left: auto; }
  .artist-contact { grid-template-columns: 1fr; }
  .artist-contact > div { grid-column: 1; }
  .project-gallery { gap: 3rem; }
  .journey-sketches { padding-right: 1.25rem; padding-left: 2.4rem; }
  .journey-sketches::before { right: -.06em; font-size: 48vw; }
  .journey-sketches-heading h2 { font-size: clamp(2.65rem, 14vw, 4.8rem); }
  .journey-sketches-heading > div > p { font-size: .94rem; }
  .journey-sketches-field {
    display: grid;
    height: auto;
    gap: 5rem;
    margin-top: 5rem;
  }
  .journey-sketch,
  .journey-sketch--one,
  .journey-sketch--two,
  .journey-sketch--three,
  .journey-sketch--four {
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    width: 94%;
  }
  .journey-sketch:nth-child(even) { justify-self: end; }
  .journey-sketch-meta { font-size: .62rem; }
  .journey-sketch-meta em { display: none; }
  .journey-sketches-closing { margin-top: 6rem; font-size: 1.25rem; }
  .sketch-cinema-shell { padding: .85rem; }
  .sketch-cinema-bar > span { max-width: 12rem; line-height: 1.35; }
  .sketch-cinema-bar button span { display: none; }
  .sketch-cinema-figure { padding: .8rem 0; }
  .sketch-cinema-figure figcaption { align-items: flex-start; flex-direction: column; gap: .35rem; line-height: 1.4; }
  .journey-opening-copy { min-height: 78vh; }
  .journey-opening h1 { font-size: clamp(3.4rem, 16vw, 5.3rem); }
  .journey-opening h1 span { font-size: clamp(1.8rem, 7vw, 2.7rem); letter-spacing: -.075em; }
  .journey-opening-meta { grid-template-columns: 1fr; }
  .journey-opening-art { min-height: auto; padding: 2rem 1.25rem; }
  .journey-progress {
    height: 42px;
    grid-template-columns: 1fr auto;
    gap: .8rem;
    padding: 0 1.25rem;
  }
  .journey-progress > span:first-child { display: none; }
  .journey-body::before { left: 1.25rem; }
  .journey-time-legend { margin-left: 1.25rem; padding: 3rem 1.25rem 0 1.15rem; }
  .journey-text {
    width: 100%;
    padding: 7rem 1.25rem 5rem 2.4rem;
  }
  .journey-text p { font-size: clamp(1.32rem, 7vw, 1.85rem); }
  .photo-reference { font-size: .38em; }
  .journey-cluster { gap: 4.5rem; padding: 0 1.25rem 0 2.4rem; }
  .journey-frame--portrait-left,
  .journey-frame--portrait-right,
  .journey-frame--vertical-one,
  .journey-frame--vertical-two,
  .journey-frame--vertical-three,
  .journey-frame--vertical-four { width: 82%; }
  .journey-frame--medium-left,
  .journey-frame--medium-right { width: 100%; }
  .journey-latent-cue,
  .journey-frame--wide-right .journey-latent-cue,
  .journey-frame--full .journey-latent-cue {
    width: 100%;
    margin-left: 0;
  }
  .journey-latent-cue span { font-size: .62rem; }
  .journey-latent-cue small { font-size: .72rem; }
  .journey-latent-preview { display: none; }
  .journey-frame--musa { width: 100vw; }
  .journey-frame--musa .journey-image { min-height: 520px; }
  .journey-frame--musa figcaption { right: 1.25rem; bottom: 1.25rem; left: 1.25rem; }
  .journey-frame--musa .journey-latent-cue {
    right: 1.25rem;
    bottom: 5.6rem;
    left: 1.25rem;
    width: auto;
  }
  .journey-time-era { left: 1.25rem; }
  .journey-time-cue { right: 1.25rem; }
  .journey-time-cue b { display: none; }
  .journey-time-cue { padding-right: 0; }
  .journey-archive-cue b { display: none; }
  .journey-archive-cue { padding-right: 0; }
  .archive-cinema-stage > img { padding: 0; }
  .archive-cinema-caption { align-items: flex-start; flex-direction: column; gap: .55rem; }
  .archive-cinema-caption p { max-width: 22rem; }
  .archive-cinema-caption span { line-height: 1.45; }
  .archive-cinema-close span { display: none; }
  .journey-ending { padding-right: 1.25rem; padding-left: 2.4rem; }
  .journey-ending > div { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .hero-slide { animation: none; opacity: 0; transform: none; }
  .hero-slide:first-child { opacity: 1; }
  .slide-dots span::after { animation: none; }
  .slide-dots span:first-child::after { transform: scaleX(1); }
  .atlas-route path { animation: none; stroke-dashoffset: 0; }
  .atlas-card { animation: none; }
  .orbit-runner { animation: none; }
  .collector-preview-image img { filter: grayscale(0) contrast(1) brightness(.8) blur(0); transform: none; }
  .collector-preview-action i,
  .collector-preview-seal { transition: none; }
  .profile-constellation-orbit { animation: none; }
  .catalog-page.is-active { animation: none; }
  .catalog-progress i { transition: none; }
  .home-residency.is-ready [data-home-residency-item] { opacity: 1; filter: none; transform: none; }
}
