@font-face {
  font-family: "Geist";
  src: url("font/geist-latin-ext.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Geist";
  src: url("font/geist-latin.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Geist";
  src: url("font/geist-corsivo-latin-ext.woff2") format("woff2");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Geist";
  src: url("font/geist-corsivo-latin.woff2") format("woff2");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Geist Mono";
  src: url("font/geist-mono-latin-ext.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Geist Mono";
  src: url("font/geist-mono-latin.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
  --fondo: #0B0B0B;
  --inchiostro: oklch(97.5% 0.002 90);
  --testo-2: color-mix(in oklab, var(--inchiostro) 64%, var(--fondo));
  --bordo-campo: color-mix(in oklab, var(--inchiostro) 55%, var(--fondo));
  --filo: color-mix(in oklab, var(--inchiostro) 14%, var(--fondo));
  --grigio-bottone: color-mix(in oklab, var(--inchiostro) 80%, var(--fondo));
  --mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --margine: clamp(1rem, 4vw, 3rem);
  --lato: clamp(1.25rem, 4vw, 3.5rem);
  --h-testata: 84px;
  --h-freccia: 68px;
  --alto: 100vh;
  --raggio: 0px;
  --raggio-foto: clamp(12px, 0.5rem + 0.6vw, 18px);
  --ombra: 0 0 0 1px rgb(255 255 255 / 0.08), 0 14px 28px -14px rgb(0 0 0 / 0.9), 0 34px 60px -30px rgb(0 0 0 / 0.95);
  --ombra-su: 0 0 0 1px rgb(255 255 255 / 0.16), 0 20px 36px -16px rgb(0 0 0 / 0.95), 0 44px 70px -30px rgb(0 0 0 / 1);
  font-family: "Geist", system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  font-size: 106.25%;
  line-height: 1.55;
  color: var(--inchiostro);
  background: var(--fondo);
  -webkit-font-smoothing: antialiased;
}
@supports (height: 100svh) { :root { --alto: 100svh; } }
@media (max-width: 760px) { :root { --raggio-foto: 10px; } }
@media (max-width: 1023px) { :root { --h-testata: 60px; --h-freccia: 60px; } }
:root { --su: var(--h-testata); --giu: var(--h-freccia); }
@media (max-width: 760px) { :root { --su: 0px; --giu: calc(var(--h-testata) + var(--h-freccia)); } }
html { scroll-snap-type: y mandatory; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3 { margin: 0; line-height: 1.15; text-wrap: balance; overflow-wrap: anywhere; hyphens: auto; }
p { margin: 0; overflow-wrap: anywhere; }
a { color: inherit; text-underline-offset: 0.2em; text-decoration-thickness: 1px; }
a:hover { color: inherit; text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid var(--inchiostro); outline-offset: 3px; }
.salta {
  position: fixed; left: var(--margine); top: -4rem; z-index: 30;
  background: var(--inchiostro); color: var(--fondo); padding: 0.5rem 1rem; border-radius: var(--raggio);
}
.salta:focus { top: 0.5rem; }
.nascosto {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip-path: inset(50%); white-space: nowrap;
}
.contenitore { max-width: 72rem; margin-inline: auto; padding-inline: var(--margine); }
.mare { position: fixed; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; }
html.sul-segno { cursor: grab; }
html.trascina-segno, html.trascina-segno * { cursor: grabbing !important; -webkit-user-select: none; user-select: none; }
@media (max-width: 760px), (max-height: 500px) { .mare { opacity: 0.75; } }
@media print { .mare, .giu { display: none; } }
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: 200ms; }
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
}
.testata { position: fixed; top: 0; left: 0; right: 0; z-index: 20; height: var(--h-testata); }
.testata::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: var(--fondo);
  border-bottom: 1px solid var(--filo);
}
.barra { height: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 1.5rem; }
.testata .barra { max-width: 80rem; }
.lato { display: flex; align-items: center; gap: 2.4rem; }
.lato.sx { justify-content: flex-end; }
.lato.dx { justify-content: flex-start; }
.voci { display: flex; gap: 2.4rem; list-style: none; margin: 0; padding: 0; }
.voci a { text-decoration: none; font-size: 0.875rem; padding-block: 0.3rem; border-bottom: 1px solid transparent; white-space: nowrap; }
@media (min-width: 1280px) and (max-width: 1379px) { .lato .voci { gap: 1.6rem; } .lato { gap: 1.6rem; } }
@media (min-width: 1180px) and (max-width: 1279px) {
  .lato .voci { gap: 1.15rem; }
  .lato { gap: 0.9rem; }
  .bottone-testata { font-size: 0.8rem; padding: 0.3rem 0.55rem; }
}
@media (min-width: 1380px) { html[lang="fr"] .lato .voci { gap: 1.5rem; } html[lang="fr"] .lato { gap: 1.6rem; } }
@media (min-width: 1280px) and (max-width: 1379px) { html[lang="fr"] .lato .voci { gap: 1.2rem; } html[lang="fr"] .lato { gap: 1rem; } html[lang="fr"] .bottone-testata { font-size: 0.8rem; padding: 0.3rem 0.55rem; } }
@media (min-width: 1180px) and (max-width: 1279px) {
  html[lang="fr"] .barra { gap: 0.75rem; grid-template-columns: minmax(max-content, 1fr) auto minmax(max-content, 1fr); }
  html[lang="fr"] .lato.sx { display: none; }
  html[lang="fr"] .lato.dx { justify-content: flex-end; }
  html[lang="fr"] .lato.dx .voci { display: none; }
  html[lang="fr"] .apri-menu {
    display: inline-flex; justify-self: start; align-items: center; gap: 0.4rem;
    font: inherit; font-size: 0.9rem; color: inherit; background: none; border: 0; padding: 0.4rem 0; cursor: pointer;
  }
  html[lang="fr"] .apri-menu svg { width: 18px; height: 18px; }
  html[lang="fr"] .marchio .logo { height: 19px; }
  html[lang="fr"] .bottone-testata { padding: 0.3rem 0.75rem; font-size: 0.88rem; }
}
.voci a:hover { color: inherit; border-bottom-color: currentColor; }
.voci a[aria-current="page"] { border-bottom-color: var(--inchiostro); }
.marchio { display: block; line-height: 0; padding-inline: 0.7rem; }
.marchio .logo { display: block; height: 24px; width: auto; }
.marchio:hover { opacity: 0.8; }
.lingue {
  display: flex; gap: 0.65rem; list-style: none; margin: 0; padding: 0;
  font-size: 0.8rem; letter-spacing: 0.08em; color: var(--testo-2);
}
.lingue [aria-current] { color: var(--inchiostro); font-weight: 600; }
.lingue a { text-decoration: none; }
.lingue a:hover { color: var(--inchiostro); text-decoration: underline; text-underline-offset: 0.25em; }
.bottone-testata {
  text-decoration: none; font-family: var(--mono); font-size: 0.86rem; font-weight: 500; letter-spacing: -0.01em; white-space: nowrap;
  border: 1px solid var(--inchiostro); padding: 0.4rem 1rem; border-radius: var(--raggio);
}
.bottone-testata:hover { color: var(--fondo); background: var(--inchiostro); }
.apri-menu { display: none; }
.menu-stretto:not([hidden]) {
  display: grid; justify-items: center; align-content: start; gap: 2.5rem;
  position: fixed; top: var(--h-testata); left: 0; right: 0; bottom: 0;
  background: var(--fondo); padding: 3rem var(--margine); overflow-y: auto;
}
.menu-stretto ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.1rem; justify-items: center; align-content: start; }
.menu-stretto .voci-grandi a { font-size: 1.5rem; text-decoration: none; }
.menu-stretto .voci-grandi a[aria-current="page"] { text-decoration: underline; }
.menu-stretto .lingue { display: flex; gap: 1rem; font-size: 0.9rem; }
.menu-stretto { display: none; }
@media (max-width: 1179px) {
  .barra { gap: 0.75rem; grid-template-columns: minmax(max-content, 1fr) auto minmax(max-content, 1fr); }
  .lato.sx { display: none; }
  .lato.dx { justify-content: flex-end; }
  .lato.dx .voci { display: none; }
  .apri-menu {
    display: inline-flex; justify-self: start; align-items: center; gap: 0.4rem;
    font: inherit; font-size: 0.9rem; color: inherit; background: none; border: 0; padding: 0.4rem 0; cursor: pointer;
  }
  .apri-menu svg { width: 18px; height: 18px; }
  .marchio .logo { height: 19px; }
  .bottone-testata { padding: 0.3rem 0.75rem; font-size: 0.88rem; }
}
@media (max-width: 560px) {
  .bottone-testata { font-family: inherit; letter-spacing: 0; padding: 0.3rem 0.55rem; font-size: 0.8rem; }
}
@media (max-width: 440px) {
  .barra { gap: 0.5rem; }
  .marchio .logo { height: 14px; }
  .bottone-testata { font-family: inherit; letter-spacing: 0; padding: 0.3rem 0.45rem; font-size: 0.74rem; }
}
@media (max-width: 380px) {
  .marchio .logo { height: 13px; }
  .bottone-testata { padding: 0.28rem 0.35rem; font-size: 0.69rem; }
}
@media (max-width: 340px) {
  .marchio .logo { height: 11px; }
  .bottone-testata { padding: 0.26rem 0.3rem; font-size: 0.6rem; }
}
@media (max-width: 760px) {
  .testata { top: auto; bottom: 0; }
  .testata::before { border-bottom: 0; border-top: 1px solid var(--filo); }
  .menu-stretto:not([hidden]) {
    display: flex; flex-direction: column; align-items: center; gap: 2.5rem;
    top: 0; bottom: var(--h-testata); padding: 2rem var(--margine) 2.5rem;
  }
  .menu-stretto:not([hidden]) > :first-child { margin-top: auto; }
}
.schermo {
  position: relative; min-height: var(--alto); scroll-snap-align: start;
  display: grid; align-content: center; justify-items: center; gap: clamp(1rem, 2.4vh, 1.75rem);
  padding: calc(var(--su) + clamp(0.75rem, 2.5vh, 1.75rem)) var(--margine) calc(var(--giu) + clamp(0.5rem, 1.5vh, 1rem));
  text-align: center;
}
.schermo > * { max-width: 72rem; width: 100%; }
.apertura h1 {
  font-size: clamp(1.85rem, min(1.1rem + 3.2vw, 7.4vh), 3.4rem); line-height: 1.1;
  font-weight: 600; letter-spacing: -0.02em; max-width: 22ch;
}
.apertura .riga { font-size: clamp(1.05rem, min(1rem + 0.5vw, 2.8vh), 1.3rem); color: var(--testo-2); max-width: 44ch; text-wrap: balance; }
.apertura h1.a-righe { max-width: none; font-size: clamp(1.7rem, min(0.55rem + 2.55vw, 6.4vh), 3.15rem); }
.riga-titolo { display: block; text-wrap: balance; }
.a-righe .riga-titolo { font-weight: 400; }
.a-righe .riga-titolo:first-child { font-weight: 700; }
.apertura p { max-width: 54ch; text-wrap: pretty; }
.occhiello { font-family: var(--mono); font-size: 0.76rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--testo-2); }
.titolo-sezione { font-size: clamp(1.35rem, min(1.1rem + 1vw, 4.6vh), 1.9rem); font-weight: 600; letter-spacing: -0.01em; }
.sottotitolo { color: var(--testo-2); max-width: 50ch; text-wrap: balance; }
.paragrafo-centro { max-width: 52ch; text-wrap: pretty; }
.bottone {
  display: inline-block; background: var(--inchiostro); color: var(--fondo); font-family: var(--mono);
  text-decoration: none; font-weight: 500; letter-spacing: -0.01em; line-height: 1.2; padding: 0.75rem 1.5rem; border-radius: var(--raggio);
}
.bottone:hover { background: var(--grigio-bottone); color: var(--fondo); }
button.bottone { font: inherit; font-family: var(--mono); font-weight: 500; border: 0; cursor: pointer; }
.giu {
  position: fixed; left: 50%; bottom: 12px; z-index: 15; transform: translateX(-50%);
  width: 44px; height: 44px; display: grid; place-items: center; padding: 0;
  color: var(--inchiostro); background: var(--fondo);
  border: 1px solid var(--filo); border-radius: var(--raggio); cursor: pointer;
  box-shadow: 0 8px 18px -10px rgb(11 11 11 / 0.3);
  transition: opacity 250ms ease, color 150ms ease, border-color 150ms ease;
}
.giu svg { width: 20px; height: 20px; }
.giu:hover { border-color: var(--inchiostro); }
.giu.nascosta { opacity: 0; pointer-events: none; }
@media (max-width: 760px) { .giu { bottom: calc(var(--h-testata) + 10px); } }
.scorrimento-persone { position: relative; height: calc(var(--gruppi, 2) * var(--alto)); }
.gruppi-1 { --gruppi: 1; }
.gruppi-2 { --gruppi: 2; }
.gruppi-3 { --gruppi: 3; }
.gruppi-4 { --gruppi: 4; }
.aggancio { position: absolute; left: 0; right: 0; height: var(--alto); scroll-snap-align: start; pointer-events: none; }
.aggancio:nth-of-type(1) { top: 0; }
.aggancio:nth-of-type(2) { top: var(--alto); }
.aggancio:nth-of-type(3) { top: calc(2 * var(--alto)); }
.aggancio:nth-of-type(4) { top: calc(3 * var(--alto)); }
.palco {
  position: sticky; top: 0; height: var(--alto);
  display: grid; align-content: center; justify-items: center; gap: clamp(1rem, 2.6vh, 2rem);
  padding: calc(var(--su) + clamp(0.5rem, 2vh, 1.5rem)) var(--margine) calc(var(--giu) + 0.5rem);
  text-align: center;
}
.gruppi {
  --disponibile: calc(var(--alto) - var(--h-testata) - var(--h-freccia) - 10rem);
  display: grid; width: 100%;
  max-width: min(58rem, calc((var(--disponibile) - 3.6rem) * 0.8 * 4 * 0.84 + 4.5rem));
}
.gruppo {
  grid-area: 1 / 1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem; list-style: none; margin: 0; padding: 0; perspective: 1200px;
}
.gruppo { pointer-events: none; }
.gruppo li { opacity: var(--o, 1); transform: translate3d(0, var(--y, 0px), var(--z, 0px)); pointer-events: auto; }
.gruppo li.spento { pointer-events: none; }
.gruppi.per-3 { max-width: min(46rem, calc((var(--disponibile) - 3.6rem) * 0.8 * 3 * 0.84 + 3rem)); }
.per-3 .gruppo { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.per-4 .gruppo.da-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); width: calc(75% - 0.375rem); justify-self: center; }
.per-4 .gruppo.da-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); width: calc(50% - 0.75rem); justify-self: center; }
.per-3 .gruppo.da-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); width: calc(66.667% - 0.5rem); justify-self: center; }
.persona { margin: 0; display: grid; gap: 0.7rem; }
.persona img {
  width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; background: var(--filo);
  border-radius: var(--raggio-foto); box-shadow: var(--ombra);
  transition: transform 350ms cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 350ms ease;
}
.persona figcaption { display: grid; gap: 0.1rem; }
.persona .nome { font-weight: 600; }
.persona .competenza { color: var(--testo-2); font-size: 0.9rem; line-height: 1.4; text-wrap: balance; }
.persona-link { display: block; text-decoration: none; color: inherit; border-radius: var(--raggio-foto); }
.persona-link:hover { color: inherit; }
.persona-link:hover .nome { text-decoration: underline; text-underline-offset: 0.2em; }
.portatori { list-style: none; margin: 0; padding: 0; display: grid; justify-content: center; grid-template-columns: min(15rem, 60vw); }
.testimone a.nome { color: inherit; text-decoration: none; }
.testimone a.nome:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.persona-link:hover img, .persona-link:focus-visible img { transform: translateY(-4px); box-shadow: var(--ombra-su); }
@media (prefers-reduced-motion: reduce) {
  .persona img { transition: none; }
  .persona-link:hover img, .persona-link:focus-visible img { transform: none; }
}
.carta { border-radius: var(--raggio-foto); box-shadow: var(--ombra); transform: translate3d(0, var(--salto, 0px), 0); }
@media (max-width: 860px) {
  .gruppi { max-width: min(100%, calc(((var(--disponibile) - 8rem) / 2) * 0.8 * 2 + 0.75rem)); }
  .gruppo, .per-3 .gruppo, .per-4 .gruppo.da-3, .per-4 .gruppo.da-2, .per-3 .gruppo.da-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; width: auto; justify-self: stretch; }
  .gruppi.per-3 { max-width: min(100%, calc(((var(--disponibile) - 8rem) / 2) * 0.8 * 2 + 0.75rem)); }
  .per-3 .gruppo li:nth-child(3):last-child, .gruppo.da-3 li:nth-child(3):last-child { grid-column: 1 / -1; justify-self: center; width: calc(50% - 0.375rem); }
  .persona { gap: 0.45rem; }
  .persona .competenza { font-size: 0.82rem; }
}
@media (max-width: 760px) {
  .persona img { aspect-ratio: 1 / 1; }
  .gruppi, .gruppi.per-3 { max-width: min(92%, calc(var(--alto) - 26.5rem)); }
  .persona .competenza { font-size: 0.8rem; line-height: 1.35; }
}
@media (max-width: 760px) and (max-height: 760px), (max-width: 370px) {
  .persona .competenza + .competenza { display: none; }
}
@media (max-width: 400px) { .persona .nome { font-size: 0.95rem; line-height: 1.3; } }
.specchio {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0;
}
.specchio > * { display: grid; gap: 1rem; justify-items: center; align-content: start; padding: 0.25rem var(--lato); }
.specchio > * + * { border-left: 1px solid var(--filo); }
.specchio h2 { font-size: clamp(1.3rem, min(1.05rem + 0.9vw, 4.2vh), 1.75rem); font-weight: 600; max-width: 22ch; }
.specchio p { max-width: 40ch; text-wrap: pretty; }
.porte { grid-template-rows: auto auto auto; }
.porte > * { grid-row: span 3; grid-template-rows: subgrid; }
.righe { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.8rem; max-width: 34ch; }
.righe li { text-wrap: balance; }
.logo { height: 28px; width: auto; margin-bottom: 0.35rem; }
.stato { font-size: 0.88rem; color: var(--testo-2); }
.dominio { font-size: 0.92rem; }
@media (max-width: 760px) {
  .specchio { grid-template-columns: 1fr; gap: 2rem; }
  .porte > * { grid-row: auto; grid-template-rows: none; }
  .specchio > * + * { border-left: 0; border-top: 1px solid var(--filo); padding-top: 2rem; }
  .porte { padding-inline: 0.5rem; }
}
.coppia .specchio { align-items: center; }
@media (max-width: 760px) {
  .schermo.coppia { display: block; min-height: 0; padding: 0; scroll-snap-align: none; }
  .coppia .specchio { display: block; }
  .coppia .specchio > * {
    min-height: var(--alto); scroll-snap-align: start; border: 0; align-content: center;
    padding: calc(var(--su) + 1rem) var(--margine) calc(var(--giu) + 0.75rem);
  }
}
.campi { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(1.25rem, 3.4vh, 2.25rem) 1.5rem; list-style: none; margin: 0; padding: 0; }
.campo { flex: 0 1 12rem; display: grid; gap: 0.3rem; align-content: start; justify-items: center; }
.marchio-cantiere { display: inline-flex; align-items: center; gap: 0.45rem; margin-bottom: 0.2rem; text-decoration: none; color: inherit; border-radius: 6px; }
.marchio-cantiere .fuori { color: var(--testo-2); margin-left: -0.15rem; }
a.marchio-cantiere:hover { color: inherit; }
a.marchio-cantiere:hover b { text-decoration: underline; text-underline-offset: 0.2em; }
a.marchio-cantiere:hover .fuori { color: var(--inchiostro); }
.marchio-cantiere svg { flex: none; }
.marchio-cantiere b { font-weight: 600; font-size: 1.02rem; letter-spacing: -0.005em; white-space: nowrap; }
.campo strong { font-weight: 500; font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--testo-2); text-wrap: balance; }
.campo .descrizione { color: var(--testo-2); font-size: 0.92rem; line-height: 1.45; text-wrap: balance; }
.campi-brevi .campo { flex-basis: 10.5rem; }
.riga-campi { max-width: 50ch; text-wrap: balance; }
@media (max-width: 520px) { .campo { flex-basis: 9.25rem; } .campo .descrizione { font-size: 0.85rem; } .marchio-cantiere b { font-size: 0.95rem; } }
.figura-grande { margin: 0; display: grid; gap: 0.75rem; justify-items: center; }
.figura-grande picture { display: block; width: 100%; }
.figura-grande img {
  width: 100%; height: auto; aspect-ratio: 3 / 1;
  max-height: calc(var(--alto) - var(--h-testata) - var(--h-freccia) - 5rem);
  object-fit: cover; object-position: 50% 50%; background: var(--filo);
}
@media (max-width: 760px) { .figura-grande img { aspect-ratio: 3 / 2; } }
.figura-grande figcaption { font-size: 0.85rem; color: var(--testo-2); }
.titolata .figura-grande img { max-height: calc(var(--alto) - var(--h-testata) - var(--h-freccia) - 9.5rem); }
.passi.dal-quarto { counter-reset: passo 3; }
.passi { counter-reset: passo; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
.passi li { counter-increment: passo; display: grid; gap: 0.6rem; justify-items: center; text-wrap: balance; }
.passi li::before {
  content: counter(passo); display: grid; place-items: center;
  width: 2.1rem; height: 2.1rem; border: 1px solid var(--bordo-campo); border-radius: var(--raggio);
  font-family: var(--mono); font-size: 0.85rem; font-weight: 500; font-variant-numeric: tabular-nums;
}
.passi.verticale { grid-template-columns: 1fr; max-width: 34rem; gap: clamp(0.8rem, 2vh, 1.25rem); }
@media (max-width: 760px) {
  .passi { grid-template-columns: 1fr; gap: 1rem; }
  .passi li { gap: 0.35rem; }
  .passi li::before { width: 1.8rem; height: 1.8rem; font-size: 0.8rem; }
}
.nota-storia { max-width: 52ch; font-size: 0.9rem; color: var(--testo-2); text-wrap: balance; }
.forte-centro { max-width: 36ch; font-size: clamp(1.1rem, min(1rem + 0.5vw, 3.2vh), 1.4rem); font-weight: 600; line-height: 1.35; text-wrap: balance; }
.strofa { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; max-width: 54ch; font-size: clamp(1rem, 1rem + 0.3vw, 1.2rem); text-wrap: balance; }
.strofa li:last-child { margin-top: 0.6rem; font-weight: 600; }
.nota-privacy { font-size: 0.85rem; color: var(--testo-2); max-width: 52ch; }
.rimandi { color: var(--testo-2); font-size: 0.95rem; }
.contatto-stampa { font-size: 0.92rem; color: var(--testo-2); }
.citazioni { display: grid; gap: clamp(2.5rem, 9vh, 5.5rem); justify-items: center; max-width: 52rem; }
.citazione { margin: 0; display: grid; gap: clamp(0.55rem, 1.6vh, 0.95rem); justify-items: center; }
.citazione blockquote { margin: 0; quotes: "«" "»" "“" "”"; }
.citazione blockquote p {
  font-style: italic; font-weight: 400; letter-spacing: -0.01em; line-height: 1.28;
  font-size: clamp(1.3rem, min(0.85rem + 1.45vw, 4.2vh), 2.15rem); max-width: 34ch; text-wrap: balance;
}
.citazione blockquote p::before { content: open-quote; }
.citazione blockquote p::after { content: close-quote; }
.citazione figcaption { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: 0.2rem 0.9rem; font-size: 0.8rem; color: var(--testo-2); }
.citazione .fonte { font-family: var(--mono); font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: var(--inchiostro); }
.citazione figcaption a { display: inline-flex; align-items: center; gap: 0.3rem; }
.citazione figcaption a .fuori { color: var(--testo-2); }
.impresa { gap: clamp(0.75rem, 2vh, 1.25rem); }
.impresa h2 { display: flex; justify-content: center; align-items: center; gap: 0.6rem; font-size: clamp(1.45rem, min(1.15rem + 1.1vw, 4.6vh), 2.1rem); font-weight: 600; letter-spacing: -0.01em; }
.impresa h2 .logo { height: clamp(28px, 4.6vh, 38px); margin: 0; }
.impresa h2 svg { height: clamp(26px, 4.2vh, 34px); width: auto; flex: none; }
.impresa .paragrafo-centro { max-width: 60ch; }
.impresa .dominio { display: inline-flex; align-items: center; gap: 0.35rem; }
.impresa .dominio .fuori { color: var(--testo-2); }
@media (max-width: 760px) { .impresa .paragrafo-centro { font-size: 0.95rem; line-height: 1.5; } }
@media (max-width: 760px) and (max-height: 720px) { .impresa .paragrafo-centro { font-size: 0.86rem; line-height: 1.42; } .impresa { gap: 0.55rem; } }
.due-bottoni { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem 1rem; }
.pagina-modulo {
  max-width: 38rem; margin: 0 auto; display: grid; gap: 1rem;
  padding: calc(var(--su) + clamp(2rem, 6vh, 4rem)) var(--margine) clamp(3rem, 8vh, 5rem);
}
.pagina-modulo > .occhiello, .pagina-modulo h1, .pagina-modulo .intro, .altrimenti { text-align: center; }
.pagina-modulo h1 { font-size: clamp(2rem, 1.4rem + 2.4vw, 3rem); font-weight: 600; letter-spacing: -0.02em; line-height: 1.1; }
.pagina-modulo .intro { font-size: clamp(1.05rem, 1rem + 0.3vw, 1.2rem); text-wrap: balance; }
.modulo {
  display: grid; gap: 1.35rem; margin-top: clamp(0.75rem, 2.5vh, 1.5rem); padding: clamp(1.15rem, 4vw, 2.25rem);
  background: color-mix(in oklab, var(--fondo) 94%, white); border: 1px solid var(--filo); border-radius: var(--raggio); box-shadow: var(--ombra);
}
.obbligatori { font-size: 0.85rem; color: var(--testo-2); }
.gruppo-campi { margin: 0; padding: 0; border: 0; min-width: 0; display: grid; gap: 1.35rem; }
.gruppo-campi + .gruppo-campi { padding-top: 1.6rem; border-top: 1px solid var(--filo); }
.gruppo-campi > legend { float: left; width: 100%; padding: 0; margin-bottom: -0.35rem; font-family: var(--mono); font-size: 0.72rem; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--testo-2); }
.campo-modulo { display: grid; gap: 0.35rem; }
.campo-modulo label { font-weight: 600; line-height: 1.35; }
.obbligo { color: var(--inchiostro); }
.aiuto { font-size: 0.88rem; line-height: 1.45; color: var(--testo-2); }
.modulo input:not([type="checkbox"]), .modulo textarea, .modulo select {
  width: 100%; min-height: 2.9rem; font: inherit; color: var(--inchiostro); background: var(--fondo);
  border: 1px solid var(--bordo-campo); border-radius: var(--raggio); padding: 0.65rem 0.85rem;
}
.modulo textarea { resize: vertical; line-height: 1.5; }
.modulo select {
  appearance: none; padding-right: 2.6rem; cursor: pointer;
  background: var(--fondo) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23F6F6F4' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 0.95rem center / 12px 8px;
}
.modulo input:focus-visible, .modulo textarea:focus-visible, .modulo select:focus-visible { outline: 2px solid var(--inchiostro); outline-offset: 1px; border-color: var(--inchiostro); }
.modulo input:user-invalid, .modulo textarea:user-invalid, .modulo select:user-invalid { border-color: #FF8A73; }
.caselle { margin: 0; padding: 0; border: 0; min-width: 0; }
.caselle legend { padding: 0; margin-bottom: 0.35rem; font-weight: 600; line-height: 1.35; }
.scelte { display: grid; gap: 0.5rem; margin-top: 0.2rem; }
.campo-modulo .scelte label { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.6rem; align-items: start; font-weight: 400; cursor: pointer; }
.scelte input { width: 1.15rem; height: 1.15rem; margin: 0.2rem 0 0; accent-color: var(--inchiostro); cursor: pointer; }
.consenso { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.7rem; align-items: start; }
.consenso input { width: 1.25rem; height: 1.25rem; margin: 0.18rem 0 0; accent-color: var(--inchiostro); cursor: pointer; }
.invio { display: grid; justify-items: center; gap: 0.75rem; text-align: center; margin-top: 0.25rem; }
.invio .nota-privacy { max-width: 44ch; text-wrap: balance; }
.altrimenti { font-size: 0.92rem; color: var(--testo-2); margin-top: 0.5rem; }
.avviso {
  display: none; padding: 0.9rem 1.1rem; border: 1px solid var(--inchiostro); border-radius: var(--raggio);
  background: color-mix(in oklab, var(--inchiostro) 10%, var(--fondo)); scroll-margin-top: calc(var(--su) + 1.5rem);
}
.avviso:target { display: block; }
.trappola { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sigillo { font-size: 0.82rem; letter-spacing: 0.03em; color: var(--testo-2); margin-top: clamp(0.25rem, 3vh, 2rem); }
.sigillo a { color: inherit; }
.sigillo a:hover { color: var(--inchiostro); }
.testimone { margin: 0; display: grid; justify-items: center; gap: clamp(0.9rem, 2.4vh, 1.5rem); max-width: 46rem; }
.testimone img {
  height: clamp(8.5rem, calc(var(--alto) - var(--h-testata) - var(--h-freccia) - 23rem), 22rem);
  width: auto; aspect-ratio: 4 / 5; object-fit: cover; background: var(--filo); border-radius: var(--raggio-foto);
}
.testimone blockquote { margin: 0; }
.testimone blockquote p { font-size: clamp(1rem, min(0.94rem + 0.4vw, 2.6vh), 1.22rem); line-height: 1.55; max-width: 52ch; text-wrap: pretty; }
.testimone blockquote p::before { content: "«"; }
.testimone blockquote p::after { content: "»"; }
.testimone figcaption { display: grid; gap: 0.1rem; }
.testimone .nome { font-weight: 600; }
.testimone .ruolo { color: var(--testo-2); font-size: 0.9rem; }
@media (max-width: 760px) {
  .testimone img { height: clamp(7rem, calc(var(--alto) - var(--h-testata) - var(--h-freccia) - 30.5rem), 17rem); }
  .specchio p { font-size: 0.95rem; line-height: 1.5; }
}
.firma { color: var(--testo-2); }
.attacco { max-width: 44ch; font-size: clamp(1.05rem, min(1rem + 0.45vw, 2.9vh), 1.3rem); text-wrap: balance; margin-top: clamp(0.5rem, 4vh, 2.5rem); }
.brano { gap: clamp(1rem, 2.8vh, 1.75rem); }
.brano p { max-width: 58ch; font-size: clamp(1rem, min(0.9rem + 0.6vw, 3vh), 1.45rem); line-height: 1.6; text-wrap: pretty; }
.brano .forte { max-width: 30ch; font-size: clamp(1.25rem, min(1.02rem + 1vw, 3.9vh), 1.8rem); font-weight: 600; line-height: 1.3; letter-spacing: -0.01em; text-wrap: balance; }
.brano .ambizione { max-width: 48ch; font-size: clamp(1.08rem, min(0.96rem + 0.62vw, 3.1vh), 1.45rem); font-weight: 500; line-height: 1.5; text-wrap: pretty; }
.brano .congedo { font-family: var(--mono); font-size: 0.85rem; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; margin-top: clamp(0.5rem, 3vh, 1.75rem); }
.brano .stacco { color: var(--inchiostro); font-size: 1.6rem; line-height: 1; letter-spacing: 0.45em; text-indent: 0.45em; }
@media (min-width: 761px) and (max-height: 820px) {
  .passi.verticale { gap: 0.5rem; }
  .passi.verticale li { gap: 0.35rem; }
  .passi li::before { width: 1.8rem; height: 1.8rem; font-size: 0.8rem; }
  .storia p, .brano p { line-height: 1.5; }
}
@media (max-width: 760px) and (max-height: 720px) {
  .schermo { gap: 0.8rem; padding-top: calc(var(--su) + 0.5rem); padding-bottom: calc(var(--giu) + 0.25rem); }
  .specchio > * { gap: 0.6rem; }
  .gruppi, .gruppi.per-3 { max-width: min(100%, 19rem); }
  .persona img { aspect-ratio: 1 / 1; }
  .persona .competenza { display: none; }
  .persona .nome { font-size: 0.9rem; line-height: 1.3; }
  .palco { gap: 0.75rem; }
  .specchio { gap: 1.25rem; }
  .specchio > * + * { padding-top: 1.25rem; }
  .specchio p { font-size: 0.9rem; line-height: 1.45; }
  .logo { height: 24px; margin-bottom: 0; }
  .passi { gap: 0.7rem; }
  .passi li { display: block; font-size: 0.92rem; line-height: 1.4; }
  .passi li::before { display: inline-grid; vertical-align: middle; width: 1.5rem; height: 1.5rem; margin-right: 0.4rem; font-size: 0.75rem; }
  .rimandi { display: none; }
  .campo .descrizione { display: none; }
  .campi { gap: 1rem 0.75rem; }
  .testimone img { height: clamp(6rem, 20vh, 10rem); }
  .testimone blockquote p { font-size: 0.88rem; line-height: 1.42; }
  .brano p { font-size: 0.95rem; line-height: 1.5; }
  .citazioni { gap: 1.6rem; }
  .citazione { gap: 0.4rem; }
  .citazione blockquote p { font-size: 1.1rem; line-height: 1.3; }
  .citazione figcaption { font-size: 0.74rem; gap: 0.1rem 0.7rem; }
}
.scheda { gap: clamp(0.5rem, 1.6vh, 0.9rem); }
.scheda img {
  height: clamp(11rem, calc(var(--alto) - var(--h-testata) - var(--h-freccia) - 13rem), 30rem);
  width: auto; max-width: 100%; aspect-ratio: 4 / 5; object-fit: cover; background: var(--filo); margin-bottom: 0.4rem;
}
.scheda h1 { font-size: clamp(1.8rem, min(1.2rem + 2.2vw, 6vh), 3rem); font-weight: 600; letter-spacing: -0.02em; line-height: 1.1; }
.descrittore { color: var(--testo-2); font-size: clamp(1rem, 0.95rem + 0.3vw, 1.2rem); max-width: 40ch; text-wrap: balance; }
.scheda .ruolo { font-size: 0.92rem; max-width: 42ch; text-wrap: balance; }
.storia { gap: clamp(0.9rem, 2.6vh, 1.6rem); }
.storia p { max-width: 58ch; font-size: clamp(1rem, min(0.92rem + 0.45vw, 2.8vh), 1.3rem); line-height: 1.6; text-wrap: pretty; }
.storia .studi { font-size: 0.92rem; color: var(--testo-2); max-width: 52ch; }
.studi span { display: block; font-family: var(--mono); font-size: 0.72rem; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 0.25rem; }
.altre-storie {
  --disponibile: calc(var(--alto) - var(--h-testata) - var(--h-freccia) - 11rem);
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; list-style: none; margin: 0; padding: 0;
  max-width: min(42rem, calc((var(--disponibile) - 3.6rem) * 0.8 * 3 * 0.84 + 3rem));
}
@media (max-width: 760px) and (max-height: 720px) {
  .storia { gap: 0.7rem; }
  .storia p { font-size: 0.93rem; line-height: 1.48; }
  .scheda img { height: clamp(9rem, calc(var(--alto) - var(--h-testata) - var(--h-freccia) - 11rem), 20rem); }
}
@media (max-width: 760px) {
  .altre-storie { gap: 0.6rem; max-width: 100%; }
  .altre-storie .persona img { border-radius: 8px; }
  .altre-storie .persona .competenza { display: none; }
  .altre-storie .persona .nome { font-size: 0.85rem; line-height: 1.3; }
}
html.lungo { scroll-snap-type: none; }
.documento { max-width: 44rem; margin: 0 auto; padding: calc(var(--su) + clamp(2rem, 6vh, 4rem)) var(--margine) clamp(3rem, 8vh, 5rem); }
.documento h1 { font-size: clamp(2rem, 1.4rem + 2.4vw, 3rem); font-weight: 600; letter-spacing: -0.02em; line-height: 1.1; text-align: center; margin-bottom: clamp(1.25rem, 3vh, 2rem); }
.documento .intro { font-size: clamp(1.05rem, 1rem + 0.3vw, 1.2rem); text-align: center; text-wrap: balance; margin-bottom: 1rem; }
.documento section { margin-top: clamp(1.75rem, 4vh, 2.5rem); }
.documento h2 { font-size: 1.15rem; font-weight: 600; margin-bottom: 0.6rem; }
.documento p { line-height: 1.65; margin-bottom: 0.85rem; text-wrap: pretty; }
.documento .aggiornato { margin-top: clamp(2rem, 5vh, 3rem); font-size: 0.85rem; color: var(--testo-2); text-align: center; }
.lungo .piede { min-height: auto; padding-top: clamp(3rem, 8vh, 5rem); }
.lungo .giu { display: none; }
.piede { color: var(--testo-2); font-size: 0.88rem; gap: 0.45rem; }
.piede .motto { color: var(--inchiostro); font-size: clamp(1.5rem, min(1.1rem + 1.6vw, 5vh), 2.4rem); font-weight: 600; letter-spacing: -0.01em; line-height: 1.15; margin-bottom: clamp(1rem, 4vh, 2.25rem); text-wrap: balance; }
.piede .verso-firmamento { margin-top: 0.6rem; }
.piede .piede-nome { color: var(--inchiostro); font-weight: 600; font-size: 1rem; }
.piede p { max-width: 70ch; }
.piede .lingue { justify-content: center; margin-top: 0.75rem; }
.piede .legali { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.35rem 1.1rem; list-style: none; margin: 0.9rem 0 0; padding: 0; }
.piede .legali a { text-decoration: none; }
.piede .legali a:hover, .piede .legali a[aria-current="page"] { color: var(--inchiostro); text-decoration: underline; text-underline-offset: 0.25em; }
.serve { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(0.8rem, 2.3vh, 1.35rem); max-width: 50ch; font-size: clamp(1rem, 1rem + 0.3vw, 1.2rem); text-wrap: balance; }
.serve strong { font-weight: 600; }
.segnaposto { max-width: 52ch; padding: 1rem 1.25rem; border: 1px dashed var(--bordo-campo); border-radius: var(--raggio); color: var(--testo-2); text-wrap: balance; }
.collage {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto auto;
  column-gap: 0; row-gap: clamp(0.9rem, 2.4vh, 1.5rem);
  max-width: min(72rem, calc((var(--alto) - var(--h-testata) - var(--h-freccia) - 19rem) * 4));
}
.collage > li, .fatto { grid-row: span 2; display: grid; grid-template-rows: subgrid; }
.fatto { margin: 0; justify-items: center; }
.foto-fatto { width: 100%; align-self: center; }
.foto-fatto img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; background: var(--filo); border-radius: inherit; }
.collage > li:nth-child(2) { position: relative; z-index: 1; margin-inline: clamp(-2.5rem, -2.6vw, -1rem); }
.fatto figcaption { position: relative; z-index: 1; max-width: 30ch; padding-inline: 0.5rem; text-wrap: balance; }
@media (max-width: 760px) {
  .collage { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; row-gap: 0.5rem; max-width: 26rem; }
  .collage > li, .fatto { grid-row: auto; grid-template-rows: none; }
  .collage > li:nth-child(2) { margin-inline: 0; }
  .fatto { grid-template-columns: 8rem minmax(0, 1fr); align-items: center; justify-items: start; column-gap: 1rem; text-align: left; }
  .foto-fatto img { aspect-ratio: 1 / 1; }
  .fatto figcaption { max-width: none; padding-inline: 0; font-size: 0.95rem; line-height: 1.45; }
}
@media (max-width: 760px) and (max-height: 720px) {
  .fatto { grid-template-columns: 6rem minmax(0, 1fr); column-gap: 0.8rem; }
  .fatto figcaption { font-size: 0.86rem; line-height: 1.4; }
}
.progetti {
  --spazio: clamp(1.5rem, 3.5vw, 3rem);
  list-style: none; margin: 0; padding: 0; max-width: 68rem; font-size: clamp(1rem, 0.9rem + 0.25vw, 1.08rem);
  display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(1.1rem, 3.2vh, 2.1rem) var(--spazio);
}
.progetti li { flex: 0 0 calc((100% - 2 * var(--spazio)) / 3 - 1px); color: var(--testo-2); text-wrap: balance; }
.progetti strong { color: var(--inchiostro); font-weight: 600; }
@media (max-width: 760px) {
  .progetti { flex-direction: column; flex-wrap: nowrap; align-items: center; gap: 0.85rem; max-width: 36ch; }
  .progetti li { flex: none; font-size: 0.95rem; line-height: 1.45; }
}
@media (max-width: 760px) and (max-height: 760px) {
  .progetti { gap: 0.6rem; }
  .progetti li { font-size: 0.87rem; line-height: 1.38; }
}
.mosaico {
  --spazio: clamp(0.45rem, 0.9vw, 0.85rem);
  --alto-libero: calc(var(--alto) - var(--su) - var(--giu) - 6.5rem);
  display: grid; gap: var(--spazio);
  max-width: min(72rem, calc(var(--alto-libero) * var(--k, 2)));
}
.mosaico-riga { display: flex; align-items: flex-start; gap: var(--spazio); }
.tessera {
  position: relative; margin: 0; min-width: 0; flex: var(--r) 1 0%; aspect-ratio: var(--r);
  border-radius: var(--raggio-foto); background: var(--filo); box-shadow: var(--ombra);
}
.a43 { --r: 1.3333; }
.a34 { --r: 0.75; }
.tessera > img, .tessera > .loop { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: inherit; }
.tessera > img { object-fit: cover; }
.tessera figcaption {
  position: absolute; left: 0.5rem; bottom: 0.5rem; max-width: calc(100% - 1rem);
  padding: 0.22rem 0.5rem; background: var(--fondo); color: var(--inchiostro);
  font-family: var(--mono); font-size: 0.68rem; line-height: 1.35; text-align: left; text-wrap: balance;
}
@media (max-width: 760px) {
  .mosaico {
    --spazio: 0.45rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: min(100%, calc(var(--alto-libero) * var(--kt, 1)));
  }
  .mosaico-riga { display: contents; }
  .tessera { aspect-ratio: 1; }
  .tessera.intera-tel { grid-column: 1 / -1; aspect-ratio: 2; }
  .mosaico.una { grid-template-columns: minmax(0, 1fr); }
  .mosaico.una .tessera { aspect-ratio: 0.75; }
  .solo-largo { display: none; }
  .tessera figcaption { left: 0.35rem; bottom: 0.35rem; max-width: calc(100% - 0.7rem); padding: 0.15rem 0.35rem; font-size: 0.6rem; }
}
.loop { position: relative; border-radius: inherit; }
.loop-video { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; background: var(--filo); }
.loop-tasto {
  position: absolute; top: 0.5rem; right: 0.5rem; z-index: 1;
  width: 2.25rem; height: 2.25rem; padding: 0; display: none; place-items: center;
  color: var(--inchiostro); background: var(--fondo); border: 1px solid var(--filo); border-radius: var(--raggio); cursor: pointer;
}
.js .loop-tasto { display: grid; }
.loop-tasto svg { width: 0.85rem; height: 0.85rem; }
.loop-tasto:hover { border-color: var(--inchiostro); }
.loop .icona-play, .loop.in-pausa .icona-pausa { display: none; }
.loop.in-pausa .icona-play { display: block; }
.foto-fatto .loop-video { height: auto; aspect-ratio: 4 / 3; }
@media (max-width: 760px) {
  .foto-fatto .loop-video { aspect-ratio: 1 / 1; }
  .foto-fatto .loop-tasto, .tessera .loop-tasto { top: 0.3rem; right: 0.3rem; width: 1.85rem; height: 1.85rem; }
}
.video-fila {
  --colonne: 2; --massimo: 72rem;
  display: grid; grid-template-columns: repeat(var(--colonne), minmax(0, 1fr)); gap: clamp(1.25rem, 2.6vw, 2.25rem);
  max-width: min(var(--massimo), calc((var(--alto) - var(--su) - var(--giu) - 11rem) * 16 / 9 * var(--colonne) + 2.25rem));
}
.video-fila.per-1 { --colonne: 1; --massimo: 50rem; }
.video-fila.per-3 { --colonne: 3; }
.yt { margin: 0; min-width: 0; display: grid; gap: 0.65rem; align-content: start; }
.yt-cornice { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--raggio-foto); background: var(--filo); box-shadow: var(--ombra); }
.yt-cornice:has(.yt-apri:focus-visible) { outline: 2px solid var(--inchiostro); outline-offset: 3px; }
.yt-apri, .yt-cornice iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.yt-apri { display: block; color: var(--inchiostro); text-decoration: none; }
.yt-apri:focus-visible { outline: none; }
.yt-apri img { width: 100%; height: 100%; object-fit: cover; transition: transform 400ms cubic-bezier(0.2, 0.7, 0.2, 1); }
.yt-apri:hover img { transform: scale(1.03); }
.yt-titolo {
  position: absolute; left: clamp(0.9rem, 2vw, 1.4rem); right: clamp(0.9rem, 2vw, 1.4rem); top: clamp(0.75rem, 1.8vw, 1.2rem);
  font-weight: 600; font-size: clamp(1rem, 0.78rem + 0.75vw, 1.45rem); line-height: 1.2; letter-spacing: -0.01em; text-align: left; text-wrap: balance;
}
.yt-play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 3.5rem; height: 3.5rem; display: grid; place-items: center;
  color: var(--fondo); background: var(--inchiostro); box-shadow: 0 10px 30px -8px rgb(0 0 0 / 0.8);
  transition: background 150ms ease;
}
.yt-play svg { width: 1.6rem; height: 1.6rem; }
.yt-apri:hover .yt-play { background: var(--grigio-bottone); }
.yt-durata {
  position: absolute; right: 0.6rem; bottom: 0.6rem; padding: 0.12rem 0.45rem;
  background: var(--fondo); font-family: var(--mono); font-size: 0.72rem; font-variant-numeric: tabular-nums;
}
.yt figcaption { display: grid; gap: 0.1rem; justify-items: center; text-align: center; }
.yt figcaption strong { font-weight: 600; text-wrap: balance; }
.yt figcaption .titolo-sotto { display: none; }
.yt figcaption span { max-width: 48ch; font-size: 0.86rem; line-height: 1.45; color: var(--testo-2); text-wrap: balance; }
@media (prefers-reduced-motion: reduce) { .yt-apri img { transition: none; } .yt-apri:hover img { transform: none; } }
@media (max-width: 760px) {
  .video-fila, .video-fila.per-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem 0.6rem;
    max-width: min(100%, calc((var(--alto) - var(--su) - var(--giu) - 12rem) / 2 * 16 / 9));
  }
  .video-fila > .yt { grid-column: 1 / -1; }
  .video-fila.per-3 { max-width: min(100%, calc((var(--alto) - var(--su) - var(--giu) - 13rem) / 0.85)); }
  .video-fila.per-3 > .yt + .yt { grid-column: auto; }
  .per-3 .yt + .yt .yt-play { width: 2.1rem; height: 2.1rem; }
  .per-3 .yt + .yt .yt-play svg { width: 1rem; height: 1rem; }
  .per-3 .yt + .yt .yt-titolo { display: none; }
  .per-3 .yt + .yt figcaption .titolo-sotto { display: block; }
  .per-3 .yt + .yt .yt-durata { right: 0.3rem; bottom: 0.3rem; padding: 0.05rem 0.28rem; font-size: 0.56rem; }
  .per-3 .yt + .yt figcaption { font-size: 0.85rem; }
  .per-3 .yt + .yt figcaption span { font-size: 0.72rem; line-height: 1.35; }
  .yt-titolo { font-size: 0.95rem; }
  .per-3 .yt + .yt .yt-titolo { font-size: 0.72rem; left: 0.5rem; right: 0.5rem; top: 0.45rem; }
  .yt-durata { right: 0.4rem; bottom: 0.4rem; font-size: 0.66rem; }
}
@media (max-width: 760px) and (max-height: 700px) {
  .video-fila, .video-fila.per-3 { gap: 0.75rem 0.6rem; }
  .yt { gap: 0.45rem; }
}
.schede-progetto {
  --testo-scheda: 5.5rem; --rapporto-foto: 0.75;
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1.1rem, 3vh, 2rem) clamp(1rem, 2vw, 1.75rem);
  max-width: min(72rem, calc(((var(--alto) - var(--su) - var(--giu) - 7rem) / 2 - var(--testo-scheda)) / var(--rapporto-foto) * 4 + 5.25rem));
}
@media (min-width: 761px) and (max-height: 820px) {
  .schede-progetto { --rapporto-foto: 0.5625; row-gap: clamp(0.75rem, 2vh, 1.25rem); }
  .schede-progetto .scheda-foto img { aspect-ratio: 16 / 9; }
}
.scheda-progetto { display: grid; gap: 0.3rem; justify-items: center; align-content: start; height: 100%; color: inherit; text-decoration: none; }
.scheda-progetto:hover { color: inherit; }
.scheda-foto { display: block; width: 100%; margin-bottom: 0.45rem; }
.scheda-foto img {
  width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; background: var(--filo);
  border-radius: var(--raggio-foto); box-shadow: var(--ombra);
  transition: transform 350ms cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 350ms ease;
}
.scheda-progetto:hover .scheda-foto img, .scheda-progetto:focus-visible .scheda-foto img { transform: translateY(-4px); box-shadow: var(--ombra-su); }
.scheda-nome { font-weight: 600; font-size: 1.05rem; line-height: 1.25; }
.scheda-progetto:hover .scheda-nome { text-decoration: underline; text-underline-offset: 0.2em; }
.scheda-riga { font-size: 0.88rem; line-height: 1.42; text-wrap: balance; }
@media (min-width: 761px) and (max-width: 1023px) {
  .con-riga .scheda-riga { font-size: 0.82rem; line-height: 1.34; }
  .con-riga .scheda-nome { font-size: 1rem; }
}
@media (min-width: 761px) {
  .schede-progetto.con-riga {
    grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(0.6rem, 1.6vh, 1.4rem) clamp(1.5rem, 3vw, 2.75rem); max-width: 66rem;
  }
  .con-riga .scheda-progetto {
    grid-template-columns: min(9.5rem, calc(((var(--alto) - var(--su) - var(--giu) - 7rem) / 4 - 1rem) / 0.75)) minmax(0, 1fr);
    grid-template-rows: auto auto auto; align-content: center; justify-items: start; column-gap: 1.1rem; row-gap: 0.2rem; text-align: left;
  }
  .con-riga .scheda-foto { grid-row: 1 / span 3; align-self: center; margin: 0; }
  .con-riga .scheda-foto img { aspect-ratio: 4 / 3; }
}
.scheda-campi { font-family: var(--mono); font-size: 0.66rem; line-height: 1.45; letter-spacing: 0.04em; text-transform: uppercase; color: var(--testo-2); text-wrap: balance; }
@media (prefers-reduced-motion: reduce) {
  .scheda-foto img { transition: none; }
  .scheda-progetto:hover .scheda-foto img, .scheda-progetto:focus-visible .scheda-foto img { transform: none; }
}
@media (max-width: 760px) {
  .schede-progetto, .schede-progetto.con-riga {
    grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.15rem 0.75rem;
    max-width: min(100%, calc((var(--alto) - var(--su) - var(--giu) - 9rem) * 0.95));
  }
  .scheda-progetto, .con-riga .scheda-progetto { grid-template-columns: none; grid-template-rows: none; justify-items: start; align-content: start; gap: 0.2rem; text-align: left; }
  .scheda-foto, .con-riga .scheda-foto { grid-row: auto; margin: 0 0 0.4rem; }
  .scheda-foto img, .con-riga .scheda-foto img { aspect-ratio: 4 / 3; border-radius: var(--raggio-foto); }
  .scheda-nome { font-size: 1rem; }
  .scheda-riga { font-size: 0.8rem; line-height: 1.38; text-wrap: pretty; }
  .scheda-campi { font-size: 0.56rem; line-height: 1.5; }
}
@media (max-width: 760px) and (max-height: 760px) {
  .schede-progetto, .schede-progetto.con-riga { gap: 0.8rem 0.6rem; }
  .scheda-nome { font-size: 0.92rem; }
  .con-riga .scheda-campi { display: none; }
  .scheda-riga { font-size: 0.76rem; }
}
@media (max-width: 760px) and (max-height: 700px) {
  .con-riga .scheda-foto img { aspect-ratio: 16 / 9; }
  .con-riga .scheda-riga { font-size: 0.74rem; line-height: 1.32; }
  .con-riga .scheda-foto { margin-bottom: 0.3rem; }
}
.divisibile-telefono { gap: clamp(1.1rem, 3vh, 2rem); }
.divisibile-telefono > .parte { display: grid; gap: clamp(1rem, 2.4vh, 1.75rem); justify-items: center; }
@media (min-width: 761px) and (max-height: 820px) { .divisibile-telefono { gap: clamp(0.75rem, 2vh, 1.25rem); } }
@media (max-width: 760px) {
  .schermo.divisibile-telefono { display: block; min-height: 0; padding: 0; scroll-snap-align: none; }
  .divisibile-telefono > .parte {
    min-height: var(--alto); scroll-snap-align: start; align-content: center;
    padding: calc(var(--su) + 1rem) var(--margine) calc(var(--giu) + 0.75rem);
  }
}
.voce { gap: clamp(0.55rem, 1.7vh, 1.05rem); }
.voce > img {
  width: auto; max-width: 100%; height: clamp(6.5rem, calc(var(--alto) - var(--su) - var(--giu) - 21rem), 24rem);
  aspect-ratio: 3 / 4; object-fit: cover; background: var(--filo); margin-bottom: clamp(0.2rem, 1.5vh, 0.9rem);
}
.voce-citazione { margin: 0; display: grid; gap: 0.55rem; justify-items: center; }
.voce-citazione blockquote { margin: 0; }
.voce-citazione blockquote p {
  font-style: italic; font-size: clamp(1.35rem, min(0.9rem + 1.5vw, 4.4vh), 2.2rem); line-height: 1.2; letter-spacing: -0.01em;
  max-width: 26ch; text-wrap: balance;
}
.voce-citazione blockquote p::before { content: "«"; }
.voce-citazione blockquote p::after { content: "»"; }
.voce-citazione figcaption { max-width: 52ch; font-size: 0.86rem; color: var(--testo-2); text-wrap: balance; }
.voce-racconto { max-width: 50ch; text-wrap: pretty; }
@media (max-width: 760px) and (max-height: 720px) {
  .voce-citazione blockquote p { font-size: 1.15rem; }
  .voce-racconto { font-size: 0.9rem; line-height: 1.45; }
}
.loghi {
  --logo: clamp(1.6rem, 4.4vh, 2.5rem); --fra: clamp(1rem, 2.4vw, 2rem);
  list-style: none; margin: 0; padding: 0; max-width: 60rem;
  text-align: center; text-wrap: balance; line-height: 0;
}
.loghi li { display: inline-block; vertical-align: middle; margin: clamp(0.6rem, 2vh, 1.2rem) var(--fra); }
.logo-partner { display: block; width: auto; height: calc(var(--logo, 2rem) * var(--f, 1)); }
@media (max-width: 760px) { .loghi { --logo: 1.35rem; --fra: 0.8rem; max-width: 22rem; } }
.divisibile { gap: clamp(1.25rem, 3.5vh, 3.5rem); }
.parte { display: grid; gap: clamp(1rem, 2.5vh, 2rem); justify-items: center; }
.partner-elenco {
  list-style: none; margin: 0; padding: 0; width: 100%; max-width: 68rem;
  display: flex; flex-wrap: wrap; justify-content: center; gap: 1.5rem clamp(1.5rem, 3vw, 2.5rem);
}
.partner { --logo: 1.9rem; flex: 0 1 14.5rem; display: grid; gap: 0.5rem; justify-items: center; align-content: start; }
.partner-logo { display: grid; place-items: center; min-height: 3.3rem; }
.partner-cosa { font-size: 0.9rem; line-height: 1.45; color: var(--testo-2); text-wrap: balance; }
.partner-su { font-size: 0.8rem; line-height: 1.5; text-wrap: balance; }
.contatto-partner { font-size: 0.95rem; color: var(--testo-2); }
@media (min-width: 761px) and (max-height: 820px) { .partner-logo { min-height: 2.8rem; } }
@media (min-width: 1024px) and (max-width: 1180px) { .partner { flex-basis: 11.75rem; } }
@media (min-width: 761px) and (max-width: 1023px) {
  .partner-elenco { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem 1.5rem; max-width: 34rem; }
  .partner-elenco > li:nth-child(odd):last-child { grid-column: 1 / -1; justify-self: center; width: calc(50% - 0.75rem); }
}
@media (max-width: 1023px) {
  .schermo.divisibile { display: block; min-height: 0; padding: 0; scroll-snap-align: none; }
  .divisibile > .parte {
    min-height: var(--alto); scroll-snap-align: start; align-content: center;
    padding: calc(var(--su) + 1rem) var(--margine) calc(var(--giu) + 0.75rem);
  }
  .partner-elenco { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem 0.9rem; }
  .partner-elenco > li:nth-child(odd):last-child { grid-column: 1 / -1; justify-self: center; width: calc(50% - 0.45rem); }
  .partner { --logo: 1.55rem; gap: 0.4rem; }
  .partner-logo { min-height: 2.8rem; }
  .partner-cosa { font-size: 0.8rem; line-height: 1.4; }
  .partner-su { font-size: 0.72rem; }
}
.progetto-apertura { gap: clamp(0.5rem, 1.6vh, 0.95rem); }
.progetto-apertura > img {
  width: auto; max-width: 100%; height: clamp(8rem, calc(var(--alto) - var(--su) - var(--giu) - 22.5rem), 26rem);
  aspect-ratio: 4 / 3; object-fit: cover; background: var(--filo); margin-bottom: clamp(0.25rem, 1.5vh, 1rem);
}
.progetto-apertura h1 { font-size: clamp(2rem, min(1.1rem + 3.2vw, 7.4vh), 3.6rem); font-weight: 600; letter-spacing: -0.02em; line-height: 1.05; }
.senza-copertina h1 { font-size: clamp(2.3rem, min(1.2rem + 3.8vw, 8.4vh), 4.2rem); }
.progetto-apertura .riga { max-width: 46ch; font-size: clamp(1.02rem, min(0.96rem + 0.45vw, 2.8vh), 1.28rem); color: var(--testo-2); text-wrap: balance; }
.campi-progetto { max-width: 50ch; font-size: 0.92rem; text-wrap: balance; }
.campi-progetto span {
  display: block; margin-bottom: 0.15rem;
  font-family: var(--mono); font-size: 0.7rem; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--testo-2);
}
@media (max-width: 760px) {
  .progetto-apertura > img { width: 100%; height: auto; max-height: clamp(7rem, calc(var(--alto) - var(--giu) - 22rem), 20rem); }
}
.tappe-progetto { list-style: none; margin: 0; padding: 0; max-width: 44rem; display: grid; gap: clamp(0.5rem, 1.6vh, 1rem); justify-items: center; }
.tappe-progetto li { display: grid; gap: 0.3rem; justify-items: center; }
.tappe-progetto li + li::before { content: ""; width: 1px; height: clamp(1rem, 3.2vh, 2rem); margin-bottom: clamp(0.4rem, 1.4vh, 0.9rem); background: var(--bordo-campo); }
.quando { font-family: var(--mono); font-size: 0.76rem; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--testo-2); }
.cosa-successa { max-width: 46ch; font-size: clamp(1.02rem, min(0.95rem + 0.45vw, 2.8vh), 1.3rem); line-height: 1.5; text-wrap: balance; }
.altre-storie.per-1 { grid-template-columns: minmax(0, 1fr); max-width: min(13rem, calc((var(--disponibile) - 3.6rem) * 0.8 * 0.84)); }
.altre-storie.per-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: min(27.5rem, calc((var(--disponibile) - 3.6rem) * 0.8 * 2 * 0.84 + 1.5rem)); }
@media (max-width: 760px) { .altre-storie.per-1 { max-width: min(50%, 12rem); } }
@media (max-height: 760px) {
  .tappe-progetto { gap: 0.35rem; }
  .tappe-progetto li + li::before { height: 0.8rem; margin-bottom: 0.35rem; }
}
@media (max-width: 760px) and (max-height: 760px) {
  .cosa-successa { font-size: 0.92rem; line-height: 1.42; }
  .quando { font-size: 0.68rem; }
}
.piede .social { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.35rem 1.4rem; list-style: none; margin: 0.55rem 0 0.1rem; padding: 0; }
.piede .social a { display: inline-flex; align-items: center; gap: 0.45rem; padding-block: 0.3rem; color: var(--inchiostro); text-decoration: none; }
.piede .social svg { width: 1.15rem; height: 1.15rem; flex: none; }
.piede .social a:hover span { text-decoration: underline; text-underline-offset: 0.25em; }
.sezione-intro { max-width: 52ch; color: var(--testo-2); text-wrap: balance; }
.numeri {
  list-style: none; margin: 0; padding: 0; max-width: 62rem;
  display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(1.5rem, 4.5vh, 2.75rem) clamp(2rem, 5vw, 4.5rem);
}
.numeri li { flex: 0 1 12.5rem; display: grid; gap: 0.45rem; justify-items: center; align-content: start; }
.numeri strong {
  font-family: var(--mono); font-weight: 500; font-size: clamp(2rem, min(1.1rem + 3vw, 7vh), 3.3rem);
  line-height: 1; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; white-space: nowrap;
}
.numeri span { max-width: 22ch; font-size: 0.92rem; line-height: 1.45; color: var(--testo-2); text-wrap: balance; }
.dettagli {
  list-style: none; margin: 0; padding: 0; max-width: 54ch;
  display: grid; gap: clamp(0.8rem, 2.4vh, 1.4rem); font-size: clamp(1rem, min(0.94rem + 0.3vw, 2.7vh), 1.14rem); text-wrap: balance;
}
.dettagli strong { font-weight: 600; }
@media (max-width: 760px) {
  .numeri { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem 1rem; max-width: 26rem; }
  .numeri.per-1, .numeri.per-3 li:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .numeri.per-1 { grid-template-columns: minmax(0, 1fr); }
  .numeri strong { font-size: clamp(1.7rem, 8vw, 2.3rem); }
  .numeri span { font-size: 0.82rem; }
  .dettagli { font-size: 0.95rem; gap: 0.75rem; }
}
@media (max-width: 760px) and (max-height: 760px) {
  .dettagli { font-size: 0.88rem; line-height: 1.42; gap: 0.55rem; }
  .numeri { gap: 1.1rem 0.8rem; }
}
.pagina-tecnica main { padding-top: var(--su); }
.tecnica { --largo: 80rem; }
.tecnica-apertura {
  max-width: var(--largo); margin: 0 auto; padding: clamp(1.25rem, 4vh, 3rem) var(--margine) clamp(2rem, 6vh, 4rem);
  min-height: calc(var(--alto) - var(--su));
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center;
}
.tecnica-testo { display: grid; gap: clamp(0.8rem, 2vh, 1.15rem); align-content: center; }
.briciole { font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.06em; color: var(--testo-2); }
.briciole a { color: inherit; }
.briciole a:hover { color: var(--inchiostro); }
.briciole [aria-current] { color: var(--inchiostro); }
.tecnica-testo h1 { font-size: clamp(2.6rem, 1.3rem + 4.4vw, 5.2rem); font-weight: 600; letter-spacing: -0.035em; line-height: 0.96; }
.tecnica-testo h1.nome-lungo { font-size: clamp(2.2rem, 0.9rem + 3.3vw, 4rem); hyphens: manual; }
.tecnica-testo .riga { max-width: 34ch; font-size: clamp(1.08rem, 0.98rem + 0.4vw, 1.32rem); line-height: 1.45; color: var(--testo-2); text-wrap: pretty; }
.tecnica-testo .campi-progetto { font-size: 0.9rem; }
.tecnica-testo .azioni { margin-top: 0.4rem; }
.cifre { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); border-top: 1px solid var(--filo); }
.cifre > div { display: grid; gap: 0.3rem; align-content: start; padding: 0.85rem 1.1rem 0.95rem 0; border-bottom: 1px solid var(--filo); }
.cifre dd { order: 1; margin: 0; font-family: var(--mono); font-weight: 500; font-size: clamp(1.35rem, 0.95rem + 1.3vw, 2rem); line-height: 1.05; letter-spacing: -0.035em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cifre dt { order: 2; font-size: 0.8rem; line-height: 1.35; color: var(--testo-2); }
.cifre-testa { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 400px) { .cifre dd { white-space: normal; } }
.oggetto { position: relative; margin: 0; display: grid; gap: 0.65rem; }
.oggetto-tela { display: block; width: 100%; aspect-ratio: 4 / 3; cursor: grab; touch-action: pan-y; -webkit-user-select: none; user-select: none; }
.oggetto.trascina .oggetto-tela { cursor: grabbing; }
.oggetto-tela:focus-visible { outline: 2px solid var(--inchiostro); outline-offset: 2px; }
.oggetto-grande .oggetto-tela { aspect-ratio: 8 / 7; max-height: calc(var(--alto) - var(--su) - 9rem); }
.oggetto figcaption {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 1rem;
  font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.04em; color: var(--testo-2);
}
.oggetto-titolo { color: var(--inchiostro); text-transform: uppercase; letter-spacing: 0.1em; }
.oggetto-aiuto { margin-left: auto; }
.oggetto-scelte { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.oggetto-scelte button {
  font: inherit; font-family: var(--mono); font-size: 0.78rem; line-height: 1.2; color: var(--inchiostro); cursor: pointer;
  background: var(--fondo); border: 1px solid var(--bordo-campo); border-radius: var(--raggio); padding: 0.45rem 0.85rem;
}
.oggetto-scelte button:hover { border-color: var(--inchiostro); }
.oggetto-scelte button[aria-pressed="true"] { color: var(--fondo); background: var(--inchiostro); border-color: var(--inchiostro); }
.oggetto-foto img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.tecnica-corpo {
  max-width: var(--largo); margin: 0 auto; padding: 0 var(--margine) clamp(2rem, 6vh, 4rem);
  display: grid; grid-template-columns: 12rem minmax(0, 1fr); gap: clamp(2rem, 4vw, 4.5rem); align-items: start;
}
.indice { position: sticky; top: calc(var(--su) + 1.5rem); padding-top: 2.5rem; }
.indice ol { list-style: none; margin: 0.7rem 0 0; padding: 0; display: grid; gap: 0.05rem; }
.indice a { display: grid; grid-template-columns: 2rem minmax(0, 1fr); padding: 0.32rem 0; font-size: 0.86rem; line-height: 1.35; color: var(--testo-2); text-decoration: none; }
.indice a span { padding-top: 0.12rem; font-family: var(--mono); font-size: 0.7rem; }
.indice a:hover, .indice a[aria-current="true"] { color: var(--inchiostro); }
.indice a[aria-current="true"] span::before { content: "■ "; font-size: 0.55rem; vertical-align: 0.12em; }
.tecnica-sezioni { min-width: 0; }
.blocco { display: grid; gap: clamp(1.2rem, 3vh, 2rem); padding: clamp(2.2rem, 6vh, 3.6rem) 0; border-top: 1px solid var(--filo); scroll-margin-top: calc(var(--su) + 0.5rem); }
.blocco-testa { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: baseline; gap: 1rem; }
.blocco-numero { font-family: var(--mono); font-size: 0.78rem; color: var(--testo-2); }
.blocco-testa h2 { font-size: clamp(1.55rem, 1.1rem + 1.3vw, 2.3rem); font-weight: 600; letter-spacing: -0.025em; line-height: 1.08; text-wrap: balance; }
.testo-tecnico { max-width: 46rem; display: grid; gap: 0.9rem; }
.testo-tecnico p { font-size: 1.03rem; line-height: 1.68; text-wrap: pretty; }
.testo-tecnico.a-colonne { max-width: none; display: block; columns: 2 21rem; column-gap: 2.75rem; }
.testo-tecnico.a-colonne p { margin-bottom: 0.9rem; break-inside: avoid; }
.nota-tecnica { max-width: 60ch; font-size: 0.86rem; color: var(--testo-2); }
.colonne-tecniche { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(14.5rem, 1fr)); border-top: 1px solid var(--filo); }
.colonne-tecniche li { display: grid; gap: 0.45rem; align-content: start; padding: 1.1rem 1.5rem 1.3rem 0; border-bottom: 1px solid var(--filo); }
.colonna-numero { font-family: var(--mono); font-size: 0.72rem; color: var(--testo-2); }
.colonne-tecniche h3 { font-size: 1.06rem; font-weight: 600; line-height: 1.25; }
.colonne-tecniche p { font-size: 0.93rem; line-height: 1.55; color: var(--testo-2); text-wrap: pretty; }
.scheda-tecnica { overflow-x: auto; }
.scheda-tecnica table { width: 100%; border-collapse: collapse; font-size: 0.93rem; }
.scheda-tecnica caption { padding-bottom: 0.6rem; text-align: left; font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--testo-2); }
.scheda-tecnica th, .scheda-tecnica td { padding: 0.55rem 1.1rem 0.55rem 0; border-top: 1px solid var(--filo); text-align: left; vertical-align: baseline; }
.scheda-tecnica tr:last-child > * { border-bottom: 1px solid var(--filo); }
.scheda-tecnica th { width: 36%; font-weight: 400; color: var(--testo-2); }
.scheda-tecnica td:nth-child(2) { font-family: var(--mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.scheda-tecnica td:nth-child(3) { font-size: 0.82rem; color: var(--testo-2); }
.scheda-tecnica.con-intestazione thead th { width: auto; padding-bottom: 0.45rem; border-top: 0; font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--testo-2); }
.scheda-tecnica.con-intestazione tbody th { width: 26%; }
.scheda-tecnica.con-intestazione td:nth-child(2), .scheda-tecnica.con-intestazione td:nth-child(3) { width: 37%; font-family: inherit; font-size: 0.93rem; color: var(--inchiostro); white-space: normal; }
.foto-tecnica { margin: 0; display: grid; gap: 0.7rem; max-width: 52rem; }
.foto-tecnica img { display: block; width: 100%; height: auto; }
.foto-tecnica figcaption { max-width: 62ch; font-size: 0.86rem; line-height: 1.5; color: var(--testo-2); }
.grafico { margin: 0; display: grid; gap: 0.7rem; }
.grafico-tela { display: block; width: 100%; height: auto; }
.grafico figcaption { max-width: 62ch; font-size: 0.86rem; line-height: 1.5; color: var(--testo-2); }
.grafico figcaption strong { font-weight: 600; color: var(--inchiostro); }
.legenda-grafico { margin: 0; padding: 0; list-style: none; counter-reset: fase; display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 0.55rem 1.5rem; }
.legenda-grafico li { counter-increment: fase; display: grid; grid-template-columns: 1.7rem minmax(0, 1fr); column-gap: 0.55rem; font-size: 0.86rem; line-height: 1.4; }
.legenda-grafico li::before {
  content: counter(fase); grid-row: 1 / span 2; display: grid; place-items: center; width: 1.45rem; height: 1.45rem;
  font-family: var(--mono); font-size: 0.7rem; border: 1px dotted var(--inchiostro); border-radius: 50%;
}
.legenda-grafico strong { font-weight: 600; }
.legenda-grafico span { grid-column: 2; font-size: 0.8rem; color: var(--testo-2); }
.grafico-dati summary { width: fit-content; cursor: pointer; font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.06em; color: var(--testo-2); }
.grafico-dati summary:hover { color: var(--inchiostro); }
.grafico-dati table { margin-top: 0.6rem; border-collapse: collapse; font-size: 0.85rem; }
.grafico-dati th, .grafico-dati td { padding: 0.35rem 1.25rem 0.35rem 0; border-top: 1px solid var(--filo); text-align: left; font-weight: 400; }
.grafico-dati td { font-family: var(--mono); }
.codice-tecnico { margin: 0; display: grid; gap: 0.5rem; }
.codice-tecnico pre {
  margin: 0; overflow-x: auto; padding: 1rem 1.2rem; font-family: var(--mono); font-size: 0.82rem; line-height: 1.65;
  background: color-mix(in oklab, var(--fondo) 93%, white); border: 1px solid var(--filo);
}
.codice-tecnico figcaption { font-size: 0.82rem; color: var(--testo-2); }
.tappe-tecniche { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
.tappe-tecniche li { position: relative; display: grid; gap: 0.45rem; align-content: start; padding: 1.5rem 1.4rem 0.5rem 0; }
.tappe-tecniche li::before { content: ""; position: absolute; left: 0; right: 0; top: 0; border-top: 2px dotted var(--testo-2); }
.tappe-tecniche li::after { content: ""; position: absolute; left: 0; top: -4px; width: 8px; height: 8px; background: var(--inchiostro); }
.tappe-tecniche .quando { font-family: var(--mono); font-size: 0.74rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--testo-2); }
.tappe-tecniche .cosa-successa { font-size: 0.95rem; line-height: 1.5; text-wrap: pretty; }
.fonti-tecniche { max-width: 62ch; margin: 0; padding-left: 1.1rem; display: grid; gap: 0.4rem; font-size: 0.85rem; color: var(--testo-2); }
.tecnica .loghi { max-width: none; text-align: left; }
.tecnica .loghi li { margin-left: 0; margin-right: clamp(1.6rem, 4vw, 3.2rem); }
.tecnica .rimandi { font-size: 0.9rem; }
.tecnica .mosaico { --alto-libero: calc(var(--alto) - var(--su) - 8rem); }
.tecnica .video-fila { max-width: none; }
.tecnica-entra {
  max-width: var(--largo); margin: 0 auto; padding: clamp(3rem, 9vh, 6rem) var(--margine);
  display: grid; justify-items: center; gap: 1rem; text-align: center; border-top: 1px solid var(--filo);
}
.tecnica-entra h2 { font-size: clamp(1.8rem, 1.2rem + 2vw, 2.8rem); font-weight: 600; letter-spacing: -0.025em; }
.tecnica-entra p { max-width: 50ch; color: var(--testo-2); text-wrap: balance; }
.tecnica-entra .azioni { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0.8rem 1.4rem; }
@media (max-width: 1000px) {
  .tecnica-apertura { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .tecnica-apertura .oggetto-grande { order: -1; }
  .oggetto-grande .oggetto-tela { aspect-ratio: 1 / 1; max-height: 62vh; }
  .tecnica-corpo { grid-template-columns: minmax(0, 1fr); }
  .indice { display: none; }
}
@media (max-width: 760px) {
  .pagina-tecnica main { padding-top: 0; }
  .tecnica-apertura { padding-top: 0.5rem; }
  .testo-tecnico.a-colonne { columns: 1; }
  .testo-tecnico p { font-size: 0.98rem; line-height: 1.62; }
  .oggetto-aiuto { margin-left: 0; }
  .cifre-testa { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .scheda-tecnica table { font-size: 0.88rem; }
  .scheda-tecnica th { width: 44%; }
  .tappe-tecniche { grid-template-columns: minmax(0, 1fr); }
  .tappe-tecniche li { padding: 0 0 1.3rem 1.4rem; }
  .tappe-tecniche li::before { left: 3px; right: auto; top: 0; bottom: 0; border-top: 0; border-left: 2px dotted var(--testo-2); }
  .tappe-tecniche li::after { left: 0; top: 0.3rem; }
}
@media (max-width: 480px) {
  .scheda-tecnica td:nth-child(3) { display: none; }
}
.apertura.porto { align-content: start; padding-top: calc(var(--su) + clamp(3rem, 14vh, 9rem)); }
@media (max-width: 760px) { .apertura.porto { padding-top: clamp(4.5rem, 16vh, 9rem); } }
.racconto { justify-items: stretch; text-align: left; }
.racconto-testo { width: 100%; max-width: 72rem; margin-inline: auto; display: grid; gap: clamp(0.7rem, 1.8vh, 1.1rem); justify-items: start; }
.racconto-testo > * { max-width: min(31rem, 46vw); }
.racconto h2 { font-size: clamp(2.1rem, min(1.2rem + 3vw, 7vh), 3.6rem); font-weight: 600; letter-spacing: -0.025em; line-height: 1.02; }
.racconto-riga { font-size: clamp(1.05rem, min(0.98rem + 0.45vw, 2.9vh), 1.3rem); text-wrap: pretty; }
.racconto-cifre { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dietro { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; font-size: clamp(1rem, 0.96rem + 0.3vw, 1.2rem); text-wrap: pretty; }
.dietro a { font-weight: 600; }
@media (max-width: 760px) {
  .racconto { align-content: start; padding-top: clamp(1.25rem, 4vh, 2.5rem); }
  .racconto-testo > * { max-width: 100%; }
  .racconto h2 { font-size: clamp(1.9rem, 8vw, 2.4rem); }
  .racconto .cifre dd { font-size: 1.3rem; }
  .racconto .cifre > div { padding: 0.6rem 0.8rem 0.65rem 0; }
}
@media (max-width: 760px) and (max-height: 740px) {
  .racconto-cifre { display: none; }
}
.tutto-dope { align-content: end; padding-bottom: calc(var(--giu) + clamp(2rem, 9vh, 6rem)); }
.domande-brevi { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 3vh, 1.75rem) clamp(1.5rem, 4vw, 3.5rem); width: 100%; max-width: 56rem; text-align: left; }
.domande-brevi dt { font-weight: 600; font-size: clamp(1rem, 0.96rem + 0.3vw, 1.15rem); margin-bottom: 0.3rem; }
.domande-brevi dd { margin: 0; color: var(--testo-2); text-wrap: pretty; }
@media (max-width: 760px) { .domande-brevi { grid-template-columns: 1fr; gap: 0.8rem; } .domande-brevi dd { font-size: 0.92rem; } }
@media (max-width: 760px) and (max-height: 780px) {
  .domande-brevi { gap: 0.5rem; }
  .domande-brevi dt { font-size: 0.98rem; margin-bottom: 0.15rem; }
  .domande-brevi dd { font-size: 0.86rem; line-height: 1.4; }
}
.strofa-manifesto { justify-items: stretch; text-align: left; }
.strofa-testo { width: 100%; max-width: 72rem; margin-inline: auto; display: grid; gap: clamp(0.8rem, 2vh, 1.2rem); justify-items: start; }
.strofa-testo > * { max-width: min(34rem, 48vw); }
.a-destra .strofa-testo { justify-items: end; }
.a-destra .strofa-testo > * { width: min(34rem, 48vw); }
.strofa-testo p { font-size: clamp(1.05rem, min(0.98rem + 0.5vw, 3vh), 1.35rem); line-height: 1.5; text-wrap: pretty; }
.strofa-testo p.attacco { font-size: clamp(1.45rem, min(1.1rem + 1.4vw, 4.6vh), 2.2rem); font-weight: 600; line-height: 1.2; letter-spacing: -0.015em; }
.strofa-manifesto.in-basso { align-content: end; justify-items: center; text-align: center; padding-bottom: calc(var(--giu) + clamp(2rem, 8vh, 5rem)); }
.in-basso .strofa-testo { justify-items: center; }
.strofa-testo .azioni { display: flex; flex-wrap: wrap; align-items: center; gap: 0.8rem 1.4rem; }
@media (max-width: 760px) {
  .strofa-manifesto { align-content: start; padding-top: clamp(1.25rem, 4vh, 2.5rem); }
  .strofa-testo > *, .a-destra .strofa-testo > * { max-width: 100%; width: auto; }
  .a-destra .strofa-testo { justify-items: start; }
  .strofa-testo p { font-size: 1rem; }
  .strofa-testo p.attacco { font-size: 1.35rem; }
}
.domande .domanda { margin-top: 1.1rem; }
.domande h3 { font-size: 1.05rem; font-weight: 600; margin-bottom: 0.3rem; }
.domande .azioni { margin-top: clamp(2rem, 5vh, 3rem); display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0.8rem 1.4rem; }
.domande-lunghe { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 3vh, 1.9rem) clamp(1.5rem, 4vw, 3.5rem); width: 100%; max-width: 60rem; text-align: left; }
.domande-lunghe dt { font-weight: 600; font-size: clamp(1.02rem, 0.96rem + 0.35vw, 1.2rem); margin-bottom: 0.35rem; text-wrap: balance; }
.domande-lunghe dd { margin: 0; color: var(--testo-2); line-height: 1.55; text-wrap: pretty; }
.domande-schermo .parte { gap: clamp(0.8rem, 2.4vh, 1.6rem); }
@media (max-width: 760px) {
  .domande-lunghe { grid-template-columns: 1fr; gap: 1.1rem; }
  .domande-lunghe dd { font-size: 0.95rem; }
}
/* ---------- misure calcolate da costruisci.mjs ---------- */
.m-vita { --k: 2.220; --kt: 0.667; }
.m-biobrick { --k: 2.833; --kt: 1.000; }
.m-cyber { --k: 2.083; --kt: 2.000; }
.m-uas-challenge { --k: 1.498; --kt: 0.667; }
.m-rocket { --k: 1.374; --kt: 0.667; }
.m-zero-g { --k: 3.417; --kt: 1.000; }
.m-quantum { --k: 2.083; --kt: 2.000; }
.m-robotic { --k: 0.750; --kt: 0.750; }
.m-explain { --k: 0.750; --kt: 0.750; }
.l-unige { --f: 1.450; }
.l-dime { --f: 0.748; }
.l-camcom { --f: 0.967; }
.l-rina { --f: 1.305; }
.l-ansys { --f: 0.965; }
.l-simscale { --f: 0.744; }
.l-jpdroni { --f: 0.998; }
.l-dream { --f: 1.055; }
.l-multiscan { --f: 0.880; }
.l-clp { --f: 1.015; }
.l-legacoop { --f: 0.870; }
.l-notion { --f: 1.062; }
.l-onshape { --f: 0.835; }
.r-1000-264 { aspect-ratio: 1000 / 264; }
.r-1000-340 { aspect-ratio: 1000 / 340; }
.r-1000-314 { aspect-ratio: 1000 / 314; }
.r-1000-258 { aspect-ratio: 1000 / 258; }
.r-1000-388 { aspect-ratio: 1000 / 388; }
.r-1000-540 { aspect-ratio: 1000 / 540; }
.r-1000-188 { aspect-ratio: 1000 / 188; }
.r-1000-322 { aspect-ratio: 1000 / 322; }
.r-1000-480 { aspect-ratio: 1000 / 480; }
.r-1000-520 { aspect-ratio: 1000 / 520; }
.r-1000-460 { aspect-ratio: 1000 / 460; }
.r-1000-500 { aspect-ratio: 1000 / 500; }
.r-1000-184 { aspect-ratio: 1000 / 184; }
.r-1000-430 { aspect-ratio: 1000 / 430; }
@media (max-width: 640px) {
  .rs-560-356 { aspect-ratio: 560 / 356; }
  .rs-560-468 { aspect-ratio: 560 / 468; }
  .rs-560-650 { aspect-ratio: 560 / 650; }
  .rs-560-510 { aspect-ratio: 560 / 510; }
  .rs-560-830 { aspect-ratio: 560 / 830; }
  .rs-560-620 { aspect-ratio: 560 / 620; }
  .rs-560-244 { aspect-ratio: 560 / 244; }
  .rs-560-272 { aspect-ratio: 560 / 272; }
  .rs-560-600 { aspect-ratio: 560 / 600; }
  .rs-560-812 { aspect-ratio: 560 / 812; }
  .rs-560-252 { aspect-ratio: 560 / 252; }
  .rs-560-520 { aspect-ratio: 560 / 520; }
}
