:root{--bg:#0e0c0b;--bg-elevated:#171311;--ink:#f2e8df;--ink-muted:#a8988c;--line:#f2e8df1f;--accent:#c43c2c;--accent-deep:#8b1e1e;--mafia:#c43c2c;--town:#6f9e7a;--neutral:#c9a227;--danger:#e35d4d;--ok:#6f9e7a;--radius:14px;--shadow:0 18px 50px #00000073;--font-display:"Cormorant Garamond", Georgia, serif;--font-body:"Outfit", system-ui, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}body{background:radial-gradient(120% 80% at 50% -10%, #c43c2c38, transparent 55%), radial-gradient(90% 60% at 100% 100%, #8b1e1e2e, transparent 50%), linear-gradient(180deg, #14110f 0%, var(--bg) 40%, #090807 100%);min-height:100dvh}body:before{content:"";pointer-events:none;opacity:.07;z-index:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}#app{z-index:1;max-width:440px;min-height:100dvh;padding:max(1rem, env(safe-area-inset-top)) 1.1rem max(1.5rem, env(safe-area-inset-bottom));margin:0 auto;position:relative}.screen{flex-direction:column;gap:1.25rem;animation:.32s ease-out rise;display:flex}.screen.no-anim{animation:none}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.brand{flex-direction:column;gap:.35rem;padding-top:.4rem;display:flex}.brand h1{font-family:var(--font-display);letter-spacing:.02em;margin:0;font-size:clamp(2.4rem,10vw,3.1rem);font-weight:600;line-height:.95}.brand p,.lede{color:var(--ink-muted);margin:0;font-size:.95rem;line-height:1.45}.step-label{letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-size:.72rem;font-weight:600}.stack{flex-direction:column;gap:.75rem;display:flex}.row{align-items:center;gap:.6rem;display:flex}.row.spread{justify-content:space-between}.field{flex-direction:column;flex:1;gap:.35rem;min-width:0;display:flex}.field label{color:var(--ink-muted);letter-spacing:.04em;font-size:.75rem}input,select,button{font:inherit}input,select{border:1px solid var(--line);width:100%;color:var(--ink);background:#ffffff08;border-radius:12px;outline:none;padding:.85rem .95rem;transition:border-color .16s,background .16s}input:focus,select:focus{background:#ffffff0d;border-color:#c43c2cb3}input::placeholder{color:#a8988cb3}.btn{appearance:none;background:var(--accent);color:#fff7f2;letter-spacing:.02em;cursor:pointer;border:1px solid #0000;border-radius:999px;padding:.9rem 1.15rem;font-weight:600;transition:transform .14s,background .14s,opacity .14s}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.secondary{border-color:var(--line);color:var(--ink);background:0 0}.btn.ghost{color:var(--ink-muted);background:0 0;padding-inline:.7rem}.btn.danger{color:var(--danger);background:0 0;border-color:#e35d4d73}.btn.block{width:100%}.btn.small{padding:.55rem .8rem;font-size:.85rem}.actions{flex-direction:column;gap:.65rem;margin-top:.25rem;display:flex}.actions.horizontal{flex-flow:wrap}.player-list,.role-summary,.share-list,.assignment-list{flex-direction:column;gap:.65rem;display:flex}.player-item,.share-item,.assignment-item,.custom-item{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#171311b8;flex-direction:column;gap:.55rem;padding:.85rem;display:flex}.player-item .row.player-row{align-items:end}.custom-item .row{align-items:stretch}.icon-btn{border:1px solid var(--line);color:var(--ink-muted);cursor:pointer;background:0 0;border-radius:12px;flex:0 0 3.05rem;justify-content:center;align-self:end;align-items:center;width:3.05rem;height:3.05rem;padding:0;line-height:1;display:inline-flex}.icon-btn:hover{color:var(--danger);border-color:#e35d4d73}.toggle-list{flex-direction:column;gap:.55rem;display:flex}.toggle{border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;background:#ffffff05;grid-template-columns:1fr auto;align-items:center;gap:.35rem .75rem;padding:.9rem 1rem;display:grid}.toggle .name{font-weight:600}.toggle .blurb{color:var(--ink-muted);grid-column:1;font-size:.85rem}.toggle input{width:1.15rem;height:1.15rem;accent-color:var(--accent)}.count-control{align-items:center;gap:.75rem;display:flex}.count-control strong{font-family:var(--font-display);text-align:center;min-width:2rem;font-size:2rem}.pill-row{flex-wrap:wrap;gap:.45rem;display:flex}.pill{border:1px solid var(--line);color:var(--ink-muted);border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .7rem;font-size:.82rem;display:inline-flex}.pill .dot{background:currentColor;border-radius:50%;width:.45rem;height:.45rem}.pill.mafia{color:#f0b4ac;border-color:#c43c2c59}.pill.town{color:#b7d4be;border-color:#6f9e7a59}.pill.neutral{color:#e6d28a;border-color:#c9a22759}.status{border:1px solid var(--line);color:var(--ink-muted);background:#ffffff08;border-radius:12px;padding:.75rem .9rem;font-size:.9rem}.status.ok{color:#b7d4be;border-color:#6f9e7a59}.status.bad{color:#f0b4ac;border-color:#c43c2c59}.team-tag{letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:600}.team-tag.mafia{color:var(--mafia)}.team-tag.town{color:var(--town)}.team-tag.neutral{color:var(--neutral)}.share-actions{flex-wrap:wrap;gap:.45rem;display:flex}.pass-shell{flex-direction:column;justify-content:center;gap:1.25rem;min-height:calc(100dvh - 2.5rem);display:flex}.pass-cover,.pass-reveal{text-align:center;border:1px solid var(--line);min-height:58vh;box-shadow:var(--shadow);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:radial-gradient(80% 70% at 50% 20%,#c43c2c2e,#0000 60%),#171311d9;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:2rem 1.25rem;display:flex}.pass-cover h2,.pass-reveal h2{font-family:var(--font-display);margin:0;font-size:clamp(2.2rem,9vw,3rem);line-height:1}.pass-reveal .role-name{font-family:var(--font-display);margin:0;font-size:clamp(2.6rem,11vw,3.6rem);animation:.38s ease-out reveal}@keyframes reveal{0%{opacity:0;transform:scale(.92)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.pass-cover{animation:2.4s ease-in-out infinite pulse-border}@keyframes pulse-border{0%,to{border-color:#f2e8df1f}50%{border-color:#c43c2c8c}}.hint{color:var(--ink-muted);font-size:.9rem}.empty{color:var(--ink-muted);padding:1rem .2rem;font-size:.95rem}.section-title{font-family:var(--font-display);margin:0;font-size:1.55rem;font-weight:600}.deal-pulse{animation:.52s deal}@keyframes deal{0%{transform:scale(1)}40%{transform:scale(.97)}to{transform:scale(1)}}@media (width>=480px){#app{padding-top:1.75rem}}
