:root{color-scheme:light dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;background:var(--tg-theme-bg-color, #1c1c1e);color:var(--tg-theme-text-color, #f5f5f7);-webkit-font-smoothing:antialiased}.screen{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1.5rem;text-align:center}.emoji-lg{font-size:4rem;line-height:1}.title{font-size:1.5rem;font-weight:700;margin:0}.subtitle{font-size:.9375rem;color:var(--tg-theme-hint-color, #8e8e93);max-width:28ch;margin:0 auto}.pulse{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.4}}.btn{background:var(--tg-theme-button-color, #3390ec);color:var(--tg-theme-button-text-color, #fff);border:none;border-radius:.75rem;padding:.75rem 1.5rem;font-size:1rem;font-family:inherit;cursor:pointer}.btn:focus-visible{outline:2px solid var(--tg-theme-link-color, #3390ec);outline-offset:2px}.screen-top{justify-content:flex-start;padding-top:2.5rem;gap:1.25rem}.btn-primary{width:100%;max-width:26rem;font-weight:700}.btn-secondary{background:var(--tg-theme-secondary-bg-color, #2c2c2e);color:var(--tg-theme-text-color, #f5f5f7)}.btn-ghost{background:transparent;color:var(--tg-theme-hint-color, #8e8e93);border:1px solid var(--tg-theme-hint-color, #48484a)}.row{display:flex;gap:.5rem;width:100%;max-width:26rem}.input{flex:1;min-width:0;background:var(--tg-theme-secondary-bg-color, #2c2c2e);color:var(--tg-theme-text-color, #f5f5f7);border:1px solid var(--tg-theme-hint-color, #48484a);border-radius:.75rem;padding:.75rem 1rem;font-size:1rem;font-family:inherit}.input:focus-visible{outline:2px solid var(--tg-theme-link-color, #3390ec);outline-offset:1px}.code-input{text-align:center;letter-spacing:.35em;font-weight:700;text-transform:uppercase}.error-text{color:#ff6b6b;font-size:.875rem;margin:0;max-width:30ch}.lobby-header{display:flex;flex-direction:column;gap:.25rem}.game-title{font-size:1.25rem;font-weight:700;margin:0}.section-title{font-size:.875rem;font-weight:600;color:var(--tg-theme-hint-color, #8e8e93);margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.04em}.code-block{display:flex;flex-direction:column;gap:.25rem;align-items:center}.code-badge{font-size:2rem;font-weight:800;letter-spacing:.3em;margin:0;padding:.5rem 1rem;border-radius:.75rem;background:var(--tg-theme-secondary-bg-color, #2c2c2e);font-variant-numeric:tabular-nums}.players,.name-editor{width:100%;max-width:26rem}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.player-row{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;border-radius:.75rem;background:var(--tg-theme-secondary-bg-color, #2c2c2e)}.avatar{width:2.25rem;height:2.25rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;background:var(--tg-theme-button-color, #3390ec);color:var(--tg-theme-button-text-color, #fff);flex-shrink:0;overflow:hidden}.avatar-lg{width:3.5rem;height:3.5rem;font-size:1.25rem}.avatar-img{width:100%;height:100%;object-fit:cover;display:block}.player-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{font-size:.75rem;flex-shrink:0}.badge-self{color:var(--tg-theme-hint-color, #8e8e93);border:1px solid var(--tg-theme-hint-color, #48484a);border-radius:999px;padding:.125rem .5rem}.game{width:100%;max-width:26rem;display:flex;flex-direction:column;gap:1rem;position:relative}.round-label{font-size:.875rem;color:var(--tg-theme-hint-color, #8e8e93);margin:0 auto;letter-spacing:.04em;text-transform:uppercase;text-align:center}.question-card{background:var(--tg-theme-secondary-bg-color, #2c2c2e);border-radius:1rem;padding:1.25rem;min-height:7rem;display:flex;align-items:center;justify-content:center}.question-card.reveal{animation:reveal .6s ease-out}@keyframes reveal{0%{opacity:0;transform:translateY(.75rem) scale(.97)}to{opacity:1;transform:none}}.question-text{font-size:1.125rem;font-weight:700;text-align:center;margin:0}.timer{position:relative;height:1.5rem;border-radius:.75rem;background:var(--tg-theme-secondary-bg-color, #2c2c2e);overflow:hidden}.timer-fill{height:100%;background:var(--tg-theme-button-color, #3390ec);transition:width .25s linear}.timer-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.8125rem;font-weight:700;color:var(--tg-theme-button-text-color, #fff);font-variant-numeric:tabular-nums}.vote-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.vote-cell{position:relative;display:flex;flex-direction:column;align-items:center;gap:.375rem;padding:.875rem .5rem;border-radius:.875rem;border:2px solid transparent;background:var(--tg-theme-secondary-bg-color, #2c2c2e);color:var(--tg-theme-text-color, #f5f5f7);font-family:inherit;cursor:pointer}.vote-cell.selected{border-color:var(--tg-theme-button-color, #3390ec);background:color-mix(in srgb,var(--tg-theme-button-color, #3390ec) 18%,var(--tg-theme-secondary-bg-color, #2c2c2e))}.vote-name{font-size:.875rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vote-check{position:absolute;top:.375rem;right:.5rem;color:#34c759;font-weight:700}.bars{display:flex;flex-direction:column;gap:.5rem}.bar-row{display:grid;grid-template-columns:minmax(6rem,40%) 1fr 1.75rem;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:.75rem;background:var(--tg-theme-secondary-bg-color, #2c2c2e)}.bar-row.winner{outline:2px solid #ffd60a}.bar-name{font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{height:.875rem;border-radius:999px;background:var(--tg-theme-hint-color, #48484a);overflow:hidden}.bar-fill{height:100%;border-radius:999px;background:var(--tg-theme-button-color, #3390ec);transition:width .6s ease-out}.bar-count{font-size:.875rem;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.final-title{text-align:center;font-size:1.5rem;margin:0}.podium{display:flex;flex-direction:column;gap:.5rem}.podium-step{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:.875rem;background:var(--tg-theme-secondary-bg-color, #2c2c2e)}.podium-step.step-1{outline:2px solid #ffd60a}.medal{font-size:1.5rem}.podium-score{margin-left:auto;font-weight:700}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:10}.confetti-piece{position:absolute;top:-2rem;font-size:1.25rem;animation:confetti-fall linear forwards}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(110vh) rotate(360deg);opacity:0}}
