/* ==========================================================================
   ticonzero.org — foglio di stile unico
   Direzione "Sala": la pagina si comporta come la sala del concerto.
   Buio, tipografia silenziosa, la luce arriva dalle fotografie.
   ========================================================================== */

/* --- 1. Variabili -------------------------------------------------------- */
:root{
  --nero:      #08090B;   /* fondo della sala */
  --nero-2:    #0E1014;   /* superfici leggermente rialzate */
  --nero-3:    #14171C;   /* tabelle, righe alternate */
  --carta:     #F2F1EE;   /* testo principale */
  --fumo:      #8B9099;   /* testo secondario */
  --fumo-2:    #747A86;   /* testo terziario, didascalie — 4.62:1 sul fondo */
  --ciano:     #38C6D9;   /* accento, preso dalle proiezioni */
  --ciano-cupo:#1E7F8D;
  --linea:     rgba(242,241,238,.14);
  --linea-2:   rgba(242,241,238,.07);

  --sans: "Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono: "IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --gutter: clamp(20px,5vw,64px);
  --misura: 68ch;
}

/* --- 2. Reset essenziale ------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--nero);
  color:var(--carta);
  font-family:var(--sans);
  font-variation-settings:"wdth" 100,"wght" 400;
  font-size:clamp(15px,1.05vw,17px);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{margin:0;text-wrap:balance}
p{margin:0}
ul{margin:0;padding:0;list-style:none}

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

.salta{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--ciano);color:var(--nero);padding:12px 18px;
  font-family:var(--mono);font-size:13px;text-decoration:none;
}
.salta:focus{left:8px;top:8px}

/* --- 3. Elementi tipografici condivisi ----------------------------------- */
.etichetta{
  font-family:var(--mono);font-size:11px;font-weight:500;
  letter-spacing:.2em;text-transform:uppercase;color:var(--ciano);
  display:block;
}
.etichetta--muta{color:var(--fumo-2)}

.titolo-xl{
  font-variation-settings:"wdth" 122,"wght" 700;
  font-size:clamp(34px,7.2vw,86px);line-height:.94;letter-spacing:-.028em;
}
.titolo-l{
  font-variation-settings:"wdth" 118,"wght" 700;
  font-size:clamp(27px,4.4vw,52px);line-height:1.02;letter-spacing:-.022em;
}
.titolo-m{
  font-variation-settings:"wdth" 112,"wght" 700;
  font-size:clamp(21px,2.6vw,32px);line-height:1.12;letter-spacing:-.015em;
}
.titolo-s{
  font-variation-settings:"wdth" 108,"wght" 600;
  font-size:clamp(17px,1.7vw,21px);line-height:1.25;letter-spacing:-.008em;
}
.guida{font-size:clamp(16px,1.5vw,20px);line-height:1.6;color:var(--carta)}
.testo{color:var(--fumo);max-width:var(--misura)}
.testo + .testo{margin-top:1.1em}
.testo a{color:var(--carta);text-decoration:underline;text-decoration-color:var(--ciano-cupo);text-underline-offset:3px}
.testo a:hover{text-decoration-color:var(--ciano)}
.testo strong{color:var(--carta);font-weight:600}

/* --- 4. Struttura -------------------------------------------------------- */
.contenitore{max-width:1280px;margin:0 auto;padding-inline:var(--gutter)}
.sezione{padding-block:clamp(52px,9vw,120px)}
.sezione--stretta{padding-block:clamp(38px,6vw,76px)}
.riga-sopra{border-top:1px solid var(--linea)}

/* --- 5. Testata ---------------------------------------------------------- */
.testata{position:fixed;top:0;left:0;right:0;z-index:50;
  border-bottom:1px solid transparent;transition:border-color .3s}
/* la sfocatura sta su uno pseudo-elemento: se stesse sulla testata,
   questa diventerebbe il riferimento del menu in position:fixed e il
   menu chiuso resterebbe visibile invece di uscire dallo schermo */
.testata::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(to bottom,rgba(8,9,11,.92),rgba(8,9,11,0));
  transition:background .3s}
.testata.is-fissa::before{background:rgba(8,9,11,.96);backdrop-filter:blur(10px)}
.testata.is-fissa{border-bottom-color:var(--linea)}
.testata__int{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding-block:16px;
}
.logo{
  font-variation-settings:"wdth" 118,"wght" 700;
  font-size:18px;letter-spacing:.005em;text-decoration:none;color:var(--carta);
  flex:none;
}
.logo:hover{color:var(--ciano)}
.menu{display:flex;align-items:center;gap:clamp(14px,2.4vw,32px)}
.menu a{
  font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  text-decoration:none;color:var(--fumo);padding:6px 0;
  border-bottom:1px solid transparent;transition:color .2s,border-color .2s;
}
.menu a:hover{color:var(--carta)}
.menu a[aria-current="page"]{color:var(--carta);border-bottom-color:var(--ciano)}
.menu__mail{color:var(--ciano)!important}

.apri-menu{
  display:none;background:none;border:1px solid var(--linea);color:var(--carta);
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  padding:9px 13px;cursor:pointer;
}
.apri-menu:hover{border-color:var(--ciano)}

@media (max-width:860px){
  .apri-menu{display:block}
  .menu{
    position:fixed;inset:0;background:rgba(8,9,11,.985);
    flex-direction:column;align-items:flex-start;justify-content:center;
    gap:4px;padding:var(--gutter);
    transform:translateY(-100%);transition:transform .38s cubic-bezier(.4,0,.2,1);
    z-index:60;
  ;visibility:hidden;pointer-events:none;height:100dvh}
  .menu.is-aperto{transform:translateY(0);visibility:visible;pointer-events:auto}
  .menu a{font-size:15px;letter-spacing:.1em;padding:12px 0}
  .chiudi-menu{
    position:absolute;top:16px;right:var(--gutter);
    background:none;border:1px solid var(--linea);color:var(--carta);
    font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
    padding:9px 13px;cursor:pointer;
  }
}
@media (min-width:861px){ .chiudi-menu{display:none} }

/* --- 6. Apertura (hero) -------------------------------------------------- */
.apertura{position:relative;display:flex;align-items:flex-end;overflow:hidden}
.apertura--piena{min-height:100svh}
.apertura--interna{min-height:clamp(400px,62svh,620px)}
.apertura__sfondo{position:absolute;inset:0;overflow:hidden}
.apertura__sfondo img{
  width:100%;height:100%;object-fit:cover;
  animation:respiro 30s ease-in-out infinite alternate;
}
@keyframes respiro{from{transform:scale(1.01)}to{transform:scale(1.1)}}
.apertura__sfondo::after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(115% 85% at 50% 28%,rgba(8,9,11,0) 0%,rgba(8,9,11,.5) 60%,rgba(8,9,11,.9) 100%),
    linear-gradient(to top,rgba(8,9,11,.96) 0%,rgba(8,9,11,.55) 30%,rgba(8,9,11,.1) 68%);
}
.apertura__testo{
  position:relative;z-index:2;width:100%;
  padding-block:clamp(40px,8vw,88px);
}
.apertura__testo .etichetta{margin-bottom:20px}
.apertura__testo .titolo-xl{margin-bottom:24px;max-width:16ch}
.apertura--interna .titolo-xl{max-width:20ch}
.apertura__testo .guida{max-width:52ch;color:rgba(242,241,238,.8)}

/* --- 7. Tessere (griglia di rimandi) ------------------------------------- */
.griglia{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));
  gap:1px;background:var(--linea);
}
.tessera{
  position:relative;display:block;text-decoration:none;color:var(--carta);
  background:var(--nero);aspect-ratio:4/5;overflow:hidden;isolation:isolate;
}
.tessera img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform 1.1s cubic-bezier(.2,.7,.3,1),filter .5s;
  filter:saturate(1.02) brightness(.94);
}
.tessera:hover img,.tessera:focus-visible img{transform:scale(1.06);filter:saturate(1.12) brightness(1)}
.tessera::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,rgba(8,9,11,.94) 4%,rgba(8,9,11,.3) 52%,rgba(8,9,11,.05) 100%);
}
.tessera__testo{position:absolute;z-index:2;inset:auto 0 0 0;padding:clamp(20px,2.4vw,30px)}
.tessera__testo .etichetta{margin-bottom:9px;font-size:10px}
.tessera__nome{
  font-variation-settings:"wdth" 114,"wght" 700;
  font-size:clamp(20px,2.4vw,29px);line-height:1.04;letter-spacing:-.015em;display:block;
}
.tessera__desc{
  margin-top:11px;font-size:13.5px;line-height:1.5;color:rgba(242,241,238,.62);max-width:34ch;
}

/* --- 8. Scheda progetto (immagine + testo, alternate) -------------------- */
.scheda{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(24px,5vw,72px);align-items:center;
  padding-block:clamp(40px,6vw,80px);border-top:1px solid var(--linea);
}
.scheda:first-of-type{border-top:none}
.scheda__foto{margin:0;position:relative}
.scheda__foto img{width:100%;aspect-ratio:4/5;object-fit:cover}
.scheda__foto figcaption{
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--fumo-2);padding-top:10px;
}
.scheda:nth-child(even) .scheda__foto{order:2}
.scheda__corpo .etichetta{margin-bottom:14px}
.scheda__corpo .titolo-l{margin-bottom:18px}
.scheda__meta{
  display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid var(--linea-2);
}
.scheda__meta span{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--fumo-2);border:1px solid var(--linea);padding:6px 10px;
}
@media (max-width:760px){
  .scheda{grid-template-columns:1fr}
  .scheda:nth-child(even) .scheda__foto{order:0}
  .scheda__foto img{aspect-ratio:3/2}
}

/* --- 9. Blocco introduttivo a due colonne -------------------------------- */
.doppia{
  display:grid;grid-template-columns:minmax(0,20ch) minmax(0,1fr);
  gap:clamp(20px,4vw,64px);align-items:start;
}
@media (max-width:760px){ .doppia{grid-template-columns:1fr;gap:20px} }

/* --- 10. Pagine documento (trasparenza) ---------------------------------- */
.doc{max-width:78ch}
.doc h2{margin-top:clamp(34px,5vw,58px);margin-bottom:16px}
.doc h2:first-child{margin-top:0}
.doc h3{margin-top:32px;margin-bottom:10px}
.doc .testo{margin-bottom:1.1em}
.doc__nota{
  font-family:var(--mono);font-size:12px;line-height:1.7;color:var(--fumo-2);
  border-left:2px solid var(--ciano-cupo);padding:2px 0 2px 16px;margin-top:28px;
}

.persona{
  padding-block:clamp(24px,3.4vw,38px);border-top:1px solid var(--linea);
  display:grid;grid-template-columns:minmax(0,23ch) minmax(0,1fr);
  gap:clamp(16px,3vw,48px);align-items:start;
}
.persona:first-of-type{border-top:none;padding-top:0}
@media (max-width:860px){ .persona{grid-template-columns:1fr;gap:0} }
.persona__nome{
  font-variation-settings:"wdth" 112,"wght" 700;
  font-size:clamp(18px,2vw,24px);line-height:1.15;letter-spacing:-.012em;margin-bottom:6px;
}
.persona__intestazione{position:sticky;top:88px}
.persona__ruolo{
  font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ciano);margin-bottom:14px;display:block;
}
.persona__bio{color:var(--fumo);max-width:var(--misura);font-size:15px}
@media (max-width:860px){ .persona__intestazione{position:static} }

.tabella{width:100%;overflow-x:auto;margin-top:20px;border-top:1px solid var(--linea)}
.tabella table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;min-width:520px}
.tabella th{
  text-align:left;font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--fumo-2);
  padding:14px 18px 14px 0;border-bottom:1px solid var(--linea);white-space:nowrap;
}
.tabella td{
  padding:14px 18px 14px 0;border-bottom:1px solid var(--linea-2);
  font-size:14.5px;vertical-align:baseline;color:var(--fumo);
}
.tabella td:first-child{color:var(--carta)}
.tabella .cifra{white-space:nowrap;font-family:var(--mono);font-size:13.5px;color:var(--carta)}
.tabella tr:hover td{background:var(--nero-2)}

.gruppo{margin-top:clamp(30px,4vw,48px)}
.gruppo__t{
  font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ciano);padding-bottom:10px;border-bottom:1px solid var(--linea);margin-bottom:4px;
}
.gruppo__nota{font-family:var(--mono);font-size:11.5px;color:var(--fumo-2);margin-top:12px;line-height:1.7}

/* --- 11. Richiami e pulsanti --------------------------------------------- */
.bottone{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  text-decoration:none;color:var(--carta);border:1px solid var(--linea);
  padding:14px 22px;transition:border-color .25s,color .25s,background .25s;
}
.bottone:hover{border-color:var(--ciano);color:var(--ciano)}
.bottone::after{content:"→";transition:transform .25s}
.bottone:hover::after{transform:translateX(4px)}
.bottone--pieno{background:var(--ciano);border-color:var(--ciano);color:var(--nero)}
.bottone--pieno:hover{background:transparent;color:var(--ciano)}

.elenco-link{display:grid;gap:1px;background:var(--linea);border-block:1px solid var(--linea)}
.elenco-link a{
  display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;
  background:var(--nero);padding:clamp(20px,2.6vw,30px) 0;text-decoration:none;
  transition:background .25s,padding-inline .25s;
}
.elenco-link a:hover{background:var(--nero-2);padding-inline:14px}
.elenco-link__n{
  font-variation-settings:"wdth" 112,"wght" 600;
  font-size:clamp(18px,2.2vw,26px);letter-spacing:-.012em;
}
.elenco-link__d{font-size:14px;color:var(--fumo);flex:1 1 24ch;max-width:46ch}
.elenco-link__f{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ciano)}

/* --- 12. Piede ----------------------------------------------------------- */
.piede{border-top:1px solid var(--linea);padding-block:clamp(44px,6vw,72px);background:var(--nero)}
.piede__griglia{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));
  gap:clamp(26px,4vw,52px);
}
.piede__t{
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--fumo-2);margin-bottom:16px;
}
.piede li{margin-bottom:9px}
.piede a{
  font-size:14.5px;text-decoration:none;color:var(--fumo);transition:color .2s;
}
.piede a:hover{color:var(--carta)}
.piede__marchio{
  font-variation-settings:"wdth" 120,"wght" 700;
  font-size:clamp(30px,6vw,64px);line-height:1;letter-spacing:-.03em;
  color:var(--carta);margin-bottom:14px;
}
.piede__coda{
  display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;
  margin-top:clamp(34px,5vw,60px);padding-top:20px;border-top:1px solid var(--linea-2);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--fumo-2);
}

/* --- 13. Comparsa progressiva -------------------------------------------- */
.comparsa{opacity:0;transform:translateY(16px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.3,1)}
.comparsa.is-visibile{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .comparsa{opacity:1;transform:none}
}

/* --- 14. Banda fotografica a tutta larghezza ----------------------------- */
.banda{position:relative;overflow:hidden;height:clamp(300px,50vw,580px);margin:0}
.banda img{width:100%;height:100%;object-fit:cover;object-position:center 38%}
.banda figcaption{
  position:absolute;left:0;bottom:0;padding:clamp(16px,2.4vw,28px) var(--gutter);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(242,241,238,.72);
  background:linear-gradient(to top,rgba(8,9,11,.85),rgba(8,9,11,0));width:100%;
}

/* --- 15. Catalogo della label ------------------------------------------- */
.catalogo{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));
  gap:clamp(24px,3vw,42px) clamp(18px,2.4vw,32px);
}
.disco{display:block;text-decoration:none;color:var(--carta)}
.disco__cop{
  display:flex;align-items:center;justify-content:center;
  aspect-ratio:1;background:var(--nero-2);border:1px solid var(--linea-2);
  overflow:hidden;margin-bottom:14px;transition:border-color .3s;
}
/* le copertine storiche sono a 200px: non vanno mai ingrandite */
.disco__cop img{
  max-width:100%;max-height:100%;width:auto;height:auto;
  transition:transform .6s cubic-bezier(.2,.7,.3,1),opacity .3s;
}
.disco:hover .disco__cop,.disco:focus-visible .disco__cop{border-color:var(--ciano)}
.disco:hover .disco__cop img{transform:scale(1.04)}
.disco__anno{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;color:var(--ciano);
  display:block;margin-bottom:7px;
}
.disco__tit{
  font-variation-settings:"wdth" 108,"wght" 600;
  font-size:16px;line-height:1.2;letter-spacing:-.008em;display:block;
}
.disco__art{
  display:block;margin-top:6px;font-size:12.5px;line-height:1.45;color:var(--fumo-2);
}
.disco:hover .disco__tit{color:var(--ciano)}

/* --- 16. Scheda di una pubblicazione ------------------------------------ */
.uscita{
  display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);
  gap:clamp(28px,5vw,72px);align-items:start;
}
@media (max-width:820px){ .uscita{grid-template-columns:1fr} }
.uscita__cop{
  margin:0;display:flex;align-items:flex-start;justify-content:center;
  background:var(--nero-2);border:1px solid var(--linea-2);padding:clamp(14px,2vw,24px);
}
.uscita__cop img{max-width:100%;width:auto;height:auto}
.uscita__meta{
  display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 0;padding-top:20px;
  border-top:1px solid var(--linea-2);
}
.uscita__meta a,.uscita__meta span{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--fumo-2);border:1px solid var(--linea);padding:8px 12px;text-decoration:none;
  transition:color .25s,border-color .25s;
}
.uscita__meta a:hover{color:var(--ciano);border-color:var(--ciano)}
.crediti{
  margin-top:clamp(28px,4vw,44px);padding-top:22px;border-top:1px solid var(--linea);
}
.crediti__t{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ciano);margin-bottom:16px;
}
.crediti p{font-family:var(--mono);font-size:12.5px;line-height:1.95;color:var(--fumo)}
.impaginato{
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-top:clamp(40px,6vw,72px);padding-top:22px;border-top:1px solid var(--linea);
}
.impaginato a{
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--fumo);text-decoration:none;max-width:44%;
}
.impaginato a:hover{color:var(--ciano)}
.impaginato b{display:block;font-weight:400;color:var(--fumo-2);font-size:10px;margin-bottom:6px}

/* --- 17. Elenco delle edizioni ------------------------------------------ */
.edizioni{border-top:1px solid var(--linea)}
.edizione{
  display:grid;grid-template-columns:5.5ch minmax(0,1fr) auto;
  gap:clamp(14px,2.6vw,34px);align-items:baseline;
  padding:clamp(20px,2.6vw,30px) 0;border-bottom:1px solid var(--linea-2);
  text-decoration:none;color:var(--carta);transition:background .25s,padding-inline .25s;
}
a.edizione:hover{background:var(--nero-2);padding-inline:14px}
.edizione__anno{
  font-family:var(--mono);font-size:13px;letter-spacing:.04em;color:var(--ciano);
  font-variant-numeric:tabular-nums;
}
.edizione--muta .edizione__anno{color:var(--fumo-2)}
.edizione__nome{
  font-variation-settings:"wdth" 110,"wght" 600;
  font-size:clamp(17px,2.1vw,25px);line-height:1.15;letter-spacing:-.012em;
}
.edizione--muta .edizione__nome{color:var(--fumo-2);font-variation-settings:"wdth" 110,"wght" 400}
.edizione__occhiello{
  display:block;margin-top:6px;font-size:12.5px;color:var(--fumo-2);
  font-family:var(--mono);letter-spacing:.06em;
}
.edizione__stato{
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--fumo-2);white-space:nowrap;
}
a.edizione:hover .edizione__stato{color:var(--ciano)}
@media (max-width:640px){
  .edizione{grid-template-columns:5.5ch minmax(0,1fr);row-gap:8px}
  .edizione__stato{grid-column:2}
}

/* --- 18. Elenco degli artisti storici ----------------------------------- */
.nomi{
  display:flex;flex-wrap:wrap;gap:8px 0;margin-top:20px;
  font-size:15px;line-height:1.7;color:var(--fumo);
}
.nomi span{white-space:nowrap}
.nomi span::after{content:"·";color:var(--fumo-2);margin:0 10px}
.nomi span:last-child::after{content:""}

/* --- 19. Programma di un'edizione --------------------------------------- */
.programma{max-width:74ch}
.programma__sez{padding-block:clamp(24px,3.4vw,40px);border-top:1px solid var(--linea)}
.programma__sez:first-child{border-top:none;padding-top:0}
.programma__t{
  font-variation-settings:"wdth" 112,"wght" 700;
  font-size:clamp(18px,2.2vw,26px);line-height:1.15;letter-spacing:-.014em;
  margin-bottom:16px;color:var(--carta);
}
.programma__sez p{color:var(--fumo);margin-bottom:1em;font-size:15.5px;line-height:1.7}
.programma__sez p:last-child{margin-bottom:0}

.manifesto{margin:0 0 clamp(28px,4vw,48px)}
.manifesto img{width:100%;height:auto;border:1px solid var(--linea-2)}
.manifesto figcaption{
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--fumo-2);padding-top:10px;
}
.galleria{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));
  gap:12px;margin-top:clamp(28px,4vw,44px);
}
.galleria img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;border:1px solid var(--linea-2)}
.notizia{padding-block:22px;border-top:1px solid var(--linea-2)}
.notizia__data{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;color:var(--ciano);
  display:block;margin-bottom:8px;
}
.notizia__t{
  font-variation-settings:"wdth" 108,"wght" 600;font-size:17px;margin-bottom:10px;
}
.notizia p{color:var(--fumo);font-size:14.5px;line-height:1.65;margin-bottom:.8em}
.fonte{
  font-family:var(--mono);font-size:11px;line-height:1.8;color:var(--fumo-2);
  border-left:2px solid var(--ciano-cupo);padding-left:16px;margin-top:clamp(34px,5vw,56px);
}

/* --- 20. Righe di programma (voci brevi: artista, ora, luogo) ------------ */
.righe{margin:0 0 1.2em;padding:0;list-style:none;border-top:1px solid var(--linea-2)}
.righe li{
  padding:9px 0;border-bottom:1px solid var(--linea-2);
  font-family:var(--mono);font-size:13px;line-height:1.6;color:var(--fumo);
}
.righe li:first-letter{text-transform:none}

/* --- 21. Galleria con didascalie ---------------------------------------- */
.foto{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));
  gap:clamp(14px,2vw,24px);
}
.foto figure{margin:0}
.foto img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border:1px solid var(--linea-2)}
.foto figcaption{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--fumo-2);padding-top:9px;line-height:1.6;
}

/* --- 22. Calendario degli appuntamenti ---------------------------------- */
.calendario{border-top:1px solid var(--linea)}
.appuntamento{
  display:grid;grid-template-columns:7ch minmax(0,1fr) minmax(0,auto);
  gap:clamp(14px,2.6vw,34px);align-items:baseline;
  padding:clamp(20px,2.6vw,30px) 0;border-bottom:1px solid var(--linea-2);
}
.appuntamento__data{font-family:var(--mono);font-variant-numeric:tabular-nums;line-height:1.35}
.appuntamento__g{display:block;font-size:15px;color:var(--ciano);letter-spacing:.02em}
.appuntamento__s{display:block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--fumo-2);margin-top:3px}
.appuntamento__t{
  font-variation-settings:"wdth" 110,"wght" 600;
  font-size:clamp(17px,2.1vw,24px);line-height:1.15;letter-spacing:-.012em;
}
.appuntamento__tag{
  display:inline-block;margin-left:10px;vertical-align:middle;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--fumo-2);border:1px solid var(--linea);padding:3px 7px;
}
.appuntamento__d{margin-top:9px;font-size:14.5px;line-height:1.6;color:var(--fumo);max-width:56ch}
.appuntamento__l{
  margin-top:10px;font-family:var(--mono);font-size:11.5px;letter-spacing:.05em;color:var(--fumo-2);
}
.appuntamento__q{text-align:right;font-family:var(--mono);font-size:11.5px;line-height:1.7;color:var(--fumo-2)}
.appuntamento__q b{display:block;font-weight:400;color:var(--carta);font-size:13px}
.appuntamento__v{
  margin-top:12px;font-family:var(--mono);font-size:11px;line-height:1.7;color:var(--fumo-2);
  border-left:2px solid var(--ciano-cupo);padding-left:12px;
}
.appuntamento--passato .appuntamento__g{color:var(--fumo-2)}
.appuntamento--passato .appuntamento__t{color:var(--fumo)}
.appuntamento--passato .appuntamento__d{color:var(--fumo)}
.appuntamento__tag--fatto{border-color:var(--linea-2);color:var(--fumo-2)}
.appuntamento--prossimo{background:var(--nero-2);padding-inline:clamp(14px,2vw,22px)}
.appuntamento--prossimo .appuntamento__t{color:var(--ciano)}
@media (max-width:700px){
  .appuntamento{grid-template-columns:7ch minmax(0,1fr);row-gap:10px}
  .appuntamento__q{grid-column:2;text-align:left}
}

/* --- 23. Numero d'edizione ---------------------------------------------- */
.edizione__num{
  display:inline-block;margin-left:12px;vertical-align:middle;
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;
  color:var(--ciano);border:1px solid var(--ciano-cupo);padding:3px 8px;
}
.edizione--muta .edizione__num{color:var(--fumo-2);border-color:var(--linea)}

/* --- 24. Lineup di una giornata ----------------------------------------- */
.lineup{display:flex;flex-wrap:wrap;gap:7px 0;margin-top:12px;padding:0;list-style:none}
.lineup li{
  font-size:15px;line-height:1.55;color:var(--carta);white-space:nowrap;
  font-variation-settings:"wdth" 104,"wght" 500;
}
.lineup li::after{content:"·";color:var(--ciano-cupo);margin:0 11px}
.lineup li:last-child::after{content:""}
.appuntamento--passato .lineup li{color:var(--fumo)}

/* --- 25. Locandina dell'edizione ---------------------------------------- */
.locandina{margin:0 0 clamp(26px,4vw,44px)}
.locandina img{width:100%;height:auto;border:1px solid var(--linea-2)}
.locandina figcaption{
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--fumo-2);padding-top:10px;
}

/* --- 26. Informazioni pratiche dell'edizione ---------------------------- */
.pratiche{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));
  gap:clamp(20px,3vw,44px);
  margin:clamp(28px,4vw,44px) 0;padding-top:24px;border-top:1px solid var(--linea);
}
.pratiche dt{
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ciano);margin-bottom:12px;
}
.pratiche dd{margin:0;font-size:15.5px;line-height:1.6;color:var(--carta)}
.pratiche dd span{display:block;color:var(--fumo);font-size:14px}
.pratiche ul{margin:0;padding:0;list-style:none}
.pratiche li{font-size:14px;line-height:1.75;color:var(--fumo)}
.pratiche li:first-child{color:var(--carta);font-size:15.5px}

/* --- 27. Video della lineup --------------------------------------------- */
.videobox{margin:clamp(26px,4vw,44px) 0 0;max-width:400px}
.videobox video{
  width:100%;height:auto;display:block;background:var(--nero-2);
  border:1px solid var(--linea-2);
}
.videobox figcaption{
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--fumo-2);padding-top:10px;line-height:1.7;
}

/* --- 28. Programma del festival, giornata per giornata ------------------ */
.giornata{padding-block:clamp(30px,4vw,52px);border-top:1px solid var(--linea)}
.giornata:first-of-type{border-top:none;padding-top:0}
.giornata__testa{
  display:flex;align-items:baseline;gap:clamp(14px,2.4vw,28px);flex-wrap:wrap;
  margin-bottom:clamp(18px,2.6vw,30px);
}
.giornata__data{
  font-variation-settings:"wdth" 116,"wght" 700;
  font-size:clamp(24px,3.4vw,40px);line-height:1;letter-spacing:-.02em;
}
.giornata__ore{
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--fumo-2);
}
.atto{
  display:grid;grid-template-columns:9ch minmax(0,1fr);
  gap:clamp(12px,2.4vw,30px);
  padding-block:clamp(16px,2.2vw,24px);border-top:1px solid var(--linea-2);
}
.atto__ora{
  font-family:var(--mono);font-size:13px;color:var(--ciano);
  font-variant-numeric:tabular-nums;line-height:1.5;
}
.atto__nome{
  font-variation-settings:"wdth" 108,"wght" 600;
  font-size:clamp(17px,2vw,22px);line-height:1.2;letter-spacing:-.01em;
}
.atto__nome em{font-style:normal;color:var(--ciano);font-weight:inherit}
.atto__sotto{
  display:block;margin-top:7px;font-family:var(--mono);font-size:11.5px;line-height:1.6;
  letter-spacing:.03em;color:var(--fumo-2);
}
.atto__testo{margin-top:11px;font-size:14.5px;line-height:1.65;color:var(--fumo);max-width:62ch}
.atto--dj .atto__nome{color:var(--fumo-2);font-variation-settings:"wdth" 108,"wght" 400}
.atto--dj .atto__ora{color:var(--fumo-2)}
@media (max-width:640px){
  .atto{grid-template-columns:1fr;gap:6px}
  .atto__ora{font-size:12px}
}
