:root{--bg-1: #2a0f63;--bg-2: #13052f;--brand: #46178f;--brand-2: #6d3fd4;--ink: #1f1b2e;--muted: #6b6880;--line: #e9e4f5;--soft: #f6f4fb;--card: #fff;--go: #26890c;--bad: #c4162f;--a0: #e21b3c;--a1: #1368ce;--a2: #d89e00;--a3: #26890c;--radius: 18px;--shadow: 0 1px 0 rgba(255, 255, 255, .5) inset, 0 18px 40px rgba(10, 0, 40, .35);--font: "Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;font:600 16px/1.45 var(--font);color:#fff;background:radial-gradient(1100px 600px at 0% -10%,rgba(124,58,237,.4),transparent 60%),radial-gradient(900px 520px at 110% 0%,rgba(219,39,119,.25),transparent 60%),linear-gradient(170deg,var(--bg-1),var(--bg-2));background-attachment:fixed;-webkit-font-smoothing:antialiased}button,input{font:inherit}a{color:inherit}code{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.9em;background:var(--soft);padding:1px 5px;border-radius:5px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.screen{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px}.wordmark{display:inline-flex;align-items:center;gap:10px;font-size:18px;font-weight:900;letter-spacing:-.01em;text-decoration:none}.wordmark-shapes{display:grid;grid-template-columns:repeat(2,14px);gap:2px}.wordmark-shapes span{display:grid}.topbar-link{font-size:14px;color:#ffffffb3;text-decoration:none}.topbar-link:hover{color:#fff;text-decoration:underline}.page{flex:1;width:100%;max-width:640px;margin:0 auto;padding:8px 16px 48px;display:flex;flex-direction:column;gap:18px}.page.wide{max-width:1100px}.page.center{align-items:center;justify-content:safe center;text-align:center;padding-bottom:12vh}.hero-title{font-size:clamp(28px,6vw,44px);font-weight:900;line-height:1.1;letter-spacing:-.02em;text-align:center}.hero-sub{max-width:40em;margin:-6px auto 0;color:#ffffffc7;text-align:center}.card{width:100%;padding:22px;background:var(--card);color:var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);text-align:left}.card h2{margin-bottom:12px;font-size:18px;font-weight:900;color:var(--brand)}.muted{color:var(--muted)}.muted-light{color:#ffffffb8}.small{font-size:13px}.center-text{text-align:center}.label{font-size:14px;font-weight:800;color:var(--muted)}.stack{display:flex;flex-direction:column;gap:12px}.text-input,.code-input{width:100%;padding:13px 14px;font-size:18px;font-weight:800;text-align:center;color:var(--ink);background:var(--soft);border:2px solid var(--line);border-radius:12px}.code-input{padding-left:calc(14px + .3em);font-size:30px;letter-spacing:.3em;text-transform:uppercase}.text-input:focus,.code-input:focus{outline:none;border-color:var(--brand-2);background:#fff;box-shadow:0 0 0 4px #6d3fd433}::placeholder{color:#c4bdd8}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;font-size:16px;font-weight:900;text-decoration:none;border:0;border-bottom:4px solid rgba(0,0,0,.22);border-radius:12px;cursor:pointer;transition:transform .06s,filter .15s}.btn:hover:not(:disabled){filter:brightness(1.08)}.btn:active:not(:disabled){transform:translateY(2px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible,.answer:focus-visible,.preset:focus-visible,.chip-x:focus-visible{outline:3px solid #fff;outline-offset:2px}.btn-primary{background:var(--brand);color:#fff}.btn-go{background:var(--go);color:#fff}.btn-light{background:#fff;color:var(--brand)}.btn-ghost-dark{background:var(--soft);color:var(--brand);border-bottom-color:#d9d2ec}.btn-block{width:100%}.btn-big{padding:16px 32px;font-size:20px}.link-btn{margin-left:10px;padding:0;background:none;border:0;color:#c4b5fd;font-weight:800;text-decoration:underline;cursor:pointer}.join-card{max-width:380px;display:flex;flex-direction:column;gap:12px;text-align:center}.host-cta{display:flex;flex-direction:column;align-items:center;gap:10px;color:#fffc}.spinner-wrap{display:flex;flex-direction:column;align-items:center;gap:14px;font-size:18px;font-weight:800}.spinner{width:44px;height:44px;border:5px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.hint{max-width:320px}.notice{max-width:460px;text-align:center}.notice h2{font-size:20px;color:var(--ink)}.notice.bad h2{color:var(--bad)}.notice>p{margin-bottom:16px}.notice-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}.chooser{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px;align-items:start}.dropzone{display:flex;align-items:center;justify-content:center;gap:12px;padding:26px;color:var(--muted);text-align:center;background:var(--soft);border:2px dashed #cfc6ea;border-radius:14px;cursor:pointer;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.over{background:#f0ebff;border-color:var(--brand-2)}.dropzone:focus-within{outline:3px solid rgba(109,63,212,.35)}.dropzone strong{color:var(--brand)}.dropzone-icon{flex:none;width:40px;height:40px;display:grid;place-items:center;font-size:20px;color:var(--brand);background:#fff;border-radius:50%}.parse-result{margin-top:14px;padding:14px;display:flex;flex-direction:column;gap:10px;border-radius:12px}.parse-result.ok{background:#eaf7e6;color:#1d5c10}.parse-result.bad{background:#fde8ec;color:#9b1028}.problems{padding-left:18px;font-size:14px}.format-help{margin-top:16px;padding-top:14px;font-size:14.5px;border-top:1px solid var(--line)}.format-help summary{margin-bottom:8px;font-weight:900;color:var(--brand);cursor:pointer}.format-help p,.format-help ul{margin-bottom:10px}.format-help ul{padding-left:18px;color:#3d3852}.format-help li{margin:4px 0}.csv-header{display:block;margin-bottom:10px;padding:10px 12px;overflow-x:auto;font-size:13px;font-weight:700;white-space:nowrap;color:#e9e3ff;background:var(--ink);border-radius:10px}.table-scroll{margin-bottom:12px;overflow-x:auto}.csv-example{min-width:100%;border-collapse:collapse;font-size:13px}.csv-example th,.csv-example td{padding:6px 8px;text-align:left;white-space:nowrap;border:1px solid var(--line)}.csv-example th{font-family:ui-monospace,Consolas,monospace;font-weight:800;color:var(--brand);background:var(--soft)}.preset-list{display:flex;flex-direction:column;gap:10px}.preset{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;font-weight:900;color:var(--ink);text-align:left;background:var(--soft);border:2px solid var(--line);border-radius:12px;cursor:pointer;transition:border-color .15s,transform .15s}.preset:hover:not(:disabled){background:#fff;border-color:var(--brand-2);transform:translateY(-1px)}.preset-count{font-size:13px;font-weight:700;color:var(--muted);white-space:nowrap}.form-error{font-weight:800;color:var(--bad);text-align:center}.lobby{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:18px}.join-panel{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}.join-panel .label strong{color:var(--ink)}.code-tiles{display:flex;gap:8px}.code-tiles span{width:64px;height:76px;display:grid;place-items:center;font-size:44px;font-weight:900;color:var(--brand);background:var(--soft);border:2px solid var(--line);border-bottom-width:5px;border-radius:14px}.qr-wrap{display:flex;flex-direction:column;align-items:center;gap:4px}.qr{border-radius:10px;box-shadow:0 0 0 1px var(--line)}.players-panel{display:flex;flex-direction:column;gap:12px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.panel-head h2{margin:0}.count{margin-left:6px;padding:0 10px;font-size:14px;color:#fff;vertical-align:2px;background:var(--brand);border-radius:999px}.toggle{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:800;color:var(--muted);cursor:pointer}.toggle input{width:18px;height:18px;accent-color:var(--brand)}.chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:5px 6px 5px 14px;font-weight:800;background:var(--soft);border:2px solid var(--line);border-radius:999px;animation:pop .25s ease-out}.chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip.gone{opacity:.45}.chip-x{flex:none;width:26px;height:26px;font-size:18px;line-height:1;color:var(--muted);background:transparent;border:0;border-radius:50%;cursor:pointer}.chip-x:hover{color:var(--bad);background:#fde8ec}.empty-note{padding:18px 0;text-align:center}.lobby-foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.quiz-meta{color:#fffc}.keep-open{font-size:14px;color:#fff9;text-align:center}.q-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}.pill{padding:6px 14px;font-size:14px;font-weight:800;background:#ffffff24;border:1px solid rgba(255,255,255,.2);border-radius:999px}.progress{height:8px;overflow:hidden;background:#ffffff26;border-radius:999px}.progress div{height:100%;background:#fff;border-radius:inherit;transition:width .3s}.q-counter{font-weight:800;color:#ffffffbf;text-align:center}.question-card{padding:28px 24px;font-size:clamp(22px,3.4vw,38px);font-weight:900;line-height:1.2;color:var(--ink);text-align:center;overflow-wrap:anywhere;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);animation:rise .3s ease-out}.question-card.small{padding:20px 18px;font-size:clamp(20px,5.5vw,28px)}.answers{display:grid;grid-template-columns:1fr 1fr;gap:12px}.answers.player{grid-template-columns:1fr}.answer{display:flex;align-items:center;gap:14px;min-height:72px;padding:16px 18px;font-size:clamp(17px,2.2vw,24px);font-weight:900;color:#fff;text-align:left;border:0;border-radius:14px;box-shadow:0 4px #00000040;animation:rise .3s ease-out both}.answer .shape{flex:none}.answer-text{flex:1;overflow-wrap:anywhere}button.answer{cursor:pointer;transition:transform .06s,filter .15s,box-shadow .06s}button.answer:hover{filter:brightness(1.1)}button.answer:active{transform:translateY(2px);box-shadow:0 2px #00000040}.a0{background:var(--a0)}.a1{background:var(--a1)}.a2{background:var(--a2)}.a3{background:var(--a3)}.a0-ink{color:#ff5c77}.a1-ink{color:#4d9bff}.a2-ink{color:#ffc23d}.a3-ink{color:#4cc72f}.answer.dim{opacity:.35}.answer.correct{box-shadow:0 0 0 4px #fff,0 4px #00000040}.answer-check{margin-left:auto;font-size:28px}.host-row{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px}.answered-list{flex:1;list-style:none;display:flex;flex-wrap:wrap;gap:6px}.answered-list li{padding:4px 12px;font-size:14px;font-weight:800;color:#ffffffa6;background:#ffffff1a;border-radius:999px}.answered-list li.done{color:var(--go);background:#fff}.host-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}.locked-in{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:8px;text-align:center}.locked-in .answer{width:100%;animation:none}.locked-title{font-size:24px;font-weight:900}.results-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:18px;align-items:start}.answer-bars{display:flex;justify-content:center;align-items:stretch;gap:22px;height:150px;margin-top:18px}.bar-col{width:60px;display:flex;flex-direction:column;align-items:center;gap:6px}.bar-count{font-size:18px;font-weight:900}.bar-track{flex:1;width:100%;display:flex;align-items:flex-end}.bar{width:100%;border-radius:8px 8px 0 0;transform-origin:bottom;animation:grow .5s ease-out both}.bar-dim{opacity:.35}.bar-shape{display:flex;align-items:center;gap:4px;font-weight:900}.bar-tick{color:#fff}.verdict{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;padding:18px;font-size:26px;font-weight:900;border-radius:var(--radius);animation:pop .35s ease-out}.verdict.good{background:var(--go)}.verdict.bad{background:var(--bad)}.verdict.none{background:#ffffff26}.verdict-emoji{font-size:30px}.verdict-gain{padding:2px 12px;font-size:20px;background:#ffffff38;border-radius:999px}.rank-line{font-size:18px;text-align:center}.youre-in,.final-rank{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.big-emoji{font-size:56px;line-height:1;animation:pop .4s ease-out}.leaderboard{list-style:none;display:flex;flex-direction:column;gap:8px}.lb-row{display:flex;align-items:center;gap:12px;padding:10px 14px;font-weight:800;background:var(--soft);border-radius:12px}.lb-row.me{background:#f0ebff;box-shadow:inset 0 0 0 2px var(--brand-2)}.lb-row.disconnected{opacity:.45}.lb-rank{flex:none;width:28px;height:28px;display:grid;place-items:center;font-size:14px;color:#fff;background:var(--brand);border-radius:50%}.lb-rank.rank-1{background:#f5b301;color:#3d2a00}.lb-rank.rank-2{background:#b8bcc8;color:#22252e}.lb-rank.rank-3{background:#d08a4f;color:#331a05}.lb-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-tag{font-size:13px;font-weight:700;color:var(--muted)}.lb-check{width:20px;font-weight:900;color:var(--go)}.lb-gain{font-weight:900;color:var(--go);animation:pop .35s ease-out}.lb-score{min-width:56px;font-weight:900;text-align:right;font-variant-numeric:tabular-nums}.podium{display:flex;align-items:flex-end;justify-content:center;gap:12px;margin-top:10px}.podium-spot{flex:1;max-width:200px;padding:16px 10px;color:var(--ink);text-align:center;background:#fff;border-radius:16px 16px 0 0;box-shadow:var(--shadow);animation:rise-tall .6s ease-out both}.podium-spot.place-1{min-height:200px;animation-delay:.5s}.podium-spot.place-2{min-height:150px;animation-delay:.25s}.podium-spot.place-3{min-height:115px}.podium-spot.empty{background:transparent;box-shadow:none}.podium-medal{font-size:36px}.podium-name{overflow:hidden;font-size:18px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.podium-score{font-size:22px;font-weight:900;color:var(--brand)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.05);opacity:1}to{transform:scale(1)}}@keyframes rise{0%{transform:translateY(10px);opacity:0}}@keyframes rise-tall{0%{transform:translateY(40px);opacity:0}}@keyframes grow{0%{transform:scaleY(0)}}@media(min-width:560px){.answers.player{grid-template-columns:1fr 1fr}}@media(max-width:820px){.chooser,.lobby,.results-grid{grid-template-columns:1fr}}@media(max-width:560px){.topbar{padding:12px 16px}.card{padding:18px}.answers{grid-template-columns:1fr}.code-tiles span{width:52px;height:62px;font-size:36px}.lobby-foot{flex-direction:column;align-items:stretch;text-align:center}}
