@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-full-italic-BHALq22K.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-full-italic-B8-t4Nou.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-full-italic-D2JnYqd-.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--sand:#e8c690;--sand-2:#dfb87d;--cream:#fbf1de;--cream-2:#f5e4c3;--navy:#173a5e;--navy-2:#10263f;--pink:#efb5d3;--pink-2:#c4709f;--ink:#10263f;--muted:#7a6446;--line:#d4b07a;--go:#2f8f5b;--danger:#c8442f;--warn:#f2a93b;--p1:var(--navy);--p1-text:#fff;--p2:var(--pink);--p2-text:var(--navy-2);--font-display:"Fraunces Variable", Georgia, serif;--font-body:"DM Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--stripes:repeating-linear-gradient(90deg, var(--pink) 0 22px, var(--navy) 22px 34px);--stripes-fine:repeating-linear-gradient(90deg, var(--pink) 0 10px, var(--navy) 10px 15px);font-family:var(--font-body);color:var(--ink);background:var(--sand);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--sand)}button,input{font:inherit}button{cursor:pointer}.display{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "WONK" 1, "opsz" 144;letter-spacing:-.01em;font-style:italic;font-weight:900}.display .amp{vertical-align:.05em;margin:0 .3em 0 .22em;font-size:.5em;font-weight:800}.muted{color:var(--muted)}.small{font-size:.85em}.dot{border-radius:50%;width:10px;height:10px;display:inline-block}.dot.on{background:var(--go)}.dot.off{background:var(--danger)}.spinner{border:4px solid var(--line);border-top-color:var(--navy);border-radius:50%;width:42px;height:42px;margin:0 auto 20px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.vote-page{min-height:100dvh;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);flex-direction:column;display:flex}.vote-header{justify-content:space-between;align-items:center;padding:18px 20px 10px;display:flex}.vote-brand{color:var(--navy);font-size:30px;line-height:1}.vote-subtitle{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:4px;font-size:13px;font-weight:600}.vote-main{flex:1;justify-content:center;align-items:center;padding:16px 20px 32px;display:flex}.vote-main>*{width:100%;max-width:480px}.info{text-align:center}.info h2{color:var(--navy);margin:0 0 8px;font-size:30px}.vote-question{text-align:center;color:var(--navy);margin:0 0 28px;font-size:clamp(26px,7.5vw,36px);line-height:1.12}.vote-buttons{flex-direction:column;gap:16px;display:flex}.vote-btn{border:3px solid var(--navy-2);word-break:break-word;min-height:120px;box-shadow:0 6px 0 var(--navy-2);-webkit-tap-highlight-color:transparent;border-radius:22px;padding:26px 20px 20px;font-size:clamp(30px,9vw,42px);transition:transform 80ms,box-shadow 80ms,opacity .2s;position:relative;overflow:hidden}.vote-btn:before{content:"";height:10px;position:absolute;inset:0 0 auto}.vote-btn:active:not(:disabled){box-shadow:0 2px 0 var(--navy-2);transform:translateY(4px)}.vote-btn.p1{background:var(--p1);color:var(--p1-text)}.vote-btn.p1:before{opacity:.25;background:repeating-linear-gradient(90deg,#fff 0 3px,#0000 3px 14px)}.vote-btn.p2{background:var(--p2);color:var(--p2-text)}.vote-btn.p2:before{background:var(--stripes-fine)}.vote-btn:disabled{opacity:.5}.vote-btn.is-pending{opacity:1;animation:.7s ease-in-out infinite alternate pulse}@keyframes pulse{to{transform:scale(.97)}}.vote-live .muted{text-align:center;margin-top:20px}.vote-done{text-align:center}.vote-done-badge{border:3px solid var(--navy-2);border-radius:22px;margin-bottom:20px;padding:30px 24px 24px;position:relative;overflow:hidden}.vote-done-badge span{text-transform:uppercase;letter-spacing:.12em;opacity:.8;font-size:13px;font-weight:700;display:block}.vote-done-badge strong{word-break:break-word;margin-top:6px;font-size:42px;display:block}.vote-done-badge.p1{background:var(--p1);color:var(--p1-text)}.vote-done-badge.p2{background:var(--p2);color:var(--p2-text)}.vote-done-badge.p2:before{content:"";background:var(--stripes-fine);height:10px;position:absolute;inset:0 0 auto}.vote-last{text-align:center;color:var(--navy);margin:0 0 18px;font-weight:700}.test-banner{background:var(--warn);color:var(--navy-2);text-align:center;padding:8px 12px;font-size:14px;font-weight:700}.beamer-viewport{background:#000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.stage{background:var(--sand);color:var(--navy);transform-origin:50%;flex:none;position:relative;overflow:hidden}.b-screen{animation:.5s cubic-bezier(.22,1,.36,1) screen-in;position:absolute;inset:0}@keyframes screen-in{0%{opacity:0;transform:translateY(24px)}}.b-brand{color:var(--navy);z-index:2;font-size:56px;line-height:1;position:absolute;top:40px;left:60px}.b-offline{background:var(--danger);color:#fff;z-index:3;border-radius:14px;padding:12px 28px;font-size:28px;font-weight:700;position:absolute;top:30px;left:50%;transform:translate(-50%)}.b-test{background:var(--warn);color:var(--navy-2);letter-spacing:.08em;z-index:3;border-radius:12px;padding:8px 20px;font-size:26px;font-weight:800;position:absolute;top:44px;right:60px}.b-qr{justify-content:center;align-items:center;gap:120px;padding:80px 120px;display:flex}.b-qr-text{max-width:900px}.b-qr-title{color:var(--navy);margin:0;font-size:190px;line-height:.95}.b-qr-subtitle{color:var(--navy);opacity:.85;margin:18px 0 60px;font-size:54px}.b-qr-cta{margin:0 0 30px;font-size:44px;font-weight:600;line-height:1.3}.b-url{background:var(--navy);color:var(--cream);border-radius:16px;padding:10px 28px;font-size:46px;font-weight:700;display:inline-block}.b-qr-code{background:var(--cream);border:8px solid var(--navy);box-shadow:16px 16px 0 var(--navy);border-radius:44px;padding:30px;line-height:0;transform:rotate(2deg)}.b-question{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:130px 160px 100px;display:flex}.b-q-text{color:var(--navy);margin:0 0 90px;font-size:104px;line-height:1.05}.b-versus{align-items:center;gap:60px;display:flex}.b-vs{color:var(--navy);font-size:90px}.b-q-footer{min-height:54px;margin-top:70px;font-size:42px;font-weight:600}.player-card{border:6px solid var(--navy-2);width:620px;box-shadow:14px 14px 0 var(--navy-2);text-align:center;border-radius:44px;padding:70px 30px 50px;transition:transform .4s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden}.player-card:before{content:"";height:26px;position:absolute;inset:0 0 auto}.player-card.p1{background:var(--p1);color:var(--p1-text)}.player-card.p1:before{opacity:.2;background:repeating-linear-gradient(90deg,#fff 0 4px,#0000 4px 26px)}.player-card.p2{background:var(--p2);color:var(--p2-text)}.player-card.p2:before{background:var(--stripes)}.player-name{overflow-wrap:anywhere;font-size:96px;line-height:1}.b-results{flex-direction:column;justify-content:center;padding:130px 160px 70px;display:flex}.b-r-question{text-align:center;color:var(--navy);margin:0 0 36px;font-size:62px;line-height:1.08}.b-r-columns{justify-content:space-between;align-items:flex-end;margin-bottom:26px;display:flex}.b-r-col.p2{text-align:right}.b-r-name{font-size:72px;line-height:1}.b-r-pct{font-variant-numeric:tabular-nums;font-size:180px;line-height:.95}.b-r-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:40px;font-weight:600}.b-r-col.hidden .b-r-pct{animation:1.6s ease-in-out infinite wobble;display:inline-block}.b-r-col.p2.hidden .b-r-pct{animation-delay:.8s}@keyframes wobble{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}.b-bar{background:var(--cream-2);border:6px solid var(--navy-2);border-radius:60px;height:120px;position:relative;overflow:hidden}.b-bar.hidden{background:repeating-linear-gradient(-45deg, var(--cream-2) 0 26px, var(--cream) 26px 52px);background-size:200% 100%;animation:3s linear infinite barber}@keyframes barber{to{background-position:-147px 0}}.b-bar-1,.b-bar-2{transition:width .6s cubic-bezier(.22,1,.36,1);position:absolute;top:0;bottom:0}.b-bar.animating .b-bar-1,.b-bar.animating .b-bar-2{transition:none}.b-bar-1{background:var(--p1);left:0}.b-bar-2{background:var(--stripes);right:0}.b-r-total{text-align:center;font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:24px;margin-top:24px;font-size:40px;font-weight:600;display:flex}.b-live{background:var(--danger);color:#fff;letter-spacing:.08em;border-radius:10px;padding:6px 16px;font-size:26px;font-weight:800;animation:1.4s ease-in-out infinite blink}@keyframes blink{50%{opacity:.45}}.b-waiting{justify-content:center;align-items:center;display:flex}.b-waiting h1{color:var(--navy);font-size:130px}.admin{flex-direction:column;gap:20px;max-width:1440px;margin:0 auto;padding:24px;display:flex}.admin-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-header h1{color:var(--navy);margin:0;font-size:40px;line-height:1}.admin-header h1 small{font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);vertical-align:middle;margin-left:12px;font-size:14px;font-style:normal;font-weight:700}.admin-header-right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}@media (width<=900px){.admin-grid{grid-template-columns:1fr}}.card{background:var(--cream);border:3px solid var(--navy-2);box-shadow:5px 5px 0 var(--navy-2);border-radius:18px;padding:20px}.card h2{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:0 0 16px;font-size:14px;font-weight:800}.btn{border:2px solid var(--navy-2);background:var(--cream);color:var(--navy-2);white-space:nowrap;box-shadow:0 3px 0 var(--navy-2);border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:9px 16px;font-weight:700;text-decoration:none;transition:transform 60ms,box-shadow 60ms;display:inline-flex}.btn:active:not(:disabled){box-shadow:0 1px 0 var(--navy-2);transform:translateY(2px)}.btn:hover:not(:disabled){background:#fff}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.small{padding:5px 12px;font-size:14px}.btn.primary,.btn.primary:hover:not(:disabled){background:var(--navy);color:#fff}.btn.go,.btn.go:hover:not(:disabled){background:var(--go);color:#fff}.btn.danger,.btn.danger:hover:not(:disabled){background:var(--danger);color:#fff}.btn.reveal,.btn.reveal:hover:not(:disabled){background:var(--pink);color:var(--navy-2);width:100%;padding:14px 18px;font-size:18px}.pill{background:var(--cream);border:2px solid var(--navy-2);border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600}.pill.ok{color:var(--go)}.pill.bad{color:var(--danger)}.pill.warn{background:var(--warn);color:var(--navy-2);font-weight:800}.error-banner{background:var(--danger);color:#fff;cursor:pointer;border-radius:10px;padding:12px 16px;font-weight:600}.error{color:var(--danger);font-weight:600}.screen-buttons{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.screen-btn{padding:20px 10px;font-size:16px}.screen-btn.active,.screen-btn.active:hover:not(:disabled){background:var(--navy);color:#fff}.reveal-row{margin-top:14px}.admin input{border:2px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:10px 14px}.admin input:focus{border-color:var(--navy);outline:none}.stack-form{flex-direction:column;gap:10px;display:flex}.stack-form label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;font-weight:700;display:flex}.two-col{grid-template-columns:1fr 1fr;gap:10px;display:grid}.event-controls{flex-direction:column;align-items:flex-start;gap:18px;display:flex}.toggle{cursor:pointer;align-items:center;gap:14px;display:flex}.toggle input{opacity:0;pointer-events:none;width:1px;position:absolute}.toggle-track{background:var(--line);border:2px solid var(--navy-2);border-radius:15px;flex:none;width:52px;height:30px;transition:background .2s;position:relative}.toggle-track:after{content:"";border:2px solid var(--navy-2);box-sizing:border-box;background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .2s;position:absolute;top:2px;left:2px}.toggle.on .toggle-track{background:var(--warn)}.toggle.on .toggle-track:after{transform:translate(22px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--navy);outline-offset:2px}.toggle small{font-size:13px;display:block}.icon-btn{color:var(--muted);background:0 0;border:none;padding:2px 6px;font-size:11px}.icon-btn:disabled{opacity:.25;cursor:default}.icon-btn.big{border:2px solid var(--navy-2);width:36px;height:36px;color:var(--navy-2);background:#fff;border-radius:8px;font-size:20px;font-weight:700}.current-q{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.current-q-text{color:var(--navy);font-size:30px;line-height:1.1}.mini-bars{flex-direction:column;gap:10px;width:100%;display:flex}.mini-bar{grid-template-columns:minmax(120px,220px) 1fr 70px;align-items:center;gap:12px;font-size:18px;font-weight:700;display:grid}.mini-bar span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mini-bar div{background:var(--cream-2);border:2px solid var(--navy-2);border-radius:12px;height:24px;overflow:hidden}.mini-bar i{height:100%;transition:width .4s;display:block}.mini-bar.p1 i{background:var(--p1)}.mini-bar.p2 i{background:var(--stripes-fine)}.mini-bar b{text-align:right;font-variant-numeric:tabular-nums}.badge{text-transform:uppercase;letter-spacing:.08em;background:var(--cream-2);border:1.5px solid var(--navy-2);border-radius:6px;padding:3px 9px;font-size:11px;font-weight:800}.badge.live{background:var(--go);color:#fff}.badge.locked{background:var(--navy);color:#fff}.new-question{gap:10px;margin-bottom:16px;display:flex}.question-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.question-item{border:2px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:40px 1fr auto;align-items:center;gap:14px;padding:12px 14px;display:grid}.question-item.state-live{border-color:var(--go);box-shadow:0 0 0 2px var(--go) inset}.question-item.state-locked{background:var(--cream-2)}.question-item.state-locked .qi-text{color:var(--muted)}.qi-order{color:var(--muted);flex-direction:column;align-items:center;font-weight:800;display:flex}.qi-body{min-width:0}.qi-text{overflow-wrap:anywhere;margin-bottom:6px;font-weight:700}.qi-meta{align-items:center;gap:12px;font-size:14px;display:flex}.qi-edit{gap:8px;margin-bottom:6px;display:flex}.qi-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.admin-login{justify-content:center;align-items:center;min-height:100dvh;padding:20px;display:flex}.admin-login form{flex-direction:column;gap:14px;width:100%;max-width:380px;display:flex}.admin-login h1{color:var(--navy);margin:0;font-size:44px}.admin-login input{border:2px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;padding:12px 14px}@media (width<=700px){.question-item{grid-template-columns:32px 1fr}.qi-actions{grid-column:1/-1;justify-content:flex-start}.new-question{flex-direction:column}}.race{flex-direction:column;gap:34px;display:flex}.lane{grid-template-columns:230px 1fr 260px;align-items:center;gap:30px;display:grid}.lane-name{text-align:right;overflow-wrap:anywhere;font-size:76px;line-height:1}.lane-track{border:6px solid var(--navy-2);background:var(--cream);border-radius:28px;height:210px;position:relative;overflow:hidden}.lane-track:before{content:"";background:repeating-linear-gradient(90deg, var(--line) 0 40px, transparent 40px 70px);height:6px;position:absolute;bottom:22px;left:0;right:0}.race.hidden .lane-track:before,.race.animating .lane-track:before{animation:.5s linear infinite road}@keyframes road{to{background-position:-70px 0}}.lane-finish{background:repeating-conic-gradient(var(--navy-2) 0 25%, #fff 0 50%) 0 0 / 22px 22px;border-left:4px solid var(--navy-2);width:44px;position:absolute;top:0;bottom:0;right:0}.lane-trail{height:16px;transition:width .8s cubic-bezier(.22,1,.36,1);position:absolute;bottom:0;left:0}.lane.p1 .lane-trail{background:var(--p1)}.lane.p2 .lane-trail{background:var(--stripes)}.lane-rider{width:250px;transition:left .8s cubic-bezier(.22,1,.36,1);position:absolute;bottom:18px}.race.animating .lane-rider,.race.animating .lane-trail{transition:none}.race.hidden .lane-rider{animation:.9s ease-in-out infinite alternate ready}.race.hidden .lane.p2 .lane-rider{animation-delay:.45s}@keyframes ready{to{transform:translate(10px)rotate(-2deg)}}.lane-result{text-align:left}.lane-pct{font-variant-numeric:tabular-nums;font-size:130px;line-height:.95}.race.hidden .lane-pct{animation:1.6s ease-in-out infinite wobble;display:inline-block}.lane-votes{color:var(--muted);font-variant-numeric:tabular-nums;font-size:34px;font-weight:600}.bike{width:100%;display:block;overflow:visible}.bike .wheel-spokes{transform-box:fill-box;transform-origin:50%}.bike.riding .wheel-spokes{animation:.35s linear infinite spin}.bike.riding .leg-front{animation:.35s ease-in-out infinite alternate pedal}.bike.riding .leg-back{animation:.35s ease-in-out infinite alternate-reverse pedal}@keyframes pedal{0%{transform:translateY(-4px)}to{transform:translateY(4px)}}.bike.riding{animation:.35s ease-in-out infinite alternate bob}@keyframes bob{to{transform:translateY(-3px)}}
