:root{font-family:Arial,Helvetica,sans-serif;color:#042b59;background:#edf2f5;font-synthesis:none;--ink:#042b59;--lime:#4cef00}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.48}a{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #268cdb;outline-offset:4px}.masthead{background:var(--ink);border-bottom:4px solid var(--lime);padding:22px max(24px,calc((100vw - 1120px)/2));color:white;display:flex;justify-content:space-between;align-items:center;gap:20px}.wordmark{font-size:23px;font-weight:900;letter-spacing:-.8px;text-decoration:none}.wordmark span,.wordmark b{color:var(--lime)}.wordmark small{display:block;font-size:12px;letter-spacing:1.2px;margin-top:6px}.wordmark b{font-size:17px;margin-left:8px}.header-note{font-size:12px;letter-spacing:1px}main{max-width:1120px;padding:32px 24px;margin:auto}.intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:1.6px;margin:0 0 9px}h1{font-size:34px;letter-spacing:-1px;margin:0 0 10px}.intro p:last-child{font-size:16px;color:#536978;margin:0;line-height:1.5}.sound-toggle{border:1px solid #b7c8d2;background:white;border-radius:30px;padding:11px 16px;font-size:14px;white-space:nowrap}.steps{list-style:none;padding:0;margin:0 0 14px;display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.steps li{background:#dce4e9;color:#506572;padding:12px 8px;display:flex;align-items:center;gap:8px;border-radius:6px;font-size:13px;font-weight:700}.steps li span{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff8;font-size:12px;flex-shrink:0}.steps li.current{background:var(--ink);color:white}.steps li.current span{background:var(--lime);color:var(--ink)}.steps li.completed{background:#d7e7d8;color:#284f33}.machine{background:#e8e8df;border:1px solid #aaa99e;border-radius:26px;padding:26px;display:grid;grid-template-columns:1.65fr 1fr;gap:26px;box-shadow:inset 0 3px 0 #ffffffbc,0 16px 28px #16334719,inset 0 -5px 0 #cacbc1}.screen-frame{background:#171c1f;padding:13px;border-radius:10px;box-shadow:0 2px 4px #0003}.screen{background:#fbfcf8;color:#192023;min-height:420px;padding:20px;display:flex;flex-direction:column;border:2px solid #bcbfb5}.screen-top{display:flex;justify-content:space-between;gap:10px;font-size:11px;letter-spacing:.8px;border-bottom:1px solid #cdd2cb;padding-bottom:12px;color:#626b65}.screen-top span:last-child{white-space:nowrap}.screen-kicker{font-size:13px;letter-spacing:1px;margin:22px 0 8px}.screen h2{font-size:28px;line-height:1.2;margin:0 0 20px;letter-spacing:-.7px;outline:none}.ballot-body{display:flex;justify-content:space-between;gap:14px;min-height:144px}.ballot-info{min-width:0;flex:1}.digit-boxes{display:flex;gap:5px;min-height:50px;margin-bottom:17px}.digit-box{display:flex;align-items:center;justify-content:center;border:2px solid #293237;width:38px;height:48px;font-size:32px;font-weight:600;font-family:monospace}.digit-box.active{border-bottom:4px solid #293237}.candidate-name{font-size:20px;font-weight:800;line-height:1.25;overflow-wrap:anywhere;margin:0}.candidate-party{font-size:14px;margin:8px 0 0;color:#59655d}.candidate-empty{font-size:15px;color:#647166;line-height:1.5;margin:0}.candidate-photo{width:94px;height:118px;object-fit:cover;border:1px solid #abb2a9}.fixed-note{font-size:12px;background:#e8efda;display:inline-block;padding:7px 9px;margin:8px 0 0;border-left:3px solid #9fb855}.screen-message{min-height:36px;font-size:14px;line-height:1.4;margin:18px 0 12px;color:#405841}.screen-message.error{color:#a62e20}.screen-footer{border-top:1px solid #b9c1b9;padding-top:10px;margin-top:auto;display:flex;justify-content:space-between;gap:8px}.screen-footer p{font-size:12px;margin:0}.green-text{color:#237438}.orange-text{color:#a34310}.console{display:flex;flex-direction:column;justify-content:center;min-width:0}.console-label{display:flex;flex-direction:column;gap:7px;text-align:center;margin:0 0 20px}.console-label b{font-size:14px;letter-spacing:1.2px}.console-label span{font-size:12px;color:#647168}.keypad{display:grid;grid-template-columns:1fr 1fr 1fr 1.6fr;gap:10px}.number-keys{grid-column:1/4;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(4,60px);gap:10px}.number-keys button{background:#34444d;color:white;border:1px solid #26343b;border-radius:9px;font-size:31px;font-weight:700;box-shadow:0 4px 0 #1d292f,0 5px 7px #0003,inset 0 2px 1px #62717a;transition:transform .07s}.number-keys .zero{grid-column:2}.number-keys button:active:not(:disabled),.action-keys button:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 #29332f}.action-keys{grid-column:4;display:grid;grid-template-rows:60px 60px 130px;gap:10px}.action-keys button{font-size:14px;font-weight:800;border:1px solid #7c8379;border-radius:9px;box-shadow:0 4px 0 #777f73,0 5px 7px #0002;color:#132018}.blank-key{background:#fff}.correct-key{background:#f88235}.confirm-key{background:#4cef00}.console-foot{display:flex;justify-content:center;gap:20px;font-size:12px;margin-top:22px;color:#566759}.console-foot b{display:block;font-size:20px;color:#193627;margin-top:3px}.under-machine{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px}.under-machine>span{font-size:12px;color:#697d89}.text-button{border:0;background:transparent;color:#365e76;font-size:14px;padding:9px 0;text-decoration:underline;text-underline-offset:3px}.data-source{font-size:12px;line-height:1.6;color:#627889;text-align:center;margin:24px 0 6px}.data-source button{font:inherit;background:#4cef00;border:0;border-radius:3px;padding:5px}.simulation-note{font-size:12px;color:#627889;text-align:center;margin:8px 0;line-height:1.5}footer{max-width:1072px;margin:auto;padding:22px 0;border-top:1px solid #c5d3db;display:flex;justify-content:space-between;font-size:12px;color:#5c7280}.result-heading{margin:10px 0 25px}.result-heading h2{font-size:36px;letter-spacing:-1px;margin:0 0 12px;outline:none}.result-heading>p:last-child{color:#526775;line-height:1.5}.result-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:40px;max-width:900px;margin:auto}.paper{background:white;border-top:7px solid var(--lime);box-shadow:0 10px 25px #12344715;border-radius:3px;overflow:hidden}.paper-top{padding:24px;background:var(--ink);color:white}.paper-top>span{font-size:12px;letter-spacing:1px}.paper-top h2{font-size:30px;margin:10px 0 0}.preview-row{padding:16px 24px;border-bottom:1px solid #dce5e9}.preview-row.fixed{background:#eeffe5}.preview-row>small{font-size:12px;color:#536775;font-weight:700;display:block;margin-bottom:9px}.preview-content,.preview-person{display:flex;align-items:center;gap:10px;min-width:0}.preview-content{justify-content:space-between}.portrait{display:flex;width:40px;height:50px;align-items:center;justify-content:center;background:#e7eef1;flex-shrink:0;border-radius:4px;overflow:hidden}.portrait img{width:100%;height:100%;object-fit:cover}.candidate-copy{min-width:0;display:flex;flex-direction:column;gap:5px}.candidate-copy strong{font-size:14px;overflow-wrap:anywhere;line-height:1.3}.candidate-copy small{font-size:12px;color:#536775}.digits{display:flex;gap:3px;flex-shrink:0}.digit{display:flex;align-items:center;justify-content:center;width:23px;height:30px;border:1px solid #bfcdd4;border-radius:3px;font-size:20px;font-weight:800}.fixed .digit{background:var(--ink);border-color:var(--ink);color:white}.paper-bottom{padding:23px 24px}.paper-bottom strong{display:block;font-size:22px}.paper-bottom span{display:block;font-size:14px;margin-top:5px}.paper-bottom p{font-size:12px;color:#536775;margin:16px 0 0}.paper-bottom p:last-child{margin-top:6px}.result-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px}.primary,.outline{display:block;text-align:center;border:1px solid #3bbd00;border-radius:9px;background:var(--lime);color:var(--ink);padding:17px;font-size:16px;font-weight:800;text-decoration:none}.outline{border-color:#bbcbd5;background:white;font-size:14px}.result-actions p{font-size:14px;line-height:1.5;color:#536775}.result-actions .text-button{align-self:flex-start;padding:5px 0}.result-actions img{width:100%;height:auto;margin-top:10px}details{font-size:14px;color:#365e76}summary{cursor:pointer}#image-state:empty,#result-status:empty{display:none}
@media(max-width:950px){.machine{grid-template-columns:1.4fr 1fr;padding:18px;gap:18px}.screen{padding:16px}.keypad,.number-keys,.action-keys{gap:8px}.action-keys button{font-size:12px}.steps li{font-size:12px}.screen h2{font-size:25px}.digit-box{width:33px;font-size:29px}.candidate-photo{width:75px;height:95px}.screen-footer{flex-direction:column;gap:5px}.result-grid{gap:24px}footer{margin:0 24px}}
@media(max-width:720px){main{padding:24px 16px}.masthead{padding:18px 20px}.wordmark{font-size:20px}.header-note{font-size:10px}.intro{align-items:flex-start;gap:10px;margin-bottom:20px}h1{font-size:27px}.intro p:last-child{font-size:14px}.intro .eyebrow{font-size:10px}.sound-toggle{font-size:12px;padding:8px 10px}.steps{grid-template-columns:repeat(3,1fr);gap:4px}.steps li{padding:8px 6px;gap:6px}.machine{display:block;padding:14px;border-radius:20px}.screen-frame{padding:9px}.screen{min-height:330px;padding:15px}.screen-top{font-size:9px}.screen-kicker{margin-top:15px;font-size:11px}.screen h2{font-size:24px;margin-bottom:15px}.ballot-body{min-height:118px}.digit-boxes{min-height:42px;margin-bottom:12px}.digit-box{width:32px;height:41px;font-size:28px}.candidate-name{font-size:18px}.candidate-photo{width:76px;height:96px}.screen-message{margin:12px 0 10px;min-height:32px;font-size:13px}.screen-footer{flex-direction:row;flex-wrap:wrap;font-size:11px}.screen-footer p{font-size:11px}.console{max-width:390px;margin:20px auto 4px}.console-label{display:none}.keypad{gap:10px}.number-keys{grid-template-rows:repeat(4,52px);gap:10px}.action-keys{grid-template-rows:52px 52px 114px;gap:10px}.number-keys button{font-size:28px}.action-keys button{font-size:12px}.console-foot{margin-top:16px;gap:36px}.console-foot b{font-size:16px;display:inline;margin-left:5px}.under-machine>span{display:none}.result-grid{display:flex;flex-direction:column}.result-heading h2{font-size:29px}.result-actions{gap:10px}.result-actions .primary{font-size:16px}.preview-content{flex-wrap:wrap}footer{font-size:10px;margin:0 20px}.fixed-note{font-size:11px}.simulation-note,.data-source{font-size:11px}}
@media(max-width:380px){h1{font-size:24px}.header-note{display:none}.intro{flex-wrap:wrap}.screen{padding:12px}.ballot-body{gap:8px}.digit-box{width:28px;height:38px;font-size:25px}.digit-boxes{gap:3px}.candidate-photo{width:60px;height:80px}.screen h2{font-size:22px}.steps li{font-size:11px}.action-keys button{font-size:10px}.machine{padding:10px}.keypad{gap:8px}.number-keys,.action-keys{gap:8px}.action-keys{grid-template-rows:52px 52px 112px}}
@media print{body{background:white}.masthead,.intro,#voting,.result-heading,.result-actions,.data-source,.simulation-note,footer{display:none!important}main{margin:0;padding:0}#result{display:block!important}.result-grid{display:block}.paper{width:100mm;max-width:100%;box-shadow:none;border:1px solid #888;break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}.preview-row{padding:12px 20px}.paper-top{padding:18px 20px}.paper-bottom{padding:18px 20px}.preview-content{flex-wrap:nowrap}@page{margin:15mm}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

footer{display:block}.footer-brand{display:flex;justify-content:space-between;gap:16px}.legal-footer{font-size:12px;line-height:1.65;margin:18px 0 0;color:#042b59;overflow-wrap:anywhere}.paper-bottom .legal-print{font-size:12px;line-height:1.5;border-top:1px solid #c5d3db;padding-top:12px;margin-top:14px;color:#042b59;overflow-wrap:anywhere}.confirm-key{color:#042b59}@media print{.paper-bottom .legal-print{font-size:9pt;line-height:1.4}}

.wa-invite{display:flex;align-items:center;gap:16px;margin:0 0 24px}.wa-invite .outline{font-size:14px;padding:12px 16px;border-color:#042b59}.wa-invite span{font-size:14px;color:#526775}.aggregate-panel{padding:16px;border:1px solid #bdcdd5;border-radius:10px;background:white}.aggregate-panel h3{font-size:16px;margin:0 0 12px}.aggregate-panel label{display:flex;gap:9px;font-size:14px;line-height:1.5}.aggregate-panel .outline{margin-top:12px;width:100%}.aggregate-panel input,.wa-consent-label input{width:18px;height:18px;flex-shrink:0;margin-top:2px;accent-color:#042b59}#wa-dialog{width:min(480px,calc(100% - 28px));max-height:90dvh;overflow:auto;border:0;border-radius:16px;padding:24px;box-shadow:0 16px 80px #0005;color:#042b59}#wa-dialog::backdrop{background:#00162cbc}.wa-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.wa-dialog-head h2{font-size:21px;margin:0}.wa-dialog-head button{border:0;background:#edf2f5;border-radius:50%;width:36px;height:36px;font-size:26px;color:#042b59}#wa-dialog p{font-size:14px;line-height:1.6}#wa-form{display:flex;flex-direction:column;gap:14px}#wa-form>label{font-size:14px;font-weight:600}#wa-phone{font:inherit;font-size:18px;padding:13px;border:1px solid #819bae;border-radius:8px;width:100%;color:#042b59}.wa-consent-label{display:flex;gap:10px;line-height:1.5}.wa-consent-label span{font-size:13px;font-weight:400}#wa-privacy{font-size:13px}#wa-ready{margin-top:12px}#wa-dialog .wa-small{font-size:12px;color:#526775}.pcj-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}#wa-status:empty,#aggregate-status:empty{display:none}@media(max-width:720px){.wa-invite{display:block}.wa-invite .outline{width:100%}.wa-invite span{display:block;margin-top:8px;font-size:12px}.aggregate-panel label{font-size:13px}}@media print{.wa-invite,#wa-dialog,.aggregate-panel{display:none!important}}

#wa-form[hidden],#wa-ready[hidden]{display:none!important}#share-combined{white-space:normal;line-height:1.5}#wa-stats-notice{background:#edf2f5;padding:12px;border-radius:8px}

.share-top{margin:0 0 24px}.share-top .primary{width:100%;padding:18px 20px}.share-top p{font-size:13px;line-height:1.5;color:#526775;margin:9px 0 0}.share-top button:disabled{opacity:.6;cursor:not-allowed}@media print{.share-top{display:none!important}}

footer #aggregate-panel{margin-top:18px;padding:12px;background:transparent}footer #aggregate-panel h3{font-size:14px}footer #aggregate-panel label,footer #aggregate-status,.stats-location{font-size:13px;line-height:1.6}.stats-location a{color:#042b59;text-decoration:underline}#wa-form .wa-consent-label{font-size:13px;line-height:1.6}#wa-submit{font-size:14px;line-height:1.5;min-height:44px}
