/* Tombola del Mago Max — stile condiviso (master, giocatore, stampa, hub) */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  /* tema NATALE (default): rosso, oro, verde su blu notte */
  --font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-display:var(--font);
  --rosso:#c81e1e;--rosso-scuro:#991b1b;--verde:#166534;--verde-chiaro:#dcfce7;
  --oro:#f5b301;--oro-chiaro:#fcd34d;--oro-scuro:#b45309;--oro-ink:#1f2937;--crema:#fff8e7;--ink:#1f2937;--muted:#6b7280;
  --bg:#0f172a;--panel:#111c33;--line:rgba(255,255,255,.12);--ok:#16a34a;--ok-scuro:#166534;
  --testo:#f8fafc;--testo-muted:#cbd5e1;--titolo:#f5b301;
  --top-a:#7f1d1d;--top-b:#991b1b;--top-c:#14532d;--top-line:#f5b301;
  --primary:#dc2626;--primary-scuro:#991b1b;
  --ultimo-a:#b91c1c;--ultimo-b:#7f1d1d;--ultimo-bordo:#f5b301;--smorfia:#fde68a;--conta:#fecaca;
  --board-cella:#1e293b;--board-testo:#94a3b8;
  --cella-bordo:#e5d9bf;--cella-vuota-a:#f3e8d0;--cella-vuota-b:#efe2c4;--segno:#c81e1e;--segno-scuro:#991b1b;
  --raggio:14px;--raggio-grande:24px;
}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:var(--bg);color:var(--testo);line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased}
a{color:inherit}
button{font:inherit;cursor:pointer}
input,select{font:inherit}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Barra alta */
.tb-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .9rem;background:linear-gradient(90deg,var(--top-a),var(--top-b) 45%,var(--top-c));border-bottom:2px solid var(--top-line);position:sticky;top:0;z-index:20;padding-top:calc(.6rem + env(safe-area-inset-top,0))}
.tb-top .brand{display:flex;align-items:center;gap:.5rem;font-weight:800;text-decoration:none;white-space:nowrap}
.tb-top .brand img{width:64px;height:64px;border-radius:0;background:transparent;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.35))}
@media (max-width:640px){.tb-top .brand img{width:52px;height:52px}}
.tb-top .codice{font-family:ui-monospace,Menlo,monospace;font-weight:800;letter-spacing:.08em;background:rgba(0,0,0,.35);padding:.25rem .6rem;border-radius:8px;border:1px solid var(--top-line)}
.tb-top .azioni{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end;min-width:0}
@media (max-width:640px){.tb-top{flex-wrap:wrap}.tb-top .azioni:has(> :nth-child(3)){flex:1 0 100%;justify-content:flex-start;gap:.3rem}.tb-top .azioni:has(> :nth-child(3)) .ico-btn{padding:.35rem .5rem;font-size:.82rem;min-height:34px}}
.ico-btn{background:rgba(255,255,255,.12);border:1px solid var(--line);color:#fff;border-radius:10px;padding:.45rem .7rem;font-weight:700;font-size:.9rem;min-height:40px}
.ico-btn[aria-pressed="true"]{background:var(--oro);color:var(--oro-ink);border-color:var(--oro)}
.ico-btn:disabled{opacity:.45;cursor:not-allowed}

/* Contenitori */
.wrap{max-width:1180px;margin:0 auto;padding:1rem}
.wrap-sm{max-width:560px;margin:0 auto;padding:1rem}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--raggio);padding:1rem}
.panel h2{font-size:1.05rem;text-transform:uppercase;letter-spacing:.06em;color:var(--titolo);margin-bottom:.6rem;font-family:var(--font-display)}
.muted{color:var(--testo-muted);font-size:.92rem}
.hidden{display:none!important}

/* Pulsanti */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:none;border-radius:var(--raggio);padding:.9rem 1.4rem;font-weight:800;font-size:1.05rem;text-decoration:none;min-height:48px;transition:transform .12s ease,box-shadow .12s ease}
.btn:active{transform:scale(.98)}
.btn-oro{background:linear-gradient(135deg,var(--oro),var(--oro-chiaro));color:var(--oro-ink);box-shadow:0 8px 24px rgba(0,0,0,.25)}
.btn-rosso{background:linear-gradient(135deg,var(--primary),var(--primary-scuro));color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.3)}
.btn-verde{background:linear-gradient(135deg,var(--ok),var(--ok-scuro));color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.btn-ghost{background:rgba(255,255,255,.08);color:var(--testo);border:1px solid var(--line)}
.btn-block{width:100%}
.btn-xl{font-size:1.5rem;padding:1.2rem 2rem;min-height:68px;border-radius:20px}
.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}

/* Form */
.campo{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.9rem}
.campo label{font-weight:700;font-size:.9rem;color:var(--testo)}
.campo input,.campo select{width:100%;padding:.85rem 1rem;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--testo);font-size:1.05rem;min-height:48px}
.campo input:focus,.campo select:focus{outline:2px solid var(--oro);outline-offset:1px;border-color:var(--oro)}
.campo input.codice{text-transform:uppercase;letter-spacing:.12em;font-family:ui-monospace,Menlo,monospace;font-weight:800;font-size:1.3rem;text-align:center}
.errore{background:#7f1d1d;border:1px solid #f87171;color:#fee2e2;padding:.7rem .9rem;border-radius:10px;margin:.6rem 0;font-weight:600}
.avviso{background:#14532d;border:1px solid #4ade80;color:#dcfce7;padding:.7rem .9rem;border-radius:10px;margin:.6rem 0;font-weight:600}

/* Numero estratto grande */
.ultimo{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(circle at 50% 30%,var(--ultimo-a),var(--ultimo-b) 70%);border:3px solid var(--ultimo-bordo);border-radius:var(--raggio-grande);color:#fff;padding:1rem;min-height:200px;box-shadow:0 12px 40px rgba(0,0,0,.4)}
.ultimo .num{font-family:var(--font-display);font-size:clamp(5rem,22vw,11rem);font-weight:900;line-height:1;letter-spacing:-.04em;text-shadow:0 6px 18px rgba(0,0,0,.45);font-variant-numeric:tabular-nums}
.ultimo .num.pop{animation:pop .5s cubic-bezier(.2,1.6,.4,1)}
.ultimo .num.vuoto{font-size:clamp(2.6rem,9vw,4.5rem);opacity:.55}
.ultimo .num.rullo{opacity:.8;text-shadow:none}
.dialetti{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin-top:.4rem}
.dialetti span{background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:.15rem .65rem;font-size:.9rem;color:var(--conta);font-style:italic}
.tombola-box{background:linear-gradient(160deg,#7f1d1d,#14532d)!important;color:#fff!important;border:3px solid #f5b301}
.tombola-box h3{font-size:clamp(2.4rem,8vw,4rem);color:#fde68a!important;letter-spacing:.04em;animation:pop .6s cubic-bezier(.2,1.6,.4,1)}
.tombola-box .em{font-size:4rem;line-height:1}
.tombola-box p{color:#fff!important;font-size:1.3rem;font-weight:700}
@keyframes pop{0%{transform:scale(.4);opacity:0}100%{transform:scale(1);opacity:1}}
.ultimo .smorfia{font-size:clamp(1rem,3.2vw,1.6rem);font-weight:700;color:var(--smorfia);margin-top:.3rem}
.ultimo .conta{font-size:.9rem;color:var(--conta);margin-top:.4rem}
.ultimi{display:flex;gap:.4rem;justify-content:center;flex-wrap:wrap;margin-top:.8rem}
.ultimi span{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:.2rem .6rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--testo)}

/* Tabellone 1-90 */
.tabellone{display:grid;grid-template-columns:repeat(10,1fr);gap:.3rem}
.tabellone .c{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--board-cella);border:1px solid var(--line);font-weight:800;font-size:clamp(.85rem,2.4vw,1.35rem);color:var(--board-testo);font-variant-numeric:tabular-nums;transition:background .2s,color .2s,transform .2s}
.tabellone .c.uscito{background:linear-gradient(135deg,var(--oro),var(--oro-chiaro));color:var(--oro-ink);border-color:var(--oro-chiaro)}
.tabellone .c.corrente{background:linear-gradient(135deg,var(--primary),var(--primary-scuro));color:#fff;border-color:#fff;transform:scale(1.08);box-shadow:0 0 0 3px rgba(255,255,255,.35)}
@media (min-width:900px){.tabellone{grid-template-columns:repeat(9,1fr)}}

/* Cartella (giocatore e stampa) */
.cartella{background:var(--crema);color:var(--ink);border-radius:var(--raggio);padding:.6rem;border:3px solid var(--rosso);box-shadow:0 10px 30px rgba(0,0,0,.35)}
.cartella .testa{display:flex;justify-content:space-between;align-items:center;font-weight:800;font-size:.9rem;color:var(--rosso-scuro);margin:0 .2rem .4rem}
.cartella .testa small{font-weight:600;color:var(--muted)}
.griglia{display:grid;grid-template-columns:repeat(9,1fr);gap:3px}
.griglia .cella{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:6px;background:#fff;border:1px solid var(--cella-bordo);font-weight:800;font-size:clamp(.95rem,3.4vw,1.5rem);font-variant-numeric:tabular-nums;position:relative;transition:background .25s,color .25s,transform .25s}
.griglia .cella.vuota{background:repeating-linear-gradient(135deg,var(--cella-vuota-a) 0 4px,var(--cella-vuota-b) 4px 8px);border-color:var(--cella-bordo)}
.griglia .cella.segnato{background:var(--segno);color:#fff;border-color:var(--segno-scuro);transform:scale(1.04)}
.griglia .cella.segnato::after{content:"";position:absolute;inset:18%;border-radius:50%;border:2px solid rgba(255,255,255,.55)}
.cartella .premi{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.5rem}
.cartella .premi span{font-size:.75rem;font-weight:800;padding:.2rem .5rem;border-radius:999px;background:#e5e7eb;color:#6b7280}
.cartella .premi span.fatto{background:var(--ok-scuro);color:#fff}
.cartella .premi span.top{background:var(--oro);color:var(--oro-ink)}

/* Liste */
.lista{list-style:none;display:flex;flex-direction:column;gap:.4rem}
.lista li{display:flex;justify-content:space-between;align-items:center;gap:.6rem;background:rgba(127,127,127,.08);border:1px solid var(--line);border-radius:10px;padding:.5rem .7rem;font-size:.95rem}
.lista .x{background:none;border:none;color:#fca5a5;font-weight:800;padding:.2rem .5rem;border-radius:6px}
.lista .pm{background:rgba(127,127,127,.12);border:1px solid var(--line);color:var(--titolo);font-weight:900;padding:.15rem .6rem;border-radius:6px;font-size:1rem;min-width:34px}
.lista .azioni-g{display:flex;gap:.3rem;flex-shrink:0}
.vincite{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem}
.vincite .v{background:rgba(127,127,127,.08);border:1px solid var(--line);border-radius:12px;padding:.6rem;text-align:center}
.vincite .v b{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--testo-muted)}
.vincite .v span{display:block;font-weight:800;font-size:1.05rem;margin-top:.2rem;color:var(--titolo);word-break:break-word}
.vincite .v.fatto{background:linear-gradient(135deg,var(--ok-scuro),var(--ok));border-color:#4ade80}
.vincite .v.fatto span{color:#fff}

/* Toast e overlay */
.toast{position:fixed;left:50%;top:14px;transform:translateX(-50%);background:linear-gradient(135deg,var(--oro),var(--oro-chiaro));color:var(--oro-ink);padding:.9rem 1.3rem;border-radius:14px;font-weight:800;font-size:1.05rem;z-index:99;box-shadow:0 12px 40px rgba(0,0,0,.45);max-width:92vw;text-align:center;animation:toastIn .35s ease}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,-14px)}to{opacity:1;transform:translate(-50%,0)}}
.overlay{position:fixed;inset:0;background:rgba(2,6,23,.86);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:90}
.overlay .box{background:#fff;color:var(--ink);border-radius:var(--raggio-grande);padding:1.5rem;max-width:440px;width:100%;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.overlay .box h3{font-size:1.4rem;margin-bottom:.5rem;color:var(--rosso-scuro)}
.overlay .box p{color:#374151;margin-bottom:1rem}
.overlay .box .btn{margin:.25rem 0}
.qr-box{background:#fff;padding:.75rem;border-radius:14px;display:inline-block}
.qr-box img,.qr-box canvas{display:block}

/* Festa (coriandoli CSS) */
.coriandoli{position:fixed;inset:0;pointer-events:none;z-index:80;overflow:hidden}
.coriandoli i{position:absolute;top:-12px;width:10px;height:16px;opacity:.95;animation:cade linear forwards}
@keyframes cade{to{transform:translateY(105vh) rotate(720deg);opacity:.6}}

/* Layout master */
.master-grid{display:grid;grid-template-columns:1fr;gap:1rem}
@media (min-width:900px){.master-grid{grid-template-columns:minmax(0,1fr) 1.4fr;align-items:start}.master-side{position:sticky;top:96px;min-width:0}}
.controlli{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-top:1rem;min-width:0}
.controlli .btn{min-width:0;padding-left:.5rem;padding-right:.5rem;white-space:normal}
.tasti{font-size:.78rem;color:var(--testo-muted);margin:.55rem 0 0;text-align:center;line-height:1.7}
.tasti kbd{font-family:ui-monospace,Menlo,monospace;background:rgba(127,127,127,.18);border:1px solid var(--line);border-radius:5px;padding:0 .4em;font-size:.92em;color:var(--testo)}
@media (hover:none) and (pointer:coarse){.tasti{display:none}}
.controlli select{max-width:100%}
.controlli .btn-xl{grid-column:1/-1}
@media (min-width:600px){.controlli{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:900px) and (max-width:1699px){.controlli{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fs body{background:#000}
body.tv .tb-top{padding:.35rem .9rem}
body.tv .ultimo .num{font-size:clamp(7rem,26vw,16rem)}

/* Hub */
.hub-grid{display:grid;gap:1rem;grid-template-columns:1fr}
@media (min-width:720px){.hub-grid{grid-template-columns:repeat(3,1fr)}}
.hub-card{display:block;text-decoration:none;background:var(--panel);border:1px solid var(--line);border-radius:var(--raggio);padding:1.3rem;transition:transform .15s,border-color .15s}
.hub-card:hover{transform:translateY(-3px);border-color:var(--oro)}
.hub-card .em{font-size:2.6rem;line-height:1}
.hub-card h2{font-size:1.25rem;margin:.6rem 0 .3rem;color:var(--testo)}
.hub-card p{color:var(--testo-muted);font-size:.95rem}
.passi{counter-reset:p;list-style:none;display:flex;flex-direction:column;gap:.7rem}
.passi li{position:relative;padding-left:2.6rem;color:var(--testo)}
.passi li::before{counter-increment:p;content:counter(p);position:absolute;left:0;top:0;width:1.9rem;height:1.9rem;border-radius:50%;background:var(--oro);color:var(--oro-ink);font-weight:900;display:flex;align-items:center;justify-content:center}
.passi li strong{color:var(--testo)}

/* Stampa */
.stampa-form{display:grid;grid-template-columns:1fr;gap:.6rem 1rem}
@media (min-width:700px){.stampa-form{grid-template-columns:1fr 1fr}}
.foglio{background:#fff;color:var(--ink);margin:1rem auto;padding:8mm;max-width:210mm;box-shadow:0 10px 40px rgba(0,0,0,.4);border-radius:6px}
.foglio .cartella{box-shadow:none;margin-bottom:6mm;break-inside:avoid;page-break-inside:avoid}
.foglio .griglia .cella{font-size:14pt;aspect-ratio:auto;height:11mm}
.foglio.grandi .griglia .cella{height:17mm;font-size:22pt}
.foglio .tab-stampa{display:grid;grid-template-columns:repeat(10,1fr);gap:2mm}
.foglio .tab-stampa div{height:16mm;display:flex;align-items:center;justify-content:center;border:1px solid #9ca3af;border-radius:6px;font-weight:800;font-size:16pt}
.foglio .piede{text-align:center;font-size:9pt;color:#6b7280;margin-top:2mm}
.foglio-due{display:grid;grid-template-columns:1fr 1fr;gap:6mm}
@media print{
  @page{size:A4;margin:10mm}
  body{background:#fff;color:#000}
  .no-print,.tb-top{display:none!important}
  .foglio{box-shadow:none;margin:0;padding:0;max-width:none;border-radius:0;page-break-after:always;break-after:page}
  .foglio:last-child{page-break-after:auto}
  .cartella{border-width:2pt;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .griglia .cella.vuota{background:#e5e7eb!important}
}

/* v2 (02/09/2026): dal confronto con le pagine GHL 2025 */
.griglia .cella.da-segnare{background:linear-gradient(135deg,var(--oro),var(--oro-chiaro));color:var(--oro-ink);border-color:var(--oro-scuro);cursor:pointer;animation:lampeggia .75s ease infinite;box-shadow:0 0 0 2px rgba(245,179,1,.35)}
@keyframes lampeggia{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.85}}
.griglia .cella.errore{background:#dc2626!important;color:#fff!important;animation:scuoti .4s ease}
@keyframes scuoti{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px) rotate(-4deg)}75%{transform:translateX(5px) rotate(4deg)}}
.vincite .v.mio{background:linear-gradient(135deg,#b45309,#f5b301)!important;border-color:#fde68a!important}
.vincite .v.mio span{color:#1f2937!important}
.cta-fine h2{color:var(--titolo)}
.piede-cartella{text-align:center;font-size:.72rem;color:#6b7280;margin-top:.35rem;font-weight:600}
.foglio.orizz{max-width:297mm}
.foglio-quattro{display:grid;grid-template-columns:1fr 1fr;gap:6mm}
.foglio.orizz .griglia .cella{height:16mm;font-size:20pt}
.foglio .cartella .testa span{display:flex;align-items:center}
@media print{.foglio.orizz{width:277mm}.foglio-quattro .cartella{break-inside:avoid}}

/* ================= TEMI (data-tema su <html>) ================= */
/* CLASSICO: panno verde, legno e oro, come la tombola di una volta */
html[data-tema="classico"]{
  --font-display:Georgia,"Times New Roman",serif;
  --bg:#12261a;--panel:#1a3324;--line:rgba(255,255,255,.14);
  --testo:#f7f3e8;--testo-muted:#cfd8cf;--titolo:#d4af37;
  --top-a:#3b2a14;--top-b:#5a3d1c;--top-c:#2c1a0a;--top-line:#d4af37;
  --oro:#d4af37;--oro-chiaro:#f1d27a;--oro-scuro:#8a6d1f;--oro-ink:#2b1d0e;
  --primary:#8b1e1e;--primary-scuro:#5c1212;--rosso:#6b4b1e;--rosso-scuro:#4a3313;
  --ok:#2e7d32;--ok-scuro:#1b5e20;
  --ultimo-a:#8b1e1e;--ultimo-b:#4a0f0f;--ultimo-bordo:#d4af37;--smorfia:#f1d27a;--conta:#e8d5b5;
  --board-cella:#1f3a2c;--board-testo:#a3b9aa;
  --crema:#fdf6e3;--cella-bordo:#d9c9a3;--cella-vuota-a:#efe3c6;--cella-vuota-b:#e6d7b2;--segno:#8b1e1e;--segno-scuro:#5c1212;
  --raggio:10px;--raggio-grande:16px;
}
html[data-tema="classico"] .tabellone .c.uscito{background:linear-gradient(135deg,#f1d27a,#d4af37);color:#2b1d0e}
html[data-tema="classico"] .tb-top .brand{font-family:var(--font-display);letter-spacing:.02em}

/* CARTOON: chiaro, colori accesi, bordi tondi, per i bambini */
html[data-tema="cartoon"]{
  --font:"Chalkboard SE","Comic Sans MS","Baloo 2","Trebuchet MS",system-ui,sans-serif;--font-display:var(--font);
  --bg:#e0f2fe;--panel:#ffffff;--line:rgba(30,41,59,.12);
  --testo:#1e293b;--testo-muted:#475569;--titolo:#7c3aed;
  --top-a:#f97316;--top-b:#ec4899;--top-c:#8b5cf6;--top-line:#facc15;
  --oro:#facc15;--oro-chiaro:#fde68a;--oro-scuro:#ca8a04;--oro-ink:#1e293b;
  --primary:#f43f5e;--primary-scuro:#be123c;--rosso:#8b5cf6;--rosso-scuro:#6d28d9;
  --ok:#22c55e;--ok-scuro:#15803d;
  --ultimo-a:#fb923c;--ultimo-b:#f43f5e;--ultimo-bordo:#facc15;--smorfia:#fff7ed;--conta:#ffe4e6;
  --board-cella:#ffffff;--board-testo:#0369a1;
  --crema:#ffffff;--cella-bordo:#ddd6fe;--cella-vuota-a:#ede9fe;--cella-vuota-b:#e0e7ff;--segno:#22c55e;--segno-scuro:#15803d;
  --raggio:22px;--raggio-grande:32px;
}
html[data-tema="cartoon"] body{background:var(--bg) radial-gradient(circle at 10% 10%,#fde68a55 0 60px,transparent 61px),radial-gradient(circle at 90% 30%,#f9a8d455 0 80px,transparent 81px),radial-gradient(circle at 30% 90%,#a5f3fc55 0 70px,transparent 71px)}
html[data-tema="cartoon"] .tb-top{color:#fff}
html[data-tema="cartoon"] .tb-top .brand,html[data-tema="cartoon"] .tb-top .muted,html[data-tema="cartoon"] .tb-top .codice{color:#fff}
html[data-tema="cartoon"] .panel,html[data-tema="cartoon"] .hub-card{border:3px solid #c4b5fd;box-shadow:0 8px 0 #c4b5fd}
html[data-tema="cartoon"] .tabellone .c{border:2px solid #bae6fd;font-weight:900}
html[data-tema="cartoon"] .btn-ghost{background:#fff;border:3px solid #c4b5fd;color:#1e293b;box-shadow:0 4px 0 #c4b5fd}
html[data-tema="cartoon"] .ico-btn{background:rgba(255,255,255,.22);border:2px solid rgba(255,255,255,.6)}
html[data-tema="cartoon"] main .ico-btn{background:#f5f3ff;border:2px solid #c4b5fd;color:#1e293b;box-shadow:0 3px 0 #c4b5fd}
html[data-tema="cartoon"] main .ico-btn[aria-pressed="true"]{background:var(--oro);color:var(--oro-ink);border-color:var(--oro-scuro);box-shadow:0 3px 0 var(--oro-scuro)}
html[data-tema="cartoon"] .lista .x{color:#e11d48}
html[data-tema="cartoon"] .lista li{background:#f8fafc;border-color:#e2e8f0}
html[data-tema="cartoon"] .ultimi span{background:#fff;border:2px solid #f9a8d4;color:#be123c}
html[data-tema="cartoon"] .cartella{border-width:4px;box-shadow:0 8px 0 #c4b5fd}
html[data-tema="cartoon"] .campo input,html[data-tema="cartoon"] .campo select{border:3px solid #c4b5fd;background:#fff}
html[data-tema="cartoon"] .avviso{background:#dcfce7;border-color:#22c55e;color:#14532d}
html[data-tema="cartoon"] .errore{background:#ffe4e6;border-color:#f43f5e;color:#9f1239}
html[data-tema="cartoon"] .dialetti span{background:#fff;color:#be123c;border-color:#f9a8d4}
html[data-tema="cartoon"] .ultimo .num{text-shadow:0 6px 0 #be123c,0 10px 20px rgba(0,0,0,.25)}

/* Smorfia animata: l'emoji entra con un movimento diverso per numero (T.SCENE nel core) */
.ultimo .smorfia .emo{display:inline-block;font-size:1.7em;line-height:1;vertical-align:-.18em;transform-origin:50% 40%;margin-right:.1em}
.ultimo .smorfia .emo.anim{animation:mDondola 2.4s ease-in-out}
.ultimo .smorfia .emo.anim.m-dondola{animation:mDondola 2.4s ease-in-out}
@keyframes mDondola{0%{transform:scale(.2) rotate(-30deg);opacity:0}18%{transform:scale(1.3) rotate(14deg);opacity:1}35%{transform:scale(1) rotate(-12deg)}55%{transform:rotate(9deg)}75%{transform:rotate(-5deg)}100%{transform:rotate(0)}}
.ultimo .smorfia .emo.anim.m-salta{animation:mSalta 1.5s cubic-bezier(.3,1.4,.5,1)}
@keyframes mSalta{0%{transform:translateY(-70px) scale(.6);opacity:0}30%{transform:translateY(0) scale(1.35,.65);opacity:1}45%{transform:translateY(-24px) scale(.85,1.2)}60%{transform:translateY(0) scale(1.15,.85)}75%{transform:translateY(-8px) scale(.95,1.05)}100%{transform:none}}
.ultimo .smorfia .emo.anim.m-gira{animation:mGira 1.3s ease-out}
@keyframes mGira{0%{transform:rotate(0) scale(.2);opacity:0}100%{transform:rotate(720deg) scale(1);opacity:1}}
.ultimo .smorfia .emo.anim.m-trema{animation:mTrema 1.4s ease-out}
@keyframes mTrema{0%{transform:scale(.5);opacity:0}20%{transform:scale(1.2);opacity:1}30%,50%,70%,90%{transform:translateX(-6px) rotate(-7deg)}40%,60%,80%{transform:translateX(6px) rotate(7deg)}100%{transform:none}}
.ultimo .smorfia .emo.anim.m-batte{animation:mBatte 1.6s ease-in-out}
@keyframes mBatte{0%{transform:scale(.4);opacity:0}20%{transform:scale(1.25);opacity:1}35%{transform:scale(1)}50%{transform:scale(1.25)}65%{transform:scale(1)}80%{transform:scale(1.2)}100%{transform:scale(1)}}
.ultimo .smorfia .emo.anim.m-ruota{animation:mRuota 1.4s ease-out}
@keyframes mRuota{0%{transform:perspective(200px) rotateY(0) scale(.5);opacity:0}100%{transform:perspective(200px) rotateY(720deg) scale(1);opacity:1}}
.ultimo .smorfia .emo.anim.m-galleggia{animation:mGalleggia 2.2s ease-in-out}
@keyframes mGalleggia{0%{transform:translateY(30px) scale(.6);opacity:0}30%{transform:translateY(-10px) scale(1.1);opacity:1}55%{transform:translateY(4px)}80%{transform:translateY(-5px)}100%{transform:none}}
.ultimo .smorfia .emo.anim.m-rimbalza{animation:mRimbalza 1.6s ease-out}
@keyframes mRimbalza{0%{transform:translateX(-80px) translateY(-40px) scale(.7);opacity:0}25%{transform:translateX(-40px) translateY(0) scale(1.1,.9);opacity:1}45%{transform:translateX(0) translateY(-30px) scale(.95,1.05)}65%{transform:translateX(20px) translateY(0) scale(1.1,.9)}85%{transform:translateX(0) translateY(-10px)}100%{transform:none}}
.ultimo .smorfia .emo.anim.m-capriola{animation:mCapriola 1.4s cubic-bezier(.3,1.3,.5,1)}
@keyframes mCapriola{0%{transform:translateX(-70px) rotate(-360deg) scale(.5);opacity:0}70%{transform:translateX(10px) rotate(10deg) scale(1.1);opacity:1}100%{transform:none}}
.ultimo .smorfia .emo.anim.m-ondeggia{animation:mOndeggia 2s ease-in-out}
@keyframes mOndeggia{0%{transform:scale(.4);opacity:0}20%{transform:scale(1.15) rotate(0);opacity:1}35%{transform:rotate(-14deg)}50%{transform:rotate(14deg)}65%{transform:rotate(-10deg)}80%{transform:rotate(8deg)}100%{transform:rotate(0)}}
body.tv .ultimo .smorfia .emo{font-size:2.1em}
.ultimo{transition:transform .8s cubic-bezier(.3,1.3,.5,1)}
.ultimo.capovolto{transform:rotate(180deg)}
body.scossa{animation:scuoti .12s linear 5}

/* Effetti a tutto schermo (uno per numero) */
.fx{position:fixed;inset:0;pointer-events:none;z-index:78;overflow:hidden}
.fx span{position:absolute;line-height:1;will-change:transform}
.fx-pioggia span{top:-3rem;animation:fxCade linear forwards}
@keyframes fxCade{to{transform:translateY(118vh) rotate(300deg)}}
.fx-sale span{bottom:-3rem;animation:fxSale ease-out forwards}
@keyframes fxSale{0%{transform:translateY(0) translateX(0)}50%{transform:translateY(-60vh) translateX(3vw)}100%{transform:translateY(-125vh) translateX(-3vw);opacity:.8}}
.fx-esplosione{inset:auto;width:0;height:0;overflow:visible}
.fx-esplosione span{left:0;top:0;transform:translate(-50%,-50%);animation:fxEsplode 1.6s cubic-bezier(.1,.8,.3,1) forwards;opacity:0}
@keyframes fxEsplode{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}15%{opacity:1}100%{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1.2) rotate(var(--rot));opacity:0}}
.fx-orbita{inset:auto;width:0;height:0;overflow:visible;animation:fxOrbita 2.8s linear forwards}
.fx-orbita span{left:0;top:0;font-size:2.2rem;transform:rotate(var(--ang)) translateX(var(--r)) translate(-50%,-50%)}
@keyframes fxOrbita{0%{transform:rotate(0);opacity:0}12%{opacity:1}85%{opacity:1}100%{transform:rotate(360deg);opacity:0}}
.fx-zoom{inset:auto;transform:translate(-50%,-50%);font-size:clamp(5rem,20vw,12rem);line-height:1;white-space:nowrap;overflow:visible;animation:fxZoom 1.9s ease-out forwards;filter:drop-shadow(0 10px 20px rgba(0,0,0,.4))}
@keyframes fxZoom{0%{transform:translate(-50%,-50%) scale(.2);opacity:0}30%{transform:translate(-50%,-50%) scale(1.1);opacity:1}70%{opacity:1}100%{transform:translate(-50%,-50%) scale(1.6);opacity:0}}
.fx-lampo{z-index:77;animation:fxLampo .8s ease-out forwards}
@keyframes fxLampo{0%{opacity:0}15%{opacity:.85}100%{opacity:0}}
.fx-sbircia{inset:auto;font-size:clamp(4rem,16vw,9rem);line-height:1;white-space:nowrap;filter:drop-shadow(0 8px 14px rgba(0,0,0,.4));animation:fxSbirciaD 3.4s ease-in-out forwards}
.fx-sbircia.lato-destra{right:0;top:38vh;animation-name:fxSbirciaD}
@keyframes fxSbirciaD{0%{transform:translateX(110%)}30%,70%{transform:translateX(8%)}100%{transform:translateX(110%)}}
.fx-sbircia.lato-sinistra{left:0;top:38vh;animation-name:fxSbirciaS}
@keyframes fxSbirciaS{0%{transform:translateX(-110%)}30%,70%{transform:translateX(-8%)}100%{transform:translateX(-110%)}}
.fx-sbircia.lato-basso{left:50%;bottom:0;animation-name:fxSbirciaB}
@keyframes fxSbirciaB{0%{transform:translate(-50%,110%)}30%,70%{transform:translate(-50%,12%)}100%{transform:translate(-50%,110%)}}
.fx-sbircia.lato-alto{left:50%;top:0;animation-name:fxSbirciaA}
@keyframes fxSbirciaA{0%{transform:translate(-50%,-110%)}30%,70%{transform:translate(-50%,-12%)}100%{transform:translate(-50%,-110%)}}

/* Sorvoli e sfilate (Babbo Natale con le renne, colombe, pinguini che camminano…) */
.volo{position:fixed;left:100%;top:8vh;z-index:79;pointer-events:none;font-size:clamp(2.2rem,7vw,4.5rem);white-space:nowrap;line-height:1;filter:drop-shadow(0 8px 12px rgba(0,0,0,.35));animation:vola var(--durata,10s) linear forwards;will-change:transform}
.volo.indietro{left:auto;right:100%;animation-name:volaIndietro}
.volo .ondeggia{display:inline-block;animation:ondeggia 1.7s ease-in-out infinite}
.volo.cammina .ondeggia{animation:passo .45s ease-in-out infinite}
.volo .s{display:inline-block}
.volo.indietro .s{transform:scaleX(-1)}
.volo.indietro .s.fisso{transform:none}
.volo .logo-volante{height:1.9em;width:1.9em;vertical-align:middle;object-fit:contain;filter:drop-shadow(0 6px 10px rgba(0,0,0,.35))}
@keyframes vola{to{transform:translateX(calc(-100vw - 100%))}}
@keyframes volaIndietro{to{transform:translateX(calc(100vw + 100%))}}
@keyframes ondeggia{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-1.6vh) rotate(2deg)}}
@keyframes passo{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-.35em) rotate(5deg)}}
body.tv .volo{font-size:clamp(3rem,9vw,7rem)}
@media (prefers-reduced-motion:reduce){.volo,.fx,.fx span,.ultimo .smorfia .emo.anim,.ultimo .num.pop,body.scossa{animation:none}}
