@font-face{font-family:"Source Sans 3";src:url("./fonts/source-sans-3-latin-ext.woff2?v=1591f4af0767") format("woff2");font-style:normal;font-weight:200 900;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("./fonts/ibm-plex-mono-600-latin-ext.woff2?v=1591f4af0767") format("woff2");font-style:normal;font-weight:600;font-display:swap}

:root{--fog:#e7eef1;--paper:#f7faf9;--ink:#101827;--muted:#52606e;--indigo:#4338ca;--coral:#ff5b52;--green:#276255;--brass:#c49a45;--line:rgba(16,24,39,.18);--shadow:0 18px 55px rgba(16,24,39,.14);--display:"Source Sans 3",Arial,sans-serif;--body:"Source Sans 3",Arial,sans-serif;--mono:"IBM Plex Mono",monospace;color-scheme:light}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;background:var(--fog)}
body{margin:0;color:var(--ink);background:var(--fog);font-family:var(--body);font-size:18px;line-height:1.45;overflow-x:hidden}
button,a,input,summary{font:inherit}
a{color:inherit;text-decoration-thickness:.1em;text-underline-offset:.18em}
button{color:inherit}
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--coral);outline-offset:4px}
.skip-link{position:fixed;z-index:100;top:10px;left:10px;padding:.7rem 1rem;background:var(--ink);color:#fff;transform:translateY(-150%)}
.skip-link:focus{transform:none}
.site-bar{min-height:68px;padding:0 clamp(18px,4vw,64px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(231,238,241,.92);backdrop-filter:blur(12px);position:relative;z-index:20}
.maker{display:flex;align-items:center;gap:.7rem;text-decoration:none;font-weight:750}
.maker-mark{display:grid;place-items:center;width:34px;height:34px;border:2px solid var(--ink);font:900 15px/1 var(--mono);transform:rotate(-3deg);background:var(--paper)}
.site-bar nav{display:flex;align-items:center;gap:clamp(8px,1.6vw,20px)}
.language-link,.utility-button{border:0;background:transparent;font-size:.82rem;font-weight:750;text-transform:uppercase;letter-spacing:.05em;padding:.55rem .3rem;cursor:pointer}
.utility-button{display:inline-flex;align-items:center;gap:.45rem}
.sound-toggle[aria-pressed="true"]{color:var(--indigo)}
main{display:block}
.masthead{padding:clamp(54px,8vw,118px) clamp(20px,7vw,110px) clamp(58px,8vw,108px);position:relative;isolation:isolate;overflow:hidden}
.masthead::before{content:"09";position:absolute;right:-.02em;bottom:-.22em;z-index:-1;font:900 clamp(210px,34vw,520px)/.8 var(--display);color:rgba(67,56,202,.06)}
.masthead::after{content:"";width:86px;height:86px;border:12px double rgba(255,91,82,.72);border-radius:50%;position:absolute;right:clamp(28px,10vw,170px);top:clamp(55px,8vw,110px);transform:rotate(-13deg);opacity:.6}
.eyebrow,.section-index,.panel-kicker{margin:0 0 1.1rem;font:600 .74rem/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--indigo)}
h1,h2,h3,p{margin-top:0}
h1{max-width:1200px;margin-bottom:1.25rem;font:900 clamp(3.8rem,7.8vw,7.2rem)/.9 var(--display);letter-spacing:-.055em;text-transform:uppercase}
.deck{max-width:760px;margin-bottom:1.4rem;font-size:clamp(1.22rem,2.1vw,1.75rem);line-height:1.32}
.hero-action{width:auto;margin-bottom:1.7rem}
.synthetic-note{display:flex;align-items:center;gap:.65rem;margin:0;color:var(--muted);font-size:.88rem}
.game-shell{margin:0 clamp(12px,3.2vw,52px) clamp(74px,10vw,150px);border:1px solid var(--ink);background:var(--paper);box-shadow:var(--shadow)}
.game-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;padding:clamp(22px,3.5vw,45px);border-bottom:1px solid var(--ink)}
.game-heading h2,.notes h2,.no-js-results h2{margin:0;max-width:850px;font:900 clamp(2.35rem,4.6vw,4.4rem)/.94 var(--display);letter-spacing:-.035em;text-transform:uppercase}
.game-heading .section-index{margin-bottom:.7rem}
.game-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;white-space:nowrap;font:600 .72rem/1.2 var(--mono);text-transform:uppercase}
.seed-label{color:var(--muted);max-width:220px;overflow:hidden;text-overflow:ellipsis}
.counting-table{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.85fr);min-height:700px}
.ballot-side{padding:clamp(16px,2.5vw,34px);background:linear-gradient(150deg,rgba(67,56,202,.05),transparent 46%),var(--fog);border-right:1px solid var(--ink);min-width:0}
.ballot-box{position:relative;min-height:600px;padding:54px 18px 18px;border:2px solid rgba(16,24,39,.55);background:linear-gradient(115deg,rgba(255,255,255,.55) 0 15%,rgba(255,255,255,.13) 15% 43%,rgba(255,255,255,.38) 43% 45%,rgba(255,255,255,.1) 45%);box-shadow:inset 0 -25px 45px rgba(67,56,202,.07),0 14px 0 -8px rgba(16,24,39,.2)}
.box-lid{position:absolute;z-index:4;left:-7px;right:-7px;top:15px;height:20px;background:var(--ink);box-shadow:0 5px 0 rgba(16,24,39,.22)}
.box-lid span{display:block;width:42%;height:4px;margin:8px auto;background:var(--brass)}
.box-label{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:0 5px 15px;font:600 .68rem/1 var(--mono);text-transform:uppercase;letter-spacing:.05em}
.box-seal{color:var(--coral);border:1px solid currentColor;padding:.35rem .5rem;transform:rotate(2deg)}
.ballot-area{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-content:start;perspective:900px}
.ballot-slip{position:relative;min-width:0;min-height:150px;padding:22px 9px 9px;background:repeating-linear-gradient(0deg,rgba(16,24,39,.018) 0 1px,transparent 1px 4px),var(--paper);border:1px solid rgba(16,24,39,.36);box-shadow:0 5px 12px rgba(16,24,39,.11);transition:transform .45s cubic-bezier(.22,1,.36,1),opacity .35s,border-color .25s,background-color .25s;transform:rotate(var(--tilt,0deg));transform-origin:50% 15%}
.ballot-slip:nth-child(3n+1){--tilt:-.8deg}.ballot-slip:nth-child(3n+2){--tilt:.55deg}.ballot-slip:nth-child(3n){--tilt:-.25deg}
.registry-mark{position:absolute;top:6px;right:7px;color:var(--coral);font:600 .55rem/1 var(--mono);letter-spacing:.03em}
.ballot-slip ol{margin:0;padding:0;list-style:none;display:grid;gap:2px}
.rank{display:grid;grid-template-columns:1.1em 1.1em minmax(0,1fr) auto;align-items:center;gap:3px;min-height:24px;padding:2px 3px;border-bottom:1px dotted rgba(16,24,39,.16);font-size:clamp(.57rem,.75vw,.72rem);line-height:1.05;font-weight:700;white-space:nowrap;overflow:hidden}
.rank:last-child{border-bottom:0}.rank-number{font:600 .52rem/1 var(--mono);color:var(--muted)}
.candidate-icon{display:inline-grid;place-items:center;width:1.15em;height:1.15em;color:var(--candidate);font-weight:900}
.candidate--grove{--candidate:#276255}.candidate--hall{--candidate:#a06d12}.candidate--stage{--candidate:#4338ca}.candidate--fountain{--candidate:#d33e38}
.point-stamp{font:600 .55rem/1 var(--mono);color:var(--indigo)}
.ballot-box[data-layout="borda"] .point-stamp::before{content:attr(data-points);display:grid;place-items:center;width:1.4rem;height:1.4rem;border:1px solid var(--indigo);border-radius:50%;transform:rotate(-7deg)}
.ballot-box[data-layout="plurality"] .ballot-slip{border-top:5px solid var(--first-color,var(--ink));padding-top:18px}
.ballot-slip[data-first="grove"]{--first-color:#276255}.ballot-slip[data-first="hall"]{--first-color:#a06d12}.ballot-slip[data-first="stage"]{--first-color:#4338ca}.ballot-slip[data-first="fountain"]{--first-color:#d33e38}
.ballot-box[data-layout="irv"] .rank.is-eliminated{text-decoration:line-through;opacity:.38}
.ballot-box[data-layout="irv"] .ballot-slip.is-transfer{border-color:var(--coral);box-shadow:0 0 0 2px rgba(255,91,82,.15),0 5px 12px rgba(16,24,39,.11)}
.ballot-box.is-concealed .ballot-slip ol{visibility:hidden}.ballot-box.is-concealed .ballot-slip{background:repeating-linear-gradient(45deg,var(--paper) 0 10px,#edf1ef 10px 20px);min-height:125px}.ballot-box.is-concealed .registry-mark{visibility:hidden}
.ballot-slip.is-marked{border:3px solid var(--coral);box-shadow:0 0 0 4px rgba(255,91,82,.15),0 8px 18px rgba(16,24,39,.16)}
.ballot-slip.is-marked::after{content:attr(data-marked-label);position:absolute;left:7px;top:6px;color:var(--coral);font:600 .5rem/1 var(--mono);text-transform:uppercase}
.ballot-slip .rank.is-withdrawn{text-decoration:line-through;text-decoration-thickness:2px;opacity:.35}
.candidate-key{display:flex;flex-wrap:wrap;gap:.6rem 1rem;padding:15px 4px 0;font-size:.76rem;font-weight:750}
.candidate-key .candidate{display:inline-flex;align-items:center;gap:.35rem}
.control-side{padding:clamp(20px,3vw,40px);display:flex;flex-direction:column;min-width:0;background:var(--paper)}
.method-tabs{display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 clamp(25px,4vw,46px);padding:0;border:1px solid var(--ink);list-style:none}
.method-tabs li{position:relative;min-width:0;min-height:86px;padding:.65rem .45rem;border-right:1px solid var(--ink);background:transparent;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:.5rem;text-align:left}
.method-tabs li:last-child{border-right:0}.method-tabs li b{font:600 .68rem/1 var(--mono);color:var(--indigo)}.method-tabs li span{font-size:.68rem;font-weight:800;line-height:1.05}
.method-tabs li[aria-current="step"]{background:var(--ink);color:#fff}.method-tabs li[aria-current="step"] b{color:#a9b3ff}.method-tabs li.is-complete::after{content:"✓";position:absolute;top:.45rem;right:.45rem;color:var(--green);font-weight:900}.method-tabs li[aria-current="step"].is-complete::after{color:#fff}
.mobile-game-jump{display:none}
.control-panel{flex:0 0 auto}.panel-kicker{color:#9d302c;margin-bottom:.8rem}.panel-title{margin-bottom:1rem;font:900 clamp(2.05rem,3.7vw,3.4rem)/.96 var(--display);letter-spacing:-.025em;text-transform:uppercase}.panel-body{color:var(--muted);max-width:38rem;margin-bottom:1.4rem}
.answer-area{display:grid;gap:.65rem;margin:1.2rem 0}.answer-area:empty{display:none}
.choice{position:relative;display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border:1px solid var(--line);background:#fff;cursor:pointer;font-weight:750;transition:border .15s,transform .15s,background .15s}.choice:hover{transform:translateX(3px);border-color:var(--indigo)}.choice:has(input:checked){border-color:var(--indigo);box-shadow:inset 5px 0 0 var(--indigo);background:rgba(67,56,202,.055)}.choice input{width:1.05rem;height:1.05rem;accent-color:var(--indigo)}.choice small{margin-left:auto;color:var(--muted);font:600 .62rem/1 var(--mono)}
.primary-action,.secondary-action{display:inline-flex;justify-content:center;align-items:center;min-height:50px;padding:.8rem 1.2rem;border:2px solid var(--ink);background:var(--ink);color:#fff;font-weight:800;text-decoration:none;cursor:pointer;box-shadow:5px 5px 0 var(--brass);transition:transform .15s,box-shadow .15s}.primary-action:hover,.secondary-action:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--brass)}.primary-action:disabled{cursor:not-allowed;opacity:.42;box-shadow:none;transform:none}.secondary-action{background:transparent;color:var(--ink);box-shadow:none;margin-left:.65rem}
.tally-board{margin-top:1.6rem;border-top:3px double var(--ink);font-family:var(--mono)}.tally-heading{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;font-size:.67rem;text-transform:uppercase;color:var(--muted)}.method-code{color:var(--indigo)}
.tally-content{display:grid;gap:.6rem}.tally-row{display:grid;grid-template-columns:minmax(82px,.8fr) minmax(80px,2fr) auto;align-items:center;gap:.55rem;font-size:.72rem}.tally-bar{height:9px;background:rgba(16,24,39,.1);overflow:hidden}.tally-bar i{display:block;height:100%;width:var(--width);background:var(--green)}.tally-row.is-winner{color:var(--green)}.tally-row.is-winner .tally-bar i{background:var(--coral)}
.round{padding:.65rem 0;border-top:1px dotted var(--line)}.round:first-child{border-top:0}.round-label{display:flex;justify-content:space-between;font-size:.62rem;color:var(--muted);margin-bottom:.3rem}.reveal-callout{padding:1rem;border-left:5px solid var(--coral);background:rgba(255,91,82,.07);font-family:var(--body);font-size:.92rem}.reveal-callout strong{display:block;font:900 1.6rem/1 var(--display);text-transform:uppercase;margin-bottom:.3rem}.final-quote{margin:1.2rem 0;padding:1.2rem 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);font:900 clamp(2rem,4vw,3.3rem)/.92 var(--display);text-transform:uppercase}.score-line{font:600 .75rem/1.5 var(--mono)}
.sr-summary{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.storage-warning{font-size:.8rem;color:#8b2f2a;margin-top:1rem}
.notes{margin:0 clamp(20px,8vw,120px) clamp(70px,11vw,150px);display:grid;grid-template-columns:minmax(260px,.7fr) minmax(300px,1fr);gap:clamp(30px,8vw,130px);align-items:start}.notes-lead>p:last-child{max-width:34rem;font-size:1.15rem}.notes details{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.notes summary{padding:1.2rem 2.2rem 1.2rem 0;font-weight:800;cursor:pointer;list-style:none;position:relative}.notes summary::after{content:"+";position:absolute;right:.2rem;font:900 1.6rem/1 var(--mono)}.notes details[open] summary::after{content:"−"}.source-drawer{padding:0 0 1.4rem}.source-drawer ol{padding-left:1.25rem}.source-drawer li{margin:.7rem 0}.source-drawer p{font-size:.9rem;color:var(--muted)}
.no-js-results{margin:0 clamp(20px,8vw,120px) 8rem;padding:clamp(24px,5vw,60px);border:1px solid var(--ink);background:var(--paper)}.no-js-results li{margin:.7rem 0}.no-js-results blockquote{margin:2rem 0 0;font:900 clamp(2rem,5vw,4rem)/.9 var(--display);text-transform:uppercase}
footer{min-height:140px;padding:2rem clamp(20px,4vw,64px);display:flex;align-items:center;justify-content:space-between;gap:2rem;border-top:1px solid var(--ink);background:var(--ink);color:#fff;font-size:.88rem}footer p{margin:0}
.js .back-to-top{position:fixed;z-index:30;right:18px;bottom:var(--back-top-bottom,18px);width:48px;height:48px;display:grid;place-items:center;border:2px solid var(--ink);background:var(--paper);box-shadow:4px 4px 0 var(--coral);color:var(--ink);cursor:pointer;font:900 1.2rem/1 var(--mono);text-decoration:none;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .18s ease,visibility .18s ease,bottom .18s ease}
.js .back-to-top.is-visible{visibility:visible;opacity:1;pointer-events:auto}.js .back-to-top-label{display:none}
.error-page{min-height:100vh;display:grid;place-items:center;padding:2rem}.error-page main{max-width:900px}.error-page h1{font-size:clamp(4rem,12vw,9rem)}

@media (max-width:980px){.counting-table{grid-template-columns:1fr}.ballot-side{border-right:0;border-bottom:1px solid var(--ink)}.ballot-box{min-height:auto}.control-side{min-height:0;scroll-margin-top:16px}.mobile-game-jump{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;margin-top:16px;border:1px solid var(--ink);background:var(--paper);font-weight:800;text-decoration:none}.mobile-game-jump--back{justify-content:flex-start;width:max-content;min-height:44px;margin:0 0 8px;padding:0;border:0;background:transparent;text-decoration:underline;text-underline-offset:.2em}.notes{grid-template-columns:1fr}.masthead::after{width:60px;height:60px;right:6vw}.game-heading{align-items:flex-start}.game-meta{align-items:flex-start}}
@media (max-width:620px){body{font-size:16px}.site-bar{padding:0 14px;min-height:60px}.maker>span:last-child,.sound-toggle [data-sound-label]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.site-bar nav{gap:5px}.utility-button,.language-link{font-size:.72rem}.restart-button{max-width:110px;line-height:1.05}.masthead{padding:44px 18px 52px}.masthead::after{display:none}h1{font-size:clamp(3rem,13vw,4.2rem);line-height:.94}.deck{font-size:1.15rem}.masthead .hero-action{margin:.2rem 0 1.35rem}.game-shell{margin:0 8px 72px}.game-heading{display:block;padding:22px 18px}.game-heading h2{font-size:2.35rem}.game-meta{margin-top:1rem}.counting-table{display:block}.ballot-side{padding:12px}.ballot-box{padding:52px 8px 10px}.ballot-area{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.ballot-slip{min-height:142px;padding:19px 6px 6px}.rank{grid-template-columns:1em 1em minmax(0,1fr) auto;gap:2px;min-height:22px;padding:1px 2px;font-size:.62rem}.registry-mark{font-size:.48rem}.candidate-key{gap:.45rem .7rem;font-size:.68rem}.control-side{padding:18px}.method-tabs{margin-bottom:28px}.method-tabs li{min-height:78px}.method-tabs li span{font-size:.59rem}.panel-title{font-size:2.35rem}.choice{padding:.75rem}.primary-action,.secondary-action{width:100%;margin:.5rem 0 0}.tally-row{grid-template-columns:minmax(72px,.8fr) minmax(55px,1.4fr) auto}.notes{margin:0 18px 75px;gap:24px}.notes h2{font-size:2.75rem}footer{align-items:flex-start;flex-direction:column;gap:1rem}.js .back-to-top{right:12px}.ballot-box.is-concealed .ballot-slip{min-height:110px}}
@media (min-width:370px) and (max-width:620px){.ballot-area{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.ballot-slip{min-height:124px;padding:18px 4px 5px}.rank{grid-template-columns:.9em .9em minmax(0,1fr) auto;min-height:19px;gap:1px;font-size:.56rem}.rank-number{font-size:.45rem}.registry-mark{top:5px;right:4px;font-size:.43rem}.ballot-box.is-concealed .ballot-slip{min-height:94px}}
@media (max-width:340px){.site-bar .restart-button{display:none}.game-heading h2{font-size:2.25rem}.method-tabs li{padding:.5rem .25rem}.method-tabs li span{font-size:.52rem}.rank{font-size:.57rem}}
html[lang="ro"] h1{line-height:.98}
html[lang="ro"] .game-heading h2,html[lang="ro"] .notes h2,html[lang="ro"] .no-js-results h2{line-height:1}
html[lang="ro"] .panel-title,html[lang="ro"] .final-quote,html[lang="ro"] .no-js-results blockquote{line-height:1.02}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
@media print{.site-bar,.back-to-top,.control-side,.notes details summary{display:none}.game-shell{box-shadow:none}.counting-table{display:block}.ballot-side{border:0}.notes{display:block}.notes details{display:block}.source-drawer{display:block}}
