@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/poppins-800i-latin-ext.woff2) format('woff2');
  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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/poppins-800i-latin.woff2) format('woff2');
  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: 'Poppins';
  font-style: italic;
  font-weight: 900;
  font-display: swap;
  src: url(fonts/poppins-900i-latin-ext.woff2) format('woff2');
  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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 900;
  font-display: swap;
  src: url(fonts/poppins-900i-latin.woff2) format('woff2');
  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: 'Poppins';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(fonts/poppins-300-latin-ext.woff2) format('woff2');
  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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(fonts/poppins-300-latin.woff2) format('woff2');
  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: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/poppins-400-latin-ext.woff2) format('woff2');
  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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/poppins-400-latin.woff2) format('woff2');
  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: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/poppins-600-latin-ext.woff2) format('woff2');
  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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/poppins-600-latin.woff2) format('woff2');
  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: 'Poppins';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/poppins-800-latin-ext.woff2) format('woff2');
  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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/poppins-800-latin.woff2) format('woff2');
  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: 'Poppins';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(fonts/poppins-900-latin-ext.woff2) format('woff2');
  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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(fonts/poppins-900-latin.woff2) format('woff2');
  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{--night:#1d2128;--night-2:#262b33;--red:#f2442e;--red-d:#d93520;--cream:#f1ece3;--paper:#fffdf8;--ink:#1d2128;--r:20px;--max:1200px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:70px}
body{margin:0;font-family:Poppins,system-ui,sans-serif;background:var(--cream);color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 22px}
section{display:flow-root}
.label{display:inline-block;font-size:.74rem;font-weight:800;letter-spacing:.01em;padding:6px 12px;border-radius:6px;white-space:nowrap}
.mega{font-weight:900;text-transform:uppercase;letter-spacing:-.035em;line-height:.9;margin:0}
.btn{font-family:inherit;display:inline-flex;align-items:center;gap:.7em;padding:14px 16px 14px 24px;border-radius:999px;font-weight:600;text-decoration:none;border:2px solid transparent;transition:transform .15s,background .15s;cursor:pointer;font-size:1rem}
.btn:hover{transform:translateY(-2px)}
.btn .ar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.2);font-size:.95rem}
.btn-red{background:var(--red);color:#fff}.btn-red:hover{background:var(--red-d)}
.btn-dark{background:var(--night);color:var(--cream)}
.btn-line{border-color:currentColor}
.sticker{position:absolute;z-index:3;font-weight:800;font-size:.78rem;letter-spacing:.01em;padding:8px 14px;border-radius:8px;box-shadow:0 8px 20px rgba(0,0,0,.18)}
.halftone{background-image:radial-gradient(rgba(241,236,227,.5) 1.15px,transparent 1.5px);background-size:7px 7px}

/* ticker */
.ticker{background:var(--night);color:var(--cream);overflow:hidden;white-space:nowrap;font-size:.74rem;font-weight:600;letter-spacing:.01em;padding:9px 0;border-bottom:1px solid rgba(241,236,227,.08)}
.ticker .run{display:inline-flex;gap:28px;animation:mq 40s linear infinite}
.ticker b{color:var(--red)}
@keyframes mq{to{transform:translateX(-50%)}}

/* header */
.top{position:sticky;top:0;z-index:50;background:rgba(29,33,40,.92);backdrop-filter:blur(10px);color:var(--cream)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;gap:20px}
.top img{height:38px;width:auto}
.top nav{display:flex;gap:6px;font-size:.88rem;font-weight:600;letter-spacing:.01em}
.top nav a{text-decoration:none;padding:8px 12px;border-radius:999px}
.top nav a:hover{background:rgba(241,236,227,.1)}
.top .btn{padding:8px 8px 8px 18px;font-size:.88rem}.top .btn .ar{width:26px;height:26px}

/* hero */
.hero{background:var(--night);color:var(--cream);position:relative;padding:64px 0 0;overflow:hidden}
.hero .bg-ht{position:absolute;right:-6%;top:-10%;width:52%;aspect-ratio:1;border-radius:50%;opacity:.25;filter:blur(.2px)}
.hero .center{position:relative;text-align:center;max-width:860px;margin:0 auto}
.hero .logo{width:min(560px,82%);margin:0 auto}
.hero .sub{font-size:clamp(.95rem,1.6vw,1.1rem);letter-spacing:.01em;opacity:.75;margin:22px 0 26px}
.st-date{left:-4%;top:66%;background:#f6b7a5;color:var(--night);transform:rotate(-12deg);font-size:clamp(1rem,2.2vw,1.5rem);padding:10px 18px}
.st-place{left:3%;top:30%;background:var(--cream);color:var(--night);transform:rotate(-8deg)}
.st-place::before{content:"●";color:var(--red);margin-right:6px}
.st-free{right:0;top:10%;background:var(--red);color:#fff;transform:rotate(9deg)}
.spark{position:absolute;z-index:2;width:90px;color:var(--red)}
.spark.s1{left:-7%;top:6%;width:120px}
.spark.s2{right:-5%;bottom:-6%;width:70px;color:var(--cream)}
.badge{position:absolute;right:-4%;top:46%;width:150px;height:150px;z-index:3}
.badge svg.txt{width:100%;height:100%;animation:spin 22s linear infinite}
.badge a{position:absolute;inset:38px;border-radius:50%;background:var(--red);display:grid;place-items:center;color:#fff;text-decoration:none;font-size:1.5rem}
@keyframes spin{to{transform:rotate(360deg)}}
.cd{display:flex;justify-content:center;gap:10px;margin:34px 0 0}
.cd div{min-width:86px;padding:12px 8px 10px;border:1.5px solid rgba(241,236,227,.2);border-radius:12px}
.cd b{display:block;font-size:2.3rem;font-weight:900;line-height:1;letter-spacing:-.03em}
.cd span{font-size:.68rem;letter-spacing:.01em;opacity:.7}
.collage{position:relative;display:flex;justify-content:center;align-items:flex-end;gap:0;margin-top:56px;height:340px}
.collage figure{margin:0 -14px;width:250px;border-radius:14px;overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.45);border:5px solid var(--cream);background:var(--cream);position:relative;transition:transform .3s}
.collage figure:hover{transform:translateY(-10px) rotate(0)!important;z-index:5}
.collage figure img{width:100%;height:330px;object-fit:cover}
.collage .c1{transform:rotate(-7deg) translateY(30px)}
.collage .c2{transform:rotate(3deg)}
.collage .c3{transform:rotate(-2deg) translateY(10px);z-index:2}
.collage .c4{transform:rotate(6deg) translateY(36px)}
.collage .c5{transform:rotate(-4deg) translateY(50px)}
.collage .c5 img{object-fit:contain;padding:24px;background:var(--cream)}
.hero-cream{height:90px;background:var(--cream);margin-top:-60px;position:relative;z-index:0}

/* statement */
.statement{padding:90px 0 70px;position:relative}
.statement .mega{font-size:clamp(2.6rem,7.6vw,6.6rem)}
.statement .mega em{font-style:italic;color:var(--red)}
.pill-img{display:inline-block;width:1.9em;height:.78em;border-radius:999px;overflow:hidden;vertical-align:.05em;background:url(foto-chiostro.webp) center 30%/cover}
.statement .row{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:46px;align-items:start}
.statement p{margin:0;font-size:1.08rem}
.statement .lab-pos{position:relative}
.st-about{left:auto;right:6%;top:-24px;background:#ffd54a;color:var(--night);transform:rotate(8deg)}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.fact{background:var(--paper);border-radius:14px;padding:16px}
.fact b{display:block;font-size:2rem;font-weight:900;letter-spacing:-.03em;line-height:1}
.fact span{font-size:.82rem;opacity:.7}

/* esperienze (label stack) */
.exp{padding:30px 0 90px}
.exp-eyebrow{font-size:clamp(1rem,1.4vw,1.1rem);letter-spacing:.01em;color:var(--red);font-weight:800;margin:0 0 14px}
.exp-claim{font-size:clamp(2.2rem,5.6vw,4.8rem);margin:0 0 40px}
.exp-claim em{font-style:italic;color:var(--red)}
.exp-list{display:grid;gap:0;border-top:2px solid var(--ink)}
.exp-row{display:grid;grid-template-columns:minmax(260px,1.1fr) 1.6fr 170px;gap:24px;align-items:center;padding:22px 0;border-bottom:1.5px solid rgba(29,33,40,.15);transition:background .2s}
.exp-row:hover{background:rgba(242,68,46,.05)}
.exp-row .hl{justify-self:start;font-size:clamp(1.5rem,3.4vw,2.6rem);font-weight:900;text-transform:uppercase;letter-spacing:-.03em;line-height:1;padding:6px 14px 8px;border-radius:10px}
.exp-row:nth-child(1) .hl{background:var(--red);color:#fff;transform:rotate(-2deg)}
.exp-row:nth-child(2) .hl{background:#ffd54a;transform:rotate(1.5deg)}
.exp-row:nth-child(3) .hl{background:var(--night);color:var(--cream);transform:rotate(-1deg)}
.exp-row:nth-child(4) .hl{background:#f6b7a5;transform:rotate(2deg)}
.exp-row:nth-child(5) .hl{background:var(--paper);border:2px solid var(--ink);transform:rotate(-2deg)}
.exp-row:nth-child(6) .hl{background:var(--red);color:#fff;transform:rotate(1deg)}
.exp-row p{margin:0}
.exp-row time{justify-self:end;font-weight:800;font-size:.9rem;text-align:right}

/* photo text */
.phototext{padding:20px 0 0;overflow:hidden}
.phototext .big{font-size:clamp(4rem,17vw,15.5rem);font-weight:900;letter-spacing:-.05em;line-height:.82;text-align:center;text-transform:uppercase;background:url(locandina-generale.webp) center 22%/cover;-webkit-background-clip:text;background-clip:text;color:transparent;margin:0}
.band{background:var(--night);color:var(--cream);margin-top:18px}
.band .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.band .cell{padding:30px 26px;border-right:1px solid rgba(241,236,227,.12)}
.band .cell:last-child{border-right:0}
.band small{display:block;color:var(--red);font-weight:600;font-size:.8rem;margin-bottom:6px}
.band b{display:block;font-size:clamp(1.3rem,2.4vw,1.8rem);font-weight:900;text-transform:uppercase;letter-spacing:-.02em;line-height:1.05}
.band span{display:block;opacity:.7;font-size:.9rem;margin-top:6px}
.band a{display:inline-block;margin-top:12px;font-size:.85rem;font-weight:600;color:var(--red)}

/* programma */
.prog{background:var(--night);color:var(--cream);padding:90px 0}
.prog .head{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap}
.prog .mega{font-size:clamp(2.6rem,7vw,5.6rem)}
.prog .mega em{color:var(--red);font-style:italic}
.tabs{display:flex;gap:10px;flex-wrap:wrap;margin:34px 0 26px}
.tabs button{font:inherit;font-weight:600;font-size:.92rem;padding:10px 18px;border-radius:999px;border:1.5px solid rgba(241,236,227,.35);background:transparent;color:var(--cream);cursor:pointer}
.tabs button[aria-selected=true]{background:#b9a6ff;border-color:#b9a6ff;color:var(--night)}
.panel{display:none}.panel.on{display:block}
.panel .where{opacity:.7;margin:0 0 10px}
.slot{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:18px 0;border-top:1px solid rgba(241,236,227,.12)}
.slot time{font-weight:900;color:var(--red);font-size:1.25rem;letter-spacing:-.02em}
.slot b{display:block;font-size:1.1rem;font-weight:600}
.slot small{display:block;opacity:.7;font-size:.92rem}
.note{font-size:.82rem;opacity:.55;margin-top:20px}

/* biglietti */
.tickets{background:var(--red);padding:100px 0 110px;position:relative;overflow:hidden}
.tickets .mega{color:#fff;font-size:clamp(2.6rem,7vw,5.6rem)}
.tickets .mega em{font-style:italic;color:var(--night)}
.tickets .intro{color:#fff;max-width:560px;margin:16px 0 0;font-size:1.05rem}
.tk-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:56px;max-width:960px}
.tk{background:var(--paper);border-radius:14px 14px 0 0;padding:28px 28px 32px;position:relative;box-shadow:0 26px 50px rgba(0,0,0,.18)}
.tk:nth-child(1){transform:rotate(-1.6deg)}
.tk:nth-child(2){transform:rotate(1.4deg)}
.tk::after{content:"";position:absolute;left:0;right:0;bottom:-12px;height:12px;background:radial-gradient(circle at 12px 0,var(--paper) 12px,transparent 12.5px) 0 0/24px 12px repeat-x}
.tk h3{font-size:1.3rem;font-weight:900;text-transform:uppercase;letter-spacing:-.01em;margin:0 0 16px}
.tk .r{display:flex;justify-content:space-between;gap:12px;font-size:.92rem;padding:7px 0;border-bottom:1.5px dotted rgba(29,33,40,.3)}
.tk .r span{opacity:.6;font-size:.74rem;letter-spacing:.01em;padding-top:2px}
.tk .r b{font-weight:600;text-align:right}
.tk .r b.chip{background:#dff1ff;color:#2a6fb0;border-radius:999px;padding:1px 10px;font-size:.8rem}
.tk .stencil{font-size:clamp(2.6rem,6vw,3.6rem);font-weight:900;text-transform:uppercase;letter-spacing:-.03em;line-height:1;margin:22px 0 18px;color:transparent;-webkit-text-stroke:1.5px rgba(29,33,40,.35);text-align:center}
.tk .btn{width:100%;justify-content:center}
.tk .fine{font-size:.74rem;opacity:.6;margin:12px 0 0;text-align:center}
.tk .sticker{right:-18px;top:-18px}
.tickets .ht{position:absolute;right:-140px;top:-140px;width:460px;height:460px;border-radius:50%;opacity:.3}

/* locandine */
.posters{padding:100px 0}
.posters .head{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap}
.posters .mega{font-size:clamp(2.6rem,7vw,5.6rem)}
.posters .mega em{font-style:italic;color:var(--red)}
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px}
.pcard img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top;border-radius:10px}
.pcard .meta{display:flex;justify-content:space-between;font-size:.8rem;font-weight:600;margin-top:12px}
.pcard h3{font-size:1.15rem;font-weight:900;text-transform:uppercase;margin:4px 0 2px;letter-spacing:-.01em}
.pcard a{font-size:.85rem;color:var(--red);font-weight:600;text-decoration:none}
.pcard.soon .ph{aspect-ratio:3/4;border-radius:10px;border:2px dashed rgba(29,33,40,.25);display:grid;place-items:center;text-align:center;padding:20px}
.pcard.soon .ph img{width:70px;aspect-ratio:auto;margin:0 auto 10px}

/* faq */
.faq{padding:0 0 100px}
.faq .grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px}
.faq .mega{font-size:clamp(2.6rem,6vw,4.6rem)}
.faq details{border-bottom:1.5px solid rgba(29,33,40,.2);padding:18px 4px}
.faq details:first-child{border-top:2px solid var(--ink)}
.faq summary{cursor:pointer;font-weight:600;font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;gap:18px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--red);font-weight:900;font-size:1.4rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:10px 0 0;opacity:.85}

/* finale */
.finale{background:var(--paper);padding:90px 0 0;overflow:hidden;position:relative}
.finale .mega{font-size:clamp(3.4rem,13vw,12rem);color:var(--red);text-align:center;position:relative;z-index:2;line-height:.85}
.finale .mid{display:flex;justify-content:center;margin:26px 0 0;position:relative;z-index:3}
.finale .shots{display:flex;justify-content:center;gap:0;margin-top:-30px;height:300px;align-items:flex-end}
.finale .shots img{width:280px;height:280px;object-fit:cover;border-radius:12px;margin:0 -10px;box-shadow:0 18px 40px rgba(0,0,0,.25)}
.finale .shots img:nth-child(1){transform:rotate(-6deg) translateY(40px)}
.finale .shots img:nth-child(2){transform:rotate(3deg)}
.finale .shots img:nth-child(3){transform:rotate(-2deg) translateY(30px)}
.finale .sticker{left:50%;bottom:40px;transform:translateX(-50%) rotate(-6deg);background:#ffd54a;color:var(--night);font-size:.95rem}

.logos{background:#fff;padding:54px 0}
.logos p{text-align:center;margin:0 0 24px;font-size:.74rem;letter-spacing:.01em;font-weight:600;opacity:.55}
.logos img{margin:0 auto;width:min(1000px,100%)}
footer{background:var(--night);color:var(--cream);padding:56px 0 120px}
footer .wrap{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end}
footer img.sm{width:210px}
footer img.sky{width:180px}
footer .legal{font-size:.85rem;opacity:.7;margin-top:16px}
.mcta{display:none}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s}
.reveal.in{opacity:1;transform:none}

@media (max-width:960px){
  .top nav{display:none}
  .hero{padding-top:40px}
  .st-place{top:-4%;left:0}.st-date{left:0;top:64%}.st-free{top:-6%}
  .badge,.spark{display:none}
  .fact b{font-size:1.45rem}
  .hero .sticker{position:static;display:inline-block;margin:0 4px 14px;font-size:.7rem;padding:6px 10px}
  .st-date{font-size:.7rem}
  .statement .st-about{position:static;display:inline-block;margin-bottom:18px}
  .cd div{min-width:68px}.cd b{font-size:1.7rem}
  .collage{height:250px;margin-top:40px}
  .collage figure{width:150px;margin:0 -22px}
  .collage figure img{height:220px}
  .collage .c4,.collage .c5{display:none}
  .statement .row,.faq .grid,.tk-grid{grid-template-columns:1fr}
  .exp-row{grid-template-columns:1fr;gap:10px}
  .exp-row time{justify-self:start;text-align:left}
  .band .wrap{grid-template-columns:1fr}
  .band .cell{border-right:0;border-bottom:1px solid rgba(241,236,227,.12)}
  .pgrid{grid-template-columns:repeat(4,70%);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}
  .pcard{scroll-snap-align:start}
  .slot{grid-template-columns:84px 1fr;gap:12px}
  .finale .shots img{width:150px;height:150px}
  .finale .shots{height:180px}
  footer .wrap{grid-template-columns:1fr}
  .mcta{display:flex;position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:60;justify-content:center;box-shadow:0 12px 30px rgba(0,0,0,.4)}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* v3 */
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hero .name{margin:22px 0 0;font-weight:800;letter-spacing:.01em;font-size:clamp(.9rem,1.5vw,1.05rem)}
.hero .sub{margin:8px 0 18px}
.hl-line{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:0 0 26px}
.hl-line span{background:var(--cream);color:var(--night);font-weight:800;font-size:.85rem;letter-spacing:.01em;padding:7px 14px;border-radius:8px}
.hl-line span+span{background:var(--red);color:#fff}
.cd-msg{margin:30px auto 0;display:inline-block;background:var(--red);color:#fff;font-weight:800;padding:12px 20px;border-radius:12px}
.st-800{position:absolute;right:22px;top:-30px;background:#ffd54a;color:var(--night);transform:rotate(6deg);font-size:.95rem}
.tickets .wrap{position:relative}
.tickets .intro b{font-weight:800}
.tk .r b{max-width:62%}
.how-t{color:#fff;font-size:clamp(1.4rem,3vw,2.2rem);font-weight:900;text-transform:uppercase;letter-spacing:-.02em;margin:80px 0 22px}
.how{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,1fr);gap:12px;counter-reset:none}
.how li{background:rgba(255,255,255,.12);border:1.5px solid rgba(255,255,255,.35);border-radius:14px;padding:18px;color:#fff;font-size:.95rem}
.how li b{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--night);color:#fff;font-weight:900;margin-bottom:12px}
.how-note{color:#fff;margin:18px 0 0;font-weight:600}
.finale .claim{text-align:center;margin:22px auto 0;max-width:720px;font-size:1.05rem;position:relative;z-index:3}
.privacy{background:#fff;padding:0 0 56px}
.privacy .wrap{max-width:860px}
.privacy h2{font-size:.8rem;letter-spacing:.01em;margin:0 0 12px;opacity:.6}
.privacy p{font-size:.85rem;opacity:.75;margin:0 0 8px}
@media (max-width:960px){
  .how{grid-template-columns:1fr}
  .st-800{position:static;display:inline-block;margin-bottom:16px}
  .hl-line span{font-size:.72rem}
}
.cookie{position:fixed;left:16px;bottom:16px;z-index:80;max-width:440px;background:var(--paper);color:var(--ink);border-radius:16px;padding:18px 20px;box-shadow:0 18px 50px rgba(0,0,0,.35)}
.cookie p{margin:0 0 12px;font-size:.88rem}
.cookie-btns{display:flex;gap:8px;justify-content:flex-end}
.cookie .btn{padding:9px 18px;font-size:.88rem}
footer .legal.small{font-size:.78rem;margin-top:10px}
footer .legal a{color:var(--cream)}
.privacy a{color:var(--red)}
@media (max-width:960px){.cookie{left:10px;right:10px;bottom:84px;max-width:none}}

/* pagine interne (FAQ, privacy) */
.page-hero{background:var(--night);color:var(--cream);padding:70px 0 60px;position:relative;overflow:hidden}
.page-hero .mega{font-size:clamp(2.6rem,7vw,5.2rem)}
.page-hero .mega em{font-style:italic;color:var(--red)}
.page-hero p{margin:18px 0 0;max-width:620px;opacity:.8}
.page-hero .bg-ht{position:absolute;right:-8%;top:-30%;width:40%;aspect-ratio:1;border-radius:50%;opacity:.25}
.back{display:inline-block;margin-bottom:22px;font-size:.9rem;font-weight:600;text-decoration:none;opacity:.8}
.back:hover{opacity:1;color:var(--red)}
.doc{padding:70px 0 90px}
.doc .wrap{max-width:860px}
.doc h2{font-size:1.35rem;font-weight:900;margin:40px 0 10px;letter-spacing:-.01em}
.doc h2:first-child{margin-top:0}
.doc p{margin:0 0 12px}
.doc a{color:var(--red)}
.doc a.btn-red{color:#fff}.doc a.btn-dark{color:var(--cream)}.doc a.btn-line{color:var(--ink)}
.doc .box{background:var(--paper);border-radius:16px;padding:22px 24px;margin-top:16px}
.doc .faq-wrap details{border-bottom:1.5px solid rgba(29,33,40,.2);padding:18px 4px}
.doc .faq-wrap details:first-child{border-top:2px solid var(--ink)}
.doc .faq-wrap summary{cursor:pointer;font-weight:600;font-size:1.08rem;list-style:none;display:flex;justify-content:space-between;gap:18px}
.doc .faq-wrap summary::-webkit-details-marker{display:none}
.doc .faq-wrap summary::after{content:"+";color:var(--red);font-weight:900;font-size:1.4rem;line-height:1}
.doc .faq-wrap details[open] summary::after{content:"–"}
.doc .faq-wrap details p{margin:10px 0 0;opacity:.85}
.doc .cta{margin-top:40px;display:flex;gap:12px;flex-wrap:wrap}
.faq .more{display:inline-block;margin-top:18px;font-weight:600;color:var(--red);text-decoration:none}

/* v3.5: niente overflow orizzontale su mobile */
html,body{overflow-x:clip}
.statement .row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.facts{grid-template-columns:repeat(3,minmax(0,1fr))}
.fact span{overflow-wrap:anywhere;hyphens:auto}
@media (max-width:960px){
  .statement .row,.faq .grid,.tk-grid{grid-template-columns:minmax(0,1fr)}
  .fact{padding:12px 10px}
  .fact span{font-size:.74rem;line-height:1.3;display:block}
}
@media (max-width:360px){
  .fact b{font-size:1.2rem}
  .cookie-btns .btn{padding:8px 14px}
}

/* v3.6: navbar che si nasconde scorrendo giù e ricompare scorrendo su */
.top{padding-top:env(safe-area-inset-top);transition:transform .3s ease;will-change:transform}
.top.top--hidden{transform:translateY(calc(-100% - 2px))}
@media (prefers-reduced-motion:reduce){.top{transition:none}}

/* v3.7: icone SVG al posto delle frecce di testo */
.i{width:1.15em;height:1.15em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.btn .ar .i{width:16px;height:16px}
.band a,.pcard a,.faq .more,.back{display:inline-flex;align-items:center;gap:.4em}
.badge a .i{width:26px;height:26px}
.ticker .tk-dot{width:12px;height:12px;align-self:center}
@media (max-width:960px){.badge a .i{width:20px;height:20px}}
.faq summary::after,.doc .faq-wrap summary::after,.faq details[open] summary::after,.doc .faq-wrap details[open] summary::after{content:"";width:22px;height:22px;flex:none;background:var(--red);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .2s}
.faq details[open] summary::after,.doc .faq-wrap details[open] summary::after{transform:rotate(45deg)}

/* v3.8: carosello locandine su mobile solo orizzontale e a tutta larghezza */
@media (max-width:960px){
  .pgrid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:72%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;touch-action:pan-x pan-y;scroll-snap-type:x mandatory;scroll-padding-inline:22px;margin-inline:-22px;padding:0 22px 4px;scrollbar-width:none}
  .pgrid::-webkit-scrollbar{display:none}
  .pgrid .pcard{scroll-snap-align:start;opacity:1;transform:none}
}

/* v3.9: striscia immagini a tutta larghezza al posto del collage inclinato */
.hero{padding-bottom:56px}
.strip{background:linear-gradient(var(--night) 50%,var(--cream) 50%);overflow:hidden;padding:0}
.strip-run{display:flex;gap:14px;width:max-content;animation:strip 60s linear infinite}
.strip figure{margin:0;height:380px;border-radius:16px;overflow:hidden;flex:none;box-shadow:0 18px 40px rgba(0,0,0,.25)}
.strip img{height:100%;width:100%;object-fit:cover;display:block}
.strip .s-ph{width:300px}
.strip .s-po{width:300px}.strip .s-po img{object-position:top}
.strip .s-yr{width:280px;background:var(--night);border:1.5px solid rgba(241,236,227,.15)}.strip .s-yr img{object-fit:contain;padding:28px}
.strip .s-sk{width:340px;background:var(--paper)}.strip .s-sk img{object-fit:contain;padding:40px}
@keyframes strip{to{transform:translateX(calc(-50% - 7px))}}
.statement{padding-top:70px}
@media (max-width:960px){
  .hero{padding-bottom:40px}
  .strip figure{height:250px}
  .strip .s-ph,.strip .s-po{width:190px}.strip .s-yr{width:180px}.strip .s-sk{width:220px}
  .strip-run{gap:10px;animation-duration:45s}
  @keyframes strip{to{transform:translateX(calc(-50% - 5px))}}
  .statement{padding-top:56px}
}
@media (prefers-reduced-motion:reduce){.strip-run{animation:none}}
