/* Venice Design Week 2026 — fable.css
   Stylesheet completo per il markup di outputs/site/dist/app.js.
   Composizione A: "100" tipografico su 7 colonne, info e date in verde sulle 5 a destra,
   riga delle quattro sezioni. Due famiglie di sistema, nessun asset esterno.
   Contenitori attesi: #header, #main, #footer figli diretti di body. */

/* ------------------------------------------------------------------ */
/* 0. Token                                                             */
/* ------------------------------------------------------------------ */

:root {
  --hero-blue: #254C91;
  --paper: #F5F3EE;
  --paper-2: #E9E6DE;
  --ink: #141414;
  --ink-2: #5A5854;
  --green: #15EB23;
  --blue: #2673EF;
  --blue-text: #1A5BD6;

  --sans: "Helvetica Neue", Helvetica, Arial, system-ui, sans-serif;
  --serif: Georgia, "Times New Roman", serif;

  --margin: 48px;
  --gutter: 24px;
  --content: 1344px;
  /* padding laterale che centra il contenuto a 1440 e tiene 48px di margine sotto */
  --pad: max(var(--margin), calc((100% - var(--content)) / 2));
  --header-h: 64px;

  --space-section: 128px;
  --space-inner: 48px;

  --display: clamp(7.5rem, 33.5vw, 29rem);
  --h1: clamp(2.5rem, 1.5rem + 3.5vw, 4.5rem);
  --h2: clamp(1.75rem, 1.25rem + 1.75vw, 2.75rem);
  --h3: 1.375rem;

  --ease: cubic-bezier(0.2, 0, 0, 1);
  --fast: 150ms;
  --row: 200ms;
}

@media (max-width: 1279px) {
  :root { --margin: 32px; }
}
@media (max-width: 1023px) {
  :root { --margin: 24px; --gutter: 20px; --space-section: 96px; --space-inner: 32px; }
}
@media (max-width: 639px) {
  :root { --margin: 20px; --gutter: 16px; --space-section: 64px; --space-inner: 24px; --header-h: 56px; }
}
@media (max-width: 389px) {
  :root { --margin: 16px; --gutter: 12px; }
}

/* ------------------------------------------------------------------ */
/* 1. Base                                                              */
/* ------------------------------------------------------------------ */

*, *::before, *::after { box-sizing: border-box; }

html {
  background: var(--paper);
  color: var(--ink);
  -webkit-text-size-adjust: 100%;
  /* Taps activate content without browser highlights or double-tap zoom; pinch zoom stays available. */
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  scroll-padding-top: calc(var(--safe-header-h) + 16px);
}

body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  font: 400 1.125rem/1.5 var(--serif);
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
}

#main {
  flex: 1 0 auto;
  width: 100%;
  padding-inline: var(--pad);
}

h1, h2, h3, h4 {
  margin: 0;
  font-family: var(--sans);
  font-weight: 500;
  color: var(--ink);
  overflow-wrap: anywhere;
}
h1 { font-size: var(--h1); line-height: 1; letter-spacing: -0.03em; }
h2 { font-size: var(--h2); line-height: 1.1; letter-spacing: -0.02em; }
h3 { font-size: var(--h3); line-height: 1.2; letter-spacing: -0.01em; font-weight: 500; }

p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

img { max-width: 100%; height: auto; display: block; }
figure { margin: 0; }
figcaption {
  margin-top: 8px;
  font: italic 400 0.875rem/1.4 var(--serif);
  color: var(--ink-2);
}

small, .eyebrow, dt, label, .header-edition, .results-count, .breadcrumb, .footer-bottom {
  font-family: var(--sans);
}

a {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.15em;
  transition: text-decoration-color var(--fast) ease-out, color var(--fast) ease-out;
}
a:hover {
  text-decoration-color: var(--blue);
  text-decoration-thickness: 2px;
}

/* Pointer focus should not leave a rectangle around text or controls. */
:focus:not(:focus-visible) { outline: none; }

:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}

::selection { background: var(--green); color: var(--ink); }

mark {
  background: var(--green);
  color: var(--ink);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  padding: 0 0.15em;
}

.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

/* Etichette: 14px minimo, maiuscolo, tracciatura */
.eyebrow {
  display: block;
  margin: 0 0 8px;
  font: 500 0.875rem/1.2 var(--sans);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
}

/* Elementi con cifre: sempre sans e tabulari */
.hero-date, .header-edition, .feature-meta, .event-date, .index, dd,
.footer-top p, .venue-row p, .archive-caption p, .event-venue,
.feature-event > div:last-child p, .detail-note, .results-count {
  font-family: var(--sans);
  font-variant-numeric: tabular-nums;
}

/* Pulsanti */
.button, .map-link > a, button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 20px;
  border: 1px solid var(--ink);
  border-radius: 0;
  background: var(--ink);
  color: var(--paper);
  font: 500 1rem/1 var(--sans);
  letter-spacing: 0.01em;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--fast) ease-out, color var(--fast) ease-out;
}
.button:hover, .map-link > a:hover {
  background: var(--paper);
  color: var(--ink);
  text-decoration: none;
}
button { background: transparent; color: var(--ink); }
button:hover { background: var(--paper-2); }

/* Link "Fonte ufficiale" */
.source-link {
  display: inline-block;
  margin-top: 16px;
  font: 400 0.875rem/1.4 var(--sans);
  letter-spacing: 0.02em;
}

/* ------------------------------------------------------------------ */
/* 2. Header                                                            */
/* ------------------------------------------------------------------ */

#header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 32px;
  min-height: var(--safe-header-h);
  padding-inline: var(--pad);
  background: var(--paper);
  border-bottom: 1px solid var(--ink);
}

.skip {
  position: absolute;
  top: 8px;
  left: var(--pad);
  z-index: 30;
  padding: 10px 16px;
  background: var(--ink);
  color: var(--paper);
  font: 500 1rem/1 var(--sans);
  text-decoration: none;
  transform: translateY(-200%);
}
.skip:focus { transform: none; }

.brand {
  display: block;
  flex: 0 0 auto;
  text-decoration: none;
  line-height: 0;
}
.brand img {
  height: 28px;
  width: auto;
  max-width: none;
}

.header-edition {
  flex: 0 0 auto;
  font: 500 0.875rem/1.2 var(--sans);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

#nav {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-left: auto;
}
#nav a {
  font: 500 1rem/1 var(--sans);
  text-decoration: none;
  padding: 6px 0;
  white-space: nowrap;
}
#nav a:hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--ink);
  text-underline-offset: 8px;
}
#nav a[aria-current="page"] {
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-decoration-color: var(--green);
  text-underline-offset: 8px;
}

.language {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 44px;
  min-height: 44px;
  padding: 0 10px;
  border: 1px solid var(--ink);
  font: 500 0.875rem/1 var(--sans);
  letter-spacing: 0.08em;
  text-decoration: none;
  transition: background-color var(--fast) ease-out, color var(--fast) ease-out;
}
.language:hover { background: var(--ink); color: var(--paper); text-decoration: none; }

.menu-toggle {
  display: none;
  flex: 0 0 auto;
  gap: 8px;
  min-width: 44px;
  padding: 0 12px;
  border-color: var(--ink);
}
.menu-toggle span {
  display: inline-block;
  font-size: 1.25rem;
  line-height: 1;
  transition: transform var(--fast) ease-out;
}
.menu-toggle[aria-expanded="true"] span { transform: rotate(45deg); }

@media (max-width: 1023px) {
  #header { gap: 16px; }
  .menu-toggle { display: inline-flex; }
  .language { margin-left: auto; }

  /* Dropdown non modale: pannello sotto la testata, pagina sotto resta usabile */
  #nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin: 0;
    padding: 0 var(--pad) 24px;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: var(--paper);
    border-bottom: 1px solid var(--ink);
  }
  #nav.open { display: flex; }
  #nav a {
    font-size: 1.75rem;
    letter-spacing: -0.02em;
    padding: 14px 0;
    min-height: 56px;
    border-top: 1px solid var(--ink);
    white-space: normal;
  }
  #nav a:first-child { border-top: 0; }
  #nav a:hover,
  #nav a[aria-current="page"] { text-underline-offset: 6px; }
}
@media (max-width: 639px) {
  .brand img { height: 20px; }
  .header-edition { display: none; }
  #nav a { font-size: 1.5rem; }
}

/* ------------------------------------------------------------------ */
/* 3. Griglia comune                                                    */
/* ------------------------------------------------------------------ */

.hero, .hero-index, .page-heading, .section-heading, .feature-event,
.archive-feature, .participate-strip, .detail-grid, .about-grid,
.theme-block, .participation-layout, .venue-row, .event-row {
  display: grid;
  column-gap: var(--gutter);
}
.hero, .page-heading, .section-heading, .feature-event, .archive-feature,
.participate-strip, .detail-grid, .about-grid, .theme-block, .participation-layout {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

/* Riempimento verde da sinistra per righe indice (hover/focus/active) */
.event-row, .venue-row, .selection-links a, .hero-index a {
  position: relative;
  isolation: isolate;
}
.event-row::before, .venue-row::before, .selection-links a::before, .hero-index a::before {
  content: "";
  position: absolute;
  inset: 0 -16px;
  z-index: -1;
  background: var(--green);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--row) var(--ease);
}
.hero-index a::before { inset: 0; background: var(--selection-fill); }
/* Selection tints follow each category's vector palette. */
.event-row:hover::before, .event-row:focus-within::before, .event-row:active::before,
.venue-row:hover::before, .venue-row:focus-within::before, .venue-row:active::before,
.selection-links a:hover::before, .selection-links a:focus-visible::before, .selection-links a:active::before,
.hero-index a:hover::before, .hero-index a:focus-visible::before, .hero-index a:active::before {
  transform: scaleX(1);
}

/* ------------------------------------------------------------------ */
/* 4. Home — prima schermata, composizione A                            */
/* ------------------------------------------------------------------ */

.hero {
  align-items: end;
  min-height: min(calc(100svh - var(--safe-header-h)), 820px);
  padding: 32px 0 48px;
}

.hero-number-block {
  grid-column: 1 / 8;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-width: 0;
}

.hero-number {
  display: flex;
  font: 500 var(--display)/0.8 var(--sans);
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  color: var(--ink);
}
.hero-number span {
  display: inline-block;
  animation: digit-in 400ms var(--ease) both;
}
.hero-number span:nth-child(2) { animation-delay: 60ms; }
.hero-number span:nth-child(3) { animation-delay: 120ms; }

@keyframes digit-in {
  from { opacity: 0; transform: translateY(0.08em); }
  to   { opacity: 1; transform: none; }
}

.hero-info {
  grid-column: 8 / 13;
  align-self: end;
  min-width: 0;
}
.hero-info h1 {
  font-size: 2.5rem;
  line-height: 1;
  letter-spacing: -0.03em;
}
.hero-date {
  margin: 12px 0 20px;
  font-size: 2.5rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.02em;
}
.hero-date mark { padding: 0 0.12em; }
.hero-description {
  margin: 0 0 24px;
  font: 400 1.25rem/1.4 var(--serif);
  max-width: 48ch;
}
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 28px;
}
.hero-actions a:not(.button) {
  font: 500 1rem/1.4 var(--sans);
}

/* Riga sezioni 01–04 */
.hero-index {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: 0;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.hero-index a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  min-height: 72px;
  padding: 16px var(--gutter) 16px 0;
  text-decoration: none;
  font: 500 1.125rem/1.3 var(--sans);
}
.hero-index a + a {
  border-left: 1px solid var(--ink);
  padding-left: var(--gutter);
}
.hero-index .eyebrow { margin: 0; }

/* ------------------------------------------------------------------ */
/* 5. Home — sezioni successive                                         */
/* ------------------------------------------------------------------ */

.section {
  margin-top: var(--space-section);
}

.section-heading {
  align-items: baseline;
  margin-bottom: var(--space-inner);
}
.section-heading .eyebrow { grid-column: 1 / 3; margin: 0; }
.section-heading h2 { grid-column: 1 / 9; }
.section-heading > a { grid-column: 9 / 13; justify-self: end; font: 500 1rem/1.4 var(--sans); }
.section-heading > p { grid-column: 1 / 13; margin: 0; font: 400 1rem/1.4 var(--sans); color: var(--ink-2); }

/* Evento in evidenza (Interior Design 2026) */
.feature-event {
  padding: 32px 0;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
  align-items: start;
}
.feature-meta { grid-column: 1 / 4; }
.feature-meta .eyebrow { margin-bottom: 8px; }
.feature-meta p { font-size: 1.125rem; line-height: 1.4; }
.feature-event > div:nth-child(2) { grid-column: 4 / 9; }
.feature-event > div:last-child { grid-column: 9 / 13; }
.feature-event h3 {
  font-size: var(--h2);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin-bottom: 8px;
}
.feature-event h3 a { text-decoration: none; }
.feature-event h3 a:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.feature-event > div:last-child p { font-size: 1rem; line-height: 1.5; margin-bottom: 8px; }
.feature-event > div:last-child a { display: inline-block; margin-top: 8px; font: 500 1rem/1.4 var(--sans); }

/* Altre selezioni 2026: righe */
.selection-links a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 2.75rem;
  column-gap: var(--gutter);
  align-items: center;
  min-height: 64px;
  padding: 16px 0;
  border-bottom: 1px solid var(--ink);
  text-decoration: none;
  font: 500 var(--h3)/1.2 var(--sans);
  letter-spacing: -0.01em;
}
.selection-links a small {
  font-size: 0.875rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  color: var(--ink-2);
}
.selection-links a span:last-child { text-align: right; font-weight: 400; }

/* Richiamo archivio 2025: testo a sinistra, foto 4:3 intera a destra */
.archive-feature {
  grid-template-rows: auto 1fr;
  row-gap: 32px;
  padding-top: var(--space-inner);
  border-top: 1px solid var(--ink);
}
.archive-feature .section-heading {
  display: block;
  grid-column: 1 / 5;
  grid-row: 1;
  margin: 0;
}
.archive-feature .section-heading .eyebrow { margin-bottom: 8px; }
.archive-feature .section-heading h2 { margin-bottom: 16px; }
.archive-feature .section-heading > a { font: 500 1rem/1.4 var(--sans); }
.archive-image {
  grid-column: 5 / 13;
  grid-row: 1 / 3;
  display: block;
  text-decoration: none;
}
.archive-image img {
  width: 100%;
  height: auto;
  object-fit: contain;
  background: var(--paper-2);
}
.archive-caption {
  grid-column: 1 / 5;
  grid-row: 2;
  align-self: end;
  padding-top: 16px;
  border-top: 1px solid var(--ink);
}
.archive-caption h3 { margin-bottom: 8px; }
.archive-caption h3 a { text-decoration: none; }
.archive-caption h3 a:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.archive-caption p { font-size: 1rem; line-height: 1.5; color: var(--ink-2); }

/* Partecipare: striscia forte */
.participate-strip {
  align-items: center;
  margin-top: var(--space-section);
  padding: 64px 0;
  border-top: 1px solid var(--ink);
}
.participate-strip .eyebrow { grid-column: 1 / 4; margin: 0; }
.participate-strip h2 { grid-column: 4 / 10; font-size: var(--h1); line-height: 1; letter-spacing: -0.03em; }
.participate-strip .button { grid-column: 10 / 13; justify-self: end; }

/* ------------------------------------------------------------------ */
/* 6. Testata di pagina, breadcrumb, tabs                               */
/* ------------------------------------------------------------------ */

.breadcrumb {
  padding-top: 24px;
  font: 500 1rem/1.4 var(--sans);
}
.breadcrumb a { text-decoration: none; }
.breadcrumb a:hover { text-decoration: underline; }
.breadcrumb + .page-heading { padding-top: 24px; }

.page-heading {
  padding: var(--space-inner) 0 32px;
  margin-bottom: var(--space-inner);
  border-bottom: 1px solid var(--ink);
  row-gap: 0;
}
.page-heading .eyebrow { grid-column: 1 / 13; margin-bottom: 16px; }
.page-heading h1 { grid-column: 1 / 9; }
.page-heading .lead {
  grid-column: 1 / 8;
  margin: 24px 0 0;
  font: 400 1.25rem/1.4 var(--serif);
  max-width: 64ch;
}

.edition-tabs {
  display: flex;
  gap: 32px;
  margin: calc(-1 * var(--space-inner) + 8px) 0 32px;
  border-bottom: 1px solid var(--ink);
}
.edition-tabs a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-bottom: -1px;
  padding: 8px 0;
  border-bottom: 3px solid transparent;
  font: 500 1.125rem/1 var(--sans);
  letter-spacing: -0.01em;
  text-decoration: none;
  font-variant-numeric: tabular-nums;
}
.edition-tabs a:hover { color: var(--ink); }



/* ------------------------------------------------------------------ */
/* 7. Programma e archivio: filtri e righe                              */
/* ------------------------------------------------------------------ */

.filters {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 24px var(--gutter);
  margin: 0 0 16px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--ink);
}
.filters label {
  display: flex;
  flex: 1 1 180px;
  max-width: 300px;
  flex-direction: column;
  gap: 8px;
  font: 500 0.875rem/1.2 var(--sans);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.filters select, .filters input {
  width: 100%;
  min-height: 44px;
  padding: 0 28px 0 0;
  border: 0;
  border-bottom: 1px solid var(--ink);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font: 400 1rem/1.4 var(--sans);
  letter-spacing: 0;
  text-transform: none;
  font-variant-numeric: tabular-nums;
  -webkit-appearance: none;
  appearance: none;
}
.filters select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23141414' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 4px center;
}
.filters input[type="date"] { min-width: 0; }
.filters input::-webkit-calendar-picker-indicator { opacity: 0.8; cursor: pointer; }
.filters .reset { margin-left: auto; }

.results-count {
  min-height: 1.5em;
  margin: 0 0 8px;
  font-size: 0.875rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-2);
}

#results { border-top: 1px solid var(--ink); }

.event-row {
  grid-template-columns: minmax(0, 2fr) minmax(0, 6fr) minmax(0, 3fr) 2.75rem;
  align-items: start;
  padding: 24px 0;
  border-bottom: 1px solid var(--ink);
}
.event-row .eyebrow { margin-bottom: 6px; }
.event-date p { font-size: 1.125rem; line-height: 1.4; }
.event-name h2 {
  font-size: var(--h3);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.01em;
  margin-bottom: 6px;
}
.event-name h2 a { text-decoration: none; }
.event-name h2 a:hover, .event-row:hover .event-name h2 a { text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: var(--ink); }
.event-name > p { font-size: 1rem; line-height: 1.5; color: var(--ink-2); }
.event-venue p { font-size: 1rem; line-height: 1.5; margin-bottom: 4px; }
.event-venue small { font-size: 0.875rem; line-height: 1.4; color: var(--ink-2); }
.row-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  justify-self: end;
  border: 1px solid var(--ink);
  font: 400 1.25rem/1 var(--sans);
  text-decoration: none;
  transition: background-color var(--fast) ease-out, color var(--fast) ease-out;
}
.event-row:hover .row-arrow, .row-arrow:focus-visible { background: var(--ink); color: var(--paper); }

.empty {
  padding: 48px 0;
  border-bottom: 1px solid var(--ink);
}
.empty h2 { margin-bottom: 16px; }
.empty p { max-width: 64ch; margin-bottom: 24px; }

.archive-more {
  margin-top: 32px;
  font: 500 1rem/1.4 var(--sans);
}

/* ------------------------------------------------------------------ */
/* 8. Dettaglio: meta a sinistra, corpo a destra                        */
/* ------------------------------------------------------------------ */

.detail-grid {
  align-items: start;
  margin-bottom: var(--space-section);
}
.detail-facts {
  grid-column: 1 / 4;
  position: sticky;
  top: calc(var(--safe-header-h) + 24px);
  padding-top: 16px;
  border-top: 1px solid var(--ink);
  font-family: var(--sans);
}
.detail-facts .eyebrow { margin-bottom: 20px; }
.detail-facts dl { margin: 0 0 24px; }
.detail-facts dt {
  margin: 20px 0 0;
  font: 500 0.875rem/1.2 var(--sans);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.detail-facts dt:first-child { margin-top: 0; }
.detail-facts dd {
  margin: 6px 0 0;
  font-size: 1.125rem;
  line-height: 1.4;
}
.detail-facts > p { font: 400 1rem/1.5 var(--serif); margin-bottom: 8px; }
.detail-facts .source-link { margin-top: 8px; }

.detail-body { grid-column: 5 / 13; min-width: 0; }

/* Locandine 2026 e foto 2025 intere, rapporto nativo, nessun ritaglio */
.detail-photo { margin: 0 0 40px; }
.detail-photo img {
  width: 100%;
  height: auto;
  object-fit: contain;
  background: var(--paper-2);
}

.body-large {
  font: 400 1.25rem/1.45 var(--serif);
  max-width: 64ch;
  margin-bottom: 32px;
}
.detail-body > p:not(.body-large) { max-width: 64ch; }
.detail-note {
  max-width: 64ch;
  margin: 0 0 32px;
  padding: 16px 0;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
  font-size: 1.125rem;
  line-height: 1.4;
}

/* ------------------------------------------------------------------ */
/* 9. Luoghi                                                            */
/* ------------------------------------------------------------------ */

.venue-section { margin-bottom: var(--space-section); }
.venue-section .section-heading {
  display: flex;
  align-items: baseline;
  gap: var(--gutter);
  margin-bottom: 0;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--ink);
}
.venue-section .section-heading h2 { font-variant-numeric: tabular-nums; }
.venue-section .section-heading p { margin: 0; font: 400 1rem/1.4 var(--sans); color: var(--ink-2); }

.venue-row {
  grid-template-columns: 3rem minmax(0, 5fr) minmax(0, 6fr);
  align-items: start;
  padding: 24px 0;
  border-bottom: 1px solid var(--ink);
}
.venue-row .index {
  font: 500 var(--h3)/1.2 var(--sans);
  letter-spacing: -0.01em;
}
.venue-row h2 {
  font-size: var(--h3);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.01em;
  margin-bottom: 8px;
}
.venue-row p { font-size: 1rem; line-height: 1.5; margin-bottom: 4px; }
.venue-row > div:last-child p:first-child { font-weight: 500; }
.venue-row a { display: inline-block; margin-top: 8px; font: 500 1rem/1.4 var(--sans); }

.map-link {
  padding-top: var(--space-inner);
  margin-bottom: var(--space-section);
  border-top: 1px solid var(--ink);
}
.map-link h2 { margin-bottom: 16px; max-width: 20ch; }
.map-link p { max-width: 64ch; margin-bottom: 24px; }

/* ------------------------------------------------------------------ */
/* 10. Partecipare e Il festival                                        */
/* ------------------------------------------------------------------ */

.participation-layout {
  align-items: start;
  margin-bottom: var(--space-inner);
}
.participation-layout > .eyebrow {
  grid-column: 1 / 5;
  position: sticky;
  top: calc(var(--safe-header-h) + 24px);
  margin: 0;
}
.participation-layout > div { grid-column: 5 / 13; }
.participation-layout section {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  column-gap: var(--gutter);
  padding: 24px 0;
  border-top: 1px solid var(--ink);
}
.participation-layout section:last-child { border-bottom: 1px solid var(--ink); }
.participation-layout section h2 {
  font-size: var(--h3);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.01em;
}
.participation-layout section p { margin: 0; }

.contact-block {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  column-gap: var(--gutter);
  row-gap: 16px;
  margin-bottom: var(--space-section);
  padding: 48px var(--space-inner);
  background: var(--ink);
  color: var(--paper);
}
.contact-block h2 { grid-column: 1; grid-row: 1 / span 5; color: var(--paper); max-width: 14ch; }
.contact-block > :not(h2) { grid-column: 2; }
.contact-block p { max-width: 56ch; margin: 0; }
.contact-block .button {
  justify-self: start;
  background: var(--paper);
  color: var(--ink);
  border-color: var(--paper);
}
.contact-block .button:hover { background: var(--ink); color: var(--paper); }
.contact-block a { color: var(--paper); }
.contact-block a:hover { text-decoration-color: var(--green); }
.contact-block > a:not(.button) { justify-self: start; font: 500 1.125rem/1.4 var(--sans); }
.contact-block .source-link { margin-top: 0; }

.about-grid {
  align-items: start;
  margin-bottom: var(--space-section);
}
.about-grid > .eyebrow { grid-column: 1 / 5; margin: 0; }
.about-grid > div { grid-column: 5 / 13; max-width: 64ch; }

.theme-block {
  align-items: end;
  padding: var(--space-inner) 0;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.theme-number {
  grid-column: 1 / 7;
  font: 500 clamp(6rem, 18vw, 16rem)/0.8 var(--sans);
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.theme-copy { grid-column: 7 / 13; max-width: 56ch; }
.theme-copy h2 { margin-bottom: 16px; }

#main > .section:last-child { margin-bottom: var(--space-section); }
#main > .section:last-child .section-heading {
  padding-top: var(--space-inner);
  border-top: 1px solid var(--ink);
  margin-bottom: 0;
}
#main > .section:last-child .section-heading h2 { grid-column: 1 / 9; }

/* ------------------------------------------------------------------ */
/* 11. Footer                                                           */
/* ------------------------------------------------------------------ */

#footer {
  margin-top: var(--space-section);
  padding: 80px var(--pad) 32px;
  background: var(--ink);
  color: var(--paper);
}
#footer a { color: var(--paper); }
#footer a:hover { text-decoration-color: var(--green); }

.footer-top {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gutter);
  row-gap: 32px;
  padding-bottom: 64px;
  border-bottom: 1px solid rgba(245, 243, 238, 0.35);
}
.footer-top h2 {
  grid-column: 1 / 7;
  color: var(--paper);
  font-size: clamp(2.5rem, 6vw, 5.5rem);
  line-height: 0.95;
  letter-spacing: -0.03em;
}
.footer-top > div { font: 400 1.125rem/1.5 var(--sans); }
.footer-top > div:nth-child(2) { grid-column: 7 / 10; }
.footer-top > div:nth-child(3) { grid-column: 10 / 13; }
.footer-top > div a { display: inline-block; text-decoration: none; }
.footer-top > div a:hover { text-decoration: underline; }
.footer-top > div:nth-child(2) p { margin-bottom: 12px; }
.footer-top > div:nth-child(3) a { display: block; padding: 4px 0; }

.footer-bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 32px;
  padding-top: 24px;
  font-size: 0.875rem;
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.footer-bottom span:first-child { flex: 1 1 100%; }
.footer-bottom a { text-decoration: none; padding: 8px 0; }
.footer-bottom a:hover { text-decoration: underline; }
.footer-bottom a:last-child { margin-left: auto; }

/* ------------------------------------------------------------------ */
/* 12. Breakpoint: tablet e mobile                                      */
/* ------------------------------------------------------------------ */

@media (max-width: 1023px) {
  .hero {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    row-gap: 32px;
    padding: 24px 0 40px;
  }
  .hero-number-block { grid-column: 1; align-self: auto; gap: 16px; }
  .hero-number { font-size: 42vw; }
  .hero-info { grid-column: 1; }
  .hero-info h1, .hero-date { font-size: 2.25rem; }

  .hero-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-index a:nth-child(3) { border-left: 0; padding-left: 0; }
  .hero-index a:nth-child(n + 3) { border-top: 1px solid var(--ink); }

  .section-heading { grid-template-columns: minmax(0, 1fr); row-gap: 8px; }
  .section-heading .eyebrow, .section-heading h2, .section-heading > a, .section-heading > p { grid-column: 1; justify-self: start; }

  .feature-event { grid-template-columns: minmax(0, 1fr); row-gap: 16px; }
  .feature-meta, .feature-event > div { grid-column: 1; }

  .archive-feature { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; row-gap: 24px; }
  .archive-feature .section-heading, .archive-image, .archive-caption { grid-column: 1; grid-row: auto; }

  .participate-strip { grid-template-columns: minmax(0, 1fr); row-gap: 16px; padding: 48px 0; }
  .participate-strip .eyebrow, .participate-strip h2, .participate-strip .button { grid-column: 1; justify-self: start; }

  .page-heading { grid-template-columns: minmax(0, 1fr); }
  .page-heading .eyebrow, .page-heading h1, .page-heading .lead { grid-column: 1; }

  .filters .reset { margin-left: 0; }

  .detail-grid { grid-template-columns: minmax(0, 1fr); row-gap: 32px; }
  .detail-facts { grid-column: 1; position: static; }
  .detail-body { grid-column: 1; }

  .about-grid, .participation-layout, .theme-block { grid-template-columns: minmax(0, 1fr); row-gap: 24px; }
  .about-grid > .eyebrow, .about-grid > div, .participation-layout > .eyebrow, .participation-layout > div,
  .theme-number, .theme-copy { grid-column: 1; position: static; }
  .theme-number { font-size: 34vw; }

  .contact-block { grid-template-columns: minmax(0, 1fr); padding: 40px var(--space-inner); }
  .contact-block h2 { grid-row: auto; margin-bottom: 8px; }
  .contact-block > :not(h2) { grid-column: 1; }

  .footer-top h2 { grid-column: 1 / 13; }
  .footer-top > div:nth-child(2) { grid-column: 1 / 7; }
  .footer-top > div:nth-child(3) { grid-column: 7 / 13; }
}

@media (max-width: 639px) {
  /* Prima schermata: nome, date e azione Programma prima della descrizione */
  .hero { row-gap: 24px; padding: 20px 0 32px; }
  .hero-number { font-size: 54vw; }
  .hero-info { display: flex; flex-direction: column; }
  .hero-info h1 { order: 1; font-size: 1.75rem; }
  .hero-date { order: 2; font-size: 1.75rem; margin: 8px 0 16px; }
  .hero-actions { order: 3; gap: 12px 20px; }
  .hero-description { order: 4; margin: 20px 0 0; font-size: 1.125rem; line-height: 1.45; }
  .hero-actions .button { min-width: 11rem; }

  .hero-index { grid-template-columns: minmax(0, 1fr); }
  .hero-index a {
    flex-direction: row;
    align-items: center;
    gap: 12px;
    min-height: 56px;
    padding: 8px 0;
    font-size: 1.0625rem;
  }
  .hero-index a + a { border-left: 0; padding-left: 0; border-top: 1px solid var(--ink); }
  .hero-index a:nth-child(n + 3) { border-top: 1px solid var(--ink); }
  .hero-index .eyebrow { flex: 0 0 6rem; }

  .selection-links a {
    grid-template-columns: minmax(0, 1fr) 2.75rem;
    row-gap: 4px;
    font-size: 1.125rem;
  }
  .selection-links a small { grid-column: 1; }
  .selection-links a span:last-child { grid-column: 2; grid-row: 1 / span 2; }

  .edition-tabs { gap: 24px; margin-top: calc(-1 * var(--space-inner) + 4px); }
  .filters label { flex-basis: 100%; max-width: none; }
  .filters .reset { width: 100%; }

  .event-row {
    grid-template-columns: minmax(0, 1fr) 2.75rem;
    row-gap: 12px;
    padding: 20px 0;
  }
  .event-date, .event-name, .event-venue { grid-column: 1; }
  .row-arrow { grid-column: 2; grid-row: 1; }
  .event-row::before, .venue-row::before, .selection-links a::before { inset: 0 calc(-1 * var(--margin)); }

  .venue-row { grid-template-columns: 2.5rem minmax(0, 1fr); row-gap: 12px; padding: 20px 0; }
  .venue-row > div:last-child,.venue-row > .venue-events { grid-column: 2; }

  .contact-block { padding: 32px var(--margin); margin-inline: calc(-1 * var(--margin)); }

  .footer-top { row-gap: 24px; padding-bottom: 40px; }
  .footer-top > div:nth-child(2), .footer-top > div:nth-child(3) { grid-column: 1 / 13; }
  #footer { padding-top: 56px; }
  .footer-bottom a:last-child { margin-left: 0; }

  .participate-strip h2 { font-size: 2.5rem; }
  .page-heading { padding-top: 32px; }
  .body-large { font-size: 1.125rem; }
}

@media (max-width: 389px) {
  .hero-number { font-size: 52vw; }
  .hero-info h1, .hero-date { font-size: 1.5rem; }
  .hero-index a { min-height: 52px; font-size: 1rem; }
  .hero-index .eyebrow { flex-basis: 5.5rem; }
  .hero-actions { gap: 12px 16px; }
  #nav a { font-size: 1.375rem; }
  .participate-strip h2 { font-size: 2.25rem; }
  .theme-number { font-size: 40vw; }
}

/* ------------------------------------------------------------------ */
/* 13. Touch e reduced motion                                           */
/* ------------------------------------------------------------------ */

@media (hover: none) {
  /* su touch il riempimento avviene su :active, senza stato hover persistente */
  .event-row:hover::before, .venue-row:hover::before,
  .selection-links a:hover::before, .hero-index a:hover::before { transform: scaleX(0); }
  .event-row:active::before, .venue-row:active::before,
  .selection-links a:active::before, .hero-index a:active::before { transform: scaleX(1); }
  .event-row:hover .row-arrow { background: transparent; color: var(--ink); }
}

@media (prefers-reduced-motion: reduce) {
  .hero-number span { animation: none; }
  *, *::before, *::after { transition-duration: 0ms !important; }
}

/* Correzioni dalla critica Fable e audit Impeccable, batch 1. */
.hero { min-height: min(calc(100svh - var(--safe-header-h)), 700px); }
.hero-number-block { justify-content: flex-end; gap:24px; }
.detail-facts > .eyebrow { font-family:var(--sans); }
.detail-grid { margin-bottom:0; }
.edition-tabs a.active { font-weight:500; }
#footer a, .source-link, .brand { min-height:44px;display:inline-flex;align-items:center; }
.footer-top > div:last-child a { display:flex; }
@media(max-width:1023px){
 .feature-event > .feature-meta,.feature-event > div:nth-child(2),.feature-event > div:last-child{grid-column:1;}
 .feature-meta{display:flex;flex-wrap:wrap;gap:16px;align-items:baseline;}
 .feature-meta .eyebrow{margin:0;}
 .hero{min-height:0;}
}
@media(max-width:639px){
 .participation-layout section{grid-template-columns:minmax(0,1fr);row-gap:8px;}
 .participation-layout section h2 {overflow-wrap:normal;}
 .venue-section .section-heading{flex-wrap:wrap;row-gap:4px;}
}

/* Final visual system: official campaign colours and locally served Archivo. */
@font-face{font-family:Archivo;src:url('/assets/Archivo-full.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
:root{--sans:Archivo,"Helvetica Neue",Arial,sans-serif;--green:#FFB841;--blue:#2673EF}
.hero{min-height:620px;align-items:center;padding-top:64px;padding-bottom:64px}
.hero-number-block{justify-content:center;gap:40px}
.hero-art{width:100%;height:auto;display:block;max-width:680px}
.hero-number:has(.hero-art){display:block;font-size:initial;line-height:1}
.project-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:start}
.project-image{display:block;margin-bottom:24px;overflow:hidden}
.project-image img{display:block;width:100%;height:auto;transition:transform 250ms ease}
.project-image:hover img{transform:none}
.project-grid .eyebrow{margin-bottom:12px}
.project-grid h3{font-size:clamp(1.7rem,2.5vw,2.5rem);margin-bottom:10px;letter-spacing:-.03em}
.project-grid article>p:last-child{color:var(--ink-2);line-height:1.6}
.archive-feature{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.archive-feature>.section-heading{grid-column:1/-1}
.archive-feature>.archive-image{grid-column:1/9;max-width:900px}
.archive-feature>.archive-caption{grid-column:9/-1;display:flex;flex-direction:column;justify-content:end;align-items:start;padding:0 0 30px 20px}
.archive-caption h3{margin-bottom:24px}
.participate-options{grid-column:2/3;line-height:1.7;max-width:560px;margin:16px 0}
.participate-strip>.button{grid-column:3/4;grid-row:2/4}
@media(max-width:1023px){.hero{min-height:0;padding-top:48px;padding-bottom:48px}.project-grid{gap:32px}.archive-feature>.archive-caption{padding-left:0}.participate-options{grid-column:1/-1}.participate-strip>.button{grid-column:1/-1;grid-row:auto;justify-self:start}}
@media(max-width:639px){.hero{padding-top:40px;padding-bottom:40px}.hero-number-block{gap:24px}.hero-art{max-width:440px}.project-grid{grid-template-columns:1fr;gap:40px}.project-image{margin-bottom:20px}.archive-feature{display:block}.archive-feature>.archive-caption{padding:24px 0 0}.archive-caption h3{margin-bottom:12px}.participate-options{font-size:1rem}.project-image:hover img{transform:none}}
@media(prefers-reduced-motion:reduce){.project-image img{transition:none}}
@media(min-width:1024px){.participate-options{grid-column:4/10;grid-row:2}.participate-strip>.button{grid-column:10/13;grid-row:1/3}.participate-strip>.eyebrow{grid-row:1}.participate-strip>h2{grid-row:1}}
#footer .footer-top>div:last-child{display:flex;flex-direction:column;align-items:flex-start}
#footer .footer-top>div:last-child a{display:flex}
.archive-feature>.section-heading{grid-row:1}
.archive-feature>.archive-image,.archive-feature>.archive-caption{grid-row:2}
.detail-gallery{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:48px 0}
.detail-gallery img{display:block;width:100%;height:auto}
.detail-gallery figcaption{font:italic .875rem/1.5 var(--serif);color:var(--ink-2);margin-top:10px}
@media(max-width:639px){.detail-gallery{grid-template-columns:1fr;gap:32px}}
:root{--green:#FBB03B}
.hero-number-block{align-self:center}
.theme-number img{width:100%;height:auto;display:block}
/* Palette dell'edizione: colori campionati dalla grafica ufficiale 100. */
:root{--campaign-blue:#2873ED;--campaign-cyan:#3EAAF0;--campaign-pink:#FF7BAD;--campaign-orange:#EE5A27;--campaign-yellow:#FBB03B;--campaign-lime:#99C122;--selection-fill:#FFF2CD;--green:var(--campaign-yellow)}
::selection{background:var(--campaign-pink);color:var(--ink)}
.hero-index a{border-top:4px solid var(--campaign-pink)}
.hero-index a:nth-child(2){border-top-color:var(--campaign-yellow)}
.hero-index a:nth-child(3){border-top-color:var(--campaign-lime)}
.hero-index a:nth-child(4){border-top-color:var(--campaign-blue)}
.button:hover,.map-link>a:hover{background:var(--campaign-yellow);color:var(--ink)}
#nav a[aria-current=page]{text-decoration-color:var(--campaign-blue)}
.edition-tabs a{color:var(--ink-2)}
.edition-tabs a.active{background:transparent;color:var(--ink);border-bottom-color:transparent}
@media(max-width:639px){.hero-index a,.hero-index a+a,.hero-index a:nth-child(n+3){border-top:1px solid var(--ink);border-left:4px solid var(--campaign-pink);padding-left:12px}.hero-index a:nth-child(2){border-left-color:var(--campaign-yellow)}.hero-index a:nth-child(3){border-left-color:var(--campaign-lime)}.hero-index a:nth-child(4){border-left-color:var(--campaign-blue)}}
/* Reflow con testo ingrandito: i controlli possono andare a capo. */
a[href^="mailto:"]{overflow-wrap:anywhere;max-width:100%;min-width:0}
#footer a[href^="mailto:"]{display:block;padding-block:10px}
.button{max-width:100%;white-space:normal;line-height:1.25;padding-block:10px}
@media(max-width:639px){#header{flex-wrap:wrap;gap:8px 12px;padding-block:6px}.hero-actions .button{min-width:0}.hero-index a{flex-wrap:wrap}.hero-index .eyebrow{flex-basis:auto;min-width:74px}.hero-index a>span:last-child{min-width:0;flex:1 1 140px}.language{margin-left:auto}.contact-block>a{min-width:0;overflow-wrap:anywhere}}
/* Le icone ufficiali identificano le quattro selezioni, senza duplicare l'anno. */
.hero-index a,.hero-index a+a,.hero-index a:nth-child(n+3){display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:16px;padding:22px 20px;border-top:0;border-left:1px solid var(--ink);min-height:90px;}
.hero-index a:first-child{border-left:0;padding-left:0}
.hero-index .section-icon{display:block;width:44px;height:44px;object-fit:contain}
.hero-index a>span{min-width:0}
.hero-index .section-arrow{font-size:1.1rem}
@media(max-width:1023px){.hero-index a,.hero-index a+a,.hero-index a:nth-child(n+3){grid-template-columns:36px minmax(0,1fr) auto;gap:12px;padding:18px 14px}.hero-index .section-icon{width:36px;height:36px}}
@media(max-width:639px){.hero-index a,.hero-index a+a,.hero-index a:nth-child(n+3){grid-template-columns:36px minmax(0,1fr) auto;border-left:0;border-top:1px solid var(--ink);padding:16px 0;min-height:72px}.hero-index a:first-child{border-top:0}.hero-index a>span:last-child{flex:none}}
.hero-index a:nth-child(n){border-top-color:var(--ink);border-left-color:var(--ink)}
/* Composizione rispetto al viewport: ingresso quasi a schermo, sezioni a contenuto. */
@media(min-width:1024px){
 .hero{min-height:clamp(480px,calc(100svh - 210px),760px);padding-block:40px;align-items:center}
 .hero-info{align-self:center}
 .hero-number-block{gap:28px}
 .hero-art{max-height:calc(100svh - 330px);min-height:220px;object-fit:contain;object-position:left center}
}
@media(min-width:700px) and (max-width:1023px){
 .hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;padding-block:40px}
 .hero-number-block{grid-column:1;align-self:center}
 .hero-info{grid-column:2;align-self:center}
 .hero-info h1,.hero-date{font-size:2rem}
 .hero-description{font-size:1.125rem}
 .hero-index a:nth-child(3){border-left:0}
 .hero-index a:nth-child(n+3){border-top:1px solid var(--ink)}
}
@media(min-width:1024px) and (max-height:720px){
 .hero{min-height:0;padding-block:24px}
 .hero-info h1,.hero-date{font-size:2rem}
 .hero-description{font-size:1.125rem;line-height:1.4;margin-bottom:20px}
 .hero-number-block{gap:20px}
 .hero-art{max-height:280px;min-height:0}
}
@media(max-width:699px){
 .hero{padding-block:24px;row-gap:24px}
 .hero-number-block{gap:16px}
 .hero-art{max-width:320px;max-height:182px;object-fit:contain;object-position:left center}
 .hero-info{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
 .hero-info h1{grid-column:1;order:0;font-size:1.5rem;align-self:start}
 .hero-date{grid-column:2;order:0;font-size:clamp(1.25rem,5vw,1.5rem);margin:0;align-self:start}
 .hero-actions{grid-column:1/-1;order:1;gap:12px 20px}
 .hero-description{grid-column:1/-1;order:2;margin:0;font-size:1rem;line-height:1.45}
 .hero-index{grid-template-columns:repeat(2,minmax(0,1fr))}
 .hero-index a,.hero-index a+a,.hero-index a:nth-child(n+3){grid-template-columns:28px minmax(0,1fr);gap:10px;padding:16px 12px;min-height:88px;border-left:1px solid var(--ink);border-top:0;font-size:.9375rem;line-height:1.3}
 .hero-index a:nth-child(odd){border-left:0;padding-left:0}
 .hero-index a:nth-child(n+3){border-top:1px solid var(--ink)}
 .hero-index .section-icon{width:28px;height:28px}
 .hero-index .section-arrow{display:none}
 .project-selection{margin-top:56px}
}
@media(max-width:699px) and (max-height:700px){.hero-art{max-height:130px;max-width:229px}.hero{row-gap:20px;padding-block:20px}}
@media(max-width:699px){
 .hero-info{grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr))}
 .hero-info h1,.hero-date{grid-column:auto}
 .hero-index{grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr))}
}
.hero-index a,.hero-index a+a,.hero-index a:nth-child(n+3){grid-template-columns:44px minmax(0,1fr)}
@media(max-width:1023px){.hero-index a,.hero-index a+a,.hero-index a:nth-child(n+3){grid-template-columns:36px minmax(0,1fr)}}
@media(max-width:699px){.hero-index a,.hero-index a+a,.hero-index a:nth-child(n+3){grid-template-columns:28px minmax(0,1fr)}}
.hero-index a:hover,.hero-index a:focus-visible,.hero-index a:hover>span,.hero-index a:focus-visible>span{text-decoration:none}
.hero-art [data-motion]{transform-box:view-box;transition:transform 360ms cubic-bezier(.22,.61,.36,1)}
.hero-art [data-motion].is-live{transition-duration:240ms;transition-timing-function:cubic-bezier(.22,.61,.36,1)}
@media(prefers-reduced-motion:reduce){.hero-art [data-motion]{transition:none!important;transform:none!important}}
/* Scala desktop ampia: recupera presenza al100% senza applicare zoom al sito. */
@media(min-width:1600px){
 html{font-size:clamp(16px,1.019vw,17.6px)}
 :root{--content:1480px;--header-h:70px}
 .hero{min-height:clamp(480px,calc(100svh - 226px),800px)}
 .hero-art{max-width:748px}
}
/* Link editoriali autonomi: sottolineatura solo durante l'interazione. */
.hero-actions a:not(.button),
.section-heading>a,
.project-grid h3 a,
.feature-event a,
.venue-row a,
.archive-more a,
.detail-facts a,
.source-link,
.map-link>a,
.contact-block>a:not(.button),
.archive-directory a{
 text-decoration:none;
}
.hero-actions a:not(.button):hover,
.section-heading>a:hover,
.project-grid h3 a:hover,
.feature-event a:hover,
.venue-row a:hover,
.archive-more a:hover,
.detail-facts a:hover,
.source-link:hover,
.map-link>a:hover,
.contact-block>a:not(.button):hover,
.archive-directory a:hover{
 text-decoration:underline;
 text-decoration-thickness:1px;
 text-underline-offset:4px;
}
/* Data dell'edizione: una sola riga, subordinata al marchio. */
.header-edition{font-size:.875rem;font-weight:500;line-height:1.3;letter-spacing:0;text-transform:none;color:var(--ink-2)}
/* Contenuti originali recuperati, nel sistema editoriale comune. */
.festival-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start;margin-bottom:40px}
.festival-intro>.body-large{max-width:42ch;margin:0}
.festival-formats{list-style:none;margin:0;padding:0}
.festival-formats li{border-top:1px solid var(--paper-2)}
.festival-formats li:last-child{border-bottom:1px solid var(--paper-2)}
.festival-formats a{display:block;padding:16px 0;font:500 1.125rem/1.4 var(--sans);text-decoration:none}
.festival-media{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:960px;margin-left:auto}
.festival-media img,.year-round-photo img{display:block;width:100%;height:auto}
.festival-media figcaption,.year-round-photo figcaption{margin-top:10px;color:var(--ink-2);font:400 .8125rem/1.5 var(--sans)}
.year-round-layout{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:40px;align-items:start}
.year-round-photo{max-width:960px}
.year-round-copy .body-large{font-size:1.25rem;margin-bottom:24px}
.map-edition{display:flex;align-items:center;gap:20px;margin:32px 0;text-decoration:none}
.map-edition img{width:112px;height:auto;flex:none}
.map-edition span{font:500 1rem/1.4 var(--sans)}
.map-edition small{display:block;color:var(--ink-2);font-weight:400;margin-top:6px}
.visit-links{display:flex;flex-wrap:wrap;gap:12px 24px;font:400 .9375rem/1.5 var(--sans)}
.visit-links a{text-decoration:none}
.archive-resources{grid-column:1/-1;grid-row:3;margin-top:32px;border-top:1px solid var(--ink);padding-top:24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.archive-resources>.eyebrow{grid-column:1/-1;margin:0}
.archive-resources>a{display:flex;gap:20px;align-items:center;min-width:0;text-decoration:none;font:500 1.125rem/1.35 var(--sans)}
.archive-resources>a img{width:100px;height:100px;object-fit:contain;flex:none}
.archive-directory{grid-column:1/-1;font:400 .9375rem/1.5 var(--sans)}
.archive-directory a{text-decoration:none}
.home-resources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px;border-top:1px solid var(--ink);padding-top:32px;margin-top:48px}
.home-resources h2{font:500 1.375rem/1.3 var(--sans);margin-bottom:14px;letter-spacing:-.02em}
.home-resources p,.home-resources div>a{font:400 1rem/1.5 var(--sans);color:var(--ink-2);max-width:30ch}
.home-resources a{text-decoration:none}
.festival-formats a:hover,.archive-resources a:hover,.home-resources a:hover,.visit-links a:hover,.map-edition:hover span{text-decoration:underline;text-underline-offset:4px}
@media(max-width:1023px){.festival-intro{gap:32px}.year-round-layout{grid-template-columns:1fr;gap:28px}.year-round-copy{max-width:640px}.archive-resources{grid-template-columns:1fr}.home-resources{gap:24px}}
@media(max-width:639px){.festival-intro,.festival-media,.home-resources{grid-template-columns:1fr;gap:24px}.festival-media{margin-left:0}.festival-intro{margin-bottom:24px}.year-round-copy .body-large{font-size:1.125rem}.archive-resources>a img{width:88px;height:88px}.archive-resources>a{gap:16px}.home-resources>div+div{border-top:1px solid var(--paper-2);padding-top:24px}.map-edition{gap:16px}}

/* Tempora 2025: the archival identity has its own field, within the shared grid. */
:root{--tempora-blue:#040766;--tempora-lime:#a4e517}
.tempora-band{position:relative;display:flex;align-items:center;min-height:300px;aspect-ratio:1200/350;background:var(--tempora-blue) url('/assets/tempora-ribbons.svg') center/cover;color:var(--tempora-lime);overflow:hidden}
.tempora-copy{padding:40px 8.333%;position:relative;max-width:100%}
.tempora-title{font:200 clamp(44px,7vw,96px)/1 var(--sans);letter-spacing:.015em;text-transform:uppercase;margin:0}
.tempora-date{font:400 clamp(16px,1.6vw,22px)/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;margin:16px 0 0;font-variant-numeric:tabular-nums}
.archive-feature>.section-heading{display:flex;justify-content:space-between;align-items:center;gap:24px}
.archive-feature>.section-heading .eyebrow{margin:0}
.archive-feature>.tempora-band{grid-column:1/-1;grid-row:2;margin-bottom:16px}
.archive-feature>.archive-image,.archive-feature>.archive-caption{grid-row:3}
.tempora-page-heading{padding-top:var(--space-inner);margin-bottom:40px}
.tempora-page-heading>.eyebrow{margin-bottom:20px}
.tempora-page-heading>.lead{font:400 1.25rem/1.5 var(--serif);max-width:64ch;margin:28px 0}
.tempora-page-heading+.edition-tabs{margin-top:0}
body:has(.tempora-page-heading) .event-row:hover{background:var(--paper-2)}
body:has(.tempora-page-heading) .event-row:focus-within{background:var(--paper-2)}
@media(max-width:699px){
 .tempora-band{aspect-ratio:1;min-height:0;max-height:420px;background-image:url('/assets/tempora-ribbons-mobile.svg');align-items:flex-end}
 .tempora-copy{padding:28px 24px 40px}
 .tempora-title{font-size:clamp(40px,11vw,64px)}
 .tempora-date{font-size:16px;letter-spacing:.04em;max-width:100%}
 .archive-feature>.section-heading{margin-bottom:24px}
 .archive-feature>.tempora-band{margin-bottom:28px}
}

/* Fable's review: 2025 remains subordinate to the current edition. */
.archive-feature{row-gap:40px}
.archive-feature>.section-heading{display:grid;grid-template-columns:subgrid}
.archive-feature>.section-heading>.eyebrow{grid-column:1/3}
.archive-feature>.section-heading>h2{grid-column:3/9;margin:0}
.archive-feature>.section-heading>a{grid-column:9/-1;justify-self:end}
.tempora-band--home{aspect-ratio:auto;min-height:0;height:200px;text-decoration:none;background-position:center bottom;align-items:center}
.tempora-band--home:hover{text-decoration:none}
.tempora-band--home:focus-visible{outline-offset:5px}
.tempora-band--home .tempora-copy{padding-block:24px}
.tempora-band--home .tempora-title{font-size:clamp(36px,4vw,56px)}
.tempora-band--home .tempora-date{font-size:16px}
.archive-feature>.tempora-band{margin-bottom:0}
.archive-feature>.archive-image{grid-column:1/7;max-width:none}
.archive-feature>.archive-caption{grid-column:8/-1;align-self:start;justify-content:flex-start;padding:16px 0 0}
.archive-caption h3{margin-bottom:12px}
.archive-feature>.archive-resources{grid-row:3;margin-top:0}
.festival-media{max-width:none;margin-left:0;gap:64px}
.festival-formats li,.festival-formats li:last-child{border-color:var(--ink)}
@media(min-width:1024px){.participate-strip>.eyebrow{grid-column:1/3}.participate-strip>h2,.participate-options{grid-column:3/10}}
@media(max-width:1023px){.festival-media{gap:32px}}
@media(max-width:699px){
 .archive-feature{display:flex;flex-direction:column;gap:24px}
 .archive-feature>.section-heading{display:flex;flex-wrap:wrap;justify-content:space-between;margin:0}
 .archive-feature>.section-heading>.eyebrow{width:100%}
 .archive-feature>.section-heading>h2{font-size:1.75rem}
 .archive-feature>.section-heading>a{font-size:.875rem}
 .archive-feature>.tempora-band{order:1;height:auto;aspect-ratio:3/2;max-height:260px;width:100%;margin:0}
 .tempora-band--home .tempora-copy{padding:24px}
 .tempora-band--home .tempora-title{font-size:36px}
 .tempora-band--home .tempora-date{font-size:14px}
 .archive-feature>.archive-caption{order:2;padding:0;border:0}
 .archive-feature>.archive-image{order:3}
 .archive-feature>.archive-resources{order:4}
 .archive-resources>a img{width:64px;height:64px}
}

/* Official marks: native aspect ratios, optical sizing, no colour filters. */
.partner-context{font:.875rem/1.5 var(--sans);color:var(--ink-2);margin-bottom:24px}
.partner-group{display:grid;grid-template-columns:180px minmax(0,1fr);gap:32px;padding:32px 0;border-top:1px solid var(--paper-2)}
.partner-group>h3{font:500 1rem/1.4 var(--sans);margin:0}
.partner-logos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:32px 40px}
.partner-logo{display:flex;justify-content:center;align-items:center;min-height:92px}
.partner-logo svg{display:block;width:min(100%,calc(72px * var(--logo-ratio)));max-height:84px;aspect-ratio:var(--logo-ratio)}
.partner-sheet{width:100%;height:auto;max-width:761px;display:block}
.media-logos{grid-column:2;display:flex;flex-wrap:wrap;align-items:center;gap:32px}
.media-logos img{width:auto;height:66px;max-width:180px;object-fit:contain}
.social-section{display:flex;align-items:center;justify-content:space-between;gap:32px;border-top:1px solid var(--ink);padding:32px 0 64px;margin-top:64px}
.social-section h2{font:500 1.125rem/1.4 var(--sans);margin:0}
.social-section nav{display:flex;gap:28px;flex-wrap:wrap}
.social-section a{font:500 1.25rem/1.4 var(--sans);text-decoration:none;padding-block:10px}
.social-section a:hover{color:var(--ink-2)}
@media(max-width:1023px){.partner-group{grid-template-columns:140px minmax(0,1fr);gap:24px}.partner-logos{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.social-section{align-items:flex-start;flex-direction:column;gap:12px}}
@media(max-width:639px){.partner-group{display:block;padding:24px 0}.partner-group>h3{margin-bottom:24px}.partner-logos{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.partner-logo{min-height:80px}.partner-logo svg{max-height:72px;width:min(100%,calc(60px * var(--logo-ratio)))}.media-logos{gap:20px;margin-top:20px}.media-logos img{max-width:130px;height:50px}.social-section{padding-bottom:40px;margin-top:40px}.social-section nav{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:8px 24px}}

/* Edition browser: source artwork, one explicit open panel, no autoplay. */
.archive-feature>.editions{grid-column:1/-1;grid-row:2;min-width:0}
.editions-list{display:grid;grid-template-columns:var(--edition-columns);height:340px;border:1px solid var(--ink);transition:grid-template-columns 420ms cubic-bezier(.22,.61,.36,1)}
.edition{min-width:0;overflow:hidden;position:relative;background:var(--paper)}
.edition+.edition{border-left:1px solid var(--ink)}
.edition>h3{margin:0;height:100%;background-size:auto 100%;background-position:65% center}
.edition[data-year="2026"]>h3{background:var(--campaign-yellow)}
.edition[data-year="2025"]>h3{background-image:url('/assets/tempora-ribbons-mobile.svg')}
.edition[data-year="2024"]>h3{background-image:url('/assets/edition-2024.jpg')}
.edition[data-year="2023"]>h3{background-image:url('/assets/edition-2023.jpg');background-position:32% center}
.edition[data-year="2022"]>h3{background-image:url('/assets/edition-2022.jpg')}
.edition[data-year="2021"]>h3{background-image:url('/assets/edition-2021.jpg');background-position:86% center}
.edition h3 button{width:100%;height:100%;border:0;border-radius:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:20px 8px;cursor:pointer;color:var(--ink)}
.edition h3 button:focus-visible{outline:3px solid var(--ink);outline-offset:-4px}
.edition-year{writing-mode:vertical-rl;font:500 1.75rem/1 var(--sans);background:var(--paper);padding:10px 6px;font-variant-numeric:tabular-nums}
.edition-toggle{font:400 1.75rem/1 var(--sans);background:var(--paper);width:36px;height:36px;display:grid;place-items:center}
.edition-summary{display:none}
.edition[data-open]>h3{height:52px;background:var(--paper)}
.edition[data-open] h3 button{flex-direction:row;padding:8px 20px}
.edition[data-open] .edition-year{writing-mode:horizontal-tb;font-size:1.125rem;padding:0}
.edition[data-open] .edition-toggle{font-size:1.5rem}
.edition-panel[hidden]{display:none}
.edition-panel{height:calc(100% - 52px);display:flex;flex-direction:column;min-width:0}
.edition-art{height:160px;flex:none;display:flex;align-items:center;padding:24px 32px}
.edition-art-tempora{background:#040766 url('/assets/tempora-ribbons.svg') center/cover;color:#a4e517;font:200 clamp(36px,4vw,56px)/1 var(--sans);letter-spacing:.015em;text-transform:uppercase}
.edition-art-100{background:var(--campaign-yellow);font:500 5rem/1 var(--sans)}
.edition-banner{width:100%;height:auto;max-height:160px;object-fit:contain;object-position:center;background:var(--paper);flex:none}
.edition-info{padding:20px;display:grid;grid-template-columns:1fr auto;gap:8px 20px;align-items:start;margin-top:auto}
.edition-theme{font:500 1.25rem/1.2 var(--sans);margin:0;grid-column:1}
.edition-date{font:.875rem/1.4 var(--sans);margin:0;grid-column:1;color:var(--ink-2)}
.edition-info>a{grid-column:2;grid-row:1/3;align-self:center;text-decoration:none;font:500 .875rem/1.4 var(--sans);padding:10px 0}
.edition-info>a:hover{color:var(--ink-2)}
@media(max-width:1023px){
 .editions-list{display:block;height:auto;transition:none}
 .edition+.edition{border-left:0;border-top:1px solid var(--ink)}
 .edition>h3,.edition[data-open]>h3{height:64px;background:var(--paper)!important}
 .edition h3 button,.edition[data-open] h3 button{flex-direction:row;padding:12px 16px;gap:16px;text-align:left}
 .edition-year,.edition[data-open] .edition-year{writing-mode:horizontal-tb;font-size:1.25rem;padding:0}
 .edition-summary{display:block;font:400 1rem/1.3 var(--serif);flex:1}
 .edition-toggle{font-size:1.5rem;flex:none}
 .edition-panel{height:auto}
 .edition-art{height:190px}
 .edition-art-tempora{background-image:url('/assets/tempora-ribbons-mobile.svg');background-position:center;font-size:40px}
 .edition-info{padding:20px 16px}
 .edition-theme{font-size:1.125rem}
 .edition-info>a{max-width:8rem}
}
@media(max-width:699px){.archive-feature>.editions{order:1}}
@media(prefers-reduced-motion:reduce){.editions-list{transition:none}}

/* A continuous edition field, with purpose-composed narrow spines. */
.tempora-band{width:100%;min-width:0}
.edition{--edition-bg:#fbb03b;--edition-ink:#141414;background:var(--edition-bg);color:var(--edition-ink)}
.edition[data-year="2025"]{--edition-bg:#040766;--edition-ink:#a4e517}
.edition[data-year="2024"]{--edition-bg:#634494;--edition-ink:#fff}
.edition[data-year="2023"]{--edition-bg:#dd0050;--edition-ink:#fff}
.edition[data-year="2022"]{--edition-bg:#bd9e72;--edition-ink:#141414}
.edition[data-year="2021"]{--edition-bg:#10519a;--edition-ink:#fff}
.edition h3 button{position:relative;isolation:isolate;color:var(--edition-ink)}
.edition>h3,.edition[data-open]>h3{background:var(--edition-bg)!important}
.edition-year,.edition-toggle{background:transparent;position:relative;z-index:2}
.edition-year{font-weight:500}
.edition-toggle{font-size:1.5rem}
.edition[data-open] h3 button{border-bottom:1px solid color-mix(in srgb,var(--edition-ink) 25%,transparent)}
.edition h3 button:focus-visible{outline:2px solid var(--edition-ink);outline-offset:-6px}
.edition-info{margin-top:0;flex:1;align-content:center;color:var(--edition-ink)}
.edition-info .edition-date{color:inherit}
.edition-info>a:hover{color:inherit;opacity:.75}
.edition-banner{background:var(--edition-bg)}
.edition-spine{position:absolute;inset:110px 10px 60px;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:0}
.edition-spine svg{width:100%;height:100%;display:block;overflow:hidden}
.edition-spine>span{font:500 2.25rem/1 var(--sans);writing-mode:vertical-rl}
.edition[data-year="2025"] .edition-spine{inset:100px 0 50px;background:url('/assets/tempora-ribbons-mobile.svg') right center/auto 100% no-repeat}
.edition[data-year="2023"] .edition-spine{inset:100px 0 50px;overflow:hidden}
.edition[data-year="2023"] .edition-spine svg{width:220px;height:102px;max-width:none;flex:none;transform:rotate(-90deg)}
.edition[data-year="2022"] .edition-spine{inset:115px 0 60px;background:url('/assets/edition-2022.jpg') 54% center/auto 100% no-repeat}
.edition[data-year="2021"] .edition-spine{inset:103px 8px 58px;flex-direction:column;gap:4px}
.edition[data-year="2021"] .edition-spine svg{height:33%;width:100%}
.edition[data-open] .edition-spine{display:none}
@media(max-width:1023px){
 .edition>h3,.edition[data-open]>h3{background:var(--edition-bg)!important}
 .edition-summary{position:relative;z-index:2}
 .edition-spine{display:none}
 .edition-art{height:190px}
 .edition-info{min-height:104px}
}

.information-directory{display:grid;grid-template-columns:1fr 1fr;gap:64px}
.information-directory h2{font-size:1.75rem;margin-bottom:24px}
.information-directory ul{list-style:none;padding:0;margin:0}
.information-directory li{border-top:1px solid var(--paper-2)}
.information-directory a{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:52px;padding:12px 0;text-decoration:none}
.information-directory a:hover{color:var(--ink-2)}
.information-directory a span{font-size:.875rem}
.history-directory{padding-top:48px;margin-top:48px;border-top:1px solid var(--ink)}
.history-directory h2{font-size:1.5rem;margin-bottom:24px}
.history-directory>div{display:flex;flex-wrap:wrap;gap:8px 28px}
.history-directory a{font:500 1.25rem/1 var(--sans);text-decoration:none;padding:12px 0}
.history-directory a:hover{color:var(--ink-2)}
.history-directory p{font:.875rem/1.5 var(--sans);color:var(--ink-2);margin-top:20px}
@media(max-width:699px){.information-directory{grid-template-columns:1fr;gap:40px}}

.archive-official-directory{padding-top:48px;margin-top:48px;border-top:1px solid var(--ink)}
.archive-official-directory h2{font-size:1.5rem;margin-bottom:24px}
.archive-official-directory ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.archive-official-directory li{border-top:1px solid var(--paper-2)}
.archive-official-directory a{display:flex;justify-content:space-between;gap:24px;padding:16px 0;min-height:52px;font:500 1rem/1.4 var(--sans);text-decoration:none}
.archive-official-directory a:hover{color:var(--ink-2)}
@media(max-width:699px){.archive-official-directory ul{grid-template-columns:1fr}}

/* Generated 2023 colour-field adaptation; official text remains live HTML. */
.edition[data-year="2023"]{background:#06576b url('/assets/edition-2023-spine-q92.webp') center/cover}
.edition[data-year="2023"][data-open]{background-image:linear-gradient(90deg,rgba(0,0,0,.24),rgba(0,0,0,.08) 70%,rgba(0,0,0,.3)),url('/assets/edition-2023-field-q92.webp')}
.edition[data-year="2023"]>h3,.edition[data-year="2023"][data-open]>h3{background:transparent!important}
.edition[data-year="2023"] .edition-spine{display:none}
.edition-art-synaesthesias{font:500 clamp(32px,4.5vw,64px)/1.05 var(--serif);letter-spacing:-.035em;background:transparent;color:white}
.edition[data-year="2023"] .edition-info{background:rgba(0,0,0,.16)}
@media(max-width:1023px){.edition-art-synaesthesias{font-size:clamp(30px,8vw,56px)}.edition[data-year="2023"]>h3{background:rgba(0,0,0,.28)!important}}

.edition[data-year="2021"] .edition-spine{inset:120px 6px 65px}
.edition[data-year="2021"] .edition-spine svg{height:100%;width:100%}
.edition-info>a{white-space:nowrap}
@media(max-width:1023px){.edition-info>a{max-width:none}}

.archive-feature>.section-heading>h2{grid-column:1/9}

/* Preserve the official Tempora lettering; no guessed display typeface. */
.tempora-wordmark{display:block;width:100%;height:auto;max-width:460px;overflow:hidden}
.tempora-title{width:clamp(240px,34vw,460px);max-width:100%}
.edition-art-tempora .tempora-wordmark{width:min(100%,360px)}
.edition[data-open] .edition-summary{visibility:hidden}
@media(max-width:699px){.tempora-title{width:100%}.edition-art-tempora .tempora-wordmark{width:100%;max-width:300px}}

.synaesthesias-wordmark{display:block;width:100%;height:100%;max-width:560px;overflow:hidden}
.edition-art-synaesthesias{padding:0 24px;justify-content:flex-start;height:178px}
.edition[data-year="2023"] .edition-info{background:transparent}
@media(max-width:1023px){.edition-art-synaesthesias{height:170px;padding:0 20px}}

.partner-logos>.partner-logo:nth-child(5) svg[aria-label="Regione del Veneto"]{width:96px;max-height:110px}
.partner-logo svg[aria-label^="ADI"]{width:110px;max-height:100px}
.partner-logo svg[aria-label^="Fondazione Italia"]{width:170px;max-height:100px}
.partner-logos-complete{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 40px}
.partner-logos-complete .partner-logo svg{width:min(100%,calc(80px * var(--logo-ratio)));max-width:170px;max-height:90px}
@media(max-width:639px){.partner-logos-complete{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.partner-logos-complete .partner-logo svg{max-width:145px;max-height:84px}}

/* Photographic detail: native-format lead, compact facts, portrait diptych. */
.event-row{grid-template-columns:minmax(0,2fr) minmax(0,6fr) minmax(0,3fr)}
.detail-grid.image-led{row-gap:32px}
.image-led>.detail-lead{grid-column:5/13;grid-row:1;margin:0}
.image-led>.detail-facts{grid-column:1/4;grid-row:1/3}
.image-led>.detail-body{grid-column:5/13;grid-row:2}
.detail-lead img{display:block}
.detail-gallery{align-items:start}
@media(max-width:1023px){
 .image-led>.detail-lead{grid-column:1;grid-row:1}
 .image-led>.detail-facts{grid-column:1;grid-row:2}
 .image-led>.detail-body{grid-column:1;grid-row:3}
 .image-led>.detail-facts dl{display:grid;grid-template-columns:1fr 2fr;gap:12px 20px;margin-bottom:20px}
 .image-led>.detail-facts dt,.image-led>.detail-facts dd{margin:0}
 .event-row{grid-template-columns:1fr}
}

/* Official wordmark, preserving the original letterforms and aspect ratio. */
.footer-wordmark{align-self:start;max-width:560px}
#footer .footer-wordmark a{display:block;min-height:0}
.footer-wordmark img{display:block;width:100%;height:auto;filter:brightness(0) invert(1)}
@media(max-width:639px){.footer-wordmark{max-width:360px}}

/* Each edition has a composed artwork stage, preserving the source lettering. */
.editions-list{height:380px}
.edition-panel{height:calc(100% - 52px)}
.edition-art{height:216px;padding:20px 28px;justify-content:center;background:transparent}
.edition-banner{display:block;width:100%;height:100%;max-height:none;background:transparent}
.edition-art-100 img{display:block;height:100%;width:100%;object-fit:contain}
.edition[data-year="2026"] .edition-spine{inset:112px 10px 60px}
.edition-spine>img{width:100%;height:auto;display:block}
.edition[data-year="2025"][data-open]{background:#040766 url('/assets/tempora-ribbons.svg') center/cover}
.edition[data-year="2025"][data-open]>h3{background:transparent!important}
.edition-art-tempora{background:transparent}
.edition-art-tempora .tempora-wordmark{width:min(100%,420px)}
.edition-art-synaesthesias{height:216px;padding:12px 28px;justify-content:center}
.edition-info{padding:16px 24px;min-height:100px}
.edition-info>a{min-height:44px;display:flex;align-items:center}
.edition-info>a:focus-visible{outline:2px solid var(--edition-ink);outline-offset:4px}
.edition-2021-mobile{display:none}
@media(max-width:1023px){
 .editions-list{height:auto}
 .edition-panel{height:auto}
 .edition-art,.edition-art-synaesthesias{height:210px;padding:20px}
 .edition-info{min-height:88px;padding:12px 16px}
 .edition-art-2022{height:clamp(125px,24vw,210px);padding:16px}
 .edition-art-2021{height:264px;padding:16px}
 .edition-art-2021>.edition-banner{display:none}
 .edition-2021-mobile{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;height:100%}
 .edition-2021-title{width:210px;height:98px;max-width:80%;flex:none}
 .edition-2021-objects{width:100%;height:118px;display:block}
 .edition[data-year="2025"][data-open]{background-image:url('/assets/tempora-ribbons-mobile.svg')}
 .edition-art-2024{height:clamp(160px,30vw,210px)}
}
/* Flat campaign fields sampled from the official artwork. */
.edition[data-year="2021"]{--edition-bg:#0b4e9d}
.edition[data-year="2024"]{--edition-bg:#624595}
.edition[data-year="2026"] .edition-spine>span{font-size:clamp(36px,4vw,56px)}
.edition[data-year="2025"] .edition-info{background:linear-gradient(0deg,rgba(4,7,102,.97),rgba(4,7,102,.82))}
/* Origini: the complete original artwork keeps lettering and stone in one surface. */
.edition[data-year="2022"]{background:#bd9e72 url('/assets/edition-2022-stone-field-q92-delivery.webp') center/cover}
.edition[data-year="2022"]>h3,.edition[data-year="2022"][data-open]>h3{background:transparent!important}
.edition[data-year="2022"] .edition-spine{display:none}

.edition[data-year="2022"] .edition-info{background:linear-gradient(0deg,rgba(244,230,204,.88),rgba(244,230,204,0));text-shadow:0 1px 4px #f4e6cc}
.edition[data-year="2022"]>h3{background:linear-gradient(180deg,rgba(244,230,204,.8),rgba(244,230,204,0))!important}
/* One artwork surface per year. Text protection fades across the whole field. */
.edition{isolation:isolate}
.edition>h3,.edition[data-open]>h3{background:transparent!important}
.edition-info,.edition[data-year="2022"] .edition-info,.edition[data-year="2025"] .edition-info{background:transparent;text-shadow:none}
.edition::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none}
.edition[data-year="2025"][data-open]::before{background:linear-gradient(180deg,rgba(4,7,65,.72),transparent 25%,transparent 62%,rgba(4,7,65,.86) 83%)}
.edition[data-year="2023"]::before{background:linear-gradient(180deg,rgba(0,0,0,.65),transparent 30%,transparent 60%,rgba(0,0,0,.68) 83%)}
.edition[data-year="2022"]::before{background:linear-gradient(180deg,rgba(255,247,229,.9),transparent 28%,transparent 60%,rgba(255,247,229,.93) 84%)}
.edition[data-year="2022"]>h3{background:transparent!important}
.edition[data-year="2021"][data-open]{background:#0b4e9d url('/assets/edition-2021-field.svg') center/100% 100% no-repeat}
.edition[data-year="2021"][data-open]::before{background:linear-gradient(180deg,rgba(0,23,58,.75),transparent 28%,transparent 61%,rgba(0,23,58,.85) 85%)}
.edition[data-year="2024"][data-open]{background:#624595 url('/assets/edition-2024-field.svg') center/100% 100% no-repeat}
.edition-art-2021>* , .edition-art-2024>*{visibility:hidden}
.edition[data-year="2026"][data-open]{background:var(--campaign-yellow) url('/assets/100-campaign.svg') center 32%/auto 49% no-repeat}
.edition-art-100 img{visibility:hidden}
.edition-info>a:hover{opacity:1;text-decoration:none;box-shadow:inset 0 -2px currentColor}
.edition h3 button:hover .edition-toggle{transform:none}
@media(max-width:1023px){
 .edition[data-year="2021"][data-open]{background-image:url('/assets/edition-2021-field-mobile.svg')}
 .edition[data-year="2024"][data-open]{background-size:auto 100%}
 .edition[data-year="2026"][data-open]{background-size:88% auto;background-position:center 38%}
}
.edition[data-year="2026"]{--edition-bg:#fff2c6}
.edition[data-year="2026"][data-open]{background-color:#fff2c6}
.edition[data-year="2023"]:not([data-open])::before{background:rgba(0,0,0,.58)}
.edition[data-year="2022"]:not([data-open])::before{background:rgba(255,247,229,.84)}
@media(max-width:1023px){.edition[data-year="2024"][data-open]{background-size:100% 100%}}
@media(max-width:1023px){.edition[data-year="2024"][data-open]{background-image:url('/assets/edition-2024-field-mobile.svg')}}
.edition[data-year="2025"] .edition-spine{bottom:78px}
.edition[data-year="2022"][data-open]::before{background:linear-gradient(180deg,rgba(255,247,229,.92) 18%,transparent 39%,transparent 60%,rgba(255,247,229,.93) 84%)}
.edition[data-year="2025"][data-open]::before{background:radial-gradient(ellipse 65% 38% at 50% 43%,rgba(4,7,65,.8),rgba(4,7,65,.72) 50%,transparent),linear-gradient(180deg,rgba(4,7,65,.72),transparent 25%,transparent 62%,rgba(4,7,65,.86) 83%)}
/* Original artwork fields: contrast through type colour, without added scrims. */
.edition::before{display:none!important}
.edition[data-year="2023"][data-open]{background-image:url('/assets/edition-2023-field-q92.webp')}
.edition[data-year="2022"]{--edition-ink:#141414}
.edition[data-year="2021"] .edition-info>a{color:#141414}
.edition[data-year="2021"] .edition-theme{color:#fff}
.edition[data-year="2021"][data-open] .edition-toggle{color:#141414}
.edition[data-year="2025"] .edition-info>a{color:#fff}
.edition[data-year="2025"] .edition-toggle{color:#fff}
.edition[data-year="2026"] .edition-spine{inset:112px 12px 65px}
.edition[data-year="2026"] .edition-spine>img{display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:1023px){
 .edition[data-year="2021"][data-open] .edition-toggle{color:#fff}
}
.edition[data-year="2025"] .edition-info{grid-template-columns:1fr}
.edition[data-year="2025"] .edition-info>a{grid-column:1;grid-row:auto;justify-self:start;padding-top:2px;padding-bottom:2px;min-height:32px}
.edition[data-year="2025"] .edition-info{gap:2px;padding-top:6px;padding-bottom:6px}
@media(min-width:1024px){.edition[data-year="2022"]:not([data-open]) .edition-toggle{color:white}}
/* Tempora closed spine: one continuous vertical composition, no inset crop. */
@media(min-width:1024px){
 .edition[data-year="2025"]:not([data-open]){background:#040766 url('/assets/tempora-spine.svg') center/100% 100% no-repeat}
 .edition[data-year="2025"]:not([data-open]) .edition-spine{display:none}
}
/* Pointer-only campaign modules: no ambient loop, no content overlap. */
.hero{position:relative;isolation:isolate}
.hero-background-trace{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1;overflow:hidden}
.hero-background-trace > g{opacity:0}

@media(prefers-reduced-motion:reduce),(hover:none),(pointer:coarse){.hero-background-trace{display:none}}

/* Edition detail: official campaign artwork and the shared editorial rhythm. */
.edition-detail .page-heading{margin-bottom:32px}
.edition-campaign{aspect-ratio:1200/350;display:flex;align-items:center;background:var(--tempora-blue) url('/assets/tempora-ribbons.svg') center/100% 100% no-repeat;overflow:hidden;margin-bottom:48px}
.edition-campaign-mark{width:52%;padding:32px 0 32px 8%}
.edition-campaign-mark .tempora-wordmark{display:block;width:100%;height:auto;max-width:none}
.edition-detail-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:32px;margin-bottom:48px;align-items:start}
.edition-detail-grid>.detail-facts{grid-column:1/4;position:static}
.edition-detail-body{grid-column:5/13;min-width:0}
.edition-detail-body>.body-large{margin-top:0;margin-bottom:40px}
.edition-resource-list{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:14px;font:400 .9375rem/1.5 var(--sans)}
.edition-events .section-heading{margin-bottom:0}
.edition-event{padding:24px 0;border-bottom:1px solid var(--paper-2)}
.edition-event .eyebrow{margin:0 0 10px}
.edition-event h3{font:500 clamp(24px,2.5vw,36px)/1.15 var(--sans);letter-spacing:-.025em;margin:0 0 12px}
.edition-event h3 a{text-decoration:none}
.edition-event h3 a:hover{text-decoration:underline;text-underline-offset:4px}
.edition-event p{margin:0 0 12px}
.edition-event .edition-event-meta{font:400 .9375rem/1.5 var(--sans);color:var(--ink-2);margin-bottom:0}
.edition-filter-link{margin:24px 0 0;font:500 .9375rem/1.5 var(--sans)}
.edition-documentary{margin:0 0 48px}
.edition-documentary img{display:block;width:100%;height:auto;object-fit:contain}
.edition-documentary figcaption{margin-top:12px;font:italic .9375rem/1.5 var(--serif);color:var(--ink-2);max-width:80ch}
.edition-detail-nav{display:flex;justify-content:space-between;gap:24px;padding-top:24px;border-top:1px solid var(--ink);font:500 .9375rem/1.5 var(--sans)}
@media(max-width:699px){
 .edition-campaign{aspect-ratio:1;max-height:60svh;background-image:url('/assets/tempora-ribbons-mobile.svg');align-items:center;margin-bottom:32px}
 .edition-campaign-mark{width:100%;padding:24px}
 .edition-detail-grid{grid-template-columns:minmax(0,1fr);gap:32px;margin-bottom:32px}
 .edition-detail-grid>.detail-facts,.edition-detail-body{grid-column:1}
 .edition-detail-grid .detail-facts dl{display:grid;grid-template-columns:1fr 2fr;gap:12px 20px}
 .edition-detail-grid .detail-facts dt,.edition-detail-grid .detail-facts dd{margin:0}
 .edition-detail-body>.body-large{margin-bottom:32px}
 .edition-documentary{margin-bottom:32px}
 .edition-detail-nav{flex-wrap:wrap}
}
.edition-events>.section-heading{display:block;margin-bottom:24px}
.edition-filter-link a,.edition-detail-nav a{text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.edition-filter-link a:hover,.edition-detail-nav a:hover{color:var(--ink-2)}

/* Simboli delle selezioni: gli stessi SVG del menu in homepage. */
.page-heading h1.selection-heading{display:flex;align-items:center;gap:24px}
.selection-heading>img{display:block;width:72px;height:72px;flex:0 0 72px;object-fit:contain}
.selection-heading>span{min-width:0}
@media(max-width:639px){
 .page-heading h1.selection-heading{gap:16px}
 .selection-heading>img{width:44px;height:44px;flex-basis:44px}
}

.selection-participants{margin-top:48px;padding-top:24px;border-top:1px solid var(--ink)}
.selection-participants h2{font-size:clamp(1.5rem,3vw,2rem);margin-bottom:24px}
.selection-participants ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}
.selection-participants li{border-bottom:1px solid var(--paper-2)}
.selection-participants li a{display:flex;align-items:center;min-height:48px;padding:10px 0}
.selection-participants>p{margin-top:20px;color:var(--ink-2)}
@media(max-width:639px){.selection-participants ul{grid-template-columns:minmax(0,1fr)}}

.edition-original-campaign{margin:0 0 48px}
.edition-original-campaign img{display:block;width:100%;height:auto}
.edition-resources{margin-top:28px;padding-top:20px;border-top:1px solid var(--ink)}
.edition-resources h2{font-size:1rem;margin-bottom:12px}
.edition-resources .edition-resource-list{margin-top:0}
.edition-detail-nav{flex-wrap:wrap;gap:24px}
.edition-detail-nav a{min-height:44px;display:flex;align-items:center}

.service-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 64px;margin-bottom:80px}
.service-layout section{border-top:1px solid var(--ink);padding-top:24px}
.service-layout h2{font-size:clamp(1.5rem,3vw,2rem);margin-bottom:20px}
.service-layout p{margin:16px 0;max-width:65ch}
.service-layout a{overflow-wrap:anywhere}
.service-publications{list-style:none;padding:0}
.service-publications li{border-bottom:1px solid var(--paper-2)}
.service-publications a{display:flex;align-items:center;min-height:48px;padding:12px 0}
@media(max-width:639px){.service-layout{grid-template-columns:minmax(0,1fr);gap:32px}}

.selection-participants li>span{display:flex;align-items:center;min-height:48px;padding:10px 0}
.edition-tabs{flex-wrap:wrap;gap:16px}
.edition-event-meta{line-height:1.5}

.edition-event.has-image{display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,2fr);gap:24px;align-items:start}
.edition-event-image img{display:block;width:100%;height:auto}
.edition-event-copy h3{overflow-wrap:break-word}
@media(max-width:639px){.edition-event.has-image{grid-template-columns:minmax(0,1fr);gap:20px}}

.project-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 32px;margin-bottom:80px;align-items:start}
.project-directory img{display:block;width:100%;height:auto;margin-bottom:20px}
.project-directory h2{font-size:1.6rem;overflow-wrap:anywhere;margin-bottom:10px}
.project-directory p{margin-bottom:8px}
@media(max-width:1023px){.project-directory{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:639px){.project-directory{grid-template-columns:minmax(0,1fr)}}

.people-list,.city-guide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 48px;margin-bottom:64px}
.people-list article,.city-guide article{border-top:1px solid var(--ink);padding-top:20px}
.people-list h2,.city-guide h2{font-size:1.75rem;margin-bottom:12px}
.people-history{margin:64px 0 32px}
.people-history h2{margin-bottom:24px}
.people-history details{border-top:1px solid var(--paper-2);padding:8px 0}
.people-history summary{cursor:pointer;padding:12px 0;min-height:44px}
.people-history details p{max-width:75ch;line-height:1.7;padding-bottom:24px}
.faq-list{max-width:850px}
.faq-list section{border-top:1px solid var(--ink);padding:28px 0}
.faq-list h2{font-size:1.75rem;margin-bottom:16px}
.faq-list p{font:1.25rem/1.6 var(--serif);max-width:65ch}
.name-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px;list-style:none;padding:0;margin-bottom:80px}
.name-directory li{border-top:1px solid var(--paper-2)}
.name-directory a{display:flex;align-items:center;min-height:48px;padding:12px 0}
@media(max-width:639px){.people-list,.city-guide,.name-directory{grid-template-columns:minmax(0,1fr)}}

.catalogue-entry[hidden]{display:none}
.edition-designers{margin-top:64px}
.edition-designers h2{margin-bottom:24px}
.technical-facts{margin-top:40px;padding-top:24px;border-top:1px solid var(--ink)}
.technical-facts h2{font-size:1.5rem;margin-bottom:16px}
.technical-facts ul{padding-left:20px;line-height:1.7}

.selection-projects{margin-top:48px;padding-top:24px;border-top:1px solid var(--ink)}
.selection-projects h2{font-size:2rem;margin-bottom:24px}
.selection-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.selection-project-grid img{display:block;width:100%;height:auto;margin-bottom:16px}
.selection-project-grid h3{font-size:1.5rem;margin-bottom:10px}
@media(max-width:639px){.selection-project-grid{grid-template-columns:minmax(0,1fr)}}

.place-photo{max-width:880px;margin:0 0 48px}
.place-photo img{display:block;max-width:100%;height:auto}
.place-photo figcaption{margin-top:12px;font:italic 1rem/1.4 var(--serif);color:var(--ink-2)}

.edition-detail-grid>.edition-introduction{grid-column:5/13;grid-row:1;margin:0}
.edition-detail-grid>.detail-facts{grid-row:1/span 2}
.edition-detail-grid>.edition-detail-body{grid-row:2}
@media(min-width:640px){
 .edition-events:has(.edition-event-image) .edition-event{display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,2fr);gap:24px;align-items:start}
 .edition-events:has(.edition-event-image) .edition-event-copy{grid-column:2}
}
@media(max-width:699px){
 .edition-detail-grid>.edition-introduction,.edition-detail-grid>.detail-facts,.edition-detail-grid>.edition-detail-body{grid-column:1;grid-row:auto}
}
@media(max-width:639px){
 #footer .footer-top>div:last-child{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;align-items:stretch}
 #footer .footer-top>div:last-child a{min-height:44px;align-items:center}
}

.edition-documentary-section,.edition-acknowledgements{margin-top:40px}.edition-documentary-section h2,.edition-acknowledgements h2{font-size:clamp(24px,3vw,36px);margin-bottom:16px}.edition-documentary-section p,.edition-coverage{max-width:68ch;line-height:1.65}.edition-coverage{margin-top:32px}.edition-acknowledgements ul{columns:2;column-gap:32px;padding-left:20px}.edition-acknowledgements li{break-inside:avoid;margin-bottom:8px}@media(max-width:600px){.edition-acknowledgements ul{columns:1}}

/* Historical archive refinements reviewed with Fable. */
.catalogue-directory img{width:100%;height:auto;object-fit:contain;object-position:center;background:var(--paper-2)}
.edition-detail-nav{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:8px 16px;justify-content:start}
.edition-nav-label{grid-column:1/-1;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-size:.8rem}
.edition-resources summary{font-weight:500;cursor:pointer;min-height:44px;display:list-item;list-style-position:inside}
.edition-resources[open] summary{margin-bottom:16px}
.edition-resources a{display:inline-flex;align-items:center;min-height:44px}
.source-link{font-size:.9375rem}
.text-led>.detail-introduction{grid-column:5/13;grid-row:1;margin-top:0}
.text-led>.detail-facts{grid-row:1/span 2}
.text-led>.detail-body{grid-column:5/13;grid-row:2}
@media(max-width:767px){.text-led>.detail-introduction,.text-led>.detail-facts,.text-led>.detail-body{grid-column:1;grid-row:auto}.text-led>.detail-introduction{margin-bottom:0}.text-led>.detail-facts{position:static}.page-heading+.detail-grid>.detail-facts:first-child{border-top:0;padding-top:0}}

.historical-details{margin-top:40px}.historical-details h2{font-size:clamp(24px,3vw,36px);margin-bottom:20px}.historical-details ul{padding-left:20px}.historical-details li{line-height:1.6;margin-bottom:16px}

/* An empty footer must not flash before the page content is rendered. */
#footer:empty{display:none}

.card-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin:40px 0}.card-plans section{border-top:1px solid var(--ink);padding-top:24px}.card-plans h2{font-size:1.75rem}.card-price{font:500 3rem/1.2 var(--sans);margin:20px 0}.card-plans ul{padding-left:20px;line-height:1.6}.card-plans li{margin-bottom:12px}.service-note{max-width:70ch;margin-top:40px;line-height:1.6}.closed-call{max-width:700px}.closed-call dl{display:grid;grid-template-columns:1fr auto;gap:16px 32px;margin:24px 0}.closed-call dd{margin:0}.closed-call h2{font-size:1.75rem}@media(max-width:767px){.card-plans{grid-template-columns:1fr;gap:32px}.card-price{font-size:2.5rem}}

.source-link{border:1px solid var(--ink);padding:8px 12px;max-width:100%;text-decoration:none;justify-content:center}.source-link:hover{background:var(--paper-2)}

/* Editorial resources and source contrast on the participation page. */
.selection-brochures{margin-block:48px}
.selection-brochures h2{margin:0 0 24px}
.selection-brochures ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.selection-brochures li{border-bottom:1px solid var(--ink)}
.selection-brochures a{display:flex;align-items:center;min-height:56px;padding:16px 0;font:500 1.125rem/1.4 var(--sans);text-decoration:none}
.contact-block .source-link{border-color:currentColor}
.contact-block .source-link:hover{background:var(--paper);color:var(--ink)}

.source-comparison{display:inline-flex;align-items:center;min-height:44px;font-weight:500;text-decoration:underline;text-underline-offset:4px}

/* Keep the mobile dropdown in page flow, so it never cuts through the hero. */
@media(max-width:1023px){#nav{position:static;flex-basis:100%;order:5;padding:0 0 24px}#header:has(#nav.open){position:relative}}
.edition-activities{margin-block:48px}
@media(min-width:1024px){.edition-activities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 40px}.edition-activities>.section-heading{grid-column:1/-1;margin-bottom:0}.edition-activities .edition-event{margin:0;display:block}.edition-activities .edition-event.has-image{display:grid;grid-template-columns:120px minmax(0,1fr);gap:24px}.edition-activities .edition-event .edition-event-copy{grid-column:auto}.edition-activities .edition-event h3{font-size:24px}}

/* Fable editorial direction: exhibition spreads, then a dated agenda. */
.exhibition-journal{margin:24px 0 96px}
.journal-story{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:32px;padding:40px 0 64px;border-top:1px solid var(--ink);align-items:center}
.journal-image{grid-column:1/7;display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;background:var(--paper-2);overflow:hidden}
.journal-image img{display:block;width:100%;height:100%;object-fit:contain}
.journal-copy{grid-column:8/13;min-width:0}
.journal-copy h2{font:500 clamp(28px,3.3vw,52px)/1.06 var(--sans);letter-spacing:-.035em;margin:20px 0}
.journal-copy h2 a{text-decoration:none}.journal-copy h2 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
.journal-deck{font:clamp(19px,1.7vw,26px)/1.4 var(--serif);margin-bottom:28px}
.journal-meta{font:1rem/1.6 var(--serif);margin:0;max-width:42ch}
.journal-story:first-child .journal-image{grid-column:1/9}.journal-story:first-child .journal-copy{grid-column:9/13}
.journal-story:nth-child(3n) .journal-image{grid-column:7/12;grid-row:1}.journal-story:nth-child(3n) .journal-copy{grid-column:1/6;grid-row:1}
.journal-story.type-only{padding-block:32px}.journal-story.type-only .journal-copy{grid-column:3/12;grid-row:auto}.journal-story.type-only h2{font-size:clamp(27px,3vw,44px)}
.journal-story[data-category="interior"]{--journal-tint:color-mix(in srgb,var(--campaign-pink) 18%,var(--paper))}.journal-story[data-category="light"]{--journal-tint:color-mix(in srgb,var(--campaign-cyan) 18%,var(--paper))}.journal-story[data-category="outdoor"]{--journal-tint:color-mix(in srgb,var(--campaign-lime) 18%,var(--paper))}.journal-story[data-category="jewelry"]{--journal-tint:color-mix(in srgb,var(--campaign-yellow) 18%,var(--paper))}
.journal-story:has(a:hover) .journal-image,.journal-story:has(a:focus-visible) .journal-image{background:var(--journal-tint,var(--paper-2))}
.programme-agenda,.edition-exhibitions{margin:64px 0}.editorial-agenda{width:100%}.agenda-day{display:grid;grid-template-columns:2fr 10fr;gap:40px;border-top:1px solid var(--ink);padding:32px 0 48px}.agenda-date{margin:0;font:500 1.5rem/1.1 var(--sans);overflow-wrap:anywhere}.agenda-date span{display:block;font-size:clamp(52px,7vw,100px);letter-spacing:-.06em}.agenda-date small{font:1.1rem/1.5 var(--serif)}.agenda-entry{padding:0 0 24px;margin:0 0 24px;border-bottom:1px solid var(--paper-2)}.agenda-entry:last-child{margin:0;padding-bottom:0;border:0}.agenda-entry h4{font:500 clamp(22px,2vw,30px)/1.2 var(--sans);margin:8px 0 12px}.agenda-entry h4 a{text-decoration:none}.agenda-entry h4 a:hover{text-decoration:underline}.agenda-entry p{max-width:70ch;line-height:1.5}.agenda-entry .agenda-meta{font:1rem/1.6 var(--serif);margin-top:12px}.edition-activities{display:block!important}.edition-activities>.section-heading{margin-bottom:32px}
.catalogue-directory{grid-template-columns:repeat(12,minmax(0,1fr));gap:64px 32px;align-items:start}.catalogue-directory .catalogue-entry{grid-column:span 3;min-width:0;border-top:1px solid var(--ink);padding-top:16px}.catalogue-directory .catalogue-entry[data-position="0"],.catalogue-directory .catalogue-entry[data-position="5"]{grid-column:span 6}.catalogue-directory .catalogue-entry article{border:0;padding:0}.catalogue-directory .catalogue-entry h2{font-size:clamp(22px,2vw,32px);line-height:1.15;letter-spacing:-.025em;text-decoration:none}.catalogue-directory .catalogue-entry a{text-decoration:none}.catalogue-directory .catalogue-entry a:hover h2{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}.catalogue-directory .catalogue-entry[data-position="0"] h2,.catalogue-directory .catalogue-entry[data-position="5"] h2{font-size:clamp(28px,3vw,44px)}
.edition-designers .name-directory{font-family:var(--serif)}
@media(max-width:767px){
 .journal-story{display:flex;flex-direction:column;align-items:stretch;gap:24px;padding:24px 0 40px}.journal-image{width:100%}.journal-copy h2{font-size:34px;margin:12px 0}.journal-story.type-only h2{font-size:28px}.journal-meta{font-size:15px}.exhibition-journal{margin-bottom:48px}.agenda-day{grid-template-columns:64px minmax(0,1fr);gap:20px;padding-block:24px}.agenda-date span{font-size:56px}.agenda-date small{font-size:14px}.agenda-date{font-size:18px}.agenda-entry h4{font-size:23px}.programme-agenda,.edition-exhibitions{margin-block:40px}
 .catalogue-directory{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 20px}.catalogue-directory .catalogue-entry{grid-column:span 1}.catalogue-directory .catalogue-entry[data-position="0"],.catalogue-directory .catalogue-entry[data-position="5"]{grid-column:span 2}.catalogue-directory .catalogue-entry h2{font-size:22px}
 #filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}#filters label{min-width:0;grid-column:auto}#filters input,#filters select{min-width:0;width:100%}#filters .reset{align-self:end}
}
.journal-image img{object-fit:scale-down}
#results:has(.exhibition-journal){border-top:0}
.agenda-undated{grid-template-columns:minmax(0,1fr)}.agenda-undated>.agenda-date{max-width:45ch;font-size:clamp(22px,2.5vw,32px)}

/* Fable: the final page of the catalogue. */
#footer{margin-top:var(--space-section);padding:0 var(--pad) 32px;background:var(--paper);color:var(--ink);border-top:1px solid var(--ink);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter)}
#footer a{color:var(--ink);min-height:44px;display:inline-flex;align-items:center;text-decoration:none}
.fo-plane{grid-column:1/8;background:var(--campaign-yellow);margin-left:calc(-1*var(--pad));padding:48px var(--gutter) 32px var(--pad);display:flex;flex-direction:column;justify-content:space-between;min-height:520px}
.fo-dates{margin:0}
.fo-days{display:block;font:500 clamp(7rem,17vw,18rem)/.85 var(--sans);letter-spacing:-.06em;font-variant-numeric:tabular-nums}
.fo-month{display:block;margin-top:16px;font:italic 400 clamp(1.5rem,2.4vw,2.25rem)/1.15 var(--serif)}
.fo-symbols{display:flex;flex-wrap:wrap;gap:8px 32px;margin-top:48px}
.fo-symbols a{gap:12px;padding:4px 8px 4px 0;font:500 1rem/1 var(--sans)}
.fo-symbols img{width:56px;height:56px;display:block}
.fo-symbols a:hover span,.fo-symbols a:focus-visible span{text-decoration:underline;text-underline-offset:4px}
.fo-plane a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.fo-index{grid-column:8/13;display:grid;grid-template-columns:1fr 1fr;column-gap:var(--gutter);align-content:end;padding:48px 0 32px}
.fo-index a{border-top:1px solid var(--ink);min-height:52px;padding:8px 0;font:500 1.125rem/1.2 var(--sans)}
.fo-index a:hover,.fo-index a:focus-visible{box-shadow:inset 0 3px var(--campaign-blue)}
.fo-colophon{grid-column:1/13;display:grid;grid-template-columns:4fr 3fr 2fr 3fr;column-gap:var(--gutter);align-items:center;border-top:1px solid var(--ink);padding-top:24px;font:400 .9375rem/1.4 var(--sans)}
.fo-logo{max-width:320px;min-height:0}
.fo-logo img{width:100%;height:auto}
.fo-colophon p{margin:0;color:var(--ink-2)}
.fo-top{justify-self:end}
@media(max-width:1023px){
 #footer{display:block}
 .fo-plane{margin-inline:calc(-1*var(--pad));padding:40px var(--pad) 32px;min-height:0}
 .fo-days{font-size:clamp(5rem,32vw,11rem)}
 .fo-symbols{gap:4px 16px;margin-top:32px}
 .fo-symbols img{width:44px;height:44px}
 .fo-index{padding:32px 0 24px}
 .fo-colophon{grid-template-columns:1fr;row-gap:4px;align-items:start}
 .fo-logo{max-width:240px;margin-bottom:16px}
 .fo-top{justify-self:start}
}
@media(max-width:389px){.fo-index{grid-template-columns:1fr}}
#footer .fo-index a{min-height:52px}
#footer .fo-colophon a{min-height:44px}
#footer .fo-colophon a:hover{text-decoration:underline;text-underline-offset:4px}
.fo-colophon .fo-top{grid-column:4;justify-self:end}
@media(max-width:1023px){.fo-colophon .fo-top{grid-column:auto;justify-self:start}}
/* Paper stamps keep every original color visible, including Jewelry's amber diamond. */
.fo-symbols img{background:var(--paper);padding:5px;box-sizing:content-box}

/* Fable navigation: masthead, running head and grouped index. */
#header{flex-wrap:wrap;gap:20px;min-height:70px}
#header .brand{order:0}#header .header-edition{order:1;display:none}
#nav{order:2;gap:18px}#nav a{display:inline-flex;align-items:center;min-height:44px;font-size:.9375rem;padding:8px 0;text-decoration:none}
#nav a[aria-current]{font-weight:500;box-shadow:none;text-decoration:none}
#nav a:hover{box-shadow:inset 0 -1px var(--ink);text-decoration:none}
#header .menu-toggle{display:inline-flex;order:3;gap:10px;min-height:44px;font-size:.9375rem}
.menu-toggle span,.menu-toggle[aria-expanded="true"] span{transform:none;font-size:inherit;transition:none}
.menu-toggle::after{content:'+';font-size:1.25rem;line-height:1}.menu-toggle[aria-expanded="true"]::after{content:'−'}
#header .language{order:4;margin-left:0}.tl-mobile{display:none}
#site-index{flex-basis:100%;order:9;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:32px;padding:32px 0 40px;border-top:1px solid var(--ink)}
#site-index[hidden]{display:none}#header:has(#site-index:not([hidden])){position:relative}
#site-index h2{display:flex;flex-direction:column;gap:16px;font:500 .875rem/1.4 var(--sans);text-transform:uppercase;letter-spacing:.06em;margin:0 0 16px}
#site-index h2>span{font:400 2.4rem/1 var(--serif);letter-spacing:-.04em;color:var(--ink-2)}
#site-index ul{list-style:none;margin:0;padding:0}#site-index li{border-top:1px solid var(--paper-2)}
#site-index a{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 0;font:400 1rem/1.35 var(--sans);text-decoration:none}
#site-index a:hover{background:var(--paper-2)}#site-index img{flex:none;width:28px;height:28px}
.running-head{display:flex;flex-wrap:wrap;gap:0 28px;padding:0 var(--pad);border-bottom:0;background:var(--paper-2);font:500 .9375rem/1.3 var(--sans)}
.running-head a{display:inline-flex;align-items:center;gap:10px;min-height:48px;text-decoration:none;padding:8px 0}
.running-head img{width:24px;height:24px;flex:none}.running-head a[aria-current]{font-weight:500;box-shadow:inset 0 -3px var(--campaign-yellow)}.running-head a:hover{box-shadow:inset 0 -1px var(--ink)}
@media(min-width:1440px){#header .header-edition{display:block}}
@media(min-width:1024px) and (max-width:1199px){#header{gap:14px}#nav{gap:14px}#header .brand img{height:23px}#nav a{font-size:.875rem}#header .menu-toggle{padding-inline:10px}}
@media(max-width:1023px){
 #header{gap:12px;min-height:56px}#header .menu-toggle{order:1;margin-left:auto}#header .language{order:2}#nav{display:none;order:5;width:100%;margin:0;padding:0;border:0;gap:0}#nav.open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}#nav a,#nav a:first-child{min-height:56px;font-size:1.3rem;border-top:1px solid var(--ink);white-space:normal}#nav a[aria-current]{background:color-mix(in srgb,var(--campaign-yellow) 20%,var(--paper));box-shadow:none;padding-inline:10px}
 .tl-mobile{display:inline}.tl-desktop{display:none}#site-index{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px;padding-top:24px}#site-index h2{gap:8px}#site-index h2>span{font-size:1.75rem}
 .running-head{gap:0 22px;font-size:.875rem}.running-head a{gap:8px}
}
@media(max-width:389px){#header{gap:8px}#header .brand img{height:18px}#header .menu-toggle{padding-inline:8px}#site-index{gap:28px 16px}#site-index a{font-size:.9375rem}#nav a{font-size:1.125rem}.running-head{gap:0 18px}}


/* Dedicated mobile reading and visit controls; desktop composition is preserved. */
.mobile-edition-choice{margin:0;padding:0;border:0}
.mobile-edition-choice>summary,.mobile-visit-jump,.mobile-page-contents{display:none}
.visit-directions{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:16px 0}
.visit-directions a,.venue-directions{display:inline-flex;align-items:center;min-height:44px;font:500 1rem/1.4 var(--sans);text-decoration:none}
.visit-directions a:focus-visible,.venue-directions:focus-visible{outline:2px solid currentColor;outline-offset:4px}
#visit-information,[id^="venue-"],[id^="mobile-section-"],#programme-exhibitions,#programme-activities{scroll-margin-top:80px}
@media(max-width:1023px){
 .edition h3 button{touch-action:manipulation}
 .edition-info>a{display:inline-flex;align-items:center;min-height:44px!important;padding:10px 0!important}
 .edition[data-year="2022"]>h3{background:#d7bd99!important;color:#141414}
 .edition[data-year="2022"] .edition-summary,.edition[data-year="2022"] .edition-year{color:#141414}
}
@media(max-width:767px){
 #main{padding-left:max(var(--pad),env(safe-area-inset-left));padding-right:max(var(--pad),env(safe-area-inset-right))}
 .mobile-edition-choice{border-block:1px solid var(--ink);margin-bottom:24px}
 .mobile-edition-choice>summary{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 0;list-style:none;cursor:pointer;font:400 1rem/1.4 var(--sans)}
 .mobile-edition-choice>summary::-webkit-details-marker{display:none}
 .mobile-edition-choice>summary strong{font-weight:500}
 .mobile-edition-choice>summary span{margin-left:auto;font-size:.9375rem}
 .mobile-edition-choice>summary::after{content:'+';font-size:1.25rem;width:20px;text-align:center}
 .mobile-edition-choice[open]>summary::after{content:'−'}
 .mobile-edition-choice .edition-tabs{border:0;margin:0;padding:0 0 12px;gap:4px 16px}
 .mobile-edition-choice .edition-tabs a{min-width:44px;min-height:44px;justify-content:center}
 .mobile-visit-jump{display:inline-flex;align-items:center;min-height:44px;margin-top:12px;font:500 1rem/1.4 var(--sans);text-decoration:none;border-bottom:1px solid var(--ink)}
 .mobile-page-contents{display:flex;flex-wrap:wrap;gap:0 24px;margin:0 0 28px;padding-block:4px;border-block:1px solid var(--ink)}
 .mobile-page-contents a{display:inline-flex;min-height:44px;align-items:center;font:500 1rem/1.4 var(--sans);text-decoration:none}
 .mobile-programme-contents{margin-top:0;margin-bottom:0}
 .mobile-page-contents a:hover,.mobile-visit-jump:hover,.visit-directions a:hover{color:var(--ink-2)}
 .breadcrumb{margin-top:16px}
 .breadcrumb a{display:inline-flex;align-items:center;min-height:44px;max-width:100%}
 .hero-actions>a,.section-heading>a,.feature-event>div>a,.festival-intro a,.archive-caption h3>a,.archive-more>a,.archive-feature>.archive-more>a,.venue-row a,.project-info>a,.service-layout a{min-height:44px;display:inline-flex;align-items:center}
 .hero-actions{row-gap:4px}
 /* Inline padding enlarges the touch area without adding a gap under one-line titles. */
 .journal-copy h2 a,.agenda-entry h4 a{padding-block:8px}
 .journal-copy h2{font-size:clamp(28px,8.7vw,36px)}
 .journal-meta{font-size:1rem}
 #filters input,#filters select,.catalogue-filters input,.catalogue-filters select{font-size:1rem;min-height:48px}
 #filters .reset{min-height:48px;padding:8px;font-size:1rem;line-height:1.25}
 #filters{margin-top:0}
 .selection-projects h2{font-size:1.75rem}
 .detail-facts{scroll-margin-top:72px}
 .detail-facts:focus:not(:focus-visible){outline:none}
 .detail-facts dl{overflow-wrap:anywhere}
 .page-heading{padding-top:28px}
}
@media(max-width:359px){
 #filters{grid-template-columns:minmax(0,1fr)}
 #filters .reset{justify-self:start;padding-inline:16px}
 .catalogue-directory{grid-template-columns:minmax(0,1fr)}
 .catalogue-directory .catalogue-entry,.catalogue-directory .catalogue-entry[data-position="0"],.catalogue-directory .catalogue-entry[data-position="5"]{grid-column:1}
 .catalogue-directory .catalogue-entry h2{font-size:26px}
 .agenda-day{grid-template-columns:52px minmax(0,1fr);gap:16px}
 .agenda-date span{font-size:44px}
}
@media(hover:none){
 .journal-story:has(a:hover) .journal-image{background:var(--paper-2)}
 .project-image:hover img{transform:none}
}
@media(min-width:360px) and (max-width:767px){
 .project-grid,.selection-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 16px}
 .project-grid article,.selection-project-grid article{min-width:0;padding-top:0!important}
 .project-image{aspect-ratio:4/3;margin-bottom:16px;background:var(--paper-2)}
 .project-image img{width:100%;height:100%;object-fit:contain}
 .project-grid h3,.selection-project-grid h3{font-size:1.125rem;line-height:1.25}
 .selection-project-grid img{object-fit:contain;background:var(--paper-2)}
 .project-grid p{font-size:1rem}
}
@media(max-width:767px){
 .journal-story>.mobile-journal-title{font:500 clamp(28px,8vw,36px)/1.1 var(--sans);letter-spacing:-.03em;margin:0}
 .mobile-journal-title a{padding-block:8px;text-decoration:none}
 .journal-story:has(>.mobile-journal-title){gap:16px}
 .journal-copy .journal-deck{margin-top:12px;margin-bottom:16px}
 .journal-copy .eyebrow{margin-bottom:12px}
 .mobile-day-index{display:flex;flex-wrap:wrap;gap:4px 16px;margin:16px 0 24px}
 .mobile-day-index a{min-height:44px;display:inline-flex;align-items:center;font:500 1rem/1.4 var(--sans)}
 .results-count{font-size:.9375rem;color:var(--ink)}
}
.mobile-day-index{display:none}
@media(max-width:767px){.mobile-day-index{display:flex}}
/* Fable final review: one divider per boundary, compact agenda, clear visit action. */
.mobile-results-toolbar{display:contents}
@media(max-width:767px){
 .page-heading+.mobile-edition-choice,.page-heading+.mobile-page-contents{border-top:0;margin-top:-24px}
 .mobile-results-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0 16px;border-bottom:1px solid var(--ink);padding:8px 0}
 .mobile-results-toolbar .results-count{border:0;margin:0;padding:0}
 .mobile-results-toolbar .mobile-programme-contents{border:0;margin:0;padding:0;gap:16px}
 .mobile-results-toolbar+#results .journal-story:first-child{border-top:0;padding-top:20px}
 .mobile-results-toolbar+#results .exhibition-journal{margin-top:0}
 .agenda-day{grid-template-columns:52px minmax(0,1fr);gap:16px}
 .agenda-date span{font-size:48px}
 .agenda-entry h4{font-size:20px;line-height:1.25;letter-spacing:-.02em}
 .agenda-entry .eyebrow{line-height:1.35}
 .mobile-visit-breadcrumb{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:4px 16px}
 .mobile-visit-breadcrumb .mobile-visit-jump{gap:8px;margin:0;border:1px solid var(--ink);padding:8px 12px;font:500 .9375rem/1.4 var(--sans)}
}
.menu-toggle .tl-mobile{display:none}.menu-toggle .tl-desktop{display:inline}
@media(max-width:1023px){.menu-toggle .tl-mobile{display:inline}.menu-toggle .tl-desktop{display:none}}
#header{padding-block:10px}
@media(max-width:1023px){#header{padding-block:6px}}

/* Editions own their historical programmes; the current programme stays in 2026. */
.edition-ledger{margin-block:40px 64px}.edition-ledger article{border-top:1px solid var(--ink)}.edition-ledger-link{display:grid;grid-template-columns:1.4fr 4fr 5fr;gap:40px;align-items:center;padding:40px 0;text-decoration:none}.ledger-year{align-self:start;font:500 clamp(42px,5vw,76px)/1 var(--sans);letter-spacing:-.05em}.ledger-copy h2{font:500 clamp(26px,3vw,42px)/1.1 var(--sans);letter-spacing:-.025em;margin:14px 0}.ledger-copy>p:not(.eyebrow){font:1rem/1.5 var(--serif)}.ledger-count{margin-top:12px}.ledger-art img{width:100%;height:auto;max-height:180px;object-fit:contain}.ledger-tempora{background:#08075a;color:#bcf000;padding:32px 20px}.ledger-tempora svg{display:block;width:100%;height:auto;max-height:110px}.edition-ledger-link:hover h2{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}.edition-programme{margin-block:64px}.programme-past-link{margin:32px 0;font:1rem/1.5 var(--serif)}.programme-past-link a{display:inline-flex;min-height:44px;align-items:center}.edition-programme>.section-heading{align-items:baseline}.edition-unavailable{padding:20px;border:1px solid var(--ink)}
@media(max-width:767px){.edition-ledger-link{grid-template-columns:1fr;gap:20px;padding:28px 0}.ledger-copy h2{margin-top:12px}.ledger-year{font-size:56px}.ledger-art{max-width:560px}.ledger-art img{max-height:200px}.edition-programme{margin-block:40px}}

/* Announcement: existing campaign modules, rendered before the header. */
.announcement{display:grid;grid-template-columns:20px minmax(0,1fr) 20px;gap:16px;align-items:center;flex:none;background:var(--paper-2);color:var(--ink);padding:12px var(--pad);font:400 1rem/1.5 var(--sans)}.announcement>svg{width:20px;height:20px}.announcement-copy{min-width:0;overflow-wrap:anywhere}.announcement-copy a{display:inline-flex;align-items:center;min-height:44px;margin-left:12px;font-weight:500;text-underline-offset:4px}
@media(max-width:767px){.announcement{gap:12px;padding-block:10px;align-items:start}.announcement>svg{margin-top:2px}}
@media(max-width:359px){.announcement{grid-template-columns:20px minmax(0,1fr)}.announcement>svg:last-child{display:none}.announcement-copy a{margin-left:0}}

/* Square campaign editorials are full images, not thumbnail icons. */
.archive-resources{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.archive-resources>a{display:flex;flex-direction:column;align-items:stretch;gap:20px;padding:0;text-decoration:none;min-width:0}
.archive-resources>a img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;max-width:800px}
.archive-resources>a>span{font:500 clamp(22px,2vw,30px)/1.2 var(--sans);letter-spacing:-.02em}
.archive-resources>a:hover>span{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.archive-resources>.eyebrow,.archive-resources>.archive-directory{grid-column:1/-1}
.archive-feature>.archive-caption{align-self:center;border-top:1px solid var(--ink);padding-top:24px}
@media(max-width:767px){.archive-resources{grid-template-columns:1fr;gap:36px}.archive-resources>a{max-width:560px;gap:16px}.archive-resources>a img{width:100%;height:auto}.archive-feature>.archive-caption{align-self:stretch}}
/* Keep skip navigation hidden even above a tall announcement; reveal on keyboard focus. */
.skip:not(:focus){clip-path:inset(50%)}
.journal-copy{overflow-wrap:anywhere}

/* Fable: the official 2025 squares form the edition's visual index. */
.tempora-index{margin-block:48px}.tempora-index>.eyebrow{font-size:.9375rem;letter-spacing:.06em;line-height:1.4;font-weight:500;margin:0}.tempora-index-home{grid-template-columns:repeat(4,minmax(0,1fr))}.tempora-index-full{grid-template-columns:repeat(3,minmax(0,1fr))}.tempora-index>a>span{font-size:clamp(21px,1.8vw,28px)}.tempora-index>.archive-directory{display:flex;flex-wrap:wrap;gap:12px 32px}.tempora-index>.archive-directory a{min-height:44px;display:inline-flex;align-items:center;text-decoration:none}.tempora-index>.archive-directory a:hover{text-decoration:underline}
@media(min-width:768px) and (max-width:1023px){.tempora-index-home,.tempora-index-full{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.tempora-index-home,.tempora-index-full{grid-template-columns:1fr}.tempora-index{margin-block:32px}.tempora-index>a{width:100%;max-width:560px}}


/* Fable: catalogue facts, people colophon and city guide — 17 September 2026. */
.catalogue-detail .detail-facts dl{margin:0 0 20px}
.technical-facts dl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:12px 24px;margin:0}
.technical-facts dt{font:500 .875rem/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.technical-facts dd{margin:0;font:400 1.125rem/1.5 var(--serif)}
.technical-facts dd:only-child,.technical-facts dd.full{grid-column:1/-1}
@media(max-width:1023px){
 .catalogue-detail .detail-facts dl{display:grid;grid-template-columns:1fr 2fr;gap:12px 20px}
 .catalogue-detail .detail-facts dt,.catalogue-detail .detail-facts dd{margin:0}
}
@media(max-width:639px){.technical-facts dl{grid-template-columns:minmax(0,1fr);gap:4px 0}.technical-facts dd{margin-bottom:12px}}

.masthead{border-top:1px solid var(--ink);margin-bottom:64px}
.masthead-row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);padding:24px 0;border-bottom:1px solid var(--ink);align-items:start}
.masthead-row h2{grid-column:1/5;font:500 .9375rem/1.4 var(--sans);letter-spacing:.06em;text-transform:uppercase;padding-top:.5em}
.masthead-row ul{grid-column:5/13;list-style:none;margin:0;padding:0;display:grid;gap:6px}
.masthead-row li{font:500 1.75rem/1.15 var(--sans);letter-spacing:-.02em}
.people-year{display:grid;grid-template-columns:2fr 10fr;gap:40px;padding:24px 0;border-top:1px solid var(--paper-2)}
.people-year:first-of-type{border-top-color:var(--ink)}
.people-year h3{font:500 clamp(28px,3vw,44px)/1 var(--sans);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.people-year p{max-width:75ch;line-height:1.7;margin:0}
@media(max-width:767px){
 .masthead-row,.people-year{grid-template-columns:minmax(0,1fr);gap:8px;padding:20px 0}
 .masthead-row h2,.masthead-row ul{grid-column:1}
 .masthead-row li{font-size:1.5rem}
 .people-year h3{font-size:28px}
}

.city-guide--sestieri{display:block;margin-bottom:64px}
.guide-sestiere{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);align-items:start;padding-top:24px;margin-bottom:48px;border-top:1px solid var(--ink)}
.city-guide--sestieri .guide-sestiere>h2{grid-column:1/5;position:sticky;top:calc(var(--safe-header-h) + 24px);font-size:var(--h2)}
.guide-places{grid-column:5/13}
.city-guide--sestieri .guide-place{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:var(--gutter);padding:20px 0;border-top:1px solid var(--paper-2)}
.city-guide--sestieri .guide-place:first-child{border-top:0;padding-top:0}
.guide-place h3{font:500 var(--h3)/1.2 var(--sans);letter-spacing:-.01em;margin:0 0 6px}
.guide-place h3 a{text-decoration:none}
.guide-place h3 a:hover{text-decoration:underline;text-underline-offset:4px}
.guide-address{grid-column:1;margin:0;font:400 .9375rem/1.5 var(--sans);color:var(--ink-2);font-variant-numeric:tabular-nums}
.guide-place>p:last-child{grid-column:2;grid-row:1/span 2;margin:0}
@media(max-width:767px){
 .guide-sestiere{grid-template-columns:minmax(0,1fr);margin-bottom:32px}
 .city-guide--sestieri .guide-sestiere>h2{grid-column:1;position:static;margin-bottom:8px}
 .guide-places{grid-column:1}
 .city-guide--sestieri .guide-place{grid-template-columns:minmax(0,1fr)}
 .guide-place>p:last-child{grid-column:1;grid-row:auto;margin-top:8px}
}

.guide-place,.masthead-row,.people-year{min-width:0;overflow-wrap:anywhere}
/* Fable review: keep the edition label whole on narrow screens. */
@media(max-width:639px){.catalogue-detail .detail-facts dl{grid-template-columns:minmax(0,1fr);gap:4px 0}}
/* Mobile: keep live text readable independently of the 2023 artwork. */
@media (max-width: 1023px) {
  #ed-2023[aria-expanded="true"],
  .edition[data-year="2023"]:has(button[aria-expanded="true"]) .edition-info {
    background-color: #06576b;
  }
}

/* Mobile navigation refinement: Fable direction, scoped below desktop. */
@media (max-width:1023px) {
 #header {min-height:60px;padding-block:7px 8px;column-gap:8px;row-gap:0}
 #header .brand {display:flex;align-items:center;min-height:44px}
 #header .brand img {height:24px;width:auto}
 #header .menu-toggle {width:72px;min-width:72px;height:44px;padding:0;gap:8px;border:0;background:transparent;color:var(--ink);font-size:16px;justify-content:center;box-shadow:none}
 #header .menu-toggle::after {font-size:20px}
 #header .menu-toggle[aria-expanded="true"] .tl-mobile {text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
 #header .language {position:relative;min-width:44px;width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--ink);font-size:13px;box-shadow:none;justify-content:flex-end}
 #header .language::before {content:'';position:absolute;left:4px;top:12px;width:1px;height:20px;background:var(--ink)}
 #header .menu-toggle:focus-visible,#header .language:focus-visible {outline:2px solid var(--ink);outline-offset:2px}
 #nav.open {margin-top:12px;column-gap:24px}
 #nav a,#nav a:first-child {border-top:0;border-bottom:1px solid var(--ink);min-height:56px}
 #nav a[aria-current] {background:transparent;padding-inline:0}
 #nav a[aria-current] .nav-label {background:var(--selection-fill);box-decoration-break:clone;-webkit-box-decoration-break:clone}
 #site-index {display:block;columns:2;column-gap:24px;padding:0 0 16px;margin-top:28px;border-top:0}
 #site-index[hidden] {display:none}
 #site-index section {break-inside:avoid;margin:0 0 28px}
 #site-index h2 {flex-direction:row;align-items:baseline;gap:8px;margin-bottom:12px;font-size:14px;letter-spacing:.035em;overflow-wrap:normal;word-break:normal;hyphens:manual}
 #site-index h2>span {font:400 14px/1.4 var(--serif);letter-spacing:0;flex:none}
 #site-index a {font-size:15px;min-height:44px}
 .running-head {background:var(--paper-2);border-bottom:0;font-size:14px}
 .running-head a {min-height:44px}
}
@media (min-width:410px) and (max-width:1023px) {
 #header .brand img {height:26px}
}
@media (max-width:359px) {
 #header .brand img {height:22px}
 #header .menu-toggle {width:64px;min-width:64px}
 #site-index {columns:1}
}

/* Fable: one navigation hierarchy across desktop and mobile. */
#nav a[aria-current] .nav-label{background:var(--selection-fill);box-decoration-break:clone;-webkit-box-decoration-break:clone}
@media(min-width:1024px){
 #nav a[aria-current] .nav-label{padding:3px 6px;margin:-3px -6px}
 #header{row-gap:14px}
 #header .brand{display:flex;align-items:center;min-height:50px}
}

/* Art direction A: original photographs, measured editorial rhythm. */
.tempora-original-campaign{margin:32px 0 48px;max-width:1200px}
.tempora-original-campaign img{display:block;width:100%;height:auto}
.photographic-story{gap:48px 32px;align-items:start}
.photographic-story>.page-heading{display:block;margin:0;padding:0;border:0}.photographic-story>.page-heading h1{overflow-wrap:normal;word-break:normal}.photographic-story>.page-heading .lead{margin-top:24px}
.photographic-story>.detail-body{min-width:0}
.photographic-story>.detail-lead{margin:0}
.photographic-story>.detail-lead img{display:block;width:100%;height:auto;max-width:900px}
.photographic-story .detail-facts{position:static;margin:0}
.photographic-story .story-section{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:32px;margin:64px 0}
.story-section h2{grid-column:1/4;font:500 clamp(24px,3vw,38px)/1.15 var(--sans);margin:0}
.story-section>p,.story-section>div,.story-section>dl{grid-column:4/10;margin:0;font:400 18px/1.65 var(--serif)}
.story-section h3{font:500 clamp(23px,2vw,30px)/1.2 var(--sans);margin:0 0 20px}
.story-section ul{padding-left:20px;margin:20px 0}
.story-credits dt{font:500 21px/1.4 var(--sans);text-transform:none;letter-spacing:normal;margin:24px 0 8px}
.story-credits dt:first-child{margin-top:0}.story-credits dd{margin:0}
.photographic-story .detail-gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:96px 32px;margin:96px 0}
.photographic-story .detail-gallery figure{grid-column:span 6;margin:0;min-width:0}
.photographic-story .detail-gallery img{display:block;width:100%;height:auto;object-fit:contain}
.photographic-story .detail-gallery figure:last-child{grid-column:1/-1;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:32px;align-items:end}
.photographic-story .detail-gallery figure:last-child img{grid-column:1/9}
.photographic-story .detail-gallery figure:last-child figcaption{grid-column:9/12}
.story-sources{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin-top:48px}.story-sources>a{min-height:44px;display:inline-flex;align-items:center}
@media(min-width:1280px){
 .photographic-story>.page-heading{grid-column:1/5;grid-row:1}
 .photographic-story>.page-heading h1{font-size:clamp(48px,5vw,72px)}
 .photographic-story>.detail-lead{grid-column:5/13;grid-row:1/span 2}
 .photographic-story>.detail-facts{grid-column:1/5;grid-row:2}
 .photographic-story>.detail-body{grid-column:1/-1;grid-row:3}
 .tempora-index-home,.tempora-index-full{grid-template-columns:repeat(12,minmax(0,1fr));gap:32px}
 .tempora-index-home>a:first-of-type,.tempora-index-full>a:first-of-type{grid-column:1/7;grid-row:2/span 3}
 .tempora-index-home>a:not(:first-of-type){grid-column:7/9}
 .tempora-index-home>a:nth-of-type(2){grid-row:2}.tempora-index-home>a:nth-of-type(3){grid-row:3}.tempora-index-home>a:nth-of-type(4){grid-row:4}
 .tempora-index-full>a{grid-column:span 3}
 .tempora-index-full>a:first-of-type{grid-row:2/span 2}
 .tempora-index-full>a:nth-of-type(2),.tempora-index-full>a:nth-of-type(4){grid-column:7/10}
 .tempora-index-full>a:nth-of-type(3),.tempora-index-full>a:nth-of-type(5){grid-column:10/13}
 .tempora-index-full>a:nth-of-type(2),.tempora-index-full>a:nth-of-type(3){grid-row:2}
 .tempora-index-full>a:nth-of-type(4),.tempora-index-full>a:nth-of-type(5){grid-row:3}
}
@media(max-width:1279px){
 .photographic-story{display:flex;flex-direction:column;gap:32px}
 .photographic-story>.page-heading{order:0}.photographic-story>.detail-lead{order:1;width:100%}.photographic-story>.detail-facts{order:2;width:100%}.photographic-story>.detail-body{order:3;width:100%}
}
@media(max-width:767px){
 .photographic-story .story-section{display:block;margin:48px 0}.story-section h2{margin-bottom:20px}
 .story-section>p,.story-section>div,.story-section>dl{font-size:17px}
 .photographic-story .detail-gallery{display:block;margin:48px 0}
 .photographic-story .detail-gallery figure,.photographic-story .detail-gallery figure:last-child{display:block;margin:0 0 48px}
 .photographic-story .detail-gallery figcaption{margin-top:12px}
}

.project-card{display:block;color:inherit;text-decoration:none}.project-card>p:last-child{color:var(--ink-2);line-height:1.6}.project-card:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}

/* Photographic stories, the Tempora campaign and the home selections share the page margin
   at every width; fixed 20px/48px offsets used to shift them off the grid between 320 and 1279px. */

/* Art direction A: mobile composition. Owned by the mobile task; append after base styles. */
@media (max-width:1279px) {
 .tempora-index-home,.tempora-index-full {grid-template-columns:minmax(0,1fr);gap:20px}
 .tempora-index>a {width:100%;max-width:none;gap:8px;grid-column:auto;grid-row:auto}
 .tempora-index>a>img {width:100%;height:auto;max-width:800px;aspect-ratio:1;object-fit:contain}
 .tempora-index>a>span {font-size:20px;line-height:1.2;overflow-wrap:normal;word-break:normal}
 .tempora-index>.eyebrow,.tempora-index>.archive-directory {grid-column:1/-1}
}
@media (min-width:390px) and (max-width:1279px) {
 .tempora-index-home,.tempora-index-full {grid-template-columns:repeat(2,minmax(0,1fr))}
 .tempora-index-full>a:first-of-type {grid-column:1/-1}
}

/* Review 14: distinct section rhythm and full edition access on desktop. */
.edition-detail[data-edition="2025"]>.mobile-page-contents{display:flex;flex-wrap:wrap;gap:0 24px;margin:0 0 28px;padding-block:4px;border-block:1px solid var(--ink)}
.edition-detail[data-edition="2025"]>.mobile-page-contents a{display:inline-flex;min-height:44px;align-items:center;font:500 1rem/1.4 var(--sans);text-decoration:none}
.edition-detail[data-edition="2025"] .edition-documentary img{display:block;width:100%;max-width:1280px;height:auto}
.photographic-story .story-section h2{font-size:clamp(28px,3vw,38px)}
.story-credits dd{overflow-wrap:anywhere}
.photographic-story .story-gallery>img{grid-column:span 6;align-self:start}
.photographic-story .story-gallery>img:nth-of-type(3){grid-column:1/9}
.photographic-story .story-gallery>figcaption{grid-column:9/12;align-self:end}
@media(min-width:1280px){
 .tempora-index-home>a:first-of-type{grid-column:1/7;grid-row:2}
 .tempora-index-home>a:nth-of-type(2){grid-column:7/9;grid-row:2;align-self:end}
 .tempora-index-home>a:nth-of-type(3){grid-column:9/11;grid-row:2;align-self:end}
 .tempora-index-home>a:nth-of-type(4){grid-column:11/13;grid-row:2;align-self:end}
}
@media(max-width:767px){
 .photographic-story .detail-facts dl{display:block}
 .photographic-story .detail-facts dt{margin-top:20px;margin-bottom:6px}
 .photographic-story .detail-facts dd{margin:0}
 .photographic-story .story-gallery>img{margin-bottom:32px}
 .photographic-story .story-gallery>img:last-of-type{margin-bottom:12px}
}
/* Optional archive delivery gate; no layout or imagery change. */
html[data-vdw-lazy-art] .editions:not([data-art-ready]) *,html[data-vdw-lazy-art] .editions:not([data-art-ready]) *::before,html[data-vdw-lazy-art] .editions:not([data-art-ready]) *::after{background-image:none!important}
/* Campaign artwork stays in front of the full-width Venice map. */
.hero::before{content:"";position:absolute;inset:0 calc((100% - 100vw)/2);background:#254C91;z-index:-2;pointer-events:none}
.hero-info .hero-brand{margin:0;line-height:0}
.hero-official-logo{display:block;width:clamp(160px,17vw,244px);max-width:100%;height:auto}
.hero-actions>a{min-height:44px;display:inline-flex;align-items:center}
.hero-date mark{background:transparent;color:var(--ink);padding:0}
@media(min-width:1024px) and (max-height:720px){.hero-official-logo{width:160px}}
@media(min-width:700px) and (max-width:1023px){.hero-official-logo{width:160px}}
@media(max-width:699px){
 .hero-info{grid-template-columns:112px minmax(0,1fr);column-gap:20px}
 .hero-info .hero-brand{grid-column:1;align-self:center}
 .hero-official-logo{width:112px}
 .hero-date{grid-column:2;align-self:center;margin:0}
}
@media(max-width:359px){.hero-info{grid-template-columns:96px minmax(0,1fr);column-gap:16px}.hero-official-logo{width:96px}}


/* Fable colour roles: festival UI and dated campaign fields. */
:root{--site-white:#F5F3EE;--edition-2026-ground:#FFF2CD;--current-edition-ground:var(--edition-2026-ground);--edition-2026-mark:#1472DB;--selection-fill:var(--site-white);--green:var(--selection-fill)}
.hero::before{background:var(--hero-ground)}
/* One aligned map continues through masthead, hero and selections. The image carries its selective blur. */
.hero::after{content:"";position:absolute;inset:0 calc((100% - 100vw)/2);z-index:-1;pointer-events:none;--hero-map-y:var(--hero-map-hero-y,0px)}
.hero::after,.hero-index::before,html[data-home-field] #header .masthead-surface::after{background-image:linear-gradient(to bottom,transparent 72%,var(--hero-blue) 100%),linear-gradient(to right,transparent 45%,rgb(37 76 145 / .22) 100%),url('/assets/hero-venezia-mappa-background-v2.webp');background-size:100vw var(--hero-map-height,100svh),100vw var(--hero-map-height,100svh),calc(max(100vw,calc(var(--hero-map-height,100svh)*1.9335))*1.015) auto;background-position:center var(--hero-map-y,0px),center var(--hero-map-y,0px),50% var(--hero-map-y,0px);background-repeat:no-repeat}
/* The map keeps one fixed crop across all three slices, without automatic zoom or pan. */
.hero .button{color:var(--hero-ground)}
.hero .button:hover{color:var(--ink)}
.journal-story[data-category]{--journal-tint:var(--selection-fill)}
.edition-detail{--selection-fill:var(--paper-2);--green:var(--paper-2)}
.button:hover,.map-link>a:hover{background:var(--selection-fill);color:var(--ink)}
.running-head a[aria-current]{box-shadow:inset 0 -3px var(--ink)}
.edition{--edition-bg:var(--paper-2)}
.edition[data-year="2026"]{--edition-bg:var(--edition-2026-ground)}
.edition[data-year="2026"][data-open]{background-color:var(--edition-2026-ground)}
::selection{background:var(--ink);color:var(--paper)}
@media(min-width:700px) and (max-width:1023px){.hero{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}

/* Equal cell inset in the two-column tablet selection menu. */
@media(min-width:700px) and (max-width:1023px){.hero-index a:first-child{padding-left:14px}}

/* User preference: hero and category menu share one continuous campaign field. */
.hero-index{position:relative;isolation:isolate}
.hero-index::before{content:"";position:absolute;inset:0 calc((100% - 100vw)/2);background-color:var(--hero-ground);z-index:-2;pointer-events:none;--hero-map-y:var(--hero-map-index-y,0px)}
.hero-index a::before{background:var(--selection-fill)}
/* User refinement: blue campaign ink, optical alignment and lower breathing room. */
:root{--home-entry-gap:var(--space-section);--home-entry-pad:32px;--campaign-reading-blue:#124D96}
/* User-approved inverted hero: ivory ink on a fixed dark-blue ground, hero and category menu only. */
.hero,.hero-index{--hero-ground:var(--hero-blue);--ink:var(--site-white);--ink-2:var(--site-white);--paper:var(--hero-ground);--blue:var(--ink);--selection-fill:color-mix(in srgb,var(--hero-ground) 88%,var(--ink));color:var(--ink)}
.hero-index::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--ink);z-index:1;pointer-events:none}
.hero-index::before{bottom:calc(var(--home-entry-pad) - var(--home-entry-gap))}
.hero-index+.project-selection{margin-top:calc(var(--home-entry-gap) - var(--home-entry-pad));padding-top:var(--home-entry-pad)}
@media(min-width:700px){.hero{align-content:center;align-items:start}.hero-number-block,.hero-info{align-self:start}.hero-number-block{justify-content:flex-start;gap:0}}
@media(max-width:699px){:root{--home-entry-gap:56px;--home-entry-pad:24px}}
/* Home masthead shares the campaign field until its actual lower boundary.
   One registered factor (0 reading white, 1 campaign blue) drives surface, map, ink, rules and
   mark together; only #header transitions it, so nested links never chain their own fades.
   Ink turns within the middle third of the surface change, never lingering at mid contrast. */
@property --masthead-field{syntax:"<number>";inherits:true;initial-value:0}
html[data-home-field]{--masthead-rest-ink:var(--ink);--masthead-rest-ink-2:var(--ink-2);--masthead-rest-blue:var(--blue);--masthead-rest-paper:var(--paper);--masthead-rest-paper-2:var(--paper-2)}
html[data-home-field] #header{--masthead-field:0;--masthead-paper-mix:calc(var(--masthead-field)*100%);--masthead-ink-mix:clamp(0%,(var(--masthead-field) - .5)*300% + 50%,100%);color:var(--ink)}
html[data-home-field="pending"] #header,html[data-home-field="active"] #header{--masthead-field:1;--ink:var(--site-white);--ink-2:var(--site-white);--blue:var(--site-white);--paper:var(--hero-blue);--paper-2:color-mix(in srgb,var(--hero-blue) 88%,var(--site-white))}
@supports(color:color-mix(in srgb,red 50%,blue)){
 html[data-home-field] #header{--ink:color-mix(in srgb,var(--site-white) var(--masthead-ink-mix),var(--masthead-rest-ink));--ink-2:color-mix(in srgb,var(--site-white) var(--masthead-ink-mix),var(--masthead-rest-ink-2));--blue:color-mix(in srgb,var(--site-white) var(--masthead-ink-mix),var(--masthead-rest-blue));--paper:color-mix(in srgb,var(--hero-blue) var(--masthead-paper-mix),var(--masthead-rest-paper));--paper-2:color-mix(in srgb,color-mix(in srgb,var(--hero-blue) 88%,var(--site-white)) var(--masthead-paper-mix),var(--masthead-rest-paper-2))}
}
html[data-home-field="pending"] .announcement,html[data-home-field="active"] .announcement{--ink:var(--campaign-reading-blue);background:var(--site-white);color:var(--ink)}

/* Campaign surface: overlap fractional seams; preserve original mark alpha. */
.hero::before{bottom:-1px}
.hero .button{color:var(--hero-ground)}


/* Fable surface transitions: no text fade, no navigation interception. */
#header{isolation:isolate}
.masthead-surface{position:absolute;inset:0;z-index:-1;background:inherit;pointer-events:none}
html[data-home-field] #header .masthead-surface::after{content:"";position:absolute;inset:0;pointer-events:none;--hero-map-y:var(--hero-map-header-y,0px);opacity:var(--masthead-field)}
@media(prefers-reduced-motion:no-preference){
 @view-transition{navigation:auto}
 .masthead-surface{view-transition-name:masthead-surface}
 ::view-transition{pointer-events:none}
 ::view-transition-old(root){display:none}
 ::view-transition-new(root){animation:none}
 ::view-transition-group(masthead-surface){animation-duration:250ms;animation-timing-function:cubic-bezier(.2,0,0,1)}
 ::view-transition-old(masthead-surface),::view-transition-new(masthead-surface){animation-duration:250ms;animation-timing-function:cubic-bezier(.2,0,0,1);mix-blend-mode:normal}
}

/* Match an 80% browser zoom for hero content, keeping the full-bleed map at viewport scale. */
@media(min-width:700px){
 .hero-number-block,.hero-info{transform:scale(.8);transform-origin:left center}
 /* Shrink the mosaic toward the copy so scaling does not widen the gap. */
 .hero-number-block{transform-origin:right center}
 .hero-index>a{zoom:.8}
}
/* Desktop first screen includes the measured masthead, selections and lower breathing room.
   svh equals dvh on desktop; on iPad Safari it does not follow the toolbar during scroll. */
@media(min-width:1024px){
 .hero{min-height:max(0px,calc(100svh - var(--hero-header-height,var(--safe-header-h)) - var(--hero-index-height,92px) - max(0px,calc(var(--home-entry-gap) - var(--home-entry-pad)))));padding-block:clamp(40px,5vh,64px);grid-template-columns:minmax(0,1.25fr) minmax(400px,1fr);column-gap:clamp(56px,7vw,112px)}
 .hero-number-block{grid-column:1}.hero-info{grid-column:2}
 .hero-art{max-width:748px}
 .hero-date{margin:20px 0 24px;font-size:clamp(36px,2.8vw,44px);line-height:1.05}
 .hero-description{margin:0 0 32px;max-width:34em}
}
@media(min-width:1800px){.hero-art{max-width:800px}}
@media(min-width:1024px) and (max-height:800px){.hero{padding-block:32px}.hero-official-logo{width:clamp(184px,15vw,244px)}.hero-description{font-size:18px}}
@media(min-width:1024px) and (orientation:portrait){.hero{padding-block:56px}}
@media(min-width:768px) and (max-width:1023px){
 .hero{grid-template-columns:minmax(0,6fr) minmax(300px,5fr);column-gap:40px;padding-block:40px 48px}
 .hero-date{font-size:28px;line-height:1.1;margin:16px 0 20px}
 .hero-description{font-size:16px;line-height:1.5;margin:0 0 28px}
}
@media(min-width:360px) and (max-width:699px) and (min-height:701px){
 .hero{padding-block:24px 28px}
 .hero-art{max-width:352px;max-height:200px}
 .hero-info{column-gap:16px}
 .hero-date{font-size:clamp(17px,5.6vw,22px);line-height:1.1}
 .hero-description{font-size:17px;line-height:1.5}
}
@media(max-width:699px){.hero-index{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* White masthead lettering over the hero, black on the following light page. */
#header .brand img{filter:brightness(0) invert(0)}
html[data-home-field] #header .brand img{filter:brightness(0) invert(var(--masthead-ink-mix))}
/* Visual MPA correction: surface must never cover masthead lettering. */
#header{background:transparent!important}
#header .masthead-surface{background:var(--paper)}
#header #nav{background:transparent}
@media(prefers-reduced-motion:no-preference){
 #header{view-transition-name:masthead-ink}
 ::view-transition-group(root){z-index:0}
 ::view-transition-group(masthead-surface){z-index:1}
 ::view-transition-group(masthead-ink){z-index:2;animation:none}
 ::view-transition-old(masthead-ink){display:none}
 ::view-transition-new(masthead-ink){animation:none;mix-blend-mode:normal}
}

/* Recovered typography: only regular and medium weights. */
@font-face{font-family:'Instrument Sans';src:url('/assets/InstrumentSans-400-500.woff2') format('woff2');font-weight:400 500;font-style:normal;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url('/assets/BarlowCondensed-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url('/assets/BarlowCondensed-Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
:root{--sans:'Instrument Sans','Helvetica Neue',Helvetica,Arial,sans-serif;--condensed:'Barlow Condensed','Arial Narrow',Arial,sans-serif}
html{font-synthesis:none}
h1,h2,h3,h4,strong,b{font-weight:500}
.page-heading h1,.section-heading h2,.participate-strip h2{font-family:var(--condensed);font-weight:500;letter-spacing:0;line-height:.95;text-transform:none}
.fo-days,.agenda-date span,.ledger-year,.people-year h3{font-family:var(--condensed);font-weight:400;letter-spacing:-.01em}

/* A single edge-to-edge photographic interval; original frames stay complete. */
.festival-overview .festival-media{margin-inline:calc(50% - 50vw);gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.festival-overview .festival-media figure{margin:0;min-width:0}
.festival-overview .festival-media img{max-width:960px;margin-inline:auto}
.festival-overview .festival-media figcaption{margin:0;padding:14px 24px 0;font:400 14px/1.5 var(--sans)}
.festival-overview .festival-media figure:first-child figcaption{padding-left:max(24px,calc((100vw - 1344px)/2))}
@media(min-width:1280px) and (max-width:1440px){.festival-overview .festival-media figure:first-child figcaption{padding-left:48px}}
@media(max-width:767px){
 .festival-overview .festival-media{grid-template-columns:minmax(0,1fr);row-gap:32px}
 .festival-overview .festival-media figcaption,.festival-overview .festival-media figure:first-child figcaption{padding:12px 20px 0}
 .photographic-story>.detail-lead{width:calc(100% + 40px);margin-inline:-20px}
 .photographic-story>.detail-lead figcaption{padding-inline:20px}
 .photographic-story .story-section{margin-block:56px}
 .photographic-story .story-section h2{font-size:30px;line-height:1.08;margin-bottom:20px}
 .photographic-story .story-section>p,.photographic-story .story-section>div,.photographic-story .story-section>dl{font-size:18px;line-height:1.65}
}
@media(min-width:768px) and (max-width:1279px){
 .photographic-story .story-section>p,.photographic-story .story-section>div,.photographic-story .story-section>dl{grid-column:4/-1;max-width:62ch}
}
/* Service directories use one consistent, generous row target. */
.information-directory a{padding:14px 0;min-height:56px;font:400 19px/1.4 var(--sans);transition:background-color 160ms ease,color 160ms ease}
.information-directory a::after{content:'→';flex:none;font:400 20px/1 var(--sans);color:var(--ink-2)}
.information-directory li{border-color:color-mix(in srgb,var(--ink) 22%,var(--paper))}
.information-directory a:hover,.information-directory a:focus-visible{background:var(--selection-fill);color:var(--ink)}
.information-directory a:focus-visible{outline:2px solid var(--campaign-reading-blue);outline-offset:3px}
.information-directory h2{font-family:var(--condensed);font-size:34px;line-height:1.05;letter-spacing:0;margin-bottom:24px}
@media(prefers-reduced-motion:reduce){.information-directory a{transition:none}}
/* A constant secondary-navigation height on narrow viewports. */
@media(max-width:1023px){
 .running-head{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;gap:0 22px;scroll-padding-inline:var(--margin)}
 .running-head::-webkit-scrollbar{display:none}
 .running-head a{flex:none;white-space:nowrap;min-height:48px}
 .running-head a:focus-visible{outline:2px solid var(--ink);outline-offset:-3px}
 .section-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px}
 .section-heading>h2{margin:0}
 .section-heading>.eyebrow,.section-heading>p{flex-basis:100%}
 .section-heading>a{margin-left:auto;flex:none;max-width:100%}
 .edition-detail[data-edition="2025"]>.mobile-page-contents{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:0 24px}
 .edition-detail[data-edition="2025"]>.mobile-page-contents a{flex:none;white-space:nowrap}
 .edition-detail[data-edition="2025"]>.mobile-page-contents a:focus-visible{outline-offset:-3px}
}
/* One pair of rules around edition navigation, original campaign image intact. */
.edition-detail[data-edition="2025"]>.page-heading{border-bottom:0;margin-bottom:24px;padding-bottom:0}
@media(max-width:767px){
 .edition-detail[data-edition="2025"]>.tempora-original-campaign{margin-inline:calc(50% - 50vw);max-width:none}
 .edition-detail[data-edition="2025"]>.tempora-original-campaign img{width:100%;max-width:none}
}

/* BEGIN NEXTLEVEL PROGRAMME */
/* Current programme: editorial opening, accessible filtering and a readable first spread. */
.current-programme .page-heading{margin-bottom:0;padding:32px 0 28px;border-bottom:0}
.current-programme .programme-filters{border-block:1px solid var(--ink);margin:0}
.current-programme .programme-filters>summary{display:none}
.current-programme #filters{margin:0;padding:16px 0;border:0;gap:16px 24px}
.current-programme #filters label{gap:4px;max-width:none}
.current-programme .mobile-results-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0 24px;padding:8px 0;border-bottom:1px solid var(--ink)}
.current-programme .mobile-results-toolbar .results-count{margin:0;padding:0;border:0}
.current-programme .mobile-programme-contents{display:flex;align-items:center;gap:0 24px;border:0;margin:0;padding:0}
.current-programme .mobile-programme-contents a{min-height:44px;display:inline-flex;align-items:center;font:400 1rem/1.3 var(--sans);text-decoration:none}
.current-programme .programme-filters+.results-count{margin:0;padding:16px 0 8px}
.current-programme .exhibition-journal{margin-top:0}
.current-programme .journal-story:first-child{border-top:0;padding-top:24px}
.current-programme .journal-story:first-child:not(.type-only) .journal-copy{align-self:start;padding-top:2px}
.current-programme .journal-story:first-child .journal-copy h2{margin:14px 0 18px}
.current-programme .journal-story:first-child .journal-deck{margin-bottom:24px}
.current-programme .journal-story:first-child .journal-meta{font:400 1rem/1.6 var(--sans)}
@media(min-width:768px){
 .current-programme #filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto;align-items:end}
 .current-programme #filters label{min-width:0}
 .current-programme #filters .reset{margin-left:0}
 .current-programme .journal-story:first-child:not(.type-only) .journal-image{grid-column:1/8}
 .current-programme .journal-story:first-child:not(.type-only) .journal-copy{grid-column:8/13}
}
@media(min-width:1024px){
 .current-programme .page-heading{padding-top:32px;column-gap:32px}
 .current-programme .page-heading .eyebrow{grid-column:1/6;grid-row:1;margin-bottom:12px}
 .current-programme .page-heading h1{grid-column:1/6;grid-row:2}
 .current-programme .page-heading .lead{grid-column:7/13;grid-row:1/3;align-self:end;margin:0;max-width:45ch;font-size:18px;line-height:1.5}
}
@media(min-width:768px) and (max-width:1023px){
 .current-programme .page-heading{padding:28px 0 24px}
 .current-programme .page-heading .lead{font-size:18px;line-height:1.45;margin-top:18px}
 .current-programme #filters{gap:16px}
 .current-programme #filters .reset{padding-inline:14px}
}
@media(max-width:767px){
 .current-programme .page-heading{padding:24px 0 22px}
 .current-programme .page-heading .eyebrow{margin-bottom:12px;font-size:13px;line-height:1.3}
 .current-programme .page-heading h1{font-size:clamp(44px,12vw,56px)}
 .current-programme .page-heading .lead{margin-top:16px;font-size:17px;line-height:1.45;max-width:42ch}
 .current-programme .programme-filters>summary{display:flex;align-items:center;gap:12px;min-height:56px;list-style:none;cursor:pointer;font:400 1rem/1.35 var(--sans)}
 .current-programme .programme-filters>summary::-webkit-details-marker{display:none}
 .current-programme .programme-filters>summary>span:first-child{flex:1;min-width:0}
 .current-programme .programme-filter-status{font-size:.875rem;color:var(--ink-2);white-space:nowrap}
 .current-programme .programme-filters>summary::after{content:'+';flex:none;font-size:1.25rem;line-height:1}
 .current-programme .programme-filters[open]>summary::after{content:'−'}
 .current-programme #filters{padding:4px 0 20px;gap:16px}
 .current-programme #filters label{font-size:13px;letter-spacing:.04em}
 .current-programme #filters .reset{width:auto;justify-self:start;padding-inline:16px}
 .current-programme .mobile-results-toolbar{column-gap:12px;padding:6px 0}
 .current-programme .mobile-programme-contents{gap:0 16px;flex-wrap:wrap}
 .current-programme .mobile-programme-contents a{font-size:.9375rem}
 .current-programme .journal-story:first-child{padding-top:20px}
 .current-programme .journal-story:first-child:not(.type-only) .journal-copy{padding-top:0;align-self:stretch}
 .current-programme .journal-story:first-child .journal-deck{margin-bottom:16px}
 .current-programme .journal-story>.mobile-journal-title{font-size:clamp(28px,8vw,36px);line-height:1.1}
}
/* END NEXTLEVEL PROGRAMME */
/* Sticky navigation controls already sit inside the reserved header area.
   Counter only their scroll margin, so native keyboard focus does not scroll
   the reading position. Content anchors keep the global header clearance. */
#header:has(.menu-toggle[aria-expanded="false"]) :is(.brand,.menu-toggle,.language,#nav a) {
  scroll-margin-top: calc(0px - var(--safe-header-h) - 16px);
}

/* Keep the one-tap visit shortcut while event content is stacked on tablet. */
@media (min-width:768px) and (max-width:1023px) {
  .mobile-visit-breadcrumb {display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:4px 16px}
  .mobile-visit-breadcrumb>a {display:inline-flex;align-items:center;min-height:44px}
  .mobile-visit-breadcrumb .mobile-visit-jump {gap:8px;margin:0;border:1px solid var(--ink);padding:8px 12px;font:500 .9375rem/1.4 var(--sans);text-decoration:none}
}
/* Photographic stories retain the stacked composition up to 1279px. */
@media (min-width:1024px) and (max-width:1279px) {
  #main:has(>.photographic-story) .mobile-visit-breadcrumb {display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:4px 16px}
  #main:has(>.photographic-story) .mobile-visit-breadcrumb>a {display:inline-flex;align-items:center;min-height:44px}
  #main:has(>.photographic-story) .mobile-visit-breadcrumb .mobile-visit-jump {gap:8px;margin:0;border:1px solid var(--ink);padding:8px 12px;font:500 .9375rem/1.4 var(--sans);text-decoration:none}
}

/* The mobile campaign has its own poster scale and a legible date hierarchy. */
@media(max-width:699px){
 .hero{padding-block:24px 28px;row-gap:28px}
 .hero-art{max-width:none;max-height:none;width:100%}
 .hero-info{grid-template-columns:112px minmax(0,1fr);gap:20px 24px}
 .hero-date{font:400 clamp(52px,16vw,68px)/.9 var(--condensed);letter-spacing:-.01em}
 .hero-date-days{display:block}
 .hero-date-month{display:block;margin-top:12px;font:400 18px/1.2 var(--sans);letter-spacing:0}
 .hero-actions{column-gap:24px;row-gap:8px}
 .hero-description{font-size:17px;line-height:1.5}
 .hero-index a:nth-child(n){display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:12px;padding:16px;min-height:96px;font-size:15px;line-height:1.25}
 .hero-index a:first-child,.hero-index a:nth-child(3){padding-left:0}
 .hero-index .section-icon{width:28px;height:28px;flex:none}
 .hero-index a span{overflow-wrap:normal}
}
@media(max-width:359px){.hero-info{grid-template-columns:96px minmax(0,1fr);column-gap:20px}.hero-date-month{font-size:16px}.hero-index a:nth-child(n){padding-right:8px;font-size:14px}}

/* Document-width framing keeps Tempora's official artwork at its native size. */
@media(min-width:768px){
 .edition-detail[data-edition="2025"]>.breadcrumb,
 .edition-detail[data-edition="2025"]>.page-heading,
 .edition-detail[data-edition="2025"]>.mobile-page-contents,
 .edition-detail[data-edition="2025"]>.edition-detail-grid{max-width:1200px}
}
/* The reading sequence stays photograph, category, title, and visit information. */
@media(max-width:767px){
 .journal-story .journal-image{width:calc(100% + 40px);margin-inline:-20px}
 .journal-story .journal-copy .eyebrow{margin-bottom:12px}
 .journal-story .journal-copy h2{margin:0 0 16px;font-size:clamp(28px,8vw,36px);line-height:1.1}
 .current-programme .journal-story:first-child .journal-copy h2{margin:0 0 16px}
}
@media(min-width:768px){
 .festival-overview .festival-media figcaption,
 .festival-overview .festival-media figure:first-child figcaption{padding-inline:48px}
}

/* Full-bleed surfaces, protected reading edges and controls on Safari devices. */
:root{
 --safe-area-top:env(safe-area-inset-top,0px);
 --safe-area-bottom:env(safe-area-inset-bottom,0px);
 --safe-area-inline:max(env(safe-area-inset-left,0px),env(safe-area-inset-right,0px));
 --safe-header-h:calc(var(--header-h) + var(--safe-area-top));
 --pad:max(var(--margin),calc((100% - var(--content))/2),calc(var(--safe-area-inline) + 16px));
 --masthead-top-space:0px;
}
#header{padding-top:calc(var(--masthead-top-space) + var(--safe-area-top))}
#header .skip{top:calc(8px + var(--safe-area-top))}
#footer{padding-bottom:calc(32px + var(--safe-area-bottom))}
#site-index{padding-bottom:calc(40px + var(--safe-area-bottom))}
html{scroll-padding-top:calc(var(--safe-header-h) + 16px)}
#visit-information,[id^="venue-"],[id^="mobile-section-"],#programme-exhibitions,#programme-activities{scroll-margin-top:calc(var(--safe-header-h) + 24px)}
@media(max-width:1023px){#header{min-height:calc(56px + var(--safe-area-top))}}
@media(max-width:639px){:root{--masthead-top-space:6px}}
/* --page-edge is --pad measured on the viewport, for text inside full-bleed figures. */
:root{--page-edge:max(var(--margin),calc((100vw - var(--content))/2),calc(var(--safe-area-inline) + 16px))}
@media(max-width:767px){
 .photographic-story>.detail-lead{width:100vw;margin-inline:calc(50% - 50vw)}
 .photographic-story>.detail-lead figcaption{padding-inline:var(--page-edge)}
 .festival-overview .festival-media figcaption,.festival-overview .festival-media figure:first-child figcaption{padding-inline:var(--page-edge)}
 .journal-story .journal-image{width:100vw;margin-inline:calc(50% - 50vw)}
}
@media(min-width:768px){
 /* Left caption starts on the page margin; right caption starts on its photograph's edge. */
 .festival-overview .festival-media figure:first-child figcaption{padding-inline:var(--page-edge) var(--gutter)}
 .festival-overview .festival-media figure:last-child figcaption{padding-inline:0 var(--page-edge)}
}

/* Tempora's visual index: every route has the same scale and reading priority. */
.tempora-index-home{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 24px}
.tempora-index-full{grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 32px}
.tempora-index-home>a:nth-of-type(n),.tempora-index-full>a:nth-of-type(n){grid-column:auto;grid-row:auto;align-self:start;display:grid;grid-template-columns:minmax(0,1fr);gap:14px;min-width:0;max-width:none}
.tempora-index>a>img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;margin:0}
.tempora-index>a>span{font:500 clamp(24px,2.3vw,32px)/1.08 var(--condensed);letter-spacing:0}
.tempora-index>.eyebrow{font:400 14px/1.4 var(--sans);letter-spacing:.04em;color:var(--ink-2)}
.tempora-index>.archive-directory{padding-top:20px;border-top:1px solid var(--paper-2);gap:8px 32px}
@media(max-width:1023px){
 .tempora-index-home,.tempora-index-full{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px}
}
@media(max-width:767px){
 .tempora-index-home,.tempora-index-full{gap:28px 20px;margin-inline:0}
 .tempora-index>a>span{font-size:26px;line-height:1.1}
 .tempora-index-home>a:nth-of-type(n),.tempora-index-full>a:nth-of-type(n){gap:10px}
 .tempora-index>.archive-directory{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding-top:12px}
}
@media(max-width:359px){.tempora-index-home,.tempora-index-full{column-gap:16px}.tempora-index>a>span{font-size:23px}}

/* A single display voice, in dialogue with the vertical proportions of the mark. */
#main :is(h1,h2,h3,h4){font-family:var(--condensed);font-weight:500;letter-spacing:0}
#main .page-heading h1{font-size:clamp(44px,5vw,72px);line-height:.95;letter-spacing:-.01em}
#main .section-heading h2{font-size:clamp(32px,2.8vw,40px);line-height:1}
#main :is(.project-grid h3,.journal-copy h2,.selection-project-grid h3,.catalogue-entry h3,.feature-event h3,.archive-caption h3){font-size:32px;line-height:1.08;letter-spacing:0}
#main :is(.story-section h2,.edition-documentary-section h2,.edition-acknowledgements h2){font-size:32px;line-height:1.08}
#main .information-directory h2{font-size:32px;line-height:1.08}
#main .masthead-row li{font:500 30px/1.15 var(--condensed);letter-spacing:0}
#main :is(.eyebrow,.masthead-row h2,.partner-group h3){font:400 13px/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase}
#main :is(.detail-facts dt,.technical-facts dt){font:400 13px/1.3 var(--sans);letter-spacing:.08em;color:var(--ink-2)}
#main :is(.detail-facts>.eyebrow,.edition-introduction>.eyebrow){color:var(--ink)}
#nav a,#header .menu-toggle,#header .language,.running-head a,.edition-tabs a{font-weight:400;letter-spacing:0}
#nav a[aria-current],.running-head a[aria-current],.edition-tabs a.active{font-weight:500}
#main .button{font-family:var(--sans);font-weight:500;letter-spacing:0}
.hero-date{font-family:var(--condensed);font-weight:400;letter-spacing:0;font-variant-numeric:tabular-nums}
.hero-date-days{display:block;font:inherit;line-height:.9}
.hero-date-month{display:block;margin-top:12px;font:400 20px/1.2 var(--sans);letter-spacing:0}
.hero-index a:nth-child(n){font-weight:500;letter-spacing:0}
.fo-month{font:400 clamp(20px,1.6vw,24px)/1.3 var(--sans);letter-spacing:0}
@media(min-width:1024px){.hero-date{font-size:64px}}
@media(min-width:700px) and (max-width:1023px){.hero-date{font-size:48px}}
@media(max-width:767px){
 #main :is(.project-grid h3,.journal-copy h2,.selection-project-grid h3,.catalogue-entry h3,.feature-event h3,.archive-caption h3){font-size:28px;line-height:1.08}
 #main :is(.story-section h2,.edition-documentary-section h2,.edition-acknowledgements h2){font-size:28px}
 #main .masthead-row li{font-size:26px}
 .hero-date-month{font-size:18px}
}
@media(max-width:389px){.hero-date-month{font-size:16px}}
/* Small subheads inside prose are the interface voice, at reading scale. */
#main :is(.story-section h3,.migrated-body h3){font:500 20px/1.3 var(--sans);letter-spacing:0}

/* Navigation states use type and a rule, with no yellow selection field. */
#nav a,#nav a:is(:hover,:focus-visible,:active,[aria-current]),#nav a::before,#nav a::after{background:transparent}
#nav a{box-shadow:none}
#nav a[aria-current],#nav a:hover{box-shadow:inset 0 -1px currentColor;text-decoration:none}
#nav a:focus-visible{outline:2px solid currentColor;outline-offset:4px;background:transparent}
.running-head a[aria-current]{box-shadow:inset 0 -2px var(--ink)}
@media(max-width:1023px){#nav a[aria-current]{padding-inline:0}}
#nav a .nav-label,#nav a[aria-current] .nav-label,#nav a:is(:hover,:focus-visible) .nav-label{background:transparent}

/* Masthead and editorial page share one solid, scroll-responsive canvas; the hero keeps its fixed ground. */
html[data-home-field]{--home-surface:var(--site-white)}
html[data-home-field],html[data-home-field] body{background:var(--home-surface)}
html[data-home-field] #header .masthead-surface{background:var(--paper)}
/* Scroll crossings fade the single masthead factor (see "Home masthead shares the campaign
   field"): short and front-loaded, reversible mid-way. Jumps (menu, anchors, restored
   positions) set data-masthead-snap in home-field.js and switch in the same frame. */
@media(prefers-reduced-motion:no-preference){
 html[data-home-field][data-surface-ready]:not([data-masthead-snap]) #header{transition:--masthead-field 180ms cubic-bezier(.2,0,0,1)}
}
/* Links and buttons keep their hover fades, but not while the theme changes: an own colour
   transition would restart on every frame of the masthead fade and trail behind it. */
html[data-home-field][data-masthead-shift] #header *{transition:none}
/* Optional measured mobile correction: retain source proportions and native size. */
@media (max-width: 430px) {
  .partner-logo:has(svg[aria-label^="Direzione regionale Musei nazionali Veneto"]),
  .partner-logo:has(svg[aria-label="Camera di Commercio Venezia Rovigo"]) {
    grid-column: 1 / -1;
  }
  .partner-logo svg[aria-label^="Direzione regionale Musei nazionali Veneto"] {
    width: min(100%, 253px);
    max-height: 65px;
  }
  .partner-logo svg[aria-label="Camera di Commercio Venezia Rovigo"] {
    width: min(100%, 255px);
    max-height: 63px;
  }
}

/* BEGIN NEXTLEVEL EDITIONS MOTION */
.editions[data-edition-motion] .edition-panel {overflow:hidden;overflow:clip}
.editions[data-edition-motion] .edition>h3,
.editions[data-edition-motion] .edition>.edition-panel {position:relative;z-index:1}
.edition-motion-surface {position:absolute;inset:0 0 auto;z-index:0;pointer-events:none}
@media (max-width:1023px) {
 .editions[data-edition-motion] .edition[data-open][data-year="2023"] h3 button,
 .editions[data-edition-motion] .edition[data-open][data-year="2023"] .edition-info {background-color:#06576b}
}
@media (prefers-reduced-motion:reduce) {
 .editions[data-edition-motion] .editions-list {transition:none}
}
/* END NEXTLEVEL EDITIONS MOTION */

/* Original exhibition artwork keeps its own proportions without added mattes. */
.journal-story .journal-image,
.journal-story:has(a:is(:hover,:focus-visible)) .journal-image{
 display:block;aspect-ratio:auto;align-self:center;background:transparent;
}
.journal-story .journal-image img{display:block;width:100%;height:auto;object-fit:contain}

/* Origini: white live lettering over the original photographic artwork. */
.editions .edition[data-year="2022"][data-open]{--edition-ink:#fff;background-image:url('/assets/source-981b155a8ef93466c652.jpg')}
.editions .edition[data-year="2022"][data-open]::after{
 content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:rgba(0,0,0,.48)
}
.editions .edition[data-year="2022"][data-open]>.edition-panel{z-index:auto}
.editions .edition[data-year="2022"][data-open]>h3,
.editions .edition[data-year="2022"][data-open] .edition-info{position:relative;z-index:3;background:transparent!important}
.editions .edition[data-year="2022"][data-open] :is(.edition-year,.edition-summary,.edition-toggle,.edition-theme,.edition-date,.edition-info>a){color:#fff;text-shadow:0 1px 2px rgb(0 0 0 / .45)}
.editions .edition[data-year="2022"][data-open] h3 button{color:#fff}
.editions .edition[data-year="2022"][data-open] h3 button:focus-visible{outline-color:#fff}

/* The date is the second campaign anchor, with a scale close to the mark. */
.hero-date{font-weight:500;letter-spacing:-.01em}
.hero-date mark{display:flex;align-items:flex-end;gap:20px}
.hero-date-days{font-weight:500;line-height:.84}
.hero-date-month{margin:0;font:500 32px/1 var(--condensed);letter-spacing:0}
.hero-date-year{display:block;margin-top:8px;font:400 20px/1 var(--sans)}
@media(min-width:1024px){.hero-date{font-size:clamp(88px,7.8vw,112px);margin-block:24px 28px}}
@media(min-width:700px) and (max-width:1023px){.hero-date{font-size:76px}.hero-date-month{font-size:27px}.hero-date-year{font-size:18px}}
@media(max-width:699px){
 .hero-date{font-size:clamp(64px,18vw,80px);font-weight:500}
 .hero-date mark{display:block}
 .hero-date-month{margin-top:12px;font:400 18px/1.2 var(--sans)}
 .hero-date-year{display:inline;margin:0;font:inherit}
}
@media(max-width:359px){.hero-date{font-size:60px}.hero-date-month{font-size:16px}}
/* One motion language: immediate feedback, measured disclosure, native navigation. */
:root{
 --motion-ease:cubic-bezier(.22,.61,.36,1);
 --motion-feedback:160ms;--motion-panel:320ms;--motion-page:250ms;
 --fast:var(--motion-feedback);--row:240ms;--ease:var(--motion-ease);
}
@media(prefers-reduced-motion:no-preference){
 html{scroll-behavior:smooth}
 a,.button,button,input,select{transition-timing-function:var(--motion-ease)}
 .project-image img{transition-duration:var(--motion-page);transition-timing-function:var(--motion-ease)}
 .information-directory a{transition-duration:var(--motion-feedback);transition-timing-function:var(--motion-ease)}
 .editions-list{transition-timing-function:var(--motion-ease)}
 ::view-transition-group(masthead-surface),::view-transition-old(masthead-surface),::view-transition-new(masthead-surface){animation-duration:var(--motion-page);animation-timing-function:var(--motion-ease)}
}
/* Scroll padding already accounts for the masthead; add only the reading gap. */
#visit-information,[id^="venue-"],[id^="mobile-section-"],#programme-exhibitions,#programme-activities{scroll-margin-top:16px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* One visible brand mark; campaign artwork and date carry the hero. */
@media(min-width:1024px){
 .hero-date{font-size:clamp(104px,9.2vw,144px);margin:0 0 32px}
 .hero-date-month{font-size:36px}
}
@media(min-width:700px) and (max-width:1023px){.hero-date{font-size:88px;margin-top:0}}
@media(max-width:699px){
 .hero-info{grid-template-columns:minmax(0,1fr);gap:24px}
 .hero-date{grid-column:1;margin:0;font-size:clamp(84px,24vw,104px)}
 .hero-date mark{display:flex;align-items:flex-end;justify-content:flex-start;gap:clamp(18px,5vw,24px)}
 .hero-date-month{margin:0;font:500 32px/1 var(--condensed)}
 .hero-date-year{display:block;margin-top:8px;font:400 18px/1 var(--sans)}
}
@media(max-width:359px){.hero-date{font-size:80px}.hero-date-month{font-size:30px}}

/* BEGIN COMPACT MOBILE NAVIGATION */
/* Safe area is added above a balanced masthead, not substituted for its padding. */
#header{padding-top:calc(10px + var(--safe-area-top));padding-bottom:10px}
#site-index>.mobile-nav-explore{display:none}
@media(max-width:1023px){
 #header{padding-top:calc(8px + var(--safe-area-top));padding-bottom:8px}
 #site-index{columns:auto;margin-top:16px;padding:0 0 calc(16px + var(--safe-area-bottom))}
 #site-index>section{display:none}
 #site-index>.mobile-nav-explore{display:block}
 #site-index summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:12px 0;list-style:none;font:400 16px/1.35 var(--sans);cursor:pointer}
 #site-index summary::-webkit-details-marker{display:none}
 #site-index summary::after{content:'+';flex:none;font-size:20px;line-height:1}
 #site-index details[open]>summary::after{content:'−'}
 #site-index summary:focus-visible{outline:2px solid currentColor;outline-offset:3px}
 #site-index .mobile-nav-explore>summary{min-height:52px;padding-block:14px}
 #site-index .mobile-nav-group{border-top:1px solid var(--ink)}
 #site-index .mobile-nav-group>summary{font-size:15px}
 #site-index .mobile-nav-group>ul{padding:0 0 16px 16px}
 #site-index .mobile-nav-group li:first-child{border-top:0}
 #site-index .mobile-nav-group a{min-height:44px;font-size:16px;line-height:1.4;padding-block:10px}
}

.running-head>.mobile-context-nav{display:none}
@media(max-width:1023px){
 .running-head{display:block;overflow:visible;white-space:normal;scroll-snap-type:none;overflow-anchor:none}
 .running-head>a{display:none}
 .running-head>.mobile-context-nav{display:block;width:100%;min-width:0}
 .mobile-context-nav>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:10px 0;list-style:none;font:400 16px/1.3 var(--sans);cursor:pointer}
 .mobile-context-nav>summary::-webkit-details-marker{display:none}
 .context-nav-action{display:inline-flex;align-items:center;gap:8px;flex:none;font-size:14px}
 .context-nav-action svg{transition:transform var(--motion-feedback,160ms) var(--motion-ease,cubic-bezier(.22,.61,.36,1))}
 .mobile-context-nav[open] .context-nav-action svg{transform:rotate(180deg)}
 .mobile-context-nav>summary:focus-visible{outline:2px solid currentColor;outline-offset:3px}
 .mobile-context-nav>ul{margin:0;padding:0 0 12px;list-style:none}
 .mobile-context-nav li{border-top:1px solid var(--ink)}
 .running-head .mobile-context-nav a{display:flex;min-height:48px;padding:12px 0;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.4;box-shadow:none}
 .running-head .mobile-context-nav a[aria-current]{font-weight:500}
 .mobile-context-nav a>span{min-width:0}
}
@media(prefers-reduced-motion:reduce){.context-nav-action svg{transition:none}}
/* END COMPACT MOBILE NAVIGATION */

/* Keep sticky offsets equal to the balanced masthead's measured closed height. */
:root{--header-h:71px}
@media(max-width:1023px){:root{--header-h:61px}}

/* BEGIN NEXTLEVEL IMPORTED CONTENT */
:root{--reading-width:680px;--rule-weight:1px;--rule-subtle:color-mix(in srgb,var(--ink) 18%,var(--paper));--motion-ease:cubic-bezier(.22,.61,.36,1);--motion-feedback:160ms;--motion-panel:320ms;--motion-page:250ms}
.imported-page{padding-bottom:32px}
.imported-page .page-heading{max-width:1040px}
.imported-content{font:400 19px/1.65 var(--serif);overflow-wrap:anywhere}
.imported-content>:is(p,ul,ol,blockquote,h2,h3,h4,hr,table),.imported-directory-intro,.imported-media{max-width:var(--reading-width);margin-inline:auto}
.imported-content p{margin-bottom:1.25em}
.imported-content p:empty{display:none}
.imported-content :is(h2,h3,h4){font-family:var(--display-face,"Barlow Condensed"),"Arial Narrow",sans-serif;font-weight:500;line-height:1.1;letter-spacing:-.01em}
.imported-content h2{font-size:32px;margin-block:48px 20px}
.imported-content h3{font-size:28px;margin-block:32px 16px}
.imported-content h4{font-size:24px;margin-block:28px 12px}
.imported-content :is(ul,ol){padding-left:1.3em;margin-block:24px}
.imported-content li+li{margin-top:8px}
.imported-content img{display:block;width:100%;max-width:min(100%,var(--native-image-width,100%));height:auto;object-fit:contain;margin-inline:auto}
.imported-content figure,.imported-content .imported-image-block{margin:40px auto;max-width:100%;text-align:left}
.imported-content figcaption{max-width:var(--reading-width);margin:12px auto 0;font:italic 400 14px/1.5 var(--serif);color:var(--ink-2)}
.imported-content :is(iframe,video,audio){max-width:100%}
.imported-content table{display:block;overflow:auto;border-collapse:collapse;font:400 16px/1.5 var(--sans)}
.imported-content :is(td,th){padding:12px 16px;border-bottom:var(--rule-weight) solid var(--rule-subtle);text-align:left}
.imported-directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px 40px;margin-block:48px}
.imported-directory-card{min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.imported-directory-card>a:has(img){order:-1;display:block;width:100%;margin-bottom:20px}
.imported-directory-card h2{margin:0 0 16px;font-size:32px}
.imported-directory-card h2 a{text-decoration:none}
.imported-directory-card h2 a:hover{text-decoration:underline;text-underline-offset:5px}
.imported-directory-card p{max-width:60ch;font-size:18px;line-height:1.6}
.imported-directory-card img{max-height:560px}
.imported-media{margin-block:48px}
.imported-embed{border-top:var(--rule-weight) solid var(--rule-subtle);padding-block:24px;margin-top:32px}
.imported-embed h2{font:500 28px/1.15 "Barlow Condensed",sans-serif;margin:0 0 20px}
.imported-embed>a{display:inline-flex;align-items:center;min-height:44px;margin:8px 20px 0 0;font:400 15px/1.4 var(--sans)}
.imported-embed iframe{display:block;width:100%;aspect-ratio:16/9;height:auto;min-height:260px;border:0;margin-top:24px}
.imported-embed[data-embed*="calameo"] iframe{aspect-ratio:4/3;min-height:420px}
.language-note{max-width:680px;font:400 15px/1.5 var(--sans);margin:0 auto 32px}
@media(max-width:767px){
 .imported-content{font-size:18px;line-height:1.65}
 .imported-content h2{font-size:28px;margin-block:36px 16px}
 .imported-content h3{font-size:25px;margin-block:28px 12px}
 .imported-directory-grid{grid-template-columns:minmax(0,1fr);gap:40px;margin-block:32px}
 .imported-directory-card h2{font-size:28px;margin-top:0}
 .imported-directory-card>a:has(img){margin-bottom:16px}
 .imported-content figure,.imported-content .imported-image-block{margin-block:28px}
 .imported-content table{font-size:15px}
 .imported-embed[data-embed*="calameo"] iframe{min-height:360px}
}
/* END NEXTLEVEL IMPORTED CONTENT */

/* One separator per change of content; the card plans share the header rule. */
.service-page:has(.card-plans) .page-heading{border-bottom:0;padding-bottom:0;margin-bottom:32px}
.service-page .card-plans{margin-top:0;gap:32px}
@media(max-width:767px){.service-page .card-plans{gap:32px}.service-page:has(.card-plans) .page-heading{margin-bottom:24px}}

/* BEGIN NEXTLEVEL DESIGN BLOG */
.blog-heading{display:grid;grid-template-columns:7fr 5fr;gap:16px 40px;padding-block:48px 56px}
.blog-heading .eyebrow{grid-column:1/-1;margin:0}
#main .blog-heading h1{font:500 clamp(64px,8vw,112px)/.95 var(--condensed);letter-spacing:-.015em}
.blog-heading>p:last-child{align-self:end;max-width:32ch;font:400 22px/1.45 var(--serif);margin:0}
.blog-opening{margin-bottom:80px}
.blog-feature{display:grid;grid-template-columns:7fr 5fr;align-items:center;column-gap:48px}
.blog-image{display:block;text-decoration:none;overflow:hidden;align-self:start}
.blog-image:empty{display:none}
.blog-image img{width:100%;height:auto;object-fit:contain}
#main .blog-copy h2{font:500 32px/1.08 var(--condensed);letter-spacing:0;margin:20px 0 16px}
#main .blog-feature h2{font-size:clamp(36px,3.8vw,52px);margin-top:0}
.blog-copy h2 a{text-decoration:none}
.blog-copy h2 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.blog-excerpt{font:400 19px/1.6 var(--serif);max-width:60ch}
.blog-excerpt p{margin:0 0 16px}
.blog-read{display:inline-flex;align-items:center;min-height:44px;font:500 15px/1.4 var(--sans);margin-top:12px}
.blog-archive{border-top:1px solid var(--ink);padding-top:32px}
.blog-archive .section-heading{margin-bottom:28px}
.blog-search{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px 24px;margin:0 0 48px;max-width:680px}
.blog-search label{grid-column:1/-1;font:400 14px/1.4 var(--sans)}
.blog-search input{min-width:0;min-height:48px;padding:12px 0;border:0;border-bottom:1px solid var(--ink);border-radius:0;background:transparent;color:var(--ink);font:400 17px/1.4 var(--sans)}
.blog-search button{min-height:48px}
.design-blog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:64px 40px}
.design-blog-grid .blog-image img{max-height:480px;object-fit:contain;object-position:left bottom}
#blog-more{display:flex;margin:48px auto 0}
#blog-more[hidden]{display:none}
.blog-empty{font:400 19px/1.6 var(--serif)}
.home-design-blog .blog-feature{padding-top:32px;border-top:1px solid var(--ink)}
.blog-shortlist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;margin-top:40px}
.blog-shortlist a{display:flex;align-items:flex-start;min-height:64px;padding-top:20px;border-top:1px solid var(--rule-subtle,var(--ink-2));font:500 28px/1.15 var(--condensed);text-decoration:none}
.blog-shortlist a:hover{text-decoration:underline;text-underline-offset:5px}
@media(max-width:767px){
 .blog-heading{display:block;padding-block:32px}
 .blog-heading .eyebrow{margin-bottom:16px}
 .blog-heading>p:last-child{font-size:19px;line-height:1.5;margin-top:20px}
 .blog-feature{display:block}
 .blog-feature .blog-image{width:100vw;margin-inline:calc(50% - 50vw)}
 .blog-opening{margin-bottom:48px}
 #main .blog-feature h2{font-size:34px;margin-top:24px}
 #main .blog-copy h2{font-size:28px}
 .blog-excerpt{font-size:18px;line-height:1.6}
 .blog-search{gap:8px 16px;margin-bottom:32px}
 .design-blog-grid{grid-template-columns:minmax(0,1fr);gap:40px}
 .design-blog-grid .blog-image img{max-height:none}
 .blog-shortlist{grid-template-columns:minmax(0,1fr);gap:20px;margin-top:24px}
 .blog-shortlist a{font-size:26px;min-height:56px;padding-top:16px}
}
/* END NEXTLEVEL DESIGN BLOG */

.source-enrichment{margin-top:40px}.detail-body>.source-enrichment>:is(p,h2,h3,h4,ul,ol){margin-inline:0}.source-enrichment img{max-height:80svh}.source-enrichment .imported-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:767px){.source-enrichment .imported-directory-grid{grid-template-columns:minmax(0,1fr)}.source-enrichment{margin-top:28px}}
/* BEGIN EDITION CONTENTS DISCLOSURE */
.mobile-edition-contents{display:none}
@media(max-width:767px){
 .edition-detail[data-edition="2025"]>.mobile-page-contents{display:block;overflow:visible;white-space:normal;padding-block:0}
 .edition-detail[data-edition="2025"]>.mobile-page-contents>a{display:none}
 .mobile-edition-contents{display:block}
 .mobile-edition-contents>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:12px 0;list-style:none;font:400 16px/1.3 var(--sans);cursor:pointer}
 .mobile-edition-contents>summary::-webkit-details-marker{display:none}
 .mobile-edition-contents>summary svg{flex:none;transition:transform var(--motion-feedback,160ms) var(--motion-ease,cubic-bezier(.22,.61,.36,1))}
 .mobile-edition-contents[open]>summary svg{transform:rotate(180deg)}
 .mobile-edition-contents>summary:focus-visible{outline:2px solid currentColor;outline-offset:-3px}
 .mobile-edition-contents>ul{list-style:none;margin:0;padding:0 0 8px}
 .mobile-edition-contents li{border-top:1px solid var(--ink)}
 .edition-detail[data-edition="2025"]>.mobile-page-contents .mobile-edition-contents a{display:flex;min-height:48px;padding:12px 0;white-space:normal;overflow-wrap:anywhere;line-height:1.4}
}
@media(max-width:1023px){#main:has(>.photographic-story)>.mobile-visit-breadcrumb{margin-bottom:16px}}
@media(prefers-reduced-motion:reduce){.mobile-edition-contents>summary svg{transition:none}}
/* END EDITION CONTENTS DISCLOSURE */

/* VDW_ORIGINAL_SOCIAL_ICONS: original glyphs, with explicit touch and keyboard states. */
.social-section .vdw-social-links,
.vdw-social-links.footer-social-links {
 display:flex;
 flex-wrap:wrap;
 align-items:center;
 gap:8px 20px;
 width:auto;
}
.vdw-social-links .vdw-social-link {
 display:inline-flex;
 align-items:center;
 justify-content:flex-start;
 gap:9px;
 min-width:44px;
 min-height:44px;
 padding:9px 2px;
 color:inherit;
 text-decoration:none;
 line-height:1.3;
}
.vdw-social-link svg {
 display:block;
 flex:none;
 width:24px;
 height:24px;
 overflow:visible;
}
.vdw-social-link:focus-visible {
 outline:2px solid currentColor;
 outline-offset:4px;
 border-radius:2px;
}
.vdw-social-link:hover span {
 text-decoration:underline;
 text-underline-offset:4px;
}
@media(max-width:767px) {
 .social-section .vdw-social-links {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px;width:100%}
}

/* Contextual photographs give the guides a visible subject. */
.guide-image{margin:0 0 20px}
.guide-image img{display:block;width:100%;max-height:420px;height:auto;object-fit:contain;object-position:left bottom}
.guide-image figcaption{display:none}
.guide-image--thumbnail{max-width:160px}
.guide-places{align-items:start}
.information-features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;margin:64px 0}
.information-features>a{display:block;color:inherit;text-decoration:none}
.information-features img{display:block;width:100%;height:auto;margin-bottom:24px}
.information-features h2{font:500 36px/1.1 var(--condensed);margin:12px 0}
.information-features p:last-child{font:400 19px/1.55 var(--serif)}
.festival-documentary{margin:48px 0}
.festival-documentary img{display:block;width:100%;height:auto}
.festival-documentary figcaption{font:400 14px/1.5 var(--sans);margin:12px 0}
@media(max-width:767px){.information-features{grid-template-columns:minmax(0,1fr);gap:40px;margin:48px 0}.guide-image img{max-height:360px}.festival-documentary{margin:36px 0}}

.imported-event-layout{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr);gap:48px;align-items:start}.imported-event-facts dl{margin:0 0 28px}.imported-event-facts dt{font:500 14px/1.5 var(--sans);margin:0 0 8px}.imported-event-facts dd{font:400 18px/1.5 var(--sans);margin:0 0 24px}.imported-event-facts .event-date-note{font:400 16px/1.5 var(--sans);margin-bottom:24px}.imported-event-layout>.imported-content> :first-child{margin-top:0}@media(max-width:767px){.imported-event-layout{grid-template-columns:minmax(0,1fr);gap:32px}.imported-event-facts dl{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px}.imported-event-facts dt{grid-row:1}.imported-event-facts dd{grid-row:2;margin:0}.imported-event-facts .button{min-height:44px}}
/* BEGIN VISUAL DESIGN INDEX */
.design-index-page{margin-bottom:96px}
.design-index-heading{display:grid;grid-template-columns:7fr 5fr;gap:40px;align-items:start;padding:40px 0 32px}
.design-index-heading .eyebrow{margin:0 0 14px}
#main .design-index-heading h1{font:500 clamp(64px,7vw,104px)/.95 var(--condensed);letter-spacing:-.015em}
.design-index-intro{max-width:38ch;margin:0;padding-top:31px;font:400 20px/1.45 var(--serif)}
.design-index-tools{display:grid;grid-template-columns:7fr 5fr;gap:40px;align-items:end;margin:0}
.design-index-tools label{display:block;font:400 14px/1.35 var(--sans)}
.design-index-search>div{display:flex;gap:16px;align-items:end}
.design-index-tools :is(input,select){min-width:0;width:100%;min-height:48px;padding:10px 0;border:0;border-bottom:1px solid var(--ink);border-radius:0;background:transparent;color:var(--ink);font:400 17px/1.4 var(--sans)}
.design-index-tools input::placeholder{color:var(--ink-2);opacity:1}
.design-index-tools button{min-height:48px;padding:10px 12px;border:0;background:transparent;color:var(--ink);font:400 15px/1.4 var(--sans);cursor:pointer}
.design-index-tools button:disabled{opacity:.45;cursor:default}
.design-index-filters{border:0;margin:0}
.design-index-filters>summary{display:none}
.design-index-filter-fields{display:flex;gap:24px}
.design-index-filter-fields>label{flex:1;min-width:0}
.design-index-count{margin:24px 0;font:400 14px/1.4 var(--sans);color:var(--ink-2)}
.design-index-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px 32px;list-style:none;padding:0;margin:0}
.design-index-card{min-width:0;margin:0;padding:0;border:0}
.design-index-card>a,.design-index-unlinked{display:block;color:var(--ink);text-decoration:none}
.design-index-card>a:hover{text-decoration:none}
.design-index-image{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;margin-bottom:16px;background:transparent}
.design-index-image img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
#main .design-index-caption h2{font:500 28px/1.08 var(--condensed);letter-spacing:0;overflow-wrap:anywhere}
.design-index-caption p{margin:8px 0 0;font:400 13px/1.4 var(--sans);color:var(--ink-2)}
.design-index-empty{max-width:48ch;padding:16px 0 48px}
.design-index-empty h2{margin-bottom:16px}
.design-index-empty p{font:400 20px/1.45 var(--serif)}
.design-index-page [hidden]{display:none!important}
@media(min-width:768px) and (max-width:1279px){.design-index-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 24px}.design-index-heading,.design-index-tools{gap:28px}.design-index-intro{font-size:19px}}
@media(max-width:767px){
 .design-index-page{margin-bottom:64px}
 .design-index-heading{grid-template-columns:minmax(0,1fr);gap:20px;padding:24px 0}
 .design-index-heading .eyebrow{margin-bottom:12px}
 #main .design-index-heading h1{font-size:64px}
 .design-index-intro{max-width:40ch;padding:0;font:400 18px/1.45 var(--serif)}
 .design-index-tools{display:block}
 .design-index-search>div{gap:8px}
 .design-index-tools :is(input,select){font-size:16px}
 .design-index-tools button{padding-inline:8px}
 .design-index-filters{margin-top:12px}
 .design-index-filters>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;list-style:none;cursor:pointer;font:400 15px/1.4 var(--sans)}
 .design-index-filters>summary::-webkit-details-marker{display:none}
 .design-index-filters>summary svg{flex:none;transition:transform var(--motion-feedback,160ms) var(--motion-ease,cubic-bezier(.22,.61,.36,1))}
 .design-index-filters[open]>summary svg{transform:rotate(180deg)}
 .design-index-filter-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding:8px 0 16px}
 .design-index-count{margin:12px 0 20px}
 .design-index-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}
 .design-index-image{margin-bottom:12px}
 #main .design-index-caption h2{font-size:24px}
 .design-index-caption p{margin-top:6px;font-size:12px}
}
@media(max-width:359px){.design-index-grid{grid-template-columns:minmax(0,1fr);gap:32px}.design-index-image{aspect-ratio:4/3}#main .design-index-caption h2{font-size:28px}.design-index-caption p{font-size:13px}}
@media(prefers-reduced-motion:reduce){.design-index-filters>summary svg{transition:none}}
/* END VISUAL DESIGN INDEX */

/* BEGIN HERO FIRST SCREEN (approved concept, 2026-10-22) */
/* Hero copy at every width: the site's sans voice, the theme clause discreetly weighted,
   two reading blocks with a pause before "Ogni progetto". One CTA, no glyph. */
.hero-description{font-family:var(--sans);font-weight:400;letter-spacing:0}
.hero-description>p{margin:0;max-width:none}
.hero-description>p+p{margin-top:.5em}
.hero-description strong{font-weight:500}
.hero-actions>.hero-cta{justify-content:center;text-align:center}

/* Phones (portrait, and landscape below 700px). The hero fills the screen below the
   measured masthead: --hero-header-height is the real #header box (home-field.js), which
   already contains safe-area-inset-top, so the inset is never counted twice.
   The copy is laid out in the small viewport (--hero-vh, 1svh: Safari's toolbars shown), so
   the CTA starts above them. The box reaches the large viewport (--hero-screen-vh, 1lvh): the
   difference is a blue tail below the content (--hero-toolbar-tail), so the next section stays
   below the fold in every toolbar state. Both units are static while the toolbars move (dvh is
   not), so nothing re-lays out during scroll. One extra pixel absorbs fractional rounding.
   On phones the tail only fills what the content leaves free (--hero-content-h, the mark and
   copy rows measured by home-field.js; 0 before it runs, i.e. the full tail), so a poster
   taller than the screen keeps the approved 40px below the CTA.
   min-height only: longer copy, text zoom or short screens grow the hero and scroll. */
.hero{--hero-vh:1vh;--hero-screen-vh:1vh;--hero-toolbar-tail:max(0px,calc((var(--hero-screen-vh) - var(--hero-vh))*100))}
@supports(height:1svh) and (height:1lvh){.hero{--hero-vh:1svh;--hero-screen-vh:1lvh}}
@media(max-width:699px){
 .hero{
  --hero-art-h:clamp(112px,calc(var(--hero-vh)*20),190px);
  min-height:calc(var(--hero-screen-vh)*100 - var(--hero-header-height,var(--safe-header-h)) + 1px);
  /* Elastic grid: fixed minimum intervals, then the remaining height is shared 1 : 1.3 : .7
     above the mark, between mark and date, and below the CTA. */
  grid-template-columns:minmax(0,1fr);
  /* The last row also clears the home indicator: max(40px, inset) stays 40px while
     Safari moves the bottom inset between 0 and 34px, so it never shifts the layout. */
  --hero-row-top:clamp(24px,calc(var(--hero-vh)*4),40px);--hero-row-mid:clamp(32px,calc(var(--hero-vh)*5),48px);--hero-row-end:max(40px,var(--safe-area-bottom,0px));
  grid-template-rows:minmax(var(--hero-row-top),1fr) auto minmax(var(--hero-row-mid),1.3fr) auto minmax(var(--hero-row-end),.7fr);
  /* Intervals of a poster taller than the screen: sized by content, the grid's fr is the last
     row's minimum (factor below 1), so the rows are end, 1.3 x end and end. */
  --hero-row-natural:calc(max(var(--hero-row-top),var(--hero-row-end)) + max(var(--hero-row-mid),var(--hero-row-end)*1.3) + var(--hero-row-end));
  --hero-toolbar-tail:max(0px,min(calc((var(--hero-screen-vh) - var(--hero-vh))*100),calc(var(--hero-screen-vh)*100 - var(--hero-header-height,var(--safe-header-h)) + 1px - var(--hero-content-h,0px) - var(--hero-row-natural))));
  align-items:start;row-gap:0;padding:0 0 var(--hero-toolbar-tail);
 }
 .hero-number-block{grid-row:2;grid-column:1;align-self:center;display:flex;justify-content:center;gap:0;padding:0;transform:none}
 .hero-number:has(.hero-art){display:flex;justify-content:center;width:100%}
 .hero-art{width:min(100%,340px,calc(var(--hero-art-h)*1.76));height:auto;max-width:none;max-height:none;aspect-ratio:880/500}
 .hero-info{grid-row:4;grid-column:1;align-self:end;display:block;transform:none}
 .hero-date{margin:0;font-size:clamp(76px,22vw,96px);line-height:.84}
 .hero-date mark{display:flex;align-items:flex-end;justify-content:flex-start;gap:clamp(14px,4vw,20px);padding:0}
 .hero-date-days{line-height:.84}
 .hero-date-month{margin:0 0 .1em;padding:0;border:0;font:500 20px/1.15 var(--sans)}
 .hero-date-year{display:block;margin:2px 0 0;font:400 20px/1.15 var(--sans)}
 .hero-description{margin:clamp(24px,calc(var(--hero-vh)*4),36px) 0 0;max-width:34em;font-size:clamp(17px,4.4vw,18px);line-height:1.45}
 .hero-description>p+p{margin-top:.9em}
 .hero-actions{display:block;margin:clamp(24px,calc(var(--hero-vh)*4),36px) 0 0;padding:0}
 .hero-actions>.hero-cta{display:flex;align-items:center;width:100%;min-height:52px;margin:0;padding:14px 20px;font-size:17px;line-height:1.25}
}
@media(max-width:359px){.hero-date{font-size:72px}.hero-date-month,.hero-date-year{font-size:18px}}
@media(min-width:390px) and (max-width:699px){#header .brand img{height:26px}}
/* Home only, phones: a wider shared margin for masthead and hero (other pages keep --pad).
   The hero gains inner padding, so its full-bleed ::before/::after stay viewport-wide. */
@media(max-width:699px){
 html[data-home-field]{--home-pad:max(30px,calc(var(--safe-area-inline) + 16px))}
 html[data-home-field] #header{--pad:var(--home-pad)}
 html[data-home-field] .hero{padding-inline:max(0px,calc(var(--home-pad) - var(--pad)))}
}
@media(max-width:359px){html[data-home-field]{--home-pad:24px}}

/* The category row stays on desktop and tablets; phones go from the hero to the projects.
   The blue field then ends exactly at the hero edge, where the masthead changes colour. */
@media(max-width:699px),(max-width:1023px) and (max-height:500px){
 .hero-index{display:none}
 .hero-index+.project-selection{margin-top:0;padding-top:var(--home-entry-gap)}
}
/* Landscape phones: see responsive-layout.css, section 1. */
/* END HERO FIRST SCREEN */

/* Continuous image stories use the same breathing space as editorial galleries. */
.imported-content>img+img{margin-top:32px}
.city-guide--sestieri>.guide-sestiere:first-child{border-top:0}
.event-directions{display:inline-flex;min-height:44px;align-items:center;margin:0 0 16px;font:400 16px/1.4 var(--sans)}
@media(max-width:767px){.imported-content>img+img{margin-top:24px}}

.venue-events{min-width:0;list-style:none;padding:0;margin:0;display:grid;gap:16px}.venue-events li{margin:0;max-width:44ch}.venue-events a{font:400 17px/1.35 var(--sans)}.venue-events small{display:block;margin-top:4px;font:400 14px/1.4 var(--sans);color:var(--ink-2)}.venue-directions{display:inline-flex;align-items:center;min-height:44px;font:400 16px/1.4 var(--sans);text-decoration:underline;text-underline-offset:4px}

/* BEGIN IMPORTED DIRECTORY PROGRESSIVE */
.imported-directory-grid[data-imported-directory-ready]>[hidden],
.imported-directory-more[hidden],.imported-directory-empty[hidden]{display:none}
.imported-directory-controls label{min-width:0}
.imported-directory-actions{display:flex;flex-wrap:wrap;gap:12px}
.imported-directory-controls .reset{width:auto;margin-left:0}
.imported-directory-controls button,.imported-directory-controls input,.imported-directory-more{min-height:44px}
.imported-directory-count,.imported-directory-empty{max-width:none!important;margin-inline:0!important}
.imported-directory-more{margin-bottom:40px}
/* END IMPORTED DIRECTORY PROGRESSIVE */

.imported-directions{margin-top:24px;font:400 16px/1.5 var(--sans)}
.imported-directions a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:4px}

.page-heading:has(+.venue-section){border-bottom:0;padding-bottom:0}
.imported-directory-visual-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-block:32px}
.imported-directory-visual-links a{display:block;min-width:0}
.imported-directory-visual-links img{display:block;width:100%;height:auto;margin:0}
@media(max-width:767px){.imported-directory-visual-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-block:24px}}

/* BEGIN MOBILE CARD INTEGRITY */
/* A selection or archive card shows the complete work at its own aspect ratio. */
.selection-project-grid,
.selection-project-grid>article,
.project-directory,
.project-directory :is(article,.catalogue-entry){min-width:0}
.selection-project-grid>article>a,
.project-directory article>a{display:block;min-width:0;max-width:100%}
.selection-project-grid img,
.catalogue-directory img{
 display:block;width:100%;height:auto;max-width:100%;
 object-fit:contain;background:transparent
}
#main .selection-project-grid h3,
#main .project-directory h2{
 max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:normal;hyphens:manual
}
.selection-project-grid p{overflow-wrap:anywhere}
@media(min-width:360px) and (max-width:767px){
 .selection-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 20px}
 #main .selection-project-grid h3{font-size:clamp(22px,5.6vw,24px);line-height:1.18;margin-bottom:8px}
 .selection-project-grid img{margin-bottom:12px}
 .selection-project-grid p{font-size:17px;line-height:1.45;margin-bottom:0}
}
@media(max-width:359px){
 .selection-project-grid{grid-template-columns:minmax(0,1fr);gap:32px}
 #main .selection-project-grid h3{font-size:28px;line-height:1.15;margin-bottom:8px}
 .selection-project-grid img{margin-bottom:14px}
 .selection-project-grid p{font-size:18px;line-height:1.45;margin-bottom:0}
}
/* END MOBILE CARD INTEGRITY */

/* BEGIN HOME PROGRAMME REFERENCE */
/* Four-selection accordion: Interior opens first, one row open at a time. */
.home-program{--programme-icon:80px;--programme-gap:32px;--programme-speed:220ms;--programme-ease:cubic-bezier(.2,0,.2,1)}
.home-program>.section-heading{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:baseline;margin:0;padding:0 0 24px;border:0;border-bottom:1px solid var(--ink)}
.home-program>.section-heading h2{grid-column:1;margin:0}
.home-program>.section-heading>a{grid-column:2;justify-self:end;min-width:0;max-width:100%;font:400 16px/1.3 var(--sans);text-align:right;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.home-program .programme-accordion{margin:0;padding:0}
.home-program .programme-item{margin:0;border-bottom:1px solid var(--ink)}
#main .home-program .programme-heading{margin:0;font:inherit;letter-spacing:0}
.home-program .programme-toggle{appearance:none;display:grid;grid-template-columns:var(--programme-icon) minmax(0,1fr) auto;gap:0 var(--programme-gap);align-items:center;justify-content:stretch;width:100%;min-height:104px;margin:0;padding:20px 0;border:0;border-radius:0;background:transparent;color:var(--ink);font:inherit;letter-spacing:0;text-align:left;cursor:pointer;transition:none}
.home-program .programme-toggle:hover{background:transparent;color:var(--ink)}
.home-program .programme-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.home-program .programme-icon{display:block;grid-column:1;grid-row:1;width:var(--programme-icon);height:auto;aspect-ratio:1;object-fit:contain}
.home-program .programme-name{grid-column:2;grid-row:1;display:block;min-width:0}
.home-program .programme-kind{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows var(--programme-speed) var(--programme-ease),opacity var(--programme-speed) var(--programme-ease)}
.home-program .programme-kind>span{display:block;min-height:0;overflow:hidden;font:400 13px/1.3 var(--sans);letter-spacing:.07em;text-transform:uppercase}
.home-program .is-open .programme-kind{grid-template-rows:1fr;opacity:1}
.home-program .programme-kind>span::after{content:"";display:block;height:8px}
.home-program .programme-title{display:block;font:500 30px/1.08 var(--condensed);letter-spacing:0;overflow-wrap:anywhere;transition:font-size var(--programme-speed) var(--programme-ease)}
.home-program .is-open .programme-title{font-size:40px}
.home-program .programme-toggle:is(:hover,:focus-visible) .programme-title{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.home-program .programme-date{grid-column:3;grid-row:1;font:400 18px/1.3 var(--sans);font-variant-numeric:tabular-nums;white-space:nowrap}
.home-program .programme-panel{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows var(--programme-speed) var(--programme-ease),visibility 0s linear var(--programme-speed)}
.home-program .is-open>.programme-panel{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows var(--programme-speed) var(--programme-ease),visibility 0s}
.home-program .programme-panel-inner{min-height:0;overflow:hidden}
.home-program .programme-body{display:grid;grid-template-columns:var(--programme-icon) minmax(0,1fr);gap:0 var(--programme-gap);align-items:start;padding:0 0 32px}
.home-program .programme-body>*{grid-column:2;min-width:0}
.home-program .programme-subtitle{margin:0 0 24px;font:400 25px/1.25 var(--serif)}
.home-program .programme-visit>p{margin:0 0 12px;font:400 18px/1.45 var(--sans);overflow-wrap:anywhere}
.home-program .programme-cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;max-width:100%;margin:8px 0 0;padding:12px 20px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font:400 16px/1.25 var(--sans);text-align:center;text-decoration:none}
.home-program .programme-cta:hover{background:var(--ink-2);border-color:var(--ink-2);color:var(--paper);text-decoration:none}
.home-program .programme-cta:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
@media(min-width:1024px){
 .home-program .programme-toggle{grid-template-columns:var(--programme-icon) minmax(0,1fr) minmax(280px,.55fr)}
 .home-program .programme-body{grid-template-columns:var(--programme-icon) minmax(0,1fr) minmax(280px,.55fr)}
 .home-program .programme-body>.programme-subtitle{grid-column:2;grid-row:1}
 .home-program .programme-body>.programme-visit{grid-column:3;grid-row:1}
}
@media(prefers-reduced-motion:reduce){
 .home-program :is(.programme-kind,.programme-title,.programme-panel),.home-program .is-open>.programme-panel{transition:none}
}
@media(max-width:767px){
 .home-program{--programme-icon:68px;--programme-gap:20px}
 .home-program>.section-heading{gap:12px;padding-bottom:18px;align-items:center}
 #main .home-program>.section-heading h2{font-size:34px;line-height:1}
 .home-program>.section-heading>a{font-size:14px}
 .home-program .programme-toggle{grid-template-columns:var(--programme-icon) minmax(0,1fr);min-height:104px;padding:18px 0}
 .home-program .programme-icon{grid-row:1/3}
 .home-program .programme-date{grid-column:2;grid-row:2;margin-top:6px;font-size:16px}
 .home-program .programme-kind>span{font-size:12px;letter-spacing:.065em}
 .home-program .programme-title{font-size:24px}
 .home-program .is-open .programme-title{font-size:30px}
 .home-program .programme-body{padding-bottom:28px}
 .home-program .programme-subtitle{font-size:21px;line-height:1.3;margin-bottom:20px}
 .home-program .programme-visit>p{font-size:16px;line-height:1.45}
 .home-program .programme-cta{padding:11px 16px;margin-top:4px}
}
@media(max-width:359px){
 .home-program{--programme-icon:52px;--programme-gap:16px}
 #main .home-program>.section-heading h2{font-size:30px}
 .home-program>.section-heading>a{font-size:13px}
 .home-program .programme-toggle{min-height:92px}
 .home-program .programme-kind>span{font-size:11px;letter-spacing:.04em}
 .home-program .programme-title{font-size:21px}
 .home-program .is-open .programme-title{font-size:28px}
 .home-program .programme-body>*{grid-column:1/-1}
 .home-program .programme-subtitle{font-size:20px}
 .home-program .programme-visit>p{font-size:15px}
}
/* END HOME PROGRAMME REFERENCE */

/* BEGIN HOMEPAGE PREFOOTER REFERENCE */
/* Existing footer plane, homepage only. Official campaign colours and fonts. */
.fo-plane--reference{
 --fo-stamp:80px;
 --fo-title:28px;
 --fo-link-gap:20px;
 justify-content:flex-start;
 min-height:0;
 padding-block:48px 32px;
}
.fo-plane--reference .fo-days{
 font:500 clamp(192px,16vw,256px)/.86 var(--condensed);
 font-variant-numeric:tabular-nums;
 letter-spacing:-.01em;
}
.fo-plane--reference .fo-month{
 margin-top:16px;
 font:400 32px/1.2 var(--sans);
 letter-spacing:0;
}
.fo-plane--reference .fo-symbols{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:0;
 margin-top:32px;
}
#footer .fo-plane--reference .fo-symbols a{
 display:grid;
 grid-template-columns:var(--fo-stamp) minmax(0,1fr);
 align-items:center;
 column-gap:var(--fo-link-gap);
 min-width:0;
 min-height:80px;
 padding:16px 8px;
 border:0;
 font:400 var(--fo-title)/1.15 var(--sans);
 letter-spacing:-.025em;
}
#footer .fo-plane--reference .fo-symbols a:nth-child(even){
 border-left:1px solid currentColor;
 padding-left:24px;
}
#footer .fo-plane--reference .fo-symbols a:nth-child(n+3){border-top:1px solid currentColor}
.fo-plane--reference .fo-symbols img{
 box-sizing:border-box;
 width:var(--fo-stamp);
 height:var(--fo-stamp);
 padding:calc(var(--fo-stamp)*.13333);
 background:var(--paper);
}
.fo-plane--reference .fo-selection-title{
 min-width:0;
 overflow-wrap:normal;
 word-break:normal;
}
#footer .fo-plane--reference .fo-symbols a:focus-visible{outline:2px solid var(--ink);outline-offset:-4px}
@media(max-width:1023px){
 .fo-plane--reference{
  --fo-stamp:clamp(48px,15.3vw,72px);
  --fo-title:clamp(15px,4.6vw,24px);
  --fo-link-gap:clamp(10px,3.56vw,14px);
  padding:28px max(22px,var(--pad)) 28px;
 }
 .fo-plane--reference .fo-days{font-size:clamp(96px,32vw,200px)}
 .fo-plane--reference .fo-month{margin-top:8px;margin-left:4px;font-size:clamp(20px,6vw,28px);line-height:1.15}
 .fo-plane--reference .fo-symbols{margin-top:20px}
 #footer .fo-plane--reference .fo-symbols a{padding:10px 4px}
 #footer .fo-plane--reference .fo-symbols a:nth-child(even){padding-left:12px}
}
@media(max-width:359px){.fo-plane--reference{padding-inline:max(18px,var(--pad))}}
/* END HOMEPAGE PREFOOTER REFERENCE */

/* BEGIN ORIGINI LIGHTNESS */
/* Origini 2022: retain the original stone lightness between the live text bands. */
.editions .edition[data-year="2022"][data-open]::after{
 background:linear-gradient(180deg,
  rgb(0 0 0 / .20) 0%,
  rgb(0 0 0 / .10) 18%,
  transparent 32%,
  transparent 62%,
  rgb(0 0 0 / .14) 82%,
  rgb(0 0 0 / .26) 100%);
}
.editions .edition[data-year="2022"][data-open] :is(.edition-year,.edition-summary,.edition-toggle,.edition-theme,.edition-date,.edition-info>a){
 text-shadow:0 1px 3px rgb(0 0 0 / .65);
}
/* Keep the complete lettering inside the photographic crop on narrow phones. */
@media(max-width:639px){.edition-art-2022{height:clamp(52px,calc(70vw - 180px),125px)}}
/* END ORIGINI LIGHTNESS */

/* Stronger hero date with the authentic semibold face. */
@font-face{font-family:'Barlow Condensed';src:url('/assets/BarlowCondensed-SemiBold.woff2') format('woff2'),url('/assets/BarlowCondensed-SemiBold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
.hero-date-days{font-weight:600}

/* Keep the outgoing document opaque until the incoming layout is ready.
   Incoming snapshots stay opaque; only the old image fades, avoiding a white dip. */
@keyframes vdw-document-out{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:no-preference){
 ::view-transition-group(root){animation:none}
 ::view-transition-old(root){display:block;z-index:1;mix-blend-mode:normal;animation:vdw-document-out 180ms ease-out both}
 ::view-transition-new(root){z-index:0;animation:none;mix-blend-mode:normal}
 ::view-transition-old(masthead-ink){display:block;z-index:1;mix-blend-mode:normal;animation:vdw-document-out 180ms ease-out both}
 ::view-transition-new(masthead-ink){z-index:0;animation:none;mix-blend-mode:normal}
}

/* BEGIN HOME PROJECTS GALLERY */
/* Editorial two-by-two gallery in site black on the site white. Text only: no glyphs or arrows.
   Equal columns and one 4:3 photo field per card keep every row's images and captions aligned;
   per-photo focal points keep each complete product inside the field. Spacing above the section
   stays with the hero boundary rule (.hero-index+.project-selection). */
.project-selection{--ink:#141414;--ink-2:#141414;color:var(--ink)}
.project-selection>.section-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;margin:0 0 clamp(28px,3vw,40px);padding:0 0 clamp(14px,1.4vw,20px);border-bottom:1px solid var(--ink)}
#main .project-selection>.section-heading h2{margin:0;font-size:clamp(44px,5vw,76px);line-height:.92;color:var(--ink)}
.project-selection>.section-heading>a{display:inline-flex;align-items:center;min-height:44px;margin-left:auto;font:400 17px/1.4 var(--sans);color:var(--ink);text-decoration:none}
.project-selection>.section-heading>a:is(:hover,:focus-visible){text-decoration:underline 1px currentColor;text-underline-offset:5px}
.project-selection>.section-heading>a:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.project-selection .project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(48px,5vw,72px) clamp(24px,3vw,48px);align-items:stretch}
.project-selection .project-grid>article{display:flex;min-width:0;margin:0;padding:0}
.project-selection .project-card{display:flex;flex-direction:column;flex:1;min-width:0;padding-bottom:clamp(18px,1.6vw,24px);border-bottom:1px solid var(--ink);color:var(--ink);text-decoration:none}
.project-selection .project-card:focus-visible{outline:2px solid var(--ink);outline-offset:6px}
.project-selection .project-image{aspect-ratio:4/3;margin:0 0 clamp(16px,1.5vw,22px);overflow:hidden;background:transparent}
.project-selection .project-image img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 50%;transform:none;transition:none}
.project-selection .project-image:hover img{transform:none}
/* Lotus: the two lamps and their brass arms stay whole; only table and wall edges are trimmed. */
.project-selection [data-project="triptych-kyoto"] img{object-position:17% 50%}
/* INTERIM: the full sculpture stays inside the field on its own grey ground. */
.project-selection [data-project="amanda-moutran"] img{object-position:50% 45%}
/* The Whale Collection: trims sky and foreground water, never the armchair. */
.project-selection [data-project="snoc"] img{object-position:50% 60%}
#main .project-selection .eyebrow{margin:0 0 10px;font:500 13px/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
#main .project-selection .project-card h3{margin:0 0 12px;font:500 clamp(28px,3vw,44px)/1.02 var(--condensed);letter-spacing:0;color:var(--ink);overflow-wrap:break-word;text-decoration-line:underline;text-decoration-thickness:1px;text-decoration-color:transparent;text-underline-offset:6px;transition:text-decoration-color 160ms ease}
#main .project-selection .project-card:is(:hover,:focus-visible) h3{text-decoration-color:currentColor}
.project-selection .project-card>p:last-child{margin:0;font:400 clamp(17px,1.35vw,20px)/1.4 var(--serif);color:var(--ink)}
@media(max-width:639px){
 .project-selection .project-grid{grid-template-columns:minmax(0,1fr);row-gap:40px}
 #main .project-selection .project-card h3{font-size:30px}
}
@media(prefers-reduced-motion:reduce){#main .project-selection .project-card h3{transition:none}}
/* END HOME PROJECTS GALLERY */

/* Copy pass 2026-10-22: the dialog intro line was removed; keep the header/fields gap it provided. */
.programme-filter-dialog header{margin-bottom:24px}

/* Editorial layouts: append after style.css. Existing edition colour tokens remain authoritative. */
.editorial-figure{margin:0;min-width:0}
.editorial-figure img{display:block;width:100%;height:auto;object-fit:contain}
.editorial-figure figcaption{margin:12px 0 0;font:400 13px/1.5 var(--sans);max-width:66ch}
.participation-layout.editorial-participation{display:block;margin-block:48px 64px}
.editorial-participation>.eyebrow{margin-bottom:24px}
.editorial-participation>div>section{display:grid;grid-template-columns:5fr 6fr;gap:40px;padding-block:32px;align-items:center}
.editorial-participation .editorial-option-copy h2{margin:0 0 16px;font:500 clamp(32px,3.2vw,48px)/1.05 var(--condensed);word-break:normal;overflow-wrap:normal}
.editorial-participation .editorial-option-copy p{max-width:42ch;font:400 19px/1.5 var(--serif)}
.editorial-participation-archive{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 40px;max-width:960px;margin:64px 0}
.editorial-participation-archive>h2{grid-column:1/-1;font:500 32px/1.1 var(--condensed)}
.editorial-participation-archive .editorial-figure{max-width:420px}
.editorial-press{display:grid;grid-template-columns:7fr 5fr;gap:48px;align-items:start;margin:40px 0 80px}
.editorial-press>.service-layout{display:block;margin:0}
.editorial-press>.service-layout>section{padding-block:20px 28px}
.editorial-press>.service-layout>section:first-child{padding-top:0;border-top:0}
.editorial-festival{display:grid;grid-template-columns:7fr 5fr;gap:48px;align-items:start;margin:40px 0 64px}
.editorial-festival>.festival-documentary{margin:0}
.editorial-festival>.about-grid{display:block;margin:0;padding:0}
.editorial-festival .about-grid>.eyebrow{margin-bottom:24px}
.editorial-festival .about-grid .body-large{font-size:clamp(22px,2vw,28px);max-width:36ch}
.participate-strip.editorial-participate-strip{display:grid;grid-template-columns:6fr 5fr;gap:64px;align-items:center;padding-block:64px}
.editorial-participate-strip>.editorial-participate-copy{min-width:0}
.editorial-participate-copy>.eyebrow{margin-bottom:20px}
.editorial-participate-copy>h2{margin:0 0 24px}
.editorial-participate-copy>.participate-options{margin:0 0 24px;font:400 19px/1.6 var(--serif)}
.editorial-participate-copy>.button{justify-self:start}
.archive-feature>.editorial-archive-spread{grid-column:1/-1;grid-row:3;display:grid;grid-template-columns:7fr 5fr;gap:32px;align-items:end;min-width:0}
.editorial-archive-story>.archive-image{display:block;width:100%;max-width:none}
.editorial-archive-story>.archive-image figure{margin:0}
.editorial-archive-story>.archive-image img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
.editorial-archive-story>.archive-caption{display:block;margin-top:20px;padding:16px 0 0;border-top:1px solid var(--ink)}
.editorial-archive-story>.archive-caption h3{margin:0 0 12px}
.editorial-archive-story>.archive-caption p{margin:0}
.editorial-archive-edition{text-decoration:none;color:inherit;align-self:start}
.editorial-archive-edition figcaption{border-top:1px solid var(--ink);padding-top:16px;margin-top:20px}
/* Keep all posters whole, including after programme filters replace the list. */
.current-programme .journal-story .journal-image{aspect-ratio:auto;background:transparent;align-self:center}
.current-programme .journal-story .journal-image img{height:auto;max-height:none;object-fit:contain}
@media(min-width:1024px){
 .current-programme .journal-story.with-image .journal-image{grid-column:1/8;grid-row:1}
 .current-programme .journal-story.with-image .journal-copy{grid-column:8/13;grid-row:1}
 .current-programme .journal-story.with-image:nth-child(even) .journal-image{grid-column:6/13}
 .current-programme .journal-story.with-image:nth-child(even) .journal-copy{grid-column:1/6}
 .current-programme .journal-story.with-image:first-child .journal-image{grid-column:1/9}
 .current-programme .journal-story.with-image:first-child .journal-copy{grid-column:9/13}
}
/* A common quiet frame preserves covers, artwork and photographs without guessing content type. */
.design-blog-grid .blog-image{aspect-ratio:3/2;background:var(--paper-2)}
.design-blog-grid .blog-image img{width:100%;height:100%;max-height:none;object-fit:contain;object-position:center}
@media(min-width:1280px){.design-blog-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:56px 32px}}
@media(max-width:1023px){
 .editorial-press,.editorial-festival{grid-template-columns:minmax(0,1fr);gap:32px}
 .editorial-press>.service-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 32px}
 .editorial-festival>.about-grid{max-width:68ch}
 .participate-strip.editorial-participate-strip{gap:32px}
}
@media(max-width:767px){
 .editorial-participation>div>section{grid-template-columns:minmax(0,1fr);gap:24px;padding-block:24px 32px}
 .editorial-participation .editorial-option-copy h2{font-size:32px}
 .editorial-participation-archive{gap:24px 16px;margin:40px 0}
 .editorial-participation-archive>h2{font-size:28px}
 .editorial-press>.service-layout{grid-template-columns:minmax(0,1fr)}
 .editorial-press{margin:24px 0 48px}
 .editorial-festival{margin:24px 0 48px}
 .participate-strip.editorial-participate-strip{grid-template-columns:minmax(0,1fr);padding-block:40px;gap:28px}
 .editorial-participate-copy>.eyebrow{margin-bottom:16px}
 .archive-feature>.editorial-archive-spread{order:3;grid-template-columns:minmax(0,1fr);gap:40px}
 .editorial-archive-edition{width:100%}
 .design-blog-grid{grid-template-columns:minmax(0,1fr)}
}
.editorial-tempora .tempora-original-campaign{width:100%;max-width:none}
.editorial-tempora .tempora-index-full{margin-block:48px 72px}
@media(min-width:1024px){
 .editorial-tempora .tempora-index-full{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start}
 .editorial-tempora .tempora-index-full>a:first-of-type{grid-column:1/3;grid-row:2/4}
}
@media(max-width:767px){
 .editorial-tempora .tempora-original-campaign{width:100vw}
 .editorial-tempora .tempora-index-full{grid-template-columns:repeat(2,minmax(0,1fr));margin-block:32px 48px;gap:24px 16px}
 .editorial-tempora .tempora-index-full>a:first-of-type{grid-column:1/-1}
}

/* Original brand glyphs, icon-only, with generous targets and retained aria-labels. */
.social-section .vdw-social-links,
.vdw-social-links.footer-social-links{display:flex;flex-wrap:wrap;gap:8px;width:auto;align-items:center}
.vdw-social-links .vdw-social-link{display:inline-flex;justify-content:center;align-items:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:10px;gap:0;border-radius:50%;transition:background-color 160ms ease}
.vdw-social-links .vdw-social-link>span{display:none}
.vdw-social-links .vdw-social-link:hover{background:color-mix(in srgb,currentColor 9%,transparent)}
.vdw-social-links .vdw-social-link:focus-visible{outline:2px solid currentColor;outline-offset:3px}
/* Informational badges are spans, never controls; the definition-list labels remain visible. */
.detail-facts .editorial-meta-chip{display:inline-block;max-width:100%;vertical-align:top;padding:5px 11px;border-radius:18px;background:color-mix(in srgb,var(--ink) 6%,transparent);font:400 14px/1.5 var(--sans);overflow-wrap:break-word}
.detail-facts .editorial-meta-chip--date{background:color-mix(in srgb,var(--ink) 10%,transparent)}
.information-directory>section>h2{display:flex;align-items:center;gap:14px}
.information-directory .editorial-service-icon{display:block;flex:0 0 28px;width:28px;height:28px}
@media(prefers-reduced-motion:reduce){.vdw-social-links .vdw-social-link{transition:none}}

/* One edition identity in the selector; the documentary story occupies the next spread. */
.archive-feature>.editorial-archive-spread{grid-template-columns:minmax(0,1fr)}
.editorial-archive-story{display:grid;grid-template-columns:7fr 5fr;gap:40px;align-items:start}
.editorial-archive-story>.archive-caption{margin:0;padding:0;border:0}
@media(max-width:767px){.editorial-archive-story{grid-template-columns:minmax(0,1fr);gap:20px}}

/* Editorial wayfinding: one quiet rule, native disclosure, real section titles. */
.wayfinding-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:0 12px;list-style:none;margin:0;padding:0;font:400 13px/1.4 var(--sans);color:var(--ink-2)}
.wayfinding-breadcrumb li{min-width:0;max-width:100%;overflow-wrap:anywhere}
.wayfinding-breadcrumb li+li::before{content:'/';margin-right:12px;color:var(--ink-2)}
.wayfinding-breadcrumb a{display:inline-flex;align-items:center;min-height:44px}
.wayfinding{position:relative;z-index:8;min-width:0;max-width:100%;margin:0 0 40px;border-block:1px solid var(--rule-subtle,var(--ink));background:var(--paper);color:var(--ink);font:400 14px/1.35 var(--sans)}
.wayfinding summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 20px;align-items:center;gap:20px;min-height:52px;padding:10px 0;list-style:none;cursor:pointer;box-sizing:border-box}
.wayfinding summary::-webkit-details-marker{display:none}
.wayfinding-context,.wayfinding-current{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wayfinding-context{font-weight:500}
.wayfinding-current{color:var(--ink-2);text-align:right}
.wayfinding-icon{font:400 23px/1 var(--sans);text-align:center}
.wayfinding .wayfinding-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;max-height:360px;max-height:min(45svh,360px);overflow-y:auto;list-style:none;margin:0;padding:0 0 12px;scroll-padding:8px}
.wayfinding-links li{min-width:0;margin:0;border-top:1px solid var(--rule-subtle,var(--ink))}
.wayfinding .wayfinding-links a{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 4px;text-decoration:none;overflow-wrap:anywhere;font:400 15px/1.35 var(--sans);box-sizing:border-box}
.wayfinding-links a>span:first-child{flex:none;color:var(--ink-2);font-size:12px;font-variant-numeric:tabular-nums}
.wayfinding-links a>span:last-child{min-width:0}
.wayfinding-links a[aria-current="location"]>span:last-child{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;font-weight:500}
.wayfinding a:hover{color:var(--ink-2)}
.wayfinding :is(a,summary):focus-visible,.wayfinding-breadcrumb a:focus-visible{outline:2px solid currentColor;outline-offset:-2px}
html.has-wayfinding{scroll-padding-top:calc(var(--wayfinding-header,0px) + var(--wayfinding-height,0px) + 16px)}
#main .wayfinding-target{scroll-margin-top:8px}
#main .wayfinding-target:focus-visible{outline:2px solid currentColor;outline-offset:8px}
@media(max-width:767px){
 .wayfinding{margin-bottom:28px}
 .wayfinding.wayfinding-sticky{position:sticky;top:var(--wayfinding-top,0px)}
 .wayfinding summary{grid-template-columns:minmax(0,1fr) 20px;gap:0 12px;min-height:52px;padding-block:7px}
 .wayfinding-context{font-size:11px;line-height:1.3;color:var(--ink-2)}
 .wayfinding-current{grid-column:1;font-size:14px;line-height:1.4;text-align:left;color:var(--ink)}
 .wayfinding-icon{grid-column:2;grid-row:1/3}
 .wayfinding .wayfinding-links{grid-template-columns:minmax(0,1fr);gap:0;max-height:min(42svh,320px)}
}
@media(prefers-reduced-motion:reduce){html.has-wayfinding{scroll-behavior:auto}}
@media print{.wayfinding,.wayfinding-breadcrumb{display:none}}

/* Chapter anchoring is bounded by its own story, never a second mobile toolbar. */
@media(min-width:1024px) and (min-height:720px){
 .photographic-story .story-section>h2{align-self:start}
 .photographic-story .story-section>.editorial-chapter-pinned{position:sticky;top:var(--chapter-top,112px);align-self:start}
}
/* A restrained depth shift for documentary photography only. The whole figure
   moves, so captions remain attached and original image framing stays intact. */
@keyframes vdw-photo-drift{from{transform:translateY(12px)}to{transform:translateY(-12px)}}
@supports(animation-timeline:view()){
 @media(min-width:1024px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .editorial-festival>.festival-documentary,
  .editorial-participate-strip>.editorial-figure,
  .photographic-story>.detail-lead{
   animation:vdw-photo-drift linear both;
   animation-timeline:view();
   animation-range:entry 0% exit 100%;
  }
 }
}
@media print{.editorial-chapter-pinned{position:static!important}}
/* One structural rule per transition: the heading already separates these blocks. */
#main .detail-grid>.detail-facts{border-top:0;padding-top:0}
/* Heading variants have different bottom spacing; never pull navigation over copy. */
.page-heading+.wayfinding{border-top:0;margin-top:0}
.edition-detail[data-edition="2025"]>.page-heading+.mobile-page-contents{border-top:0}
/* Full-width section labels belong to normal flow; they must not float over imagery. */
#main .sticky-layout-disabled{position:static;top:auto}
@media(max-width:1023px){
 #main .participation-layout>.eyebrow,
 #main .detail-grid>.detail-facts,
 #main .city-guide--sestieri .guide-sestiere>h2{position:static;top:auto}
}

/* Reading cues have one purpose each: numbered chapters, measured copy, real questions. */
.reading-chip{display:inline-flex;align-items:center;min-height:26px;padding:3px 10px;border-radius:20px;background:var(--paper-2);font:400 12px/1.4 var(--sans);font-variant-numeric:tabular-nums;color:var(--ink-2)}
.reading-tools{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}
.reading-tools button{min-height:44px;padding:8px 0;border:0;background:none;color:inherit;font:400 14px/1.4 var(--sans);cursor:pointer}
.faq-list .reading-question{border-top:1px solid var(--rule-subtle,var(--ink));padding:0}
.faq-list .reading-question summary{display:flex;justify-content:space-between;align-items:baseline;gap:24px;min-height:64px;padding:20px 0;cursor:pointer;list-style:none}
.reading-question summary::-webkit-details-marker{display:none}
.reading-question summary::after{content:'+';flex:none;font:400 24px/1 var(--sans)}
.reading-question[open] summary::after{content:'−'}
.faq-list .reading-question h2{margin:0;font:500 clamp(23px,2.4vw,30px)/1.2 var(--condensed)}
.faq-list .reading-question p{max-width:62ch;margin:0 0 28px;font:400 19px/1.65 var(--serif)}
.reading-tools button:focus-visible,.reading-question summary:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.imported-content.reading-prose{--reading-width:64ch;container-type:inline-size}
.reading-prose .reading-chapter{margin:56px 0;display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
.reading-chapter-heading{min-width:0}
.reading-prose .reading-chapter-heading h2{font-size:clamp(27px,2.7vw,36px);margin:16px 0 0;max-width:24ch}
.reading-chapter-body{min-width:0}
.reading-prose .reading-chapter-body>:is(p,ul,ol,blockquote,h3,h4,table){max-width:64ch;margin-left:0;margin-right:auto}
.reading-chapter-body>:first-child{margin-top:0}
.reading-prose p{line-height:1.7}
.reading-prose :is(ul,ol){padding-left:1.2em}
.reading-prose li+li{margin-top:12px}
.reading-prose a{overflow-wrap:anywhere}
@media(max-width:1023px){.reading-prose .reading-chapter{grid-template-columns:minmax(0,1fr);gap:24px;margin:40px 0}.reading-prose .reading-chapter-heading h2{max-width:36ch}.reading-chip{font-size:12px}.faq-list .reading-question p{font-size:18px}}
@media print{.reading-tools{display:none}.reading-question::details-content{display:block;content-visibility:visible}}

@container(min-width:850px){.reading-prose .reading-chapter{grid-template-columns:minmax(0,3fr) minmax(0,8fr);gap:48px}}

@media(min-width:1024px){.page-heading h1{grid-column:1/-1;max-width:none}.page-heading h1 .mobile-title-break{display:none}}

/* Scoped to genuine migrated DesignBlog articles; existing artwork is never cropped. */
.editorial-blog-article>.page-heading{display:block;max-width:none;padding-bottom:32px;margin-bottom:32px}
#main .editorial-blog-article>.page-heading h1{max-width:22ch;font:500 clamp(48px,6.2vw,88px)/1.02 var(--condensed);letter-spacing:-.015em;overflow-wrap:normal;text-wrap:balance}
.editorial-blog-article>.page-heading>.eyebrow{margin-bottom:20px}
.editorial-blog-article .blog-article-opening{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:start;margin:0 0 56px}
.editorial-blog-article .blog-article-opening--portrait{grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:64px}
.editorial-blog-article .blog-article-lead{margin:0;min-width:0;width:100%}
.editorial-blog-article .blog-article-lead img{display:block;width:100%;max-width:100%;height:auto;object-fit:contain;margin:0}
.editorial-blog-article .blog-article-opening--portrait .blog-article-lead{max-width:420px;justify-self:center}
.editorial-blog-article .blog-article-lead figcaption{margin:12px 0 0;font:400 13px/1.5 var(--sans);color:var(--ink-2)}
.editorial-blog-article .blog-article-intro{font:400 20px/1.65 var(--serif);max-width:60ch;min-width:0}
.editorial-blog-article .blog-article-intro>p{margin:0 0 1.2em}
.editorial-blog-article .blog-article-intro>p:last-child{margin-bottom:0}
.editorial-blog-article .blog-article-intro>p:first-child:has(>strong:only-child){font:500 clamp(25px,2.4vw,34px)/1.2 var(--condensed);margin-bottom:24px}
.editorial-blog-article .blog-article-opening--image-only{display:block;max-width:960px;margin-inline:auto}
.editorial-blog-article>.imported-reading{display:block;width:100%;max-width:none;margin:0}
.editorial-blog-article .imported-content{--reading-width:740px;width:100%;max-width:none;margin:0;font-size:19px;line-height:1.7}
.editorial-blog-article .imported-content>:is(p,ul,ol,blockquote,h2,h3,h4,hr,table){max-width:740px;margin-inline:auto}
.editorial-blog-article .imported-content .blog-article-bibliography{padding:24px 28px;margin-block:32px 40px;background:var(--paper-2);font:400 15px/1.8 var(--sans)}
.editorial-blog-article .imported-content>.reading-chapter{max-width:1040px;margin-inline:auto}
.editorial-blog-article .imported-content>img{max-width:min(100%,960px);height:auto;object-fit:contain}
@media(max-width:1023px){
 .editorial-blog-article .blog-article-opening,.editorial-blog-article .blog-article-opening--portrait{gap:32px}
 .editorial-blog-article .blog-article-intro{font-size:18px}
}
@media(max-width:767px){
 .editorial-blog-article>.page-heading{padding-bottom:24px;margin-bottom:24px}
 #main .editorial-blog-article>.page-heading h1{font-size:clamp(42px,11vw,64px);max-width:24ch}
 .editorial-blog-article .blog-article-opening,.editorial-blog-article .blog-article-opening--portrait{grid-template-columns:minmax(0,1fr);gap:28px;margin-bottom:32px}
 .editorial-blog-article .blog-article-opening--portrait .blog-article-lead{max-width:360px}
 .editorial-blog-article .blog-article-intro{max-width:none;font-size:19px}
 .editorial-blog-article .imported-content{font-size:18px}
 .editorial-blog-article .imported-content .blog-article-bibliography{padding:20px;margin-block:24px 32px}
}

/* Context links retain their width and baseline across sibling pages. */
@media(min-width:1024px){
 .running-head{flex-wrap:nowrap;min-height:52px;overflow-x:auto;align-items:stretch}
 .running-head>a,.running-head>a[aria-current]{flex:none;font-weight:400;white-space:nowrap;min-height:52px}
}
/* The mobile disclosure overlays its choices rather than pushing the article. */
@media(max-width:1023px){
 .running-head{position:relative;z-index:20}
 .mobile-context-nav>ul{position:absolute;top:100%;left:0;right:0;margin:0;padding:8px var(--pad) 16px;background:var(--paper-2);border-bottom:1px solid var(--ink);max-height:60vh;overflow-y:auto;box-shadow:0 12px 18px #0000000a}
}
.imported-event>.page-heading{max-width:none}
.imported-event-layout{grid-template-columns:minmax(220px,3fr) minmax(0,7fr);gap:clamp(32px,5vw,80px)}
.imported-event-facts{display:flex;flex-wrap:wrap;align-items:flex-start;gap:16px}
.imported-event-facts>dl,.imported-event-facts>.event-date-note{flex-basis:100%;margin:0}
.imported-event-facts dt{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2)}
.imported-event-facts>.event-directions{display:inline-flex;align-items:center;min-height:44px;margin:0}
.imported-event-facts>.button{margin:0;min-height:44px}
.imported-event-layout>.imported-content>:is(p,h2,h3,ul,ol,blockquote){margin-inline:0;max-width:65ch}
.imported-event-layout>.imported-content>:is(figure,p):has(img){margin-bottom:32px;max-width:100%}
.imported-event-layout>.imported-content img{height:auto;max-height:640px;object-fit:contain;object-position:left center}
.home-resources{gap:clamp(24px,4vw,64px);padding-block:40px 56px}
.home-resources>div{position:relative;padding:24px 0 0 64px;min-height:150px}
.home-resources>div::before{content:'';position:absolute;left:0;top:28px;width:36px;height:36px;background:var(--ink);mask:var(--resource-icon) center/contain no-repeat}
.home-resources>div:nth-child(1){--resource-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M3 5h10l3 3 3-3h10v22H19l-3 2-3-2H3zM16 8v21' fill='none' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E")}
.home-resources>div:nth-child(2){--resource-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M3 6h26v20H3zM3 6l13 12L29 6' fill='none' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E")}
.home-resources>div:nth-child(3){--resource-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M5 3h22v26H5zM10 9h12M10 15h12M10 21h8' fill='none' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E")}
.home-resources h2{font-size:32px;margin-bottom:16px}
.home-resources h2 a{display:inline-flex;min-height:44px;align-items:center}
.home-resources p{max-width:27ch}
@media(max-width:767px){
 .imported-event-layout{grid-template-columns:minmax(0,1fr);gap:32px}
 .imported-event-facts dl{gap:12px 20px}
 .home-resources{grid-template-columns:1fr;gap:20px}
 .home-resources>div{min-height:0;padding-block:12px}
 .home-resources>div::before{top:18px}
}
/* A deliberate underline focus replaces the browser's large rectangular ring. */
#main input:is([type="search"],[type="text"]),#main select{border-radius:0}
#main input:is([type="search"],[type="text"]):focus{
 outline:none;border-bottom-color:var(--campaign-reading-blue);box-shadow:0 2px 0 var(--campaign-reading-blue);background:color-mix(in srgb,var(--campaign-reading-blue) 4%,transparent)
}
#main select:focus-visible{outline:2px solid var(--campaign-reading-blue);outline-offset:3px}
#main input:is([type="search"],[type="text"]){transition:border-color .15s,box-shadow .15s,background-color .15s}
@media(forced-colors:active){#main input:is([type="search"],[type="text"]):focus{outline:2px solid Highlight;outline-offset:2px}}
@media(prefers-reduced-motion:reduce){#main input:is([type="search"],[type="text"]){transition:none}}
/* Venue photographs identify the actual destination, beside practical information. */
.venue-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;padding-block:32px}
.venue-row .venue-info .index{display:block;font:400 12px/1.4 var(--sans);margin-bottom:12px;color:var(--ink-2)}
.venue-row--photographic{grid-template-columns:minmax(0,4fr) minmax(0,4fr) minmax(0,4fr)}
.venue-photo{margin:0;min-width:0}
.venue-photo img{display:block;width:100%;height:auto;max-height:320px;object-fit:contain;object-position:left top}
.venue-photo figcaption{font:400 12px/1.5 var(--sans);color:var(--ink-2);margin-top:10px;overflow-wrap:anywhere}
.venue-row>.venue-events{margin:0;padding:0;list-style:none;min-width:0}
.venue-row .venue-events li+li{margin-top:18px}
.venue-row .venue-events a{margin-top:0}
@media(max-width:1023px){
 .venue-row--photographic{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .venue-row--photographic>.venue-events{grid-column:2}
 .venue-row--photographic>.venue-photo{grid-row:1/span 2}
}
@media(max-width:767px){
 .venue-row,.venue-row--photographic{grid-template-columns:minmax(0,1fr);gap:20px}
 .venue-row>.venue-info,.venue-row>.venue-events,.venue-row>.venue-photo{grid-column:1;grid-row:auto}
 .venue-photo img{max-height:none}
}

/* Mobile programme: one compact entry point, visible removable selections. */
.programme-filter-tools{display:none}
.programme-filter-dialog{width:min(100%,560px);max-width:100%;max-height:90dvh;margin:auto auto 0;padding:24px 20px max(20px,env(safe-area-inset-bottom));border:0;border-radius:20px 20px 0 0;background:var(--paper,#f6f4ee);color:var(--ink);overflow:auto;overscroll-behavior:contain}
.programme-filter-dialog::backdrop{background:rgb(0 0 0 / .32)}
.programme-filter-dialog header{display:flex;align-items:center;justify-content:space-between;gap:16px}
.programme-filter-dialog h2{margin:0;font:500 32px/1.2 var(--condensed)}
.programme-filter-dialog header button{width:44px;height:44px;border:0;background:transparent;font-size:30px;color:inherit}
.programme-filter-dialog>p{margin:8px 0 24px;color:var(--ink-2)}
.programme-filter-dialog #filters{display:grid;grid-template-columns:1fr;gap:22px;padding:0;border:0;margin:0}
.programme-filter-dialog #filters label{display:grid;gap:8px;font:400 14px/1.4 var(--sans)}
.programme-filter-dialog #filters select{width:100%;min-height:48px;font-size:16px;background:transparent;color:inherit;border:0;border-bottom:1px solid var(--ink-2);border-radius:0;padding:8px 28px 8px 0}
.programme-filter-dialog #filters .reset{justify-self:start;min-height:44px}
.programme-filter-dialog footer{position:sticky;bottom:-20px;background:var(--paper,#f6f4ee);padding:20px 0 4px}
.programme-filter-apply{width:100%;min-height:52px;background:#174f97;color:#fff2cd;border:0;padding:12px 20px;font:500 16px var(--sans)}
@media(max-width:767px){
 .current-programme .programme-filters{display:none}
 .programme-filter-tools{display:flex;align-items:flex-start;gap:12px;padding:16px 0;border-block:1px solid var(--ink)}
 .programme-filter-open{flex:none;min-height:44px;padding:8px 16px;border:1px solid currentColor;border-radius:24px;background:transparent;color:inherit;font:500 16px var(--sans)}
 .programme-active-filters{display:flex;gap:8px;overflow:auto;padding-bottom:4px;min-width:0;scrollbar-width:thin}
 .programme-active-filters button{flex:none;max-width:250px;min-height:44px;border:0;border-radius:24px;background:#e9e6db;padding:8px 14px;font:400 14px var(--sans);color:inherit}
 .programme-active-filters button span{margin-left:8px}
}
.venue-row .venue-info h2{font:500 28px/1.15 var(--condensed)}

.theme-manifesto .theme-manifesto-hero{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,80px);align-items:center;background:#fff2cd;color:var(--campaign-reading-blue);padding:clamp(28px,4vw,64px);margin:24px 0 56px}
.theme-manifesto-hero>img{width:100%;height:auto;display:block}
.theme-manifesto-hero>.page-heading{display:block;margin:0;padding:0;border:0;max-width:none}
#main .theme-manifesto-hero h1{font:500 clamp(42px,4.5vw,72px)/1.04 var(--condensed);max-width:15ch;margin:18px 0 24px;letter-spacing:-.02em}
#main .theme-manifesto-hero .theme-principles{font:400 clamp(21px,2vw,28px)/1.4 var(--serif);margin:0;text-wrap:balance;max-width:25ch}
.theme-principles :is(b,strong){font-weight:400}
.theme-manifesto>.imported-reading{display:block;max-width:none;width:100%;margin:0}
.theme-manifesto .imported-content{max-width:760px;width:100%;margin:0 auto;font:400 20px/1.7 var(--serif)}
.theme-manifesto .imported-content>p{max-width:none;margin:0 0 28px}
.theme-manifesto .theme-invitation{padding:28px 0;margin:40px 0;border-top:1px solid var(--ink)}
#main .theme-invitation h3{font:500 28px/1.3 var(--condensed);margin:0 0 20px}
.theme-invitation h3>a{display:inline-block;margin-top:16px;font:400 17px/1.5 var(--sans);text-underline-offset:4px}
.theme-invitation h3>a strong{font-weight:400}
.theme-manifesto .theme-selections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:40px 0 64px}
.theme-selections>p{margin:0}.theme-selections img{width:100%;height:auto;display:block}
@media(max-width:767px){
 .theme-manifesto .theme-manifesto-hero{grid-template-columns:minmax(0,1fr);padding:24px 20px;gap:28px;margin:16px 0 32px}
 #main .theme-manifesto-hero h1{font-size:42px;max-width:none;margin:12px 0 16px}
 #main .theme-manifesto-hero .theme-principles{font-size:22px;max-width:none;text-wrap:wrap}
 .theme-manifesto .imported-content{font-size:18px;line-height:1.65}
 .theme-manifesto .theme-selections{grid-template-columns:minmax(0,1fr);gap:16px}
}
.theme-manifesto .theme-manifesto-hero{color:#124d96}
#main .theme-manifesto-hero :is(h1,h2,h3,.eyebrow){color:inherit}
/* The narrative follows the same column edge as the hero title. */
.theme-manifesto>.imported-reading{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,80px);padding-inline:clamp(28px,4vw,64px);box-sizing:border-box;align-items:start}
.theme-manifesto .theme-method{margin:0;max-width:12ch;font:500 clamp(36px,4vw,60px)/1.1 var(--condensed);color:#124d96;text-wrap:balance;position:static}
.theme-manifesto .imported-content{margin:0;max-width:60ch;font-size:19px;line-height:1.65}
.theme-manifesto>.theme-invitation{margin:48px clamp(28px,4vw,64px) 32px;padding:32px 0;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,80px);align-items:start}
#main .theme-manifesto>.theme-invitation h3{max-width:28ch;margin:0}
.theme-manifesto>.theme-invitation>p{margin:0;font:400 17px/1.6 var(--sans)}
@media(max-width:1023px){
 .theme-manifesto>.imported-reading{grid-template-columns:minmax(0,1fr);gap:24px}
 .theme-manifesto .theme-method{max-width:22ch;font-size:36px}
 .theme-manifesto .imported-content{max-width:none}
 .theme-manifesto>.theme-invitation{grid-template-columns:minmax(0,1fr);gap:20px}
}
@media(max-width:767px){
 .theme-manifesto>.imported-reading{padding-inline:0}
 .theme-manifesto .imported-content{font-size:18px}
 .theme-manifesto>.theme-invitation{margin:28px 0;padding:24px 0}
}

/* Visible local navigation on mobile: one stable row, with native horizontal scrolling. */
@media(max-width:1023px){
 .running-head.context-link-strip{
  display:flex;flex-wrap:nowrap;align-items:stretch;gap:0 24px;
  min-height:50px;padding-inline:var(--pad);overflow-x:auto;overflow-y:hidden;
  white-space:nowrap;overscroll-behavior-x:contain;scroll-padding-inline:var(--pad);
  scrollbar-width:thin;scrollbar-color:var(--ink-2) transparent;
  overflow-anchor:none;-webkit-overflow-scrolling:touch;
 }
 .running-head.context-link-strip::-webkit-scrollbar{display:block;height:2px}
 .running-head.context-link-strip::-webkit-scrollbar-thumb{background:var(--ink-2)}
 .running-head.context-link-strip>a{
  display:inline-flex;flex:0 0 auto;align-items:center;gap:8px;
  min-height:48px;padding:12px 0;font:400 14px/1.3 var(--sans);
  white-space:nowrap;text-decoration:none;box-shadow:none;
 }
 .running-head.context-link-strip>a[aria-current="page"]{
  font-weight:400;box-shadow:inset 0 -2px var(--ink);
 }
 .running-head.context-link-strip>a:hover{box-shadow:inset 0 -1px var(--ink)}
 .running-head.context-link-strip>a[aria-current="page"]:hover{box-shadow:inset 0 -2px var(--ink)}
 .running-head.context-link-strip>a:focus-visible{outline:2px solid currentColor;outline-offset:-3px}
 .running-head.context-link-strip img{width:20px;height:20px}
}

/* 2026: one original campaign mark per visible state, composed as a poster. */
.editions .edition[data-year="2026"] {
  /* Hero colours in both expanded and collapsed states. */
  --edition-bg:var(--hero-blue);
  --edition-ink:var(--site-white);
  --ink:var(--edition-ink);
  --ink-2:var(--edition-ink);
  --blue:var(--edition-ink);
}
.editions .edition[data-year="2026"][data-open] {
  background:linear-gradient(to bottom,transparent 62%,var(--hero-blue)),url('/assets/hero-venezia-mappa-background-v2.webp') center/cover no-repeat var(--edition-bg);
}
.editions .edition[data-year="2026"] .edition-art-100 {
  height:auto;
  min-height:0;
  flex:1 1 auto;
  padding:20px 28px 8px;
  justify-content:flex-start;
}
.editions .edition[data-year="2026"] .edition-art-100 img {
  visibility:visible;
  display:block;
  width:100%;
  height:100%;
  min-height:0;
  object-fit:contain;
  object-position:left center;
}
.editions .edition[data-year="2026"] .edition-info {
  flex:0 0 auto;
  min-height:80px;
  padding:16px 28px 22px;
  gap:4px 20px;
  align-content:end;
}
.editions .edition[data-year="2026"] .edition-theme {
  font:500 .875rem/1.3 var(--sans);
}
.editions .edition[data-year="2026"] .edition-info>a {
  color:var(--edition-ink);
}
.edition-summary-mark {display:block;width:70px;height:40px;object-fit:contain}

/* Quiet editorial motion: the artwork and hairline controls remain the focus. */
.editions {
  --edition-ease:cubic-bezier(.22,.61,.36,1);
}
.editions .editions-list {
  transition:grid-template-columns 560ms var(--edition-ease);
}
.editions .edition .edition-toggle {
  position:relative;
  flex:none;
  font-size:0;
  transition:transform 240ms var(--edition-ease);
}
.editions .edition-toggle::before,
.editions .edition-toggle::after {
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:14px;
  height:1.5px;
  background:currentColor;
  transform:translate(-50%,-50%);
}
.editions .edition-toggle::after {
  transform:translate(-50%,-50%) rotate(90deg);
  transition:transform 300ms var(--edition-ease),opacity 240ms ease;
}
.editions .edition[data-open] .edition-toggle::after {
  transform:translate(-50%,-50%) rotate(0deg);
  opacity:0;
}
.editions .edition h3 button:focus-visible {
  outline:2px solid currentColor;
  outline-offset:-6px;
}
.editions .edition-spine {
  transition:transform 560ms var(--edition-ease);
}
.editions .edition-info>a {
  text-decoration:none;
  box-shadow:none;
}
.editions .edition-info>a:is(:hover,:focus-visible) {
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:5px;
  box-shadow:none;
}
@media(min-width:1024px) and (hover:hover) and (pointer:fine) {
  .editions .edition:not([data-open]):hover .edition-spine {
    transform:translateY(-5px);
  }
  .editions .edition h3 button:hover .edition-toggle {
    transform:none;
  }
}
@media(prefers-reduced-motion:reduce) {
  .editions .editions-list,
  .editions .edition-spine,
  .editions .edition-toggle,
  .editions .edition-toggle::after {
    transition:none;
  }
  .editions .edition:not([data-open]):hover .edition-spine,
  .editions .edition h3 button:hover .edition-toggle {
    transform:none;
  }
}
@media(max-width:1023px) {
  .editions .edition[data-year="2026"] .edition-summary {
    display:flex;
    align-items:center;
    justify-content:flex-start;
    flex:1;
  }
  .editions .edition[data-year="2026"] .edition-art-100 {
    flex:none;
    height:auto;
    padding:20px 20px 0;
  }
  .editions .edition[data-year="2026"] .edition-art-100 img {
    width:100%;
    height:auto;
    max-height:280px;
    object-position:left center;
  }
  .editions .edition[data-year="2026"] .edition-info {
    padding:20px;
    min-height:88px;
  }
}

/* Responsive composition: phones, tablets and landscape keep the desktop's breathing room.
   Appended last by compiler/build-spike.cjs, after edition-polish.css. Desktop (≥1024px)
   is unchanged apart from the hero action row and the reading measure noted below. */

/* ------------------------------------------------------------------ */
/* 1. Home hero between 700 and 1023px (tablet portrait, landscape phones) */
/* ------------------------------------------------------------------ */
/* The 80% desktop scale (style.css, "Match an 80% browser zoom") shrank tablet copy to
   12.8px. Here the two-column poster is set at its real size instead. */
@media (min-width:700px) and (max-width:1023px) {
 .hero{grid-template-columns:minmax(0,6fr) minmax(0,5fr);column-gap:clamp(28px,4.5vw,48px);align-items:center;padding-block:48px 56px}
 .hero-number-block,.hero-info{transform:none;align-self:center}
 .hero-number-block{justify-content:center}
 .hero-date{margin:0 0 24px;font-size:clamp(60px,8.6vw,84px)}
 .hero-date mark{gap:16px}
 .hero-date-month{font-size:clamp(22px,2.9vw,28px)}
 .hero-date-year{font-size:17px}
 .hero-description{margin:0 0 28px;max-width:34em;font-size:17px;line-height:1.5}
 .hero-actions{gap:12px 24px}
 .hero-actions>a,.hero-actions>a:not(.button){min-height:44px;font-size:16px}
 .hero-index>a{zoom:1}
 .hero-index a:nth-child(n){min-height:80px;padding-block:16px;font-size:17px;line-height:1.3}
}
/* Tablet portrait (iPad): like desktop, hero + measured category row + their lower gap fill
   the first screen below the measured masthead. min-height only: the poster grows with text. */
@media (min-width:700px) and (max-width:1023px) and (min-height:501px) {
 .hero{min-height:max(0px,calc(var(--hero-vh)*100 - var(--hero-header-height,var(--safe-header-h)) - var(--hero-index-height,162px) - max(0px,calc(var(--home-entry-gap) - var(--home-entry-pad)))))}
}
/* Landscape phones: the poster starts at the full height below the measured masthead
   (same large-viewport box and small-viewport layout as portrait, style.css "HERO FIRST SCREEN")
   and the mark is sized to that height, so it never runs below the fold. The copy may still grow
   and scroll. */
@media (min-width:700px) and (max-width:1023px) and (max-height:500px) {
 .hero{min-height:calc(var(--hero-screen-vh)*100 - var(--hero-header-height,var(--safe-header-h)) + 1px);padding-block:28px calc(32px + var(--hero-toolbar-tail))}
 .hero-art{width:min(100%,calc((var(--hero-vh)*100 - var(--hero-header-height,var(--safe-header-h)) - 60px)*1.76));height:auto;margin-inline:auto}
 .hero-date{margin-bottom:20px;font-size:clamp(56px,7.6vw,72px)}
 .hero-description{margin-bottom:24px}
}
/* Desktop keeps its 80% composition; the action row is compensated to a 16px reading size
   and a 44px target. */
@media (min-width:1024px) {
 .hero-actions>a,.hero-actions>a:not(.button){min-height:55px;font-size:20px}
 .hero-actions>.button{padding-inline:24px}
}

/* ------------------------------------------------------------------ */
/* 2. Touch targets on tablets and coarse pointers                      */
/* ------------------------------------------------------------------ */
/* The 44px rules in style.css stopped at 767px; tablets are touch devices too. */
@media (max-width:1023px), (pointer:coarse) {
 .breadcrumb a,
 .section-heading>a,
 .hero-actions>a,
 .archive-more>a,
 .visit-links a,
 .home-resources div>a,
 .contact-block>a:not(.button),
 .archive-directory a,
 .edition-filter-link a{display:inline-flex;align-items:center;min-height:44px;max-width:100%}
 /* Title links keep their line rhythm: inline padding widens only the hit area. */
 :is(.guide-place h3,.blog-copy h2,.journal-copy h2,.agenda-entry h4,.edition-event h3,.imported-directory-card h2) a{padding-block:8px}
}

/* The skip link meets the same target when it is revealed by keyboard focus. */
.skip{display:inline-flex;align-items:center;min-height:44px}

/* ------------------------------------------------------------------ */
/* 3. Reading measure                                                 */
/* ------------------------------------------------------------------ */
/* 64ch of Georgia is ~95 characters per line; 36em keeps prose near 75–80 at every width. */
.imported-content.reading-prose{--reading-width:min(64ch,36em)}
.reading-prose .reading-chapter-body>:is(p,ul,ol,blockquote,h3,h4,table){max-width:min(64ch,36em)}
/* Source fragments nest their prose in unclassed wrappers, which escaped the measure. */
.source-enrichment :is(section,div:not([class]))>:is(p,ul,ol,blockquote){max-width:var(--reading-width)}
.detail-body>p:not(.body-large){max-width:min(64ch,36em)}
.people-year p{max-width:38em}
.partner-context{max-width:40em}

/* ------------------------------------------------------------------ */
/* 4. Cards, indexes and captions                                       */
/* ------------------------------------------------------------------ */
/* Project and designer directory: the whole card is the link, as on the home gallery. */
.project-directory article>a{color:inherit;text-decoration:none}
#main .project-directory article>a h2{text-decoration:underline 1px transparent;text-underline-offset:5px;transition:text-decoration-color var(--motion-feedback,160ms) ease}
#main .project-directory article>a:is(:hover,:focus-visible) h2{text-decoration-color:currentColor}
.project-directory article>a>p{margin:0 0 6px;font:400 18px/1.4 var(--serif)}
.project-directory article>a>small{display:block;font:400 13px/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
@media (prefers-reduced-motion:reduce) {#main .project-directory article>a h2{transition:none}}

/* Design Index: works sit on the caption's left edge and baseline, whatever their ratio. */
.design-index-image{justify-content:flex-start;align-items:flex-end}

/* Social glyphs are optically aligned with the text column above them. */
.social-section .vdw-social-links,.vdw-social-links.footer-social-links{margin-inline-start:-10px}

/* Tablet home resources: three narrow columns read better with the icon above the title. */
@media (min-width:768px) and (max-width:1023px) {
 .home-resources>div{min-height:0;padding:60px 0 0}
 .home-resources>div::before{top:12px}
}

/* Filamenta stacks up to 1279px: its section menu spans the column like on other pages. */
@media (max-width:1279px) {.photographic-story>.wayfinding{align-self:stretch}}
/* From 1280px the story is a grid: the menu was auto-placed after the body, 83px wide. */
@media (min-width:1280px) {
 .photographic-story>.wayfinding{grid-column:1/5;grid-row:2;align-self:start;margin:0}
 .photographic-story>.detail-lead{grid-row:1/span 3}
 .photographic-story>.detail-facts{grid-row:3}
 .photographic-story>.detail-body{grid-row:4}
 .breadcrumb+.photographic-story{margin-top:24px}
}

/* City guide: the sestiere name needs air above its first photograph. */
@media (max-width:767px) {.city-guide--sestieri .guide-sestiere>h2{margin-bottom:20px}}

/* Home programme: the exhibition label stays legible on the narrowest phones. */
@media (max-width:359px) {.home-program .programme-kind>span{font-size:12px;letter-spacing:.05em}}

/* Preserve two roomy columns when they fit; enlarged text can use one column. */
@media (max-width:1023px) {
 .fo-index{grid-template-columns:repeat(auto-fit,minmax(min(100%,max(9em,40%)),1fr))}
 .fo-index a{min-width:0;overflow-wrap:anywhere}
}

/* Keep iOS from automatically magnifying small form controls on focus. */
@media(max-width:1023px){
 #main :is(input,select,textarea){font-size:max(16px,1em)}
}
