:root{--bg: #121214;--bg2: #1b1b1f;--fg: #f2f0eb;--muted: #97939d;--accent: #d3a84c;--accent2: #b08a35;--accent-ink: #1c1505;--ok: #3fbf8f;font-family:Noto Sans,Noto Sans Devanagari,system-ui,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);min-height:100dvh}#root,.app{min-height:100dvh;display:flex;flex-direction:column;max-width:520px;margin:0 auto;padding:env(safe-area-inset-top) 16px env(safe-area-inset-bottom)}.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 0}.brand{font-weight:900;font-size:1.1rem;letter-spacing:.5px}.lang-picker{background:var(--bg2);color:var(--fg);border:1px solid #ffffff22;border-radius:10px;padding:8px 10px;font-family:inherit;font-size:.95rem}.screen{flex:1;display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:8px 0 24px}.title{font-size:2.2rem;font-weight:900;text-align:center;margin:24px 0 0}.tagline{text-align:center;color:var(--muted);margin:0 0 18px;line-height:1.5}.btn{font-family:inherit;font-weight:700;font-size:1rem;border:none;border-radius:14px;padding:14px 18px;cursor:pointer;color:var(--fg);background:#ffffff14;transition:transform .06s ease,filter .15s ease}.btn:active{transform:scale(.97)}.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.08)}.btn.secondary{background:#ffffff1f;border:1px solid #ffffff2a}.btn.big{font-size:1.15rem;padding:16px 20px}.btn.link{background:none;color:var(--muted);font-weight:400;padding:8px}.btn.link.danger{color:#ff8fa3}.btn.ghost{opacity:.7}.btn:disabled{opacity:.5}.input{font-family:inherit;font-size:1.05rem;background:#ffffff10;border:1px solid #ffffff26;color:var(--fg);border-radius:14px;padding:14px 16px;width:100%}.input::placeholder{color:var(--muted)}.code-input{text-transform:uppercase;letter-spacing:.5em;text-align:center;font-weight:900;font-size:1.4rem}.checkbox{display:flex;gap:10px;align-items:flex-start;color:var(--muted);font-size:.9rem;line-height:1.45}.checkbox input{width:20px;height:20px;margin-top:2px;accent-color:var(--accent)}.divider{text-align:center;color:var(--muted);margin:10px 0 2px}.share-hint{text-align:center;color:var(--muted);margin:8px 0 0}.room-code{text-align:center;font-size:3.4rem;font-weight:900;letter-spacing:.35em;padding:12px 0 12px .35em;background:#ffffff08;border:1px solid #ffffff1f;border-radius:16px;color:var(--accent)}.player-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0}.player-chip{background:#ffffff14;border-radius:999px;padding:8px 14px;display:flex;align-items:center;gap:8px}.player-chip[data-connected=false]{opacity:.45}.dot{width:8px;height:8px;border-radius:50%;background:#777;display:inline-block}.dot[data-on=true]{background:var(--ok)}.settings{background:#ffffff0a;border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:10px}.settings h4{margin:0}.segmented{display:flex;gap:6px}.seg{flex:1;font-family:inherit;font-weight:700;border:1px solid #ffffff26;background:#ffffff0d;color:var(--muted);border-radius:12px;padding:10px 6px;cursor:pointer}.seg.active{background:var(--accent);color:var(--accent-ink);border-color:transparent}.hint{color:var(--muted);font-size:.85rem;margin:0;text-align:center}.waiting{text-align:center;color:var(--muted);animation:pulse 1.6s ease-in-out infinite}.game-meta{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:.9rem}.card-stage{animation:cardIn .35s cubic-bezier(.2,.9,.3,1.2)}.mode-badge{display:inline-block;font-weight:900;font-size:.8rem;text-transform:uppercase;letter-spacing:1px;border-radius:999px;padding:6px 14px;margin-bottom:-14px;margin-left:14px;position:relative;z-index:1;color:#121214;box-shadow:0 4px 14px #0005}.game-card{border-radius:22px;min-height:220px;display:flex;flex-direction:column;justify-content:center;padding:34px 22px 24px;box-shadow:0 14px 40px #0006}.card-text{font-size:1.45rem;font-weight:700;line-height:1.55;margin:0;color:#fff;text-shadow:0 1px 3px #00000044;overflow-wrap:anywhere}.card-banner{border:1.5px solid;border-radius:14px;padding:10px 14px;font-size:.88rem;line-height:1.5;background:#ffffff08;display:flex;flex-direction:column;gap:2px}.banner-label{font-weight:900;font-size:.72rem;text-transform:uppercase;letter-spacing:1px}.vote-panel h3,.reveal-panel h3{margin:0 0 8px;text-align:center}.vote-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.vote-btn{background:#ffffff14;border:1px solid #ffffff26}.reveal-panel{background:#ffffff0d;border-radius:16px;padding:16px;text-align:center;animation:cardIn .3s ease}.winner{font-size:1.3rem;font-weight:900;margin:4px 0 10px}.tally{list-style:none;padding:0;margin:0;color:var(--muted)}.action-row{display:flex;gap:10px;position:sticky;bottom:12px}.action-row .btn{flex:1;box-shadow:0 8px 24px #0006}.scoreboard{background:#ffffff08;border-radius:16px;padding:12px 16px}.scoreboard h3{margin:0 0 8px;font-size:.95rem;color:var(--muted)}.scoreboard ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.scoreboard li{display:flex;align-items:center;gap:10px}.scoreboard li.me .name{color:var(--ok);font-weight:700}.scoreboard .name{flex:1}.scoreboard .score{color:var(--muted);font-size:.9rem}.end h1{text-align:center}.champion{text-align:center;background:#ffffff0d;border-radius:20px;padding:18px}.champion .trophy{font-size:3rem}.champion p{color:var(--muted);margin:6px 0 2px}.champion h2{margin:0;font-size:2rem}.final-board{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.final-board li{display:flex;gap:12px;background:#ffffff0a;border-radius:12px;padding:12px 16px}.final-board .rank{font-weight:900;color:var(--muted)}.final-board .name{flex:1}.toast{position:fixed;top:14px;left:50%;transform:translate(-50%);z-index:50;border-radius:12px;padding:12px 18px;font-weight:700;max-width:90vw;box-shadow:0 8px 30px #000a;animation:cardIn .25s ease}.toast.error{background:#c1121f}.toast.notice{background:var(--accent2);color:var(--accent-ink)}.conn-banner{text-align:center;background:#b3500a;border-radius:10px;padding:6px;font-size:.85rem;animation:pulse 1.4s ease-in-out infinite}.footer{text-align:center;color:#fff4;font-size:.75rem;padding:10px 0 16px}@keyframes cardIn{0%{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}
