@font-face{font-family:ElectionSans;src:local("Segoe UI Variable"),local("Segoe UI");font-display:swap}
:root{--ink:#14213d;--muted:#66728b;--blue:#159ee4;--turquoise:#16b8a6;--gold:#f4b942;--coral:#ef6f61;--surface:rgba(255,255,255,.9);--shadow:0 18px 50px rgba(34,79,122,.14)}
*{box-sizing:border-box}
html{min-height:100%;background:#eaf8ff}
body{margin:0;font-family:ElectionSans,"Segoe UI",Arial,sans-serif;color:var(--ink);min-height:100vh}
button,a,input,select,textarea{font:inherit}
button,a{touch-action:manipulation}
button{border:0;cursor:pointer}
button:disabled{opacity:.48;cursor:not-allowed}
a{text-decoration:none;color:inherit}
.live-page{background:var(--custom-bg),radial-gradient(circle at 10% 10%,rgba(255,221,121,.42),transparent 28%),radial-gradient(circle at 90% 12%,rgba(76,210,226,.35),transparent 28%),linear-gradient(145deg,#fff8ed 0%,#e8faff 48%,#f6edff 100%);background-size:cover;background-position:center;overflow-x:hidden}
.live-page:before{content:"";position:fixed;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.45),rgba(255,255,255,.74));z-index:-1}
.ambient{position:fixed;inset:0;overflow:hidden;z-index:-1;pointer-events:none}
.ambient span{position:absolute;border-radius:50%;filter:blur(4px);opacity:.45;animation:float 9s ease-in-out infinite}
.ambient span:nth-child(1){width:280px;height:280px;background:#88e5dc;left:-90px;top:30%}
.ambient span:nth-child(2){width:190px;height:190px;background:#ffd874;right:-50px;top:13%;animation-delay:-2s}
.ambient span:nth-child(3){width:240px;height:240px;background:#ffc4c5;right:12%;bottom:-140px;animation-delay:-5s}
.confetti-layer{position:fixed;inset:0;pointer-events:none;background-image:url("../images/confetti.svg");background-size:480px;opacity:.18;z-index:-1}
.live-shell{width:min(1880px,100%);min-height:100vh;margin:auto;padding:clamp(12px,1.4vw,24px);display:flex;flex-direction:column;gap:clamp(10px,1.25vh,16px)}
.live-header{height:clamp(100px,14vh,128px);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;padding:12px 22px;background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.94);border-radius:24px;box-shadow:0 10px 40px rgba(33,93,135,.1);backdrop-filter:blur(14px);position:relative;overflow:hidden}
.live-header:after{content:"";position:absolute;right:0;bottom:0;width:240px;height:5px;background:linear-gradient(90deg,#fff 0 25%,#ef3340 25% 50%,#fff 50% 75%,#ef3340 75%)}
.brand-mark{width:clamp(48px,5vw,70px);height:clamp(48px,5vw,70px);display:grid;place-items:center;border-radius:20px;background:linear-gradient(145deg,#fff,#edfaff);box-shadow:inset 0 0 0 1px rgba(21,158,228,.1)}
.brand-mark img{width:80%;height:80%;object-fit:contain}
.title-block{min-width:0}.eyebrow{display:block;color:#147fae;font-size:clamp(16px,1.45vw,23px);line-height:1.05;font-weight:950;letter-spacing:.055em;text-transform:uppercase;text-shadow:0 2px 10px rgba(20,127,174,.1)}
.title-block h1{font-size:clamp(28px,3vw,48px);line-height:1;margin:6px 0 4px;color:#11213f;font-weight:950;letter-spacing:-.025em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.title-block p{margin:0;color:#647187;font-size:clamp(11px,1.05vw,16px);font-weight:650}
.header-meta{display:flex;align-items:flex-end;flex-direction:column;gap:8px;font-size:clamp(10px,.95vw,14px);font-weight:700;color:#607087;white-space:nowrap}
.live-indicator{padding:7px 12px;border-radius:999px;color:#d83145;background:#fff0f2;letter-spacing:.12em;box-shadow:0 0 0 1px #ffd9df inset}
.live-indicator i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#ec3048;margin-right:5px;box-shadow:0 0 0 5px rgba(236,48,72,.14);animation:livePulse 1.6s infinite}
.candidate-grid{display:grid;grid-template-columns:repeat(var(--candidate-count),minmax(0,1fr));gap:clamp(10px,1.25vw,20px);flex:1;min-height:0}
.candidate-grid.count-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.candidate-grid.count-5,.candidate-grid.count-10{grid-template-columns:repeat(5,minmax(0,1fr))}
.candidate-grid.count-6,.candidate-grid.count-9{grid-template-columns:repeat(3,minmax(0,1fr))}
.candidate-grid.count-7,.candidate-grid.count-8{grid-template-columns:repeat(4,minmax(0,1fr))}
.candidate-grid.count-4 .candidate-card{grid-template-columns:minmax(85px,.65fr) minmax(120px,1.35fr)}
.candidate-grid.count-5 .candidate-card,.candidate-grid.count-7 .candidate-card,.candidate-grid.count-8 .candidate-card,.candidate-grid.count-10 .candidate-card{grid-template-columns:1fr;grid-template-rows:auto 105px 1fr;gap:5px;padding:8px}
.candidate-grid.count-5 .portrait,.candidate-grid.count-7 .portrait,.candidate-grid.count-8 .portrait,.candidate-grid.count-10 .portrait{min-height:105px}
.candidate-grid.count-5 .candidate-info>p,.candidate-grid.count-7 .candidate-info>p,.candidate-grid.count-8 .candidate-info>p,.candidate-grid.count-10 .candidate-info>p{display:none}
.candidate-grid.count-5 .vote-number,.candidate-grid.count-7 .vote-number,.candidate-grid.count-8 .vote-number,.candidate-grid.count-10 .vote-number{font-size:clamp(30px,3vw,48px)}
.candidate-grid.count-5 .rank-badge,.candidate-grid.count-7 .rank-badge,.candidate-grid.count-8 .rank-badge,.candidate-grid.count-10 .rank-badge{width:100%;min-height:58px;gap:7px;padding:5px 9px;margin-bottom:6px;border-width:1px;border-radius:14px;right:auto;top:auto}.candidate-grid.count-5 .rank-badge img,.candidate-grid.count-7 .rank-badge img,.candidate-grid.count-8 .rank-badge img,.candidate-grid.count-10 .rank-badge img{width:31px;height:31px}.candidate-grid.count-5 .rank-copy span,.candidate-grid.count-7 .rank-copy span,.candidate-grid.count-8 .rank-copy span,.candidate-grid.count-10 .rank-copy span{font-size:8px}.candidate-grid.count-5 .rank-copy strong,.candidate-grid.count-7 .rank-copy strong,.candidate-grid.count-8 .rank-copy strong,.candidate-grid.count-10 .rank-copy strong{font-size:30px}
.candidate-card{--rank:#5aafdc;min-width:0;background:var(--surface);border:2px solid color-mix(in srgb,var(--accent),white 72%);border-radius:clamp(20px,2vw,30px);box-shadow:var(--shadow);padding:clamp(10px,1.1vw,18px);position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(112px,.8fr) minmax(150px,1.2fr);grid-template-rows:auto 1fr;gap:8px clamp(10px,1.25vw,22px);transition:transform .45s ease,border-color .45s,box-shadow .45s}
.candidate-card:before{content:"";position:absolute;inset:0;background:linear-gradient(145deg,color-mix(in srgb,var(--accent),transparent 88%),transparent 42%);pointer-events:none}
.candidate-card.rank-1{--rank:#e5a81c;border-color:#f1bd3f;box-shadow:0 16px 50px rgba(224,164,28,.22),0 0 0 3px rgba(255,211,91,.2)}
.candidate-card.rank-2{--rank:#8d9aaa;border-color:#b5c2ce;box-shadow:0 16px 45px rgba(103,125,145,.18),0 0 0 3px rgba(219,229,238,.36)}
.candidate-card.rank-3{--rank:#c8753c;border-color:#d89262;box-shadow:0 16px 45px rgba(193,106,48,.16),0 0 0 3px rgba(224,151,98,.18)}
.rank-aura{position:absolute;width:70%;height:170px;top:-110px;left:15%;border-radius:50%;background:var(--rank);filter:blur(35px);opacity:.18;animation:auraGlow 2.7s ease-in-out infinite;pointer-events:none}
.rank-badge{position:relative;z-index:4;width:min(100%,250px);min-height:clamp(88px,12vh,116px);flex:0 0 auto;align-self:center;display:flex;align-items:center;justify-content:center;gap:clamp(10px,1.2vw,18px);margin:0 auto clamp(10px,1.5vh,17px);background:linear-gradient(145deg,#fffef6,#fff0ad);color:#8f5b00;padding:9px 16px;border:2px solid #f1bd3f;border-radius:22px;font-weight:950;box-shadow:0 11px 28px rgba(173,116,13,.2),inset 0 1px 0 #fff;animation:rankBadgeFloat 3s ease-in-out infinite;overflow:hidden}.rank-badge:before{content:"";position:absolute;width:100px;height:100px;right:-35px;top:-45px;border-radius:50%;background:currentColor;opacity:.07}.rank-badge img{width:clamp(48px,4.5vw,70px);height:clamp(48px,4.5vw,70px);object-fit:contain;filter:drop-shadow(0 4px 6px rgba(127,79,8,.2))}.rank-copy{display:flex;flex-direction:column;align-items:flex-start;line-height:.85}.rank-copy span{font-size:clamp(11px,1vw,15px);font-weight:950;letter-spacing:.13em}.rank-copy strong{font-family:Consolas,"Lucida Console",monospace;font-size:clamp(42px,4.6vw,70px);font-weight:950;letter-spacing:-.09em}.rank-2 .rank-badge{background:linear-gradient(145deg,#fff,#e5edf3);border-color:#aab9c5;color:#526575;box-shadow:0 10px 26px rgba(85,107,124,.18),inset 0 1px 0 #fff}.rank-3 .rank-badge{background:linear-gradient(145deg,#fff8f1,#efc39f);border-color:#cb8050;color:#8d4927;box-shadow:0 10px 26px rgba(151,78,39,.17),inset 0 1px 0 #fff}.rank-4 .rank-badge,.rank-5 .rank-badge,.rank-6 .rank-badge,.rank-7 .rank-badge,.rank-8 .rank-badge,.rank-9 .rank-badge,.rank-10 .rank-badge{background:#f2f6f8;border-color:#d8e1e7;color:#667486;box-shadow:none}.rank-4 .rank-badge img,.rank-5 .rank-badge img,.rank-6 .rank-badge img,.rank-7 .rank-badge img,.rank-8 .rank-badge img,.rank-9 .rank-badge img,.rank-10 .rank-badge img{width:42px;height:42px}
.candidate-top{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;position:relative;z-index:2}
.ballot-no{font-size:clamp(19px,2vw,32px);font-weight:950;line-height:1;color:var(--accent);letter-spacing:-.04em}
.candidate-shortcut{font-size:9px;text-transform:uppercase;color:#8993a5;font-weight:800;padding:5px 8px;border-radius:8px;background:#f2f6f9}
.portrait-wrap{min-height:0;border-radius:clamp(16px,1.5vw,24px);overflow:hidden;position:relative;background:linear-gradient(145deg,color-mix(in srgb,var(--accent),white 80%),#fff3dc);box-shadow:inset 0 0 0 1px rgba(255,255,255,.7);z-index:1}
.portrait{width:100%;height:100%;min-height:clamp(180px,27vh,295px);object-fit:cover;display:block}
.portrait.placeholder{object-fit:contain;padding:6%;background:linear-gradient(145deg,#eaf9ff,#fff3e7)}
.portrait-wrap:after{content:"";position:absolute;inset:auto 0 0;height:28%;background:linear-gradient(transparent,rgba(16,39,69,.24));pointer-events:none}
.portrait-sparkle{position:absolute;right:12px;top:12px;width:36px;height:36px;background:url("../images/sparkle.svg") center/contain no-repeat;filter:drop-shadow(0 2px 6px #fff);animation:sparkle 2.3s infinite}
.candidate-info{min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-start;position:relative;z-index:2}
.candidate-info h2{margin:0 0 2px;font-family:"Bahnschrift SemiCondensed","Trebuchet MS","Arial Narrow",sans-serif;font-size:clamp(22px,2.15vw,36px);font-weight:900;line-height:1.02;letter-spacing:.018em;text-transform:uppercase;color:#102848;text-shadow:0 2px 0 #fff,0 5px 15px rgba(17,48,79,.12);overflow-wrap:anywhere}.candidate-info h2:after{content:"";display:block;width:clamp(42px,4vw,70px);height:4px;margin-top:7px;border-radius:99px;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent),white 60%));box-shadow:0 3px 8px color-mix(in srgb,var(--accent),transparent 68%)}
.candidate-info>p{font-size:clamp(9px,.85vw,13px);color:var(--muted);margin:6px 0 5px;min-height:2.5em}
.vote-line{display:flex;align-items:baseline;justify-content:center;gap:10px;white-space:nowrap;margin-top:5px;padding:8px 10px 7px;border:1px solid color-mix(in srgb,var(--accent),white 72%);border-radius:17px;background:linear-gradient(145deg,#f8fdff,color-mix(in srgb,var(--accent),white 91%));box-shadow:inset 0 2px 7px rgba(40,82,105,.08),0 7px 18px rgba(34,70,96,.08)}.vote-number{font-family:Consolas,"Lucida Console","Courier New",monospace;font-size:clamp(58px,7vw,112px);font-weight:900;font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.055em;line-height:.86;color:#102540;text-shadow:0 4px 0 #fff,0 7px 18px rgba(20,45,75,.16)}.vote-line span{font-weight:950;font-size:clamp(12px,1.1vw,18px);letter-spacing:.08em;color:var(--accent)}
.percentage-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:11px 2px 6px;font-size:clamp(11px,.95vw,15px);font-weight:750;color:#58677d}.percentage-row strong{font-family:Consolas,"Lucida Console","Courier New",monospace;color:var(--rank);font-size:clamp(21px,2vw,32px);font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:-.035em;text-shadow:0 3px 12px color-mix(in srgb,var(--rank),transparent 72%)}
.progress-track{height:clamp(11px,1.5vh,16px);border-radius:99px;background:#e6edf2;overflow:hidden;box-shadow:inset 0 2px 4px rgba(40,68,90,.1)}.progress-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent),white 28%));box-shadow:0 0 12px color-mix(in srgb,var(--accent),transparent 55%);transition:width .65s cubic-bezier(.22,1,.36,1)}
.vote-controls{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:7px;margin-top:auto;padding-top:clamp(12px,1.8vh,20px)}
.vote-button,.correction-button{min-height:clamp(42px,6vh,56px);border-radius:15px;font-size:clamp(10px,1vw,17px);font-weight:900;letter-spacing:.025em;transition:transform .18s,filter .18s;white-space:nowrap}.vote-button{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent),#1871a8 22%));color:#fff;box-shadow:0 9px 20px color-mix(in srgb,var(--accent),transparent 65%)}.correction-button{background:#fff1ef;color:#bc5049;box-shadow:inset 0 0 0 1px #f5d2ce}.vote-button span,.correction-button span{font-size:1.3em}.vote-button:hover,.correction-button:hover{filter:brightness(1.04);transform:translateY(-2px)}.vote-button:active,.correction-button:active{transform:scale(.97)}
.candidate-card.vote-pop{z-index:5;animation:cardPop .78s cubic-bezier(.2,.9,.25,1)}.candidate-card.vote-pop .vote-number{position:relative;z-index:6;transform-origin:left center;animation:numberPop .78s cubic-bezier(.18,.89,.32,1.28);color:var(--accent)}.candidate-card.vote-pop .portrait-sparkle{animation:voteSparkle .78s ease}.candidate-card.rank-shift{animation:rankShift .85s ease}
.stats-panel{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;background:rgba(255,255,255,.82);border:1px solid #fff;padding:9px;border-radius:20px;box-shadow:0 10px 30px rgba(33,81,117,.1);backdrop-filter:blur(12px)}
.stat-item{min-width:0;display:flex;align-items:center;gap:9px;padding:5px 10px;border-right:1px solid #e6edf2}.stat-item:last-child{border:0}.stat-icon{width:29px;height:29px;border-radius:10px;flex:0 0 auto;background:#e8f8ff;position:relative}.stat-icon:after{position:absolute;inset:0;display:grid;place-items:center;font-size:15px;font-weight:900;color:#1b9ed0}.icon-inbox:after{content:"↓"}.icon-check:after{content:"✓"}.icon-minus:after{content:"—"}.icon-close:after{content:"×";color:#df625c}.icon-people:after{content:"♟";color:#9b71c8}.icon-chart:after{content:"%";color:#e69e1c}.stat-item small{display:block;color:#738096;font-size:clamp(7px,.68vw,10px);font-weight:800;letter-spacing:.05em;white-space:nowrap}.stat-item strong{display:block;font-size:clamp(16px,1.6vw,25px);line-height:1.05;font-variant-numeric:tabular-nums}
.operator-bar{display:flex;align-items:center;justify-content:space-between;gap:10px}.operator-actions,.view-actions{display:flex;gap:8px;align-items:center}
.utility-button,.icon-button,.finish-button,.button-muted{min-height:39px;padding:8px 13px;border-radius:12px;font-size:clamp(9px,.8vw,12px);font-weight:800;transition:.2s;white-space:nowrap}.utility-button span{display:inline-grid;place-items:center;background:rgba(255,255,255,.65);border-radius:7px;min-width:22px;height:22px;margin-right:4px}.abstain-button{background:#e8f5ff;color:#2678a6}.invalid-button{background:#fff0ef;color:#bd514b}.undo-button{background:#f1edff;color:#6754ad}.icon-button{background:rgba(255,255,255,.78);color:#53637d;box-shadow:inset 0 0 0 1px rgba(108,132,152,.12)}.finish-button{background:linear-gradient(135deg,#f5b73a,#e78a25);color:white;box-shadow:0 8px 18px rgba(214,133,28,.25);letter-spacing:.03em}.utility-button:hover,.icon-button:hover,.finish-button:hover{transform:translateY(-2px);filter:brightness(1.03)}
.toast-region{position:fixed;right:20px;bottom:20px;z-index:1000;display:flex;flex-direction:column;gap:8px}.toast{background:#17304b;color:#fff;padding:13px 17px;border-radius:13px;box-shadow:0 12px 35px rgba(21,41,62,.3);font-weight:700;font-size:14px;animation:toastIn .3s ease}.toast.error{background:#b93e49}.toast.success:before{content:"✓";display:inline-grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#31b99a;margin-right:8px}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,31,52,.48);z-index:900;display:grid;place-items:center;padding:20px;backdrop-filter:blur(8px)}.modal-backdrop[hidden]{display:none}.confirm-modal{max-width:480px;background:#fff;padding:28px;border-radius:25px;text-align:center;box-shadow:0 30px 80px rgba(17,35,58,.3)}.confirm-modal img{width:80px}.confirm-modal h2{font-size:28px;margin:8px 0}.confirm-modal p{color:var(--muted);line-height:1.55}.confirm-modal>div{display:flex;justify-content:center;gap:10px;margin-top:20px}.button-muted{background:#edf1f5;color:#536174}
.winner-screen{position:fixed;inset:0;z-index:800;display:none;place-items:center;overflow:auto;background:radial-gradient(circle at 50% 30%,#fff 0,#fff7d7 22%,#dff8ff 52%,#f7e9ff 100%);padding:20px}.winner-screen.active{display:grid}.winner-rays{position:absolute;width:min(80vw,800px);aspect-ratio:1;background:url("../images/celebration-rays.svg") center/contain no-repeat;animation:slowSpin 28s linear infinite;opacity:.52}.winner-confetti{position:absolute;inset:0;background:url("../images/confetti.svg") center/460px;animation:confettiFall 16s linear infinite;opacity:.65}.winner-admin{position:absolute;right:20px;top:20px;background:#fff;padding:10px 15px;border-radius:12px;z-index:3;font-weight:800;color:#637087}.winner-content{position:relative;z-index:2;text-align:center;width:min(880px,96vw)}.winner-kicker{display:inline-block;padding:7px 14px;border-radius:99px;background:#fff;color:#b47b16;font-weight:900;font-size:11px;letter-spacing:.13em}.winner-content h2{font-size:clamp(52px,8vw,104px);line-height:.8;margin:18px 0 2px;color:#dda225;text-shadow:0 5px 0 #fff,0 12px 30px rgba(195,130,15,.3)}.winner-crown{width:78px;filter:drop-shadow(0 8px 12px rgba(191,126,17,.25));animation:crownFloat 2s ease-in-out infinite;position:relative;z-index:2}.winner-photo-wrap{width:clamp(170px,24vh,250px);height:clamp(170px,24vh,250px);border-radius:50%;padding:8px;margin:-6px auto 8px;background:linear-gradient(135deg,#ffd96b,#d79011,#fff0a4);box-shadow:0 0 0 8px rgba(255,255,255,.8),0 0 55px rgba(224,166,34,.55)}.winner-photo-wrap img{width:100%;height:100%;border-radius:50%;object-fit:cover;background:#fff6dc}.winner-content h3{font-size:clamp(28px,4vw,52px);margin:5px 0 0}.winner-result{font-size:clamp(14px,1.6vw,22px);font-weight:700;color:#7a641f;margin:5px}.winner-result strong{font-size:1.35em;color:#b47a12}.winner-result i:after{content:"•";margin:0 10px}.winner-tagline{margin:6px;color:#6b7281}.final-ranking{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:12px}.final-rank-item{background:rgba(255,255,255,.85);padding:8px 13px;border-radius:12px;box-shadow:0 5px 18px rgba(52,76,98,.1);font-size:12px}.final-rank-item b{color:#a87015}.winner-buttons{display:flex;justify-content:center;gap:8px;margin-top:12px}
.empty-state{grid-column:1/-1;background:#fff;border-radius:28px;display:grid;place-items:center;text-align:center;padding:50px}.empty-state img{width:180px}.empty-state h2{margin:8px}.empty-state p{color:var(--muted)}
@keyframes livePulse{50%{box-shadow:0 0 0 8px rgba(236,48,72,0)}}@keyframes float{50%{transform:translateY(-22px) scale(1.05)}}@keyframes auraGlow{50%{opacity:.34;transform:scale(1.12)}}@keyframes sparkle{50%{transform:rotate(30deg) scale(1.25);opacity:.65}}@keyframes rankBadgeFloat{50%{transform:translateY(-3px)}}@keyframes cardPop{0%,100%{transform:none}32%{transform:translateY(-9px) scale(1.025);box-shadow:0 24px 65px color-mix(in srgb,var(--accent),transparent 60%),0 0 0 7px color-mix(in srgb,var(--accent),transparent 82%)}65%{transform:translateY(-3px) scale(1.01)}}@keyframes numberPop{0%,100%{transform:translateY(0) scale(1);text-shadow:0 5px 14px rgba(20,45,75,.08)}30%{transform:translateY(-8px) scale(1.58);text-shadow:0 8px 28px color-mix(in srgb,var(--accent),transparent 28%),0 0 12px #fff}58%{transform:translateY(-3px) scale(1.28);text-shadow:0 6px 20px color-mix(in srgb,var(--accent),transparent 45%)}80%{transform:translateY(0) scale(1.06)}}@keyframes voteSparkle{0%{opacity:0;transform:scale(.4) rotate(0)}35%{opacity:1;transform:scale(2.1) rotate(55deg);filter:drop-shadow(0 0 14px #fff3a0)}100%{opacity:.8;transform:scale(1) rotate(100deg)}}@keyframes rankShift{40%{transform:translateY(-4px);filter:brightness(1.07)}}@keyframes toastIn{from{transform:translateX(20px);opacity:0}}@keyframes slowSpin{to{transform:rotate(360deg)}}@keyframes crownFloat{50%{transform:translateY(-8px) rotate(2deg)}}@keyframes confettiFall{to{background-position:center 460px}}
@media(max-width:1050px){.candidate-card{grid-template-columns:minmax(100px,.7fr) minmax(135px,1.3fr)}.candidate-grid.count-4,.candidate-grid.count-5,.candidate-grid.count-6,.candidate-grid.count-7,.candidate-grid.count-8,.candidate-grid.count-9,.candidate-grid.count-10{grid-template-columns:repeat(3,1fr)}.stats-panel{grid-template-columns:repeat(3,1fr)}.stat-item:nth-child(3){border-right:0}.operator-bar{flex-wrap:wrap}}
@media(max-width:700px){.live-shell{padding:10px}.live-header{grid-template-columns:auto 1fr;height:auto}.header-meta{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center}.title-block h1{white-space:normal}.candidate-grid,.candidate-grid.count-4,.candidate-grid.count-5,.candidate-grid.count-6,.candidate-grid.count-7,.candidate-grid.count-8,.candidate-grid.count-9,.candidate-grid.count-10{grid-template-columns:1fr}.candidate-card{min-height:390px}.portrait{min-height:280px}.stats-panel{grid-template-columns:repeat(2,1fr)}.stat-item{border-right:0}.operator-bar,.operator-actions,.view-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.undo-button,.finish-button{grid-column:1/-1}.icon-button b{display:none}.winner-screen{position:fixed}.winner-content{padding-top:30px}}
@media(min-width:701px) and (max-height:800px){.live-shell{gap:8px;padding:10px 14px}.live-header{height:102px;border-radius:20px;padding:10px 20px}.brand-mark{width:66px;height:66px}.eyebrow{font-size:clamp(17px,1.5vw,22px)}.title-block h1{font-size:clamp(30px,3.1vw,44px)}.title-block p{font-size:12px}.candidate-card{padding:9px 12px;border-radius:21px}.portrait{min-height:195px;max-height:none}.candidate-info>p{margin:2px 0}.vote-line{padding-top:6px;padding-bottom:5px}.vote-controls{margin-top:auto;padding-top:6px}.vote-button,.correction-button{min-height:39px}.stats-panel{padding:6px}.operator-bar{min-height:39px}}
@media(min-width:1500px){.candidate-card{grid-template-columns:minmax(190px,.9fr) minmax(220px,1.1fr)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
@media print{.operator-bar,.vote-controls,.candidate-shortcut,.live-indicator{display:none!important}}
