/* Toy-like campaign UI: glossy controls, raised borders, patriotic colors. */
:root{--ink:#193b83;--muted:#617ba8;--paper:#e3f2ff;--line:#b3ccef;--blue:#2475e9;--red:#ee4b62;font-family:'Arial Rounded MT Bold','Trebuchet MS',Arial,sans-serif}body{font-family:'Trebuchet MS',Arial,sans-serif;background:radial-gradient(ellipse at 15% 0%,#fff 0,transparent 45%),repeating-linear-gradient(135deg,#fff2 0 20px,transparent 20px 40px),linear-gradient(150deg,#dcedff,#b8dcff 75%,#d7eaff);color:var(--ink);min-height:100vh}button{font-family:inherit;font-weight:700}header{height:92px;background:linear-gradient(#fff,#f5f9ff);border-bottom:5px solid #2c65c6;box-shadow:0 5px 0 #143c8520;padding:0 4%;position:relative}header:after{content:'';position:absolute;bottom:-5px;left:0;width:24%;height:5px;background:#ee4b62}.brand{font-family:'Arial Rounded MT Bold','Trebuchet MS',Arial,sans-serif;font-size:26px;font-weight:900;letter-spacing:-1px;color:#1d4a9d;text-shadow:0 2px 0 #d6e7ff}.brand b{color:#ea4058}.brand small{color:#6787b6;font-size:8px;letter-spacing:1.7px;text-shadow:none}.seal{background:linear-gradient(#fa7386,#e92f4f);border:3px solid white;outline:3px solid #2e64bc;width:43px;height:43px;color:#fff;box-shadow:0 5px 0 #aa2b4820;text-shadow:0 2px 0 #bb2945;font-size:27px}.live{color:#6685b2;font-size:8px}.live i{background:#ed4d65}.quiet,.icon{background:linear-gradient(#fff,#e6f0ff);border:2px solid #7ea6df;box-shadow:0 3px 0 #b0c9e8;border-radius:30px;color:#2855a3}.icon{width:34px;height:34px;font-size:18px}.quiet{padding:10px 16px}.headerRight{gap:13px}main{padding-top:29px}.intro{margin-bottom:26px}.intro .eyebrow{display:inline-block;background:#fff9;padding:7px 12px;border-radius:20px;color:#3974c8;font-size:9px;letter-spacing:1px}h1{font-family:'Arial Rounded MT Bold','Trebuchet MS',Arial,sans-serif;font-weight:900;font-size:44px;letter-spacing:-1.7px;color:#234f9f;text-shadow:0 3px 0 white;margin:9px 0 7px}.intro p{color:#5e7da8}.week{background:linear-gradient(#fff,#e9f2ff);border:3px solid #6593d6;border-radius:20px;padding:11px 20px;box-shadow:0 5px 0 #3d6cb32a;text-align:center;min-width:118px;position:relative;transform:rotate(2deg)}.week:before{content:'★';position:absolute;color:#ef4f65;top:-15px;left:-10px;font-size:27px;text-shadow:0 2px 0 #fff}.week>span{font-size:8px;font-weight:bold;letter-spacing:1px}.week strong{font-size:32px;font-weight:900;color:#e74860}.week em{font-size:19px;color:#6b92c9}.stats{background:none;border:0;gap:13px;padding:0;margin-bottom:26px}.stats>div{border:2px solid #92b4e6;border-bottom:5px solid #769ed6;border-radius:20px;background:linear-gradient(#fff,#edf5ff);padding:16px 20px;position:relative;box-shadow:inset 0 2px 0 #fff,0 5px 0 #5c8dc414}.stats>div:last-child{border:2px solid #df93a3;border-bottom:5px solid #c96780;background:linear-gradient(#fff9fa,#fff1f5)}.stats>div>span{font-size:8px;font-weight:900;letter-spacing:.8px;color:#6483b2}.stats strong{color:#2d65c5;font-weight:900;font-size:28px;margin:8px 0}.stats strong span{font-weight:700;color:#7f9bc3}.stats>div:nth-child(2) strong{color:#e34b66}.stats>div:nth-child(3) strong{color:#2d65c5}.stats small{color:#7690b2;font-size:9px}.stats .next{padding:14px 16px;gap:9px}.next button,.primary{position:relative;border:2px solid #a52244;border-top-color:#ffb4c1;border-radius:30px;box-shadow:inset 0 3px 0 #ffb4c160,inset 0 -3px 0 #a4244320,0 4px 0 #ac294a;background:linear-gradient(#ff8194 0%,#ee4b67 48%,#df3454 100%);color:#fff;text-shadow:0 2px 0 #ac2848;padding:14px 19px;font-size:13px;font-weight:900}.next button:hover:not(:disabled),.primary:hover:not(:disabled){filter:brightness(1.07);transform:translateY(-1px)}.next button:active:not(:disabled),.primary:active:not(:disabled){transform:translateY(3px);box-shadow:inset 0 2px 0 #fff3,0 1px 0 #ac294a}.workspace{gap:24px;grid-template-columns:minmax(0,1fr) 342px}.mapCard{border:4px solid #4d80d0;border-bottom:9px solid #2f60ad;border-radius:31px;background:#daedff;box-shadow:inset 0 3px 0 #fff,0 7px 0 #3e68ad16}.mapHeader{background:linear-gradient(#f9fcff,#e6f1ff);padding:15px 18px 12px;border-bottom:2px solid #afcbed;gap:12px}.tabs{gap:8px}.tabs button{padding:10px 14px;border-radius:24px;color:#5479b0;font-size:10px;background:#d9e8fd;border:2px solid #b3cff0;box-shadow:inset 0 2px 0 #fff7}.tabs .active{background:linear-gradient(#6b9df1,#326ad0);color:#fff;border:2px solid #2858ae;border-top-color:#b6d7ff;text-shadow:0 1px 0 #2858ae;box-shadow:0 3px 0 #244e9c}.mapTag{color:#6288bd;font-size:7px;font-weight:bold}.score{margin-top:18px}.score b{color:#355c99;font-size:10px;font-weight:bold}.score strong{font-weight:900;color:#1e64cd;font-size:30px}.score>div:last-child strong{color:#e34a62}.target{background:#fff;border:2px solid #bdd1ed;padding:8px 9px;border-radius:20px;font-weight:900;letter-spacing:.4px;color:#5c7eaa;white-space:nowrap}.evTrack{height:11px;background:#f5f9ff;border:2px solid #b6cfed;border-radius:20px;gap:2px;overflow:visible}.evTrack div{border-radius:12px}#blueBar{background:linear-gradient(#65a6ff,#2c73df)}#redBar{background:linear-gradient(#ff97a6,#ed4962)}#grayBar{background:#ebf3ff}.evTrack i{height:19px;top:-6px;border-left:2px solid #2855a6}.mapTools{border:2px solid #6d9bd7;border-radius:15px;box-shadow:0 4px 0 #5083c63a}.mapTools button{background:linear-gradient(#fff,#dcecff);border-bottom:1px solid #a1c0ec;color:#2a61b8;font-weight:900;height:35px;width:35px}.mapCaption{color:#5b80ae;font-weight:bold}.mapCaption span{color:#7899bf;font-weight:400}.stateLabel{color:#153a73;text-shadow:0 1px 2px #fff;font-family:Arial,sans-serif}.stateLabel.selected{color:#17478d;border:2px solid #2e69c7;background:#fff;border-radius:10px;box-shadow:0 3px 0 #2457a72a}.stateLabel.dc{background:#fff;border-color:#406ec1}.legend{border-top:2px solid #b3ceed;background:linear-gradient(#f4faff,#e7f1ff);color:#5c7cac;padding:15px 18px;font-weight:bold}.legend i{border-radius:50%;border:1px solid #ffffff88;width:10px;height:10px}.legend button{color:#2a64bf;background:#fff;border:2px solid #b7ceed;border-radius:20px;padding:7px 10px;font-size:9px}.stateCard{position:relative;border:4px solid #4e80d0;border-bottom:8px solid #2f60ad;border-radius:39px 39px 28px 28px;background:linear-gradient(#fff,#f4f8ff);padding:24px 20px 20px;box-shadow:inset 0 3px 0 #fff,0 6px 0 #3e68ad16;overflow:visible}.stateCard:before{content:'★ ★ ★';display:block;margin:-42px auto 14px;text-align:center;letter-spacing:8px;font-size:27px;color:#ee4e69;text-shadow:-2px -2px 0 #fff,2px 2px 0 #fff,0 4px 0 #adc4e6;pointer-events:none}.stateCard .eyebrow{color:#5d81b5;font-size:8px;text-align:center;letter-spacing:1.3px}.stateTitle{margin:14px 0 19px;gap:8px}.stateTitle h2{font-family:'Arial Rounded MT Bold','Trebuchet MS',Arial,sans-serif;font-weight:900;font-size:25px;color:#2756a3;letter-spacing:-.7px;overflow-wrap:anywhere}.stateTitle>span{background:#e9f2ff;border:2px solid #b7d0f0;border-radius:14px;padding:6px;min-width:61px;font-size:6px;color:#5d7ea7}.stateTitle b{font-size:23px;color:#e24461;font-weight:900}.pollNumbers span{color:#6583ae;font-size:9px}.pollNumbers strong{font-weight:900;font-size:27px;color:#2475e9}.pollNumbers div:last-child strong{color:#ee4b62}.pollTrack{height:10px;border:2px solid #93afd6;background:linear-gradient(#ff9aac,#ee4b62);border-radius:20px}.pollTrack i{background:linear-gradient(#68aeff,#2475e9)}.pollDetail{color:#8299b8}.pollDetail b{background:#e8f0ff;color:#3a6dba;border-radius:10px;padding:3px 7px;font-weight:900}.stateInfo{border-color:#c8daf1;padding:13px 0;margin:15px 0}.stateInfo span{color:#7993b7}.stateInfo b{color:#315990;font-weight:bold}.actionTitle{color:#2f5caa;font-size:9px;text-align:center;letter-spacing:.7px}.actionTitle span{color:#6d8bb8}.actionGrid{gap:10px}.actionGrid button{position:relative;border:2px solid #2c5eaf;border-top-color:#a6caff;border-radius:19px;background:linear-gradient(#79aafa,#4c85e5 48%,#3874d5);box-shadow:inset 0 2px 0 #ffffff4d,0 4px 0 #234e98;color:#fff;padding:11px 9px;font-size:10px;text-shadow:0 1px 0 #2758b1;min-height:62px}.actionGrid button small{color:#e6f0ff;font-size:8px;font-weight:400;margin-top:4px}.actionGrid button span{font-size:14px}.actionGrid button:nth-child(3n+2){background:linear-gradient(#ff91a3,#ed5974 48%,#dc405e);border-color:#b62e4c;border-top-color:#ffc5cf;box-shadow:inset 0 2px 0 #fff4,0 4px 0 #a02a46;text-shadow:0 1px 0 #b02e4c}.actionGrid button:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.07)}.actionGrid button:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 #234e98}.actionGrid button:disabled{background:linear-gradient(#d4e1f2,#c0d0e8);color:#6d86ac;border-color:#a9beda;box-shadow:0 3px 0 #9fb6d5;opacity:.8;text-shadow:none}.actionGrid button:disabled small{color:#6d86ac}.dispatch{background:#fff8fb;border:3px solid #e6a6b6;border-bottom:6px solid #d17b95;border-radius:23px;box-shadow:inset 0 2px 0 #fff;padding:18px 20px}.dispatch .eyebrow{color:#b85977;font-size:8px}.dispatch p{color:#755d80;font-size:11px}.dispatch>span{color:#b285a1}.blueDot{background:#2475e9}.redDot{background:#ee4b62}footer{color:#6e8fba;margin-top:26px}dialog{background:linear-gradient(#fff,#f2f7ff);border:6px solid #4b7cd0;border-bottom:11px solid #2b58a4;border-radius:55px 55px 34px 34px;padding:42px 32px 28px;box-shadow:inset 0 4px 0 #fff,0 10px 0 #194a981c,0 25px 100px #12336644;max-height:90dvh;overflow:auto}dialog::backdrop{background:#284c8f85;backdrop-filter:blur(8px)}dialog .eyebrow{text-align:center;color:#7393c3;font-size:9px}dialog h2{font-family:'Arial Rounded MT Bold','Trebuchet MS',Arial,sans-serif;font-weight:900;font-size:34px;letter-spacing:-1px;text-align:center;color:#2a5bab;text-shadow:0 2px 0 white}dialog p{color:#637faa;font-size:12px}dialog label{font-size:10px;color:#5076ad}input,select{border:2px solid #b0cbed;background:linear-gradient(#edf5ff,#fff);border-radius:15px;color:#295494;padding:12px;font-family:inherit;box-shadow:inset 0 2px 3px #3769a410}input:focus,select:focus{outline:3px solid #ff9aad;border-color:#5a8fdf}dialog small{color:#7190b7;text-align:center}dialog .primary{padding:16px 21px;text-transform:uppercase;letter-spacing:.5px;font-size:12px}dialog .quiet{font-size:11px}.close{width:34px;height:34px;top:15px;right:16px;border:2px solid #fff;border-radius:50%;background:linear-gradient(#ff99ab,#e74c6a);color:#fff;box-shadow:0 3px 0 #ba3554;display:grid;place-items:center;font-size:24px;line-height:1}.raceRow{border-bottom:1px solid #c8dafa;color:#2d5ca1;padding:13px 9px;border-radius:12px;gap:10px}.raceRow:hover{background:#e3efff}.raceRow small{color:#6d8ebb}.menuStars{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 9px;font-size:36px;color:#ef4d68;text-shadow:0 3px 0 #bacfea,-2px 0 0 #fff,2px 0 0 #fff}.menuStars span:nth-child(2){color:#3c7cde;font-size:52px;transform:translateY(-8px)}#gameMenu{text-align:center;max-width:390px;border-top-left-radius:95px 55px;border-top-right-radius:95px 55px;padding:28px 30px}#gameMenu h2{margin:6px 0 22px;text-transform:uppercase;font-size:38px}#gameMenu .menuPill{width:100%;padding:16px 20px;border:2px solid #2858af;border-top-color:#b3d2ff;border-radius:35px;background:linear-gradient(#8cb7ff,#4c83de 57%,#3970c8);color:#fff;box-shadow:inset 0 3px 0 #fff3,0 5px 0 #2855a0;text-shadow:0 2px 0 #2c5bb1;font-size:17px;text-transform:uppercase;letter-spacing:1px;margin-bottom:18px}#gameMenu .menuPill.red{background:linear-gradient(#ff91a5,#ed5773 57%,#d73d5e);border-color:#af284a;border-top-color:#ffc4d0;box-shadow:inset 0 3px 0 #fff3,0 5px 0 #a82d4a;text-shadow:0 2px 0 #b02d4a}#gameMenu .menuPill:hover{transform:translateY(-2px);filter:brightness(1.06)}#gameMenu .menuPill:active{transform:translateY(3px);box-shadow:0 1px 0 #2855a0}#setup:before,#results:before{content:'★ ★ ★';display:block;text-align:center;letter-spacing:10px;font-size:27px;color:#ec4c68;text-shadow:0 3px 0 #c8daf5;margin:-15px 0 17px}#resultScore{text-align:center;font-weight:900;color:#2e71dc}#toast{background:linear-gradient(#467cd2,#2855a0);border:2px solid #b4d0ff;border-radius:25px;box-shadow:0 5px 0 #173f7a55;color:#fff;font-weight:bold;font-size:12px}.election .mapCard{box-shadow:0 0 0 3px #fff,0 0 0 7px #ee4b62}.mapLoading{color:#5a85bd}.legend span:nth-child(1) i{background:#2475e9!important}.legend span:nth-child(2) i{background:#fff!important;border-color:#9dbce5}.legend span:nth-child(3) i{background:#ee4b62!important}
@media(max-width:1100px){.workspace{grid-template-columns:minmax(0,1fr) 306px;gap:19px}.stats>div{padding:15px}.score{gap:5px}.score b{font-size:9px;max-width:75px}.target{font-size:7px;padding:7px}.stateTitle h2{font-size:23px}.tabs button{padding:9px 11px;font-size:9px}.legend{gap:10px;padding:13px}.legend button{padding:6px 8px;font-size:8px}}
@media(max-width:740px){header{height:77px}.brand{font-size:20px}.brand small{font-size:6px;letter-spacing:1px}.seal{width:32px;height:32px;font-size:21px;outline-width:2px}.headerRight{gap:9px}.headerRight .quiet{font-size:9px;padding:8px 11px}.icon{width:30px;height:30px;font-size:15px}main{padding:25px 4% 16px}.intro{gap:10px;margin-bottom:20px}.intro .eyebrow{font-size:6px;padding:6px 8px;letter-spacing:.6px}h1{font-size:29px;letter-spacing:-1px;margin-top:11px}.intro p{font-size:10px;max-width:240px}.week{min-width:87px;border-radius:17px;padding:10px}.week strong{font-size:27px;margin:4px 0 0}.week>span{font-size:6px}.week em{font-size:14px}.week:before{font-size:23px}.stats{gap:11px;margin-bottom:32px;grid-template-columns:1fr 1fr}.stats>div{border:2px solid #92b4e6!important;border-bottom:5px solid #769ed6!important;padding:13px 15px;border-radius:20px}.stats>div:last-child{border-color:#df93a3!important;border-bottom-color:#c96780!important}.stats strong{font-size:24px}.stats small{font-size:8px}.stats .next{padding:13px 11px}.next button{font-size:11px;padding:13px 12px}.workspace{grid-template-columns:1fr;gap:32px}.mapCard{border-radius:26px;border-width:3px;border-bottom-width:7px}.mapHeader{padding:12px;gap:5px}.tabs{gap:6px}.tabs button{font-size:9px;padding:9px 10px}.score{margin:16px 12px 10px}.score b{font-size:8px;max-width:70px}.score strong{font-size:24px;margin:0 1px}.score>div{gap:5px}.target{padding:6px;font-size:6px;letter-spacing:0}.evTrack{margin:0 13px}.legend{font-size:7px;gap:10px;padding:12px 10px}.legend span{gap:4px}.legend button{font-size:8px;padding:6px}.legend i{width:8px;height:8px}#map{min-height:330px}.mapCaption{font-size:6px}.mapCaption span{font-size:7px}.mapTools{right:12px}.mapTools button{height:31px;width:31px}.stateCard{padding:23px 19px 20px}.stateCard:before{font-size:26px;margin-top:-43px;margin-bottom:14px}.stateTitle h2{font-size:28px}.stateCard .eyebrow{font-size:9px}.stateTitle>span{padding:7px 9px}.pollNumbers strong{font-size:28px}.pollNumbers span{font-size:11px}.actionGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.actionGrid button{font-size:9px;border-radius:17px;padding:11px 6px;min-height:66px}.actionGrid button small{font-size:7px}.actionGrid button span{font-size:12px}.stateInfo b{font-size:11px}.stateInfo span{font-size:7px}.stateInfo{margin:16px 0}.dispatch{padding:18px 20px;border-radius:22px}.dispatch p{font-size:12px}footer{font-size:7px;line-height:1.5}dialog{padding:36px 24px 25px;border-width:5px;border-bottom-width:9px;border-radius:44px 44px 29px 29px}dialog h2{font-size:30px}.close{top:13px;right:13px;width:29px;height:29px;font-size:21px}}
@media(prefers-reduced-motion:no-preference){dialog[open]{animation:popIn .24s ease-out}@keyframes popIn{from{opacity:0;transform:scale(.94) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}}
#aiOverlay[hidden]{display:none!important}#aiOverlay{position:absolute;inset:0;z-index:4;pointer-events:none;display:flex;align-items:center;flex-direction:column;justify-content:space-between;padding:18px 14px;background:linear-gradient(#daedff30,transparent 30%,transparent 65%,#daedff75)}.aiBadge{background:linear-gradient(#ff94a7,#e24668);border:2px solid white;border-radius:25px;color:#fff;font-size:9px;letter-spacing:1px;font-weight:900;padding:10px 16px;box-shadow:0 3px 0 #af315355;text-shadow:0 1px 0 #a42c4a}.aiCallout{pointer-events:auto;display:flex;align-items:center;flex-direction:column;background:linear-gradient(#fff,#edf4ff);border:3px solid #5687d2;border-bottom:5px solid #315da5;border-radius:21px;padding:12px 22px 10px;max-width:94%;box-shadow:0 5px 18px #133b7c20;text-align:center}.aiCallout small{font-size:7px;font-weight:bold;color:#879fc0;letter-spacing:1px}.aiCallout strong{font-size:13px;color:#2a58a3;margin:5px 0 8px;line-height:1.4}.aiCallout button{font-size:9px;background:#e5edff;border:1px solid #b6c9eb;border-radius:15px;padding:7px 12px;color:#486ca8}.ai-playing #labels{pointer-events:none;opacity:.55}.ai-playing .stateLabel{pointer-events:none}.ai-playing canvas{pointer-events:none}.ai-playing .mapCaption,.ai-playing .mapTools{visibility:hidden}.ai-playing #advance{font-size:11px}.ai-playing .mapCard{box-shadow:0 0 0 3px #fff,0 0 0 6px #ef6f8e50}@media(max-width:740px){.aiBadge{font-size:7px;padding:8px 13px}.aiCallout{padding:9px 15px 8px;border-radius:19px}.aiCallout strong{font-size:11px}.aiCallout button{padding:6px 11px}#aiOverlay{padding:13px 8px}}
/* Candidate studio and persistent character companion. */
#setup{max-width:790px;padding:35px 28px 22px}#setup h2{margin:5px 0 8px}.creatorIntro{text-align:center;margin:0 0 20px}.creatorLayout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:25px;align-items:start}.creatorStudio{min-width:0}.portraitStage{height:230px;position:relative;background:radial-gradient(circle at 50% 45%,#fff 0,#eaf4ff 35%,#c6e0ff 67%,#90bbf0 100%);border:3px solid #95b7e7;border-bottom:5px solid #6b96d0;border-radius:42px 42px 25px 25px;overflow:hidden;box-shadow:inset 0 3px 0 #fff}.portraitStage:before{content:'';position:absolute;inset:18px 30px;border:2px dashed #ffffffbb;border-radius:50%;pointer-events:none}#creatorPreview{position:absolute;inset:0 0 4px;z-index:1}#creatorPreview canvas{width:100%;height:100%}.portraitStar{position:absolute;color:white;text-shadow:0 2px 0 #789fda;font-size:32px;z-index:2;pointer-events:none}.portraitStar.one{left:23px;top:32px;transform:rotate(-14deg)}.portraitStar.two{right:21px;top:70px;font-size:22px;transform:rotate(20deg)}.portraitRibbon{position:absolute;z-index:2;bottom:11px;left:50%;transform:translateX(-50%);white-space:nowrap;background:linear-gradient(#ff8299,#e84a6a);border:2px solid #fff;color:#fff;border-radius:16px;font-size:8px;letter-spacing:1px;font-weight:900;padding:7px 12px;box-shadow:0 3px 0 #b92b4f3a}.shuffleLook{display:block;margin:11px auto 12px!important;width:auto!important;font-size:10px!important;padding:8px 17px!important;background:linear-gradient(#fff,#eaf2ff)!important}#lookControls{display:grid;grid-template-columns:1fr 1fr;gap:12px 10px}#lookControls fieldset{min-width:0;padding:0;border:0;margin:0}#lookControls fieldset:nth-child(1),#lookControls fieldset:last-child{grid-column:1/-1}#lookControls legend{padding:0;margin:0 0 7px;color:#5f81b3;font-size:9px;font-weight:900}.lookSwatches,.lookPills{display:flex;gap:5px;flex-wrap:wrap}.lookSwatches button{width:23px;height:23px;border-radius:50%;border:2px solid #fff;outline:1px solid #b4cae9;background:var(--swatch);box-shadow:inset 0 2px 0 #ffffff66;color:#fff;text-shadow:0 1px 3px #173b78,0 0 2px #173b78;font-size:13px;display:grid;place-items:center;padding:0}.lookSwatches button.chosen{outline:2px solid #326bca;box-shadow:0 0 0 3px #bdd8ff}.lookPills button{font-size:8px;padding:7px 9px;border:1px solid #b7cdec;border-bottom:3px solid #a2bce1;border-radius:13px;background:linear-gradient(#fff,#edf4ff);color:#5a7bad}.lookPills button.chosen{color:#fff;background:linear-gradient(#6798e8,#3e72c6);border-color:#3968b4;border-top-color:#9bc4ff}.campaignDetails{background:#eaf2ff70;padding:4px 17px 18px;border:2px solid #cfdef5;border-radius:23px}.campaignDetails label{margin-top:15px}.campaignDetails input,.campaignDetails select{font-size:11px;padding:11px;max-width:100%}.creatorTip{margin-top:20px;border-top:1px solid #c1d6f2;padding-top:17px}.creatorTip b{color:#4774b3;font-size:11px}.creatorTip p{font-size:11px;line-height:1.7;color:#718ab0;margin:8px 0 0}.creator-open #candidateBadge{visibility:hidden}#candidateBadge{position:fixed;bottom:14px;left:16px;z-index:6;display:flex;align-items:center;gap:6px;padding:0 13px 0 2px;min-width:150px;max-width:230px;height:94px;background:linear-gradient(#fff,#e5efff);border:3px solid #6391d8;border-bottom:5px solid #3664af;border-radius:27px;box-shadow:0 5px 18px #17498d22;text-align:left;overflow:hidden;color:#29599f}#cornerPortrait{height:92px;width:73px;flex-shrink:0;align-self:flex-end}#cornerPortrait canvas{pointer-events:none}.candidateBadgeText{padding-right:3px;min-width:0}.candidateBadgeText small{font-size:6px;letter-spacing:.7px;color:#82a0c7;display:block}.candidateBadgeText strong{display:block;font-size:11px;max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:5px 0}.candidateBadgeText span{font-size:8px;color:#a06393}body{padding-bottom:94px}#candidateBadge:hover{transform:translateY(-2px);filter:brightness(1.02)}.avatar-fallback{display:grid;place-items:center;color:#3975d2;font-size:58px}[hidden]{display:none!important}
@media(max-width:740px){#setup{padding:29px 20px 20px;max-width:470px}.creatorLayout{grid-template-columns:1fr;gap:20px}#setup h2{font-size:27px}.creatorIntro{font-size:11px;margin-bottom:16px}.portraitStage{height:185px;max-width:300px;margin:0 auto;border-radius:34px 34px 24px 24px}#lookControls{gap:12px 14px}.lookSwatches button{width:25px;height:25px}.lookPills button{font-size:9px;padding:8px 10px}.campaignDetails{padding:0 15px 14px}.creatorTip{margin-top:15px;padding-top:13px}.creatorTip p{font-size:10px}.portraitRibbon{font-size:7px;padding:6px 11px}#candidateBadge{height:73px;min-width:123px;max-width:175px;left:10px;bottom:10px;border-radius:22px;padding-right:9px;gap:2px}#cornerPortrait{height:73px;width:58px}.candidateBadgeText strong{font-size:9px;max-width:95px;margin:4px 0}.candidateBadgeText small{font-size:5px}.candidateBadgeText span{font-size:7px}body{padding-bottom:75px}#toast{bottom:95px}}
/* Attack campaigns, real undecided support, and dramatic newspaper coverage. */
.pollTrack{display:flex;background:#f1f5fc;overflow:hidden}.pollTrack i{flex-shrink:0;height:100%;transition:width .4s}#pollFill{background:linear-gradient(#68aeff,#2475e9)}#undecidedFill{background:repeating-linear-gradient(135deg,#f9fafc 0 3px,#c6d1e3 3px 6px);min-width:0}#opponentFill{background:linear-gradient(#ff9aac,#ee4b62)}#undecidedLabel{font-size:9px;color:#8194b4;text-align:center;margin-top:8px}#undecidedLabel b{color:#58749e;margin-left:4px}#stateAttackStatus{border:1px dashed #cc8ca9;background:#fff1f6;padding:10px 11px;border-radius:13px;margin:0 0 16px;font-size:10px;color:#a15678;line-height:1.7}.attackTools{margin-top:18px;display:grid;gap:10px}.attackTools button{padding:12px 10px;border:2px solid #aa3153;border-top-color:#ffb3cc;border-radius:20px;background:linear-gradient(#fc88a5,#df4a72);color:#fff;box-shadow:inset 0 2px 0 #fff4,0 4px 0 #9c2b4a;text-shadow:0 1px 0 #a8274c;font-size:11px}.attackTools small{font-size:8px;display:block;margin-top:5px;color:#ffe5f0;font-weight:400}.attackTools button:disabled{opacity:.5;cursor:not-allowed}.attackTools #rebuttalBtn{background:linear-gradient(#80a9ea,#4d7bc4);border-color:#3760a0;box-shadow:0 4px 0 #2b5596}.stateLabel.under-attack:after{content:'!';background:#ec4768;border:1px solid #fff;border-radius:50%;position:absolute;top:-6px;right:-7px;color:#fff;font-size:8px;width:12px;height:12px;display:grid;place-items:center;text-shadow:none}#defenseBanner{display:flex;align-items:center;gap:15px;margin-bottom:27px;padding:17px 20px;border:3px solid #e596ae;border-bottom:6px solid #c66c8e;border-radius:25px;background:linear-gradient(#fff9fc,#ffe8f0);color:#9b4167}.defenseIcon{font-size:33px}.defenseActions{margin-left:auto;display:flex;flex-direction:column;gap:7px;flex-shrink:0}#defenseBanner b{font-size:12px}#defenseBanner p{font-size:11px;margin:6px 0 0;color:#af6c89}.defenseActions button{background:#fff;border:1px solid #ddacc4;border-radius:17px;padding:8px 11px;font-size:10px;color:#a44b72}.defenseActions button:first-child{background:linear-gradient(#fa88a6,#df537d);color:#fff;border-color:#c95d7f}#attackDialog{max-width:500px}#attackDialog h2{font-size:33px}.newspaper{position:relative;background:#fffdf4;border:1px solid #d4cbbd;padding:16px 18px;box-shadow:4px 5px 0 #b8b9c338;transform:rotate(-1.5deg);color:#35415a;text-align:center;margin:22px 0}.paperMast{font:900 14px Georgia,serif;letter-spacing:.4px;border-bottom:3px double #555f70;padding:0 0 8px}.newspaper>span{font-size:6px;letter-spacing:1.5px;display:block;margin:7px 0}.newspaper h3{font:900 24px Georgia,serif;line-height:1.1;margin:12px 0;color:#394054}.newspaper>b{font-size:9px;font-family:Georgia,serif}.paperLines{height:26px;background:repeating-linear-gradient(0deg,transparent 0 4px,#a3a8b14a 4px 6px);margin:13px 0}.attackRules{background:#eaf2ff;border:1px solid #c3d6f3;border-radius:16px;padding:14px;color:#5075a9;margin-top:15px}.attackRules>b{font-size:10px}.attackRules p{font-size:10px;line-height:1.7;margin:9px 0 0}.attackRules strong{color:#b45075}#attackPreview{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px;color:#7894b8;font-size:11px}#attackPreview span{padding:7px 10px;border:1px solid #b7cdef;border-radius:13px;background:#f1f7ff;color:#4775b5;font-size:10px}#attackAvailable{font-size:11px;color:#9e5981;line-height:1.5}#confirmAttack:disabled{filter:grayscale(.5);opacity:.55}#headlinePopup{position:fixed;top:110px;left:50%;transform:translateX(-50%) rotate(-3deg);z-index:12;max-width:340px;width:86%;padding:20px 23px;background:#fffdf3;border:2px solid #7c8598;border-radius:3px;box-shadow:0 13px 35px #14346855;text-align:center;color:#36425c;pointer-events:auto}#headlinePopup>span{display:block;font:900 14px Georgia,serif;letter-spacing:.3px;border-bottom:3px double #525e74;padding-bottom:8px}#headlinePopup>small{display:block;letter-spacing:1.3px;font-size:7px;margin:9px}#headlinePopup>strong{font:900 26px Georgia,serif;display:block;line-height:1.1;color:#b74061}#headlinePopup p{font-size:11px;margin-bottom:3px}#closeHeadline{position:absolute;top:3px;right:6px;background:transparent;font-size:20px;color:#586685}.ai-playing .attackTools{pointer-events:none;opacity:.5}@media(max-width:740px){#defenseBanner{gap:10px;flex-wrap:wrap;padding:15px}.defenseIcon{font-size:25px}#defenseBanner>div:nth-child(2){flex:1}.defenseActions{width:100%;flex-direction:row;justify-content:center;margin:0}.defenseActions button{font-size:9px}#defenseBanner p{font-size:10px}.attackTools{grid-template-columns:1fr}.attackTools button{font-size:11px}.newspaper h3{font-size:22px}#attackDialog{padding-left:22px;padding-right:22px}.attackRules p{font-size:10px}#headlinePopup{top:95px}}
@media(prefers-reduced-motion:no-preference){#headlinePopup:not([hidden]){animation:paperPop .38s ease-out}@keyframes paperPop{from{opacity:0;transform:translateX(-50%) rotate(-10deg) scale(.55)}to{opacity:1;transform:translateX(-50%) rotate(-3deg) scale(1)}}}
/* State actions open on demand; the map keeps the full play area. */
.workspace{display:block}.workspace>.dispatch{margin-top:20px}.workspace #map{min-height:440px}#statePanel{padding:19px 0 0;background:transparent;border:0;box-shadow:none;width:370px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 28px);border-radius:38px 38px 29px 29px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#92b4e2 transparent}#statePanel .stateCard{margin:0;position:relative;box-shadow:none;padding:25px 21px 21px}#statePanel .stateCard:before{margin-top:-44px;margin-bottom:13px}#statePanel .stateClose{position:sticky;top:5px;float:right;margin:-12px -9px -16px 0;width:30px;height:30px;z-index:3;font-size:22px;box-shadow:0 3px 0 #ba3554}#statePanel .stateTitle{clear:both}#statePanel .stateTitle h2{font:900 26px 'Trebuchet MS',Arial,sans-serif;text-align:left;text-shadow:none;margin:0;color:#2756a3}#statePanel .stateCard>.eyebrow{padding:0 21px 0 0;font-size:8px}#statePanel .stateInfo{margin:13px 0;padding:12px 0}#statePanel .actionGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}#statePanel .actionGrid button{font-size:9px;padding:10px 6px;min-height:62px;border-radius:17px}#statePanel .actionGrid button span{font-size:12px}#statePanel .actionGrid button small{font-size:7px}#statePanel .attackTools{margin-top:15px}#statePanel .attackTools button{padding:11px 10px;font-size:10px}#statePanel .attackTools small{font-size:8px}#statePanel .pollDetail{align-items:center}#statePanel #stateFeedback{font-size:10px;color:#547ba9;line-height:1.6;padding:9px 11px;border:1px solid #b8d0ee;border-radius:12px;background:#eaf3ff;margin:15px 0 0}#statePanel #stateAttackStatus{font-size:9px;padding:8px 10px;margin-bottom:12px}#statePanel #toast{position:fixed;bottom:20px;max-width:90vw;width:max-content}#statePanel #headlinePopup{position:fixed}#statePanel .actionTitle{margin-bottom:10px}#statePanel .pollNumbers strong{font-size:26px}.mapCard .legend span:nth-child(3) i{background:#f5a8b8!important}
@media(min-width:741px){.workspace #map{min-height:480px;height:clamp(480px,55vh,680px)}.workspace>.dispatch{padding:16px 23px}.workspace>.dispatch p{margin:9px 0}}@media(max-width:740px){.workspace #map{min-height:370px;height:52dvh;max-height:560px}#statePanel{width:370px;max-height:calc(100dvh - 20px);padding-top:18px}#statePanel .stateCard{padding:23px 18px 19px}#statePanel .stateTitle h2{font-size:25px}#statePanel .stateTitle{margin:12px 0 16px}#statePanel .pollNumbers span{font-size:9px}#statePanel .stateInfo b{font-size:10px}.workspace>.dispatch{margin-top:20px}#statePanel #toast{bottom:13px;font-size:10px}#statePanel .stateInfo span{font-size:7px}}
/* A distinct free-for-all round type, selectable before a campaign starts. */
#modePicker{border:0;padding:0;margin:20px 0 0;min-width:0}#modePicker legend{font-size:8px;letter-spacing:.8px;color:#6486b9;font-weight:900;margin-bottom:9px}#modePicker .modeChoice{position:relative;display:flex;align-items:flex-start;gap:9px;border:2px solid #c2d6f1;border-bottom:4px solid #a5bfe3;border-radius:17px;padding:12px 10px;background:linear-gradient(#fff,#edf4ff);cursor:pointer;margin:0 0 10px;color:#527aaf;transition:border-color .2s,background .2s}#modePicker .modeChoice:has(input:checked){border-color:#4e86d8;border-bottom-color:#2e62ad;background:linear-gradient(#fff,#dcecff);box-shadow:0 0 0 2px #fff,inset 0 2px 0 white}#modePicker .randomChoice:has(input:checked){border-color:#e16b91;border-bottom-color:#b4416c;background:linear-gradient(#fff,#ffe5ef)}#modePicker input{appearance:none;width:14px;height:14px;min-width:14px;border-radius:50%;padding:0;margin:3px 0 0;border:2px solid #94b2da;background:white;box-shadow:none}#modePicker input:checked{border:4px solid #4a7ed2}#modePicker .randomChoice input:checked{border-color:#df5781}#modePicker input:focus-visible{outline:3px solid #ff99b7;outline-offset:3px}.modeChoiceIcon{font-size:22px;line-height:1;color:#5688d3}.randomChoice .modeChoiceIcon{color:#df638b}#modePicker b{font-size:11px;color:#325f9f;display:block;line-height:1.4}#modePicker small{font-size:9px!important;color:#7c97ba;text-align:left!important;display:block;margin-top:3px;line-height:1.6}#modePicker>p{font-size:9px;line-height:1.7;color:#7c97b8;margin:7px 0 0}.modeBadge{display:inline-flex;align-items:center;flex-shrink:0;padding:7px 10px;background:#fff;border:2px solid #a9c8ef;border-radius:20px;font-size:7px;font-weight:900;color:#5b82b9;letter-spacing:.5px}.modeBadge.random{background:linear-gradient(#fff,#ffe6ef);border-color:#ed9db8;color:#bd527a}.mapHeader{flex-wrap:wrap;gap:10px}.mapHeader .mapTag{margin-left:auto}#gameMenu #randomModeBtn{background:linear-gradient(#ffacbf,#ed7298 57%,#d95784);border-color:#ad3961;border-top-color:#ffd0df;box-shadow:inset 0 3px 0 #fff3,0 5px 0 #a43860;text-shadow:0 2px 0 #ac395f}@media(max-width:740px){.mapHeader{gap:7px}.modeBadge{font-size:6px;padding:7px 8px;letter-spacing:0}.mapHeader .tabs{flex:1;justify-content:flex-end}.mapHeader .tabs button{font-size:8px;padding:8px 9px}#modePicker .modeChoice{padding:13px 11px}#modePicker b{font-size:12px}#modePicker small{font-size:10px!important}}
/* Party tickets and color-matched, touch-friendly small-state shortcuts. */
#partyPicker{border:0;padding:0;margin:17px 0 20px;min-width:0}#partyPicker legend{font-size:8px;letter-spacing:.8px;font-weight:900;color:#6486b9;margin-bottom:9px}#partyPicker .partyChoice{display:flex;align-items:center;gap:9px;border:2px solid #c4d6ef;border-bottom:3px solid #a6bfe2;border-radius:14px;margin:0 0 7px;padding:10px;background:linear-gradient(#fff,#edf4ff);cursor:pointer}#partyPicker .partyChoice:has(input:checked){border-color:#5a88cc;background:linear-gradient(#fff,#e1edff)}#partyPicker input{appearance:none;width:13px;height:13px;min-width:13px;margin:0;padding:0;border:2px solid #9bb5d9;border-radius:50%;background:white;box-shadow:none}#partyPicker input:checked{border:4px solid #527fc2}#partyPicker b{font-size:10px;color:#4b70a3}.ticketDot{width:12px;height:12px;display:block;flex-shrink:0;border-radius:50%;background:var(--ticket-color);border:1px solid #fff;box-shadow:0 0 0 1px #b8cae4}#partyPicker>small{font-size:9px;text-align:left!important;line-height:1.7;margin-top:9px;color:#7c95b7}.mapWithShortcuts{display:grid;grid-template-columns:minmax(0,1fr) 114px;align-items:stretch;min-width:0}#smallStateRail{border-left:2px solid #b5d1f0;background:linear-gradient(#e7f3ff,#d6e9ff);padding:17px 8px;display:flex;flex-direction:column;justify-content:center;gap:12px}.smallStateHeading{font-size:7px;font-weight:900;letter-spacing:.7px;color:#6084b6;text-align:center}.smallStateHeading small{font-size:7px;font-weight:400;letter-spacing:0;display:block;margin-top:5px;color:#7f9fc4}#smallStateButtons{display:grid;grid-template-columns:1fr 1fr;gap:8px 6px}.smallStateBox{position:relative;min-width:0;min-height:48px;padding:7px 3px;border:2px solid #fff;border-bottom:4px solid #92add1;border-radius:12px;background:var(--state-color);color:#17335d;box-shadow:0 0 0 1px #94b6e0,inset 0 2px 0 #ffffff77;text-align:center;text-shadow:0 1px 1px #ffffff88}.smallStateBox b{display:block;font-size:11px;letter-spacing:.3px}.smallStateBox small{display:block;font-size:7px;font-weight:400;margin-top:4px}.smallStateBox.selected{outline:3px solid #2a5fb1;outline-offset:1px;box-shadow:inset 0 2px 0 #ffffff77}.smallStateBox:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.05)}.smallStateBox.under-attack:after{content:'!';position:absolute;right:-4px;top:-5px;border:1px solid #fff;background:#e84265;border-radius:50%;color:#fff;text-shadow:none;font-size:8px;height:12px;width:12px;display:grid;place-items:center}.smallStateBox:disabled{opacity:.65}#smallStateButtons .smallStateBox:last-child{grid-column:1/-1}.score>div:first-child strong,.pollNumbers>div:first-child strong{color:var(--campaign-color,#3882ec)!important}.score>div:last-child strong,.pollNumbers>div:last-child strong{color:var(--opponent-color,#f26880)!important}.blueDot{background:var(--campaign-color,#3882ec)!important}.redDot{background:var(--opponent-color,#f26880)!important}#blueBar,#pollFill{background:linear-gradient(var(--campaign-light,#8ab8f5),var(--campaign-color,#3882ec))!important}#redBar,#opponentFill{background:linear-gradient(var(--opponent-light,#f5a8b8),var(--opponent-color,#f26880))!important}.mapCard .legend span:nth-child(1) i{background:var(--campaign-color,#3882ec)!important}.mapCard .legend span:nth-child(3) i{background:var(--opponent-light,#f5a8b8)!important}.ai-playing #smallStateRail{opacity:.65;pointer-events:none}@media(max-width:740px){.mapWithShortcuts{grid-template-columns:minmax(0,1fr) 108px}#smallStateRail{padding:12px 6px;gap:10px}#smallStateButtons{gap:7px 5px}.smallStateBox{min-height:46px;border-radius:10px;padding:6px 2px}.smallStateBox b{font-size:10px}.smallStateBox small{font-size:7px;margin-top:3px}.smallStateHeading{font-size:6px;letter-spacing:.4px}#partyPicker .partyChoice{padding:11px}#partyPicker b{font-size:11px}}
#resultScore{color:var(--campaign-color,#3882ec)}
/* An earned, exclusive endorsement collection. */
.endorsementNav{display:flex;align-items:center;gap:7px;border:2px solid #b3c9ee;border-bottom:3px solid #93b1dc;border-radius:20px;background:linear-gradient(#fff,#e3edff);color:#4773b2;padding:8px 12px;font-size:9px;margin-left:auto}.endorsementNav span{background:#fff;border-radius:10px;padding:3px 6px;font-size:8px;color:#bd658e}.stateEndorsementBtn{display:block;width:100%;border:2px solid #94b3de;border-bottom:4px solid #7195cb;background:linear-gradient(#fff,#dfebff);border-radius:17px;padding:10px;color:#4f75ad;font-size:10px;margin-top:16px}.stateEndorsementBtn:disabled{opacity:.5}#endorsementDialog{max-width:760px;padding:35px 27px 26px}#endorsementDialog h2{font-size:32px;margin-bottom:7px}.endorsementIntro{text-align:center;font-size:11px!important;color:#7b95b9!important;margin-top:0}#endorsementSlots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0}.endorsementSlot{min-width:0;border:2px dashed #b4cbea;border-radius:20px;padding:13px 8px;text-align:center;background:#edf4ff}.endorsementSlot.earned{border-style:solid;border-color:#e6aac4;background:linear-gradient(#fff,#fff0f7)}.endorsementSlot>span{display:block;font-size:30px;color:#b6cdec;height:42px;margin:auto auto 7px;width:36px}.endorsementSlot svg{height:42px;width:36px}.endorsementSlot b{display:block;font-size:10px;color:#5278ad;line-height:1.4}.endorsementSlot small{display:block;font-size:8px;line-height:1.5;margin-top:4px;color:#839bbb}.endorsementExplainer{padding:13px 16px;border:1px solid #c6d8f2;border-radius:18px;background:#edf4ff;color:#6483ae}.endorsementExplainer b{font-size:10px}.endorsementExplainer p{font-size:9px;line-height:1.7;color:#7892b5;margin:7px 0 0}.endorsementFilters{display:flex;gap:10px;align-items:center;margin-top:15px}.endorsementFilters input{flex:1;min-width:0}.endorsementFilters select{width:160px;flex-shrink:0}#endorsementFeedback{font-size:10px;color:#708fb9;margin:12px 0 17px}#endorsementCards{display:grid;grid-template-columns:1fr 1fr;gap:13px}.endorserCard{min-width:0;padding:15px;border:2px solid #c1d4ef;border-bottom:4px solid #9db9df;border-radius:23px;background:linear-gradient(#fff,#f1f7ff)}.endorserCard.claimed{border-color:#d4bfdc;background:linear-gradient(#fff,#f4effa)}.endorserHead{display:flex;align-items:center;gap:10px}.endorserPortrait{width:43px;height:50px;flex-shrink:0;display:block}.endorserPortrait svg{width:100%;height:100%}.endorserHead h3{font-size:14px;color:#3c65a1;margin:0 0 4px}.endorserHead small{font-size:8px;text-align:left;color:#89a0bd}.endorserReward{font-size:10px!important;line-height:1.6!important;color:#7e709d!important;background:#fff0f8;border:1px solid #f0d8e7;border-radius:12px;padding:8px 10px;margin:11px 0!important}.endorserCard ul{list-style:none;padding:0;margin:12px 0}.endorserCard li{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:9px;color:#849bbb;padding:6px 0;border-bottom:1px solid #dde7f7;line-height:1.5}.endorserCard li span{max-width:70%}.endorserCard li b{font-size:8px;white-space:nowrap;font-weight:500;color:#8ba0ba}.endorserCard li.met{color:#498d8b}.endorserCard li.met b{color:#498d8b}.rivalProgress{font-size:9px!important;line-height:1.5;color:#b16d92!important;margin:8px 0 12px}.meetEndorser{width:100%;padding:11px 10px;border:2px solid #a54474;border-top-color:#fac1dc;border-radius:18px;background:linear-gradient(#ef98bd,#d9669a);box-shadow:0 3px 0 #a23d70;color:#fff;font-size:9px;text-shadow:0 1px 0 #b2487c}.meetEndorser:disabled{background:linear-gradient(#e4ebf6,#d6e0ef);border-color:#bccce3;box-shadow:0 2px 0 #b2c6e2;color:#8098b9;text-shadow:none;opacity:1;cursor:not-allowed}#gameMenu #menuEndorsements{font-size:14px;background:linear-gradient(#c0adf0,#9d82d2 57%,#866ac0);border-color:#6c50a5;border-top-color:#e1d5fb;box-shadow:inset 0 3px 0 #fff3,0 5px 0 #684c9a;text-shadow:0 2px 0 #7555ad}@media(max-width:740px){#endorsementDialog{padding:32px 20px 22px}#endorsementDialog h2{font-size:27px}.endorsementIntro{font-size:10px!important}#endorsementCards{grid-template-columns:1fr}.endorsementSlot{padding:10px 5px}.endorsementSlot b{font-size:9px}.endorsementSlot small{font-size:7px}#endorsementSlots{gap:7px}.endorsementFilters{gap:7px;flex-wrap:wrap}.endorsementFilters input{flex-basis:100%;margin-top:0}.endorsementFilters select{width:100%;margin-top:0}.endorserHead h3{font-size:15px}.endorserHead small{font-size:9px}.endorserCard li{font-size:10px}.endorserCard li b{font-size:9px}.rivalProgress{font-size:10px!important}.meetEndorser{font-size:10px;padding:12px}.endorsementNav{padding:7px 10px;font-size:8px;margin-left:0}.endorsementNav span{font-size:7px}.endorsementExplainer p{font-size:9px}}
#fundraiserInfo{margin:15px 0 0;padding:10px 12px;background:#f0f4fb;border:1px solid #c5d6ef;border-radius:13px;color:#8097b8;line-height:1.5}#fundraiserInfo b{display:block;font-size:8px;letter-spacing:.6px;color:#718fbb}#fundraiserInfo span{display:block;font-size:9px;margin-top:4px}#fundraiserInfo.fundraiserReady{background:#eaf6f4;border-color:#b0d4d0;color:#528a85}#fundraiserInfo.fundraiserReady b{color:#4e8e86}
/* A compact, pinned candidate portrait takes no space from the map. */
body{padding-bottom:0}header{position:sticky;top:0;z-index:7}#candidateBadge{position:relative;inset:auto;left:auto;right:auto;top:auto;bottom:auto;display:flex;align-items:center;justify-content:center;width:47px;height:48px;min-width:47px;max-width:47px;flex-shrink:0;padding:0;border:2px solid #6e9cdd;border-bottom:4px solid #4678bf;border-radius:17px;box-shadow:inset 0 2px 0 white,0 2px 0 #325d9f20;background:radial-gradient(circle at 50% 35%,#fff,#d9eaff);overflow:hidden;gap:0}#candidateBadge:hover{transform:none;outline:2px solid #a7c7f1;outline-offset:2px}#cornerPortrait{width:44px;height:52px;align-self:auto;flex-shrink:0;margin-top:5px}#candidateBadge .candidateBadgeText{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);padding:0;margin:-1px;white-space:nowrap}.victory-open #candidateBadge{visibility:hidden}.creator-open #candidateBadge{visibility:hidden}#toast{bottom:25px}
/* Election night becomes a little victory party. */
#victoryDialog{padding:0;width:860px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);border:5px solid #6f9bed;border-bottom:10px solid #2f60ac;border-radius:34px;background:#142f64;color:#fff;box-shadow:inset 0 2px 0 #fff,0 20px 90px #081a4a66;overflow:auto;overscroll-behavior:contain}#victoryDialog::backdrop{background:#0b2045bd;backdrop-filter:blur(9px)}.victoryHeader{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;background:#142f64;border-bottom:1px solid #ffffff26}.victoryHeader>span{font-size:9px;font-weight:900;letter-spacing:1px;color:#dceaff}.victoryHeader button{border:1px solid #8fb5f0;border-bottom:3px solid #41639b;border-radius:18px;padding:8px 13px;background:linear-gradient(#fff,#dceaff);color:#3b65a5;font-size:10px;white-space:nowrap}#victoryStage{width:100%;height:clamp(180px,37dvh,340px);overflow:hidden;position:relative;touch-action:pan-y}#victoryStage canvas{display:block;width:100%;height:100%;pointer-events:none}.victoryAnnouncement{position:relative;text-align:center;padding:20px 28px 25px;background:linear-gradient(#193b77,#142f64);border-top:2px solid #ffffff22}.victoryAnnouncement:before{content:'★ ★ ★';display:block;color:#fff0bd;font-size:19px;letter-spacing:12px;margin:0 0 12px;text-shadow:0 2px 0 #1b3e80}.victoryAnnouncement .eyebrow{font-size:8px;color:#a4c3fa;letter-spacing:1.5px}#victoryDialog h2{font:900 clamp(28px,4vw,43px) 'Trebuchet MS',Arial,sans-serif;color:#fff;text-shadow:0 3px 0 #0a2456;letter-spacing:-1px;line-height:1.15;margin:12px 0 9px;overflow-wrap:anywhere}.victoryAnnouncement p{color:#b9d0f6;font-size:12px;margin:0 0 13px}.victoryAnnouncement #victoryCount{display:inline-block;background:var(--winner-color,#367ee1);padding:9px 16px;border:2px solid #ffffffa8;border-radius:23px;box-shadow:0 4px 0 #061d4938;color:#fff;font-size:10px;letter-spacing:.7px;font-weight:900;text-shadow:0 1px 2px #102759}.victoryAnnouncement .primary{max-width:300px;margin:20px auto 0;justify-content:center;background:linear-gradient(#ff92a9,#eb577b);border-color:#b13d65;border-top-color:#ffc5d3;box-shadow:inset 0 2px 0 #fff3,0 4px 0 #9c345a;color:#fff;text-shadow:0 1px 0 #9c345a;font-size:11px}.victoryFallback{display:grid;place-items:center;height:100%;font-size:60px;color:#fff3bd;text-shadow:0 4px 0 #355c9d;letter-spacing:12px}.victory-open{overflow:hidden}#results #replayVictory{background:linear-gradient(#fff,#e3edff);color:#4675b4}#results .quiet{font-size:10px}#results h2{overflow-wrap:anywhere}@media(max-width:740px){body{padding-bottom:0}header{padding:0 4%}.brand{font-size:18px;gap:8px}.brand small{font-size:5px;letter-spacing:1px}.seal{width:28px;height:28px;font-size:19px;margin-right:3px}.headerRight{gap:7px}#candidateBadge{width:41px;height:43px;min-width:41px;max-width:41px;border-radius:15px}#cornerPortrait{width:39px;height:48px;margin-top:5px}.headerRight .icon{width:28px;height:28px}.headerRight .quiet{font-size:9px;padding:8px 10px}#toast{bottom:18px}#victoryDialog{max-width:calc(100vw - 14px);max-height:calc(100dvh - 16px);border-width:4px;border-bottom-width:8px;border-radius:26px}.victoryHeader{padding:12px;gap:8px}.victoryHeader>span{font-size:7px;letter-spacing:.5px}.victoryHeader button{font-size:8px;padding:7px 10px}#victoryStage{height:clamp(180px,34dvh,280px)}.victoryAnnouncement{padding:18px 17px 22px}.victoryAnnouncement .eyebrow{font-size:6px;letter-spacing:1px}.victoryAnnouncement:before{font-size:16px;letter-spacing:9px;margin-bottom:10px}.victoryAnnouncement p{font-size:10px;line-height:1.6}#victoryDialog h2{font-size:30px;margin:10px 0 8px}.victoryAnnouncement #victoryCount{font-size:8px;padding:8px 13px;letter-spacing:.4px}.victoryAnnouncement .primary{margin-top:17px;padding:13px 17px;font-size:10px}}
@media(max-width:350px){.brand{font-size:15px}.brand small{font-size:4px}.seal{width:24px;height:24px;font-size:16px}.headerRight{gap:5px}#candidateBadge{width:36px;min-width:36px;max-width:36px;height:39px}.headerRight .quiet{font-size:8px;padding:8px}}
/* The full game name fits alongside the pinned campaign controls. */
.brand{font-size:21px;letter-spacing:-.7px;flex-shrink:0}.brandText{white-space:nowrap}.brand .brandText small{font-size:8px;letter-spacing:2.3px;margin-top:6px}@media(max-width:740px){.brand{font-size:clamp(11px,3.6vw,15px);letter-spacing:-.4px;gap:7px}.brand .brandText small{font-size:6px;letter-spacing:1.2px}.brand .seal{margin-right:2px}}@media(max-width:350px){.brand{font-size:11px;gap:6px}.brand .brandText small{font-size:5px;letter-spacing:1.1px}}

/* Keep the HQ decoration in its own row instead of wrapping around the close control. */
#statePanel .stateCard::before{content:none;display:none}
#statePanel .stateStars{display:flex;justify-content:center;align-items:center;gap:14px;height:42px;margin:0 30px 12px;line-height:1;white-space:nowrap;pointer-events:none;color:#ee4e69;font-size:27px;text-shadow:0 2px 0 #adc4e6}
#statePanel .stateStars span{display:block;flex:0 0 auto}
#statePanel .stateStars span:nth-child(2){color:#3978d6;font-size:35px}
#statePanel .stateClose{position:absolute;top:17px;right:15px;float:none;margin:0}
.stateLabel[hidden]{display:none!important}
