@font-face{font-family:'Archivo';src:url(fonts/archivo-wdth.woff2) format('woff2');font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url(fonts/jetbrains-mono.woff2) format('woff2');font-weight:100 800;font-display:swap}
:root{--ink:#121212;--paper:#F2EFE8;--mut:#5A564E;--acc:#E8531F;--acc-d:#B23C0C;--soft:#E6E1D6}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Archivo',system-ui,sans-serif;font-stretch:100%}
a{color:var(--ink)}a:hover{color:var(--acc-d)}
.wrap{max-width:1360px;margin:0 auto;padding:0 clamp(20px,4vw,56px)}
.mono,.date,.place,.meta,.counts,.kicker,.fbtn,.btn,.noimg{font-family:'JetBrains Mono',ui-monospace,monospace;letter-spacing:.02em}
.mut{color:var(--mut)}
.small{font-size:13px;line-height:1.6;margin:0}
[hidden]{display:none!important}

.top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:22px 0;border-bottom:1.5px solid var(--ink);font-size:12px;text-transform:uppercase;letter-spacing:.12em}

.hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:48px;align-items:end;padding:clamp(40px,7vw,96px) 0 clamp(32px,5vw,64px)}
.mark{position:relative}
.ring{position:absolute;left:47%;top:50%;width:clamp(200px,34vw,470px);aspect-ratio:1;transform:translate(-50%,-54%);border:clamp(10px,1.6vw,22px) solid var(--acc);border-radius:50%}
h1{position:relative;margin:0;font-weight:900;font-stretch:125%;font-size:clamp(96px,18.5vw,268px);line-height:.78;letter-spacing:-.045em}
.sub2{position:relative;margin:28px 0 0;font-weight:800;font-stretch:62%;font-size:clamp(40px,6vw,84px);line-height:.9;text-transform:uppercase}
.intro{display:flex;flex-direction:column;gap:22px;padding-bottom:6px}
.big{margin:0;font-size:clamp(19px,1.6vw,23px);line-height:1.38}

.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink)}
.stats div{padding:22px 20px 22px 0;display:flex;flex-direction:column;gap:6px}
.stats b{font-weight:800;font-stretch:62%;font-size:clamp(48px,5.4vw,76px);line-height:.9}
.stats span{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--mut)}

.filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:28px 0 8px}
.lbl{font-size:12px;text-transform:uppercase;letter-spacing:.12em;margin-right:8px}
.fbtn{font-size:13px;letter-spacing:.06em;text-transform:uppercase;background:transparent;color:var(--ink);border:1.5px solid var(--ink);border-radius:999px;padding:0 18px;min-height:44px;cursor:pointer;display:inline-flex;align-items:center;gap:10px}
.fbtn:hover{background:var(--soft)}
.fbtn.on{background:var(--ink);color:var(--paper)}
.fbtn .n{opacity:.6}
.fbtn.on .mk-C{border-color:var(--paper)}.fbtn.on .mk-X{background:var(--paper)}

.mk{display:inline-block;flex:none;width:14px;height:14px;border-radius:50%}
.mk-P{background:var(--acc)}
.mk-C{border:3px solid var(--ink)}
.mk-X{height:3px;border-radius:0;background:var(--ink)}

.year{padding-top:clamp(56px,8vw,112px)}
.yhead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,480px);gap:56px;align-items:end;padding-bottom:28px}
.yhead h2{margin:0 0 18px;font-weight:900;font-stretch:125%;font-size:clamp(64px,8vw,128px);line-height:.78;letter-spacing:-.05em}
.counts{display:flex;flex-wrap:wrap;align-items:center;gap:10px 26px;border-top:1.5px solid var(--ink);padding-top:14px;font-size:13px}
.counts span{display:inline-flex;align-items:center;gap:8px}
.counts .mk{width:12px;height:12px}.counts .mk-C{border-width:2.5px}.counts .mk-X{height:2.5px}
.counts .tot{font-weight:700;text-transform:uppercase;letter-spacing:.1em}
.counts .cities{color:var(--mut);text-transform:uppercase;letter-spacing:.08em}
.lead{margin:0;font-size:clamp(18px,1.5vw,21px);line-height:1.45;padding-bottom:4px}

.rows{border-bottom:1px solid var(--ink)}
.ev{display:grid;grid-template-columns:150px 28px minmax(0,1fr) 240px 120px;column-gap:20px;align-items:start;padding:20px 0;border-top:1px solid var(--ink)}
.date{font-size:13px;font-weight:500;line-height:1.4;padding-top:6px}
.mkc{padding-top:9px}.mkc .mk{width:16px;height:16px}.mkc .mk-X{height:3px;margin-top:7px}
.body{display:flex;flex-direction:column;gap:6px;min-width:0}
.body h3{margin:0;font-weight:700;font-stretch:75%;font-size:clamp(24px,2.6vw,36px);line-height:1;transition:color .2s}
.ev:hover h3{color:var(--acc-d)}
.sub{margin:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:16px;line-height:1.35}
.sw{width:34px;height:12px;display:inline-block;outline:1px solid rgba(18,18,18,.25)}
.meta{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--mut)}
.place{font-size:12px;line-height:1.5;padding-top:6px;color:var(--mut)}
.place b{color:var(--ink);text-transform:uppercase;letter-spacing:.08em}
.thumb img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--soft);filter:grayscale(1) contrast(1.08);transition:filter .25s}
.ev:hover .thumb img,.ev:focus-within .thumb img{filter:none}
.noimg{width:100%;aspect-ratio:4/3;border:1px dashed #8A857B;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--mut);text-transform:uppercase;letter-spacing:.08em;text-align:center}

.undated{padding-top:clamp(56px,8vw,112px)}
.kicker{font-size:12px;text-transform:uppercase;letter-spacing:.14em;margin:0 0 14px}
.undated h2{margin:0 0 24px;font-weight:800;font-stretch:62%;font-size:clamp(40px,5vw,72px);line-height:.9;text-transform:uppercase}
.undated ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));border-top:1px solid var(--ink)}
.undated li{padding:18px 20px 18px 0;border-bottom:1px solid var(--ink);display:flex;gap:14px;align-items:center;font-weight:600;font-stretch:75%;font-size:24px;line-height:1.1}
.undated .mk{width:16px}

.foot{margin-top:clamp(72px,10vw,140px);padding:40px 0 56px;border-top:1.5px solid var(--ink);display:flex;flex-wrap:wrap;justify-content:space-between;gap:32px;align-items:flex-end}
.foot>div{max-width:640px}
.cta{margin:0 0 14px;font-weight:800;font-stretch:62%;font-size:clamp(36px,4.4vw,60px);line-height:.92;text-transform:uppercase}
.foot p:last-child{margin:0;font-size:17px;line-height:1.45}
.btn{display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:0 26px;background:var(--ink);color:var(--paper);text-decoration:none;font-size:13px;text-transform:uppercase;letter-spacing:.1em;border-radius:999px}
.btn:hover{background:var(--acc-d);color:#fff}
.legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:0 0 32px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--mut)}

@media (max-width:1000px){
  .hero,.yhead{grid-template-columns:minmax(0,1fr);gap:28px}
  h1{font-size:clamp(96px,28vw,268px)}
  .ev{grid-template-columns:110px 24px minmax(0,1fr) 96px}
  .place{grid-column:3;grid-row:2;margin-top:8px;padding-top:0}
  .thumb{grid-column:4;grid-row:1/span 2}
}
@media (max-width:640px){
  .top{flex-direction:column;gap:4px}
  .ev{grid-template-columns:20px minmax(0,1fr) 84px;column-gap:14px;row-gap:6px;padding:18px 0}
  .date{grid-column:1/span 2;grid-row:1;padding-top:0}
  .mkc{grid-column:1;grid-row:2;padding-top:6px}
  .body{grid-column:2;grid-row:2}
  .place{grid-column:2;grid-row:3;margin-top:0}
  .thumb{grid-column:3;grid-row:1/span 3}
  .thumb img{filter:none}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats div:nth-child(-n+2){border-bottom:1px solid var(--ink)}
  .fbtn{padding:0 14px;font-size:12px}
  .counts{gap:8px 18px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* rassegna stampa */
.top a{text-decoration:none}.top a:hover{color:var(--acc-d)}
.press{margin-top:clamp(72px,10vw,140px);padding-top:clamp(40px,5vw,64px);border-top:6px solid var(--ink)}
.ph2{margin:0;font-weight:900;font-stretch:125%;font-size:clamp(40px,9.6vw,140px);line-height:.82;letter-spacing:-.045em;text-transform:uppercase}
.pinfo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);gap:56px;align-items:end;margin-top:36px}
.pchart{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-bottom:1.5px solid var(--ink)}
.pcol{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding-bottom:10px}
.pstack{display:flex;flex-direction:column-reverse;gap:6px;min-height:calc(5*22px + 4*6px);justify-content:flex-start}
.pstack span{width:22px;height:22px;border-radius:50%;background:var(--acc)}
.pcol b{font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700}
.pcol .pn{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--mut)}
.plead{max-width:560px;margin:0}
.prows{margin-top:24px;border-bottom:1px solid var(--ink)}
.pyear{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:13px;letter-spacing:.14em;padding:26px 0 10px;border-top:1.5px solid var(--ink)}
.pr{display:grid;grid-template-columns:150px minmax(0,300px) minmax(0,1fr) 200px;column-gap:20px;padding:18px 0;border-top:1px solid rgba(18,18,18,.35);align-items:baseline}
.pyear+.pr{border-top:0}
.pt h3{margin:0;font-weight:800;font-stretch:62%;font-size:clamp(26px,2.4vw,34px);line-height:.95;text-transform:uppercase}
.pnum{display:block;margin-top:6px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.pbody p{margin:0}
.ptl{font-size:18px;line-height:1.3;font-weight:500}
.pde{margin-top:6px!important;font-size:15px;line-height:1.4;color:var(--mut)}
.pau{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--mut);line-height:1.5}
@media (max-width:1000px){
  .pinfo{grid-template-columns:minmax(0,1fr);gap:32px}
  .pr{grid-template-columns:110px minmax(0,1fr);row-gap:8px}
  .pt{grid-column:2}.pbody{grid-column:2}.pau{grid-column:2}
  .pr .date{grid-row:1/span 3}
}
@media (max-width:640px){
  .pr{grid-template-columns:minmax(0,1fr)}
  .pt,.pbody,.pau{grid-column:1}.pr .date{grid-row:auto}
  .pstack span{width:16px;height:16px}.pstack{min-height:calc(5*16px + 4*6px)}
}

/* pagine evento, artisti, luoghi */
.top{align-items:center}
.top a{text-decoration:none}
.body h3 a{color:inherit;text-decoration:none}
.body h3 a:hover{color:var(--acc-d)}
.body h3 a::after{content:" →";font-size:.6em;vertical-align:.25em;color:var(--acc)}
.gal{margin:2px 0 0;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.gal a{color:var(--acc-d);text-decoration:none;border-bottom:1px solid currentColor}
.evhero{padding:clamp(40px,6vw,88px) 0 clamp(28px,4vw,48px);border-bottom:1.5px solid var(--ink)}
.evhero .kicker{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.evh1{margin:0;font-weight:800;font-stretch:62%;font-size:clamp(48px,8vw,120px);line-height:.88;text-transform:uppercase;letter-spacing:-.005em}
.evh1.big{font-weight:900;font-stretch:125%;font-size:clamp(56px,11vw,160px);letter-spacing:-.045em}
.evsub{margin:18px 0 0;max-width:720px;font-size:clamp(18px,1.6vw,22px);line-height:1.4}
.evdesc{margin:22px 0 0;max-width:680px;font-size:16px;line-height:1.6;color:#333}
.evmeta{display:flex;flex-wrap:wrap;gap:12px 40px;margin:28px 0 0}
.evmeta div{display:flex;flex-direction:column;gap:4px}
.evmeta dt{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.evmeta dd{margin:0;font-size:14px;font-weight:500}
.gsec{padding-top:clamp(40px,5vw,72px)}
.gh2{margin:0 0 20px;font-weight:800;font-stretch:62%;font-size:clamp(32px,3.6vw,52px);line-height:.9;text-transform:uppercase;display:flex;align-items:baseline;gap:14px;border-bottom:1.5px solid var(--ink);padding-bottom:12px}
.gh2 .mono{font-size:13px;font-weight:500;letter-spacing:.08em;color:var(--mut)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:28px 20px}
.grid-ph{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.tile{margin:0;display:flex;flex-direction:column;gap:8px;min-width:0}
.tile a{display:block;background:var(--soft)}
.tile img{width:100%;aspect-ratio:1;object-fit:contain;display:block;transition:opacity .2s}
.tile.ph img{aspect-ratio:4/3;object-fit:cover}
.tile a:hover img{opacity:.85}
.tile figcaption{font-size:11px;line-height:1.4;letter-spacing:.04em}
.tile figcaption a{background:none;color:var(--ink);text-decoration:none;display:inline}
.tile figcaption a:hover{color:var(--acc-d)}
.names{margin:0;font-size:18px;line-height:1.7}
.names a{text-decoration:none;white-space:nowrap}.names a:hover{color:var(--acc-d)}
.evnav{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:clamp(56px,8vw,112px);border-top:1.5px solid var(--ink);padding:28px 0 48px}
.evnav a{text-decoration:none;display:flex;flex-direction:column;gap:8px}
.evnav a.nx{text-align:right;align-items:flex-end}
.evnav b{font-weight:800;font-stretch:62%;font-size:clamp(26px,3vw,40px);line-height:.95;text-transform:uppercase}
.evnav .mono{font-size:12px;letter-spacing:.1em;color:var(--mut)}
.evnav a:hover b{color:var(--acc-d)}
.alpha{display:flex;flex-wrap:wrap;gap:6px;margin-top:28px}
.alpha a{min-width:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--ink);border-radius:999px;text-decoration:none;font-size:13px}
.alpha a:hover{background:var(--ink);color:var(--paper)}
.letter{margin:48px 0 0;font-weight:900;font-stretch:125%;font-size:clamp(48px,6vw,88px);line-height:1;border-bottom:1.5px solid var(--ink);padding-bottom:8px;scroll-margin-top:20px}
.ar{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:12px 32px;padding:18px 0;border-bottom:1px solid rgba(18,18,18,.3);align-items:start;scroll-margin-top:20px}
.ar:target{background:#FBE3D6;outline:8px solid #FBE3D6}
.arn h3{margin:0;font-weight:700;font-stretch:75%;font-size:26px;line-height:1.05}
.arn .mono{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.arev{margin:4px 0 0;display:flex;flex-direction:column;gap:4px;font-size:12px}
.arev a{text-decoration:none}.arev a:hover{color:var(--acc-d)}
.arth{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px}
.arth a{display:block;aspect-ratio:1;background:var(--soft)}
.arth img{width:100%;height:100%;object-fit:cover;display:block}
.luoghi{padding-top:clamp(56px,8vw,112px)}
.luoghi h2{margin:0 0 24px;font-weight:800;font-stretch:62%;font-size:clamp(40px,5vw,72px);line-height:.9;text-transform:uppercase}
.lg{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));border-top:1px solid var(--ink)}
.lg li{padding:16px 20px 16px 0;border-bottom:1px solid var(--ink);display:flex;flex-direction:column;gap:4px}
.lg b{font-weight:700;font-stretch:75%;font-size:24px;line-height:1.05}
.lg .ad{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--mut);text-transform:uppercase;letter-spacing:.06em}
.lg .le{font-family:'JetBrains Mono',monospace;font-size:12px;display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px}
.lg .le a{text-decoration:none;border-bottom:1px solid var(--acc)}
.lg .le .none{color:var(--mut)}
.lb{position:fixed;inset:0;z-index:50;background:rgba(18,18,18,.94);display:flex;align-items:center;justify-content:center;gap:12px;padding:56px 16px}
.lb[hidden]{display:none!important}
.lb figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:12px;max-width:min(1100px,100%);max-height:100%}
.lb img{max-width:100%;max-height:calc(100vh - 140px);object-fit:contain;background:#fff}
.lb figcaption{color:#F2EFE8;font-size:12px;letter-spacing:.08em;text-transform:uppercase;text-align:center}
.lb button{background:transparent;color:#F2EFE8;border:1.5px solid #F2EFE8;border-radius:999px;width:48px;height:48px;font-size:20px;cursor:pointer;flex:none}
.lb button:hover{background:#F2EFE8;color:#121212}
.lb-x{position:absolute;top:12px;right:12px}
@media (max-width:760px){
  .ar{grid-template-columns:minmax(0,1fr)}
  .arth{justify-content:flex-start}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}
  .grid-ph{grid-template-columns:minmax(0,1fr)}
  .lb{padding:64px 8px 80px}.lb-p,.lb-n{position:absolute;bottom:16px}.lb-p{left:calc(50% - 60px)}.lb-n{right:calc(50% - 60px)}
  .evnav{grid-template-columns:minmax(0,1fr)}.evnav a.nx{text-align:left;align-items:flex-start}
}

/* rassegna stampa: link e schede */
.ptl a{text-decoration:none}.ptl a:hover{color:var(--acc-d)}
.pdl{display:inline-block;margin-top:6px;color:var(--acc-d);text-decoration:none;border-bottom:1px solid currentColor;font-weight:700}
.press-art{display:flex;flex-direction:column;gap:28px;max-width:820px}
.pimg{margin:0}.pimg img{width:100%;height:auto;display:block}
.pq{margin:0;padding:0 0 0 24px;border-left:3px solid var(--acc)}
.pq p{margin:0;font-size:clamp(20px,1.9vw,26px);line-height:1.4;font-weight:500}
.pq footer{margin-top:12px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.footnav{display:flex;flex-wrap:wrap;gap:12px 24px;font-size:13px;text-transform:uppercase;letter-spacing:.1em}
.footnav a{text-decoration:none;border-bottom:1.5px solid var(--acc)}
.noimg{font-family:'Archivo',sans-serif;font-weight:900;font-stretch:125%;font-size:20px;color:#C9C3B6;border:0;background:var(--soft)}
