:root{--bg:#17132e;--surface:#241e45;--surface-2:#2e2756;--pink:#ff4f8b;--yellow:#ffd23f;--orange:#ff8a3d;--cyan:#3ee0d0;--grad-party:linear-gradient(120deg, #ff4f8b 0%, #ff7a4f 55%, #ffb23f 100%);--grad-text:linear-gradient(100deg, #ffd23f 0%, #ff9a6b 50%, #ff6fa2 100%);--edge:#0f0c22;--lift:0 4px 0 var(--edge);--lift-accent:0 5px 0 #b8255e;--field:#1b1638;--border:#3d3570;--border-soft:#ffffff14;--text:#fff;--text-2:#bdb6e0;--text-3:#8a82b4;--accent:#ff4f8b;--accent-hover:#ff6a9d;--accent-press:#f03d7a;--accent-soft:#ff4f8b29;--accent-line:#ff4f8ba6;--on-accent:#fff;--live:#4ade80;--danger:#ff6b6b;--danger-soft:#ff6b6b24;--scrim:#0a0818b8;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--gutter:20px;--page-max:480px;--r-sm:10px;--r:16px;--r-lg:22px;--r-full:999px;--h-control:56px;--h-control-sm:40px;--font:"M PLUS Rounded 1c", "Noto Sans JP", system-ui, -apple-system, "Hiragino Maru Gothic ProN", "Hiragino Sans", sans-serif;--font-display:"Dela Gothic One", "M PLUS Rounded 1c", sans-serif;--fs-display:28px;--fs-title:20px;--fs-body:15px;--fs-label:13px;--fs-caption:12px;--ease:cubic-bezier(.2, .8, .2, 1);--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;overscroll-behavior-y:none;font-weight:400;line-height:1.6}h1,h2,h3,p{margin:0}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}button:disabled{cursor:default}input{font:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono{letter-spacing:.08em;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.tabular{font-variant-numeric:tabular-nums}.t-display{font-size:var(--fs-display);letter-spacing:.01em;font-weight:600;line-height:1.3}.t-title{font-size:var(--fs-title);font-weight:600;line-height:1.4}.t-body{font-size:var(--fs-body)}.t-label{font-size:var(--fs-label);color:var(--text-2);font-weight:500}.t-caption{font-size:var(--fs-caption);color:var(--text-2)}.t-muted{color:var(--text-2)}.t-center{text-align:center}.brand{align-items:center;gap:var(--s2);letter-spacing:.06em;color:var(--text);font-size:16px;font-weight:700;display:inline-flex}.brand-lg{gap:var(--s3);letter-spacing:.1em;flex-direction:column;font-size:22px}.brand svg{flex:none;display:block}.btn{justify-content:center;align-items:center;gap:var(--s2);height:var(--h-control);padding:0 var(--s5);border-radius:var(--r);letter-spacing:.02em;transition:background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease), transform .1s var(--ease), opacity .15s;-webkit-user-select:none;user-select:none;white-space:nowrap;font-size:16px;font-weight:600;display:inline-flex}.btn:disabled{opacity:.4}.btn-block{width:100%}.btn-sm{height:var(--h-control-sm);padding:0 var(--s4);border-radius:var(--r-sm);font-size:14px;font-weight:500}.btn-primary{background:linear-gradient(180deg, #ff6a9d, var(--accent));color:var(--on-accent);box-shadow:var(--lift-accent)}.btn-party{background:var(--grad-party);color:#fff;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff40,0 10px 28px -10px #f472b6a6}.btn-party:after{content:"";animation:sweep 2.8s var(--ease) infinite .6s;background:linear-gradient(100deg,#0000 30%,#ffffff47 50%,#0000 70%);position:absolute;inset:0;transform:translate(-100%)}.btn-party:disabled:after{display:none}@keyframes sweep{60%,to{transform:translate(100%)}}.btn-primary:active:not(:disabled){background:var(--accent-press)}.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn-ghost{color:var(--text-2)}.btn-ghost:hover:not(:disabled){color:var(--text)}.btn-danger{background:var(--danger-soft);color:var(--danger)}@keyframes attention{0%,to{box-shadow:0 0 #ff4f8b00}50%{box-shadow:0 0 0 6px #ff4f8b2e}}.text-link{align-items:center;gap:var(--s1);min-height:44px;padding:0 var(--s2);color:var(--text-2);font-size:14px;font-weight:500;display:inline-flex}.text-link:hover{color:var(--text)}.icon-btn{border-radius:var(--r-sm);min-width:40px;height:40px;color:var(--text-2);justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:14px;font-weight:500;transition:background-color .15s,color .15s;display:inline-flex}.icon-btn:hover:not(:disabled),.icon-btn:active:not(:disabled){background:var(--surface);color:var(--text)}.icon-btn:disabled{opacity:.35}.field{gap:var(--s2);flex-direction:column;display:flex}.input{width:100%;height:var(--h-control);padding:0 var(--s4);border-radius:var(--r);border:1px solid var(--border);background:var(--field);color:var(--text);outline:none;font-size:17px;transition:border-color .15s,box-shadow .15s}.input::placeholder{color:var(--text-3)}.form-error{color:var(--danger);font-size:var(--fs-label)}.card{background:linear-gradient(180deg, #28214c, var(--surface));border:1px solid var(--border-soft);border-radius:var(--r-lg);padding:var(--s4);box-shadow:var(--lift)}.section{gap:var(--s3);flex-direction:column;display:flex}.section-head{justify-content:space-between;align-items:center;min-height:24px;display:flex}.chip{height:28px;padding:0 var(--s3);border-radius:var(--r-full);background:var(--surface);border:1px solid var(--border-soft);color:var(--text-2);font-size:var(--fs-caption);white-space:nowrap;align-items:center;gap:6px;font-weight:500;display:inline-flex}.chip-accent{background:var(--accent-soft);color:#ffc2d6;border-color:#0000}.chips{justify-content:center;gap:var(--s2);flex-wrap:wrap;display:flex}.live-dot{background:var(--live);border-radius:50%;flex:none;width:7px;height:7px;box-shadow:0 0 0 3px #4ade8026}.icon-badge{background:var(--accent-soft);width:64px;height:64px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.icon-badge.neutral{background:var(--surface);color:var(--text-2)}.icon-badge.pop{animation:pop .45s var(--ease)}@keyframes pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.avatar{background:var(--pc);color:#12141b;border-radius:50%;flex:none;place-items:center;font-weight:700;line-height:1;transition:opacity .2s,filter .2s;display:inline-grid;box-shadow:inset 0 -2px #0000002e,inset 0 1px #ffffff59}.avatar.dim{opacity:.4;filter:grayscale(.85)}.avatar-wrap{display:inline-flex;position:relative}.avatar-badge{background:var(--accent);width:16px;height:16px;color:var(--on-accent);border:2px solid var(--bg);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-3px;right:-3px}.avatar-badge.host{background:var(--surface-2);color:var(--accent);top:-4px;bottom:auto}.page{min-height:100dvh;max-width:var(--page-max);padding:calc(var(--s5) + var(--safe-t)) var(--gutter) calc(var(--s5) + var(--safe-b));flex-direction:column;margin:0 auto;display:flex}.page-brand{padding:var(--s2) 0;justify-content:center;display:flex}.page-main{justify-content:center;gap:var(--s8);padding:var(--s10) 0;flex-direction:column;flex:1;display:flex}.page-intro{gap:var(--s3);flex-direction:column;display:flex}.page-intro .t-body{color:var(--text-2)}.page-meta{align-items:center;gap:var(--s2);color:var(--text-2);font-size:14px;display:inline-flex}.page-form{gap:var(--s4);flex-direction:column;display:flex}.page-foot{align-items:center;gap:var(--s1);flex-direction:column;display:flex}.divider{background:var(--border-soft);height:1px;margin:var(--s2) 0}.code-form{gap:var(--s2);display:flex}.code-form .input{text-transform:uppercase;letter-spacing:.12em}.code-form .btn{flex:none}.room{height:100dvh;max-width:var(--page-max);flex-direction:column;margin:0 auto;display:flex}.room-header{align-items:center;gap:var(--s2);height:calc(56px + var(--safe-t));padding:var(--safe-t) var(--s3) 0 var(--gutter);flex:none;display:flex}.header-actions{gap:2px;margin-left:auto;display:flex}.conn-banner{margin:0 var(--gutter) var(--s2);padding:var(--s2) var(--s3);border-radius:var(--r-sm);background:var(--surface);color:var(--text-2);font-size:var(--fs-label);text-align:center}.room-main{padding:var(--s2) var(--gutter) var(--s6);gap:var(--s6);-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;display:flex;overflow-y:auto}.action-bar{padding:var(--s3) var(--gutter) calc(var(--s3) + var(--safe-b));border-top:1px solid var(--border-soft);background:var(--bg);flex:none}.action-note{height:var(--h-control);justify-content:center;align-items:center;gap:var(--s2);color:var(--text-2);font-size:14px;display:flex}.status-block{text-align:center;align-items:center;gap:var(--s3);padding:var(--s4) 0 0;flex-direction:column;display:flex}.status-block .t-title{margin-top:var(--s1)}.invite{align-items:center;gap:var(--s4);display:flex}.qr{border-radius:var(--r);background:#fff;flex:none;width:116px;height:116px;padding:8px}.qr img,.qr-empty{width:100%;height:100%;image-rendering:pixelated;display:block}.invite-body{align-items:flex-start;gap:var(--s2);flex-direction:column;min-width:0;display:flex}.invite-code{color:var(--text-2);font-size:14px}.invite-lg{text-align:center;gap:var(--s5);flex-direction:column}.invite-lg .qr{width:min(64vw,248px);height:min(64vw,248px);padding:12px}.invite-lg .invite-body{align-items:center}.people{gap:var(--s2);grid-template-columns:1fr 1fr;margin:0;padding:0;list-style:none;display:grid}.person{align-items:center;gap:var(--s3);width:100%;min-height:52px;padding:var(--s2) var(--s3);border-radius:var(--r);background:var(--surface);border:1px solid var(--border-soft);text-align:left;transition:border-color .15s;display:flex}.person-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:15px;font-weight:500;overflow:hidden}.person-text{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.person-tag{color:var(--text-2);font-size:11px}.settings{gap:var(--s4);flex-direction:column;display:flex}.segment{border-radius:var(--r);background:var(--field);border:1px solid var(--border-soft);grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;padding:3px;display:grid}.segment button{min-height:48px;padding:var(--s1) var(--s2);color:var(--text-2);border-radius:11px;flex-direction:column;justify-content:center;align-items:center;font-size:15px;font-weight:500;line-height:1.35;transition:background-color .15s,color .15s;display:flex}.segment button small{color:var(--text-3);font-size:11px;font-weight:400}.pulse{background:var(--accent);width:10px;height:10px;animation:pulse 1.8s var(--ease) infinite;border-radius:50%}@keyframes pulse{0%{box-shadow:0 0 #ff4f8b80}to{box-shadow:0 0 0 14px #ff4f8b00}}.vote-head{align-items:center;gap:var(--s3);flex-direction:column;display:flex}.progress-head{margin-bottom:var(--s3);justify-content:space-between;align-items:baseline;display:flex}.progress-count{color:var(--text-2);font-size:15px}.progress-count b{color:var(--text);margin-right:2px;font-size:24px;font-weight:600}.bar{border-radius:var(--r-full);background:var(--field);height:6px;overflow:hidden}.bar-fill{border-radius:var(--r-full);background:var(--accent);height:100%;transition:width .4s var(--ease)}.voters{margin:var(--s4) 0 0;gap:var(--s2);flex-wrap:wrap;padding:0;list-style:none;display:flex}.result{gap:var(--s4);flex-direction:column;display:flex}.hero{text-align:center;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--border-soft);place-items:center;min-height:200px;transition:border-color .4s;display:grid;position:relative;overflow:hidden}.hero.shown{border-color:var(--accent-line);background:radial-gradient(120% 90% at 50% 0%, #ff4f8b47, transparent 65%), var(--surface)}.hero-wait{font-size:var(--fs-title);color:var(--text-2);letter-spacing:.06em;font-weight:500;animation:1.1s ease-in-out infinite breathe}.hero-wait.fast{color:var(--text);animation-duration:.35s}@keyframes breathe{50%{opacity:.45}}.hero-inner{align-items:center;gap:var(--s1);padding:var(--s6) var(--s4);animation:hero-in .6s var(--ease);flex-direction:column;display:flex;position:relative}@keyframes hero-in{0%{opacity:0;transform:translateY(8px)scale(.94)}to{opacity:1;transform:none}}.hero-icon{color:var(--accent);margin-bottom:var(--s1)}.hero-names{justify-content:center;gap:2px var(--s4);flex-wrap:wrap;display:flex}.hero-name{letter-spacing:.01em;font-size:clamp(28px,9vw,36px);font-weight:700;line-height:1.25}.hero-votes{color:var(--text-2);font-size:14px}.hero-votes b{color:var(--text);margin-right:2px;font-size:22px;font-weight:600}.you-tag{border-radius:var(--r-full);background:var(--accent-soft);color:#ffc2d6;vertical-align:middle;margin-left:6px;padding:1px 8px;font-size:11px;font-weight:500;display:inline-block}.confetti{pointer-events:none;position:absolute;inset:0}.confetti i{opacity:0;width:6px;height:12px;animation:fall 1.8s var(--ease) forwards;border-radius:2px;position:absolute;top:-10px}@keyframes fall{0%{opacity:1;translate:0}to{opacity:0;translate:0 220px}}.ranking{gap:var(--s2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.rank-row{align-items:center;gap:var(--s3);min-height:56px;padding:var(--s2) var(--s3);border-radius:var(--r);background:var(--surface);border:1px solid var(--border-soft);grid-template-columns:22px 32px minmax(0,1fr) minmax(48px,.8fr) 44px;transition:border-color .3s,background-color .3s,opacity .3s;display:grid}.rank-row.sealed{opacity:.5}.rank-row.opened{animation:row-open .35s var(--ease)}@keyframes row-open{0%{transform:scale(.97)}to{transform:none}}.rank-no{color:var(--text-2);text-align:center;font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.rank-name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:500;overflow:hidden}.rank-row.sealed .rank-name{color:var(--text-3);letter-spacing:.2em}.rank-bar{border-radius:var(--r-full);background:var(--field);height:6px;overflow:hidden}.rank-bar-fill{border-radius:var(--r-full);background:#4a4278;height:100%;display:block}.rank-row.top .rank-bar-fill{background:var(--accent)}.rank-votes{text-align:right;font-size:var(--fs-caption);color:var(--text-2)}.rank-votes b{color:var(--text);font-variant-numeric:tabular-nums;margin-right:1px;font-size:18px;font-weight:600}.avatar-q{background:var(--field);border:1px dashed var(--border);border-radius:50%;width:32px;height:32px}.result-meta{text-align:center;color:var(--text-2);font-size:var(--fs-caption)}.ballots{margin:0;padding:0;list-style:none}.ballots li{align-items:center;gap:var(--s2);border-bottom:1px solid var(--border-soft);grid-template-columns:1fr 20px 1fr;min-height:40px;font-size:14px;display:grid}.ballots li:last-child{border-bottom:0}.b-from{text-align:right;color:var(--text-2)}.b-arrow{color:var(--text-3);place-items:center;display:grid}.b-to{font-weight:500}.fade-in{animation:fade .4s var(--ease)}.sheet-backdrop{z-index:50;background:var(--scrim);justify-content:center;align-items:flex-end;animation:.15s ease-out fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.sheet{width:100%;max-width:var(--page-max);background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-lg) var(--r-lg) 0 0;max-height:88dvh;padding-bottom:var(--safe-b);animation:slide-up .24s var(--ease);border-bottom:0;flex-direction:column;display:flex}@keyframes slide-up{0%{opacity:0;transform:translateY(24px)}}.sheet-grabber{border-radius:var(--r-full);background:var(--border);width:36px;height:4px;margin:var(--s2) auto 0}.sheet-head{padding:var(--s2) var(--s3) var(--s2) var(--gutter);justify-content:space-between;align-items:center;display:flex}.sheet-head h2{font-size:17px;font-weight:600}.sheet-body{padding:var(--s2) var(--gutter) var(--s6);overflow-y:auto}.stack{gap:var(--s3);flex-direction:column;display:flex}.dialog-text{color:var(--text-2);margin-bottom:var(--s2);line-height:1.7}.dialog-text b{color:var(--text);font-weight:600}.list-head{align-items:center;gap:var(--s3);margin-bottom:var(--s2);color:var(--text-2);font-size:14px;display:flex}.history{gap:var(--s2);flex-direction:column;display:flex}.history-item{border-radius:var(--r);background:var(--bg);border:1px solid var(--border-soft);overflow:hidden}.history-item.open{padding-bottom:var(--s3)}.history-item .result{padding:0 var(--s3)}.history-head{align-items:center;gap:var(--s3);width:100%;min-height:56px;padding:var(--s2) var(--s3);text-align:left;display:flex}.history-round{font-size:var(--fs-caption);color:var(--text-2);font-variant-numeric:tabular-nums;flex:none}.history-top{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:15px;font-weight:500;overflow:hidden}.history-chevron{color:var(--text-3);transition:transform .2s}.history-item.open .history-chevron{transform:rotate(180deg)}.overlay{z-index:40;padding:var(--gutter);background:var(--scrim);place-items:center;animation:.2s fade;display:grid;position:fixed;inset:0}.overlay-card{text-align:center;align-items:center;gap:var(--s3);width:100%;max-width:360px;padding:var(--s6) var(--s5) var(--s5);flex-direction:column;display:flex}.overlay-card .btn{margin-top:var(--s2)}.toasts{left:0;right:0;top:calc(var(--s3) + var(--safe-t));z-index:100;align-items:center;gap:var(--s2);padding:0 var(--gutter);pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--s2);max-width:420px;padding:10px var(--s4);border-radius:var(--r-full);background:var(--surface-2);border:1px solid var(--border);animation:toast-in .25s var(--ease);font-size:14px;font-weight:500;display:flex;box-shadow:0 8px 24px -12px #000000b3}.toast svg{flex:none}.toast-error svg{color:var(--danger)}.toast-success svg{color:var(--accent)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}}.grad-text{background:var(--grad-text);color:#0000;-webkit-background-clip:text;background-clip:text}.page-invite{isolation:isolate;position:relative}.party-glow{z-index:-1;pointer-events:none;background:radial-gradient(40% 50% at 30% 40%,#ff4f8b38,#0000 70%),radial-gradient(35% 45% at 75% 30%,#f472b629,#0000 70%);height:70vh;animation:12s ease-in-out infinite alternate glow-drift;position:fixed;inset:-20% -30% auto}@keyframes glow-drift{to{transform:translateY(4%)scale(1.05)}}.page-invite .page-main{gap:var(--s6)}.hero-brand{text-align:center;align-items:center;gap:var(--s3);animation:rise .6s var(--ease) both;flex-direction:column;display:flex}.hero-brand .brand-lg svg{filter:drop-shadow(0 10px 22px #f472b659);animation:4s ease-in-out infinite float}.hero-copy{margin-top:var(--s3);letter-spacing:.02em;font-size:30px;font-weight:700;line-height:1.3}.form-card{padding:var(--s5);animation:rise .6s var(--ease) 80ms both}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}@keyframes float{50%{transform:translateY(-4px)rotate(-2deg)}}.ticket{background:radial-gradient(120% 70% at 50% 0%, #ff4f8b38, transparent 60%), linear-gradient(180deg, #2a2350, var(--surface));box-shadow:var(--lift), 0 30px 60px -30px #ff4f8b73;animation:ticket-in .7s var(--ease) both;border:1px solid #ffffff14;border-radius:24px;position:relative}@keyframes ticket-in{0%{opacity:0;transform:translateY(18px)rotate(-1.2deg)scale(.98)}}.ticket-top{text-align:center;align-items:center;gap:var(--s3);padding:var(--s8) var(--s5) var(--s6);flex-direction:column;display:flex}.ticket-mark{filter:drop-shadow(0 8px 18px #f472b659);animation:4s ease-in-out infinite float}.ticket-eyebrow{letter-spacing:.18em;color:#ffd23f;font-size:11px;font-weight:600}.ticket-title{font-size:21px;font-weight:600;line-height:1.5}.ticket-host{font-size:26px;font-weight:700}.ticket-members{align-items:center;gap:var(--s2);margin-top:var(--s1);flex-direction:column;display:flex}.ticket-count{align-items:center;gap:var(--s2);color:var(--text-2);font-size:14px;display:inline-flex}.ticket-count b{color:var(--text);margin-right:2px;font-size:17px;font-weight:700}.ticket-perforation{height:0;margin:0 var(--s5);border-top:2px dashed #ffffff1a;position:relative}.ticket-perforation:before,.ticket-perforation:after{content:"";background:var(--bg);border-radius:50%;width:22px;height:22px;position:absolute;top:-12px}.ticket-perforation:before{left:calc(-1 * var(--s5) - 12px)}.ticket-perforation:after{right:calc(-1 * var(--s5) - 12px)}.ticket-bottom{padding:var(--s6) var(--s5) var(--s5);gap:var(--s3);flex-direction:column;display:flex}.avatar-stack{align-items:center;display:inline-flex}.avatar-stack-item{margin-left:calc(var(--sz) * -.2);box-shadow:0 0 0 2.5px var(--surface);animation:pop-in .4s var(--ease) backwards;border-radius:50%;position:relative}.avatar-stack-item:first-child{margin-left:0}.avatar-stack-more{margin-left:var(--s2);color:var(--text-2);font-size:13px;font-weight:600}@keyframes pop-in{0%{opacity:0;transform:scale(.4)}70%{transform:scale(1.08)}to{opacity:1;transform:none}}.phase{min-height:0;animation:phase-in .38s var(--ease);flex-direction:column;flex:1;display:flex}@keyframes phase-in{0%{opacity:0;transform:translateY(10px)}}.person-in{animation:pop-in .42s var(--ease) backwards}.cands{gap:var(--s3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.cands-sm{gap:var(--s2);grid-template-columns:repeat(3,minmax(0,1fr))}.cands-xs{gap:var(--s2);grid-template-columns:repeat(4,minmax(0,1fr))}.cand{justify-content:center;align-items:center;gap:var(--s2);min-height:124px;padding:var(--s4) var(--s2) var(--s3);border-radius:var(--r-lg);background:radial-gradient(90% 60% at 50% 0%, color-mix(in srgb, var(--pc) 16%, transparent), transparent 70%), linear-gradient(180deg, #2a2350, var(--surface));box-shadow:var(--lift);text-align:center;animation:pop-in .4s var(--ease) backwards;transition:transform .18s var(--ease), opacity .2s, border-color .2s, box-shadow .2s, filter .2s;border:1.5px solid #0000;flex-direction:column;display:flex;position:relative}.cands-sm .cand{min-height:104px;padding:var(--s3) var(--s1) var(--s2)}.cands-xs .cand{min-height:84px;padding:var(--s2) 2px;gap:var(--s1);border-radius:var(--r)}.cand:active{transform:scale(.95)}.cands.has-selection .cand:not(.selected){opacity:.55;filter:saturate(.5)brightness(.85);transform:scale(.97)}@keyframes chosen{0%{transform:scale(.94)}55%{transform:scale(1.05)translateY(-2px)}to{transform:translateY(-2px)}}.cand-avatar{display:inline-flex;position:relative}.cand.selected .avatar{animation:wiggle .5s var(--ease)}@keyframes wiggle{30%{transform:rotate(-10deg)scale(1.08)}60%{transform:rotate(6deg)scale(1.04)}}.cand-check{background:var(--pc);color:#12141b;border:2.5px solid var(--surface);border-radius:50%;place-items:center;width:22px;height:22px;transition:transform .25s cubic-bezier(.3,1.6,.5,1);display:grid;position:absolute;bottom:-2px;right:-4px;transform:scale(0)}.cand.selected .cand-check{transform:scale(1)}.cand-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:16px;font-weight:600;line-height:1.3;overflow:hidden}.cands-sm .cand-name{font-size:14px}.cands-xs .cand-name{font-size:12px}.cand .you-tag{top:var(--s2);right:var(--s2);margin:0;position:absolute}.vote-cta .avatar{box-shadow:0 0 0 2px #ffffffd9}.vote-cta-label{text-overflow:ellipsis;max-width:9em;overflow:hidden}.ballot-drop .bm-ballot{animation:.9s cubic-bezier(.5,0,.3,1.2) both ballot-drop}.ballot-drop{filter:drop-shadow(0 12px 24px #f472b659)}@keyframes ballot-drop{0%{opacity:0;transform:translateY(-9px)}35%{opacity:1;transform:translateY(-9px)}80%{transform:translateY(3px)}to{transform:translateY(2px)}}.my-vote{align-items:center;gap:var(--s2);padding:6px var(--s3) 6px 6px;border-radius:var(--r-full);background:var(--surface);border:1px solid var(--border-soft);font-size:14px;font-weight:500;display:inline-flex}.my-vote .t-caption{margin-left:var(--s1)}.voters li.voted .avatar{animation:pop-in .45s var(--ease)}.celebrate{text-align:center;align-items:center;gap:var(--s4);padding:var(--s6) 0 var(--s2);flex-direction:column;display:flex}.celebrate-badge{color:#fff;background:var(--grad-party);border-radius:50%;place-items:center;width:96px;height:96px;animation:.7s cubic-bezier(.3,1.5,.5,1) both badge-in;display:grid;position:relative;box-shadow:inset 0 2px #ffffff4d,0 16px 40px -12px #f472b6b3}@keyframes badge-in{0%{opacity:0;transform:scale(.3)rotate(-25deg)}to{opacity:1;transform:none}}.ripple{animation:ripple 2.4s var(--ease) infinite;border:2px solid #ff7a4f99;border-radius:50%;position:absolute;inset:0}.ripple.r2{animation-delay:1.2s}@keyframes ripple{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}.celebrate-title{letter-spacing:.02em;animation:rise .5s var(--ease) .25s both;font-size:30px;font-weight:700}.celebrate .avatar-stack-item{animation-delay:.35s}.dots{gap:6px;display:inline-flex}.dots i{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite dot}.dots i:nth-child(2){background:#ff7a4f;animation-delay:.15s}.dots i:nth-child(3){background:var(--pink);animation-delay:.3s}@keyframes dot{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-7px)}}.btn-climax{height:60px;font-size:18px;animation:.6s cubic-bezier(.3,1.5,.5,1) .3s both climax-in}@keyframes climax-in{0%{opacity:0;transform:translateY(16px)scale(.92)}}.hero.shown{background:radial-gradient(110% 80% at 50% 0%, #ff4f8b52, transparent 62%), radial-gradient(80% 60% at 50% 100%, #f472b629, transparent 70%), var(--surface);border-color:#f472b673;box-shadow:0 24px 60px -30px #f472b699}.hero-wait{font-size:22px;font-weight:700}.hero-rays{pointer-events:none;background:repeating-conic-gradient(#ffffff0d 0deg 8deg,#0000 8deg 22deg);width:520px;height:520px;margin:-260px 0 0 -260px;animation:24s linear infinite spin;position:absolute;top:30%;left:50%;-webkit-mask:radial-gradient(circle,#000 0%,#0000 60%);mask:radial-gradient(circle,#000 0%,#0000 60%)}@keyframes spin{to{transform:rotate(360deg)}}.hero-winners{justify-content:center;gap:var(--s4);margin-bottom:var(--s2);display:flex}.hero-winner{flex-direction:column;align-items:center;animation:.7s cubic-bezier(.3,1.6,.5,1) both winner-in;display:inline-flex;position:relative}.hero-winner .avatar{box-shadow:0 0 0 3px #ffffffe6, 0 0 0 9px color-mix(in srgb, var(--pc) 30%, transparent), 0 18px 30px -12px var(--pc)}.hero-crown{color:#ffd46b;filter:drop-shadow(0 2px 6px #ffd46b80);margin-bottom:2px;animation:.6s cubic-bezier(.3,1.6,.5,1) .25s both crown-drop}@keyframes winner-in{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:none}}@keyframes crown-drop{0%{opacity:0;transform:translateY(-16px)rotate(-20deg)}to{opacity:1;transform:none}}.hero-name{text-shadow:0 0 24px #ff7a4f8c,0 2px #0000004d}.rank-row.opened{border-left:3px solid var(--pc,var(--border))}.rank-bar-fill{background:var(--pc,#4a4278);opacity:.85}.rank-row.top{border-color:color-mix(in srgb, var(--pc,var(--accent)) 60%, transparent);background:linear-gradient(90deg, color-mix(in srgb, var(--pc,var(--accent)) 18%, var(--surface)), var(--surface))}.rank-row.top .rank-bar-fill{background:var(--pc,var(--accent));opacity:1}@media (height<=680px){.page-main{padding:var(--s6) 0;gap:var(--s6)}.cand{min-height:108px}.ticket-top{padding-top:var(--s6)}.hero{min-height:168px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background:radial-gradient(#ffffff09 1px, transparent 1.4px) 0 0 / 18px 18px, radial-gradient(70% 45% at 15% 0%, #ff4f8b29, transparent 70%), radial-gradient(60% 40% at 100% 10%, #ffb23f1a, transparent 70%), var(--bg);background-attachment:fixed}.t-display,.hero-copy,.celebrate-title,.hero-wait{font-family:var(--font-display);letter-spacing:.02em;font-weight:400}.t-title{font-weight:800}.t-label{font-weight:700}.brand{letter-spacing:.04em;font-weight:800}.brand-lg{font-family:var(--font-display);letter-spacing:.08em;font-size:26px;font-weight:400}.btn{letter-spacing:.04em;border-radius:var(--r);font-weight:800;transition:transform 80ms,box-shadow 80ms,filter .15s,opacity .15s}.btn:active:not(:disabled){transform:translateY(4px)}.btn-primary{background:var(--accent);box-shadow:0 5px #b8255e}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:active:not(:disabled){box-shadow:0 1px #b8255e}.btn-party{background:var(--grad-party);text-shadow:0 1px #78143259;box-shadow:0 5px #b8255e}.btn-party:active:not(:disabled){box-shadow:0 1px #b8255e}.btn-secondary{background:var(--surface-2);border:2px solid var(--border);box-shadow:0 4px 0 var(--edge)}.btn-secondary:active:not(:disabled){box-shadow:0 0 0 var(--edge)}.btn-danger{box-shadow:0 4px 0 var(--edge);border:2px solid #ff6b6b59}.btn:disabled{opacity:.45;box-shadow:0 4px 0 var(--edge);filter:saturate(.4)}.btn-attention{animation:attention-pop 1.6s var(--ease) infinite}@keyframes attention-pop{0%,to{filter:brightness()}50%{filter:brightness(1.12)}}.icon-btn{font-weight:700}.input{border-width:2px;font-weight:700}.input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.card{background:var(--surface);box-shadow:var(--lift);border:2px solid #ffffff12}.chip{background:var(--surface-2);height:30px;color:var(--text-2);border:0;font-weight:700}.chip-accent{background:var(--accent-soft);color:#ffb3cc}.you-tag{background:var(--yellow);color:#2a1a00;font-weight:800}.icon-badge{background:var(--accent-soft);color:var(--accent)}.person{box-shadow:0 3px 0 var(--edge);border:2px solid #ffffff0f}.person.me{border-color:var(--accent-line)}.person-name{font-weight:700}.segment{border:2px solid #ffffff0f;padding:4px}.segment button{font-weight:800}.segment button.on{background:var(--accent);color:#fff;box-shadow:0 3px #b8255e}.segment button.on small{color:#ffffffd9}.pulse{background:var(--yellow)}.party-glow{background:radial-gradient(40% 50% at 25% 40%,#ff4f8b47,#0000 70%),radial-gradient(35% 45% at 80% 30%,#ffb23f33,#0000 70%)}.hero-copy{font-size:32px;line-height:1.35}.ticket{background:radial-gradient(120% 70% at 50% 0%, #ff4f8b33, transparent 60%), var(--surface);box-shadow:0 6px 0 var(--edge), 0 30px 60px -30px #ff4f8b80;border:2px solid #ffffff14}.ticket-eyebrow{background:var(--yellow);color:#2a1a00;letter-spacing:.12em;border-radius:10px;padding:5px 12px;font-size:12px;font-weight:800;display:inline-block;transform:rotate(-3deg);box-shadow:0 3px #c79a12}.ticket-title{font-size:20px;font-weight:800}.ticket-host{font-family:var(--font-display);color:var(--yellow);font-size:28px;font-weight:400}.ticket-perforation{border-top-color:#ffffff24}.cand{background:radial-gradient(90% 60% at 50% 0%, color-mix(in srgb, var(--pc) 22%, transparent), transparent 72%), var(--surface);box-shadow:0 5px 0 var(--edge);border:2px solid #ffffff12}.cand:active{box-shadow:0 2px 0 var(--edge);transform:translateY(3px)}.cand-name{font-weight:800}.cand .avatar{box-shadow:inset 0 -3px #0000002e,0 3px #0000004d}.cand.selected{border-color:var(--pc);background:radial-gradient(100% 80% at 50% 0%, color-mix(in srgb, var(--pc) 38%, transparent), transparent 78%), var(--surface-2);box-shadow:0 5px 0 color-mix(in srgb, var(--pc) 55%, #000), 0 0 0 4px color-mix(in srgb, var(--pc) 22%, transparent);animation:.42s cubic-bezier(.3,1.6,.5,1) chosen-pop;transform:translateY(-3px)rotate(-1.5deg)}@keyframes chosen-pop{0%{transform:scale(.92)}60%{transform:scale(1.06)rotate(-3deg)}to{transform:translateY(-3px)rotate(-1.5deg)}}.cand-check{width:26px;height:26px}.bar{height:10px}.bar-fill{background:var(--grad-party)}.progress-count b{font-family:var(--font-display);font-size:28px;font-weight:400}.celebrate-badge{box-shadow:0 6px #b8255e,0 18px 40px -12px #ff4f8bb3}.ripple{border-color:#ffb23fb3}.celebrate-title{font-size:34px}.dots i{background:var(--pink)}.dots i:nth-child(2){background:var(--orange)}.dots i:nth-child(3){background:var(--yellow)}.hero{box-shadow:0 6px 0 var(--edge);border:2px solid #ffffff12}.hero.shown{background:radial-gradient(110% 80% at 50% 0%, #ff4f8b52, transparent 62%), radial-gradient(80% 60% at 50% 100%, #ffb23f33, transparent 70%), var(--surface);box-shadow:0 6px 0 var(--edge), 0 24px 60px -30px #ffb23f99;border-color:#ffd23fb3}.hero-wait{color:var(--text);font-size:30px}.hero-wait.fast{color:var(--yellow)}.hero-rays{background:repeating-conic-gradient(#ffd23f17 0deg 8deg,#0000 8deg 22deg)}.hero-name{text-shadow:0 0 24px #ff7a4f99,0 3px #00000059;font-weight:800}.hero-votes b{font-family:var(--font-display);color:var(--yellow);font-size:30px;font-weight:400}.rank-row{box-shadow:0 3px 0 var(--edge);border:2px solid #ffffff0f}.rank-row.opened{border-left-width:5px}.rank-row.top{border-color:var(--yellow);box-shadow:0 4px #a07a0a,0 0 0 3px #ffd23f2e}.rank-no{font-family:var(--font-display);font-size:18px;font-weight:400}.rank-row.top .rank-no{color:var(--yellow)}.rank-name{font-weight:800}.rank-bar{height:10px}.rank-votes b{font-family:var(--font-display);font-weight:400}.sheet{border:2px solid #ffffff14;border-bottom:0}.sheet-head h2{font-weight:800}.toast{box-shadow:0 4px 0 var(--edge);border-width:2px;font-weight:700}.history-item{border:2px solid #ffffff0f}
