:root{--red: #ee4140;--red-dark: #cf3130;--red-wash: #fff1f0;--sun: #ffc53d;--sun-deep: #b8860b;--sun-wash: #fff7e3;--teal: #17b3a3;--teal-deep: #0b7c70;--teal-wash: #e6f7f5;--green: #2fa55c;--green-dark: #248a4b;--grape: #7a5cd6;--grape-wash: #f2eeff;--sky: #2e8fb8;--sky-wash: #e8f4fa;--ink: #1b1f2a;--ink-60: #5d6472;--ink-35: #9aa1ad;--paper: #fff8f3;--card: #ffffff;--line: #ece2da;--accent: var(--red);--accent-wash: var(--red-wash);--r-sm: 10px;--r-md: 16px;--r-lg: 24px;--r-pill: 999px;--shadow: 0 1px 2px rgba(27, 31, 42, .05), 0 8px 24px rgba(27, 31, 42, .06);--ease: cubic-bezier(.22, 1, .36, 1);--spring: cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:ui-rounded,SF Pro Rounded,Segoe UI Variable Display,Segoe UI,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button{font:inherit;color:inherit;cursor:pointer}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.shell{max-width:560px;margin:0 auto;padding:0 18px calc(env(safe-area-inset-bottom) + 24px);min-height:100%;display:flex;flex-direction:column}.shell.fixed{flex:1 1 auto;height:auto;min-height:0;padding-top:10px;padding-bottom:0;overflow:hidden;width:100%}.center-stage{flex:1;display:flex;flex-direction:column;justify-content:center;gap:22px;padding:40px 0}.logo{height:34px;width:auto;display:block;mix-blend-mode:multiply}.logo.lg{height:auto;width:min(300px,82%)}.ballot-root{height:100dvh;display:flex;flex-direction:column;overflow:hidden}.appbar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px 10px;border-bottom:1px solid var(--line)}h1{font-size:clamp(32px,8.5vw,44px);line-height:1.02;letter-spacing:-.028em;margin:10px 0 0;font-weight:800}.lede{color:var(--ink-60);font-size:16px;line-height:1.5;margin:0}.tiny{font-size:13px;color:var(--ink-35)}.btn{border:0;border-radius:var(--r-pill);padding:15px 26px;font-size:16px;font-weight:700;background:var(--red);color:#fff;transition:transform .16s var(--spring),background .16s var(--ease);width:100%}.btn:active{transform:scale(.97)}.btn:disabled{background:var(--ink-35);cursor:not-allowed}.btn.ghost{background:transparent;color:var(--ink-60);font-weight:600}.btn.quiet{background:var(--card);color:var(--ink);border:1.5px solid var(--line)}.btn.accent{background:var(--accent)}.btn.go{background:var(--green)}.btn.go:active{background:var(--green-dark)}.confirmbar{animation:confirmIn .24s var(--spring) both}@keyframes confirmIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.chosen{font-size:13px;color:var(--ink-60);text-align:center;padding-bottom:8px;font-weight:620}.chosen strong{color:var(--ink)}.field{width:100%;border:2px solid var(--line);background:var(--card);border-radius:var(--r-pill);padding:12px 18px;font-size:16px;color:var(--ink);transition:border-color .16s var(--ease),box-shadow .16s var(--ease)}.field:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-wash)}.error{background:var(--red-wash);color:var(--red-dark);border-radius:var(--r-sm);padding:11px 14px;font-size:14px;font-weight:600}.topbar{flex:none;padding-bottom:10px}.progress-track{height:6px;background:var(--line);border-radius:var(--r-pill);overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:var(--r-pill);transition:width .45s var(--ease),background .45s var(--ease)}.progress-meta{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.counter{display:inline-block;background:var(--accent-wash);color:var(--accent);border-radius:var(--r-pill);padding:4px 12px;font-size:12px;font-weight:800;letter-spacing:.04em}.qrow{display:flex;align-items:center;justify-content:space-between;gap:12px}.skiplink{background:none;border:0;padding:6px 2px;font-size:14px;font-weight:650;color:var(--ink-35);text-decoration:underline;text-underline-offset:3px}.skiplink:active{color:var(--ink-60)}.cat-title{font-size:clamp(23px,6.2vw,30px);font-weight:800;letter-spacing:-.025em;line-height:1.12;margin:10px 0 12px}.question-enter{animation:questionIn .42s var(--ease) both}@keyframes questionIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.list-enter{animation:listIn .42s var(--ease) .05s both}@keyframes listIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.qhead{flex:none}.group-choice{display:grid;gap:12px}.groupcard{display:flex;flex-direction:column;align-items:flex-start;gap:3px;border:2px solid var(--line);background:var(--card);border-radius:var(--r-lg);padding:20px 22px;text-align:left;transition:transform .15s var(--spring),border-color .15s var(--ease),background .15s var(--ease)}.groupcard:active:not(:disabled){transform:scale(.98)}.groupcard:disabled{opacity:.5;cursor:not-allowed}.groupcard-name{font-size:22px;font-weight:800;letter-spacing:-.02em}.groupcard-sub{font-size:13px;color:var(--ink-35);font-weight:600}.groupcard.immersion:not(:disabled){border-color:var(--teal)}.groupcard.immersion .groupcard-name{color:var(--teal-deep)}.groupcard.challenge:not(:disabled){border-color:var(--grape)}.groupcard.challenge .groupcard-name{color:#5b3fb0}.groupcard.voted{opacity:1;background:var(--paper);border-color:var(--line)}.groupcard.voted .groupcard-name{color:var(--ink-35)}.groupcard.voted .groupcard-sub{color:var(--teal-deep);font-weight:700}.review{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-md);overscroll-behavior:contain}.review-row{display:flex;align-items:baseline;gap:12px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:11px 15px}.review-row:last-child{border-bottom:0}.review-row:active{background:var(--paper)}.review-cat{flex:1;min-width:0;font-size:13px;color:var(--ink-35);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-pick{flex:none;max-width:48%;font-size:15px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-pick.empty{color:var(--ink-35);font-weight:600;font-style:italic}.namelist{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-md);overscroll-behavior:contain}.nameopt{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:13px 16px;font-size:16px;font-weight:560;color:var(--ink);transition:background .12s var(--ease),color .12s var(--ease)}.nameopt:last-child{border-bottom:0}.nameopt:active{background:var(--paper)}.nameopt-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nameopt-tick{flex:none;opacity:0;color:currentColor;transition:opacity .12s var(--ease)}.nameopt[aria-selected=true]{background:var(--accent-wash);color:var(--accent);font-weight:750}.nameopt[aria-selected=true] .nameopt-tick{opacity:1}.list-pane{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:2px 2px 8px;-webkit-mask-image:linear-gradient(#000 calc(100% - 20px),transparent);mask-image:linear-gradient(#000 calc(100% - 20px),transparent)}.name-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.name-pill{display:block;width:100%;text-align:left;background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-pill);padding:11px 14px;font-size:14px;font-weight:620;line-height:1.2;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:transform .13s var(--spring),border-color .13s var(--ease),background .13s var(--ease),color .13s var(--ease)}.name-pill:active{transform:scale(.96)}.name-pill[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff;animation:pop .28s var(--spring)}@keyframes pop{0%{transform:scale(.92)}60%{transform:scale(1.04)}to{transform:scale(1)}}.navbar{flex:none;display:flex;gap:10px;padding:10px 0 calc(env(safe-area-inset-bottom) + 12px)}.result-card{background:var(--card);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow);margin-bottom:14px;border-top:4px solid var(--accent);animation:listIn .5s var(--ease) backwards}.result-title{font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}.winner{display:flex;align-items:center;gap:13px}.winner+.winner{margin-top:20px;padding-top:20px;border-top:1px dashed var(--line)}.result-card.reveal-result .winner+.winner{margin-top:26px;padding-top:26px}.avatar{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:15px;color:#fff;letter-spacing:-.02em}.winner .avatar{width:52px;height:52px;font-size:19px}.winner-name{font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.15}.person-role{font-size:12.5px;color:var(--ink-35);line-height:1.3;margin-top:1px}.votes-pill{margin-left:auto;flex:none;background:var(--sun-wash);color:var(--sun-deep);border-radius:var(--r-pill);padding:5px 12px;font-size:13px;font-weight:750}.runners{margin-top:13px;padding-top:13px;border-top:1px solid var(--line)}.runner{display:flex;align-items:center;gap:10px;font-size:14.5px;padding:5px 0;color:var(--ink-60)}.place{flex:none;width:22px;font-weight:750;font-size:12.5px;color:var(--ink-35)}.runner .count{margin-left:auto;font-weight:700;color:var(--ink-35);font-size:13px}.empty-cat{color:var(--ink-35);font-size:15px;font-style:italic}.reveal-root{min-height:100dvh;display:flex;flex-direction:column}.reveal-progress{max-width:560px;width:100%;margin:0 auto;padding:10px 18px 0}.reveal-stage{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;max-width:560px;width:100%;margin:0 auto;padding:20px 18px}.reveal-card{padding:8px 0}.result-card.reveal-result{margin-bottom:0;padding:26px 22px;border-top-width:5px}.result-card.reveal-result .result-title{font-size:13px;margin-bottom:18px}.winner-big{flex-direction:column;align-items:flex-start;gap:14px}.winner-big .winner-name{font-size:clamp(26px,7vw,34px)}.winner-big .votes-pill{margin-left:0}@keyframes winnerIn{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}.reveal-nav{flex:none;display:flex;gap:10px;max-width:560px;width:100%;margin:0 auto;padding:0 18px 10px}.reveal-exit{flex:none;max-width:560px;width:100%;margin:0 auto;padding-bottom:calc(env(safe-area-inset-bottom) + 16px)}.preview-flag{display:inline-block;background:var(--sun-wash);color:var(--sun-deep);border:1.5px solid var(--sun);border-radius:var(--r-pill);padding:7px 15px;font-size:13px;font-weight:700;margin:0}.roster{display:flex;flex-direction:column}.roster-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--line);font-size:14.5px}.roster-row.off .roster-name{color:var(--ink-35);text-decoration:line-through}.roster-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-tally{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.gpill{border-radius:var(--r-pill);padding:5px 12px;font-size:12.5px;font-weight:700}.gpill.imm{background:var(--teal-wash);color:var(--teal-deep)}.gpill.chl{background:var(--grape-wash);color:#5b3fb0}.gpill.both{background:var(--sun-wash);color:var(--sun-deep)}.gpill.none{background:var(--line);color:var(--ink-60)}.bulk-row{margin-bottom:14px}.warn-note{background:var(--sun-wash);border:1.5px solid var(--sun);color:var(--sun-deep);border-radius:var(--r-sm);padding:10px 13px;font-size:13px;font-weight:650;margin:0 0 14px}.gtag{flex:none;border-radius:var(--r-pill);padding:3px 11px;font-size:11.5px;font-weight:750;letter-spacing:.02em}.gtag.immersion{background:var(--teal-wash);color:var(--teal-deep)}.gtag.challenge{background:var(--grape-wash);color:#5b3fb0}.gtag.both{background:var(--sun-wash);color:var(--sun-deep)}.gtag.none{background:var(--line);color:var(--ink-60)}.grouptoggle{display:flex;gap:4px;flex:none}.gbtn{border:1.5px solid var(--line);background:var(--card);color:var(--ink-35);border-radius:var(--r-pill);padding:4px 10px;font-size:11.5px;font-weight:750;letter-spacing:.02em;transition:background .14s var(--ease),color .14s var(--ease),border-color .14s var(--ease)}.gbtn.imm.on{background:var(--teal);border-color:var(--teal);color:#fff}.gbtn.chl.on{background:var(--grape);border-color:var(--grape);color:#fff}.gbtn.both.on{background:var(--sun-deep);border-color:var(--sun-deep);color:#fff}.gbtn:disabled{opacity:.45}@media(max-width:400px){.gbtn{padding:4px 7px;font-size:11px}.roster-row{gap:7px}}.xbtn{flex:none;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--line);background:var(--card);color:var(--ink-35);font-size:17px;line-height:1;display:grid;place-items:center;transition:background .14s var(--ease),color .14s var(--ease),border-color .14s var(--ease)}.xbtn:hover:not(:disabled){background:var(--red-wash);color:var(--red);border-color:var(--red)}.xbtn:disabled{opacity:.4}.sealed{text-align:center;padding:44px 20px;background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow)}.big-check{width:76px;height:76px;border-radius:50%;background:var(--teal);display:grid;place-items:center;margin:0 auto 20px;animation:pop .5s var(--spring)}.turnout{display:inline-flex;align-items:center;gap:7px;background:var(--teal-wash);color:var(--teal-deep);border-radius:var(--r-pill);padding:6px 13px;font-size:13px;font-weight:650}.confetti-row{display:flex;gap:6px;justify-content:center;margin-bottom:18px}.confetti-row span{width:10px;height:10px;border-radius:3px;animation:bob 1.4s var(--ease) infinite}.confetti-row span:nth-child(1){background:var(--red);animation-delay:0s}.confetti-row span:nth-child(2){background:var(--sun);animation-delay:.1s}.confetti-row span:nth-child(3){background:var(--teal);animation-delay:.2s}.confetti-row span:nth-child(4){background:var(--grape);animation-delay:.3s}.confetti-row span:nth-child(5){background:var(--sky);animation-delay:.4s}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
