.piece-key{color:#001842;font-family:Libre Franklin,sans-serif}.piece-key *,.piece-key :before,.piece-key :after{box-sizing:border-box}.piece-key h2,.piece-key h3,.piece-key legend{font-family:Oswald,sans-serif}.piece-key h2{font-size:clamp(1.6rem,4vw,2.5rem);line-height:1.2}.piece-key h3{font-size:1.3rem;line-height:1.35}.piece-key-ballot{text-align:center;max-width:56rem;margin-inline:auto}.piece-key-ballot h2{overflow-wrap:anywhere;margin-bottom:.75rem;font-size:clamp(1.35rem,2.8vw,2rem)}.piece-key-ballot fieldset{min-width:0}.piece-key-ballot form>p{font-size:.875rem}.piece-key-ballot form>.piece-key-legal{font-size:.8rem}.piece-key p{line-height:1.65}.piece-key button,.piece-key a,.piece-key input,.piece-key select,.piece-key textarea,.piece-key summary{touch-action:manipulation}.piece-key :is(button,a,input,select,textarea,summary):focus-visible{outline-offset:4px;outline:3px solid #001842}.piece-key button:disabled{cursor:not-allowed;opacity:.55}.piece-key-label{background:#ffd100;margin-bottom:1rem;padding:.3rem .6rem;font-size:.8rem;font-weight:700;display:inline-block}.piece-key-meta{font-family:IBM Plex Mono,monospace;font-size:.8rem}.piece-key-muted{color:#475569}.piece-key-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 1rem;margin-block:2rem;display:grid}.piece-key-candidate{overflow-wrap:anywhere;flex-direction:column;gap:.6rem;min-width:0;display:flex}label.piece-key-candidate{cursor:pointer}.piece-key-candidate:has(input:focus-visible){outline-offset:6px;outline:3px solid #001842}.piece-key-photo{aspect-ratio:2/3;justify-content:center;align-items:center;width:100%;max-width:9rem;margin-inline:auto;display:flex;overflow:hidden}.piece-key-photo img{object-fit:contain;width:100%;height:100%}.piece-key-photo span{color:#475569;text-align:center;padding:.5rem;font-size:.85rem}.piece-key-candidate-name{justify-content:center;align-items:center;gap:.5rem;min-height:44px;font-family:Oswald,sans-serif;font-size:clamp(1.05rem,2vw,1.25rem);font-weight:500;display:flex}.piece-key-candidate input{accent-color:#001842;flex:0 0 20px;width:20px;height:20px}.piece-key-candidate:has(input:checked) .piece-key-candidate-name{font-weight:700}.piece-key-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.25rem;display:flex}.piece-key-ballot .piece-key-actions{justify-content:center}.piece-key-ballot .piece-key-actions button{min-width:12rem}.piece-key-button{color:#001842;text-align:center;cursor:pointer;overflow-wrap:anywhere;background:#ffd100;border:0;justify-content:center;align-items:center;min-height:48px;padding:.75rem 1.25rem;font-weight:700;text-decoration:none;display:inline-flex}.piece-key-button-secondary{color:#fff;background:#001842}.piece-key-button-plain{color:#001842;background:#fff;border:1px solid #001842}.piece-key-feedback{min-height:1.65em;margin-top:1rem}.piece-key-error{color:#73001b}.piece-key-result{margin-block:1rem;font-weight:700}.piece-key-field{gap:.5rem;margin-top:1rem;display:grid}.piece-key-field input,.piece-key-field select,.piece-key-field textarea{color:#001842;background:#fff;border:1px solid #64748b;border-radius:0;width:100%;min-height:48px;padding:.65rem .75rem}.piece-key-options{grid-template-columns:minmax(0,1fr);gap:.25rem 1rem;margin-top:1rem;display:grid}.piece-key-options label{overflow-wrap:anywhere;cursor:pointer;align-items:center;gap:.65rem;min-height:48px;display:flex}.piece-key-options input{accent-color:#001842;width:20px;height:20px}.piece-key-step{margin-bottom:2.5rem}.piece-key-step fieldset{min-width:0}.piece-key-step legend{font-size:1.5rem}.piece-key-link{overflow-wrap:anywhere;text-underline-offset:.2em;min-height:44px;padding-block:.75rem;text-decoration:underline;display:block}.piece-key details summary{cursor:pointer;min-height:48px;padding-block:1rem}@media (width>=640px){.piece-key-options{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=768px){.piece-key-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}}@media (prefers-reduced-motion:reduce){.piece-key *,.piece-key :before,.piece-key :after{scroll-behavior:auto;transition:none;animation:none}}
