/* Layout: pagina che respira alternando nero e carta, titoli espansi in minuscolo a righe sfalsate, colori d'indirizzo presi dalla facciata di via XI Febbraio */
:root{
  --ink:#0b0b0d;
  --paper:#f2efe8;
  --red:#e8332c;
  --yellow:#ffc533;
  --yellow-deep:#e59e00;
  --c-fig:#3fc6b5;   /* Arti figurative – turchese facciata */
  --c-arc:#8f7ae0;   /* Architettura – viola facciata */
  --c-gra:#ffc533;   /* Grafica – giallo facciata */
  --c-sce:#5ab0ea;   /* Scenografia – azzurro facciata */
  --foot-bg:#1d0406;
  --foot-fg:#ec3a31;
  /* tokens che cambiano con la sezione */
  --bg:var(--ink); --fg:var(--paper); --mute:#9a9aa3; --line:#2b2b31; --surface:#151518;

  --f-display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-body:"Instrument Sans","Helvetica Neue",Arial,sans-serif;
  --f-mono:"DM Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --gutter:clamp(16px,3.2vw,48px);
  --s-1:.8125rem; --s0:1rem; --s1:1.25rem; --s2:1.75rem; --s3:2.75rem;
  --ease:cubic-bezier(.2,.7,.1,1);
  color-scheme:dark;
}
body[data-mode="light"]{--bg:var(--paper);--fg:var(--ink);--mute:#62606a;--line:#d5d0c5;--surface:#e6e1d6;color-scheme:light}
*{box-sizing:border-box}
body{margin:0}
html{background:var(--ink);overflow-x:clip}
body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:var(--s0);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:clip;transition:background-color .8s var(--ease),color .8s var(--ease)}
a{color:inherit}
::selection{background:var(--yellow);color:var(--ink)}
:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}
.mono{font-family:var(--f-mono);font-size:var(--s-1);letter-spacing:.06em;text-transform:uppercase}
.wrap{padding-inline:var(--gutter)}

.grain{pointer-events:none;position:fixed;inset:-50%;z-index:90;opacity:.06;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-4%)}60%{transform:translate(-4%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

/* cursore */
.cursor{position:fixed;left:0;top:0;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#fff;mix-blend-mode:difference;pointer-events:none;z-index:100;transition:width .4s var(--ease),height .4s var(--ease),margin .4s var(--ease);display:grid;place-items:center}
.cursor span{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#000;opacity:0;transition:opacity .2s}
.cursor.big{width:88px;height:88px;margin:-44px 0 0 -44px}
.cursor.big span{opacity:1}

/* NAV – il logo si riduce a un punto, i link a due linee */
.nav{position:fixed;top:0;left:0;right:0;z-index:80;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:calc(18px + env(safe-area-inset-top,0px)) var(--gutter) 18px;color:var(--fg);transition:color .8s var(--ease)}
.brand{display:flex;align-items:center;gap:.45rem;text-decoration:none;font-family:var(--f-display);font-weight:700;font-stretch:115%;font-size:1rem;letter-spacing:-.01em;line-height:1;height:28px}
.brand .txt{display:inline-flex;overflow:hidden;white-space:nowrap;max-width:20em;transition:max-width .7s var(--ease),opacity .4s}
.brand .txt b{color:var(--red);font-weight:700;margin-left:.3em}
.brand .bd{flex:none;width:12px;height:12px;border-radius:50%;background:var(--yellow);transition:width .6s var(--ease),border-radius .6s}
.nav.min .brand .txt{max-width:0;opacity:0}
.nav.min .brand .bd{width:30px;border-radius:999px}
.links{display:flex;gap:clamp(1rem,2.2vw,2.2rem);list-style:none;margin:0;padding:0;transition:opacity .4s,transform .6s var(--ease)}
.links a{text-decoration:none;font-size:.95rem;position:relative;padding-block:.3rem}
.links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.links a:hover::after{transform:scaleX(1);transform-origin:left}
.nav.min .links{opacity:0;pointer-events:none;transform:translateY(-8px)}
.nav-r{display:flex;align-items:center;gap:1rem}
.pill{display:inline-flex;align-items:center;gap:.55rem;padding:.6rem 1rem;border-radius:999px;background:var(--red);color:#fff;text-decoration:none;font-family:var(--f-mono);font-size:var(--s-1);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;transition:background .3s,color .3s}
.pill:hover{background:var(--yellow);color:var(--ink)}
.pill .blink{width:7px;height:7px;border-radius:50%;background:currentColor;animation:blink 1.2s infinite}
@keyframes blink{50%{opacity:.2}}
.burger{position:relative;width:44px;height:44px;border:0;background:none;color:inherit;cursor:pointer;display:none;padding:0}
.nav.min .burger{display:block}
.burger i{position:absolute;left:10px;right:10px;height:1.5px;background:currentColor;transition:transform .45s var(--ease),top .45s var(--ease)}
.burger i:nth-child(1){top:18px}.burger i:nth-child(2){top:25px;left:18px}
.burger[aria-expanded="true"] i:nth-child(1){top:21px;transform:rotate(45deg)}
.burger[aria-expanded="true"] i:nth-child(2){top:21px;left:10px;transform:rotate(-45deg)}
.overlay{position:fixed;inset:0;z-index:79;background:var(--yellow);color:var(--ink);display:flex;flex-direction:column;justify-content:center;gap:.2rem;padding:5rem var(--gutter) 2rem;clip-path:circle(0% at calc(100% - 46px) 40px);transition:clip-path .9s var(--ease);visibility:hidden}
.overlay.open{clip-path:circle(150% at calc(100% - 46px) 40px);visibility:visible}
.overlay a{font-family:var(--f-display);font-weight:300;font-stretch:125%;font-size:clamp(2.2rem,8vw,6rem);line-height:1.02;text-decoration:none;letter-spacing:-.04em;transition:font-weight .4s,padding .4s var(--ease)}
.overlay a:hover{font-weight:800;padding-left:.3em}
@media (max-width:900px){.links,.nav .pill{display:none}.burger{display:block}}
.nav.open-menu{color:var(--ink)}

/* HERO */
.hero{position:relative;min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:1fr auto;padding-top:clamp(90px,13vh,140px);padding-bottom:clamp(22px,4vh,40px);overflow:hidden;isolation:isolate}
#paint{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.hero-title{margin:0;min-width:0;align-self:center;font-family:var(--f-display);font-weight:760;font-stretch:125%;line-height:.88;letter-spacing:-.045em;font-size:12vw;color:var(--paper)}
.hero-title .line{display:block;white-space:nowrap;width:max-content;max-width:none}
.hero-title .line:nth-child(2){padding-left:.6em}
.hero-title .line.red{color:var(--red)}
.ch{display:inline-block;position:relative}
.ch.pending{opacity:0}
.caret{display:inline-block;width:.06em;height:.72em;background:var(--yellow);margin-left:.05em;animation:caret .9s steps(1) infinite}
@keyframes caret{50%{opacity:0}}
.ch.i .bl{display:inline-block;width:0;height:0;vertical-align:baseline}
.ch.i .dot{position:absolute;left:50%;background:currentColor;transform:translateX(-50%);border-radius:.01em}
.ch .brush{position:absolute;left:50%;pointer-events:none;overflow:visible;transform-origin:30% 60%}
.hero-meta{display:grid;grid-template-columns:1.3fr 1fr auto;gap:var(--s2);align-items:end;margin-top:var(--s3);color:var(--paper)}
.hero-meta p{margin:0;max-width:34ch;font-size:clamp(1.05rem,1.4vw,1.3rem);line-height:1.4;text-wrap:balance}
.hero-meta p em{font-style:normal;color:var(--yellow)}
.hero-meta .who{display:flex;flex-direction:column;gap:.35rem;color:#9a9aa3}
.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.95rem 1.35rem;border-radius:999px;border:1px solid currentColor;text-decoration:none;font-family:var(--f-mono);font-size:var(--s-1);letter-spacing:.07em;text-transform:uppercase;transition:background .3s,color .3s,border-color .3s;white-space:nowrap}
.btn svg{width:1em;height:1em;transition:transform .4s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn.y{background:var(--yellow);border-color:var(--yellow);color:var(--ink)}
.btn.y:hover{background:var(--paper);border-color:var(--paper)}
.badge{position:absolute;right:var(--gutter);top:clamp(100px,16vh,160px);width:clamp(104px,10vw,148px);aspect-ratio:1;z-index:2;text-decoration:none;color:var(--paper)}
.badge svg{width:100%;height:100%;animation:spin 18s linear infinite}
.badge text{font-family:var(--f-mono);font-size:10.5px;letter-spacing:2.6px;text-transform:uppercase;fill:currentColor}
.badge .core{position:absolute;inset:30%;border-radius:50%;background:var(--red);display:grid;place-items:center;font-family:var(--f-display);font-weight:700;font-stretch:115%;font-size:clamp(.72rem,.9vw,.9rem);line-height:1.05;text-align:center;color:#fff;transition:background .3s,color .3s,transform .5s var(--ease)}
.badge:hover .core{background:var(--yellow);color:var(--ink);transform:scale(1.12)}
@keyframes spin{to{transform:rotate(360deg)}}
.scroll-hint{display:flex;align-items:center;gap:.6rem;color:#9a9aa3}
.scroll-hint i{display:block;width:1px;height:38px;background:linear-gradient(var(--paper),transparent);animation:drip 1.8s var(--ease) infinite;transform-origin:top}
@keyframes drip{0%{transform:scaleY(0)}60%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
@media (max-width:900px){.hero-meta{grid-template-columns:1fr}.scroll-hint{display:none}.badge{top:auto;bottom:clamp(250px,36vh,330px)}}

/* MARQUEE */
.marquee{border-block:1px solid var(--line);overflow:hidden;padding-block:clamp(14px,2vw,26px);display:grid;gap:.3rem;transition:border-color .8s}
.mq-row{display:flex;width:max-content;will-change:transform}
.mq-row span{font-family:var(--f-display);font-weight:200;font-stretch:125%;font-size:clamp(2.2rem,6vw,5.6rem);line-height:1.05;letter-spacing:-.04em;padding-right:.4em;display:inline-flex;align-items:center;gap:.4em;white-space:nowrap;text-transform:lowercase}
.mq-row span::after{content:"";width:.5em;height:.24em;background:var(--yellow);border-radius:50% 40% 55% 45%/60% 50% 50% 40%;transform:rotate(-12deg)}
.mq-row.b span{font-weight:800;font-stretch:62%;text-transform:uppercase;letter-spacing:-.01em;color:transparent;-webkit-text-stroke:1px var(--fg)}
.mq-row.b span::after{background:var(--red)}

/* TITOLI stile «discover who we are.» */
section{position:relative}
.sec{padding-block:clamp(90px,13vw,190px)}
.eyebrow{display:flex;align-items:center;gap:.7rem;color:var(--mute);margin-bottom:var(--s2)}
.eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--yellow)}
.h2{--wg:200;--wd:125;font-family:var(--f-display);font-variation-settings:"wght" var(--wg),"wdth" var(--wd);font-weight:300;font-size:clamp(2.5rem,7.4vw,7.2rem);line-height:.96;letter-spacing:-.05em;margin:0;text-transform:lowercase}
.h2 .l{display:block;white-space:nowrap}
.h2 .l+.l{padding-left:var(--indent,1.2em)}
.h2 .r{color:var(--red)}
.h2 .stop{display:inline-block;position:relative;width:.32em;height:.2em;vertical-align:baseline}
.h2 .stop svg{position:absolute;left:-.12em;bottom:-.06em;width:.62em;height:.3em;overflow:visible}
@media (max-width:600px){.h2 .l{white-space:normal}.h2 .l+.l{padding-left:.6em}}

/* MANIFESTO (carta) */
.manifesto p{font-family:var(--f-display);font-weight:400;font-stretch:100%;font-size:clamp(1.7rem,4.2vw,3.9rem);line-height:1.1;letter-spacing:-.025em;margin:0;max-width:23ch}
.manifesto .w{opacity:.16;transition:opacity .3s}
.manifesto .w.on{opacity:1}
.manifesto .w.hl{background:linear-gradient(var(--yellow),var(--yellow)) no-repeat 0 85%/0% 38%;transition:opacity .3s,background-size .7s var(--ease)}
.manifesto .w.hl.on{background-size:100% 38%}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(60px,8vw,120px);border-top:1px solid var(--line)}
.stat{padding:1.4rem 1.2rem 0 0;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:.7rem;min-width:0}
.stat+.stat{padding-left:1.2rem}
.stat:last-child{border-right:0}
.stat b{font-family:var(--f-display);font-weight:200;font-stretch:125%;font-size:clamp(3.6rem,8.4vw,8rem);line-height:.85;letter-spacing:-.06em;font-variant-numeric:tabular-nums}
.stat:first-child b{color:var(--red)}
.stat span{color:var(--mute);max-width:22ch}
@media (max-width:760px){.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(3){padding-left:0}.stat:nth-child(n+3){border-top:1px solid var(--line);margin-top:1.4rem}}

/* BIENNIO */
.biennio{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(32px,6vw,100px);align-items:start;margin-top:clamp(40px,6vw,80px)}
.biennio .lead p{color:var(--mute);font-size:var(--s1);max-width:40ch;margin:0;position:sticky;top:120px}
.disc{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.disc li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding:clamp(18px,2.4vw,30px) .2rem;border-bottom:1px solid var(--line);position:relative;overflow:hidden;isolation:isolate}
.disc li::before{content:"";position:absolute;inset:0;background:var(--c,var(--yellow));transform:translateY(101%);transition:transform .55s var(--ease);z-index:-1}
.disc li:hover::before{transform:none}
.disc li>*{transition:color .3s,transform .55s var(--ease)}
.disc li:hover>*{color:var(--ink)}
.disc li:hover>div{transform:translateX(.6rem)}
.disc h3{margin:0;font-family:var(--f-display);font-weight:500;font-stretch:112%;font-size:clamp(1.3rem,2.4vw,2.1rem);line-height:1.05;letter-spacing:-.03em}
.disc small{display:block;margin-top:.35rem;color:var(--mute);font-size:var(--s0);transition:color .3s}
.disc li:hover small{color:var(--ink)}
.disc .h{font-family:var(--f-mono);font-size:clamp(1rem,1.5vw,1.3rem);white-space:nowrap}
@media (max-width:860px){.biennio{grid-template-columns:1fr}.biennio .lead p{position:static}}

/* INDIRIZZI */
.ind-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap;margin-bottom:clamp(36px,5vw,70px)}
.ind-head p{color:var(--mute);max-width:34ch;margin:0;font-size:var(--s1)}
.track-wrap{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);overscroll-behavior-x:contain;scrollbar-width:none;cursor:grab;-webkit-overflow-scrolling:touch;padding-block:10px}
.track-wrap::-webkit-scrollbar{display:none}
.track-wrap.drag{cursor:grabbing;scroll-snap-type:none}
.track-wrap.drag .card{pointer-events:none}
.track-wrap:focus-visible{outline:2px solid var(--yellow);outline-offset:4px}
.card{scroll-snap-align:start}
.ind-side{display:grid;gap:1.2rem;justify-items:start}
.ind-nav{display:flex;gap:10px}
.ind-nav .ps-btn{width:52px;height:52px;font-size:1.2rem}
.ind-nav .ps-btn:disabled{opacity:.3;cursor:default;background:none;color:inherit;border-color:currentColor}
.track{display:flex;gap:clamp(14px,1.6vw,24px);padding-inline:var(--gutter);width:max-content}
.card{--c:var(--yellow);width:min(78vw,560px);flex:none;background:var(--surface);border-radius:24px;overflow:hidden;display:flex;flex-direction:column;position:relative;color:var(--fg);transition:background .8s,transform .6s var(--ease)}
.card .img{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--c)}
.card .img img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(1) contrast(1.15);mix-blend-mode:multiply;transition:filter .7s,transform 1.2s var(--ease)}
.card:hover .img img{filter:none;mix-blend-mode:normal;transform:scale(1.04)}
.card .tag{position:absolute;left:16px;top:16px;background:var(--ink);color:var(--paper);border-radius:999px;padding:.35rem .7rem}
.card .body{padding:clamp(20px,2.4vw,32px);display:flex;flex-direction:column;gap:1rem;flex:1}
.card h3{margin:0;font-family:var(--f-display);font-weight:300;font-stretch:125%;font-size:clamp(1.9rem,3.2vw,3rem);line-height:.95;letter-spacing:-.05em;text-transform:lowercase;color:var(--c)}
.card .claim{margin:0;font-size:var(--s1);line-height:1.35;text-wrap:balance}
.card ul{margin:0;padding:0;list-style:none;display:grid;gap:.45rem;color:var(--mute)}
.card li{display:flex;gap:.6rem}
.card li::before{content:"";flex:none;width:.5em;height:.5em;margin-top:.5em;border-radius:50%;background:var(--c)}
.card .foot{margin-top:auto;padding-top:1rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--mute)}
.card .foot b{color:var(--fg);font-weight:500}
.card.end{background:var(--yellow);color:var(--ink);justify-content:center;padding:clamp(28px,3vw,44px);gap:1.4rem}
.card.end h3{color:var(--ink)}
.card.end p{margin:0;font-size:var(--s1);max-width:28ch}
.card.end .btn{align-self:flex-start}
.card.end .btn:hover{background:var(--ink);color:var(--yellow);border-color:var(--ink)}
.progress{height:2px;background:var(--line);margin:clamp(28px,4vw,50px) var(--gutter) 0;position:relative}
.progress i{position:absolute;inset:0;background:var(--yellow);transform-origin:left;transform:scaleX(0)}
@media (max-width:760px){.card{width:84vw}}

/* GALLERIA */
.gallery{overflow:hidden;padding-block:clamp(70px,9vw,130px)}
.g-row{display:flex;gap:14px;width:max-content;will-change:transform}
.g-row figure{margin:0;flex:none;height:clamp(170px,23vw,320px);aspect-ratio:16/10;border-radius:16px;overflow:hidden;position:relative;background:var(--surface)}
.g-row img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s var(--ease),filter .5s}
.g-row figure:hover img{transform:scale(1.07);filter:saturate(1.25)}
.g-row figcaption{position:absolute;left:10px;bottom:10px;background:var(--ink);color:var(--paper);padding:.3rem .55rem;border-radius:6px;opacity:0;transform:translateY(6px);transition:all .35s var(--ease)}
.g-row figure:hover figcaption{opacity:1;transform:none}
.g-note{color:var(--mute);margin-top:1.2rem}

/* FUORI DALL'AULA */
.out{list-style:none;margin:clamp(40px,5vw,70px) 0 0;padding:0;border-top:1px solid var(--line)}
.out li{border-bottom:1px solid var(--line);position:relative;overflow:hidden;isolation:isolate}
.out li::before{content:"";position:absolute;inset:0;background:var(--c);transform:scaleY(0);transform-origin:bottom;transition:transform .55s var(--ease);z-index:-1}
.out li:hover::before{transform:scaleY(1)}
.out .row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:.4rem 2rem;align-items:baseline;padding:clamp(18px,2.2vw,28px) 0;transition:color .3s,transform .55s var(--ease)}
.out li:hover .row{color:var(--ink);transform:translateX(clamp(8px,1.5vw,24px))}
.out h3{margin:0;font-family:var(--f-display);font-weight:300;font-stretch:118%;font-size:clamp(1.6rem,3.6vw,3.3rem);line-height:1;letter-spacing:-.045em;transition:font-weight .5s}
.out li:hover h3{font-weight:700}
.out p{margin:0;color:var(--mute);font-size:var(--s1);transition:color .3s}
.out li:hover p{color:var(--ink)}
.awards{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:var(--s3)}
.awards span{border:1px solid var(--line);border-radius:999px;padding:.5rem .9rem;color:var(--mute)}
@media (max-width:760px){.out .row{grid-template-columns:1fr}}

/* CITAZIONE */
.quote{min-height:clamp(480px,86vh,860px);display:grid;align-items:center;overflow:hidden;isolation:isolate;color:var(--paper)}
.quote .bg{position:absolute;inset:-12% 0;z-index:-1;background-size:cover;background-position:center;filter:grayscale(1) contrast(1.2) brightness(.4)}
.quote::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--bg),transparent 28%,transparent 72%,var(--bg))}
.quote blockquote{margin:0;font-family:var(--f-display);font-weight:300;font-stretch:120%;font-size:clamp(1.9rem,4.8vw,4.6rem);line-height:1.02;letter-spacing:-.045em;max-width:21ch}
.quote blockquote b{font-weight:800;color:var(--yellow)}
.quote cite{display:block;margin-top:var(--s2);font-style:normal;color:#b3b3ba}

/* SCUOLA APERTA */
.open-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.6vw,22px);margin-top:clamp(40px,5vw,70px)}
.date{border:1px solid var(--line);border-radius:24px;padding:clamp(18px,2vw,28px);display:flex;flex-direction:column;gap:.4rem;position:relative;overflow:hidden;min-width:0;transition:border-color .3s,transform .5s var(--ease)}
.date:hover{border-color:var(--fg);transform:translateY(-6px)}
.date.next{background:var(--red);border-color:var(--red);color:#fff}
.date.next .mono{color:#fff}
.date .d{font-family:var(--f-display);font-weight:200;font-stretch:125%;font-size:clamp(4.6rem,10.5vw,10rem);line-height:.82;letter-spacing:-.07em;font-variant-numeric:tabular-nums}
.date .m{font-family:var(--f-display);font-weight:600;font-stretch:115%;font-size:clamp(1.3rem,2.4vw,2.1rem);line-height:1;text-transform:lowercase;letter-spacing:-.03em}
.date .mono{color:var(--mute);margin-top:.6rem}
.date .flag{position:absolute;right:16px;top:16px;background:var(--ink);color:var(--paper);border-radius:999px;padding:.3rem .65rem}
.count{display:flex;gap:clamp(16px,3vw,44px);flex-wrap:wrap;margin-top:var(--s3);align-items:end}
.count div{display:flex;flex-direction:column}
.count b{font-family:var(--f-mono);font-weight:400;font-size:clamp(2rem,4.4vw,3.8rem);line-height:1;font-variant-numeric:tabular-nums}
.count span{color:var(--mute)}
.count .lbl{color:var(--fg);max-width:16ch;line-height:1.3;align-self:center}
.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.6vw,22px);margin-top:var(--s3)}
.info{background:var(--surface);border-radius:24px;padding:clamp(20px,2.4vw,32px);display:flex;flex-direction:column;gap:.8rem;min-width:0;transition:background .8s}
.info h3{margin:0;font-family:var(--f-display);font-weight:500;font-stretch:112%;font-size:clamp(1.35rem,2.1vw,1.9rem);letter-spacing:-.03em;line-height:1.05}
.info p{margin:0;color:var(--mute);max-width:46ch}
.info .k{color:var(--red)}
.copy{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:auto}
.copy code{font-family:var(--f-mono);font-size:var(--s0);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:.55rem .8rem;user-select:all;overflow-wrap:anywhere;min-width:0}
.copy button{background:none;border:1px solid var(--line);color:inherit;border-radius:999px;padding:.55rem .9rem;font-family:var(--f-mono);font-size:var(--s-1);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.copy button:hover,.copy button.ok{background:var(--yellow);color:var(--ink);border-color:var(--yellow)}
@media (max-width:760px){.open-grid,.info-grid{grid-template-columns:1fr}.date{flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:.2rem .9rem}.date .mono:not(.flag){width:100%}}

/* FAQ */
.faq{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,6vw,100px)}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.3rem 0;font-family:var(--f-display);font-weight:500;font-stretch:108%;font-size:clamp(1.1rem,1.7vw,1.45rem);letter-spacing:-.02em;line-height:1.2}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);position:relative;transition:background .3s,border-color .3s}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:var(--fg);transform:translate(-50%,-50%)}
.faq summary i::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .4s var(--ease)}
.faq details[open] summary i{background:var(--yellow);border-color:var(--yellow)}
.faq details[open] summary i::before,.faq details[open] summary i::after{background:var(--ink)}
.faq details[open] summary i::after{transform:translate(-50%,-50%) rotate(0)}
.faq .ans{color:var(--mute);padding:0 0 1.4rem;max-width:60ch;font-size:var(--s1);line-height:1.5}
@media (max-width:860px){.faq{grid-template-columns:1fr}}

/* FOOTER stile Flexión */
footer{background:var(--foot-bg);color:var(--foot-fg);position:relative;overflow:hidden;border-radius:clamp(20px,3vw,40px) clamp(20px,3vw,40px) 0 0}
.f-top{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,48px);padding-top:clamp(44px,6vw,84px)}
.f-name{font-family:var(--f-display);font-weight:300;font-stretch:125%;font-size:clamp(1.8rem,3vw,2.9rem);line-height:.98;letter-spacing:-.05em;text-transform:lowercase}
.f-col{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;line-height:1.4;min-width:0}
.f-col h4{margin:0 0 .4rem;font-family:var(--f-mono);font-weight:400;font-size:var(--s-1);letter-spacing:.08em;text-transform:uppercase;opacity:.6}
.f-col a{text-decoration:none;overflow-wrap:anywhere}
.f-col a:hover{text-decoration:underline;text-underline-offset:3px}
.f-col .sel{user-select:all;overflow-wrap:anywhere}
.giant{font-family:var(--f-display);font-weight:400;font-stretch:100%;line-height:.8;letter-spacing:-.05em;white-space:nowrap;width:max-content;margin:clamp(34px,6vw,90px) 0 0;padding-bottom:.03em;font-size:22vw;user-select:none;text-transform:lowercase}
.giant .ch{transform-origin:50% 100%;will-change:transform}
.giant .ch.i .dot{background:var(--foot-fg)}
.f-bot{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:1.1rem calc(1.1rem + env(safe-area-inset-bottom,0px));border-top:1px solid rgba(236,58,49,.28);font-size:var(--s-1)}
.f-bot a{text-decoration:none}
.f-bot a:hover{text-decoration:underline}
@media (max-width:980px){.f-top{grid-template-columns:repeat(2,minmax(0,1fr))}.f-name{grid-column:1/-1}}

@media (prefers-reduced-motion:reduce){.grain,.badge svg,.scroll-hint i,.caret,.pill .blink{animation:none}body{transition:none}}

/* ================= EVENTI ================= */
.chip{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;padding:.32rem .7rem;background:var(--c,var(--yellow));color:var(--ink);white-space:nowrap}
.chip.ghost{background:none;color:inherit;border:1px solid currentColor;opacity:.75}
.ev-chips{display:flex;flex-wrap:wrap;gap:.4rem}

.ag-head{display:flex;justify-content:space-between;align-items:end;gap:1.5rem 2rem;flex-wrap:wrap}
.btn.line{border-color:var(--line)}
.btn.line:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}

.ev-list{list-style:none;margin:clamp(36px,5vw,64px) 0 0;padding:0;border-top:1px solid var(--line)}
.ev-row{position:relative;border-bottom:1px solid var(--line);overflow:hidden;isolation:isolate}
.ev-row::before{content:"";position:absolute;inset:0;background:var(--c);transform:scaleY(0);transform-origin:bottom;transition:transform .55s var(--ease);z-index:-1}
.ev-row:hover::before,.ev-row:focus-within::before{transform:scaleY(1)}
.ev-hit{all:unset;box-sizing:border-box;cursor:pointer;width:100%;display:grid;grid-template-columns:minmax(92px,.55fr) minmax(0,3fr) auto;gap:1rem clamp(16px,3vw,48px);align-items:center;padding:clamp(18px,2.4vw,30px) 0;color:var(--fg);transition:color .3s}
.ev-hit:focus-visible{outline:2px solid var(--yellow);outline-offset:-2px}
.ev-row:hover .ev-hit,.ev-row:focus-within .ev-hit{color:var(--ink)}
.ev-date{display:flex;flex-direction:column;gap:.3rem}
.ev-date b{font-family:var(--f-display);font-weight:200;font-stretch:125%;font-size:clamp(3rem,6.4vw,6rem);line-height:.82;letter-spacing:-.07em;font-variant-numeric:tabular-nums;transition:font-weight .5s}
.ev-row:hover .ev-date b{font-weight:600}
.ev-date .mono,.ev-range{color:var(--mute);transition:color .3s}
.ev-range{font-family:var(--f-mono);font-size:var(--s-1);letter-spacing:.06em;text-transform:uppercase}
.ev-row:hover .ev-date .mono,.ev-row:hover .ev-range,.ev-row:hover .ev-meta{color:var(--ink)}
.ev-main{display:flex;flex-direction:column;gap:.55rem;min-width:0}
.ev-row:hover .chip{background:var(--ink);color:var(--paper)}
.ev-row:hover .chip.ghost{background:none;color:var(--ink)}
.ev-title{font-family:var(--f-display);font-weight:300;font-stretch:115%;font-size:clamp(1.45rem,3.1vw,2.9rem);line-height:1.02;letter-spacing:-.04em;text-wrap:balance;transition:font-weight .5s,transform .55s var(--ease)}
.ev-row:hover .ev-title{font-weight:700;transform:translateX(clamp(6px,1vw,14px))}
.ev-meta{color:var(--mute);font-size:var(--s0);transition:color .3s}
.ev-go{width:clamp(44px,4.4vw,58px);aspect-ratio:1;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:background .3s,border-color .3s,transform .5s var(--ease)}
.ev-go svg{width:40%;height:40%}
.ev-row:hover .ev-go{background:var(--ink);color:var(--c);border-color:var(--ink);transform:rotate(45deg)}
@media (max-width:640px){.ev-hit{grid-template-columns:auto minmax(0,1fr);align-items:start}.ev-go{display:none}.ev-date b{font-size:3rem}}

.ev-preview{position:fixed;left:0;top:0;z-index:70;width:clamp(220px,22vw,340px);aspect-ratio:4/3;margin:-60% 0 0 24px;border-radius:14px;overflow:hidden;pointer-events:none;background:var(--c,var(--yellow));opacity:0;scale:.7;transition:opacity .25s,scale .45s var(--ease);box-shadow:0 30px 60px -20px rgba(0,0,0,.45)}
.ev-preview.on{opacity:1;scale:1}
.ev-preview img,.ev-preview svg{width:100%;height:100%;object-fit:cover;display:block}

.ev-grid{list-style:none;margin:clamp(36px,5vw,64px) 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:clamp(14px,1.6vw,24px)}
.ev-card .ev-hit{display:flex;flex-direction:column;padding:0;gap:0;border-radius:20px;overflow:hidden;background:var(--surface);height:100%;transition:transform .5s var(--ease),background .8s}
.ev-card .ev-hit:hover{transform:translateY(-6px)}
.ev-pic{aspect-ratio:4/3;overflow:hidden;background:var(--c);display:block}
.ev-pic img,.ev-pic svg{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1s var(--ease)}
.ev-card .ev-hit:hover .ev-pic img,.ev-card .ev-hit:hover .ev-pic svg{transform:scale(1.06)}
.ev-cbody{display:flex;flex-direction:column;gap:.6rem;padding:1.1rem 1.2rem 1.3rem;align-items:flex-start}
.ev-cdate{color:var(--mute)}
.ev-ctitle{font-family:var(--f-display);font-weight:500;font-stretch:110%;font-size:1.3rem;line-height:1.1;letter-spacing:-.03em}

.ev-empty{padding:clamp(40px,6vw,80px) 0;display:flex;flex-direction:column;gap:1rem;align-items:flex-start;color:var(--mute);border-bottom:1px solid var(--line)}
.ev-empty b{font-family:var(--f-display);font-weight:300;font-stretch:120%;font-size:clamp(1.6rem,3vw,2.6rem);letter-spacing:-.04em;color:var(--fg)}
.ev-skel{height:clamp(110px,12vw,150px);border-bottom:1px solid var(--line);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--fg) 6%,transparent),transparent) 0 0/200% 100%;animation:skel 1.4s linear infinite}
@keyframes skel{to{background-position:-200% 0}}
.ev-note{color:var(--mute);margin-top:1.2rem}

/* pannello di dettaglio */
.ev-drawer{position:fixed;inset:0;z-index:95;visibility:hidden}
.ev-drawer.open{visibility:visible}
.ev-scrim{position:absolute;inset:0;background:rgba(11,11,13,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .5s}
.ev-drawer.open .ev-scrim{opacity:1}
.ev-panel{position:absolute;top:0;right:0;bottom:0;width:min(640px,100%);background:var(--ink);color:var(--paper);overflow-y:auto;overscroll-behavior:contain;transform:translateX(100%);transition:transform .7s var(--ease);padding-bottom:env(safe-area-inset-bottom,0px)}
.ev-drawer.open .ev-panel{transform:none}
.ev-close{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));right:14px;z-index:2;width:46px;height:46px;border-radius:50%;border:0;background:var(--paper);color:var(--ink);font-size:1.6rem;line-height:1;cursor:pointer;transition:transform .4s var(--ease),background .3s}
.ev-close:hover{transform:rotate(90deg);background:var(--yellow)}
.ev-dpic{aspect-ratio:16/10;background:var(--c);overflow:hidden}
.ev-dpic img,.ev-dpic svg{width:100%;height:100%;object-fit:cover;display:block}
.ev-dbody{padding:clamp(22px,4vw,44px);display:flex;flex-direction:column;gap:1.3rem;align-items:flex-start}
.ev-dbody .chip.ghost{color:var(--paper)}
.ev-dtitle{margin:0;font-family:var(--f-display);font-weight:300;font-stretch:120%;font-size:clamp(2rem,4.6vw,3.4rem);line-height:.98;letter-spacing:-.05em;text-wrap:balance}
.ev-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.6rem;width:100%;border-top:1px solid #2b2b31;padding-top:1.2rem}
.ev-f .mono{color:var(--c,var(--yellow))}
.ev-f p{margin:.25rem 0 0;line-height:1.35;overflow-wrap:anywhere}
.ev-desc{margin:0;font-size:var(--s1);line-height:1.5;max-width:56ch;color:#d8d6d0}
.ev-priv{margin:0;font-size:.78rem;line-height:1.45;color:#8d8d95;border-top:1px solid #2b2b31;padding-top:1rem}
@media (max-width:520px){.ev-fields{grid-template-columns:1fr}}

/* pagina eventi */
.page-head{padding-top:clamp(130px,20vh,210px);padding-bottom:clamp(60px,8vw,110px)}
.page-head h1{font-size:clamp(2.7rem,8.4vw,8.4rem)}
.page-head .lead{color:#b5b4bb;font-size:clamp(1.05rem,1.4vw,1.3rem);max-width:44ch;margin:var(--s3) 0 0;text-wrap:balance}
.docente{margin-top:clamp(40px,6vw,80px);border:1px solid #2b2b31;border-radius:26px;padding:clamp(20px,3vw,36px);display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1.2rem clamp(18px,3vw,40px);align-items:center;position:relative;overflow:hidden;isolation:isolate;color:var(--paper)}
.docente::before{content:"";position:absolute;inset:0;background:var(--yellow);transform:translateX(-101%);transition:transform .8s var(--ease);z-index:-1}
.docente:hover::before{transform:none}
.docente:hover{color:var(--ink);border-color:var(--yellow)}
.docente .ico{width:clamp(54px,6vw,76px);aspect-ratio:1;border-radius:50%;background:var(--red);display:grid;place-items:center;color:#fff;transition:background .4s}
.docente:hover .ico{background:var(--ink);color:var(--yellow)}
.docente .ico svg{width:46%;height:46%}
.docente h2{margin:0;font-family:var(--f-display);font-weight:400;font-stretch:115%;font-size:clamp(1.35rem,2.4vw,2.1rem);letter-spacing:-.035em;line-height:1.05}
.docente p{margin:.45rem 0 0;color:inherit;opacity:.72;max-width:58ch}
.docente .btn{border-color:currentColor}
.docente:hover .btn.y{background:var(--ink);border-color:var(--ink);color:var(--yellow)}
.docente .btn[aria-disabled="true"]{opacity:.55;pointer-events:none}
@media (max-width:760px){.docente{grid-template-columns:1fr}.docente .ico{display:none}}

.toolbar{position:sticky;top:calc(68px + env(safe-area-inset-top,0px));z-index:20;display:flex;flex-wrap:wrap;gap:.8rem 1.4rem;align-items:center;justify-content:space-between;padding-block:1rem;background:var(--bg);border-bottom:1px solid var(--line);transition:background .8s}
.tabs{display:inline-flex;padding:4px;border-radius:999px;border:1px solid var(--line);gap:4px}
.tabs button{all:unset;cursor:pointer;padding:.55rem 1.1rem;border-radius:999px;font-family:var(--f-mono);font-size:var(--s-1);letter-spacing:.06em;text-transform:uppercase;transition:background .3s,color .3s}
.tabs button[aria-selected="true"]{background:var(--fg);color:var(--bg)}
.tabs button:focus-visible{outline:2px solid var(--yellow)}
.filters{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.filters button{all:unset;cursor:pointer;padding:.42rem .8rem;border-radius:999px;border:1px solid var(--line);font-family:var(--f-mono);font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;transition:all .3s}
.filters button:hover{border-color:var(--fg)}
.filters button[aria-pressed="true"]{background:var(--red);border-color:var(--red);color:#fff}
.filters button:focus-visible{outline:2px solid var(--yellow)}
.filters select{font:inherit;font-family:var(--f-mono);font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;padding:.42rem .8rem;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--fg)}
.count-ev{color:var(--mute)}

/* ================= ICONE DELLA LOCANDINA ================= */
.mq-row.a span::after{display:none}
.mq-ico{width:.62em;height:.62em;flex:none;border-radius:50%;margin-left:.1em;will-change:transform}
.card-ico{position:absolute;left:14px;top:14px;width:clamp(64px,7vw,92px);height:auto;aspect-ratio:1;border-radius:50%;filter:drop-shadow(0 8px 18px rgba(0,0,0,.35));transition:transform .8s var(--ease);z-index:2}
.card:hover .card-ico{transform:rotate(-360deg) scale(1.08)}

/* linea della metropolitana */
.metro-lead{color:var(--mute);font-size:var(--s1);max-width:44ch;margin:var(--s2) 0 0}
.metro{position:relative;margin-top:clamp(20px,4vw,50px);padding-inline:var(--gutter)}
.metro svg{display:block;width:100%;height:auto;overflow:visible}
.metro .rail{fill:none;stroke-linecap:round;stroke-linejoin:round}
.metro .bg-line{stroke-width:7;opacity:.45}
.metro .trunk{stroke:#b4b1aa;stroke-width:34;opacity:.35}
.metro .main{stroke:var(--red);stroke-width:12}
.metro .stn{cursor:pointer}
.metro .stn image{transition:transform .5s var(--ease)}
.metro .stn:hover image,.metro .stn:focus-visible image{transform:scale(1.12)}
.metro .stn:focus-visible{outline:none}
.metro .stn:focus-visible circle.halo{stroke:var(--yellow);stroke-width:4}
.metro .lbl{font-family:var(--f-display);font-weight:600;font-stretch:110%;letter-spacing:-.02em;fill:var(--fg)}
.metro .sub{font-family:var(--f-mono);letter-spacing:.06em;text-transform:uppercase;fill:var(--mute)}
.metro .other .lbl{font-weight:400;fill:var(--mute)}
.metro .train{fill:var(--yellow);stroke:var(--ink);stroke-width:3}

/* locandina ufficiale */
.open-top{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:clamp(28px,5vw,80px);align-items:center}
.open-lead{color:var(--mute);font-size:var(--s1);max-width:40ch;margin:var(--s2) 0 var(--s2)}
.poster-wrap{justify-self:end;width:min(100%,380px);display:grid;gap:14px}
.poster{display:block;position:relative;aspect-ratio:3/4;border-radius:30px;padding:12px;background:#ffcd00;rotate:4deg;box-shadow:0 40px 80px -30px rgba(0,0,0,.45);transition:rotate .8s var(--ease),scale .8s var(--ease),background .9s var(--ease)}
.poster:hover{rotate:0deg;scale:1.03}
.ps-slide{position:absolute;inset:12px;margin:0;border-radius:20px;overflow:hidden;background:#111;clip-path:inset(0 0 100% 0 round 20px);transition:clip-path 1.1s var(--ease),transform 1.4s var(--ease);transform:scale(1.08);z-index:1}
.ps-slide.is-on{clip-path:inset(0 0 0 0 round 20px);transform:none;z-index:2}
.ps-slide.is-out{clip-path:inset(0 0 0 0 round 20px);transform:scale(.94);z-index:1}
.ps-slide img{display:block;width:100%;height:100%;object-fit:cover}

.ps-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}
.ps-cap{flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ps-cap b{color:var(--red);font-weight:500}
.ps-btn{width:40px;height:40px;border-radius:50%;border:1px solid currentColor;background:none;color:inherit;font:inherit;font-size:1rem;cursor:pointer;transition:background .3s,color .3s}
.ps-btn:hover,.ps-btn:focus-visible{background:var(--ink);color:var(--yellow);border-color:var(--ink)}
.ps-prog{display:block;height:2px;background:rgba(0,0,0,.12);border-radius:2px;overflow:hidden}
.ps-prog i{display:block;height:100%;width:100%;background:var(--red);transform-origin:left;transform:scaleX(0)}
@media (prefers-reduced-motion:reduce){.ps-slide{transition:none}}
@media (max-width:760px){.open-top{grid-template-columns:1fr}.poster-wrap{justify-self:center;width:min(78%,320px)}}
