.site-shell{flex-direction:column;min-height:100%;display:flex}.site-main{flex:1;min-height:0;padding-top:64px}.site-header{z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe0;border-bottom:0;position:fixed;top:0;left:0;right:0}.site-header-inner{justify-content:space-between;align-items:center;gap:20px;max-width:1200px;margin:0 auto;padding:12px 20px;display:flex}.site-logo{color:var(--text);letter-spacing:-.03em;font-weight:700;text-decoration:none}.site-nav{align-items:center;gap:24px;display:flex}.site-nav a{color:var(--muted);font-size:14px;font-weight:500;text-decoration:none}.site-nav a:hover,.site-nav a.active{color:var(--text)}.home-page,.content-page{width:min(1200px,100% - 24px);margin:0 auto;padding:12px 0 16px}.home-hero,.content-card{background:var(--background);border:0;border-radius:0}.home-hero{margin-bottom:10px;padding:14px 16px}.home-hero h1,.content-card h1{letter-spacing:-.05em;margin:0;font-size:clamp(1.45rem,2.6vw,2.2rem);line-height:1}.home-hero p,.content-card p{color:var(--muted);margin:8px 0 0;font-size:14px;line-height:1.45}.home-map-card{background:var(--background);border:0;border-radius:0;min-height:min(78dvh,900px);overflow:visible}.content-card{padding:20px 18px}.content-grid{gap:16px;display:grid}.content-note{color:var(--muted);margin:0}.site-github-corner{z-index:1100;border:1px solid var(--border);min-height:34px;color:var(--text);letter-spacing:.01em;background:#fffffff0;border-radius:999px;justify-content:center;align-items:center;padding:7px 12px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex;position:fixed;bottom:18px;right:18px;box-shadow:0 2px 10px #0000000f}.site-github-corner:hover{color:var(--green-dark);border-color:#c6dfc8}@media (width<=600px){.site-github-corner{min-height:32px;padding:6px 10px;font-size:12px;bottom:10px;right:10px}}.map-shell{width:100%;height:100%;min-height:inherit;background:var(--background);position:relative;overflow:visible}.map-stage{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.map-stage svg{-webkit-user-select:none;user-select:none;cursor:grab;touch-action:none;width:100%;height:100%;display:block;overflow:visible}.map-stage svg.dragging{cursor:grabbing}.map-loading,.map-error{color:var(--muted);text-align:center;background:linear-gradient(#ffffff8c,#ffffffe6);place-items:center;margin:0;padding:24px;display:grid;position:absolute;inset:0}.interactive-path{cursor:pointer;transition:opacity .15s,filter .15s}.interactive-path:hover{opacity:.72;filter:brightness(1.08)}.interactive-path.mapped{fill:#4caf50!important}.interactive-path.mapped:hover{fill:#66bb6a!important}.candidate-panel-root{z-index:1000;pointer-events:none;position:fixed;inset:0}.candidate-panel-backdrop{cursor:default;pointer-events:auto;background:#0f141014;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.candidate-panel{background:var(--background);border-left:1px solid var(--border);pointer-events:auto;flex-direction:column;width:min(404px,100vw);height:100dvh;animation:.24s cubic-bezier(.22,1,.36,1) panel-in;display:flex;position:absolute;top:0;right:0;overflow:hidden}@keyframes panel-in{0%{transform:translate(100%)}to{transform:translate(0)}}.candidate-panel-close{z-index:3;width:38px;height:38px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background .16s,transform .16s;display:flex;position:absolute;top:24px;right:22px}.candidate-panel-close:hover{background:#f2f4f2}.candidate-panel-close:active{transform:scale(.94)}.candidate-top{flex-shrink:0;padding:42px 22px 0}.candidate-header{grid-template-columns:155px minmax(0,1fr);gap:17px;margin-top:15px;display:grid}.candidate-photo{background:#edf0ed;border-radius:7px;width:155px;height:157px;overflow:hidden}.candidate-badge{min-height:28px;color:var(--green-dark);background:#fbfefb;border:1px solid #b9dcbc;border-radius:999px;align-items:center;padding:5px 11px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.candidate-photo img{object-fit:cover;width:100%;height:100%;display:block}.candidate-title{min-width:0;padding-top:2px}.candidate-title h2{color:var(--text);letter-spacing:-.7px;margin:0 34px 18px 0;font-size:28px;font-weight:750;line-height:1.02}.candidate-district{color:var(--text);margin-bottom:7px;font-size:14px;font-weight:600;line-height:1.35}.candidate-region{color:var(--muted);font-size:13px;line-height:1.4}.candidate-party{color:var(--text);align-items:center;gap:7px;margin-top:20px;font-size:14px;font-weight:500;display:flex}.party-mark{color:#fff;background:var(--green);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:13px;font-weight:700;display:inline-flex}.candidate-body{padding:34px 22px 26px}.candidate-section{margin-bottom:30px}.candidate-section h3{color:var(--text);margin:0 0 14px;font-size:15px;font-weight:700;line-height:1.3}.candidate-bio{color:#636a65;margin:0;font-size:14px;line-height:1.55}.support-list{flex-direction:column;gap:17px;display:flex}.support-item{color:#777d78;grid-template-columns:24px 1fr;align-items:start;gap:13px;font-size:14px;line-height:1.45;display:grid}.support-icon{color:var(--green);justify-content:center;align-items:center;display:flex}.social-links{width:100%}.social-icons{flex-wrap:wrap;align-items:center;gap:15px;display:flex}.social-link{color:#555b57;justify-content:center;align-items:center;width:25px;height:25px;text-decoration:none;transition:color .15s,transform .15s;display:flex}.social-link:hover{color:var(--green);transform:translateY(-1px)}.social-letter{letter-spacing:-.5px;font-size:11px;font-weight:800}.candidate-website{color:var(--green-dark);align-items:center;gap:9px;margin-left:2px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.candidate-website:hover{text-decoration:underline}.support-apple{background:#fbfefb;border:1px solid #c6dfc8;border-radius:7px;margin-top:4px;padding:21px 19px 17px}.support-apple-title{color:var(--green-dark);margin-bottom:14px;font-size:19px;font-weight:750;line-height:1.2}.support-apple p{color:#666c68;margin:0 0 18px;font-size:13px;line-height:1.45}.telegram-button{color:#fff;background:var(--green);border-radius:4px;justify-content:center;align-items:center;gap:9px;width:100%;min-height:40px;padding:9px 14px;font-size:13px;font-weight:650;text-decoration:none;transition:background .16s,transform .16s;display:flex}.telegram-button:hover{background:var(--green-dark)}.telegram-button:active{transform:translateY(1px)}.apple-links{align-items:flex-start;gap:22px;margin-top:18px;display:flex}.apple-links>a{color:#59605b;flex-direction:column;align-items:center;gap:5px;text-decoration:none;display:flex}.apple-links>a:hover{color:var(--green-dark)}.apple-links small{color:#7a807c;font-size:10px}.zen-icon{color:#fff;background:#344139;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:flex}.apple-site-link{margin-left:auto;padding-top:2px;font-size:12px;font-weight:600;color:var(--green-dark)!important;flex-direction:row!important;gap:7px!important}.apple-site-link span{font-size:17px}.empty-district{min-height:100%;padding:46px 22px 26px}.empty-district-visual{color:#b8c0ba;background:#f4f6f4;border-radius:8px;justify-content:center;align-items:center;width:100%;height:220px;margin-top:28px;display:flex}.dove-placeholder{width:180px;height:auto}.empty-district-content{padding:28px 0 32px}.empty-district-content h2{max-width:330px;color:var(--text);letter-spacing:-.7px;margin:12px 0 14px;font-size:29px;line-height:1.05}.empty-district-content p{color:#6c726e;max-width:330px;margin:0;font-size:14px;line-height:1.55}.candidate-panel button:focus-visible,.candidate-panel a:focus-visible{outline:2px solid var(--green);outline-offset:3px}.about-page{width:min(1000px,100% - 24px)}.about-page .about-card{padding:1.5rem 1.7rem}.about-card>*{max-width:66ch}.about-title{letter-spacing:.02em;color:#1a1a1a;border-bottom:2px solid #0000000f;margin-bottom:.75rem;padding-bottom:.25rem;font-family:Georgia,Times New Roman,serif;font-size:1.9rem;line-height:1.1;display:inline-block}.about-card p{color:#222;text-align:justify;width:100%;max-width:66ch;margin:.95rem 0;font-size:1.14rem;line-height:2.1}.about-support{background:#fbfefb;border:1px solid #c6dfc8;border-radius:7px;width:100%;max-width:66ch;margin:4px 0 18px;padding:21px 0 17px}.about-support-title{color:var(--green-dark);margin-bottom:14px;padding:0 19px;font-size:19px;font-weight:750;line-height:1.2}.about-support p{color:#666c68;text-align:left;width:auto;max-width:none;margin:0 0 18px;padding:0 19px;font-size:13px;line-height:1.45}.about-telegram-button{background:var(--green);color:#fff;border:0;border-radius:4px;justify-content:center;align-items:center;gap:9px;width:calc(100% - 38px);min-height:40px;margin:0 19px;padding:9px 14px;font-size:13px;font-weight:650;line-height:1.2;text-decoration:none;transition:background .16s,transform .16s;display:inline-flex}.about-telegram-button:hover{background:var(--green-dark)}.about-telegram-button:active{transform:translateY(1px)}.about-github-link{margin:0 0 .2rem;font-size:1.02rem;line-height:1.7}.about-github-corner{z-index:1100;border:1px solid var(--border);min-height:34px;color:var(--text);letter-spacing:.01em;background:#fffffff0;border-radius:999px;justify-content:center;align-items:center;padding:7px 12px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex;position:fixed;bottom:18px;right:18px;box-shadow:0 2px 10px #0000000f}.about-github-corner:hover{color:var(--green-dark);border-color:#c6dfc8}@media (width<=1280px) and (width>=601px){.about-page{width:min(920px,100% - 24px)}.about-page .about-card{padding:1.15rem 1.3rem}.about-title{margin-bottom:.55rem;font-size:1.65rem}.about-card p{margin:.7rem 0;font-size:1.02rem;line-height:1.78}.about-support{margin-bottom:14px;padding:17px 0 15px}.about-support-title{margin-bottom:12px;padding:0 16px;font-size:17px}.about-support p,.about-github-link{font-size:1rem}.about-support p{padding:0 16px}.about-telegram-button{justify-self:stretch;width:calc(100% - 32px);margin:0 16px}.about-actions{margin:.8rem 0 1rem}.about-actions li{margin:.4rem 0;font-size:1rem;line-height:1.7}}.about-actions{max-width:66ch;margin:1rem 0 1.25rem;padding-left:1.2rem;list-style:outside}.about-actions li{white-space:normal;overflow-wrap:anywhere;margin:.6rem 0;font-size:1.1rem;line-height:1.9}@media (width<=600px){.about-page{width:min(100%,100% - 12px)}.about-github-corner{min-height:32px;padding:6px 10px;font-size:12px;bottom:10px;right:10px}.about-title{font-size:1.4rem}.about-card p{font-size:1.06rem;line-height:1.95}.about-support p{line-height:1.5}.about-actions li{font-size:1rem;line-height:1.75}}:root{--green:#4ca653;--green-dark:#398c40;--green-light:#eff8f0;--text:#151817;--muted:#747a76;--border:#dce1dc;--background:#fff;--surface:#ffffffdb;--page-bg:linear-gradient(180deg, #f5f8f4 0%, #eef3ef 100%)}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0}body{color:var(--text);background:var(--background);font-family:Arial,sans-serif}body,a,button,input,textarea,select{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit}img{max-width:100%}@media (width<=900px){.site-header-inner{align-items:center;padding:12px 14px}.site-main{padding-top:58px}.home-page,.content-page{width:min(100%,100% - 16px);padding-top:10px}.home-map-card{min-height:min(74dvh,820px)}.candidate-panel{width:min(390px,92vw)}.candidate-header{grid-template-columns:145px minmax(0,1fr)}.candidate-photo{width:145px;height:155px}.candidate-title h2{font-size:25px}}@media (width<=560px){.site-header-inner{flex-wrap:wrap;justify-content:center;gap:10px}.site-nav{flex-wrap:wrap;gap:14px}.site-main{padding-top:70px}.home-page,.content-page{width:min(100%,100% - 12px)}.home-hero,.content-card{border-radius:0;padding:14px 14px 12px}.home-map-card{border-radius:0;min-height:72dvh}.candidate-panel{border-left:0;width:100%}.candidate-header{grid-template-columns:125px minmax(0,1fr);gap:16px}.candidate-photo{width:125px;height:140px}.candidate-title h2{font-size:24px}.candidate-body,.candidate-top,.empty-district{padding-left:18px;padding-right:18px}}@media (prefers-reduced-motion:reduce){.candidate-panel,.social-link,.telegram-button,.candidate-panel-close,.interactive-path{transition:none}.candidate-panel{animation:none}}
