/* ─────────────────────────────────────────────────────────────────────────
   Presentazione pubblica — 23 ottobre 2026
   Ogni slide ha un "palco" fisso di 1600×900 che viene scalato per stare
   nello schermo (proiettore 16:9, 16:10 o 4:3): l'impaginazione resta
   identica ovunque. Sotto i 900px di larghezza (telefono) il palco smette di
   scalare e la slide diventa una pagina che scorre.
   ───────────────────────────────────────────────────────────────────────── */
body{overflow:hidden;background:var(--paper);transition:background .6s var(--ease);}
body.is-dark{background:var(--night-2);}

.deck{position:fixed;inset:0;z-index:5;}
.slide{
  position:absolute;inset:0;overflow:hidden;overflow:clip;
  opacity:0;visibility:hidden;
  transition:opacity .7s var(--ease),visibility 0s .7s;
}
.slide.active{opacity:1;visibility:visible;transition-delay:0s;z-index:2;}
.slide.dark{
  background:radial-gradient(ellipse 90% 78% at 50% 42%,#2e2820 0%,var(--night-2) 60%,var(--night) 100%);
  color:var(--paper-soft);
}
.stage{
  position:absolute;left:50%;top:50%;width:1600px;height:900px;
  transform:translate(-50%,-50%) scale(var(--k,1));
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:96px 120px 84px;
}
.stage.row{flex-direction:row;gap:80px;}

/* entrate in sequenza */
.slide [data-rise]{opacity:0;translate:0 28px;transition:opacity .8s var(--ease),translate .8s var(--ease);}
.slide.active [data-rise]{opacity:1;translate:0 0;}
.slide.active [data-rise="2"]{transition-delay:.14s;}
.slide.active [data-rise="3"]{transition-delay:.28s;}
.slide.active [data-rise="4"]{transition-delay:.42s;}
.slide.active [data-rise="5"]{transition-delay:.56s;}
.slide.active [data-rise="6"]{transition-delay:.7s;}

/* frammenti: si rivelano a ogni "avanti" prima di cambiare slide */
.slide [data-f]{opacity:0;translate:0 18px;transition:opacity .6s var(--ease),translate .6s var(--ease);}
.slide [data-f].f-on{opacity:1;translate:0 0;}

/* tipografia di palco: misure in px, il palco viene scalato */
.slide .eyebrow{font-size:21px;margin-bottom:22px;}
.dark .eyebrow{color:var(--gold);}
h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.04;}
.slide h2{font-size:88px;letter-spacing:-.005em;text-wrap:balance;}
.slide h2 i{font-style:italic;color:var(--green);}
.dark h2 i{color:var(--gold-light);}
.head{text-align:center;max-width:1300px;}
.lead{margin-top:22px;font-size:34px;line-height:1.55;color:var(--ink-soft);}
.dark .lead{color:rgba(244,239,231,.78);}
.script{font-family:var(--font-display);font-style:italic;color:var(--earth);}
.hand{font-family:var(--font-hand);font-weight:600;}

/* ── Chrome fisso ── */
.chrome-brand{
  position:fixed;top:18px;left:clamp(16px,2.6vw,40px);z-index:40;
  display:flex;align-items:center;gap:11px;transition:opacity .4s;
}
.chrome-brand .stemma{height:40px;}
.chrome-brand .logo-cl{height:38px;width:38px;}
.chrome-brand .brand-text strong{font-size:12px;}
.chrome-brand .brand-text span{font-size:10.5px;}
body.cover .chrome-brand{opacity:0;}
.chrome-atto{
  position:fixed;top:26px;right:clamp(16px,2.6vw,40px);z-index:40;
  font-size:11.5px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-muted);
  transition:opacity .4s;
}
.is-dark .chrome-atto{color:rgba(244,239,231,.5);}
.progress{position:fixed;left:0;bottom:0;height:4px;z-index:40;background:var(--gold);transition:width .6s var(--ease);}
.counter{
  position:fixed;right:clamp(16px,2.6vw,40px);bottom:14px;z-index:40;
  font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--ink-muted);font-variant-numeric:tabular-nums;
  transition:opacity .4s;
}
.is-dark .counter{color:rgba(244,239,231,.45);}
.navbtn{
  position:fixed;bottom:14px;z-index:41;width:40px;height:40px;border-radius:50%;
  border:1px solid var(--paper-edge);background:rgba(255,250,242,.7);color:var(--ink-soft);
  cursor:pointer;font-size:17px;display:none;align-items:center;justify-content:center;
}
.is-dark .navbtn{background:rgba(22,18,9,.6);border-color:rgba(255,250,242,.18);color:var(--paper-soft);}
#nav-prev{left:16px;}
#nav-next{right:16px;}
body.idle{cursor:none;}
body.idle .counter,body.idle .chrome-atto{opacity:0;}
.blackout{position:fixed;inset:0;z-index:99;background:#000;opacity:0;pointer-events:none;transition:opacity .5s;}
body.black .blackout{opacity:1;pointer-events:auto;}
.help{
  position:fixed;left:50%;bottom:26px;z-index:60;transform:translate(-50%,10px);
  padding:11px 20px;border-radius:999px;background:rgba(22,18,9,.86);color:var(--paper-soft);
  font-size:12.5px;letter-spacing:.04em;white-space:nowrap;opacity:0;pointer-events:none;
  transition:opacity .5s,transform .5s;
}
.help.on{opacity:1;transform:translate(-50%,0);}
.help kbd{font-family:inherit;font-weight:700;color:var(--gold-light);}

body.anteprima .iris,body.anteprima .help,body.anteprima .grain{display:none;}

/* ═════════════ 01 · COPERTINA ═════════════
   Scura come la 16, con le stampe che cadono a destra (assets/stampe.css). */
#copertina .stage{gap:30px;padding:70px 60px 60px 100px;justify-content:space-between;}
#copertina .cop-testo{flex:0 0 700px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;}
#copertina .cop-testo .eyebrow{font-size:15px;margin-bottom:26px;white-space:nowrap;}
#copertina h1{font-size:176px;line-height:.95;letter-spacing:-.01em;color:var(--paper-soft);}
#copertina h1 i{color:var(--gold-light);}
#copertina .cop-evento{
  margin-top:34px;padding:12px 26px;
  font-family:var(--font-body);font-weight:700;font-size:30px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--night-2);background:var(--gold-light);border-radius:3px;
}
#copertina .cop-quando{
  margin-top:20px;font-weight:700;font-size:20px;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(244,239,231,.78);
}
#copertina .sub{margin-top:30px;font-size:24px;line-height:1.35;text-wrap:balance;color:rgba(244,239,231,.75);opacity:1;}
#copertina .pila{flex:0 0 780px;height:680px;--w-o:78%;--w-v:46%;--fs-titolo:30px;--fs-num:13px;}
.shine{position:relative;display:inline-block;overflow:hidden;padding:0 .05em;}
.shine::after{
  content:'';position:absolute;top:0;bottom:0;width:32%;left:-50%;
  background:linear-gradient(105deg,transparent,rgba(255,253,244,.95) 50%,transparent);
  mix-blend-mode:overlay;transform:skewX(-18deg);animation:shine 7s ease-in-out 1.6s infinite;
}
@keyframes shine{0%{left:-50%;}18%{left:122%;}100%{left:122%;}}
.film-badge--big{width:520px;padding:19px 0;transform:rotate(-1deg);}
.film-badge--big .reel span,.film-badge--big .reel i{font-size:15px;}

/* ═════════════ 02 · IL CASSETTO ═════════════ */
#cassetto .text{flex:1;max-width:780px;}
#cassetto h2{font-size:96px;}
#cassetto .hand{display:block;margin-top:34px;font-size:44px;color:var(--ink-soft);line-height:1.25;}
#cassetto .punch{display:block;margin-top:40px;font-family:var(--font-display);font-size:72px;font-weight:600;color:var(--green);}
.box{position:relative;width:560px;height:600px;flex:0 0 auto;}
.box .bp{
  position:absolute;left:50%;bottom:170px;width:220px;padding:10px 10px 30px;margin-left:-110px;
  background:#fffdf6;border:1px solid #e9e0cc;box-shadow:0 16px 34px rgba(31,27,23,.22);
  transform:translate(0,140px) rotate(0deg);opacity:0;
  transition:transform 1.1s cubic-bezier(.2,.9,.3,1.15),opacity .5s;
}
.box .bp img{width:100%;height:170px;object-fit:cover;filter:grayscale(1) sepia(.25);}
.slide.active .box .bp{opacity:1;transform:translate(var(--tx),var(--ty)) rotate(var(--r));transition-delay:var(--d);}
.box .bp:nth-child(1){--tx:-190px;--ty:-40px;--r:-16deg;--d:.5s;}
.box .bp:nth-child(2){--tx:-80px;--ty:-150px;--r:-6deg;--d:.65s;}
.box .bp:nth-child(3){--tx:40px;--ty:-190px;--r:4deg;--d:.8s;}
.box .bp:nth-child(4){--tx:160px;--ty:-110px;--r:13deg;--d:.95s;}
.box .bp:nth-child(5){--tx:-10px;--ty:-30px;--r:-2deg;--d:1.1s;}
.box-front{
  position:absolute;left:0;right:0;bottom:0;height:270px;z-index:3;border-radius:6px 6px 10px 10px;
  background:linear-gradient(175deg,#cfa86f 0%,#b98d55 55%,#a87c46 100%);
  box-shadow:0 30px 60px rgba(31,27,23,.28),inset 0 2px 0 rgba(255,255,255,.25);
}
.box-front::before{ /* bordo superiore della scatola */
  content:'';position:absolute;left:-14px;right:-14px;top:-18px;height:30px;border-radius:5px;
  background:linear-gradient(180deg,#d9b57e,#c39a60);box-shadow:0 6px 12px rgba(31,27,23,.2);
}
.box-label{
  position:absolute;left:50%;top:78px;transform:translateX(-50%) rotate(-3deg);
  padding:16px 30px 14px;background:#fbf6e9;box-shadow:0 6px 14px rgba(31,27,23,.18);
  font-family:var(--font-hand);font-size:40px;font-weight:700;color:#3a3024;text-align:center;line-height:1;white-space:nowrap;
}
.box-label small{display:block;font-size:28px;font-weight:600;color:var(--red-pencil);margin-top:6px;}
.box-label::before{
  content:'';position:absolute;top:-12px;left:50%;width:80px;height:24px;transform:translateX(-50%) rotate(2deg);
  background:rgba(216,198,152,.6);
}

/* ═════════════ 03 · LA DIMENTICANZA ═════════════ */
#dimenticanza .text{flex:1;max-width:760px;}
#dimenticanza h2{font-size:78px;}
#dimenticanza .lead{font-size:30px;}
#dimenticanza .punch{margin-top:34px;font-family:var(--font-display);font-size:56px;font-weight:600;color:var(--green);}
.fading{flex:0 0 auto;width:600px;padding:16px 16px 70px;background:#fffdf6;border:1px solid #e9e0cc;box-shadow:0 30px 70px rgba(31,27,23,.22);transform:rotate(2.5deg);position:relative;}
.fading img{width:100%;height:470px;object-fit:cover;filter:grayscale(1) sepia(.3);}
.slide.active .fading img{animation:fadeAway 10s ease-in 1s forwards;}
@keyframes fadeAway{
  0%{filter:grayscale(1) sepia(.3);opacity:1;}
  100%{filter:grayscale(1) sepia(.6) brightness(1.75) contrast(.35) blur(1.5px);opacity:.22;}
}
.slide.active[data-step="2"] .fading img{animation:develop 3s ease-out forwards;}
@keyframes develop{
  0%{filter:grayscale(1) sepia(.6) brightness(1.75) contrast(.35) blur(1.5px);opacity:.22;}
  100%{filter:grayscale(1) sepia(.15) contrast(1.05);opacity:1;}
}
.fading .q{position:absolute;left:0;right:0;bottom:14px;text-align:center;font-family:var(--font-hand);font-size:38px;font-weight:600;color:var(--ink-soft);opacity:0;transition:opacity 1s 4s;}
.slide.active .fading .q{opacity:1;}

/* ═════════════ ATTI · il fotogramma ═════════════ */
.atto .stage{padding:0;}
.strip{
  position:relative;width:1780px;height:560px;flex:0 0 auto;
  background:#0d0a06;border-top:1px solid rgba(233,200,123,.15);border-bottom:1px solid rgba(233,200,123,.15);
  box-shadow:0 40px 90px rgba(0,0,0,.5);
  display:flex;align-items:center;justify-content:center;gap:34px;
  transform:translateX(220px);transition:transform 1.6s cubic-bezier(.16,.84,.3,1);
}
.slide.active .strip{transform:none;}
.strip::before,.strip::after{
  content:'';position:absolute;left:0;right:0;height:20px;
  background-image:linear-gradient(90deg,rgba(244,239,231,.8) 0 26px,transparent 26px 52px);
  background-size:52px 20px;opacity:.55;border-radius:3px;
  -webkit-mask-image:linear-gradient(180deg,#000,#000);
}
.strip::before{top:16px;}
.strip::after{bottom:16px;}
.strip .edge{
  position:absolute;left:80px;font-size:12px;font-weight:800;letter-spacing:.32em;color:rgba(233,200,123,.55);
}
.strip .edge.t{top:44px;}
.strip .edge.b{bottom:44px;left:auto;right:80px;}
.strip .side{width:300px;height:400px;border-radius:8px;overflow:hidden;flex:0 0 auto;opacity:.32;}
.strip .side img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) sepia(.4);}
.strip .frame{
  position:relative;width:960px;height:400px;border-radius:10px;flex:0 0 auto;
  background:radial-gradient(ellipse 80% 90% at 30% 40%,#3a3127 0%,#231d16 70%);
  display:flex;align-items:center;gap:56px;padding:0 70px;
  box-shadow:inset 0 0 0 1px rgba(233,200,123,.15),inset 0 0 90px rgba(0,0,0,.5);
  animation:flicker 5s steps(1) infinite;
}
@keyframes flicker{0%,100%{filter:brightness(1);}47%{filter:brightness(1.08);}49%{filter:brightness(.94);}}
.strip .numeral{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:300px;line-height:.8;color:var(--gold-light);text-shadow:0 0 60px rgba(233,200,123,.3);min-width:200px;text-align:center;}
.strip .eyebrow{margin-bottom:12px;}
.strip h2{font-size:112px;color:var(--paper-soft);}
.strip .lead{margin-top:16px;font-size:32px;font-family:var(--font-display);font-style:italic;color:rgba(244,239,231,.75);}

/* ═════════════ 05 · L'IDEA ═════════════ */
.verbs{display:grid;grid-template-columns:repeat(4,1fr);width:100%;margin-top:70px;}
.verb{padding:10px 34px 0;border-left:1px solid var(--paper-edge);position:relative;}
.verb:first-child{border-left:none;}
.verb .n{font-size:14px;font-weight:800;letter-spacing:.2em;color:var(--earth);}
.verb h3{margin-top:10px;font-size:70px;font-style:italic;color:var(--green);}
.verb h3::after{content:'';display:block;height:3px;width:0;margin-top:12px;background:var(--gold);transition:width .9s var(--ease) .25s;}
.verb.f-on h3::after{width:70px;}
.verb p{margin-top:18px;font-size:24px;line-height:1.5;color:var(--ink-soft);}

/* ═════════════ 06 · LE GENERAZIONI ═════════════ */
.tl{position:relative;width:1300px;height:400px;margin-top:40px;}
.tl-line{position:absolute;left:0;right:180px;top:250px;height:3px;background:var(--paper-edge);border-radius:2px;}
.tl-glow{
  position:absolute;top:50%;left:0;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;
  background:radial-gradient(circle,#fff8e2 0%,var(--gold) 55%,transparent 72%);
  box-shadow:0 0 30px 10px rgba(185,145,79,.45);opacity:0;
}
.slide.active .tl-glow{animation:travel 5s cubic-bezier(.45,.05,.4,1) .6s forwards;}
@keyframes travel{0%{left:0;opacity:0;}8%{opacity:1;}100%{left:100%;opacity:1;}}
.tl-years span{position:absolute;top:276px;left:var(--x);transform:translateX(-50%);font-family:var(--font-display);font-size:34px;font-weight:600;color:var(--ink-muted);}
.tl-years span::before{content:'';position:absolute;left:50%;top:-30px;width:2px;height:14px;background:var(--paper-edge);}
.tl-pic{
  position:absolute;left:var(--x);top:var(--y,40px);width:150px;padding:7px 7px 22px;margin-left:-75px;
  background:#fffdf6;border:1px solid #e9e0cc;box-shadow:0 12px 24px rgba(31,27,23,.18);transform:rotate(var(--r));
}
.tl-pic img{width:100%;height:110px;object-fit:cover;filter:grayscale(1) sepia(.3);}
.tl-end{
  position:absolute;right:0;top:170px;width:200px;text-align:center;
  opacity:.25;transition:opacity 1s 5.2s,transform 1s 5.2s;transform:scale(.92);
}
.slide.active .tl-end{opacity:1;transform:none;}
.tl-end .ring{
  width:160px;height:160px;margin:0 auto;border-radius:50%;
  background:var(--green);color:var(--paper-soft);display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 0 10px rgba(47,79,50,.12),0 20px 40px rgba(47,79,50,.3);
}
.tl-end .ring svg{width:76px;height:76px;}
.tl-end b{display:block;margin-top:16px;font-family:var(--font-display);font-size:30px;line-height:1.1;}
.tl-end span{display:block;font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin-top:6px;}

/* ═════════════ 08 · IL BRIEF ═════════════ */
#brief .text{flex:1;max-width:620px;}
#brief .lead{font-size:28px;}
.doc{
  position:relative;flex:0 0 auto;width:700px;padding:46px 54px 42px;
  background:#fffdf7;border:1px solid #e6dcc6;box-shadow:0 34px 80px rgba(31,27,23,.2);transform:rotate(-1.2deg);
  background-image:repeating-linear-gradient(180deg,transparent 0 43px,rgba(154,118,80,.08) 43px 44px);
}
.doc .dh{display:flex;align-items:center;gap:14px;padding-bottom:18px;border-bottom:2px solid rgba(154,118,80,.25);}
.doc .dh img{height:54px;}
.doc .dh b{display:block;font-size:14px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;}
.doc .dh span{display:block;font-size:13px;color:var(--ink-muted);margin-top:3px;}
.doc .ask{margin-top:22px;font-family:var(--font-display);font-size:30px;line-height:1.3;font-style:italic;color:var(--ink);}
.doc ul{list-style:none;margin-top:20px;display:grid;grid-template-columns:1fr 1fr;gap:12px 26px;}
.doc li{display:flex;align-items:center;gap:12px;font-size:21px;color:var(--ink-soft);}
.doc li svg{flex:0 0 auto;width:28px;height:28px;}
.doc li svg path{stroke:var(--green);stroke-width:3.2;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;}
.slide.active .doc li svg path{animation:tick .5s ease-out forwards;animation-delay:calc(.9s + var(--i) * .28s);}
@keyframes tick{to{stroke-dashoffset:0;}}
.stamp-red{
  position:absolute;right:-46px;bottom:-74px;padding:14px 22px;border:5px solid var(--red-pencil);border-radius:10px;
  color:var(--red-pencil);font-weight:800;font-size:22px;letter-spacing:.12em;text-transform:uppercase;line-height:1.2;text-align:center;
  transform:rotate(-8deg);opacity:0;background:rgba(255,253,247,.6);mix-blend-mode:multiply;
}
.slide.active .stamp-red{animation:stampIn .45s cubic-bezier(.2,1.5,.45,1) 3.2s forwards;}
@keyframes stampIn{from{opacity:0;transform:rotate(-8deg) scale(2);}to{opacity:.9;transform:rotate(-8deg) scale(1);}}

/* ═════════════ 09 · PER CHI ═════════════ */
.who{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 34px;width:100%;margin-top:56px;}
.who-card{
  position:relative;padding:26px 30px 26px 74px;border-radius:9px;
  background:linear-gradient(160deg,#f2e8d2,#e9ddc0);border:1px solid #dbcda9;
  box-shadow:0 12px 26px rgba(31,27,23,.1);transform:rotate(var(--r,0deg));
}
.who-card::before{
  content:'';position:absolute;left:26px;top:36px;width:18px;height:18px;border-radius:50%;background:var(--paper);
  box-shadow:0 0 0 4.5px #c8b27c,inset 0 1px 2px rgba(0,0,0,.25);
}
.who-card b{display:block;font-family:var(--font-hand);font-size:58px;font-weight:700;line-height:1;color:var(--brown);}
.who-card p{margin-top:10px;font-size:30px;line-height:1.45;color:var(--ink-soft);}
.who-card:nth-child(1){--r:-1deg;}.who-card:nth-child(2){--r:.8deg;}.who-card:nth-child(3){--r:-.6deg;}
.who-card:nth-child(4){--r:.9deg;}.who-card:nth-child(5){--r:-.8deg;}.who-card:nth-child(6){--r:.6deg;}
.slide.active .who-card{animation:deal .7s cubic-bezier(.2,.9,.3,1.15) backwards;animation-delay:calc(.3s + var(--i) * .13s);}
@keyframes deal{from{opacity:0;transform:translateY(40px) rotate(calc(var(--r) + 6deg)) scale(.95);}}

/* ═════════════ 10 · OTTO GRUPPI ═════════════ */
#otto-gruppi .stage{padding-top:110px;}
.board{position:relative;width:1300px;height:520px;margin-top:30px;}
.polaroid{
  position:absolute;width:210px;padding:12px 12px 8px;background:#fffdf6;border:1px solid #e9e0cc;
  box-shadow:0 14px 30px rgba(31,27,23,.18);transform:rotate(var(--rot));cursor:pointer;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.polaroid:hover,.polaroid:focus-visible{transform:rotate(0deg) scale(1.12);z-index:20;box-shadow:0 26px 60px rgba(31,27,23,.3);outline:none;}
.polaroid .ph{height:160px;background:#f3ecdb;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.polaroid .ph img{max-width:84%;max-height:84%;object-fit:contain;}
.polaroid figcaption{font-family:var(--font-hand);font-size:27px;font-weight:600;text-align:center;color:var(--ink-soft);padding-top:5px;line-height:1.1;}
.polaroid::before{
  content:'';position:absolute;top:-13px;left:50%;width:84px;height:26px;transform:translateX(-50%) rotate(var(--tape,-3deg));
  background:rgba(216,198,152,.55);border-left:1px dashed rgba(255,255,255,.55);border-right:1px dashed rgba(255,255,255,.55);
}
.slide.active .polaroid{animation:drop .85s cubic-bezier(.2,.9,.3,1.18) backwards;animation-delay:var(--d);}
@keyframes drop{from{opacity:0;transform:translateY(-60px) rotate(calc(var(--rot) + 9deg)) scale(1.08);}}
.polaroid:nth-child(1){--rot:-3.5deg;--tape:-5deg;--d:.15s;left:2%;top:2%;}
.polaroid:nth-child(2){--rot:2.6deg;--tape:4deg;--d:.25s;left:27%;top:0%;}
.polaroid:nth-child(3){--rot:-2deg;--tape:-2deg;--d:.35s;left:52%;top:4%;}
.polaroid:nth-child(4){--rot:3.4deg;--tape:6deg;--d:.45s;left:77%;top:1%;}
.polaroid:nth-child(5){--rot:2.2deg;--tape:3deg;--d:.55s;left:7%;top:52%;}
.polaroid:nth-child(6){--rot:-2.8deg;--tape:-6deg;--d:.65s;left:32%;top:55%;}
.polaroid:nth-child(7){--rot:1.8deg;--tape:2deg;--d:.75s;left:57%;top:51%;}
.polaroid:nth-child(8){--rot:-3deg;--tape:-4deg;--d:.85s;left:81%;top:55%;}
.board-hint{margin-top:8px;font-family:var(--font-hand);font-size:28px;color:var(--earth);}

/* popup progetto */
.modal{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:24px;}
.modal[hidden]{display:none;}
.modal-back{position:absolute;inset:0;background:rgba(31,27,23,.4);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);}
.modal-card{
  position:relative;width:min(640px,100%);max-height:88vh;overflow:auto;
  background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:24px;
  backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 40px 110px rgba(31,27,23,.35);
  padding:44px 48px 40px;text-align:center;animation:popIn .45s var(--ease-back);
}
@keyframes popIn{from{opacity:0;transform:translateY(26px) scale(.92);}}
.modal-card img{width:150px;height:150px;object-fit:contain;margin:0 auto 18px;background:#fffdf6;border-radius:50%;padding:16px;box-shadow:0 16px 40px rgba(31,27,23,.2);}
.modal-card .eyebrow{font-size:12px;margin-bottom:8px;}
.modal-card h3{font-size:46px;}
.modal-card p{margin-top:16px;font-size:19px;line-height:1.6;color:var(--ink-soft);}
.modal-card .idea{margin-top:20px;padding:16px 20px;border-radius:14px;background:rgba(47,79,50,.08);border:1px solid rgba(47,79,50,.18);font-size:19px;line-height:1.5;color:var(--green-strong);text-align:left;}
.modal-card .idea b{display:block;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:6px;}
.modal-x{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;border:1px solid var(--glass-border);background:rgba(255,250,242,.6);font-size:19px;cursor:pointer;}

/* ═════════════ 11 · NIENTE È ANDATO PERSO ═════════════ */
.map{display:grid;grid-template-columns:1fr 1fr;gap:22px 70px;width:100%;margin-top:54px;}
.map-row{display:flex;align-items:center;gap:20px;}
.map-row .lg{flex:0 0 auto;width:84px;height:84px;border-radius:50%;background:#fffdf6;border:1px solid #e6dcc6;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px rgba(31,27,23,.1);}
.map-row .lg img{max-width:70%;max-height:70%;object-fit:contain;}
.map-row .from{flex:0 0 170px;font-size:15px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);line-height:1.3;}
.map-row .arrow{flex:0 0 44px;height:2px;background:var(--gold);position:relative;transform-origin:left;transform:scaleX(0);transition:transform .6s var(--ease);}
.map-row .arrow::after{content:'';position:absolute;right:-2px;top:-5px;border:6px solid transparent;border-left:9px solid var(--gold);border-right:0;}
.slide.active .map-row .arrow{transform:scaleX(1);transition-delay:calc(.5s + var(--i) * .16s);}
.map-row .to{flex:1;font-family:var(--font-display);font-size:30px;font-weight:600;line-height:1.15;}
.map-row .to small{display:inline-block;margin-left:8px;padding:3px 10px;border-radius:999px;font-family:var(--font-body);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;vertical-align:middle;background:var(--sage-soft);color:var(--green);}
.slide.active .map-row{animation:rise .7s var(--ease) backwards;animation-delay:calc(.3s + var(--i) * .16s);}
@keyframes rise{from{opacity:0;transform:translateY(22px);}}

/* ═════════════ 12 · I PREMI ═════════════ */
.awards{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;width:100%;margin-top:64px;}
.award{
  position:relative;padding:38px 26px 34px;border-radius:18px;text-align:center;overflow:hidden;
  background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:0 24px 60px rgba(31,27,23,.12);
}
.award::after{
  content:'';position:absolute;top:0;bottom:0;width:40%;left:-60%;
  background:linear-gradient(105deg,transparent,rgba(255,250,235,.38),transparent);transform:skewX(-18deg);pointer-events:none;
}
.slide.active .award::after{animation:shine 5s ease-in-out infinite;animation-delay:calc(1.2s + var(--i) * .4s);}
.rosette{position:relative;width:150px;height:150px;margin:0 auto;}
.rosette .disc{
  position:absolute;inset:0;border-radius:50%;background:#fffdf6;
  box-shadow:0 0 0 8px var(--gold),0 0 0 12px rgba(185,145,79,.3),0 18px 34px rgba(31,27,23,.2);
  display:flex;align-items:center;justify-content:center;z-index:2;
}
.rosette .disc img{max-width:68%;max-height:68%;object-fit:contain;}
.rosette::before,.rosette::after{
  content:'';position:absolute;top:110px;width:44px;height:90px;background:var(--green);z-index:1;
  clip-path:polygon(0 0,100% 0,100% 100%,50% 82%,0 100%);
}
.rosette::before{left:30px;transform:rotate(14deg);}
.rosette::after{right:30px;transform:rotate(-14deg);background:var(--green-strong);}
.award .cat{margin-top:70px;font-size:19px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--earth);}
.award h3{margin-top:12px;font-size:46px;}
.award p{margin-top:10px;font-size:18px;line-height:1.5;color:var(--ink-soft);}
.slide.active .award{animation:rise .8s var(--ease-back) backwards;animation-delay:calc(.3s + var(--i) * .18s);}

/* ═════════════ 13–14 · LA PAROLA A… ═════════════ */
.voce .bgpics{position:absolute;inset:0;display:grid;grid-template-columns:repeat(6,1fr);gap:0;opacity:.1;}
.voce .bgpics img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);}
.voce .bgpics::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 60% at 50% 50%,var(--paper) 30%,transparent 100%);}
.speaker{
  position:relative;display:flex;align-items:center;gap:70px;width:1260px;padding:70px 80px;border-radius:30px;
  background:var(--glass-bg);border:1px solid var(--glass-border);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 40px 100px rgba(31,27,23,.16);
}
.mic{position:relative;flex:0 0 auto;width:220px;height:220px;border-radius:50%;background:var(--green);color:var(--paper-soft);display:flex;align-items:center;justify-content:center;}
.mic svg{width:96px;height:96px;position:relative;z-index:2;}
.mic::before,.mic::after{content:'';position:absolute;inset:0;border-radius:50%;border:3px solid rgba(47,79,50,.45);animation:wave 2.6s ease-out infinite;}
.mic::after{animation-delay:1.3s;}
@keyframes wave{0%{transform:scale(1);opacity:1;}100%{transform:scale(1.55);opacity:0;}}
.speaker .eyebrow{margin-bottom:12px;}
.speaker h2{font-size:96px;}
.speaker .role{margin-top:14px;font-size:24px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);}
.speaker .topic{margin-top:30px;padding-top:26px;border-top:1px solid var(--paper-edge);font-family:var(--font-display);font-style:italic;font-size:46px;line-height:1.25;color:var(--earth);}
.voce .logos{position:absolute;left:0;right:0;bottom:70px;display:flex;justify-content:center;gap:22px;}
.voce .logos span{width:76px;height:76px;border-radius:50%;background:#fffdf6;border:1px solid #e6dcc6;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px rgba(31,27,23,.1);}
.voce .logos img{max-width:68%;max-height:68%;object-fit:contain;}

/* ═════════════ 16 · CRONOLOGIA ═════════════ */
.chrono{position:relative;display:flex;gap:18px;margin-top:60px;padding:34px 30px;background:#14100b;border-radius:14px;box-shadow:0 34px 80px rgba(31,27,23,.3);}
.chrono::before,.chrono::after{content:'';position:absolute;left:18px;right:18px;height:12px;background-image:linear-gradient(90deg,rgba(244,239,231,.55) 0 16px,transparent 16px 32px);background-size:32px 12px;opacity:.5;}
.chrono::before{top:10px;}
.chrono::after{bottom:10px;}
.cframe{
  width:300px;height:300px;border-radius:8px;padding:34px 30px;
  background:linear-gradient(160deg,#352d24,#241e17);border:1px solid #3d362b;
  display:flex;flex-direction:column;justify-content:flex-end;opacity:.25;transition:opacity .6s,box-shadow .6s;
}
.slide.active .cframe{animation:lightUp .6s ease forwards;animation-delay:calc(.4s + var(--i) * .35s);}
@keyframes lightUp{to{opacity:1;}}
.cframe .d{font-family:var(--font-display);font-size:36px;font-weight:600;color:var(--gold-light);line-height:1;}
.cframe .m{font-family:var(--font-display);font-size:50px;font-weight:600;line-height:1;color:var(--gold-light);}
.cframe p{margin-top:18px;font-size:30px;line-height:1.25;color:#efe7d6;}
.cframe.now{background:linear-gradient(160deg,#b9914f,#8a6a37);border-color:#e9c87b;}
.cframe.now .m{color:#1f1b17;}
.cframe.now p{color:#1f1b17;font-weight:600;}
.slide.active .cframe.now{animation:lightUp .6s ease forwards,glow 2.4s ease-in-out infinite alternate;animation-delay:calc(.4s + var(--i) * .35s),2s;}
@keyframes glow{from{box-shadow:0 0 0 rgba(233,200,123,0);}to{box-shadow:0 0 50px rgba(233,200,123,.55);}}
.chips{display:flex;gap:16px;margin-top:44px;}
.chip{display:flex;align-items:center;gap:10px;padding:12px 22px;border-radius:999px;background:var(--paper-soft);border:1px solid var(--paper-edge);font-size:20px;font-weight:600;color:var(--ink-soft);}
.chip svg{width:22px;height:22px;color:var(--green);}

/* ═════════════ 17 · IL CATALOGO ═════════════ */
.icard{
  flex:0 0 auto;width:600px;padding:40px 44px;border-radius:8px;background:#fbf4e3;border:1px solid #e3d5b5;
  box-shadow:0 30px 70px rgba(31,27,23,.18);transform:rotate(-2deg);position:relative;
}
.icard::before{content:'';position:absolute;top:22px;left:50%;width:22px;height:22px;margin-left:-11px;border-radius:50%;background:var(--paper);box-shadow:0 0 0 5px #c8b27c,inset 0 1px 2px rgba(0,0,0,.25);}
.icard .row{display:flex;align-items:flex-end;gap:16px;margin-top:30px;}
.icard .row:first-of-type{margin-top:34px;}
.icard label{flex:0 0 200px;font-size:14px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--brown);}
.icard .line{flex:1;height:2px;border-bottom:2px dotted rgba(92,58,30,.35);}
.calc{flex:1;}
.calc .op{display:flex;align-items:baseline;gap:22px;font-family:var(--font-display);font-size:56px;font-weight:600;color:var(--ink-soft);}
.calc .op b{font-size:84px;color:var(--ink);}
.calc .op span{font-size:30px;font-family:var(--font-body);font-weight:500;color:var(--ink-muted);}
.calc .eq{margin-top:20px;font-family:var(--font-display);font-size:170px;font-weight:600;line-height:1;color:var(--green);}
.calc .eq small{font-size:60px;margin-left:12px;}
.calc .cap{margin-top:8px;font-size:26px;color:var(--ink-soft);}
.calc .more{margin-top:34px;font-family:var(--font-hand);font-size:44px;color:var(--red-pencil);}

/* ═════════════ 18 · ARCHIVISTI DIGITALI ═════════════ */
#archivisti .stage{padding-top:84px;}
#archivisti h2{font-size:68px;}
.pipe{width:1360px;height:auto;margin-top:22px;overflow:visible;}
.pipe .lbl{font-family:var(--font-body);font-size:25px;font-weight:700;fill:#efe7d6;}
.pipe .sub{font-family:var(--font-body);font-size:19px;font-weight:600;letter-spacing:.06em;fill:rgba(244,239,231,.55);}
.pipe .route{fill:none;stroke:rgba(233,200,123,.28);stroke-width:2;stroke-dasharray:4 7;}
.pipe .node{fill:#2b241c;stroke:rgba(233,200,123,.5);stroke-width:1.6;}
.pipe .node.human{fill:#3a5a3c;stroke:#c8d8c5;}
.pipe .worker{fill:#2b241c;stroke:rgba(233,200,123,.75);stroke-width:1.6;}
.pipe .icon{fill:none;stroke:var(--gold-light);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;}
.pipe .icon.light{stroke:#e8f0e5;}
.pipe .eye-scan{fill:none;stroke:var(--gold-light);stroke-width:2;opacity:.0;}
.slide.active .pipe .eye-scan{animation:scan 2.4s ease-in-out infinite;animation-delay:var(--d);}
@keyframes scan{0%,100%{opacity:0;}40%,60%{opacity:.9;}}
.steps3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;width:100%;margin-top:26px;}
.steps3 div{padding:22px 26px;border-radius:16px;background:rgba(255,250,242,.06);border:1px solid rgba(255,250,242,.14);}
.steps3 b{display:block;font-family:var(--font-display);font-size:32px;color:var(--gold-light);}
.steps3 p{margin-top:8px;font-size:20px;line-height:1.45;color:rgba(244,239,231,.8);}

/* ═════════════ 19 · LE REGOLE ═════════════ */
.rules{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;width:100%;margin-top:54px;}
.rule{
  position:relative;padding:34px 28px 30px;background:#fffdf6;border:1px solid #e6dcc6;border-radius:6px;
  box-shadow:0 18px 40px rgba(31,27,23,.12);transform:rotate(var(--r,0deg));
  background-image:repeating-linear-gradient(180deg,transparent 0 35px,rgba(154,118,80,.1) 35px 36px);
}
.rule:nth-child(1){--r:-1.2deg;}.rule:nth-child(2){--r:.9deg;}.rule:nth-child(3){--r:-.7deg;}.rule:nth-child(4){--r:1.1deg;}
.rule .n{position:absolute;top:-24px;left:24px;width:52px;height:52px;border-radius:50%;background:var(--green);color:var(--paper-soft);font-family:var(--font-display);font-size:30px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px rgba(47,79,50,.35);}
.rule h3{margin-top:14px;font-size:38px;line-height:1.08;}
.rule p{margin-top:14px;font-size:20px;line-height:1.5;color:var(--ink-soft);}
.slide.active .rule{animation:deal .7s cubic-bezier(.2,.9,.3,1.15) backwards;animation-delay:calc(.3s + var(--i) * .16s);}
.banner{
  margin-top:50px;padding:24px 40px;border-radius:999px;background:var(--ink);color:var(--paper-soft);
  font-family:var(--font-display);font-size:38px;line-height:1.2;text-align:center;
}
.banner i{color:var(--gold-light);}

/* ═════════════ 20 · UNA SCHEDA ═════════════ */
.scan{position:relative;flex:0 0 auto;width:660px;padding:14px 14px 56px;background:#fffdf6;border:1px solid #e9e0cc;box-shadow:0 30px 70px rgba(31,27,23,.22);transform:rotate(-1.5deg);}
.scan .ph{position:relative;overflow:hidden;}
.scan img{width:100%;height:440px;object-fit:cover;}
.scan .bar{position:absolute;left:0;right:0;height:90px;top:-90px;background:linear-gradient(180deg,transparent,rgba(233,200,123,.5) 70%,rgba(255,250,235,.95) 100%);mix-blend-mode:screen;}
.slide.active .scan .bar{animation:scanbar 2.6s ease-in-out .5s 2;}
@keyframes scanbar{0%{top:-90px;}100%{top:100%;}}
.scan .cap{position:absolute;left:0;right:0;bottom:12px;text-align:center;font-family:var(--font-hand);font-size:30px;color:var(--ink-soft);}
.fields{flex:1;max-width:720px;}
.fields .f{padding:14px 0;border-bottom:1px solid var(--paper-edge);display:flex;gap:20px;align-items:baseline;}
.fields .f label{flex:0 0 190px;font-size:18px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--earth);}
.fields .f span{flex:1;font-size:32px;line-height:1.4;color:var(--ink);min-height:1.4em;}
.fields .f.title span{font-family:var(--font-display);font-size:46px;font-weight:600;line-height:1.12;}
.fields .f.desc span{font-size:19px;color:var(--ink-soft);}
.fields .f.unk span{font-family:var(--font-hand);font-size:42px;color:var(--red-pencil);}
.fields .typing::after{content:'▍';color:var(--gold);animation:caret .8s steps(1) infinite;}
@keyframes caret{50%{opacity:0;}}
.okstamp{
  display:inline-flex;align-items:center;gap:12px;margin-top:26px;padding:12px 22px;border:4px solid var(--green);border-radius:10px;
  color:var(--green);font-weight:800;font-size:24px;letter-spacing:.14em;text-transform:uppercase;transform:rotate(-3deg);opacity:0;
}
.okstamp.on{animation:stampIn2 .45s cubic-bezier(.2,1.5,.45,1) forwards;}
@keyframes stampIn2{from{opacity:0;transform:rotate(-3deg) scale(1.8);}to{opacity:1;transform:rotate(-3deg) scale(1);}}

#esempio .pair{display:flex;align-items:center;gap:42px;width:100%;}
#esempio .scan{width:510px;}
#esempio .scan img{height:340px;}
#esempio .fields .f{padding:9px 0;gap:16px;}
#esempio .fields .f label{flex-basis:150px;font-size:15px;letter-spacing:.1em;}
#esempio .fields .f span{font-size:23px;line-height:1.3;}
#esempio .fields .f.title span{font-size:38px;}
#esempio .fields .f.desc span{font-size:21px;line-height:1.4;}
#esempio .fields .f.unk span{font-size:31px;}
#esempio .okstamp{margin-top:18px;font-size:18px;padding:10px 16px;}
#esempio .banner{margin-top:30px;font-size:32px;}
.map-row[data-progetto]{cursor:pointer;border-radius:12px;}
.map-row[data-progetto]:hover{background:rgba(255,250,242,.7);}

/* ═════════════ IL SALUTO DEL SINDACO ═════════════ */
.sindaco .hero{position:absolute;inset:0;overflow:hidden;}
.sindaco .hero img{width:100%;height:100%;object-fit:cover;opacity:.22;filter:grayscale(1);animation:kenburns 30s ease-in-out infinite alternate;}
@keyframes kenburns{0%{transform:scale(1);}100%{transform:scale(1.1) translate(-1.5%,1.5%);}}
.sindaco .hero::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 70% at 50% 50%,rgba(244,239,231,.55),var(--paper) 100%);}
.speaker .stemma-big{flex:0 0 auto;height:260px;width:auto;filter:drop-shadow(0 14px 30px rgba(31,27,23,.3));}

/* ═════════════ L'IDEA · quattro parole, quattro foto ═════════════ */
.verbs{display:grid;grid-template-columns:repeat(4,1fr);gap:34px;width:100%;margin-top:60px;}
.verb{padding:14px 14px 22px;background:#fffdf6;border:1px solid #e9e0cc;box-shadow:0 18px 40px rgba(31,27,23,.16);transform:rotate(var(--r,0deg));}
.verb:nth-child(1){--r:-2deg;}.verb:nth-child(2){--r:1.5deg;}.verb:nth-child(3){--r:-1deg;}.verb:nth-child(4){--r:2deg;}
.verb img{width:100%;height:220px;object-fit:cover;filter:grayscale(1) sepia(.25);}
.verb figcaption{margin-top:14px;text-align:center;font-family:var(--font-display);font-style:italic;font-weight:600;font-size:54px;line-height:1;color:var(--green);}
.slide.active .verb{animation:deal .8s cubic-bezier(.2,.9,.3,1.15) backwards;animation-delay:calc(.35s + var(--i) * .25s);}

.first-photos{margin-top:32px;text-align:center;font-size:27px;line-height:1.45;color:var(--ink-soft);}
.first-photos strong{color:var(--green);font-weight:600;}
.awards-pair{grid-template-columns:repeat(2,1fr);max-width:980px;}

/* ═════════════ DAI CONTRIBUTI ALLA SCUOLA · il tavolo delle idee ═════════════ */
.sketch-table{position:relative;width:100%;height:650px;flex:0 0 auto;}
.scrap{position:absolute;left:var(--x);top:var(--y);width:var(--w);transform:rotate(var(--r));box-shadow:0 15px 32px rgba(31,27,23,.17);border:1px solid #e2d7c2;background:#fffdf6;}
.scrap-photo{padding:11px 11px 12px;}
.scrap-photo img{display:block;width:100%;height:150px;object-fit:cover;filter:grayscale(1) sepia(.15);}
.scrap-photo figcaption{margin-top:8px;font-family:var(--font-hand);font-size:29px;line-height:1.1;text-align:center;color:var(--ink-soft);}
.scrap-note{min-height:147px;display:flex;flex-direction:column;justify-content:center;padding:22px 24px;font-family:var(--font-hand);font-size:39px;line-height:1.05;color:var(--green);background:#f2e2b5;}
.scrap-note::before,.scrap-photo::before{content:'';position:absolute;top:-12px;left:calc(50% - 38px);width:76px;height:24px;transform:rotate(-4deg);background:rgba(213,193,151,.63);}
.scrap-sage{background:#dce4d3;}
.scrap-lined{background-color:#fffdf6;background-image:repeating-linear-gradient(0deg,transparent 0 31px,rgba(154,118,80,.14) 31px 32px);}
.pencil-line{width:130px;height:9px;border-bottom:3px solid var(--red-pencil);border-radius:50%;transform:rotate(-4deg);margin-top:8px;}
.scrap-question{z-index:2;padding:24px 36px 26px;text-align:center;border:1px solid #d9cdb4;box-shadow:0 22px 50px rgba(31,27,23,.23);}
.scrap-question h2{font-size:89px;line-height:.95;}
.scrap-question p{margin-top:19px;font-size:21px;line-height:1.35;color:var(--ink-soft);}

/* ═════════════ OTTO PROGETTI · loghi grandi e una parola ═════════════ */
.pjs{display:grid;grid-template-columns:repeat(4,1fr);gap:30px 34px;width:100%;margin-top:56px;}
.pj{display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer;border-radius:18px;padding:8px;}
.pj:hover,.pj:focus-visible{background:rgba(255,250,242,.7);outline:none;}
.pj .lg{width:150px;height:150px;border-radius:50%;background:#fffdf6;border:1px solid #e6dcc6;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 26px rgba(31,27,23,.12);}
.pj .lg img{max-width:72%;max-height:72%;object-fit:contain;}
.pj b{margin-top:14px;font-family:var(--font-display);font-size:38px;font-weight:600;line-height:1.05;}
.pj small{margin-top:8px;padding:4px 12px;border-radius:999px;font-size:15px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;background:var(--sage-soft);color:var(--green);}
.slide.active .pj{animation:rise .7s var(--ease) backwards;animation-delay:calc(.25s + var(--i) * .1s);}

/* ═════════════ ARCHIVISTI · tre parole chiave ═════════════ */
.keys3{display:flex;align-items:center;gap:26px;margin-top:22px;}
.keys3 span{padding:14px 34px;border-radius:999px;background:rgba(233,200,123,.12);border:1px solid rgba(233,200,123,.4);font-family:var(--font-display);font-size:44px;font-weight:600;color:var(--gold-light);}
.keys3 i{font-style:normal;font-size:36px;color:rgba(244,239,231,.5);}

/* fascia dell'esempio: compare da sola dopo il timbro */
.banner.auto{opacity:0;translate:0 18px;transition:opacity .7s var(--ease),translate .7s var(--ease);}
.banner.auto.on{opacity:1;translate:0 0;}
#esempio .banner{font-size:34px;line-height:1.25;}
.script-big{font-family:var(--font-display);font-style:italic;font-size:44px;color:var(--earth);}
.slide.active .todo li{animation:rise .7s var(--ease) backwards;animation-delay:calc(.4s + var(--i) * .2s);}

/* ═════════════ 21 · PER TUTTI ═════════════ */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;width:100%;margin-top:54px;}
.tile{display:flex;gap:22px;align-items:flex-start;padding:30px 30px;border-radius:20px;background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:0 18px 44px rgba(31,27,23,.08);}
.tile .ic{flex:0 0 auto;width:66px;height:66px;border-radius:18px;background:var(--sage-soft);color:var(--green);display:flex;align-items:center;justify-content:center;}
.tile .ic svg{width:34px;height:34px;}
.tile h3{font-size:34px;}
.tile p{margin-top:8px;font-size:20px;line-height:1.45;color:var(--ink-soft);}
.slide.active .tile{animation:rise .7s var(--ease) backwards;animation-delay:calc(.25s + var(--i) * .12s);}

/* ═════════════ 23 · IL PROVINO ═════════════ */
.sheet{position:relative;width:1340px;margin-top:40px;background:#23201a;border-radius:14px;padding:22px 26px 26px;box-shadow:0 34px 85px rgba(31,27,23,.38),0 0 110px rgba(185,145,79,.14);}
.sheet-head{display:flex;justify-content:space-between;color:#a99f8a;font-size:16px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;padding:2px 4px 16px;}
.sheet-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.pose{position:relative;border-radius:5px;background:linear-gradient(155deg,#2f2b23,#282419);border:1px solid #3b362b;padding:30px 22px 24px;min-height:200px;display:flex;flex-direction:column;gap:10px;}
.pose::before,.pose::after{content:'';position:absolute;left:8px;right:8px;height:6px;background-image:radial-gradient(circle,rgba(244,239,231,.45) 2px,transparent 2.2px);background-size:16px 6px;}
.pose::before{top:6px;}
.pose::after{bottom:6px;}
.pose .num{position:absolute;top:12px;right:14px;font-size:11px;font-weight:700;letter-spacing:.18em;color:#7c7260;}
.pose .icon{width:42px;height:42px;color:#d9cfb6;}
.pose .icon svg{width:100%;height:100%;}
.pose h3{font-family:var(--font-display);font-size:40px;font-weight:700;color:#f0ead9;line-height:1.2;}
.pose p{font-size:24px;line-height:1.3;color:#cfc4ad;}
.pose.soon{background:repeating-linear-gradient(135deg,#2a2620 0 12px,#26221c 12px 24px);}
.pose.soon h3{color:var(--gold-light);}
.pose .mark{position:absolute;inset:-8px;width:calc(100% + 16px);height:calc(100% + 16px);pointer-events:none;}
.pose .mark ellipse{stroke:var(--red-pencil);stroke-width:4;fill:none;stroke-linecap:round;stroke-dasharray:560;stroke-dashoffset:560;opacity:0;}
.pose.marked .mark ellipse{animation:penDraw 1s ease-out forwards;}
@keyframes penDraw{0%{stroke-dashoffset:560;opacity:.9;}100%{stroke-dashoffset:30;opacity:.9;}}
.pose .note{position:absolute;bottom:-18px;right:12px;z-index:3;font-family:var(--font-hand);font-size:36px;font-weight:600;color:var(--red-pencil);transform:rotate(-5deg);opacity:0;transition:opacity .3s;}
.pose.marked .note{opacity:1;transition-delay:.55s;}

/* ═════════════ 24 · LE SCHERMATE ═════════════ */
.screens{position:relative;width:920px;aspect-ratio:16/10;margin-top:34px;}
.shot{position:absolute;inset:0;border-radius:14px;overflow:hidden;border:1px solid var(--glass-border);box-shadow:0 30px 80px rgba(31,27,23,.28);background:var(--white);transition:transform 1s var(--ease),opacity 1s var(--ease),filter 1s var(--ease);}
.shot img{width:100%;height:100%;object-fit:cover;object-position:top;padding-top:30px;}
.shot .bar{position:absolute;top:0;left:0;right:0;height:30px;background:rgba(244,239,231,.95);border-bottom:1px solid var(--paper-edge);display:flex;align-items:center;gap:6px;padding:0 12px;}
.shot .bar i{width:10px;height:10px;border-radius:50%;background:var(--paper-edge);}
.shot .bar span{margin-left:14px;font-size:12px;color:var(--ink-muted);letter-spacing:.04em;}
.shot[data-pos="0"]{transform:none;opacity:1;z-index:5;filter:none;}
.shot[data-pos="1"]{transform:translateX(8%) rotate(2.2deg) scale(.93);opacity:.5;z-index:4;filter:blur(1px);}
.shot[data-pos="2"]{transform:translateX(15%) rotate(4.2deg) scale(.86);opacity:.25;z-index:3;filter:blur(2px);}
.shot[data-pos="3"]{transform:translateX(-8%) rotate(-2.2deg) scale(.93);opacity:.5;z-index:4;filter:blur(1px);}
.shot[data-pos="4"]{transform:translateX(-15%) rotate(-4.2deg) scale(.86);opacity:.25;z-index:3;filter:blur(2px);}
.shot[data-pos="hidden"]{opacity:0;transform:scale(.8);z-index:1;}
.shot-caption{margin-top:30px;min-height:36px;text-align:center;font-family:var(--font-display);font-style:italic;font-size:32px;color:var(--ink-soft);transition:opacity .4s;}

/* ═════════════ 25 · I DONATORI ═════════════ */
.clothes{position:relative;width:1560px;height:380px;margin-top:26px;}
.clothes svg.rope{position:absolute;left:0;top:0;width:100%;height:80px;}
.hang{position:absolute;top:var(--y);left:var(--x);transform-origin:top center;animation:sway var(--sw,5.5s) ease-in-out infinite alternate;}
@keyframes sway{from{transform:rotate(-2.2deg);}to{transform:rotate(2.2deg);}}
.hang::before{content:'';position:absolute;top:-16px;left:50%;transform:translateX(-50%);width:11px;height:22px;border-radius:3px;background:linear-gradient(180deg,#c9a86b,#a9824a);box-shadow:0 1px 3px rgba(31,27,23,.3);z-index:2;}
.hang.pic{width:150px;padding:8px 8px 26px;background:#fffdf6;border:1px solid #e9e0cc;box-shadow:0 12px 26px rgba(31,27,23,.2);}
.hang.pic img{width:100%;height:112px;object-fit:cover;filter:grayscale(1) sepia(.3);}
.hang.name{width:320px;padding:28px 28px 26px;background:linear-gradient(160deg,#f2e8d2,#e9ddc0);border:1px solid #dbcda9;border-radius:8px;box-shadow:0 16px 34px rgba(31,27,23,.16);}
.hang.name b{display:block;font-family:var(--font-display);font-size:52px;font-weight:600;line-height:1.05;}
.hang.name p{margin-top:12px;font-size:27px;line-height:1.45;color:var(--ink-soft);}
#donatori .lead{margin-top:10px;max-width:1000px;text-align:center;}

/* ═════════════ 27 · IL FUTURO ═════════════ */
.ideas{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;width:100%;margin-top:50px;}
.idea-c{position:relative;padding:28px 30px;border-radius:18px;background:var(--paper-soft);border:1px dashed rgba(154,118,80,.45);}
.idea-c .ic{display:block;width:52px;height:52px;color:var(--earth);}
.idea-c .ic svg{width:100%;height:100%;}
.idea-c h3{margin-top:12px;font-size:36px;}
.idea-c p{margin-top:8px;font-size:20px;line-height:1.45;color:var(--ink-soft);}
.slide.active .idea-c{animation:rise .7s var(--ease) backwards;animation-delay:calc(.25s + var(--i) * .12s);}
.motto{margin-top:46px;font-family:var(--font-display);font-style:italic;font-size:46px;color:var(--green);}

/* ═════════════ 28 · TOCCA A VOI ═════════════ */
.todo{flex:1;}
.todo h2{font-size:96px;}
.todo ol{list-style:none;margin-top:44px;display:flex;flex-direction:column;gap:30px;}
.todo li{display:flex;gap:26px;align-items:flex-start;}
.todo li .n{flex:0 0 auto;width:78px;height:78px;border-radius:50%;background:var(--green);color:var(--paper-soft);font-family:var(--font-display);font-size:46px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px rgba(47,79,50,.3);}
.todo li b{display:block;font-family:var(--font-display);font-size:58px;line-height:1.05;}
.todo li p{margin-top:6px;font-size:30px;line-height:1.45;color:var(--ink-soft);max-width:700px;}
.qr{flex:0 0 auto;width:440px;padding:34px 34px 30px;border-radius:24px;background:#fff;box-shadow:0 34px 80px rgba(31,27,23,.2);text-align:center;transform:rotate(1.5deg);}
.qr img{width:100%;height:auto;}
.qr b{display:block;margin-top:14px;font-size:24px;font-weight:800;color:var(--ink);word-break:break-all;}
.qr span{display:block;margin-top:6px;font-size:16px;color:var(--ink-muted);}

/* ═════════════ 29 · GRAZIE ═════════════ */
#grazie h2{font-size:170px;}
#grazie h2 i{color:var(--green);}
.credits{display:grid;grid-template-columns:repeat(3,1fr);gap:24px 50px;width:100%;margin-top:50px;text-align:left;}
.credits div{padding-top:16px;border-top:2px solid var(--paper-edge);}
.credits span{display:block;font-size:18px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--earth);}
.credits b{display:block;margin-top:8px;font-family:var(--font-display);font-size:38px;font-weight:600;line-height:1.15;}
.slide.active .credits div{animation:rise .7s var(--ease) backwards;animation-delay:calc(.4s + var(--i) * .1s);}

/* QR e ringraziamenti restano insieme nell'ultima slide. */
#grazie .stage.row{gap:56px;}
.grazie-copy{flex:1;min-width:0;}
#grazie h2{font-size:140px;}
#grazie .credits{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 30px;margin-top:30px;}
#grazie .credits b{font-size:34px;}
#grazie .qr{width:360px;padding:28px;transform:none;text-decoration:none;}
#grazie .qr b{font-size:18px;}
#grazie .qr span{margin-top:12px;font-size:18px;}

/* ═════════════ 30 · ACCENSIONE ═════════════ */
#accensione{background:radial-gradient(ellipse 70% 60% at 50% 50%,#3a1612 0%,#1c0d0a 55%,#0c0605 100%);color:var(--paper-soft);}
#accensione .safelight{position:absolute;left:50%;top:-140px;width:900px;height:600px;margin-left:-450px;border-radius:50%;background:radial-gradient(circle,rgba(179,38,30,.55),transparent 65%);animation:breathe 4s ease-in-out infinite alternate;}
@keyframes breathe{from{opacity:.55;}to{opacity:1;}}
#accensione .eyebrow{color:#e0897e;}
#accensione h2{font-size:120px;text-align:center;}
#accensione h2 i{color:var(--gold-light);}
#accensione .lead{text-align:center;color:rgba(244,239,231,.7);}
.switch{
  position:relative;margin-top:60px;width:230px;height:230px;border-radius:50%;cursor:pointer;
  border:2px solid rgba(233,200,123,.55);background:radial-gradient(circle at 50% 40%,#4a2a1c,#22110c);color:var(--gold-light);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  font-size:15px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;
  box-shadow:0 0 0 14px rgba(233,200,123,.06),0 0 80px rgba(233,200,123,.18);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.switch:hover,.switch:focus-visible{transform:scale(1.05);box-shadow:0 0 0 18px rgba(233,200,123,.1),0 0 120px rgba(233,200,123,.35);outline:none;}
.switch svg{width:70px;height:70px;}
.switch::after{content:'';position:absolute;inset:-14px;border-radius:50%;border:2px solid rgba(233,200,123,.4);animation:wave 2.8s ease-out infinite;}

/* conto alla rovescia — coda di pellicola */
.leader{position:fixed;inset:0;z-index:97;display:none;align-items:center;justify-content:center;background:radial-gradient(circle,#4b453b 0%,#2a2620 60%,#14110d 100%);overflow:hidden;}
.leader.on{display:flex;animation:flickerBg .14s steps(2) infinite;}
@keyframes flickerBg{50%{filter:brightness(1.07);}}
.leader .ring{position:relative;width:min(78vh,78vw);height:min(78vh,78vw);border-radius:50%;}
.leader .sweep{position:absolute;inset:0;border-radius:50%;background:conic-gradient(rgba(255,250,235,.28) calc(var(--a,0) * 1turn),rgba(0,0,0,.18) 0);}
.leader .c1,.leader .c2{position:absolute;border-radius:50%;border:max(3px,.5vmin) solid rgba(255,250,235,.85);}
.leader .c1{inset:0;}
.leader .c2{inset:9%;}
.leader .h,.leader .v{position:absolute;background:rgba(255,250,235,.7);}
.leader .h{left:-30vw;right:-30vw;top:50%;height:max(2px,.35vmin);}
.leader .v{top:-30vh;bottom:-30vh;left:50%;width:max(2px,.35vmin);}
.leader .num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:min(52vh,52vw);line-height:1;color:#fffaf0;text-shadow:0 0 40px rgba(0,0,0,.5);}
.leader .scratch{position:absolute;top:0;bottom:0;width:2px;background:rgba(255,250,235,.25);animation:scratch .5s steps(3) infinite;}
.leader .scratch:nth-child(2){animation-duration:.7s;}
@keyframes scratch{0%{left:12%;}33%{left:67%;}66%{left:38%;}100%{left:84%;}}
.leader .label{position:absolute;bottom:5vh;left:0;right:0;text-align:center;font-size:clamp(12px,1.4vw,18px);font-weight:800;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,250,235,.6);}
.flash{position:fixed;inset:0;z-index:98;background:#fffdf5;opacity:0;pointer-events:none;}
.flash.on{animation:flash .9s ease-out forwards;}
@keyframes flash{0%{opacity:0;}25%{opacity:1;}100%{opacity:1;}}

/* ═════════════ Telefono in verticale ═════════════
   Solo qui la slide diventa una pagina che scorre. Qualunque schermo orizzontale
   (proiettore, portatile, finestra ridotta, zoom del browser) scala il palco e
   non scorre mai. */
@media (max-width:900px) and (orientation:portrait){
  body{overflow:hidden;}
  .slide{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;}
  .stage{
    position:relative;left:auto;top:auto;transform:none !important;
    width:100%;height:auto;min-height:100%;padding:84px 20px 90px;
  }
  .stage.row{flex-direction:column;gap:34px;}
  .slide h2,#cassetto h2,#dimenticanza h2,#archivisti h2,.todo h2{font-size:40px;}
  .lead,#dimenticanza .lead{font-size:18px;}
  .chrome-brand .brand-text,.chrome-atto{display:none;}
  .navbtn{display:flex;}
  .counter{left:50%;right:auto;transform:translateX(-50%);bottom:22px;padding:5px 12px;border-radius:999px;background:rgba(244,239,231,.92);}
  .is-dark .counter{background:rgba(22,18,9,.85);}
  #copertina h1{font-size:72px;}
  #copertina .sub{font-size:19px;}
  #copertina .cop-testo{flex:none;align-items:center;text-align:center;}
  #copertina .cop-testo .eyebrow{white-space:normal;}
  #copertina .cop-evento{font-size:17px;letter-spacing:.14em;}
  #copertina .cop-quando{font-size:15px;}
  #copertina .pila{flex:none;width:90vw;height:70vw;}
  .film-badge--big{width:86vw;}
  #cassetto .hand{font-size:28px;}
  #cassetto .punch,#dimenticanza .punch{font-size:32px;}
  .box{transform:scale(.58);transform-origin:top center;margin-bottom:-250px;}
  .fading{width:min(360px,90vw);padding:10px 10px 50px;}
  .fading img{height:260px;}
  .fading .q{font-size:26px;}
  .strip{width:100%;height:auto;padding:60px 0;transform:none;}
  .strip .side{display:none;}
  .strip .frame{width:92%;height:auto;flex-direction:column;gap:10px;padding:30px 20px;text-align:center;}
  .strip .numeral{font-size:120px;min-width:0;}
  .strip h2{font-size:52px;}
  .strip .lead{font-size:20px;}
  .strip .edge{display:none;}
  .pjs{grid-template-columns:1fr 1fr;}
  .keys3{flex-wrap:wrap;justify-content:center;}
  .keys3 span{font-size:24px;padding:8px 18px;}
  .verb img{height:150px;}
  .first-photos{font-size:19px;margin-top:24px;}
  .sketch-table{height:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px;padding:16px 4px;}
  .scrap{position:relative;left:auto;top:auto;width:auto;min-width:0;}
  .scrap-question{grid-column:1/-1;order:-1;padding:24px 12px;}
  .scrap-question h2{font-size:56px;}
  .scrap-question p{font-size:17px;}
  .scrap-photo{padding:7px 7px 11px;}
  .scrap-photo img{height:120px;}
  .scrap-photo figcaption{font-size:23px;}
  .scrap-note{padding:16px 12px;min-height:146px;font-size:28px;}
  .scrap-note::before,.scrap-photo::before{width:54px;left:calc(50% - 27px);height:20px;}
  .pencil-line{width:90px;}
  .verb figcaption{font-size:34px;}
  .speaker .stemma-big{height:120px;}
  .verbs,.who,.awards,.tiles,.ideas,.rules,.steps3,.credits,.map{grid-template-columns:1fr;gap:16px;margin-top:28px;}
  .verb{border-left:none;border-top:1px solid var(--paper-edge);padding:16px 0 0;}
  .verb h3{font-size:42px;}
  .verb p,.who-card p,.tile p,.idea-c p,.rule p{font-size:17px;}
  .tl{width:100%;height:auto;display:flex;flex-wrap:wrap;gap:12px;justify-content:center;}
  .tl-line,.tl-years,.tl-glow{display:none;}
  .tl-pic{position:static;margin:0;width:120px;}
  .tl-pic img{height:84px;}
  .tl-end{position:static;opacity:1;transform:none;width:100%;margin-top:14px;}
  .tl-end .ring{width:100px;height:100px;}
  .doc{width:100%;padding:26px 22px;}
  .doc ul{grid-template-columns:1fr;}
  .doc .ask{font-size:22px;}
  .stamp-red{right:6px;bottom:-22px;font-size:15px;}
  .who-card b{font-size:32px;}
  .board{width:100%;height:auto;display:flex;flex-wrap:wrap;gap:16px;justify-content:center;}
  .polaroid{position:static;width:140px;}
  .polaroid .ph{height:100px;}
  .polaroid figcaption{font-size:19px;}
  .map-row .from{flex-basis:110px;font-size:12px;}
  .map-row .to{font-size:21px;}
  .map-row .lg{width:56px;height:56px;}
  .map-row .arrow{flex-basis:24px;}
  .speaker{width:100%;flex-direction:column;gap:24px;padding:30px 22px;text-align:center;}
  .mic{width:120px;height:120px;}
  .mic svg{width:54px;height:54px;}
  .speaker h2{font-size:40px;}
  .speaker .topic{font-size:24px;}
  .voce .logos{display:none;}
  .chrono{flex-direction:column;padding:30px 16px;}
  .cframe{width:100%;height:auto;opacity:1;}
  .chips{flex-wrap:wrap;justify-content:center;}
  .chip{font-size:15px;}
  .icard{width:100%;padding:26px 20px;transform:none;}
  .icard label{flex-basis:130px;font-size:11px;}
  .calc .op{font-size:28px;flex-wrap:wrap;}
  .calc .op b{font-size:44px;}
  .calc .eq{font-size:90px;}
  .calc .cap,.calc .more{font-size:20px;}
  .pipe{width:100%;}
  .rule h3{font-size:28px;}
  .banner{font-size:22px;border-radius:20px;padding:18px;}
  .scan,#esempio .scan{width:100%;}
  #esempio .pair{flex-direction:column;gap:24px;}
  #esempio .banner{font-size:20px;}
  .scan img{height:240px;}
  .fields .f{flex-direction:column;gap:4px;}
  .fields .f label,#esempio .fields .f label{flex-basis:auto;}
  .fields .f.title span,#esempio .fields .f.title span{font-size:26px;}
  .fields .f span,#esempio .fields .f span{font-size:18px;}
  #esempio .fields .f.unk span{font-size:25px;}
  .sheet{width:100%;padding:16px;}
  .sheet-grid{grid-template-columns:1fr 1fr;gap:10px;}
  .pose{min-height:0;padding:24px 14px 18px;}
  .pose h3{font-size:17px;}
  .pose p{font-size:13.5px;}
  .screens{width:100%;}
  .shot-caption{font-size:20px;}
  .clothes{width:100%;height:auto;display:flex;flex-wrap:wrap;gap:30px 16px;justify-content:center;padding-top:30px;}
  .clothes svg.rope{display:none;}
  .hang{position:relative;top:auto;left:auto;}
  .hang.pic{display:none;}
  .hang.name{width:100%;}
  .todo li b{font-size:28px;}
  .todo li p{font-size:17px;}
  .todo li .n{width:54px;height:54px;font-size:30px;}
  .qr{width:min(320px,90vw);}
  #grazie .stage.row{gap:32px;}
  .grazie-copy{width:100%;}
  #grazie h2{font-size:90px;}
  #grazie .credits{grid-template-columns:1fr;gap:16px;margin-top:28px;}
  #grazie .credits b{font-size:24px;}
  #grazie .qr{width:min(320px,100%);padding:24px;}
  .credits b{font-size:24px;}
  #accensione h2{font-size:52px;}
  .switch{width:180px;height:180px;}
}

/* ── 16 · Serata inaugurale: le stampe sul tavolo (assets/stampe.css) ── */
#serata .stage{padding:70px 120px 60px;gap:10px;}
#serata .pila{width:1100px;height:600px;--w-o:66%;--w-v:37%;--fs-titolo:32px;--fs-num:13px;}
#serata .serata-titolo{font-size:76px;}
#serata .serata-quando{font-size:17px;}
#serata .serata-quando i{font-style:normal;color:var(--gold);padding:0 .6em;}
#serata .serata-dove{display:block;margin-top:.7em;font-size:16px;letter-spacing:.16em;color:rgba(244,239,231,.55);}
