@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#090c14;--panel:#111620;--line:#242b38;--muted:#929bab;--blue:#6497ff;--red:#ff635c}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:#f4f4f7;font-family:'DM Sans',sans-serif}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,path:focus-visible{outline:2px solid #98bdff;outline-offset:5px}header{height:94px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font:700 26px 'Space Grotesk',sans-serif;letter-spacing:-1px}.brand>span:last-child{color:#9eabbf}.brand-icon{display:inline-block;background:var(--red);color:white;width:32px;height:32px;text-align:center;border-radius:7px;margin-right:7px;transform:rotate(-9deg)}nav{display:flex;gap:32px;align-items:center;font-size:13px;color:var(--muted)}nav .active{color:white}.textbutton{background:none;border:0;color:inherit;padding:0}.wallet,.secondary{border:1px solid #394252;border-radius:7px;background:#171d29;color:white;padding:12px 17px;font-size:13px}.wallet span{margin-left:20px}.hero{min-height:620px;display:grid;grid-template-columns:.8fr 1.25fr;align-items:center;padding:60px 5% 50px;overflow:hidden;background:radial-gradient(ellipse at 75% 45%,#15234365,transparent 52%)}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#adb6c6;display:flex;align-items:center;gap:8px}.eyebrow i,.map-label i{width:6px;height:6px;background:#90bcff;box-shadow:0 0 12px #7aaaff;border-radius:50%}h1{font:600 clamp(58px,6.6vw,96px)/.99 'Space Grotesk',sans-serif;letter-spacing:-5px;margin:25px 0}h1>span{color:var(--blue)}.hero-copy>p{color:var(--muted);font-size:17px;line-height:1.65;margin:25px 0}.primary{display:inline-flex;align-items:center;justify-content:center;gap:24px;border:0;border-radius:6px;background:#ecf0f8;color:#111827;padding:15px 22px;font-size:13px;font-weight:700;transition:transform .2s,background .2s}.primary:hover{background:#c8dcff;transform:translateY(-2px)}.hero-note{margin-top:24px;display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px}.sol{font-size:24px;color:#a3a4ff}.hero-note b{color:#475367}.map-stage{position:relative;perspective:1000px;min-width:0;height:490px}.map-stage:before{content:'';position:absolute;inset:20% 0;background-image:linear-gradient(#7288b510 1px,transparent 1px),linear-gradient(90deg,#7288b510 1px,transparent 1px);background-size:35px 35px;transform:rotateX(58deg) rotateZ(-12deg);mask-image:radial-gradient(ellipse,black,transparent 70%)}#map3d{position:absolute;inset:0 -5%;transform-style:preserve-3d;transform:rotateX(27deg) rotateZ(-9deg);animation:float 9s ease-in-out infinite}#map{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 28px 12px #0009)}.state-shape{stroke:#9caec866;stroke-width:1.3;cursor:pointer;transition:fill .2s,filter .2s;fill:#263853}.state-shape:nth-child(3n){fill:#793640}.state-shape:nth-child(4n){fill:#355a9b}.state-shape:hover,.state-shape.is-selected{fill:#78a9ff;stroke:white;stroke-width:2;filter:drop-shadow(0 0 12px #478cff)}.map-depth{fill:#101d34;stroke:#1e3453;stroke-width:2;pointer-events:none}.map-caption{position:absolute;top:10px;left:4%;right:2%;display:flex;justify-content:space-between;font:9px monospace;letter-spacing:1.4px;color:#70819b}.map-label{position:absolute;bottom:45px;left:50%;transform:translateX(-50%);white-space:nowrap;display:flex;align-items:center;gap:10px;border:1px solid #47597b;background:#151d2cdc;box-shadow:0 10px 40px #0005;border-radius:6px;padding:12px 18px;font-size:12px}.coordinates{position:absolute;bottom:10px;left:10px;font:9px monospace;color:#64748b;letter-spacing:1px}#motion{position:absolute;bottom:3px;right:0;background:none;border:0;color:#91a0b5;font-size:10px}.orbit{position:absolute;border:1px solid #34496944;border-radius:50%;left:8%;right:0;top:18%;bottom:12%;transform:rotateX(61deg) rotateZ(-18deg)}.orbit-two{inset:10% -10% 3% 0;opacity:.5}.paused #map3d{animation:none}@keyframes float{0%,100%{transform:translateY(0) rotateX(27deg) rotateZ(-9deg)}50%{transform:translateY(-17px) rotateX(20deg) rotateZ(-6deg)}}.ribbon{display:flex;justify-content:space-around;align-items:center;gap:25px;padding:21px 4%;border-block:1px solid var(--line);background:#0e121b;color:#8e9bb0;font:10px 'Space Grotesk',sans-serif;letter-spacing:2px}.ribbon span:nth-child(even){color:#f57b77;font-size:20px}.explore{padding:76px 5% 50px}.section-head{display:flex;align-items:center;justify-content:space-between}h2{font:500 40px/1.1 'Space Grotesk',sans-serif;letter-spacing:-1.8px;margin:18px 0}.section-head p,.how p{color:var(--muted);font-size:14px}.state-picker{font-size:10px;color:var(--muted);display:grid;gap:9px;min-width:210px}select{padding:13px;background:#141b27;color:white;border:1px solid #3b4659;border-radius:6px}.filters{display:flex;justify-content:space-between;gap:20px;margin:35px 0 24px}.tabs{display:flex;background:#121722;padding:4px;border:1px solid var(--line);border-radius:8px;gap:4px}.tabs button{background:none;border:0;border-radius:5px;color:var(--muted);padding:10px 20px;font-size:12px}.tabs .selected{background:#2b3548;color:white}.search{border:1px solid var(--line);background:#10151f;border-radius:7px;display:flex;align-items:center;padding:0 12px;color:#778399;gap:10px}.search input{background:none;border:0;color:white;outline:none;padding:12px 0;width:210px;font-size:12px}.list-caption{display:flex;justify-content:space-between;color:#8b97ab;font-size:10px;letter-spacing:1px;margin:15px 0}.list-caption span:last-child{font-size:9px;color:#626e82}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;max-height:650px;overflow:auto;padding:2px}.figure{position:relative;text-align:left;border:1px solid var(--line);border-radius:9px;background:linear-gradient(135deg,#1b2639,#111620 60%);padding:23px;color:white;min-height:190px;overflow:hidden;transition:.2s}.figure:hover{border-color:#6e91cc;transform:translateY(-3px)}.figure:after{content:attr(data-initials);position:absolute;right:-4px;bottom:0;font:700 90px 'Space Grotesk';color:#758ebc0d;pointer-events:none}.party{font-size:9px;color:#a9c7ff;padding:5px 8px;border:1px solid #3c527a;background:#26446a44;border-radius:4px}.Republican .party{color:#ffaaa4;background:#7d313833;border-color:#734048}.figure-top{display:flex;justify-content:space-between;align-items:center}.figure-top>b{color:#77869e}.figure h3{font:500 20px 'Space Grotesk';letter-spacing:-.4px;margin:35px 0 7px}.figure p{font-size:11px;color:#93a0b5;margin:0}.data-note{font-size:10px;color:#6f7e94;margin-top:20px;line-height:1.8}.data-note a{text-decoration:underline}.empty{padding:40px;color:var(--muted);grid-column:1/-1}.how{border-top:1px solid var(--line);margin:20px 5% 0;padding:65px 0 80px;display:grid;grid-template-columns:1fr 1fr;gap:50px}.how h2{font-size:44px}.steps article{display:flex;gap:25px;border-bottom:1px solid var(--line);padding:22px 0}.steps article>span{font:12px monospace;color:#7f9dcb;padding-top:4px}.steps h3{margin:0;font-size:17px;font-weight:500}.steps p{margin:8px 0 0;line-height:1.5}footer{border-top:1px solid var(--line);padding:35px 5%;display:flex;justify-content:space-between;align-items:center;gap:30px}footer p{font-size:10px;line-height:1.8;color:#7d8798}footer>span{font-size:8px;color:#687891;letter-spacing:1px}dialog{background:#101722;color:white;border:1px solid #34435b;border-radius:14px;padding:35px;width:min(590px,94vw);max-height:90vh}dialog::backdrop{background:#02050cd9;backdrop-filter:blur(9px)}dialog h2{font-size:31px}dialog>p{font-size:13px;color:#97a8c2}.close{position:absolute;right:15px;top:12px;background:none;border:0;color:#93a4bb;font-size:25px}form label{display:grid;gap:8px;font-size:12px;margin:18px 0;color:#acb7c8}.form-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:15px}input,textarea{background:#090e17;border:1px solid #344055;border-radius:6px;color:white;padding:12px;width:100%}.upload{border:1px dashed #495b77;padding:15px;border-radius:6px;cursor:pointer}.upload small{color:#6e809d}#artwork{padding:0;border:0;font-size:10px}#coin-preview{display:flex;gap:15px;align-items:center;background:#192336;border-radius:7px;padding:16px}#coin-preview img{width:50px;height:50px;object-fit:cover;border-radius:7px}#art-placeholder{font-size:32px;color:#82a7ec}#coin-preview small{display:block;margin-top:5px;color:#94adcf}.studio-actions{display:flex;justify-content:space-between;gap:10px;margin-top:25px}.fine{font-size:10px;color:#798aa2;line-height:1.6;margin-top:20px}#launch-ready{border-top:1px solid #344055;margin-top:20px;padding-top:12px}#launch-ready p{font-size:12px;color:#b7c4d7;line-height:1.6}#launch-ready .primary{margin-top:10px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#e9f0ff;color:#15213a;padding:15px 25px;border-radius:7px;box-shadow:0 8px 40px #0008;z-index:10;opacity:0;pointer-events:none;transition:.25s;font-size:13px;max-width:90vw}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:1550px){main,header,footer{max-width:1700px;margin:auto}}@media(max-width:1000px){.cards{grid-template-columns:repeat(3,1fr)}h1{font-size:70px}.map-stage{height:400px}.hero{min-height:560px}.ribbon{font-size:8px;letter-spacing:1px}nav{gap:18px}}@media(max-width:720px){header{height:76px}.brand{font-size:22px}nav{display:none}.wallet{padding:10px;font-size:11px}.hero{display:flex;flex-direction:column;align-items:stretch;padding-top:45px}.hero-copy{text-align:center}.eyebrow{justify-content:center;font-size:8px}h1{font-size:68px;letter-spacing:-4px}.hero-copy>p{font-size:15px}.hero-note{justify-content:center}.map-stage{height:340px;margin-top:30px}.map-caption{font-size:7px}.ribbon span:nth-child(n+4){display:none}.ribbon{font-size:8px;padding:15px}.explore{padding-top:45px}.section-head{align-items:stretch;gap:15px;flex-direction:column}.section-head .eyebrow,.how .eyebrow{justify-content:start}h2{font-size:35px}.state-picker{max-width:none}.filters{flex-direction:column;margin-top:23px}.tabs{justify-content:space-between}.tabs button{padding:10px 12px}.search input{width:100%}.cards{grid-template-columns:repeat(2,1fr);gap:10px}.figure{padding:16px;min-height:180px}.figure h3{font-size:18px}.list-caption span:last-child{display:none}.how{grid-template-columns:1fr;gap:10px;padding-top:40px}.how h2{font-size:36px}footer{flex-wrap:wrap}footer>span{display:none}dialog{padding:25px}.form-grid{grid-template-columns:1fr;gap:0}.form-grid label{margin:10px 0}.studio-actions{flex-wrap:wrap}.map-label{font-size:10px}.coordinates{font-size:7px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.profile-link{display:inline-block;font-size:12px;color:#a9c7ff;text-decoration:underline;margin-bottom:8px}.profile-link[hidden]{display:none}

.brand{display:inline-flex;align-items:center;white-space:nowrap}.brand-logo{width:44px;height:44px;object-fit:contain;border-radius:7px;margin-right:10px;flex-shrink:0}@media(max-width:720px){.brand-logo{width:36px;height:36px;margin-right:7px}}

.figure{padding:0 0 20px;min-height:330px}.figure-portrait{height:190px;background:linear-gradient(135deg,#283a58,#141c2b);overflow:hidden;margin-bottom:18px}.figure-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 20%;transition:transform .35s}.figure:hover .figure-portrait img{transform:scale(1.035)}.figure .figure-top,.figure h3,.figure p{margin-left:20px;margin-right:20px}.figure h3{margin-top:16px}.portrait-missing{display:grid;place-items:center;font:600 60px 'Space Grotesk';color:#92aacf}.social-link{font-size:12px;color:#a9c7ff;white-space:nowrap}.social-link:hover{color:white}@media(max-width:720px){.figure-portrait{height:165px}.figure{min-height:305px}.figure .figure-top,.figure h3,.figure p{margin-left:14px;margin-right:14px}.social-link{display:block}}
.figure-portrait img{object-fit:contain;object-position:center center}.figure:hover .figure-portrait img{transform:none}

/* BallotPad studio controls */
#studio{width:min(620px,94vw);padding:36px;background:linear-gradient(150deg,#151e2d,#0e1520 65%);box-shadow:0 30px 120px #0009}
#studio button:not(.close){min-height:46px}#studio .primary{background:linear-gradient(120deg,#669cff,#8bb5ff);color:#09162b;border:1px solid #a9caff66;box-shadow:inset 0 1px 0 #ffffff40,0 5px 20px #3268d525;border-radius:10px;transition:background .2s,transform .2s,box-shadow .2s}#studio .primary:hover{background:linear-gradient(120deg,#82afff,#b0ceff);box-shadow:0 7px 25px #3268d540}#studio .secondary{display:inline-flex;align-items:center;justify-content:center;gap:22px;border-radius:10px;border:1px solid #43536d;background:#202d42;color:#e1eaff;padding:12px 18px;transition:background .2s,border-color .2s}#studio .secondary:hover{background:#2c3d58;border-color:#7d9dce}#studio button:active{transform:translateY(1px)}#studio .upload{display:block;margin:22px 0;padding:20px;background:#0d1522;border:1px dashed #455d7e;border-radius:12px;cursor:default}.upload-heading{display:flex;align-items:center;gap:12px}.upload-heading strong{font-size:13px;font-weight:500;color:#e1eaff}.upload-heading small{display:block;margin-top:5px;font-size:10px;color:#849bbd}.upload-symbol{display:grid;place-items:center;width:36px;height:36px;border:1px solid #364b6a;border-radius:10px;background:#1d2c44;color:#9cc2ff;font-size:23px}.upload-controls{display:flex;align-items:center;gap:14px;margin-top:17px}#file-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#8f9fb7}#choose-artwork{flex-shrink:0;font-size:12px}#artwork[hidden]{display:none}#coin-preview{border:1px solid #2c3c55;border-radius:12px;background:#152135}.studio-actions{display:grid;grid-template-columns:1fr 1.6fr;gap:12px}#launch-ready{margin-top:28px;padding-top:25px;border-color:#34445e}#launch-ready[hidden]{display:none}.review-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.review-heading .eyebrow{font-size:8px;letter-spacing:1.4px}.review-heading h3{font:500 23px 'Space Grotesk';margin:9px 0 0;letter-spacing:-.6px}.preview-badge{padding:5px 9px;color:#afc9f3;background:#24334a;border:1px solid #405675;border-radius:20px;font-size:10px}.launch-details{margin:22px 0;border:1px solid #2a3a51;border-radius:12px;background:#0e1725;padding:4px 17px}.launch-details>div{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid #263248}.launch-details>div:last-child{border:0}.launch-details dt{color:#8598b4;font-size:12px}.launch-details dd{margin:0;font-size:12px;text-align:right;overflow-wrap:anywhere;color:#e1eaff}.network-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#8ea6ff;margin-right:5px}#launch-ready .launch-button{width:100%;margin-top:0;justify-content:space-between;padding:16px 19px}#launch-ready .launch-caption{text-align:center;font-size:11px;color:#8296b4;margin:12px 0}#launch-ready .launch-notice{padding:14px 16px;background:#243650;border:1px solid #486386;border-radius:10px;font-size:12px;color:#cbdcf6;line-height:1.6}#launch-ready .export-button{display:block;margin:10px auto 0;color:#9bb2d3;font-size:11px;min-height:32px}#studio .fine{text-align:center;font-size:10px;color:#7c91ae}#studio input:focus-visible,#studio textarea:focus-visible{outline:2px solid #76a7ff;outline-offset:2px}@media(max-width:520px){#studio{padding:25px 20px}.upload-controls{gap:10px}#choose-artwork{padding:11px 13px!important}.studio-actions{grid-template-columns:1fr 1.5fr}#studio .primary{gap:10px;padding-inline:14px}.review-heading .eyebrow{justify-content:flex-start}}
