/* NEON in stile Omnia: home */

/* apertura: video a tutto schermo, testo centrato */
.o-hero{position:relative;height:min(92svh,860px);min-height:560px;display:flex;align-items:center;justify-content:center;overflow:hidden;isolation:isolate;text-align:center}
.o-hero-media{position:absolute;inset:0;z-index:-2;background:#000;overflow:hidden}
.o-hero-poster{width:100%;height:100%;object-fit:cover}
.o-hero-yt{position:absolute;top:50%;left:50%;width:max(100vw,177.78svh);height:max(56.25vw,100svh);transform:translate(-50%,-50%) scale(1.3);opacity:0;transition:opacity 1.2s;pointer-events:none}
.o-hero-yt.on{opacity:1}
.o-hero-yt iframe{width:100%;height:100%;border:0}
.o-hero-shade{position:absolute;inset:0;z-index:-1;background:rgba(0,0,0,.42)}
.o-hero-content{width:100%;max-width:1240px;padding:calc(var(--hdr) + 10px) 24px 40px}
.o-hero .t-h1{font-size:clamp(1.85rem,2.6vw,2.25rem)}
.o-hero-label{margin-top:12px}
.o-hero-text{max-width:940px;margin:26px auto 0;font-size:17px;line-height:1.75}
.o-hero-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:22px}
.o-pause{position:absolute;left:10px;bottom:18px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:2px solid rgba(255,255,255,.8);color:#fff}
.o-pause .ic{width:14px;height:14px}
.o-pause .i-play,.o-pause.paused .i-pause{display:none}
.o-pause.paused .i-play{display:block}
@media (max-width:760px){.o-hero{height:auto;min-height:92svh}.o-hero .t-h1{font-size:2.25rem;line-height:1.05}.o-hero-text{font-size:18px}}

/* testo introduttivo */
.o-intro{padding-block:clamp(40px,4vw,56px) clamp(56px,6vw,90px)}
.o-intro-text{margin-top:18px}
.o-intro .more{margin-top:22px}

/* carosello verticale come il lampadario Omnia */
.o-carousel-sec{padding-block:clamp(40px,5vw,70px) clamp(20px,3vw,40px)}
.o-carousel-head{text-align:center;padding-inline:24px;margin-bottom:clamp(40px,5vw,80px)}
.o-carousel{position:relative}
.o-track{display:flex;gap:15px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding-inline:0}
.o-track::-webkit-scrollbar{display:none}
.o-reel{position:relative;flex:0 0 clamp(220px,25vw,360px);aspect-ratio:3/5;border-radius:8px;overflow:hidden;background:#111;scroll-snap-align:start;text-align:left;isolation:isolate}
.o-reel img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.o-reel:hover img{transform:scale(1.04)}
.o-reel::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.85) 0%,rgba(0,0,0,0) 45%);z-index:0}
.o-reel-photo{display:block}
.o-reel-photo::after{background:none}
.o-reel video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;opacity:0;transition:opacity .6s var(--ease)}
.o-reel video.on{opacity:1}
.o-reel-icon{position:absolute;top:16px;right:16px;z-index:1;color:#fff}
.o-reel-icon .ic{width:30px;height:30px}
.o-reel-cap{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:20px;display:flex;flex-direction:column;gap:2px}
.o-reel-cap b{font-family:var(--font-head);font-weight:700;font-size:20px;line-height:1.2;letter-spacing:1px;text-transform:uppercase}
.o-reel-cap span{font:700 12px/1.4 var(--font);letter-spacing:.5px;text-transform:uppercase;color:rgba(255,255,255,.8)}
.o-carousel-ctrl{position:absolute;right:14px;top:-58px;display:flex;align-items:center;gap:14px}
.o-carousel-ctrl button{display:grid;place-items:center;width:32px;height:32px;color:#fff}
.o-carousel-ctrl .ic{width:22px;height:22px}
.o-carousel-ctrl .o-pause-inline{position:static;width:30px;height:30px}
.o-carousel-ctrl .o-pause-inline .ic{width:13px;height:13px}

/* eventi in evidenza, card Tao Group */
.o-events{padding-block:clamp(56px,6vw,90px)}
.o-events .t-h1{margin-bottom:clamp(34px,4vw,60px)}
.o-ev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,305px));justify-content:center;gap:34px 34px}
.o-ev{display:flex;flex-direction:column;min-width:0}
.o-ev-media{position:relative;aspect-ratio:1/1;border-radius:8px;overflow:hidden;background:#111}
.o-ev-imglink,.o-ev-imglink img{display:block;width:100%;height:100%}
.o-ev-imglink img{object-fit:cover;object-position:center;transition:transform .8s var(--ease)}
.o-ev:hover .o-ev-imglink img{transform:scale(1.04)}
.o-ev-ph{display:grid;place-items:center;height:100%;padding:20px;text-align:center;font-weight:300;font-size:22px;letter-spacing:2px;text-transform:uppercase;color:var(--dim)}
.o-ev-soldout{position:absolute;top:12px;left:12px;padding:4px 12px;border-radius:25px;background:#fff;color:#000;font:700 12px/1.4 var(--font);text-transform:uppercase}
.o-ev-meta{display:flex;align-items:stretch;gap:0;margin-top:14px}
.o-ev-date{flex:none;width:62px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-right:14px;border-right:1px solid #fff;line-height:1.1}
.o-ev-date .m{font-size:12px}
.o-ev-date .d{font-weight:300;font-size:30px;line-height:1.15}
.o-ev-date .w{font-size:11px}
.o-ev-title{display:flex;flex-direction:column;justify-content:center;padding-left:16px;font:700 15px/1.2 var(--font);text-transform:uppercase;overflow-wrap:anywhere;transition:color .2s}
.o-ev-title small{margin-top:4px;font-weight:400;font-size:13px;text-transform:none;color:var(--muted)}
.o-ev-meta:hover .o-ev-title{color:var(--accent)}

/* riquadri 2x2 a tutta larghezza */
.o-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.o-tile{position:relative;display:flex;align-items:flex-end;aspect-ratio:5/4;overflow:hidden;isolation:isolate;background:#111}
.o-tile img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.o-tile:hover img{transform:scale(1.04)}
.o-tile-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#000 0%,rgba(0,0,0,0) 60%)}
.o-tile-body{display:flex;flex-direction:column;align-items:flex-start;padding:50px 50px 40px}
.o-tile-title{margin-top:24px;font-family:var(--font-head);font-weight:700;font-size:28px;line-height:1.2;letter-spacing:2px;text-transform:uppercase}
.o-tile-text{margin-top:4px;font-size:17px;line-height:1.75;max-width:640px}
.o-tile .btn{margin-top:18px}
.o-tile:hover .btn{background:#fff;color:#000}
@media (max-width:760px){.o-tiles{grid-template-columns:1fr}.o-tile{aspect-ratio:auto;min-height:430px}.o-tile-body{padding:24px 24px 34px}.o-tile-title{margin-top:18px}}

/* hall of fame come Galleries & Media */
.o-media{padding-block:clamp(56px,6vw,90px)}
.o-media .t-label{margin-bottom:22px}
.o-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 32px;max-width:1310px;margin-inline:auto}
.o-media-card{display:flex;flex-direction:column}
.o-media-img{position:relative;display:block;aspect-ratio:1;overflow:hidden;background:#111}
.o-media-img img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .8s var(--ease)}
.o-media-card:hover .o-media-img img{transform:scale(1.04)}
.o-media-badge{position:absolute;left:12px;bottom:12px;display:inline-flex;align-items:center;gap:6px;padding:5px 14px 5px 10px;border-radius:25px;background:#fff;color:#000;font:700 12px/1.3 var(--font);text-transform:uppercase}
.o-media-badge .ic{width:12px;height:12px}
.o-media-title{margin-top:12px;font-size:17px;line-height:1.75}
.o-media-card:hover .o-media-title{text-decoration:underline;text-underline-offset:3px}
.o-media-date{font-size:13px;color:var(--muted)}
@media (max-width:900px){.o-media-grid{grid-template-columns:1fr;max-width:560px}}

/* testo a sinistra, foto a destra */
.o-split{padding-block:clamp(56px,7vw,110px)}
.o-split-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,7vw,100px);align-items:center;max-width:1220px}
.o-split-text .t-h1{margin-bottom:18px}
.o-split-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.o-split-img{border-radius:8px;overflow:hidden}
.o-split-img img{width:100%;aspect-ratio:3/2;object-fit:cover}
@media (max-width:900px){.o-split-grid{grid-template-columns:1fr}}

/* fai un evento: tre riquadri come le venue collegate Omnia */
.o-produce{padding-top:clamp(56px,6vw,90px)}
.o-produce-lead{margin-inline:auto}
.o-rel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;max-width:1100px;margin-inline:auto;margin-top:clamp(36px,4vw,60px)}
.o-rel-tile{position:relative;display:flex;align-items:flex-end;justify-content:center;min-height:420px;overflow:hidden;isolation:isolate;text-align:center;background:#111}
.o-rel-tile img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.o-rel-tile:hover img{transform:scale(1.05)}
.o-rel-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.35) 60%,rgba(0,0,0,.25))}
.o-rel-body{display:flex;flex-direction:column;align-items:center;gap:10px;padding:30px 28px 34px}
.o-rel-text{font-size:15px;line-height:1.6;max-width:380px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.o-rel-tile .btn{margin-top:8px}
.o-rel-tile:hover .btn{background:#fff;color:#000}
@media (max-width:900px){.o-rel{grid-template-columns:1fr;gap:0}.o-rel-tile{min-height:430px}}
@media (max-width:760px){
  .o-carousel{display:flex;flex-direction:column}
  .o-carousel-ctrl{position:static;order:-1;justify-content:flex-end;margin:0 16px 14px}
  .o-carousel-head{margin-bottom:18px}
  /* tre per schermo come Omnia: base = (larghezza - 2 spazi) / 3, didascalie ridotte */
  .o-track{gap:6px}
  .o-reel{flex-basis:calc((100vw - 12px) / 2.5);border-radius:6px} /* obiettivo di Ric: due riquadri e mezzo per schermo (2,5 larghezze + 2 spazi da 6 px = schermo) */
  .o-reel-cap{padding:12px 10px}
  .o-reel-cap b{font-size:14px;letter-spacing:.5px}
  .o-reel-cap span{font-size:10px;letter-spacing:.3px}
  .o-reel-icon{top:8px;right:8px}
  .o-reel-icon .ic{width:22px;height:22px}
}

/* apertura: marchio NEON grande al centro */
.o-hero-logo{width:min(440px,62vw);height:auto;margin:0 auto 18px}
.o-hero-label{margin-bottom:22px;color:rgba(255,255,255,.9)}
.o-hero-claim{font-size:clamp(1.4rem,2vw,1.85rem)}
.o-hero-text{margin-top:18px}
@media (max-width:760px){.o-hero-logo{width:72vw;margin-bottom:14px}.o-hero-claim{font-size:1.5rem;line-height:1.25}}

/* partner */
.o-partners{padding-block:clamp(50px,6vw,90px)}
.o-partners .t-label{margin-bottom:34px;color:rgba(255,255,255,.8)}
.o-partners-grid{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:40px clamp(40px,6vw,90px)}
.o-partner{display:inline-flex;align-items:center;justify-content:center;min-height:76px}
.o-partner img{max-height:76px;max-width:300px;width:auto;object-fit:contain;opacity:.85;transition:opacity .2s}
.o-partner img.wide{max-height:56px;max-width:360px}
@media (max-width:760px){.o-partner img{max-height:56px;max-width:44vw}.o-partner img.wide{max-height:40px;max-width:80vw}}
a.o-partner:hover img{opacity:1}
.o-partner-name{font:300 19px/1.2 var(--font);letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.62);text-align:center;transition:color .2s}
a.o-partner:hover .o-partner-name{color:#fff}
@media (max-width:600px){.o-partner-name{font-size:15px;letter-spacing:2px}}
.o-hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1s var(--ease)}
.o-hero-video.on{opacity:1}


/* apertura 3D (WebGL): canvas sopra il video, che resta come sorgente e come riserva */
.o-hero-gl{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 1.4s var(--ease)}
.o-hero-gl.on{opacity:1}
.o-hero.gl-on .o-hero-video,.o-hero.gl-on .o-hero-poster{opacity:0}
.o-hero.gl-on .o-hero-logo{opacity:0;animation:none;transition:opacity 1.4s var(--ease)}
.o-hero.gl-on.logo-back .o-hero-logo{opacity:1}
.o-hero.gl-on .o-hero-shade{background:linear-gradient(0deg,rgba(0,0,0,.6),rgba(0,0,0,.05) 50%,rgba(0,0,0,.25))}
.o-hero-logo{transition:transform .4s var(--ease);will-change:transform}
.o-hero-logo{filter:drop-shadow(0 0 22px rgba(255,255,255,.35));animation:neonPulse 4.5s ease-in-out infinite}
@keyframes neonPulse{0%,100%{filter:drop-shadow(0 0 18px rgba(255,255,255,.3))}50%{filter:drop-shadow(0 0 34px rgba(255,255,255,.6)) drop-shadow(0 0 60px var(--accent))}}

/* i numeri */
.o-numbers{position:relative;padding-block:clamp(70px,9vw,130px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;isolation:isolate}
.o-numbers::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(60% 70% at 50% 100%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 70%)}
.o-numbers::after{content:"";position:absolute;inset:0;z-index:-2;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:120px 120px;opacity:.35;mask-image:radial-gradient(70% 80% at 50% 50%,#000,transparent)}
.o-numbers .t-label{margin-bottom:14px;color:var(--accent)}
.o-num-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(30px,4vw,60px) 24px;margin-top:clamp(50px,6vw,90px);text-align:center}
.o-num b{display:block;font-weight:200;font-size:clamp(4rem,9vw,9.5rem);line-height:.95;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 0 40px rgba(255,255,255,.18)}
.o-num span{display:block;margin-top:14px;font:700 13px/1.4 var(--font);letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
@media (max-width:760px){.o-num-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 12px}.o-num b{font-size:3.6rem}}

/* nastro dei nomi */
.o-marquee{overflow:hidden;padding-block:26px;border-bottom:1px solid var(--line);white-space:nowrap;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.o-marquee-track{display:inline-flex;align-items:center;gap:34px;animation:marquee 60s linear infinite;will-change:transform}
.o-marquee:hover .o-marquee-track{animation-play-state:paused}
.o-marquee-track span{font-family:var(--font-head);font-weight:700;font-size:clamp(2.2rem,5vw,4.6rem);line-height:1;letter-spacing:.04em;text-transform:uppercase;color:#fff}
.o-marquee-track i{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 18px var(--accent);flex:none}
@keyframes marquee{to{transform:translateX(-50%)}}

/* venue a bande, una sotto l'altra, ognuna col suo colore */
.o-bands{padding-top:clamp(56px,6vw,90px)}
.o-bands-head{margin-bottom:clamp(28px,3vw,44px)}
.o-bands-head .t-label{margin-bottom:12px;color:var(--accent)}
.o-band{--band:var(--accent);position:relative;isolation:isolate;overflow:hidden;border-top:1px solid var(--line);background:#050505;transition:background .5s var(--ease)}
.o-band:last-child{border-bottom:1px solid var(--line)}
.o-band::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--band);box-shadow:0 0 30px var(--band);z-index:2;transition:width .5s var(--ease)}
.o-band::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#000 30%,rgba(0,0,0,.55) 65%,rgba(0,0,0,.25));transition:opacity .5s}
.o-band-img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;opacity:.55;filter:saturate(.7);transform:scale(1.02);transition:transform 1.4s var(--ease),opacity .6s,filter .6s}
.o-band-body{display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:clamp(200px,28vh,320px);padding-block:34px}
.o-band-main{display:flex;flex-direction:column;min-width:0;color:#fff}
.o-band-idx{font:700 13px/1 var(--font);letter-spacing:2px;color:var(--band)}
.o-band-name{margin-top:12px;font-family:var(--font-head);font-weight:700;font-size:clamp(2.4rem,6vw,5.6rem);line-height:.98;letter-spacing:-.01em;text-transform:uppercase;transition:transform .6s var(--ease),text-shadow .6s}
.o-band-meta{margin-top:14px;font:700 13px/1.4 var(--font);letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.o-band-side{display:flex;flex-direction:column;align-items:flex-end;gap:18px;text-align:right;flex:none;max-width:44%}
.o-band-next{display:flex;flex-direction:column;align-items:flex-end;gap:4px;color:#fff}
.o-band-next .t-label{color:var(--band)}
.o-band-next b{font-weight:600;font-size:17px;line-height:1.3;text-transform:uppercase}
.o-band-date{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.o-band-btns{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.o-band:hover{background:#0a0a0a}
.o-band:hover::before{width:12px}
.o-band:hover .o-band-img{transform:scale(1.07);opacity:.8;filter:saturate(1)}
.o-band:hover .o-band-name{transform:translateX(14px);text-shadow:0 0 34px var(--band)}
.o-band:hover .o-band-btns .btn-ghost{background:#fff;color:#000}
@media (max-width:860px){.o-band-body{flex-direction:column;align-items:flex-start;padding-block:30px 32px;min-height:0}.o-band-side{align-items:flex-start;text-align:left;max-width:none}.o-band-next{align-items:flex-start}.o-band-btns{justify-content:flex-start}.o-band-img{opacity:.4}}

/* bottone biglietti sotto la card evento */
.o-ev-act{margin-top:12px}
.o-ev-act .btn{width:100%}


/* apertura a cancello: la scritta NEON gigante col video dentro; scorrendo le lettere si aprono */
.o-gate{height:auto;min-height:0;display:block;overflow:visible;text-align:center}
.js .o-gate{height:260svh}
.o-gate-sticky{position:sticky;top:0;height:100svh;min-height:520px;overflow:hidden;background:#000;isolation:isolate;perspective:1400px}
.o-gate-media{position:absolute;inset:0;background:#000;clip-path:url(#gateClip);transform-origin:50% 50%;will-change:transform}
.no-js .o-gate-media{clip-path:none}
.o-gate-media .o-hero-poster,.o-gate-media .o-hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.o-gate-media .o-hero-video{opacity:0;transition:opacity 1s var(--ease),transform .2s linear;transform-origin:50% 50%}
.o-gate-media .o-hero-video.on{opacity:1}
.o-gate-shade{position:absolute;inset:0;background:rgba(0,0,0,.1);transition:background .8s}
.o-gate.open .o-gate-shade{background:linear-gradient(0deg,rgba(0,0,0,.65),rgba(0,0,0,.15) 55%,rgba(0,0,0,.3))}
.o-gate-svg{position:absolute;width:0;height:0}
.o-gate-under{position:absolute;left:0;right:0;bottom:clamp(28px,6vh,60px);display:flex;flex-direction:column;align-items:center;gap:18px;z-index:2;transition:opacity .4s}
.o-gate-under .t-label{letter-spacing:3px;color:rgba(255,255,255,.85)}
.o-gate-scroll{display:inline-flex;flex-direction:column;align-items:center;gap:8px;font:700 11px/1 var(--font);letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.6)}
.o-gate-scroll span{width:1px;height:38px;background:linear-gradient(#fff,transparent);animation:gateScroll 1.8s ease-in-out infinite}
@keyframes gateScroll{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.o-gate-content{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);margin:0 auto;padding-inline:24px;z-index:2;opacity:0;pointer-events:none;transition:opacity .5s,transform .5s}
.o-gate.open .o-gate-content{opacity:1;pointer-events:auto}
.js .o-gate-content .o-hero-claim{font-size:clamp(1.6rem,3.2vw,2.9rem);max-width:1100px;margin-inline:auto}
@media (max-width:760px){.js .o-gate{height:200svh}.o-gate-sticky{min-height:0}.o-gate-under{bottom:24px}}
@media (prefers-reduced-motion:reduce){.js .o-gate{height:100svh}.o-gate-content{opacity:1;pointer-events:auto}.o-gate-media{clip-path:none}.o-gate-under{display:none}}

/* le serate: un capitolo a schermo intero per ogni aftermovie, uno sopra l'altro */
.o-nights{position:relative;background:#000}
.o-night{position:sticky;top:0;height:100svh;min-height:520px;overflow:hidden;isolation:isolate;background:#000;display:flex;align-items:flex-end}
.o-night-media{position:absolute;inset:0;z-index:-2;background:#000}
.o-night-media video{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s var(--ease);transform:scale(1.02)}
.o-night-media video.on{opacity:1}
.o-night-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.15) 55%,rgba(0,0,0,.35) 100%)}
.o-night-body{padding-block:0 clamp(60px,10vh,120px);position:relative;z-index:1}
.o-night-idx{display:block;font:700 12px/1 var(--font);letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:18px}
.o-night-name{margin:0;font:700 clamp(3rem,11vw,12.5rem)/.9 var(--font-head);letter-spacing:-.025em;text-transform:uppercase;color:#fff;overflow-wrap:anywhere}
.o-night-foot{display:flex;align-items:center;flex-wrap:wrap;gap:16px 28px;margin-top:22px}
.o-night-meta{font:700 13px/1.4 var(--font);letter-spacing:1px;text-transform:uppercase;color:rgba(255,255,255,.8)}
.o-night .btn .ic{width:14px;height:14px}
@media (max-width:760px){.o-night{min-height:0}.o-night-body{padding-bottom:104px}.o-night-name{font-size:clamp(2.6rem,15vw,5rem)}}

/* bande venue: video in loop sopra la foto */
.o-band-loop{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s var(--ease)}
.o-band:hover .o-band-loop.on,.o-band-loop.on{opacity:.75}
@media (hover:hover){.o-band-loop.on{opacity:0}.o-band:hover .o-band-loop.on{opacity:.85}}

/* prossimo evento nel cancello */
.o-next{display:inline-flex;flex-direction:column;align-items:center;gap:4px;margin-top:34px;padding:14px 26px;border:1px solid rgba(255,255,255,.35);border-radius:14px;background:rgba(0,0,0,.35);backdrop-filter:blur(8px);color:#fff;transition:border-color .2s,background .2s}
.o-next:hover{border-color:#fff;background:rgba(0,0,0,.55)}
.o-next-k{font:700 11px/1 var(--font);letter-spacing:2px;text-transform:uppercase;color:var(--accent)}
.o-next-t{font:700 clamp(1rem,1.6vw,1.25rem)/1.2 var(--font-head);text-transform:uppercase}
.o-next-d{font:600 12px/1.3 var(--font);letter-spacing:1px;text-transform:uppercase;color:rgba(255,255,255,.8)}
.o-next-cd{margin-top:4px;font:400 12px/1.3 var(--font);letter-spacing:1px;text-transform:uppercase;color:rgba(255,255,255,.75)}
.o-next-cd b{font:700 clamp(1.3rem,2vw,1.8rem)/1 var(--font-head);color:#fff;margin:0 2px 0 6px}
.o-next-cd:empty{display:none}
/* stasera */
.o-tonight{position:relative;z-index:3;background:var(--accent);color:#fff}
.o-tonight-in{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;padding-block:16px}
.o-tonight-k{display:inline-flex;align-items:center;gap:8px;font:700 12px/1 var(--font);letter-spacing:2px;text-transform:uppercase}
.o-tonight-dot{width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 0 0 rgba(255,255,255,.6);animation:tonightPulse 1.6s ease-out infinite}
@keyframes tonightPulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.6)}100%{box-shadow:0 0 0 10px rgba(255,255,255,0)}}
.o-tonight-t{font:700 clamp(1.2rem,2.2vw,1.7rem)/1.1 var(--font-head);text-transform:uppercase;color:#fff}
.o-tonight-m{font:600 13px/1.3 var(--font);letter-spacing:.5px;text-transform:uppercase;color:rgba(255,255,255,.85)}
.o-tonight-a{margin-left:auto;display:flex;gap:8px}
.o-tonight .btn-accent{background:#fff;border-color:#fff;color:var(--accent)}
.o-tonight .btn-ghost{border-color:#fff;color:#fff}
.o-tonight.open{background:#0a0a0a}
.o-tonight.open .o-tonight-dot{background:#35ff9a}
.o-tonight.open .btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}
@media (max-width:760px){.o-tonight-a{margin-left:0;flex-basis:100%}}

/* cosa c'e' dentro le lettere */
.o-gate-now{margin:0;font:700 11px/1.4 var(--font);letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.55)}
.o-gate-now span{color:var(--accent);margin-right:8px}

/* apertura senza le lettere: video a tutto schermo e logo bianco sopra, come la prima versione */
.js .o-gate.o-gate-plain{height:100svh}
.o-gate-plain .o-gate-media{clip-path:none!important}
.o-gate-plain .o-gate-svg,.o-gate-plain .o-gate-under{display:none}
.o-gate-plain .o-gate-shade{background:linear-gradient(0deg,rgba(0,0,0,.65),rgba(0,0,0,.15) 55%,rgba(0,0,0,.3))}
.o-gate-plain .o-gate-content{opacity:1;pointer-events:auto}
.o-gate-plain .o-hero-logo{display:block;width:min(440px,62vw);height:auto;margin:0 auto 18px;opacity:1;filter:none;animation:none}
/* il marchio sale con la stessa curva delle lettere, prima di loro */
.js .o-gate-plain .o-hero-logo{animation:slide-in 2s cubic-bezier(0,0,0,1) .1s both}
@media (prefers-reduced-motion:reduce){.js .o-gate-plain .o-hero-logo{animation:none}}
.o-gate-plain .o-hero-label{margin-bottom:22px;color:rgba(255,255,255,.9)}
@media (max-width:760px){.js .o-gate.o-gate-plain{height:100svh}.o-gate-plain .o-hero-logo{width:72vw;margin-bottom:14px}}

/* venue: griglia compatta di card (le bande alte erano troppo ingombranti) */
.o-vgrid-sec{padding-block:clamp(56px,6vw,90px) clamp(30px,4vw,60px)}
.o-vgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:clamp(24px,3vw,40px)}
.o-vcard{--band:var(--accent);position:relative;display:flex;flex-direction:column;border-radius:12px;overflow:hidden;background:#0c0c0c;border:1px solid var(--line);color:#fff;transition:border-color .25s,transform .4s var(--ease)}
.o-vcard:hover{border-color:var(--band);transform:translateY(-3px)}
.o-vcard-media{position:relative;display:block;aspect-ratio:16/10;background:linear-gradient(160deg,color-mix(in srgb,var(--band) 28%,#000),#050505 70%);overflow:hidden}
.o-vcard-media::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--band);box-shadow:0 0 16px var(--band);z-index:2}
.o-vcard-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1s var(--ease)}
.o-vcard:hover .o-vcard-media img{transform:scale(1.05)}
.o-vcard-media .o-band-loop{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s}
.o-vcard:hover .o-vcard-media .o-band-loop.on{opacity:1}
.o-vcard-body{display:flex;flex-direction:column;gap:4px;padding:14px 16px 16px}
.o-vcard-idx{font:700 11px/1 var(--font);letter-spacing:2px;color:var(--band)}
.o-vcard-name{font:700 clamp(1.05rem,1.4vw,1.3rem)/1.15 var(--font-head);text-transform:uppercase;letter-spacing:-.01em;margin-top:4px}
.o-vcard-meta{font:600 12px/1.4 var(--font);letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.o-vcard-next{margin-top:8px;padding-top:8px;border-top:1px solid var(--line);font:600 12px/1.4 var(--font);text-transform:uppercase;color:rgba(255,255,255,.85)}
.o-vcard-next span{display:block;font-size:10px;letter-spacing:2px;color:var(--band);margin-bottom:2px}
@media (max-width:1100px){.o-vgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.o-vgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.o-vcard-body{padding:12px}.o-vcard-name{font-size:1rem}}

/* Hall of fame come la lista eventi di Omnia (valori calcolati dal loro sito 26/09): 4 per riga, foto 4:5 raggio 12, velo 0,8 con bottoni a pillola al passaggio,
   blocco data con riga a destra, titolo 16 px 900 maiuscolo; sotto i 992 px due per riga, blocco data nascosto e data sotto il titolo, velo spento */
.o-hof{padding-block:clamp(56px,6vw,90px)}
.o-hof .t-label{margin-bottom:22px}
.o-hof-list{display:flex;flex-wrap:wrap;margin:0 -16px;max-width:1344px;margin-inline:auto}
.o-hof-item{flex:0 0 25%;max-width:25%;padding:0 16px;margin:0 0 32px;display:flex;flex-direction:column}
.o-hof-post{display:flex;flex-direction:column;flex:1 1 auto}
.o-hof-img{position:relative;margin:0 0 16px;border-radius:12px;overflow:hidden;aspect-ratio:4/5;background:#111}
.o-hof-img > a,.o-hof-img > a img{display:block;width:100%;height:100%}
.o-hof-img img{object-fit:cover;object-position:center top}
.o-hof-ov{position:absolute;inset:0;background:rgba(0,0,0,.8);opacity:0;transition:.5s ease-in-out;pointer-events:none}
.o-hof-btns{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:.5s;pointer-events:none}
.o-hof-btn{display:block;width:80%;max-width:260px;margin:0 0 16px;padding:12px 24px;border:2px solid #fff;border-radius:25px;color:#fff;background:transparent;font:600 14px/14px var(--font);text-transform:uppercase;text-align:center;transition:.4s ease-in-out}
.o-hof-btn:hover{background:#fff;color:#000}
.o-hof-img:hover .o-hof-ov,.o-hof-img:focus-within .o-hof-ov{opacity:1}
.o-hof-img:hover .o-hof-btns,.o-hof-img:focus-within .o-hof-btns{opacity:1;pointer-events:auto}
.o-hof-content{display:flex;flex:1 1 auto}
.o-hof-date{flex:0 0 auto;padding:0 16px 0 0;margin:0 16px 0 0;border-right:1px solid rgba(255,255,255,.6);color:#fff;text-align:left}
.o-hof-m{font:700 10.8px/9.6px var(--font);text-transform:uppercase}
.o-hof-d{font:700 33.6px/38.4px var(--font)}
.o-hof-y{font:700 10.8px/10.8px var(--font)}
.o-hof-text{display:flex;flex-direction:column;justify-content:center;min-width:0}
.o-hof-title{margin:0;font:700 16px/16px var(--font);letter-spacing:.5px;text-transform:uppercase;color:#fff}
.o-hof-title strong{font-weight:900}
.o-hof-venue{margin-top:6px;font:700 11px/1.3 var(--font);letter-spacing:.5px;text-transform:uppercase;color:rgba(255,255,255,.7)} /* Ric 26/09: in queste card sempre bold */
.o-hof-mdate{display:none}
@media (max-width:991px){
  .o-hof-list{margin:0 -14px}
  .o-hof-item{flex:0 0 50%;max-width:50%;padding:0 14px;margin:0 0 28px}
  .o-hof-img{margin:0 0 14px}
  .o-hof-ov,.o-hof-btns{display:none}
  .o-hof-date{display:none}
  .o-hof-title{font-size:14px;line-height:14px}
  .o-hof-mdate{display:block;font:700 13px/1.6 var(--font);color:#fff;margin-top:4px}
}

.o-hof-credit{position:absolute;right:8px;bottom:6px;z-index:1;font:500 9px/1.2 var(--font);color:rgba(255,255,255,.6);letter-spacing:.2px;pointer-events:none;text-shadow:0 1px 2px rgba(0,0,0,.8)}

/* 27/09: card evento quadrate (i volantini NEON sono post quadrati): la foto riempie sempre il riquadro, niente bande nere */

/* conto alla rovescia sulle card evento (28/09) */
@keyframes cdPulse{to{box-shadow:0 0 0 7px rgba(238,53,81,0)}}
/* 28/09: conto alla rovescia grande sul prossimo evento, sotto l'apertura della home */
.o-cdown{position:relative;z-index:3;background:#000;border-block:1px solid var(--line);padding-block:clamp(36px,5vw,64px)}
.o-cdown-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.o-cdown-track::-webkit-scrollbar{display:none}
.o-cdown-slide{flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always}
.o-cdown-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:clamp(22px,3vw,34px)}
.o-cdown-nav>button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:transparent;color:#fff;display:grid;place-items:center;cursor:pointer}
.o-cdown-nav>button:hover{background:#fff;color:#000}
.o-cdown-nav svg{width:18px;height:18px}
.o-cdown-dots{display:flex;gap:8px}
.o-cdown-dots button{width:8px;height:8px;padding:0;border-radius:50%;border:0;background:rgba(255,255,255,.3);cursor:pointer;transition:width .3s,background .3s}
.o-cdown-dots button.on{width:26px;border-radius:4px;background:var(--accent)}
.ev-cdown .o-cdown-cd{margin-top:0}
.ev-cdown .o-cdown-u{flex:1 1 0}
.ev-cdown.is-live .o-cdown-cd{color:var(--accent)}
.o-cdown-in{display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:clamp(24px,4vw,56px);align-items:center}
.o-cdown-img{display:block;aspect-ratio:1/1;overflow:hidden;border-radius:6px;background:#111}
.o-cdown-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease)}
.o-cdown-img:hover img{transform:scale(1.04)}
.o-cdown-k{display:inline-flex;align-items:center;gap:10px;color:var(--accent);letter-spacing:2px}
.o-cdown-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);animation:nextPulse 1.4s ease-out infinite}
@keyframes nextPulse{0%{box-shadow:0 0 0 0 rgba(238,53,81,.7)}80%{box-shadow:0 0 0 12px rgba(238,53,81,0)}100%{box-shadow:0 0 0 0 rgba(238,53,81,0)}}
.o-cdown-t{display:block;margin-top:10px;font:700 clamp(1.5rem,3vw,2.6rem)/1.1 var(--font-head);text-transform:uppercase;color:#fff;overflow-wrap:break-word}
.o-cdown-m{margin:8px 0 0;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:1px;font-size:14px}
.o-cdown-cd{display:flex;gap:clamp(8px,1.4vw,18px);margin-top:clamp(20px,3vw,32px);font:700 clamp(1.4rem,3vw,2.4rem)/1 var(--font-head);text-transform:uppercase;color:#fff}
.o-cdown-u{flex:0 1 150px;display:flex;flex-direction:column;align-items:center;gap:10px;padding:clamp(14px,2vw,22px) 6px clamp(12px,1.6vw,18px);border:1px solid var(--line-2);border-radius:10px;background:rgba(255,255,255,.04)}
.o-cdown-u b{font:700 clamp(2.6rem,6.5vw,5.4rem)/.9 var(--font-head);font-variant-numeric:tabular-nums;letter-spacing:-1px;color:#fff}
.o-cdown-u:last-child b{color:var(--accent)}
.o-cdown-u b.tk{animation:nextTick .5s var(--ease)}
@keyframes nextTick{0%{opacity:.35;transform:translateY(-6px)}100%{opacity:1;transform:none}}
.o-cdown-u small{font:700 11px/1 var(--font);letter-spacing:2px;color:var(--muted)}
.o-cdown-a{display:flex;gap:12px;flex-wrap:wrap;margin-top:clamp(20px,3vw,32px)}
.o-cdown-slide.is-live .o-cdown-cd{color:var(--accent)}
@media (max-width:760px){
  .o-cdown-in{grid-template-columns:1fr;gap:20px}
  .o-cdown-img{max-width:none}
  .o-cdown-u{flex:1 1 0;padding:12px 4px 10px;gap:8px}
  .o-cdown-u b{font-size:clamp(2rem,10vw,2.8rem)}
  .o-cdown-u small{font-size:9px;letter-spacing:1px}
  .o-cdown-a .btn{flex:1;padding-inline:14px;font-size:13px}
}
@media (prefers-reduced-motion:reduce){.o-cdown-dot,.o-cdown-u b.tk{animation:none}}
