:root { color-scheme: dark; font-family: Arial, Helvetica, sans-serif; background: #111; color: #fff; accent-color: #fff; }
* { box-sizing: border-box; }
html, body { margin: 0; width: 100%; min-height: 100%; background: #111; }
body { min-height: 100dvh; overflow: hidden; }
main { min-height: 100dvh; display: grid; place-content: center; gap: .75rem; padding: 2rem; text-align: center; }
.wordmark { margin: 0; font-size: clamp(2rem, 7vw, 5rem); font-weight: 800; letter-spacing: -.05em; }
#status, .label { margin: 0; color: #aaa; }
.actions { display: grid; gap: .75rem; width: min(28rem, 100%); margin: 1rem auto 0; }
button, input { min-height: 3rem; border: 1px solid #444; border-radius: .5rem; padding: .75rem 1rem; font: inherit; }
button { background: #fff; color: #111; border-color: #fff; cursor: pointer; font-weight: 700; }
button:disabled { opacity: .5; cursor: wait; }
input { min-width: 0; background: #1b1b1b; color: #fff; }
#session { margin-top: 1rem; }
.qr { display: grid; place-items: center; width: min(42vw, 18rem); aspect-ratio: 1; margin: 0 auto .75rem; padding: .5rem; background: #fff; border-radius: .5rem; }
.qr svg { display: block; width: 100%; height: 100%; }
.code { margin: .2rem 0; font-size: clamp(2.5rem, 12vw, 6rem); font-weight: 800; letter-spacing: .15em; }
.players { margin: .4rem 0; color: #ccc; }
@media (max-width: 38rem) { main { padding: 1.25rem; } .qr { width: min(62vw, 15rem); } }
