#vsq{--vs-red:#d7141a;--vs-red2:#9e0d12;--vs-gold:#c9a24a;--vs-cream:#f4efe6;
  max-width:520px;margin:24px auto;padding:0 12px;color:var(--vs-cream);
  font-family:inherit;-webkit-tap-highlight-color:transparent}
#vsq *{box-sizing:border-box}
#vsq .vsq-card{position:relative;overflow:hidden;border-radius:20px;padding:18px 16px 24px;min-height:580px;
  background:radial-gradient(120% 75% at 50% 0%,#3d0a0d 0%,#170506 48%,#0d0d0d 100%);
  box-shadow:0 20px 50px rgba(0,0,0,.35)}
#vsq .vsq-snow{position:absolute;inset:0;pointer-events:none;z-index:1}
#vsq .vsq-snow i{position:absolute;top:-10px;border-radius:50%;background:#fff;opacity:.45;animation:vsqFall linear infinite}
@keyframes vsqFall{to{transform:translateY(760px)}}
#vsq .vsq-top,#vsq .vsq-head,#vsq .vsq-stage{position:relative;z-index:2}
#vsq .vsq-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
#vsq .vsq-brand{font-weight:800;letter-spacing:.2em;font-size:12px;color:#fff}
#vsq .vsq-lang{background:rgba(255,255,255,.08);color:var(--vs-cream);border:1px solid rgba(255,255,255,.22);
  border-radius:8px;padding:4px 6px;font:inherit;font-size:13px;max-width:130px}
#vsq .vsq-lang option{color:#000}
#vsq .vsq-title{margin:14px 0 2px;font-size:30px;line-height:1.05;text-align:center;font-weight:900;
  text-transform:uppercase;letter-spacing:.02em;color:#fff}
#vsq .vsq-title span{color:var(--vs-red)}
#vsq .vsq-sub{text-align:center;margin:4px 0 10px;font-size:14px;opacity:.8}
#vsq .vsq-paws{display:flex;justify-content:center;gap:14px;margin:4px 0 16px}
#vsq .vsq-paw{width:30px;height:30px;color:rgba(255,255,255,.16);transition:color .4s,transform .4s}
#vsq .vsq-paw.on{color:var(--vs-red);transform:scale(1.15)}
#vsq .vsq-panel{text-align:center;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  border-radius:16px;padding:22px 16px}
#vsq h2{color:#fff;font-size:22px;line-height:1.2;margin:6px 0 8px;font-weight:800;letter-spacing:0;text-transform:none}
#vsq p{margin:0 0 14px;line-height:1.45;font-size:15px;color:var(--vs-cream)}
#vsq .vsq-kicker{color:var(--vs-red);font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-size:12px}
#vsq .vsq-btn{display:inline-block;appearance:none;-webkit-appearance:none;border:0;cursor:pointer;background:var(--vs-red);
  color:#fff;font:inherit;font-weight:800;font-size:16px;letter-spacing:.03em;padding:14px 26px;border-radius:999px;
  text-decoration:none;min-width:210px;margin:6px 4px;box-shadow:0 5px 0 var(--vs-red2);text-transform:none;line-height:1.2}
#vsq .vsq-btn:active{transform:translateY(3px);box-shadow:0 2px 0 var(--vs-red2)}
#vsq .vsq-ghost{background:transparent;border:2px solid var(--vs-cream);box-shadow:none;color:var(--vs-cream)}
#vsq .vsq-ghost:active{box-shadow:none}
#vsq .vsq-input{width:100%;max-width:280px;display:block;margin:4px auto 12px;padding:14px;font:inherit;font-size:20px;
  text-align:center;letter-spacing:.18em;text-transform:uppercase;border-radius:12px;
  border:2px solid rgba(255,255,255,.25);background:rgba(0,0,0,.35);color:#fff;outline:none}
#vsq .vsq-input:focus{border-color:var(--vs-red)}
#vsq .vsq-err{color:#ff9a9a;min-height:1.3em;margin:8px 0 0;font-size:14px}
#vsq .vsq-icon-lg{width:64px;height:64px;margin:0 auto 4px;color:var(--vs-gold)}
#vsq .vsq-icon-lg svg,#vsq .vsq-paw svg{width:100%;height:100%;display:block}
#vsq .vsq-shake{animation:vsqShake .4s}
@keyframes vsqShake{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}
#vsq .vsq-pop{animation:vsqPop .35s ease-out}
@keyframes vsqPop{from{transform:scale(.85);opacity:0}to{transform:none;opacity:1}}
#vsq .vsq-hud{display:flex;justify-content:space-between;align-items:center;font-weight:700;margin-bottom:10px;font-size:15px;color:#fff;gap:8px}
#vsq .vsq-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
#vsq .vsq-tile{position:relative;aspect-ratio:1/1;border-radius:12px;padding:0;cursor:pointer;
  background:linear-gradient(145deg,#2c0b0e,#121212);border:1px solid rgba(255,255,255,.14);min-height:0}
#vsq .vsq-face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:11px;
  transition:opacity .25s,transform .25s}
#vsq .vsq-face svg{width:58%;height:58%}
#vsq .vsq-back{color:rgba(215,20,26,.6)}
#vsq .vsq-front{opacity:0;transform:scale(.5) rotate(-10deg);background:var(--vs-cream)}
#vsq .vsq-tile.open .vsq-front{opacity:1;transform:none}
#vsq .vsq-tile.open .vsq-back{opacity:0}
#vsq .vsq-tile.done{box-shadow:0 0 0 3px var(--vs-gold)}
#vsq .vsq-canvas{display:block;width:100%;border-radius:14px;touch-action:none;background:#120405}
#vsq .vsq-simon{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:330px;margin:0 auto}
#vsq .vsq-pad{aspect-ratio:1/1;border-radius:18px;border:0;cursor:pointer;background:var(--c);opacity:.32;padding:0;
  display:flex;align-items:center;justify-content:center;transition:opacity .12s,transform .12s,box-shadow .12s}
#vsq .vsq-pad svg{width:46%;height:46%}
#vsq .vsq-pad img{width:70%;height:70%;object-fit:contain;pointer-events:none}
#vsq .vsq-photo{background:#fff;padding:3%}
#vsq .vsq-photo img{width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-drag:none}
#vsq .vsq-pad.lit{opacity:1;transform:scale(1.05);box-shadow:0 0 28px var(--c)}
#vsq .vsq-code{font-size:30px;font-weight:900;letter-spacing:.14em;color:#fff;border:2px dashed var(--vs-gold);border-radius:14px;
  padding:14px 10px;margin:4px auto 12px;max-width:320px;background:rgba(0,0,0,.35);user-select:all;-webkit-user-select:all;direction:ltr}
#vsq .vsq-langs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
#vsq .vsq-lbtn{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:14px 14px;border-radius:12px;cursor:pointer;
  background:rgba(0,0,0,.35);border:2px solid rgba(255,255,255,.18);color:#fff;font:inherit;font-size:16px;text-align:start}
#vsq .vsq-lbtn span{font-size:11px;letter-spacing:.12em;opacity:.6}
#vsq .vsq-lbtn.cur,#vsq .vsq-lbtn:hover,#vsq .vsq-lbtn:focus-visible{border-color:var(--vs-red);background:rgba(215,20,26,.18)}
#vsq .vsq-gifttxt{font-size:19px;font-weight:800;color:var(--vs-gold);margin:-4px 0 12px}
#vsq .vsq-choose{margin:18px 0 4px;font-weight:700;color:#fff}
#vsq .vsq-shops{display:flex;flex-wrap:wrap;justify-content:center;gap:4px}
#vsq .vsq-shops .vsq-btn{min-width:0;flex:1 1 180px;max-width:260px}
#vsq .vsq-step-row{text-align:center;font-weight:700;color:var(--vs-gold);margin:-4px 0 10px;min-height:1.2em}
#vsq .vsq-rounds{display:flex;gap:6px}
#vsq .vsq-rounds i{width:12px;height:12px;border-radius:50%;border:2px solid rgba(255,255,255,.4);display:block}
#vsq .vsq-rounds i.now{border-color:var(--vs-red);background:rgba(215,20,26,.35)}
#vsq .vsq-rounds i.ok{border-color:var(--vs-red);background:var(--vs-red)}
#vsq .vsq-terms{font-size:12px;opacity:.7;margin:12px 0 0}
#vsq .vsq-gift{width:96px;height:96px;margin:0 auto 4px;color:var(--vs-red);animation:vsqBounce 1.4s ease-in-out infinite}
#vsq .vsq-gift svg{width:100%;height:100%}
@keyframes vsqBounce{50%{transform:translateY(-8px) rotate(-3deg)}}
@media (prefers-reduced-motion:reduce){#vsq .vsq-snow{display:none}#vsq .vsq-gift{animation:none}}
@media (max-width:380px){#vsq .vsq-title{font-size:25px}#vsq .vsq-code{font-size:24px}}

/* --- pagina a schermo intero per il telefono (arriva dal QR) --- */
html,body{margin:0;background:#0d0d0d;overscroll-behavior:none}
body{font-family:Montserrat,Arial,sans-serif;-webkit-text-size-adjust:100%}
#vsq{margin:0 auto;padding:0;min-height:100dvh}
#vsq .vsq-card{min-height:100dvh;border-radius:0;box-shadow:none;
  padding:max(14px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
#vsq button,#vsq a,#vsq input,#vsq select{touch-action:manipulation}
#vsq .vsq-tools{display:flex;align-items:center;gap:8px}
#vsq .vsq-mute{width:36px;height:36px;padding:7px;background:rgba(255,255,255,.08);color:var(--vs-cream);border:1px solid rgba(255,255,255,.22);border-radius:8px;cursor:pointer}
#vsq .vsq-mute svg{display:block;width:100%;height:100%}
#vsq .vsq-lang{height:36px}
#vsq .vsq-playwin{margin-top:12px;text-align:center;color:var(--vs-gold);font-weight:800;font-size:12px;letter-spacing:.22em;text-transform:uppercase}
#vsq .vsq-title{margin-top:4px}
#vsq .vsq-canvas{height:auto}
#vsq .vsq-btn:disabled{opacity:.6}
#vsq .vsq-shops .vsq-ghost{box-shadow:none}
#vsq .vsq-err{margin-bottom:0}
@keyframes vsqFall{to{transform:translateY(110vh)}}
@media (min-width:560px){
  #vsq{padding:24px 0}
  #vsq .vsq-card{min-height:calc(100dvh - 48px);border-radius:20px}
}
