/* ============================================================
   LO SCHERMO DA PROIETTARE - palco 1920 x 1080 scalato
   ============================================================ */
html, body { width: 100%; height: 100%; overflow: hidden; }
body.schermo { background: #030406; cursor: default; }
body.schermo.mouse-nascosto, body.schermo.mouse-nascosto * { cursor: none !important; }

#palco {
  position: fixed; left: 50%; top: 50%; width: 1920px; height: 1080px; overflow: hidden;
  transform-origin: center; transform: translate(-50%, -50%) scale(var(--k, 1));
  background:
    radial-gradient(55% 65% at 80% 40%, rgba(200, 16, 46, 0.28), transparent 70%),
    radial-gradient(45% 55% at 8% 6%, rgba(201, 162, 39, 0.2), transparent 70%),
    radial-gradient(60% 50% at 50% 110%, rgba(201, 162, 39, 0.12), transparent 70%),
    var(--nero);
}
#palco.scuoti { animation: scuoti 0.5s cubic-bezier(.36,.07,.19,.97); }
@keyframes scuoti {
  10%, 90% { transform: translate(calc(-50% - 2px), -50%) scale(var(--k)); }
  20%, 80% { transform: translate(calc(-50% + 6px), calc(-50% + 3px)) scale(var(--k)); }
  30%, 50%, 70% { transform: translate(calc(-50% - 10px), calc(-50% - 4px)) scale(var(--k)); }
  40%, 60% { transform: translate(calc(-50% + 10px), calc(-50% + 4px)) scale(var(--k)); }
}

/* fondo comune: raggi, 40 in filigrana, campo in prospettiva */
.fondo-raggi { position: absolute; left: 50%; top: 50%; width: 2600px; height: 2600px; pointer-events: none;
  background: repeating-conic-gradient(from 0deg, rgba(229,193,88,0.07) 0deg 3deg, transparent 3deg 14deg);
  -webkit-mask-image: radial-gradient(circle, #000 0%, transparent 55%); mask-image: radial-gradient(circle, #000 0%, transparent 55%);
  animation: raggi-gira 120s linear infinite; }
.fondo-40 { position: absolute; right: -80px; bottom: -330px; font-family: var(--fut); font-weight: 700; font-size: 1250px; line-height: 1; color: transparent; -webkit-text-stroke: 3px rgba(229,193,88,0.06); pointer-events: none; }
.fondo-campo { position: absolute; left: -10%; right: -10%; bottom: -140px; height: 460px; transform: perspective(700px) rotateX(62deg); transform-origin: bottom; opacity: 0.1; pointer-events: none; }

/* le scene: una alla volta, con dissolvenza */
.scena { position: absolute; inset: 0; opacity: 0; visibility: hidden; transform: scale(1.02); transition: opacity 0.7s ease, transform 0.9s cubic-bezier(.2,.8,.2,1), visibility 0s linear 0.7s; }
.scena.attiva { opacity: 1; visibility: visible; transform: none; transition: opacity 0.7s ease, transform 0.9s cubic-bezier(.2,.8,.2,1), visibility 0s; }

.occhiello { display: inline-flex; align-items: center; gap: 14px; padding: 12px 28px; border-radius: 999px; border: 2px solid rgba(200,16,46,0.6); background: rgba(200,16,46,0.15); color: var(--rosso-chiaro); font-weight: 800; font-size: 22px; letter-spacing: 0.24em; text-transform: uppercase; white-space: nowrap; }
.occhiello.oro { border-color: rgba(201,162,39,0.5); background: rgba(201,162,39,0.12); color: var(--oro); }

/* ---------------- INTRO ---------------- */
#sc-intro { display: flex; flex-direction: column; align-items: center; padding-top: 70px; text-align: center; }
#sc-intro .logo { width: 104px; height: 104px; object-fit: contain; filter: drop-shadow(0 8px 20px rgba(0,0,0,0.5)); }
#sc-intro .occhiello { margin-top: 26px; }
#sc-intro h1 { margin-top: 18px; font-size: 300px; line-height: 0.82; text-transform: uppercase; letter-spacing: 0.01em; }
#sc-intro .sotto { margin-top: 10px; font-size: 40px; color: rgba(255,255,255,0.85); font-weight: 600; }
#sc-intro .memorial { margin-top: 12px; font-family: var(--fut); font-weight: 700; font-size: 40px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--oro); display: flex; align-items: center; gap: 22px; }
#sc-intro .memorial::before, #sc-intro .memorial::after { content: ''; width: 90px; height: 2px; background: linear-gradient(90deg, transparent, rgba(229,193,88,0.7)); }
#sc-intro .memorial::after { transform: scaleX(-1); }
.pacchi { position: absolute; left: 0; right: 0; bottom: 70px; height: 340px; perspective: 1500px; perspective-origin: 50% 20%; }
.pacchi::before { content: ''; position: absolute; left: 50%; bottom: -20px; width: 1500px; height: 200px; transform: translateX(-50%); border-radius: 50%; background: radial-gradient(50% 50% at 50% 50%, rgba(229,193,88,0.28), rgba(200,16,46,0.12) 45%, transparent 72%); }
.pacco-pos { position: absolute; left: 50%; top: 20px; width: 170px; margin-left: -85px; }
.pacco { position: relative; height: 250px; border-radius: 16px; overflow: hidden; animation: galleggia 4.6s ease-in-out infinite; animation-delay: var(--ritardo); box-shadow: 0 30px 40px -12px rgba(0,0,0,0.7), 0 0 0 2px rgba(229,193,88,0.85), 0 0 0 5px rgba(0,0,0,0.5), 0 0 30px rgba(229,193,88,0.25);
  background: linear-gradient(160deg, color-mix(in srgb, var(--maglia) 86%, white) 0%, var(--maglia) 28%, var(--maglia) 68%, color-mix(in srgb, var(--maglia) 72%, black) 100%); }
@keyframes galleggia { 0%, 100% { transform: translateY(0) rotate(-0.6deg); } 50% { transform: translateY(-16px) rotate(0.6deg); } }
.pacco::before { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(125deg, rgba(255,255,255,0.05) 0 14px, transparent 14px 30px); }
.pacco::after { content: ''; position: absolute; inset: 0; background-image: linear-gradient(115deg, transparent 30%, rgba(255,255,255,0.35) 40%, rgba(255,214,120,0.25) 46%, rgba(140,210,255,0.2) 52%, transparent 60%); background-size: 250% 100%; mix-blend-mode: overlay; animation: olo 5s linear infinite; animation-delay: var(--ritardo); }
@keyframes olo { from { background-position: 0% 50%; } to { background-position: 250% 50%; } }
.pacco .dentelli { position: absolute; left: 10px; right: 10px; top: 10px; border-top: 3px dashed rgba(255,241,184,0.7); }
.pacco .medaglia { position: absolute; left: 50%; top: 50px; width: 88px; height: 88px; margin-left: -44px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #2B2416, #050505); box-shadow: 0 0 0 3px #E5C158, 0 8px 18px rgba(0,0,0,0.5); display: flex; align-items: center; justify-content: center; font-size: 54px; line-height: 1; }
.pacco .nome { position: absolute; left: 6px; right: 6px; bottom: 30px; text-align: center; color: #fff; text-shadow: 0 2px 8px rgba(0,0,0,0.6); }
.pacco[data-chiara] .nome { color: #1A1407; text-shadow: none; }
.pacco .nome small { display: block; font-family: var(--corpo); font-size: 12px; letter-spacing: 0.3em; font-weight: 800; opacity: 0.8; }
.pacco .nome b { display: block; margin-top: 4px; font-family: var(--fut); font-size: 34px; line-height: 1; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pacco .nome b.lungo { font-size: 27px; line-height: 0.98; white-space: normal; }
/* squadra senza colore: lucchetto al posto dell'edizione, poi lo sblocco */
.pacco .medaglia .lucchetto { width: 46px; height: 46px; color: #E5C158; filter: drop-shadow(0 2px 6px rgba(229,193,88,0.5)); }
.pacco.svelato { animation: galleggia 4.6s ease-in-out infinite, svela 1.4s ease-out; animation-delay: var(--ritardo), 0s; }
@keyframes svela { 0% { filter: brightness(3.2) saturate(0.4); } 35% { filter: brightness(1.7); } 100% { filter: none; } }
.lucchetto-via { position: absolute; left: 50%; top: 62px; width: 92px; height: 92px; margin-left: -46px; color: #FFF1B8; z-index: 2; pointer-events: none; animation: lucchetto-via 1.3s ease-out forwards; filter: drop-shadow(0 0 22px rgba(255,241,184,0.9)); }
.lucchetto-via .lucchetto { width: 100%; height: 100%; }
@keyframes lucchetto-via { 0% { transform: scale(0.5); opacity: 1; } 40% { transform: scale(1.25); opacity: 1; } 100% { transform: translateY(-150px) scale(1.7) rotate(14deg); opacity: 0; } }
.pacco-pos .riflesso-pacco { height: 90px; margin-top: 10px; border-radius: 16px; opacity: 0.22; transform: scaleY(-1); background: linear-gradient(0deg, var(--maglia), transparent); filter: blur(4px); -webkit-mask-image: linear-gradient(0deg, transparent, #000); mask-image: linear-gradient(0deg, transparent, #000); }
.fascio { position: absolute; top: -40px; width: 520px; height: 1100px; transform-origin: top center; pointer-events: none; filter: blur(8px); clip-path: polygon(44% 0, 56% 0, 100% 100%, 0 100%); }
.fascio.sx { left: 18%; background: linear-gradient(180deg, rgba(255,241,184,0.2), transparent 75%); animation: fascio-sx 8s ease-in-out infinite; }
.fascio.dx { right: 18%; background: linear-gradient(180deg, rgba(255,200,210,0.16), transparent 75%); animation: fascio-dx 9s ease-in-out infinite 1.2s; }
@keyframes fascio-sx { 0%, 100% { transform: rotate(-16deg); opacity: 0.55; } 50% { transform: rotate(-4deg); opacity: 1; } }
@keyframes fascio-dx { 0%, 100% { transform: rotate(16deg); opacity: 0.55; } 50% { transform: rotate(4deg); opacity: 1; } }

/* ---------------- TABELLONE ---------------- */
/* il regolamento dell'asta */
#sc-regole { padding: 56px 90px 60px; display: flex; flex-direction: column; }
.regole-testa { display: flex; align-items: center; gap: 34px; flex-shrink: 0; }
.regole-testa .logo { width: 116px; height: 116px; object-fit: contain; filter: drop-shadow(0 8px 20px rgba(0,0,0,0.5)); }
.regole-testa small { display: block; font-size: 24px; letter-spacing: 0.26em; font-weight: 800; color: var(--oro); text-transform: uppercase; }
.regole-testa h2 { margin-top: 10px; font-size: 104px; line-height: 0.95; text-transform: uppercase; }
.regole-griglia { flex: 1; min-height: 0; margin-top: 40px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 26px; }
.regola { position: relative; padding: 34px 36px; border-radius: 26px; overflow: hidden; background: linear-gradient(160deg, rgba(229,193,88,0.12), rgba(255,255,255,0.03)); border: 1px solid var(--linea); }
#sc-regole.attiva .regola { animation: sale 0.7s cubic-bezier(.2,.8,.2,1) var(--ritardo) both; }
.regola .num { position: absolute; right: 26px; top: 6px; font-size: 130px; line-height: 1; color: rgba(229,193,88,0.16); }
.regola h3 { position: relative; font-size: 62px; line-height: 1; text-transform: uppercase; color: var(--oro); padding-right: 70px; }
.regola p { position: relative; margin-top: 22px; font-size: 34px; line-height: 1.28; color: rgba(255,255,255,0.9); font-weight: 500; }

#sc-tabellone { padding: 34px 50px 0; display: flex; flex-direction: column; }
.testata { display: flex; align-items: center; gap: 26px; height: 112px; flex-shrink: 0; }
.testata .logo { width: 84px; height: 84px; object-fit: contain; }
.testata .titoli small { display: block; font-size: 19px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--oro); font-weight: 800; }
.testata .titoli h2 { font-size: 78px; line-height: 0.95; text-transform: uppercase; display: flex; align-items: center; gap: 22px; }
.testata .titoli h2 .vivo { display: inline-flex; align-items: center; gap: 12px; font-size: 22px; letter-spacing: 0.24em; padding: 8px 18px; border-radius: 999px; background: rgba(239,68,68,0.15); border: 2px solid rgba(239,68,68,0.5); color: #fca5a5; font-family: var(--corpo); font-weight: 800; }
.testata .conti { margin-left: auto; display: flex; align-items: stretch; gap: 14px; }
.conto { min-width: 150px; padding: 12px 22px; border-radius: 18px; background: rgba(255,255,255,0.04); border: 1px solid var(--linea); text-align: center; }
.conto b { display: block; font-family: var(--fut); font-size: 58px; line-height: 1; }
.conto span { display: block; margin-top: 4px; font-size: 14px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--tenue); font-weight: 800; white-space: nowrap; }
.conto.categorie { display: flex; align-items: center; gap: 16px; }
.conto.categorie .cat { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.conto.categorie .cat b { font-size: 40px; }
.conto.categorie .cat.zero { opacity: 0.35; }

.griglia { flex: 1; display: grid; gap: 20px; padding: 20px 0 18px; min-height: 0; }
.pannello { position: relative; display: flex; flex-direction: column; min-height: 0; border-radius: 20px; overflow: hidden; background: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.02)); box-shadow: inset 0 0 0 1px rgba(229,193,88,0.16); transition: box-shadow 0.6s ease, transform 0.6s ease; }
.pannello.acceso { box-shadow: inset 0 0 0 3px var(--maglia-v), 0 0 50px color-mix(in srgb, var(--maglia-v) 60%, transparent); animation: pannello-pulsa 1.4s ease-in-out 4; }
@keyframes pannello-pulsa { 50% { transform: scale(1.025); } }
.pannello .banda { position: relative; height: var(--alt-banda, 96px); flex-shrink: 0; display: flex; align-items: center; gap: 14px; padding: 0 20px; color: #fff; overflow: hidden;
  background: linear-gradient(135deg, color-mix(in srgb, var(--maglia) 88%, white) 0%, var(--maglia) 30%, var(--maglia) 70%, color-mix(in srgb, var(--maglia) 72%, black) 100%); }
.pannello .banda::before { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(125deg, rgba(255,255,255,0.08) 0 12px, transparent 12px 26px); }
.pannello .banda::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: linear-gradient(90deg, #9c7a16, #FFF1B8 40%, #E5C158 60%, #9c7a16); }
.pannello[data-chiara] .banda { color: #1A1407; }
.pannello .banda > * { position: relative; }
.pannello .nome-sq { flex: 1; min-width: 0; }
.pannello .nome-sq b { display: block; font-family: var(--fut); font-size: 46px; line-height: 0.95; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-shadow: 0 2px 10px rgba(0,0,0,0.25); }
.pannello[data-chiara] .nome-sq b { text-shadow: none; }
.pannello .nome-sq b .lucchetto { display: inline-block; width: 0.66em; height: 0.66em; margin-right: 0.24em; color: #E5C158; vertical-align: -0.02em; }
.pannello.svelato .banda { animation: svela 1.4s ease-out; }
.pannello .nome-sq span { display: block; margin-top: 3px; font-size: 17px; font-weight: 700; opacity: 0.85; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pannello .soldi { text-align: right; flex-shrink: 0; }
.pannello .soldi b { display: block; font-family: var(--fut); font-size: 50px; line-height: 0.95; }
.pannello .soldi span { display: block; font-size: 12px; letter-spacing: 0.2em; font-weight: 800; opacity: 0.85; text-transform: uppercase; }
.pannello.fitta .nome-sq b { font-size: 38px; }
.pannello.fitta .nome-sq span { margin-top: 1px; font-size: 15px; }
.pannello.fitta .soldi b { font-size: 40px; }
.pannello.fitta .soldi span { font-size: 11px; letter-spacing: 0.14em; }
.pannello .rosa { flex: 1; display: grid; grid-auto-flow: column; grid-template-rows: repeat(var(--righe), 1fr); grid-auto-columns: minmax(0, 1fr); column-gap: 14px; padding: 8px 16px 10px; min-height: 0; }
.riga { display: flex; align-items: center; gap: 10px; min-width: 0; border-bottom: 1px solid rgba(255,255,255,0.06); font-size: var(--testo-riga); }
.riga .n { flex: 1; min-width: 0; font-family: var(--fut); font-weight: 700; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.1; padding-top: 0.12em; }
.riga .n.stretto { font-size: 0.78em; }
.riga .p { font-family: var(--fut); font-weight: 700; color: var(--oro); font-variant-numeric: tabular-nums; }
.riga.pres .n::before, .sq-r.pres .n::before { content: '★ '; color: var(--oro); }
.riga.vuota { border-bottom: 1px dashed rgba(255,255,255,0.08); }
.riga.vuota .n { color: rgba(255,255,255,0.14); }
.riga.vuota .badge-cat { opacity: 0.3; }
.riga.nuova { animation: riga-nuova 1.2s ease-out both, riga-luce 2.4s ease-in-out 1.2s 4; border-radius: 8px; }
@keyframes riga-nuova { from { transform: translateX(-40px) scale(1.2); opacity: 0; background: rgba(229,193,88,0.5); } to { transform: none; opacity: 1; background: rgba(229,193,88,0.18); } }
@keyframes riga-luce { 0%, 100% { background: rgba(229,193,88,0.18); } 50% { background: rgba(229,193,88,0.04); } }

.nastro { height: 82px; flex-shrink: 0; display: flex; align-items: center; gap: 18px; border-top: 1px solid var(--linea); margin: 0 -50px; padding: 0 50px; background: rgba(0,0,0,0.35); overflow: hidden; }
.nastro .etichetta { flex-shrink: 0; font-size: 16px; letter-spacing: 0.28em; font-weight: 800; color: var(--oro); text-transform: uppercase; }
.nastro .vendite { flex: 1; display: flex; gap: 14px; overflow: hidden; min-width: 0; -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
.chip-vendita { flex-shrink: 0; display: inline-flex; align-items: center; gap: 10px; padding: 8px 16px; border-radius: 999px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); font-size: 21px; white-space: nowrap; }
.chip-vendita i { width: 14px; height: 14px; border-radius: 50%; box-shadow: 0 0 0 2px rgba(255,255,255,0.4); }
.chip-vendita b { font-family: var(--fut); font-size: 26px; text-transform: uppercase; padding-top: 3px; }
.chip-vendita em { font-style: normal; color: var(--oro); font-family: var(--fut); font-size: 26px; padding-top: 3px; }
.nastro .colpo { flex-shrink: 0; display: flex; align-items: center; gap: 14px; padding: 8px 20px; border-radius: 16px; background: linear-gradient(100deg, rgba(201,162,39,0.25), rgba(201,162,39,0.08)); border: 1px solid rgba(229,193,88,0.45); font-size: 20px; white-space: nowrap; }
.nastro .colpo small { font-size: 14px; letter-spacing: 0.24em; font-weight: 800; color: var(--oro); }
.nastro .colpo b { font-family: var(--fut); font-size: 30px; text-transform: uppercase; padding-top: 3px; }
.nastro .vuoto { color: rgba(255,255,255,0.4); font-size: 22px; }
.fine-asta { display: inline-flex; align-items: center; gap: 12px; font-size: 22px; letter-spacing: 0.24em; padding: 8px 18px; border-radius: 999px; background: rgba(229,193,88,0.15); border: 2px solid rgba(229,193,88,0.6); color: var(--oro); font-family: var(--corpo); font-weight: 800; }

/* ---------------- ASTA ---------------- */
#sc-asta .alone { position: absolute; left: 340px; top: 349px; width: 1500px; height: 1500px; transform: translate(-50%, -50%); pointer-events: none;
  background: repeating-conic-gradient(from 0deg, var(--alone, rgba(229,193,88,0.2)) 0deg 4deg, transparent 4deg 13deg);
  -webkit-mask-image: radial-gradient(circle, #000 0%, transparent 50%); mask-image: radial-gradient(circle, #000 0%, transparent 50%); animation: raggi-gira 60s linear infinite; }
#sc-asta .luce-carta { position: absolute; left: 340px; top: 349px; width: 900px; height: 900px; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(circle, var(--luce, rgba(229,193,88,0.3)), transparent 62%); pointer-events: none; transition: background 0.8s ease; }
.asta-carta { position: absolute; left: 120px; top: 28px; width: 440px; perspective: 1600px; }
.flip { position: relative; width: 100%; aspect-ratio: 100 / 146; transform-style: preserve-3d; }
.faccia { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.faccia.dietro { transform: rotateY(180deg); }
#sc-asta.entrata .flip { animation: carta-entra 2.1s cubic-bezier(.2,.75,.15,1) both; }
@keyframes carta-entra {
  0% { transform: translate(615px, 60px) scale(0.2) rotateY(540deg); opacity: 0; }
  12% { opacity: 1; }
  55% { transform: translate(615px, 0) scale(1.05) rotateY(0deg); }
  72% { transform: translate(615px, 0) scale(1.05) rotateY(0deg); }
  100% { transform: none; }
}
#sc-asta.entrata .info > * { animation: sale 0.8s cubic-bezier(.2,.8,.2,1) both; }
#sc-asta.entrata .info > *:nth-child(1) { animation-delay: 1.5s; }
#sc-asta.entrata .info > *:nth-child(2) { animation-delay: 1.62s; }
#sc-asta.entrata .info > *:nth-child(3) { animation-delay: 1.74s; }
#sc-asta.entrata .info > *:nth-child(4) { animation-delay: 1.86s; }
#sc-asta.entrata .info > *:nth-child(5) { animation-delay: 1.98s; }
#sc-asta.entrata .info > *:nth-child(6) { animation-delay: 2.1s; }
#sc-asta.entrata .squadre-striscia { animation: sale 0.8s cubic-bezier(.2,.8,.2,1) 2.2s both; }
@keyframes sale { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: none; } }
.lampo { position: absolute; inset: 0; pointer-events: none; opacity: 0; background: radial-gradient(circle at 18% 32%, rgba(255,250,230,0.95), rgba(255,230,160,0.4) 25%, transparent 60%); }
.lampo.via { animation: lampo 1.1s ease-out; }
@keyframes lampo { 0% { opacity: 0; } 12% { opacity: 1; } 100% { opacity: 0; } }

.info { position: absolute; left: 620px; top: 26px; width: 1260px; }
.info .etichette { display: flex; align-items: center; gap: 16px; }
.pill { display: inline-flex; align-items: center; gap: 12px; padding: 10px 22px; border-radius: 999px; font-size: 22px; letter-spacing: 0.2em; font-weight: 800; text-transform: uppercase; white-space: nowrap; }
.pill.rossa { background: rgba(239,68,68,0.16); border: 2px solid rgba(239,68,68,0.55); color: #fecaca; }
.pill.chiara { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.16); color: rgba(255,255,255,0.85); letter-spacing: 0.12em; }
.pill.oro { background: rgba(201,162,39,0.14); border: 2px solid rgba(229,193,88,0.5); color: var(--oro); }
.info .nome { margin-top: 18px; font-size: 132px; line-height: 0.86; text-transform: uppercase; white-space: nowrap; letter-spacing: 0.005em; }
.info .ruolo { margin-top: 8px; font-size: 24px; letter-spacing: 0.3em; font-weight: 800; color: var(--oro); text-transform: uppercase; }
.info .ruolo:empty { display: none; }
.offerta { margin-top: 14px; display: flex; align-items: flex-end; gap: 44px; }
.offerta .cifra-box small { display: block; font-size: 24px; letter-spacing: 0.32em; font-weight: 800; color: rgba(255,255,255,0.6); text-transform: uppercase; }
.offerta .cifra { display: flex; align-items: flex-end; gap: 14px; }
.offerta .cifra b { font-size: 216px; line-height: 0.8; display: inline-block; }
.offerta .cifra b.base { color: rgba(255,255,255,0.22); -webkit-text-fill-color: rgba(255,255,255,0.22); background: none; animation: none; }
.offerta .cifra b.salta { animation: oro-scorre 7s linear infinite, salta 0.55s cubic-bezier(.2,1.6,.4,1); }
@keyframes salta { 0% { transform: scale(1.35); filter: brightness(2); } 100% { transform: none; filter: none; } }
.offerta .cifra em { font-style: normal; font-family: var(--fut); font-size: 56px; color: rgba(229,193,88,0.8); padding-bottom: 18px; letter-spacing: 0.06em; }
.offerta .timer { position: relative; width: 130px; height: 130px; margin-bottom: 14px; flex-shrink: 0; }
.offerta .timer svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.offerta .timer b { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-family: var(--fut); font-size: 64px; padding-top: 6px; }
.offerta .timer.finito b { color: #f87171; font-size: 38px; letter-spacing: 0.06em; }
.offerta .timer.finito { animation: pulsa 0.6s ease-in-out infinite; }
@keyframes pulsa { 50% { transform: scale(1.08); } }

.chi { margin-top: 16px; height: 100px; display: flex; align-items: center; }
.chi .attesa { display: flex; align-items: center; gap: 16px; font-size: 34px; color: rgba(255,255,255,0.5); font-weight: 600; }
.chi .attesa .puntini i { display: inline-block; width: 12px; height: 12px; margin: 0 4px; border-radius: 50%; background: var(--oro); animation: puntino 1.2s ease-in-out infinite; }
.chi .attesa .puntini i:nth-child(2) { animation-delay: 0.2s; }
.chi .attesa .puntini i:nth-child(3) { animation-delay: 0.4s; }
@keyframes puntino { 0%, 100% { opacity: 0.2; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-8px); } }
.squadra-chip { display: flex; align-items: center; gap: 22px; height: 100px; padding: 0 40px 0 0; border-radius: 22px; overflow: hidden; max-width: 1050px;
  background: linear-gradient(100deg, color-mix(in srgb, var(--maglia) 85%, white) 0%, var(--maglia) 30%, color-mix(in srgb, var(--maglia) 55%, black) 100%);
  box-shadow: 0 0 0 3px rgba(229,193,88,0.8), 0 20px 50px -10px color-mix(in srgb, var(--maglia) 70%, transparent); color: #fff; }
.squadra-chip[data-chiara] { color: #1A1407; }
.squadra-chip.cambia { animation: chip-entra 0.6s cubic-bezier(.2,1.4,.4,1); }
@keyframes chip-entra { from { transform: translateX(-60px) scale(0.92); opacity: 0; } to { transform: none; opacity: 1; } }
.squadra-chip .bandiera { width: 22px; align-self: stretch; background: repeating-linear-gradient(180deg, rgba(255,255,255,0.25) 0 10px, transparent 10px 20px); }
.squadra-chip .testo b { display: block; font-family: var(--fut); font-size: 62px; line-height: 0.9; text-transform: uppercase; padding-top: 8px; white-space: nowrap; }
.squadra-chip .testo span { display: block; font-size: 22px; font-weight: 700; opacity: 0.85; }
.squadra-chip .mazza { margin-left: 18px; font-size: 22px; letter-spacing: 0.24em; font-weight: 800; opacity: 0.9; text-transform: uppercase; }

.chiamate { display: flex; flex-direction: column; gap: 8px; margin-bottom: 6px; }
.chiamate span { min-width: 190px; text-align: center; padding: 6px 20px 2px; border-radius: 12px; font-family: var(--fut); font-size: 36px; letter-spacing: 0.08em; color: rgba(255,255,255,0.16); border: 2px solid rgba(255,255,255,0.08); transition: all 0.3s ease; }
.chiamate span.on { color: #fff; background: linear-gradient(180deg, #ef4444, #991b1b); border-color: #fca5a5; box-shadow: 0 0 40px rgba(239,68,68,0.5); }
.chiamate span.ora { animation: chiamata 0.7s cubic-bezier(.2,1.6,.4,1); }
@keyframes chiamata { 0% { transform: scale(1.3); filter: brightness(1.8); } 100% { transform: none; filter: none; } }
.storico { margin-top: 14px; display: flex; gap: 10px; flex-wrap: nowrap; overflow: hidden; height: 50px; }
.storico span { flex-shrink: 0; display: inline-flex; align-items: center; gap: 10px; padding: 6px 16px; border-radius: 999px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); font-size: 20px; color: rgba(255,255,255,0.75); }
.storico span i { width: 12px; height: 12px; border-radius: 50%; }
.storico span b { font-family: var(--fut); font-size: 26px; color: var(--oro); padding-top: 3px; }
.storico span:first-child { border-color: rgba(229,193,88,0.5); color: #fff; }

.squadre-striscia { position: absolute; left: 40px; right: 40px; bottom: 12px; height: 356px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 12px; }
.sq-mini { position: relative; display: flex; flex-direction: column; padding: 8px 12px 6px 22px; border-radius: 14px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.08); overflow: hidden; transition: all 0.4s ease; }
.sq-mini::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 10px; background: var(--maglia); }
.sq-mini b { font-family: var(--fut); font-size: 28px; line-height: 1; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-top: 3px; }
.sq-mini .num { display: flex; gap: 12px; margin-top: 4px; font-size: 15px; color: rgba(255,255,255,0.6); font-weight: 700; white-space: nowrap; }
.sq-mini .num strong { font-family: var(--fut); font-size: 22px; color: #fff; }
.sq-mini .num .mx strong { color: var(--oro); }
.squadre-striscia.fitta { gap: 8px; }
.fitta .sq-mini { padding: 8px 8px 6px 18px; }
.fitta .sq-mini::before { width: 8px; }
.fitta .sq-mini b { font-size: 25px; }
.fitta .sq-mini b.lungo { font-size: 21px; }
.fitta .sq-mini .num { gap: 8px; font-size: 13px; }
.fitta .sq-mini .num strong { font-size: 20px; }
.sq-testa { flex-shrink: 0; display: flex; flex-direction: column; min-width: 0; padding-bottom: 4px; border-bottom: 1px solid rgba(229,193,88,0.3); }
.sq-rosa { flex: 1; min-height: 0; margin-top: 3px; display: grid; grid-template-rows: repeat(var(--righe), minmax(0, 1fr)); }
.sq-r { display: flex; align-items: center; gap: 5px; min-width: 0; font-family: var(--fut); font-size: var(--testo); line-height: 1; text-transform: uppercase; }
.sq-r .n { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-top: 0.12em; }
.sq-r .p { flex-shrink: 0; padding-top: 0.12em; color: var(--oro); font-variant-numeric: tabular-nums; }
.sq-r.vuota .n { color: rgba(255,255,255,0.16); }
.sq-r.vuota .badge-cat { opacity: 0.3; }
.sq-r.nuova { border-radius: 5px; animation: sq-nuova 1.1s ease-in-out 4; }
@keyframes sq-nuova { 50% { background: rgba(229,193,88,0.55); box-shadow: 0 0 18px rgba(229,193,88,0.8); } }
.sq-mini.fuori .sq-testa { opacity: 0.5; }
.sq-mini.fuori .sq-rosa { opacity: 0.7; }
.sq-mini.fuori .motivo { font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; color: #fca5a5; font-weight: 800; margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sq-mini.guida { background: color-mix(in srgb, var(--maglia) 30%, transparent); border-color: var(--oro); box-shadow: 0 0 30px rgba(229,193,88,0.35); transform: translateY(-8px); }

/* timbro aggiudicato / nessuna offerta */
.timbro { position: absolute; left: 1250px; top: 350px; transform: translate(-50%, -50%); text-align: center; pointer-events: none; opacity: 0; z-index: 30; }
.timbro.via { animation: timbro 0.55s cubic-bezier(.2,1.5,.35,1) both; }
@keyframes timbro { from { opacity: 0; transform: translate(-50%, -50%) scale(3.2) rotate(-14deg); } to { opacity: 1; transform: translate(-50%, -50%) scale(1) rotate(-7deg); } }
.timbro .scritta { display: inline-block; white-space: nowrap; padding: 26px 60px 14px; border: 10px double var(--oro); border-radius: 26px; background: rgba(5,7,10,0.86); font-family: var(--fut); font-weight: 700; font-size: 190px; line-height: 0.9; text-transform: uppercase; box-shadow: 0 0 80px rgba(229,193,88,0.45), inset 0 0 40px rgba(229,193,88,0.2); }
.timbro .a-chi { margin-top: 28px; display: inline-flex; align-items: center; gap: 22px; padding: 16px 36px 12px; border-radius: 18px; background: rgba(5,7,10,0.86); font-family: var(--fut); font-size: 64px; text-transform: uppercase; white-space: nowrap; box-shadow: 0 0 0 2px rgba(229,193,88,0.5); }
.timbro .a-chi i { width: 30px; height: 30px; border-radius: 50%; box-shadow: 0 0 0 3px rgba(255,255,255,0.7); margin-bottom: 6px; }
.timbro .a-chi em { font-style: normal; color: var(--oro); }
.timbro.triste .scritta { border-color: #9ca3af; color: #e5e7eb; font-size: 150px; box-shadow: 0 0 60px rgba(156,163,175,0.3); }
#sc-asta.venduto .info { opacity: 0.18; transition: opacity 0.5s ease; }
#sc-asta.invenduto .info { opacity: 0.18; transition: opacity 0.5s ease; }
#sc-asta.invenduto .flip { filter: grayscale(1) brightness(0.6); transition: filter 1s ease; }

/* ---------------- ESTRAZIONE (il rullo) ---------------- */
#estrazione { position: absolute; inset: 0; z-index: 20; opacity: 0; visibility: hidden; transition: opacity 0.5s ease, visibility 0s linear 0.5s;
  background: radial-gradient(60% 60% at 50% 50%, #1E1608, #030406); }
#estrazione.attiva { opacity: 1; visibility: visible; transition: opacity 0.4s ease, visibility 0s; }
#estrazione .raggi-grandi { position: absolute; left: 50%; top: 56%; width: 3000px; height: 3000px; background: repeating-conic-gradient(from 0deg, rgba(229,193,88,0.12) 0deg 4deg, transparent 4deg 12deg); -webkit-mask-image: radial-gradient(circle, #000 0%, transparent 50%); mask-image: radial-gradient(circle, #000 0%, transparent 50%); animation: raggi-gira 14s linear infinite; }
#estrazione .titolo { position: absolute; top: 90px; left: 0; right: 0; text-align: center; }
#estrazione .titolo h3 { margin-top: 22px; font-size: 120px; line-height: 0.9; text-transform: uppercase; }
#estrazione .titolo .occhiello { font-size: 24px; }
.rullo-finestra { position: absolute; left: 50%; top: 600px; width: 1500px; height: 420px; transform: translate(-50%, -50%); overflow: hidden; filter: url(#sfoca);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 30%, #000 70%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0%, #000 30%, #000 70%, transparent 100%); }
.rullo { position: absolute; left: 0; right: 0; top: 0; will-change: transform; }
.rullo div { height: 140px; display: flex; align-items: center; justify-content: center; font-family: var(--fut); font-weight: 700; font-size: 118px; text-transform: uppercase; white-space: nowrap; color: rgba(255,255,255,0.9); padding-top: 12px; }
.rullo div.scelto.acceso { animation: scelto 1s ease-out both; }
@keyframes scelto { 0% { color: #fff; transform: scale(1); } 30% { color: #FFF6CF; transform: scale(1.18); text-shadow: 0 0 60px rgba(229,193,88,0.9); } 100% { color: #E5C158; transform: scale(1.08); text-shadow: 0 0 40px rgba(229,193,88,0.6); } }
.rullo-cornice { position: absolute; left: 50%; top: 600px; width: 1560px; height: 150px; transform: translate(-50%, -50%); pointer-events: none; }
.rullo-cornice::before, .rullo-cornice::after { content: ''; position: absolute; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, transparent, #9c7a16 10%, #FFF1B8 50%, #9c7a16 90%, transparent); box-shadow: 0 0 24px rgba(229,193,88,0.7); }
.rullo-cornice::before { top: 0; }
.rullo-cornice::after { bottom: 0; }
.rullo-cornice .freccia { position: absolute; top: 50%; width: 0; height: 0; border-top: 34px solid transparent; border-bottom: 34px solid transparent; transform: translateY(-50%); filter: drop-shadow(0 0 14px rgba(229,193,88,0.8)); }
.rullo-cornice .freccia.sx { left: -40px; border-left: 48px solid #E5C158; }
.rullo-cornice .freccia.dx { right: -40px; border-right: 48px solid #E5C158; }
.rullo-cornice .bagliore { position: absolute; inset: 4px 0; background: linear-gradient(90deg, transparent, rgba(229,193,88,0.1) 20%, rgba(229,193,88,0.14) 50%, rgba(229,193,88,0.1) 80%, transparent); }
#estrazione .piede { position: absolute; bottom: 110px; left: 0; right: 0; text-align: center; font-size: 26px; letter-spacing: 0.3em; text-transform: uppercase; color: rgba(255,255,255,0.5); font-weight: 800; }
#estrazione.fermo .rullo-cornice::before, #estrazione.fermo .rullo-cornice::after { animation: cornice-lampeggia 0.25s ease-in-out 4; }
@keyframes cornice-lampeggia { 50% { opacity: 0.2; } }

/* ---------------- SQUADRA IN PRIMO PIANO ---------------- */
#sc-squadra { display: flex; flex-direction: column; }
#sc-squadra .testa-sq { position: relative; height: 250px; flex-shrink: 0; display: flex; align-items: center; gap: 40px; padding: 0 80px; color: #fff; overflow: hidden;
  background: linear-gradient(120deg, color-mix(in srgb, var(--maglia) 80%, white) 0%, var(--maglia) 35%, color-mix(in srgb, var(--maglia) 45%, black) 100%); }
#sc-squadra .testa-sq::before { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(125deg, rgba(255,255,255,0.08) 0 18px, transparent 18px 40px); }
#sc-squadra .testa-sq::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: linear-gradient(90deg, #9c7a16, #FFF1B8 40%, #E5C158 60%, #9c7a16); }
#sc-squadra[data-chiara] .testa-sq { color: #1A1407; }
#sc-squadra .testa-sq > * { position: relative; }
#sc-squadra .testa-sq .logo { width: 120px; height: 120px; object-fit: contain; filter: drop-shadow(0 8px 20px rgba(0,0,0,0.35)); }
#sc-squadra .testa-sq small { display: block; font-size: 22px; letter-spacing: 0.3em; font-weight: 800; opacity: 0.85; text-transform: uppercase; }
#sc-squadra .testa-sq h2 { font-size: 150px; line-height: 0.85; text-transform: uppercase; padding-top: 14px; white-space: nowrap; }
#sc-squadra .testa-sq .pres { font-size: 30px; font-weight: 700; opacity: 0.9; margin-top: 6px; }
#sc-squadra .testa-sq .numeri { margin-left: auto; display: flex; gap: 22px; }
#sc-squadra .testa-sq .numeri div { text-align: center; padding: 14px 26px; border-radius: 18px; background: rgba(0,0,0,0.25); min-width: 170px; }
#sc-squadra[data-chiara] .testa-sq .numeri div { background: rgba(255,255,255,0.35); }
#sc-squadra .testa-sq .numeri b { display: block; font-family: var(--fut); font-size: 84px; line-height: 0.9; padding-top: 8px; }
#sc-squadra .testa-sq .numeri span { font-size: 16px; letter-spacing: 0.24em; font-weight: 800; text-transform: uppercase; opacity: 0.85; }
#sc-squadra .carte { flex: 1; display: grid; grid-template-columns: repeat(var(--colonne, 5), var(--larg, 200px)); align-content: center; justify-content: center; gap: 26px; padding: 30px 60px 40px; }
#sc-squadra .carte .posto { display: flex; flex-direction: column; align-items: center; animation: sale 0.7s cubic-bezier(.2,.8,.2,1) both; }
#sc-squadra .carte .posto em { margin-top: 10px; font-style: normal; font-family: var(--fut); font-size: 34px; color: var(--oro); }
#sc-squadra .carte .vuoto { width: 100%; aspect-ratio: 100/146; border-radius: 18px; border: 3px dashed rgba(255,255,255,0.12); display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.15); font-family: var(--fut); font-size: 60px; }

/* coriandoli */
#coriandoli { position: absolute; inset: 0; width: 1920px; height: 1080px; pointer-events: none; z-index: 40; }

/* ---------------- AVVIO ---------------- */
#avvio { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; background: radial-gradient(60% 60% at 50% 40%, rgba(200,16,46,0.25), transparent 70%), rgba(3,4,6,0.94); }
#avvio .box { text-align: center; padding: 40px; }
#avvio img { width: 90px; height: 90px; object-fit: contain; }
#avvio h1 { margin-top: 18px; font-size: clamp(48px, 9vw, 110px); line-height: 0.9; text-transform: uppercase; }
#avvio p { margin-top: 14px; color: rgba(255,255,255,0.7); font-size: 18px; line-height: 1.5; }
#avvio button { margin-top: 30px; padding: 20px 46px; border-radius: 999px; background: var(--pulsante-oro); color: #1A1407; font-weight: 800; font-size: 20px; letter-spacing: 0.08em; text-transform: uppercase; box-shadow: 0 14px 40px rgba(201,162,39,0.35); }
#avvio .secondario { display: block; margin: 16px auto 0; padding: 10px 18px; background: none; box-shadow: none; color: rgba(255,255,255,0.6); font-size: 14px; letter-spacing: 0.04em; text-transform: none; font-weight: 600; text-decoration: underline; }
#stato-conn { position: fixed; right: 14px; bottom: 12px; z-index: 90; font-size: 12px; color: rgba(255,255,255,0.35); font-family: var(--corpo); opacity: 0; transition: opacity 0.4s; }
body.mostra-info #stato-conn { opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  .fondo-raggi, .pacco, .pacco::after, .fascio, #sc-asta .alone, #estrazione .raggi-grandi { animation: none !important; }
}
