:root{--ink:#18323d;--muted:#79858a;--paper:#f4f3ee;--line:#dfe2dc;--blue:#367e9f;--red:#c87766}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:14px}button,input,select{font:inherit}button{cursor:pointer;border:0;color:inherit;transition:background .2s,transform .2s}button:hover:not(:disabled){filter:brightness(.96)}button:focus-visible,a:focus-visible{outline:3px solid #dda75b;outline-offset:3px}button:disabled{opacity:.4;cursor:not-allowed}header{height:91px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4%}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink);font-size:23px;letter-spacing:1px;font-weight:700}.brand b{font-weight:800}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:6px}.seal{border:1px solid #a6b1b0;outline:1px solid #b7c0b9;outline-offset:4px;border-radius:50%;width:37px;height:37px;display:grid;place-items:center;font-size:23px;margin-right:6px}.headerRight{display:flex;gap:20px;align-items:center}.live{font-size:9px;letter-spacing:1.5px}.live i{width:6px;height:6px;background:#719c85;border-radius:50%;display:inline-block;margin-right:7px}.quiet{background:transparent;border:1px solid #d3d9d3;padding:10px 15px;border-radius:5px}.icon{border:1px solid #bfc8c3;border-radius:50%;background:transparent;width:27px;height:27px}main{max-width:1600px;margin:auto;padding:32px 4% 16px}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px}.eyebrow{font-size:9px;letter-spacing:1.7px;font-weight:700;color:#748584}h1{font-family:Georgia,serif;font-size:43px;font-weight:400;letter-spacing:-1.5px;margin:9px 0}p{line-height:1.6}.intro p{margin:0;color:var(--muted);font-size:13px}.week{text-align:right}.week>span{font-size:9px;letter-spacing:1.8px}.week strong{display:block;font-size:38px;font-weight:400;letter-spacing:-1px;margin-top:4px}.week em{font-style:normal;font-size:20px;color:#a0aaa8}.stats{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;background:#fff;border:1px solid var(--line);border-radius:9px;margin-bottom:24px;padding:21px 0}.stats>div{padding:0 25px;border-right:1px solid var(--line)}.stats>div:last-child{border:0}.stats div>span{font-size:9px;letter-spacing:1.1px;color:#788782}.stats strong{display:block;font-size:27px;font-weight:500;margin:8px 0}.stats strong span{font-size:12px;color:#8a9695}.stats small{font-size:10px;color:#8b9693}.next{display:flex;flex-direction:column;justify-content:center;gap:10px}.next button,.primary{background:var(--ink);color:#fff;padding:15px 20px;border-radius:5px;font-weight:600;font-size:12px;text-align:left;display:flex;justify-content:space-between}.next small{text-align:center}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:23px}.mapCard{min-width:0;background:#e9ece6;border:1px solid #d6ded6;border-radius:9px;overflow:hidden;display:flex;flex-direction:column}.mapHeader{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 0}.tabs{display:flex;gap:20px}.tabs button{background:transparent;font-size:11px;padding:5px 0 12px;color:#87918c}.tabs .active{color:var(--ink);border-bottom:2px solid var(--ink);font-weight:700}.mapTag{font-size:8px;letter-spacing:1.3px;color:#8c9991}.score{display:flex;align-items:center;justify-content:space-between;margin:24px 23px 9px;gap:8px}.score>div{display:flex;align-items:center;gap:9px}.score b{font-size:10px;font-weight:500;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score strong{font-size:27px;font-weight:500;margin:0 3px}.blueDot,.redDot{display:inline-block;width:7px;height:7px;background:var(--blue);border-radius:50%;flex-shrink:0}.redDot{background:var(--red)}.target{font-size:8px;letter-spacing:1px;color:#6e7b78}.evTrack{margin:0 23px;display:flex;height:6px;position:relative;gap:3px}.evTrack div{transition:width .6s;border-radius:3px}#blueBar{background:var(--blue)}#grayBar{background:#cbd1c6}#redBar{background:var(--red)}.evTrack i{position:absolute;left:50.18%;height:14px;top:-4px;border-left:1px solid #5c6b69}#map{position:relative;min-height:420px;flex:1;touch-action:none}canvas{display:block;width:100%;height:100%}#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.stateLabel{position:absolute;transform:translate(-50%,-50%);font-size:9px;font-weight:700;text-shadow:0 1px 2px #ffffffbb;opacity:.9;line-height:1.1;text-align:center;pointer-events:auto;background:transparent;padding:3px;border-radius:4px}.stateLabel small{font-size:7px;display:block;font-weight:400}.stateLabel.selected{background:#fff;color:#18323d;box-shadow:0 2px 5px #0002;padding:5px 7px}.stateLabel.dc{border:1px solid #526c78;background:#f8f7ee;font-size:8px}.mapTools{position:absolute;right:18px;bottom:45px;display:flex;flex-direction:column;border:1px solid #d5dcd4;border-radius:5px;overflow:hidden;box-shadow:0 2px 10px #1231}.mapTools button{width:32px;height:31px;background:#f9faf6;font-size:20px;border-bottom:1px solid #e5e7e0}.mapCaption{position:absolute;bottom:15px;left:22px;font-size:8px;letter-spacing:1.7px;color:#7d8c84;pointer-events:none}.mapCaption span{display:block;letter-spacing:.2px;font-size:8px;margin-top:7px;color:#97a097}.legend{display:flex;gap:18px;align-items:center;padding:15px 23px;border-top:1px solid #d9dfd6;font-size:9px;color:#74827c}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:8px;height:8px;border-radius:2px}.legend button{margin-left:auto;background:transparent;font-size:10px;font-weight:600;white-space:nowrap}aside{display:flex;flex-direction:column;gap:17px}.stateCard{background:#fff;border:1px solid var(--line);border-radius:9px;padding:23px}.stateCard .eyebrow{color:#a4875f;font-size:8px}.stateTitle{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:13px 0 22px}h2{font:28px Georgia,serif;letter-spacing:-.7px;margin:8px 0 16px}.stateTitle h2{font-size:26px;margin:0}.stateTitle>span{text-align:center;font-size:6px;letter-spacing:.5px;flex-shrink:0}.stateTitle b{display:block;font-size:22px;font-weight:500;letter-spacing:0;margin-bottom:3px}.pollNumbers{display:flex;justify-content:space-between}.pollNumbers div:last-child{text-align:right}.pollNumbers span{font-size:9px;color:#89928d}.pollNumbers strong{display:block;margin:6px 0 9px;font-size:24px;font-weight:500;color:var(--blue)}.pollNumbers div:last-child strong{color:var(--red)}.pollTrack{height:5px;border-radius:4px;background:#cb7867;overflow:hidden}.pollTrack i{display:block;height:100%;background:var(--blue);transition:width .4s}.pollDetail{display:flex;justify-content:space-between;margin-top:10px;font-size:8px;color:#9b9e97}.pollDetail b{font-weight:500;color:#a38c66}.stateInfo{display:flex;justify-content:space-between;border-top:1px solid #eceee9;border-bottom:1px solid #eceee9;margin:20px 0;padding:16px 0;gap:12px}.stateInfo span{display:block;font-size:7px;letter-spacing:.6px;color:#929a94}.stateInfo b{display:block;font-size:10px;font-weight:500;margin-top:7px}.actionTitle{font-size:8px;letter-spacing:1px;font-weight:700;margin-bottom:12px}.actionTitle span{display:block;color:#a1aaa4;font-weight:400;margin-top:5px;font-size:7px;letter-spacing:.8px}.actionGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.actionGrid button{background:#f6f7f3;border:1px solid #e2e7df;border-radius:5px;text-align:left;padding:10px;font-size:10px;line-height:1.4}.actionGrid button small{display:block;font-size:8px;color:#98a098;margin-top:3px}.actionGrid button span{margin-right:5px}.dispatch{padding:19px 23px;border:1px solid #d8ddd4;border-radius:8px;background:#ecefe7}.dispatch .eyebrow{display:flex;gap:7px;align-items:center;font-size:8px}.dispatch p{font-size:11px;color:#6e8078;line-height:1.7;margin:13px 0}.dispatch>span{font-size:7px;letter-spacing:1px;color:#9aa399}footer{display:flex;justify-content:space-between;color:#9ca59f;font-size:9px;margin-top:22px}dialog{border:1px solid #d4dad3;border-radius:13px;background:#fafaf6;color:var(--ink);max-width:480px;width:calc(100% - 30px);padding:35px;box-shadow:0 20px 100px #0c293c44}dialog::backdrop{background:#112b3ca6;backdrop-filter:blur(7px)}dialog h2{font-size:38px;margin:12px 0}dialog p,dialog li{font-size:13px;color:#74817a}dialog ul{padding-left:18px;line-height:1.8}dialog label{display:block;font-size:10px;font-weight:700;margin:18px 0 10px}input,select{display:block;width:100%;margin-top:8px;background:#fff;border:1px solid #d8dfd7;border-radius:5px;padding:12px;color:var(--ink);font-size:12px}dialog .primary{width:100%;margin:24px 0 15px}dialog small{font-size:9px;color:#91a095;line-height:1.8;display:block}dialog .quiet{margin-top:12px;width:100%}.close{position:absolute;top:12px;right:14px;background:transparent;font-size:25px}#raceList{max-height:55vh;overflow:auto;margin-top:15px}.raceRow{display:flex;width:100%;justify-content:space-between;padding:13px 5px;border-bottom:1px solid #e0e6dd;background:transparent;text-align:left;font-size:12px}.raceRow small{font-size:9px}#toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,25px);background:var(--ink);color:#fff;border-radius:7px;padding:14px 20px;font-size:12px;opacity:0;pointer-events:none;transition:.3s;z-index:10;max-width:90vw}#toast.show{opacity:1;transform:translate(-50%,0)}.mapLoading{position:absolute;top:40%;width:100%;text-align:center;color:#8b988f;font-size:12px}#resultScore{font-size:40px;padding:20px 0;color:var(--blue)}#closest{font-size:12px;line-height:1.8}.election .mapCard{box-shadow:0 0 0 1px #9fb8b0}.election #advance{background:#af705c}@media(min-width:1500px){#map{min-height:530px}}@media(max-width:1000px){.workspace{grid-template-columns:minmax(0,1fr) 290px}.stateCard{padding:18px}.score b{max-width:70px}.mapTag{display:none}.stats>div{padding:0 17px}.stateTitle h2{font-size:23px}.mapHeader{padding-left:18px}.legend{gap:10px;padding:15px}.score{margin-left:16px;margin-right:16px}}@media(max-width:740px){header{height:72px;padding:0 5%}.brand{font-size:18px}.brand small{font-size:6px;letter-spacing:1.3px}.seal{width:28px;height:28px;font-size:18px}.live{display:none}.headerRight{gap:12px}.headerRight .quiet{font-size:10px;padding:8px}.intro{margin-bottom:20px}h1{font-size:33px}.intro .eyebrow{font-size:7px;letter-spacing:1.2px}.intro p{max-width:240px;font-size:11px}.week strong{font-size:29px}.week>span{font-size:7px}.week em{font-size:15px}main{padding:24px 4%}.stats{grid-template-columns:1fr 1fr;padding:15px 0;gap:18px;margin-bottom:17px}.stats>div{padding:0 16px}.stats>div:nth-child(2){border:0}.stats strong{font-size:23px;margin:6px 0}.stats small{font-size:8px}.stats div>span{font-size:8px}.next button{padding:12px 14px}.workspace{grid-template-columns:1fr;gap:17px}#map{min-height:330px}.mapHeader{padding-top:13px}.score{margin-top:18px}.score b{max-width:80px;font-size:9px}.score strong{font-size:24px}.target{font-size:7px}.legend{font-size:8px;gap:10px}aside{display:grid;grid-template-columns:1fr}.stateTitle h2{font-size:29px}.actionGrid{grid-template-columns:repeat(3,1fr)}.actionGrid button{padding:12px 8px}.stateCard{padding:21px}.dispatch{padding:18px 21px}.dispatch p{margin:9px 0}.stateInfo{margin:16px 0}.pollDetail{font-size:9px}.stateInfo span{font-size:8px}.stateInfo b{font-size:12px}.mapCaption{font-size:7px;left:15px}.stateLabel{font-size:7px;padding:2px}.stateLabel small{font-size:6px}footer{gap:16px;font-size:7px}dialog{padding:29px 24px}dialog h2{font-size:33px}.stats .next small{font-size:8px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
