:root{
  --bg1:#1a0b2e; --bg2:#2d1b4e; --accent:#ff3d5a; --accent2:#ffd166;
  --text:#ffffff; --card:rgba(255,255,255,.07); --card-border:rgba(255,255,255,.12);
  --good:#2ee66b; --bad:#ff3d5a; --radius:18px;
  --app-font:'Fredoka',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  font-family:'Fredoka',system-ui,sans-serif;color:#fff;
  background:linear-gradient(135deg,var(--bg1),var(--bg2));
  min-height:100vh;overflow-x:hidden;
}
#confetti{position:fixed;inset:0;pointer-events:none;z-index:999}
button{font-family:inherit;cursor:pointer;border:none}
input,select{font-family:inherit}
.hidden{display:none!important}

/* ---------- generic ---------- */
.wrap{max-width:520px;margin:0 auto;padding:24px 18px 60px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--accent);color:#fff;font-weight:600;font-size:1.05rem;
  padding:14px 26px;border-radius:999px;box-shadow:0 6px 20px rgba(255,61,90,.35);
  transition:transform .12s,box-shadow .12s;text-decoration:none
}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(255,61,90,.45)}
.btn:active{transform:scale(.96)}
.btn.secondary{background:var(--card);box-shadow:none;border:1px solid var(--card-border)}
.btn.ghost{background:transparent;box-shadow:none;border:1px solid var(--card-border)}
.btn.good{background:var(--good);box-shadow:0 6px 20px rgba(46,230,107,.35)}
.btn.small{padding:8px 16px;font-size:.9rem}
.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}
.card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:18px;backdrop-filter:blur(6px)}
.field{margin-bottom:14px}
.field label{display:block;font-size:.85rem;opacity:.75;margin-bottom:6px;font-weight:600;letter-spacing:.3px}
.field input,.field select,.field textarea{
  width:100%;padding:13px 15px;border-radius:12px;border:1px solid var(--card-border);
  background:rgba(0,0,0,.28);color:#fff;font-size:1.05rem;outline:none
}
.field input:focus,.field textarea:focus{border-color:var(--accent)}
h1.logo{font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(2.6rem,8vw,4.2rem);letter-spacing:0;text-align:center;
  background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent}
.tagline{text-align:center;opacity:.8;margin:6px 0 26px;font-size:1.05rem}
.row{display:flex;gap:10px;flex-wrap:wrap}
.row>*{flex:1}
.tabs{display:flex;gap:6px;margin:0 0 16px;background:rgba(0,0,0,.25);padding:6px;border-radius:14px}
.tabs button{flex:1;padding:10px;border-radius:10px;background:transparent;color:#fff;font-weight:600;opacity:.65}
.tabs button.active{background:var(--accent);opacity:1}
.code-input{font-size:1.8rem!important;text-align:center;letter-spacing:8px;text-transform:uppercase;font-weight:700}
.muted{opacity:.65;font-size:.9rem}
.divider{height:1px;background:var(--card-border);margin:20px 0}
.badge{display:inline-block;padding:3px 12px;border-radius:999px;background:var(--card);border:1px solid var(--card-border);font-size:.8rem;font-weight:600}

/* ---------- avatar / color / sound pickers ---------- */
.avatar-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;max-height:190px;overflow-y:auto;padding:4px}
.avatar-grid button{font-size:1.55rem;padding:7px 0;border-radius:12px;background:rgba(0,0,0,.25);border:2px solid transparent;transition:transform .1s}
.avatar-grid button.sel{border-color:var(--accent2);background:rgba(255,209,102,.15);transform:scale(1.08)}
.color-grid{display:flex;flex-wrap:wrap;gap:10px}
.color-grid button{width:36px;height:36px;border-radius:50%;border:3px solid transparent;transition:transform .1s}
.color-grid button.sel{border-color:#fff;transform:scale(1.15)}
.sound-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sound-list button{padding:11px;border-radius:12px;background:rgba(0,0,0,.25);border:2px solid transparent;color:#fff;font-weight:600}
.sound-list button.sel{border-color:var(--accent2);background:rgba(255,209,102,.12)}

/* ---------- player buzzer ---------- */
.player-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.player-id{display:flex;align-items:center;gap:10px}
.player-id .av{font-size:2rem}
.buzzer-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:52vh;padding:20px 0}
.big-buzzer{
  width:min(72vw,300px);height:min(72vw,300px);border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#ff7d92,var(--accent) 55%,#c21737);
  border:10px solid rgba(0,0,0,.35);
  box-shadow:0 18px 0 #8f0f28,0 24px 44px rgba(0,0,0,.5),inset 0 -12px 30px rgba(0,0,0,.3);
  color:#fff;font-size:1.7rem;font-weight:700;letter-spacing:1px;
  transition:transform .06s,box-shadow .06s;user-select:none;touch-action:manipulation
}
.big-buzzer:active{transform:translateY(14px);box-shadow:0 4px 0 #8f0f28,0 8px 20px rgba(0,0,0,.5)}
.big-buzzer.locked{filter:grayscale(.85) brightness(.6);box-shadow:0 10px 0 #333,0 14px 30px rgba(0,0,0,.5)}
.big-buzzer.won{background:radial-gradient(circle at 35% 30%,#8fffb0,var(--good) 55%,#0f9e44);box-shadow:0 18px 0 #0a6e30,0 24px 44px rgba(0,0,0,.5)}
.big-buzzer.lost{background:radial-gradient(circle at 35% 30%,#aaa,#666 55%,#333);box-shadow:0 18px 0 #222,0 24px 44px rgba(0,0,0,.5)}
.buzz-status{text-align:center;font-size:1.25rem;font-weight:600;min-height:2.2em;margin-top:26px}
.buzz-status .rank{font-size:2.2rem}
.reactions-bar{display:flex;justify-content:center;gap:10px;margin-top:14px}
.reactions-bar button{font-size:1.7rem;background:var(--card);border:1px solid var(--card-border);border-radius:14px;padding:8px 12px;transition:transform .1s}
.reactions-bar button:active{transform:scale(1.35)}
.queue-chip{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:12px;background:var(--card);border:1px solid var(--card-border);margin:5px 0}

/* ---------- host ---------- */
.host-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.host-code{font-family:'Bangers',cursive;font-size:2.6rem;letter-spacing:6px;color:var(--accent2)}
.player-list{display:flex;flex-direction:column;gap:8px}
.player-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:var(--card);border:1px solid var(--card-border)}
.player-row .av{font-size:1.5rem}
.player-row .nm{flex:1;font-weight:600}
.player-row .score{font-weight:700;font-size:1.1rem;color:var(--accent2);min-width:44px;text-align:right}
.player-row .mini{padding:5px 10px;border-radius:9px;font-size:.8rem;font-weight:700;background:rgba(0,0,0,.3);color:#fff}
.player-row.answering{border-color:var(--accent2);box-shadow:0 0 0 2px var(--accent2) inset}
.dot{width:10px;height:10px;border-radius:50%;background:var(--good)}
.dot.off{background:#777}
.answer-panel{text-align:center;padding:22px}
.answer-panel .who{font-size:2.2rem;font-weight:700}
.controls-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.controls-grid .btn{border-radius:14px}
.lb-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:12px;background:var(--card);border:1px solid var(--card-border);margin-bottom:6px}
.lb-row .pos{width:30px;font-weight:700;opacity:.7}
.lb-row .pts{margin-left:auto;font-weight:700;color:var(--accent2)}

/* ---------- projector ---------- */
#projector{
  position:fixed;inset:0;overflow:hidden;
  background:linear-gradient(135deg,var(--pbg1,#1a0b2e),var(--pbg2,#2d1b4e));
  color:var(--ptext,#fff);font-family:var(--pfont,'Fredoka',sans-serif);
  display:flex;flex-direction:column;
}
#projector .bgimg{position:absolute;inset:0;background-size:cover;background-position:center;pointer-events:none}
.pj-top{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;position:relative;z-index:2}
.pj-title{font-family:var(--pfont,'Fredoka'),sans-serif;font-weight:700;font-size:var(--pj-title-size,2.6rem);letter-spacing:1px;
  background:linear-gradient(90deg,var(--paccent,#ff3d5a),var(--paccent2,#ffd166));-webkit-background-clip:text;background-clip:text;color:transparent}
.pj-codebox{text-align:center;background:rgba(0,0,0,.35);border:2px solid var(--paccent,#ff3d5a);border-radius:18px;padding:10px 22px}
.pj-codebox .lbl{font-size:.85rem;opacity:.75;letter-spacing:2px;font-weight:700}
.pj-codebox .code{font-family:var(--ptitlefont,'Bangers'),cursive;font-size:var(--pj-code-size,2.4rem);letter-spacing:8px;color:var(--paccent2,#ffd166)}
.pj-banner{text-align:center;font-size:var(--pj-banner-size,1.3rem);opacity:.9;padding:2px 20px;position:relative;z-index:2}
.pj-main{flex:1;display:flex;align-items:center;justify-content:center;position:relative;z-index:2;padding:10px 30px;gap:40px}
.pj-lobby{display:flex;align-items:center;gap:60px;flex-wrap:wrap;justify-content:center}
.pj-qr{background:#fff;padding:18px;border-radius:22px;box-shadow:0 14px 44px rgba(0,0,0,.4)}
.pj-joined{display:flex;flex-wrap:wrap;gap:14px;max-width:640px;justify-content:center}
.pj-chip{display:flex;flex-direction:column;align-items:center;gap:4px;width:92px;animation:pop .3s}
.pj-chip .a{font-size:2.6rem;width:74px;height:74px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:4px solid}
.pj-chip .n{font-size:.85rem;font-weight:600;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@keyframes pop{from{transform:scale(.3);opacity:0}}
.pj-question{max-width:1000px;text-align:center}
.pj-question .q{font-size:var(--pj-q-size,3rem);font-weight:700;line-height:1.25}
.pj-choices{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:34px}
.pj-choice{padding:20px 24px;border-radius:18px;font-size:var(--pj-c-size,1.6rem);font-weight:700;background:rgba(0,0,0,.3);border:3px solid var(--paccent,#ff3d5a)}
.pj-choice:nth-child(2){border-color:var(--paccent2,#ffd166)}
.pj-choice:nth-child(3){border-color:#4cc9f0}
.pj-choice:nth-child(4){border-color:#2ee66b}
.pj-timer{position:absolute;top:110px;right:36px;font-size:3.4rem;font-weight:900;color:var(--paccent2,#ffd166);z-index:3;font-variant-numeric:tabular-nums}
.pj-winner-full{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:5;
  background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--paccent,#ff3d5a) 45%,transparent),rgba(0,0,0,.75));animation:winIn .35s}
@keyframes winIn{from{transform:scale(1.3);opacity:0}}
.pj-winner-full .av{font-size:9rem;animation:bounce 1s infinite}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-24px)}}
.pj-winner-full .nm{font-size:var(--pj-winner-size,4.4rem);font-weight:900;margin-top:8px}
.pj-winner-full .ms{font-size:1.8rem;opacity:.85;margin-top:6px}
.pj-winner-card{background:rgba(0,0,0,.55);border:3px solid var(--paccent2,#ffd166);border-radius:26px;padding:36px 60px;text-align:center;animation:pop .3s}
.pj-winner-card .av{font-size:5.5rem}
.pj-winner-card .nm{font-size:3rem;font-weight:900}
.pj-winner-banner{position:absolute;top:0;left:0;right:0;z-index:5;text-align:center;padding:22px;font-size:2.6rem;font-weight:900;
  background:linear-gradient(90deg,var(--paccent,#ff3d5a),var(--paccent2,#ffd166));color:#1a0b2e;animation:slideDown .35s}
@keyframes slideDown{from{transform:translateY(-100%)}}
.pj-queue{position:absolute;left:28px;bottom:24px;display:flex;flex-direction:column;gap:8px;z-index:4}
.pj-queue .it{display:flex;align-items:center;gap:10px;background:rgba(0,0,0,.45);border-radius:999px;padding:8px 18px;font-weight:700;animation:pop .25s}
.pj-leaderboard{position:absolute;right:28px;top:50%;transform:translateY(-50%);width:280px;background:rgba(0,0,0,.4);border-radius:20px;padding:16px;z-index:4;max-height:70vh;overflow:hidden}
.pj-leaderboard h3{font-size:1.05rem;letter-spacing:2px;opacity:.75;margin-bottom:10px;text-align:center}
.pj-lb-row{display:flex;align-items:center;gap:8px;padding:6px 4px;font-weight:600}
.pj-lb-row .pts{margin-left:auto;color:var(--paccent2,#ffd166);font-weight:900}
.pj-float-reaction{position:fixed;bottom:-60px;font-size:3rem;z-index:6;animation:floatUp 4s forwards}
@keyframes floatUp{to{transform:translateY(-110vh) rotate(20deg);opacity:0}}
.pj-gear{position:absolute;bottom:18px;right:18px;z-index:10;font-size:1.4rem;background:rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.2);
  width:52px;height:52px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center}
.pj-fs{position:absolute;bottom:18px;left:18px;z-index:10;font-size:1.2rem;background:rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.2);
  width:52px;height:52px;border-radius:50%;color:#fff}
.pj-standings{width:min(640px,92vw)}
.pj-standings .row-s{display:flex;align-items:center;gap:16px;padding:14px 22px;border-radius:18px;background:rgba(0,0,0,.35);margin-bottom:10px;font-size:1.5rem;font-weight:700}
.pj-standings .row-s.first{background:linear-gradient(90deg,rgba(255,209,102,.35),rgba(0,0,0,.35));border:2px solid var(--paccent2,#ffd166)}

/* ---------- settings drawer ---------- */
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(400px,94vw);background:#150a26;border-left:1px solid rgba(255,255,255,.15);
  z-index:100;padding:20px;overflow-y:auto;transform:translateX(100%);transition:transform .25s;box-shadow:-20px 0 60px rgba(0,0,0,.5)}
.drawer.open{transform:translateX(0)}
.drawer h2{font-size:1.3rem;margin-bottom:14px}
.drawer .sec{margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.1)}
.drawer .sec h3{font-size:.85rem;letter-spacing:1.5px;opacity:.6;margin-bottom:10px;text-transform:uppercase}
.swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.swatches button{height:44px;border-radius:12px;border:3px solid transparent}
.swatches button.sel{border-color:#fff}
.colorline{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.colorline label{flex:1;font-size:.9rem;opacity:.85}
.colorline input[type=color]{width:46px;height:32px;border:none;border-radius:8px;background:none;padding:0}
.checkline{display:flex;align-items:center;gap:10px;padding:7px 0;font-size:.95rem}
.checkline input{width:20px;height:20px;accent-color:var(--accent)}
.seg{display:flex;gap:6px;background:rgba(0,0,0,.3);padding:5px;border-radius:12px}
.seg button{flex:1;padding:8px;border-radius:9px;background:transparent;color:#fff;font-weight:600;font-size:.85rem;opacity:.6}
.seg button.active{background:var(--accent);opacity:1}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:99}

/* ---------- gameover ---------- */
.podium{display:flex;align-items:flex-end;justify-content:center;gap:14px;margin:30px 0}
.podium .col{display:flex;flex-direction:column;align-items:center;gap:8px}
.podium .block{width:110px;border-radius:14px 14px 0 0;display:flex;align-items:flex-start;justify-content:center;padding-top:10px;font-size:1.6rem;font-weight:900;
  background:linear-gradient(180deg,var(--accent2),#b8860b)}
.award{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:14px;background:var(--card);border:1px solid var(--card-border);margin-bottom:8px}
.award .em{font-size:1.8rem}
.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#000;border:1px solid var(--card-border);
  padding:12px 22px;border-radius:999px;z-index:200;font-weight:600;animation:pop .25s}
.header-mini{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.header-mini .lg{font-family:'Fredoka',sans-serif;font-weight:700;font-size:1.6rem;letter-spacing:2px;color:var(--accent2)}

/* ---------- v2: MCQ, immagini, scaletta ---------- */
.mcq-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
.mcq-btn{min-height:120px;border-radius:20px;color:#fff;font-size:1.15rem;font-weight:700;padding:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;box-shadow:0 8px 0 rgba(0,0,0,.35);transition:transform .08s}
.mcq-btn:active{transform:translateY(6px);box-shadow:0 2px 0 rgba(0,0,0,.35)}
.mcq-btn .sh{font-size:1.8rem}
.mcq-btn.dim{opacity:.3}
.mcq-btn.pick{outline:4px solid #fff}
.c0{background:#e63950}.c1{background:#e0a100}.c2{background:#2a7fd4}.c3{background:#1f9e55}
.pl-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--card);border:1px solid var(--card-border);margin-bottom:6px}
.pl-item .tx{flex:1;font-size:.92rem;line-height:1.3}
.pl-item.done{opacity:.45}
.pl-item.cur{border-color:var(--accent2);box-shadow:0 0 0 2px var(--accent2) inset}
.pack-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.pack-grid button{padding:12px 10px;border-radius:14px;background:rgba(0,0,0,.25);border:1px solid var(--card-border);color:#fff;font-weight:600;text-align:left;display:flex;gap:8px;align-items:center}
.pack-grid button:hover{border-color:var(--accent2)}
.pack-grid .em{font-size:1.5rem}
.thumbs{display:flex;gap:6px;overflow-x:auto;padding:6px 0}
.thumbs img{height:70px;border-radius:8px;border:2px solid transparent;flex-shrink:0}
.thumbs img.cur{border-color:var(--accent2)}
.host-img{width:100%;border-radius:14px;display:block;background:#000}
.pj-image-wrap{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:100%}
.pj-image{max-height:62vh;max-width:min(1100px,78vw);border-radius:22px;box-shadow:0 20px 60px rgba(0,0,0,.55);border:4px solid var(--paccent2,#ffd166)}
.pj-image.fresh{animation:imgIn .5s}
@keyframes imgIn{from{filter:brightness(2.2);transform:scale(.98)}}
.pj-progress{width:min(700px,70vw);height:14px;border-radius:999px;background:rgba(0,0,0,.4);overflow:hidden}
.pj-progress>div{height:100%;background:linear-gradient(90deg,var(--paccent,#ff3d5a),var(--paccent2,#ffd166));transition:width .4s}
.pj-imgmeta{font-size:1.3rem;font-weight:700;opacity:.9}
.pj-solution{font-size:3rem;font-weight:900;color:var(--paccent2,#ffd166);text-align:center;animation:pop .4s}
.pj-choice.ok{background:rgba(46,230,107,.35);border-color:#2ee66b!important}
.pj-choice.ko{opacity:.35}
.pj-choice .cnt{float:right;opacity:.85}
.pj-answered{margin-top:22px;font-size:1.4rem;opacity:.8}
.pj-answertext{margin-top:26px;font-size:2.4rem;font-weight:900;color:var(--paccent2,#ffd166)}
.phone-img{width:100%;border-radius:14px;margin-bottom:6px;display:block}
.timer-pill{display:inline-block;padding:4px 14px;border-radius:999px;background:rgba(0,0,0,.35);font-weight:700;font-variant-numeric:tabular-nums}
.lv-bar{height:8px;border-radius:99px;background:rgba(0,0,0,.35);overflow:hidden;margin:8px 0}
.lv-bar>div{height:100%;background:var(--accent2)}

/* ================= v3 ================= */
kbd{display:inline-block;font-family:inherit;font-size:.7rem;font-weight:700;padding:1px 6px;border-radius:5px;background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.25);margin-left:4px;opacity:.8;vertical-align:middle}
@media (hover:none){.btn kbd{display:none}}
.spinner{width:42px;height:42px;border-radius:50%;border:4px solid rgba(255,255,255,.15);border-top-color:var(--accent2);animation:spin 1s linear infinite;margin:20px auto}
@keyframes spin{to{transform:rotate(360deg)}}
.conn-badge{position:fixed;top:10px;left:50%;transform:translateX(-50%);z-index:300;background:#000;border:1px solid var(--accent2);color:var(--accent2);padding:8px 18px;border-radius:999px;font-weight:600;font-size:.9rem;animation:pop .25s}
.notice{background:rgba(255,209,102,.12);border:1px solid rgba(255,209,102,.4);color:#ffe9b0;padding:10px 14px;border-radius:12px;margin:8px 0;font-size:.92rem;display:flex;gap:8px;align-items:center;justify-content:space-between}
.resume-card{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px;border-color:var(--good)}
.resume-card .row{flex:0 0 auto}
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;text-align:center}
.badge.gold{background:rgba(255,209,102,.18);border-color:var(--accent2);color:var(--accent2)}
.streak{color:#ff9f1c;font-weight:700}
.ellipsis{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.audio-unlock{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:400;background:var(--accent);color:#fff;font-weight:700;padding:14px 26px;border-radius:999px;font-size:1.1rem;box-shadow:0 10px 30px rgba(0,0,0,.5);animation:pop .3s}
.sound-hint{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);z-index:9;background:rgba(0,0,0,.55);padding:8px 18px;border-radius:999px;font-size:.95rem;opacity:.85}

/* giocatore */
.q-card{text-align:center;margin-bottom:8px}
.q-card b{font-size:1.15rem;line-height:1.35}
.mini-choices{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:8px;font-size:.88rem;opacity:.85}
.result-box{text-align:center;font-size:1.35rem;font-weight:700;padding:16px;border-radius:16px;margin-top:14px;background:var(--card);border:2px solid var(--card-border);animation:pop .3s}
.result-box.ok{border-color:var(--good);background:rgba(46,230,107,.14)}
.result-box.ko{border-color:var(--bad);background:rgba(255,61,90,.1)}
.result-box .muted{font-size:.9rem;font-weight:500;margin-top:4px}
.mcq-grid.tf{grid-template-columns:1fr 1fr}
.mcq-grid.tf .mcq-btn{min-height:170px;font-size:1.5rem}
.tf-yes{background:#1f9e55}.tf-no{background:#e63950}
.order-picked{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.order-picked .slot{padding:12px 14px;border-radius:12px;border:2px dashed var(--card-border);background:rgba(0,0,0,.2);font-weight:600}
.order-picked .slot.filled{border-style:solid;border-color:var(--accent2);background:rgba(255,209,102,.1)}
.order-picked .slot.ok{border-color:var(--good);background:rgba(46,230,107,.14)}
.order-picked .slot.ko{border-color:var(--bad);background:rgba(255,61,90,.1)}
.order-picked .slot b{color:var(--accent2);margin-right:6px}
.order-pool{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.order-pool .btn{border-radius:14px;padding:14px 10px}
.clue-card{display:flex;flex-direction:column;gap:6px}
.clue{padding:10px 12px;border-radius:12px;background:rgba(0,0,0,.25)}
.clue.new{border:2px solid var(--accent2);animation:pop .35s}
.clue.hidden-clue{opacity:.4}
.eq{display:inline-flex;gap:3px;align-items:flex-end;height:22px;margin:0 6px;vertical-align:middle}
.eq i{display:block;width:5px;height:4px;background:var(--accent2);border-radius:2px;transition:height .2s}
.eq.on i{animation:eq .7s ease-in-out infinite alternate}
.eq.on i:nth-child(2){animation-delay:.15s}.eq.on i:nth-child(3){animation-delay:.3s}.eq.on i:nth-child(4){animation-delay:.1s}.eq.on i:nth-child(5){animation-delay:.25s}.eq.on i:nth-child(6){animation-delay:.05s}.eq.on i:nth-child(7){animation-delay:.35s}
@keyframes eq{from{height:4px}to{height:100%}}
.eq.big{height:90px;gap:8px}.eq.big i{width:14px;border-radius:6px}

/* host */
.host-tabs{flex-wrap:wrap}
.host-tabs button{flex:1 1 30%;font-size:.88rem;padding:9px 6px}
.tabs.sub button{font-size:.92rem}
.next-card{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.next-card.pulse{border-color:var(--good);box-shadow:0 0 0 0 rgba(46,230,107,.5);animation:pulse 1.8s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(46,230,107,0)}100%{box-shadow:0 0 0 0 rgba(46,230,107,0)}}
.round-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.round-head b{margin-right:auto}
.host-imgs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0}
.host-img.small{max-height:180px;width:auto;max-width:100%;margin:6px 0}
.guess-list{display:flex;flex-direction:column;gap:5px;max-height:300px;overflow-y:auto}
.guess{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:10px;background:rgba(0,0,0,.25);border:1px solid var(--card-border);font-size:.92rem}
.guess.ok{border-color:var(--good);background:rgba(46,230,107,.12)}
.guess.ko{opacity:.8}
.bets{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.bets span{padding:4px 10px;border-radius:999px;background:rgba(0,0,0,.3);font-size:.85rem}
.list-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.pl-item{align-items:flex-start}
.pl-item .num{min-width:22px;padding-top:2px}
.pl-thumb{height:40px;width:56px;object-fit:cover;border-radius:6px}
.pl-actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;max-width:160px}
.pl-actions .mini{padding:5px 8px}
.mini.on{background:rgba(255,209,102,.3)}
.mini:disabled{opacity:.3}
.saved-lists{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.chip{padding:6px 12px;border-radius:999px;background:rgba(0,0,0,.3);border:1px solid var(--card-border);color:#fff;font-size:.85rem}
.copy{cursor:pointer;color:var(--accent2);font-family:monospace;font-size:1rem}
.file-btn{cursor:pointer}
.kind-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:6px;margin-bottom:8px}
.kind-grid button{padding:10px 6px;border-radius:12px;background:rgba(0,0,0,.25);border:2px solid transparent;color:#fff;font-weight:600;font-size:.85rem;display:flex;flex-direction:column;align-items:center;gap:3px}
.kind-grid button span{font-size:1.4rem}
.kind-grid button.sel{border-color:var(--accent2);background:rgba(255,209,102,.12)}
.kind-help{margin:4px 0 14px;font-size:.88rem}
.form-err{color:#ffb4c0;margin-top:10px;font-weight:600;min-height:1em}
textarea{resize:vertical}
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:500;display:flex;align-items:center;justify-content:center;padding:20px}
.modal{max-width:440px;width:100%;background:#1d1033}
.sc-row{display:flex;gap:12px;align-items:center;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.sc-row kbd{min-width:80px;text-align:center;font-size:.85rem;margin:0}
.host-snips{justify-content:center;margin:10px 0}
.award-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}

/* proiettore */
.pj-kind{font-size:1.1rem;letter-spacing:2px;opacity:.7;font-weight:700;margin-bottom:10px;text-transform:uppercase}
.pj-qimg{max-height:34vh;max-width:70vw;border-radius:18px;box-shadow:0 14px 40px rgba(0,0,0,.5);margin-bottom:16px}
.pj-question .q.with-img{font-size:calc(var(--pj-q-size,3rem)*.8)}
.pj-choices.tf{grid-template-columns:1fr 1fr}
.pj-choice.tf-yes{border-color:#2ee66b!important;background:rgba(31,158,85,.3)}
.pj-choice.tf-no{border-color:#ff3d5a!important;background:rgba(230,57,80,.3)}
.pj-choice.ok.tf-no,.pj-choice.ok.tf-yes{background:rgba(46,230,107,.45)}
.pj-bigbadge{display:inline-block;padding:10px 24px;border-radius:999px;font-weight:900;font-size:1.5rem;background:linear-gradient(90deg,var(--paccent),var(--paccent2));color:#1a0b2e;animation:pop .4s}
.pj-bigbadge.small{font-size:1rem;padding:6px 14px}
.pj-order{display:flex;flex-direction:column;gap:10px;margin-top:26px;align-items:center}
.pj-order-it{min-width:min(560px,70vw);padding:14px 22px;border-radius:16px;background:rgba(0,0,0,.35);border:3px solid var(--paccent2,#ffd166);font-size:var(--pj-c-size,1.6rem);font-weight:700}
.pj-order-it.ok{border-color:#2ee66b;background:rgba(46,230,107,.2);animation:pop .4s}
.pj-order-it b{color:var(--paccent2);margin-right:10px}
.pj-ranking{display:flex;flex-direction:column;gap:6px;margin:20px auto 0;max-width:600px}
.pj-ranking .it{display:grid;grid-template-columns:40px 1fr auto auto;gap:14px;align-items:center;padding:10px 18px;border-radius:14px;background:rgba(0,0,0,.35);font-size:1.4rem;text-align:left}
.pj-ranking .it.win{border:2px solid var(--paccent2);background:rgba(255,209,102,.18)}
.pj-names{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}
.pj-names span{padding:6px 14px;border-radius:999px;border:2px solid;background:rgba(0,0,0,.3);font-weight:600}
.pj-timer.hurry,.timer-pill.hurry{color:#ff3d5a;animation:hurry .5s infinite alternate}
@keyframes hurry{to{transform:scale(1.12)}}
.pj-clues{display:flex;flex-direction:column;gap:12px;width:min(1000px,80vw)}
.pj-clue{display:flex;gap:18px;align-items:center;padding:18px 26px;border-radius:20px;background:rgba(0,0,0,.35);font-size:var(--pj-c-size,1.6rem);font-weight:700}
.pj-clue .n{flex:0 0 46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--paccent);color:#fff;font-weight:900}
.pj-clue.new{border:3px solid var(--paccent2);animation:clueIn .5s}
.pj-clue.locked{opacity:.3;font-style:italic}
@keyframes clueIn{from{transform:translateX(-40px);opacity:0}}
.pj-audio{display:flex;flex-direction:column;align-items:center;gap:20px}
.pj-vinyl{width:min(36vh,300px);height:min(36vh,300px);border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle,var(--paccent) 0 18%,#111 19% 21%,#222 22% 30%,#111 31% 33%,#1d1d1d 34% 46%,#111 47% 49%,#222 50%);box-shadow:0 20px 60px rgba(0,0,0,.6)}
.pj-vinyl.spin{animation:spin 3s linear infinite}
.pj-vinyl .eq{animation:spin 3s linear infinite reverse}
.pj-cover{width:min(40vh,340px);border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.6);animation:pop .5s}
.pj-snips{display:flex;gap:10px;flex-wrap:wrap}
.pj-snips span{padding:8px 16px;border-radius:999px;background:rgba(0,0,0,.35);font-weight:700;font-size:1.2rem;opacity:.5}
.pj-snips span.done{opacity:.85;background:rgba(255,255,255,.12)}
.pj-snips span.cur{opacity:1;background:var(--paccent);color:#fff;transform:scale(1.12)}
.pj-chip.off{opacity:.35}
.pj-board{position:relative;width:min(760px,86vw)}
.pj-board h2{text-align:center;font-size:2.4rem;font-weight:900;letter-spacing:3px;color:var(--paccent2)}
.pj-brow{position:absolute;left:0;right:0;height:56px;display:flex;align-items:center;gap:14px;padding:0 22px;border-radius:16px;background:rgba(0,0,0,.4);font-size:1.5rem;font-weight:700}
.pj-brow.first{background:linear-gradient(90deg,rgba(255,209,102,.4),rgba(0,0,0,.4));border:2px solid var(--paccent2)}
.pj-brow .pos{width:32px;opacity:.7}
.pj-brow .av{font-size:1.9rem}
.pj-brow .nm{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pj-brow .mv{width:48px;font-size:1rem;text-align:center}
.pj-brow .mv.up{color:#2ee66b}.pj-brow .mv.down{color:#ff3d5a}
.pj-brow .fire{font-size:1.1rem;color:#ff9f1c}
.pj-brow .dl{font-size:1rem;padding:2px 10px;border-radius:999px;animation:pop .6s .4s both}
.pj-brow .dl.pos{background:rgba(46,230,107,.3)}.pj-brow .dl.neg{background:rgba(255,61,90,.3)}
.pj-brow .sc{min-width:70px;text-align:right;color:var(--paccent2);font-variant-numeric:tabular-nums}
.go-big h1.logo{font-size:5rem}
.go-big .podium .block{width:150px}
