*{box-sizing:border-box}html{background:var(--cp-bg);min-width:320px}body{background:radial-gradient(circle at 12% 0%, var(--cp-accent-soft), transparent 34rem), var(--cp-bg);min-width:320px;min-height:100vh;color:var(--cp-text);margin:0;font-family:Segoe UI,Aptos,Calibri,-apple-system,BlinkMacSystemFont,sans-serif;position:relative}body:before{z-index:-1;background:repeating-linear-gradient(-8deg, transparent 0, transparent 7px, var(--cp-highlight) 8px);content:"";opacity:.22;pointer-events:none;position:fixed;inset:0}button,input,select,textarea{font:inherit}button,input,select,textarea,.scheda,.avviso{border-radius:.625rem}button{border:1px solid var(--cp-accent);background:var(--cp-accent);min-height:44px;color:var(--cp-accent-fg);cursor:pointer;padding:10px 16px;font-weight:750}button:hover:not(:disabled){background:var(--cp-accent-hover)}button:disabled{border-color:var(--cp-border);background:var(--cp-surface-soft);color:var(--cp-text-muted);cursor:not-allowed}button.secondario{border-color:var(--cp-border-strong);background:var(--cp-surface);color:var(--cp-text)}button.secondario:hover:not(:disabled){background:var(--cp-surface-soft)}button.compatto{min-height:32px;padding:5px 9px;font-size:.78rem}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--cp-accent);outline-offset:2px}input,select,textarea{border:1px solid var(--cp-border-strong);background:var(--cp-surface);width:100%;min-height:44px;color:var(--cp-text);padding:10px 12px}textarea{resize:vertical;min-height:28rem;font-family:Consolas,Courier New,monospace;font-size:.82rem;line-height:1.45}label{color:var(--cp-text-muted);gap:6px;font-size:.9rem;font-weight:650;display:grid}h1,h2,h3,p{margin-top:0}h2{margin-bottom:0;font-size:1.45rem}h3{margin-bottom:12px;font-size:1rem}.pagina{width:min(1180px,100%);margin:0 auto;padding:40px 20px 64px}.intestazione{border-bottom:3px solid var(--cp-text);grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);align-items:end;gap:24px 36px;margin-bottom:28px;padding-bottom:24px;display:grid}.marchio{min-width:0;color:var(--cp-accent);align-items:center;gap:18px;display:flex}.marchio-sigillo{flex:none;width:clamp(74px,11vw,118px);transform:rotate(-3deg)}.marchio-testo{min-width:0;display:grid}.marchio-prefisso,.marchio-motto,.commissario-etichetta{letter-spacing:.15em;text-transform:uppercase;font-size:.7rem;font-weight:900}.marchio-testo strong{color:var(--cp-text);letter-spacing:-.085em;text-transform:uppercase;transform-origin:0;font-size:clamp(3.6rem,10vw,7.5rem);font-weight:1000;line-height:.78;transform:skew(-4deg)}.marchio-motto{background:var(--cp-accent);width:fit-content;color:var(--cp-accent-fg);margin-top:12px;padding:4px 9px;transform:rotate(-1deg)}.intestazione .introduzione{border-left:4px solid var(--cp-accent);align-self:end;padding-left:16px}.intestazione .commissario{grid-column:1/-1}.intestazione-compatta{margin-bottom:18px;padding-bottom:14px;display:block}.intestazione-compatta .marchio{gap:10px}.intestazione-compatta .marchio-sigillo{width:48px}.intestazione-compatta .marchio-prefisso{display:none}.intestazione-compatta .marchio-testo{align-items:baseline;gap:12px;display:flex}.intestazione-compatta .marchio-testo strong{letter-spacing:-.06em;font-size:clamp(2.3rem,6vw,4rem)}.intestazione-compatta .marchio-motto{margin-top:0;font-size:.62rem}.soprattitolo,.etichetta-sezione{color:var(--cp-accent);letter-spacing:.13em;text-transform:uppercase;margin-bottom:6px;font-size:.75rem;font-weight:850}.introduzione{max-width:760px;color:var(--cp-text-muted);margin-bottom:0;font-size:1.05rem;line-height:1.55}.commissario{border:1px solid var(--cp-border-strong);background:var(--cp-surface-soft);color:var(--cp-text);border-radius:.625rem;grid-template-columns:58px 1fr;align-items:center;gap:14px;padding:12px 16px 12px 10px;display:grid}.commissario-ritratto{width:58px;color:var(--cp-accent);transform:rotate(2deg)}.commissario-etichetta{color:var(--cp-accent);margin-bottom:4px;display:block}.commissario p{margin:0;font-style:italic;line-height:1.4}.griglia,.griglia-gioco{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.scheda,.tavolo,.barra-stanza{border:1px solid var(--cp-border);background:var(--cp-panel-strong);box-shadow:0 0 2px var(--cp-border), 0 1px 2px var(--cp-border-strong)}.scheda{border-radius:16px;gap:18px;padding:22px;display:grid}.griglia>.scheda:first-child{border-top:7px solid var(--cp-accent)}.griglia>.scheda:last-child{border-top:7px solid var(--cp-text)}.avviso{border:2px solid var(--cp-danger);background:var(--cp-surface);color:var(--cp-danger);gap:3px;margin-bottom:16px;padding:12px 16px;font-weight:650;display:grid}.campo-codice,.codice-grande,output{font-family:Consolas,Courier New,monospace}.campo-codice{letter-spacing:.2em;text-transform:uppercase}.barra-stanza{border-left:7px solid var(--cp-accent);border-radius:16px;justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px;padding:16px 20px;display:flex}.codice-grande{letter-spacing:.18em;font-size:1.8rem;display:block}.invito{align-items:center;gap:14px;display:flex}.invito small{color:var(--cp-text-muted);overflow-wrap:anywhere;margin-top:4px;display:block}.qr{border:8px solid var(--cp-surface);outline:1px solid var(--cp-border-strong);width:76px;height:76px;color:var(--cp-text);background:linear-gradient(90deg,currentColor 10%,#0000 10% 20%,currentColor 20% 32%,#0000 32% 46%,currentColor 46% 60%,#0000 60% 73%,currentColor 73% 86%,#0000 86%),linear-gradient(currentColor 10%,#0000 10% 21%,currentColor 21% 37%,#0000 37% 50%,currentColor 50% 64%,#0000 64% 79%,currentColor 79% 90%,#0000 90%);place-items:center;font-size:.6rem;font-weight:900;display:grid}.azioni,.pannello-azioni{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.controllo-audio{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.volume-audio{align-items:center;gap:6px;min-height:44px;font-size:.72rem;display:flex}.volume-audio input{width:90px;min-height:24px;padding:0}.errore-audio{max-width:30rem;color:var(--cp-danger);flex-basis:100%;font-size:.78rem;font-weight:700}.pill{background:var(--cp-surface-soft);border-radius:999px;padding:5px 10px;font-size:.78rem;font-weight:800}.pill.admin{background:var(--cp-accent-soft);color:var(--cp-accent)}.lobby,.guida{margin-bottom:16px}.guida summary{cursor:pointer;color:var(--cp-accent);font-weight:850}.guida-contenuto{gap:16px;padding-top:6px;line-height:1.5;display:grid}.guida-contenuto p{margin-bottom:0}.fasi-guida{gap:8px;margin:0;padding-left:1.4rem;display:grid}.ruoli-guida{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.ruoli-guida article{border:1px solid var(--cp-border);background:var(--cp-surface-soft);border-radius:10px;padding:12px}.ruoli-guida article h3{color:var(--cp-accent);margin-bottom:5px}.ruoli-guida article p{color:var(--cp-text-muted);font-size:.88rem}.blocco-bot{border:1px dashed var(--cp-border-strong);border-radius:12px;gap:10px;padding:14px;display:grid}.giocatori{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.giocatori li{border:1px solid var(--cp-border);background:var(--cp-surface-soft);border-radius:10px;gap:3px;padding:10px 12px;display:grid}.giocatori li.io{border-color:var(--cp-accent);background:var(--cp-accent-soft)}.giocatori li span{color:var(--cp-text-muted);font-size:.83rem}.stato-online{color:var(--cp-success)!important}.stato-offline{color:var(--cp-warning)!important}.errore-inline{font-weight:700;color:var(--cp-danger)!important}.tavolo{border-radius:16px;gap:18px;margin-bottom:16px;padding:22px;display:grid}.tavolo>.commissario{border-left:6px solid var(--cp-accent)}.testata-colpo{justify-content:space-between;align-items:start;gap:18px;display:flex}.timer{background:var(--cp-accent);min-width:78px;color:var(--cp-accent-fg);text-align:center;border-radius:14px;padding:10px 14px;font-size:1.6rem;font-weight:900}.timer-urgente{background:var(--cp-danger);box-shadow:0 0 0 5px var(--cp-accent-soft);transition:transform .24s ease-out,box-shadow .24s ease-out,background-color .24s ease-out;transform:scale(1.045)}.turno{border-left:7px solid var(--cp-accent);background:var(--cp-accent-soft);border-radius:10px;gap:3px;padding:12px 15px;display:grid}.turno-etichetta{color:var(--cp-accent);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:900}.turno span:last-child{color:var(--cp-text-muted);font-size:.88rem}.spiegazione-fase{border-left:5px solid var(--cp-accent);background:var(--cp-accent-soft);border-radius:12px;padding:16px 18px}.spiegazione-fase h3{margin-bottom:7px;font-size:1.15rem}.spiegazione-fase p{margin-bottom:7px;line-height:1.5}.spiegazione-fase .conseguenza{color:var(--cp-text-muted);margin-bottom:0}.dadi,.carte{flex-wrap:wrap;gap:9px;display:flex}.dado,.carta{border:1px solid var(--cp-border-strong);background:var(--cp-surface);border-radius:11px;place-items:center;min-height:56px;padding:8px 12px;font-size:.84rem;font-weight:800;display:inline-grid}.dado.viaLibera{border-color:var(--cp-success);color:var(--cp-success)}.dado.polizia{border-color:var(--cp-link)}.dado.guasto{border-color:var(--cp-warning)}.dado.soffiata{border-color:var(--cp-accent)}.dado.allarme{border-color:var(--cp-danger)}.dadi-animati .dado{animation:.52s ease-out both rimbalzo-dado;animation-delay:var(--ritardo-evento)}.dadi-animati .dado:nth-child(2){animation-delay:calc(var(--ritardo-evento) + .11s)}.dadi-animati .dado:nth-child(3){animation-delay:calc(var(--ritardo-evento) + .22s)}.dadi-animati .dado:nth-child(4){animation-delay:calc(var(--ritardo-evento) + .33s)}.percorso{border:1px solid var(--cp-border);background:var(--cp-surface-soft);border-radius:14px;gap:8px;padding:14px 14px 10px;display:grid}.percorso-testata{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 14px;display:flex}.percorso-testata h3{margin:0;font-size:1rem}.percorso-testata p{margin:0;font-size:.88rem}.percorso-strada{scroll-snap-type:x proximity;scrollbar-width:thin;grid-auto-columns:minmax(104px,1fr);grid-auto-flow:column;margin:0;padding:0 0 6px;list-style:none;display:grid;overflow-x:auto}.percorso-strada:focus-visible{outline:3px solid var(--cp-accent);outline-offset:2px}.tappa{text-align:center;scroll-snap-align:center;align-content:start;justify-items:center;gap:4px;padding:64px 4px 0;display:grid;position:relative}.tappa:before{background:repeating-linear-gradient(90deg, var(--cp-border-strong) 0 12px, transparent 12px 20px);content:"";opacity:.55;height:6px;position:absolute;top:78px;left:0;right:0}.tappa:first-child:before{left:50%}.tappa:last-child:before{right:50%}.tappa-superata:before,.tappa-attuale:before{background:var(--cp-accent);opacity:1}.tappa-attuale:before{right:50%}.tappa-zecca:before{background:repeating-linear-gradient(90deg, var(--cp-text-soft) 0 4px, transparent 4px 10px)}.tappa-segnale{z-index:1;border:3px solid var(--cp-border-strong);background:var(--cp-surface);width:34px;height:34px;color:var(--cp-text);border-radius:50%;place-items:center;font-weight:900;display:grid;position:relative}.tappa-superata .tappa-segnale{border-color:var(--cp-accent);background:var(--cp-accent);color:var(--cp-accent-fg)}.tappa-attuale .tappa-segnale{border-color:var(--cp-text);background:var(--cp-accent);color:var(--cp-accent-fg);box-shadow:0 0 0 4px var(--cp-accent-soft)}.tappa-prossima .tappa-segnale{border-color:var(--cp-danger);box-shadow:0 0 0 4px var(--cp-highlight)}.tappa-zecca .tappa-segnale{color:var(--cp-link);border-style:dashed}.tappa-nome{max-width:13ch;font-size:.82rem;line-height:1.15}.tappa-superata .tappa-nome,.tappa-superata .tappa-dettagli{opacity:.6}.tappa-cartello{color:var(--cp-danger);letter-spacing:.08em;text-transform:uppercase;font-size:.62rem;font-weight:900;line-height:1.1;position:absolute;top:34px;left:2px;right:2px}.tappa-zecca .tappa-cartello{color:var(--cp-link)}.tappa-dettagli{color:var(--cp-text-muted);justify-items:center;gap:3px;font-size:.72rem;display:grid}.tappa-dadi{align-items:center;gap:3px;min-height:12px;display:flex}.tappa-dadi i{border:1.5px solid var(--cp-text);background:var(--cp-surface);border-radius:3px;width:10px;height:10px}.tappa-bottino{font-weight:800}.furgone-posto{z-index:2;pointer-events:none;justify-content:center;width:100%;display:flex;position:absolute;top:2px;left:0}.furgone-in-marcia{animation:1.1s cubic-bezier(.3,.7,.2,1) both furgone-avanza;animation-delay:var(--ritardo-evento)}.furgone{width:104px;height:58px;display:block;overflow:visible}.furgone .f-alto{fill:var(--cp-surface);stroke:var(--cp-text);stroke-width:2px}.furgone .f-basso{fill:var(--cp-accent);stroke:var(--cp-text);stroke-width:2px}.furgone .f-riga{fill:none;stroke:var(--cp-link);stroke-width:3px}.furgone .f-vetro{fill:var(--cp-bg-elevated);stroke:var(--cp-text);stroke-width:1.5px}.furgone .f-crepa{fill:none;stroke:var(--cp-surface);stroke-width:1px}.furgone .f-porta{fill:none;stroke:var(--cp-text);stroke-width:1.2px;opacity:.55}.furgone .f-toppa{fill:var(--cp-surface-soft);stroke:var(--cp-border-strong);stroke-width:1px}.furgone .f-cucitura{fill:none;stroke:var(--cp-border-strong);stroke-dasharray:2 2;stroke-width:1px}.furgone .f-ammaccatura,.furgone .f-contorno-sottile{fill:none;stroke:var(--cp-text);stroke-width:1.5px}.furgone .f-fiore circle{fill:var(--cp-link)}.furgone .f-fiore-piccolo circle{fill:var(--cp-danger)}.furgone .f-fiore .f-pistillo{fill:var(--cp-surface)}.furgone .f-faro{fill:var(--cp-surface);stroke:var(--cp-text);stroke-width:1.5px}.furgone .f-paraurti{fill:var(--cp-text-soft)}.furgone .f-scappamento{stroke:var(--cp-text);stroke-width:3px}.furgone .f-valigia{fill:var(--cp-link);stroke:var(--cp-text);stroke-width:1.5px}.furgone .f-materasso{fill:var(--cp-surface-soft);stroke:var(--cp-text);stroke-width:1.5px}.furgone .f-corda{fill:none;stroke:var(--cp-text-soft);stroke-width:1.2px}.furgone .f-ruota{fill:var(--cp-text)}.furgone .f-cerchio{fill:var(--cp-surface-soft)}.furgone .f-cerchio-spaiato{fill:var(--cp-accent)}.furgone-fumo circle{fill:var(--cp-border);opacity:0}.furgone-in-marcia .furgone-fumo circle{animation:1.1s ease-out both sbuffo;animation-delay:var(--ritardo-evento)}.furgone-in-marcia .furgone-fumo circle:nth-child(2){animation-delay:calc(var(--ritardo-evento) + .18s)}.furgone-in-marcia .furgone-fumo circle:nth-child(3){animation-delay:calc(var(--ritardo-evento) + .36s)}.tappa-attuale:not(.tappa-zecca) .furgone>:not(.furgone-fumo,.furgone-ruote){animation:2.4s ease-in-out infinite sobbalzo}.pannello-azioni{border:1px solid var(--cp-accent);background:var(--cp-accent-soft);border-radius:14px;padding:14px}.attesa{background:var(--cp-surface-soft);color:var(--cp-text-muted);border-radius:12px;margin:0;padding:14px}.eventi ul{margin:0;padding-left:1.3rem}.esito-colpo{background:var(--cp-surface);color:var(--cp-success);letter-spacing:-.04em;text-align:center;text-transform:uppercase;animation:.52s cubic-bezier(.2,.8,.3,1) both esito-colpo;animation-delay:var(--ritardo-evento);border:3px solid;border-radius:16px;padding:18px;font-size:clamp(1.8rem,7vw,4.5rem);font-weight:1000;line-height:1}.esito-colpo.esito-fallito{color:var(--cp-danger)}.testo-secondario{color:var(--cp-text-muted)}.finale{gap:24px}.finale h2{margin-bottom:8px;font-size:clamp(1.8rem,5vw,3rem)}.vincitore{color:var(--cp-accent);margin-bottom:8px;font-size:clamp(2rem,8vw,4.5rem);font-weight:900;line-height:1}.classifica{gap:8px;margin:0;padding:0;list-style:none;display:grid}.classifica li{border:1px solid var(--cp-border);background:var(--cp-surface);border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:13px 16px;display:grid}.classifica li.vincitore-classifica{border-color:var(--cp-accent);background:var(--cp-accent-soft)}.classifica .posizione{background:var(--cp-surface-soft);border-radius:50%;place-items:center;width:2rem;height:2rem;font-weight:900;display:grid}.classifica small{color:var(--cp-text-muted);margin-top:2px;display:block}.admin-panel{margin-top:16px}.editor-guidato{border:1px solid var(--cp-border);border-radius:10px;gap:14px;margin:0;padding:14px;display:grid}.editor-guidato legend{color:var(--cp-accent);padding:0 6px;font-weight:800}.gruppo-parametri{border-top:1px solid var(--cp-border);grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding-top:14px;display:grid}.gruppo-parametri h3{grid-column:1/-1;margin-bottom:0}.controllo-checkbox{align-self:end;align-items:center;min-height:44px;display:flex}.controllo-checkbox input{width:auto;min-height:0}.pagina-schermo{max-width:1440px}.pagina-schermo .intestazione{grid-template-columns:minmax(0,1.4fr) minmax(320px,.6fr)}.pagina-schermo .intestazione-compatta{display:block}.pagina-schermo .tavolo-pubblico{min-height:70vh}.voti-pubblici{gap:8px;margin:0;padding:0;list-style:none;display:grid}.voti-pubblici li{border-bottom:1px solid var(--cp-border);justify-content:space-between;padding:8px 0;display:flex}.voti-rivelati li{animation:.36s ease-out both rivela-voto;animation-delay:var(--ritardo-evento)}.tavolo.ha-eventi{animation:.36s ease-out entrata-tavolo}.eventi{animation:.42s ease-out comparsa-eventi}@keyframes entrata-tavolo{0%{opacity:.7;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes rimbalzo-dado{0%{transform:translateY(-10px)rotate(-4deg)}60%{transform:translateY(3px)rotate(2deg)}to{transform:translateY(0)rotate(0)}}@keyframes comparsa-eventi{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes furgone-avanza{0%{transform:translateX(calc(-100% * var(--passi))) rotate(-3deg)}70%{transform:translate(6px)rotate(2deg)}85%{transform:translate(-2px)rotate(-1deg)}to{transform:translate(0)rotate(0)}}@keyframes sbuffo{0%{opacity:.8;transform:translate(0)scale(.6)}to{opacity:0;transform:translate(-14px,-8px)scale(1.6)}}@keyframes sobbalzo{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}@keyframes rivela-voto{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes esito-colpo{0%{opacity:0;transform:scale(.88)rotate(-1deg)}70%{opacity:1;transform:scale(1.035)rotate(.5deg)}to{opacity:1;transform:scale(1)rotate(0)}}.admin-panel summary{cursor:pointer;color:var(--cp-accent);font-size:1.1rem;font-weight:800}.parametri-simulazione{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.risultati-simulazione{border-top:1px solid var(--cp-border);padding-top:18px}.tabella-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--cp-border);text-align:right;white-space:nowrap;padding:9px 10px}th:first-child,td:first-child{text-align:left}@media (width<=760px){html,body{max-width:100%;overflow-x:hidden}.pagina{padding:20px 12px 104px}.intestazione{grid-template-columns:1fr;gap:18px}.intestazione .commissario{grid-column:auto}.marchio{align-items:flex-start}.marchio-sigillo{width:68px}.marchio-testo strong{font-size:clamp(3.15rem,20vw,5rem)}.griglia,.griglia-gioco,.parametri-simulazione,.gruppo-parametri{grid-template-columns:1fr}.barra-stanza,.testata-colpo{flex-direction:column;align-items:stretch}.barra-stanza.in-partita{z-index:10;border-radius:0;flex-direction:row;align-items:center;gap:8px;margin-inline:-12px;padding:9px 12px;position:sticky;top:0}.barra-stanza.in-partita .codice-grande{font-size:1.1rem}.barra-stanza.in-partita .etichetta-sezione,.barra-stanza.in-partita .invito,.barra-stanza.in-partita .diagnostica-rete,.barra-stanza.in-partita .pill,.barra-stanza.in-partita .azioni>output{display:none}.barra-stanza.in-partita>.azioni{flex:1;justify-content:flex-end;min-width:0}.barra-stanza.in-partita .controllo-audio{flex-wrap:nowrap;flex:1;justify-content:flex-end;min-width:0}.barra-stanza.in-partita .controllo-audio button{min-width:116px;padding-inline:10px}.barra-stanza.in-partita .volume-audio{flex:0 120px;min-width:82px}.barra-stanza.in-partita .volume-audio input{min-width:48px}.invito{flex-wrap:wrap;align-items:flex-start}.timer{align-self:start}.controllo-audio{align-items:stretch}.volume-audio{flex:100%}.volume-audio input{flex:1;width:auto}.scheda,.tavolo{padding:18px}.pannello-azioni{z-index:8;box-shadow:0 4px 18px var(--cp-border-strong);align-items:stretch;display:grid;position:sticky;bottom:10px}.pannello-azioni button{width:100%}.esito-colpo{padding:20px 12px}.commissario{grid-template-columns:44px 1fr}.commissario-ritratto{width:44px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}.tavolo.ha-eventi,.dadi-animati .dado,.eventi,.voti-rivelati li,.esito-colpo{animation:none}.percorso *{animation:none!important}.timer-urgente{transform:none}}.visualmente-nascosto{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
