:root{--accent:#1649ff;--bg:#fafaf7;--surface:#fff;--text:#0f1115;--text-dim:#5b6070;--text-faint:#8a8f9c;--line:#e7e7e0;--line-strong:#c9cac3;--home-accent:#e07500;--radius:14px;--radius-sm:10px;--shadow-lg:0 24px 60px -20px #0f111538, 0 2px 6px #0f11150f;--shadow-sm:0 1px 2px #0f11150a, 0 2px 6px #0f11150a;--mono:"IBM Plex Mono", "SF Mono", ui-monospace, monospace;--display:"Inter Tight", "Inter", system-ui, sans-serif;--body:"Inter", system-ui, sans-serif}.vw-brand-logo{max-width:64px}:root[data-theme=dark]{--bg:#0d0f12;--surface:#15181d;--text:#f4f4f0;--text-dim:#9aa0ad;--text-faint:#5f6573;--line:#23262c;--line-strong:#33373f}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{font-family:var(--body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-feature-settings:"ss01", "cv11"}.app{grid-template-rows:auto auto 1fr auto;max-width:1480px;min-height:100vh;margin:0 auto;padding:20px 28px 16px;display:grid}.topbar{justify-content:space-between;align-items:center;gap:16px;padding-bottom:18px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{background:var(--accent);color:#fff;border-radius:10px;place-items:center;width:40px;height:40px;display:grid}.brand-title{font-family:var(--display);letter-spacing:-.015em;font-size:19px;font-weight:600;line-height:1.1}.brand-sub{color:var(--text-dim);margin-top:2px;font-size:13px}.top-actions{gap:8px;display:flex}.btn{border:1px solid var(--line);background:var(--surface);height:36px;color:var(--text);font:inherit;cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover{border-color:var(--line-strong)}.btn.ghost{background:0 0}.btn-ic{opacity:.7}.controls{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;gap:10px;padding:14px 0 18px;display:flex}.control-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.home-pill{background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:999px;flex:auto;align-items:center;gap:14px;min-width:260px;padding:8px 8px 8px 16px;display:flex}.home-pill:hover{border-color:var(--line-strong)}.home-pill-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);font-size:11px;font-weight:600}.home-pill-value{font-family:var(--display);letter-spacing:-.01em;flex:1;font-size:18px;font-weight:600}.home-pill-action{background:var(--accent);color:#fff;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:500}.mapmode-toggle{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:3px;display:inline-flex}.mapmode-toggle button{color:var(--text-dim);cursor:pointer;font-size:13px;font:inherit;background:0 0;border:none;border-radius:7px;padding:7px 14px;font-weight:500}.mapmode-toggle button.on{background:var(--text);color:var(--bg)}.year-row{align-items:center;gap:16px;display:flex}.year-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);min-width:80px;font-size:11px;font-weight:600}.year-slider{flex-wrap:wrap;gap:4px;display:flex}.year-btn{border:1px solid var(--line);background:var(--surface);font:inherit;font-size:13px;font-family:var(--mono);cursor:pointer;color:var(--text-dim);border-radius:8px;padding:6px 12px;transition:all .15s}.year-btn:hover{border-color:var(--line-strong);color:var(--text)}.year-btn.on{background:var(--text);color:var(--bg);border-color:var(--text)}.main{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:28px;min-height:0;padding:20px 0;display:grid}.map-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-height:620px;padding:24px;position:relative}.picking-banner{background:var(--accent);color:#fff;z-index:5;box-shadow:var(--shadow-sm);border-radius:999px;padding:8px 16px;font-size:13px;font-weight:500;animation:1.4s infinite pulse-banner;position:absolute;top:12px;left:50%;transform:translate(-50%)}@keyframes pulse-banner{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(-2px)}}.main.picking .hex-cell,.main.picking .geo-cell{cursor:crosshair}:root[data-theme=dark] .hex-cell path{fill:#1d2026}:root[data-theme=dark] .geo-cell path{fill:#1d2026}.popover{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:340px;box-shadow:var(--shadow-lg);z-index:10;max-height:min(100vh - 40px,100% - 16px);animation:.18s ease-out pop-in;position:absolute;overflow-y:auto}@keyframes pop-in{0%{opacity:0;transform:translateY(4px)scale(.98)}to{opacity:1;transform:none}}.pop{padding:18px 20px 16px;position:relative}.pop-close{width:28px;height:28px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:8px;font-size:20px;line-height:1;position:absolute;top:12px;right:12px}.pop-close:hover{background:var(--line);color:var(--text)}.pop-head{margin-bottom:16px;padding-right:28px}.pop-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);font-size:11px;font-weight:600}.pop-title{font-family:var(--display);letter-spacing:-.015em;margin-top:4px;font-size:20px;font-weight:600;line-height:1.2}.pop-arrow{color:var(--accent);margin:0 6px;font-weight:500}.pop-lead{background:color-mix(in oklab, var(--accent) 8%, var(--surface));border:1px solid color-mix(in oklab, var(--accent) 20%, var(--line));border-radius:var(--radius-sm);margin-bottom:12px;padding:12px 14px}.pop-lead-label{color:var(--text-dim);font-size:12px}.pop-lead-stronger{color:var(--home-accent);letter-spacing:.01em;margin-bottom:2px;font-size:12px;font-weight:600}.pop-lead-stronger.target{color:var(--accent)}.pop-lead-stronger b{font-weight:700}.pop-lead-value{font-family:var(--display);letter-spacing:-.025em;color:var(--accent);font-variant-numeric:tabular-nums;margin:2px 0 6px;font-size:34px;font-weight:700;line-height:1}.pop-lead-value.under{color:var(--home-accent)}.pop-lead-value.na{color:var(--text-faint);font-size:20px}.pop-lead-help b{color:var(--text);font-weight:600}.pop-lead-help{color:var(--text-dim);font-size:13px;line-height:1.45}.pop-metrics{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.pop-metric{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);grid-template-rows:auto auto auto;grid-template-columns:1fr auto;gap:1px 12px;padding:8px 12px;display:grid}.pm-label{color:var(--text-dim);letter-spacing:.02em;text-transform:uppercase;font-size:12px;font-weight:600}.pm-val{font-family:var(--display);letter-spacing:-.015em;text-align:right;font-variant-numeric:tabular-nums;color:var(--text);grid-area:1/2/span 2;font-size:20px;font-weight:600}.pop-metric.fav-home .pm-val{color:var(--home-accent)}.pop-metric.fav-target .pm-val{color:var(--accent)}.pop-metric.na .pm-val{color:var(--text-faint);align-self:center;font-size:14px}.pm-note{color:var(--text-dim);grid-column:1;font-size:11.5px}.pm-bar{background:var(--line);border-radius:2px;grid-column:1/-1;height:3px;margin-top:6px;overflow:hidden}.pm-bar-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .3s}.pop-metric.fav-home .pm-bar-fill{background:var(--home-accent)}.pop-foot{border-top:1px solid var(--line);justify-content:space-around;align-items:center;gap:8px;margin-top:12px;padding-top:12px;display:flex}.pf-col{text-align:center}.pf-abbr{font-family:var(--mono);color:var(--text-faint);letter-spacing:.05em;font-size:11px}.pf-pop{font-family:var(--display);color:var(--text);font-size:15px;font-weight:600}.pf-vs{color:var(--text-faint);font-size:12px}.legend{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;position:sticky;top:20px}.legend-inner{flex-direction:column;gap:20px;display:flex}.legend-section+.legend-section{border-top:1px solid var(--line);padding-top:18px}.ls-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-bottom:8px;font-size:11px;font-weight:600}.ls-home-name{font-family:var(--display);letter-spacing:-.02em;color:var(--home-accent);margin-bottom:12px;font-size:22px;font-weight:600}.ls-home-row{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.ls-home-row>div{background:var(--bg);text-align:left;border-radius:8px;padding:8px 10px}.ls-stat{font-family:var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:18px;font-weight:600}.ls-cap{color:var(--text-faint);letter-spacing:.05em;text-transform:uppercase;margin-top:2px;font-size:10px}.legend-section.hint{background:color-mix(in oklab, var(--accent) 7%, var(--bg));border:1px dashed color-mix(in oklab, var(--accent) 35%, var(--line));border-radius:var(--radius-sm);gap:12px;padding:12px;display:flex}.legend-section.hint+.legend-section{border-top:1px solid var(--line);padding-top:18px}.hint-dot{background:var(--accent);width:10px;height:10px;box-shadow:0 0 0 4px color-mix(in oklab, var(--accent) 20%, transparent);border-radius:50%;flex-shrink:0;margin-top:5px}.hint-title{font-size:14px;font-weight:600}.hint-sub{color:var(--text-dim);margin-top:2px;font-size:12px}.rank-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.rank-list li{cursor:pointer;border-radius:6px;grid-template-columns:22px 1fr auto;align-items:center;gap:10px;padding:6px 8px;font-size:13px;transition:background .12s;display:grid}.rank-list li:hover{background:var(--bg)}.rk-idx{font-family:var(--mono);color:var(--text-faint);text-align:right;font-size:11px}.rk-name{color:var(--text)}.rk-val{font-family:var(--display);font-variant-numeric:tabular-nums;color:var(--accent);font-weight:600}.rank-list.low .rk-val{color:var(--text-dim)}.bottom-sheet{background:var(--surface);z-index:50;border-top-left-radius:18px;border-top-right-radius:18px;max-height:80vh;animation:.2s ease-out sheet-up;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -20px 50px -10px #0003}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-handle{background:var(--line-strong);border-radius:3px;width:42px;height:5px;margin:10px auto 4px}.modal-scrim{z-index:100;background:#0a0c1280;place-items:center;padding:20px;animation:.15s fade-in;display:grid;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:var(--radius);border:1px solid var(--line);width:100%;max-width:560px;max-height:85vh;overflow-y:auto}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-head h2{font-family:var(--display);letter-spacing:-.015em;margin:0;font-size:20px;font-weight:600}.icon-btn{cursor:pointer;width:32px;height:32px;color:var(--text-dim);background:0 0;border:none;border-radius:8px;font-size:22px}.icon-btn:hover{background:var(--line);color:var(--text)}.modal-body{color:var(--text-dim);padding:18px 22px 22px;font-size:14px;line-height:1.6}.modal-body p{margin:0 0 12px}.modal-body b{color:var(--text);font-weight:600}.modal-body code{font-family:var(--mono);background:var(--bg);border-radius:4px;padding:2px 6px;font-size:12px}.modal-body ul{margin:4px 0 14px;padding-left:18px}.modal-body li{margin-bottom:4px}.modal-body .subtle{color:var(--text-faint);font-size:12px}.tweaks-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:260px;box-shadow:var(--shadow-lg);z-index:90;padding:14px 16px;transition:width .2s,padding .2s;position:fixed;bottom:18px;right:18px}.tweaks-panel.collapsed{width:auto;padding:10px 14px}.tweaks-head{font-family:var(--display);letter-spacing:-.01em;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;font-size:14px;font-weight:600;display:flex}.tweaks-panel.collapsed .tweaks-head{margin-bottom:0}.tweaks-chevron{color:var(--text-faint);font-size:11px}.tweak-row{justify-content:space-between;align-items:center;gap:10px;padding:6px 0;display:flex}.tweak-row label{color:var(--text-dim);font-size:12px}.seg{background:var(--bg);border-radius:7px;padding:2px;display:inline-flex}.seg button{color:var(--text-dim);font:inherit;cursor:pointer;text-transform:capitalize;background:0 0;border:none;border-radius:5px;padding:4px 8px;font-size:11px}.seg button.on{background:var(--text);color:var(--bg)}.swatches{gap:4px;display:inline-flex}.sw{cursor:pointer;border:2px solid #0000;border-radius:6px;width:22px;height:22px;padding:0}.sw.on{border-color:var(--text)}.partisan{--d-color:#1f6feb;--r-color:#d43f2b;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:36px 0 12px;padding:32px 32px 26px;position:relative;overflow:hidden}.partisan:before{content:"";background:linear-gradient(to right, var(--d-color) 0%, var(--d-color) 50%, var(--r-color) 50%, var(--r-color) 100%);opacity:.9;height:3px;position:absolute;inset:0 0 auto}.partisan-head{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:end;gap:20px 40px;margin-bottom:28px;display:grid}.partisan-head-main{min-width:0}.partisan-eyebrow{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);align-items:center;gap:8px;margin-bottom:10px;font-size:11px;font-weight:600;display:inline-flex}.partisan-dot{background:linear-gradient(135deg, var(--d-color) 0 50%, var(--r-color) 50% 100%);border-radius:50%;width:10px;height:10px}.partisan-title{font-family:var(--display);letter-spacing:-.025em;text-wrap:balance;margin:0;font-size:30px;font-weight:600;line-height:1.15}.partisan-title em{color:var(--text-dim);font-style:italic;font-weight:500}.partisan-sub{color:var(--text-dim);text-align:right;justify-self:end;max-width:46ch;margin:0;font-size:14px;line-height:1.55}.partisan-sub b{color:var(--text);font-weight:600}.partisan-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.pc{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);flex-direction:column;gap:20px;padding:22px 22px 20px;display:flex}:root[data-theme=dark] .pc{background:#16191e}.pc-hd{justify-content:space-between;align-items:center;gap:12px;display:flex}.pc-hd-left{align-items:baseline;gap:10px;min-width:0;display:flex}.pc-chamber{font-family:var(--display);letter-spacing:-.02em;font-size:22px;font-weight:600}.pc-scale{font-family:var(--mono);color:var(--text-faint);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:500}.pc-lead{font-variant-numeric:tabular-nums;letter-spacing:-.005em;white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:5px 10px 5px 8px;font-size:12px;font-weight:600;display:inline-flex}.pc-lead-dot{border-radius:50%;width:7px;height:7px}.pc-lead-d{color:var(--d-color);background:color-mix(in oklab, var(--d-color) 12%, var(--bg));border:1px solid color-mix(in oklab, var(--d-color) 35%, var(--line))}.pc-lead-d .pc-lead-dot{background:var(--d-color)}.pc-lead-r{color:var(--r-color);background:color-mix(in oklab, var(--r-color) 12%, var(--bg));border:1px solid color-mix(in oklab, var(--r-color) 35%, var(--line))}.pc-lead-r .pc-lead-dot{background:var(--r-color)}.pc-na{color:var(--text-faint);padding:20px 0;font-size:13px;font-style:italic}.pc-rows{flex-direction:column;gap:14px;display:flex}.pc-row{grid-template-columns:120px minmax(0,1fr);align-items:center;gap:14px;display:grid}.pc-row-label{color:var(--text-dim);letter-spacing:.01em;font-size:12px;font-weight:500}.pc-row-bar{background:var(--line);border-radius:6px;height:28px;display:flex;overflow:hidden;box-shadow:inset 0 0 0 1px #00000005}.pc-row-bar-pop{height:34px}.pc-seg{justify-content:center;align-items:center;min-width:0;padding:0 6px;transition:width .5s cubic-bezier(.2,.7,.2,1);display:flex;overflow:hidden}.pc-seg-d{background:var(--d-color);color:#fff}.pc-seg-r{background:var(--r-color);color:#fff}.pc-seg-num{font-family:var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.01em;color:#fffffff5;text-shadow:0 1px #00000026;font-size:13px;font-weight:600}.pc-row-bar-pop .pc-seg-num{font-size:13.5px}.pc-seg-num b{font-weight:700}.pc-seg-pct{opacity:.7;margin-left:3px;font-size:.88em;font-weight:500}.pc-row-right{font-family:var(--mono);color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;min-width:72px;font-size:12px}.pc-row-d{color:var(--d-color);font-weight:600}.pc-row-r{color:var(--r-color);font-weight:600}.pc-row-sep{color:var(--text-faint);margin:0 3px}.pc-skew{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line);align-items:flex-start;gap:10px;margin-top:2px;padding:12px 14px;display:flex}.pc-skew-chip{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:.01em;white-space:nowrap;border-radius:4px;flex-shrink:0;padding:4px 8px;font-size:11px;font-weight:600}.pc-skew-d{color:var(--d-color);background:color-mix(in oklab, var(--d-color) 14%, var(--surface))}.pc-skew-r{color:var(--r-color);background:color-mix(in oklab, var(--r-color) 14%, var(--surface))}.pc-skew-txt{color:var(--text-dim);font-size:12.5px;line-height:1.5}.pc-skew-txt b{color:var(--text);font-weight:600}.partisan-legend{border-top:1px solid var(--line);color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:18px;margin-top:20px;padding-top:16px;font-size:12px;display:flex}.pl-item{align-items:center;gap:7px;font-weight:500;display:inline-flex}.pl-sw{border-radius:2px;width:14px;height:10px}.pl-sw-d{background:var(--d-color)}.pl-sw-r{background:var(--r-color)}.pl-note{color:var(--text-faint);margin-left:auto;font-size:11.5px}.footer{border-top:1px solid var(--line);color:var(--text-faint);flex-wrap:wrap;gap:8px;padding:14px 0 8px;font-size:12px;display:flex}@media (width<=820px){.app{padding:14px 14px 8px}.topbar{padding-bottom:12px}.brand-sub,.btn-lbl{display:none}.main{grid-template-columns:1fr;gap:14px;padding:12px 0}.legend{padding:16px;position:static}.map-wrap{min-height:300px;padding:12px}.year-row{flex-direction:column;align-items:flex-start;gap:6px}.control-row{gap:8px}.home-pill{flex:1;min-width:0}.home-pill-action{padding:5px 10px;font-size:11px}.pop{padding-bottom:24px}.footer{flex-direction:column;gap:2px}.partisan{margin:22px 0 8px;padding:22px 18px 18px}.partisan-head{grid-template-columns:1fr;gap:12px;margin-bottom:20px}.partisan-sub{text-align:left;justify-self:start;max-width:none}.partisan-title{font-size:22px}.partisan-grid{grid-template-columns:1fr;gap:14px}.pc{gap:16px;padding:18px}.pc-chamber{font-size:20px}.pc-row{grid-template-columns:1fr;align-items:stretch;gap:6px}.pc-row-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);justify-content:space-between;align-items:baseline;font-size:11.5px;font-weight:600;display:flex}.pc-row-right{text-align:left;min-width:0}.pc-hd{flex-wrap:wrap;gap:8px}.partisan-legend{gap:12px;font-size:11.5px}.pl-note{flex-basis:100%;margin-left:0}}@media (width<=480px){.ls-home-row{grid-template-columns:repeat(2,1fr)}.pop-lead-value{font-size:30px}.pop-title{font-size:17px}}.vw-app{--vw-accent:#1649ff;--vw-bg:#fafaf7;--vw-surface:#fff;--vw-text:#0f1115;--vw-text-dim:#5b6070;--vw-text-faint:#8a8f9c;--vw-line:#e7e7e0;--vw-line-strong:#c9cac3;--vw-home-accent:#e07500;--vw-radius:14px;--vw-radius-sm:10px;--vw-shadow-lg:0 24px 60px -20px #0f111538, 0 2px 6px #0f11150f;--vw-shadow-sm:0 1px 2px #0f11150a, 0 2px 6px #0f11150a;--vw-mono:"IBM Plex Mono", "SF Mono", ui-monospace, monospace;--vw-display:"Inter Tight", "Inter", system-ui, sans-serif;--vw-body:"Inter", system-ui, sans-serif;font-family:var(--vw-body);background:var(--vw-bg);color:var(--vw-text);-webkit-font-smoothing:antialiased;font-feature-settings:"ss01", "cv11"}:root[data-vw-theme=dark] .vw-app{--vw-bg:#0d0f12;--vw-surface:#15181d;--vw-text:#f4f4f0;--vw-text-dim:#9aa0ad;--vw-text-faint:#5f6573;--vw-line:#23262c;--vw-line-strong:#33373f}.vw-app,.vw-app *,.vw-app :before,.vw-app :after{box-sizing:border-box}.vw-app{grid-template-rows:auto auto 1fr auto;max-width:1480px;min-height:100vh;margin:0 auto;padding:20px 28px 16px;display:grid}.vw-topbar{justify-content:space-between;align-items:center;gap:16px;padding-bottom:18px;display:flex}.vw-brand{align-items:center;gap:12px;display:flex}.vw-brand-mark{background:var(--vw-accent);color:#fff;border-radius:10px;place-items:center;width:40px;height:40px;display:grid}.vw-brand-logo{object-fit:cover;border-radius:10px;flex-shrink:0;width:40px;height:40px}.vw-brand-title{font-family:var(--vw-display);letter-spacing:-.015em;font-size:19px;font-weight:600;line-height:1.1}.vw-brand-sub{color:var(--vw-text-dim);margin-top:2px;font-size:13px}.vw-top-actions{gap:8px;display:flex}.vw-btn{border:1px solid var(--vw-line);background:var(--vw-surface);height:36px;color:var(--vw-text);font:inherit;cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.vw-btn:hover{border-color:var(--vw-line-strong)}.vw-btn.ghost{background:0 0}.vw-btn-ic{opacity:.7}.vw-controls{border-top:1px solid var(--vw-line);border-bottom:1px solid var(--vw-line);flex-direction:column;gap:10px;padding:14px 0 18px;display:flex}.vw-control-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.vw-home-pill{background:var(--vw-surface);border:1px solid var(--vw-line);cursor:pointer;border-radius:999px;flex:auto;align-items:center;gap:14px;min-width:260px;padding:8px 8px 8px 16px;display:flex}.vw-home-pill:hover{border-color:var(--vw-line-strong)}.vw-home-pill-label{letter-spacing:.08em;text-transform:uppercase;color:var(--vw-text-faint);font-size:11px;font-weight:600}.vw-home-pill-value{font-family:var(--vw-display);letter-spacing:-.01em;flex:1;font-size:18px;font-weight:600}.vw-home-pill-action{background:var(--vw-accent);color:#fff;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:500}.vw-mapmode-toggle{background:var(--vw-surface);border:1px solid var(--vw-line);border-radius:10px;padding:3px;display:inline-flex}.vw-mapmode-toggle button{color:var(--vw-text-dim);cursor:pointer;font-size:13px;font:inherit;background:0 0;border:none;border-radius:7px;padding:7px 14px;font-weight:500}.vw-mapmode-toggle button.on{background:var(--vw-text);color:var(--vw-bg)}.vw-year-row{align-items:center;gap:16px;display:flex}.vw-year-label{letter-spacing:.08em;text-transform:uppercase;color:var(--vw-text-faint);min-width:80px;font-size:11px;font-weight:600}.vw-year-slider{flex-wrap:wrap;gap:4px;display:flex}.vw-year-btn{border:1px solid var(--vw-line);background:var(--vw-surface);font:inherit;font-size:13px;font-family:var(--vw-mono);cursor:pointer;color:var(--vw-text-dim);border-radius:8px;padding:6px 12px;transition:all .15s}.vw-year-btn:hover{border-color:var(--vw-line-strong);color:var(--vw-text)}.vw-year-btn.on{background:var(--vw-text);color:var(--vw-bg);border-color:var(--vw-text)}.vw-main{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:28px;min-height:0;padding:20px 0;display:grid}.vw-map-wrap{background:var(--vw-surface);border:1px solid var(--vw-line);border-radius:var(--vw-radius);min-height:620px;padding:24px;position:relative;overflow:hidden}.map-svg{-webkit-user-select:none;user-select:none;width:100%;height:auto;max-height:640px;display:block}.vw-picking-banner{background:var(--vw-accent);color:#fff;z-index:5;box-shadow:var(--vw-shadow-sm);border-radius:999px;padding:8px 16px;font-size:13px;font-weight:500;animation:1.4s infinite pulse-banner;position:absolute;top:12px;left:50%;transform:translate(-50%)}.vw-main.picking .hex-cell,.vw-main.picking .geo-cell{cursor:crosshair}.hex-cell{cursor:pointer}.hex-cell path{fill:var(--vw-surface);stroke:var(--vw-line-strong);stroke-width:1.2px;transition:fill .15s,stroke .15s}:root[data-vw-theme=dark] .hex-cell path{fill:#1d2026}.hex-cell:hover path{fill:color-mix(in oklab, var(--vw-accent) 14%, var(--vw-surface));stroke:var(--vw-accent)}.hex-cell.is-home path{fill:var(--vw-home-accent);stroke:var(--vw-home-accent)}.hex-cell.is-home text{fill:#fff;font-weight:700}.hex-cell.is-target path{fill:var(--vw-accent);stroke:var(--vw-accent)}.hex-cell.is-target text{fill:#fff;font-weight:700}.hex-abbr{font-family:var(--vw-display);fill:var(--vw-text);pointer-events:none;letter-spacing:-.01em;font-size:14px;font-weight:600}.hex-ec{font-family:var(--vw-mono);fill:var(--vw-text-faint);pointer-events:none;font-size:9px}.hex-cell:hover .hex-ec{fill:var(--vw-text)}.geo-cell{cursor:pointer}.geo-cell path{fill:var(--vw-surface);stroke:var(--vw-line-strong);stroke-width:1px;transition:fill .15s,stroke .15s}:root[data-vw-theme=dark] .geo-cell path{fill:#1d2026}.geo-cell:hover path{fill:color-mix(in oklab, var(--vw-accent) 18%, var(--vw-surface));stroke:var(--vw-accent)}.geo-cell.is-home path{fill:var(--vw-home-accent);stroke:var(--vw-home-accent)}.geo-cell.is-target path{fill:var(--vw-accent);stroke:var(--vw-accent)}.geo-abbr{font-family:var(--vw-display);fill:var(--vw-text-dim);pointer-events:none;paint-order:stroke;stroke:var(--vw-surface);stroke-width:2.5px;stroke-linejoin:round;font-size:10px;font-weight:600}.geo-abbr.is-home,.geo-abbr.is-target{fill:#fff;stroke:#00000040}.geo-dc-dot{fill:var(--vw-text-dim);stroke:var(--vw-surface);stroke-width:1.5px;pointer-events:none}.geo-cell.is-home .geo-dc-dot{fill:var(--vw-home-accent)}.geo-cell.is-target .geo-dc-dot{fill:var(--vw-accent)}.geo-loading{font-family:var(--vw-body);fill:var(--vw-text-faint);font-size:14px}.vw-popover{background:var(--vw-surface);border:1px solid var(--vw-line);border-radius:var(--vw-radius);width:340px;box-shadow:var(--vw-shadow-lg);z-index:10;max-height:min(100vh - 40px,100% - 16px);animation:.18s ease-out pop-in;position:absolute;overflow-y:auto}.vw-pop{padding:18px 20px 16px;position:relative}.vw-pop-close{width:28px;height:28px;color:var(--vw-text-dim);cursor:pointer;background:0 0;border:none;border-radius:8px;font-size:20px;line-height:1;position:absolute;top:12px;right:12px}.vw-pop-close:hover{background:var(--vw-line);color:var(--vw-text)}.vw-pop-head{margin-bottom:16px;padding-right:28px}.vw-pop-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--vw-text-faint);font-size:11px;font-weight:600}.vw-pop-title{font-family:var(--vw-display);letter-spacing:-.015em;margin-top:4px;font-size:20px;font-weight:600;line-height:1.2}.vw-pop-arrow{color:var(--vw-accent);margin:0 6px;font-weight:500}.vw-pop-lead{background:color-mix(in oklab, var(--vw-accent) 8%, var(--vw-surface));border:1px solid color-mix(in oklab, var(--vw-accent) 20%, var(--vw-line));border-radius:var(--vw-radius-sm);margin-bottom:12px;padding:12px 14px}.vw-pop-lead-label{color:var(--vw-text-dim);font-size:12px}.vw-pop-lead-stronger{color:var(--vw-home-accent);letter-spacing:.01em;margin-bottom:2px;font-size:12px;font-weight:600}.vw-pop-lead-stronger.target{color:var(--vw-accent)}.vw-pop-lead-stronger b{font-weight:700}.vw-pop-lead-value{font-family:var(--vw-display);letter-spacing:-.025em;color:var(--vw-accent);font-variant-numeric:tabular-nums;margin:2px 0 6px;font-size:34px;font-weight:700;line-height:1}.vw-pop-lead-value.under{color:var(--vw-home-accent)}.vw-pop-lead-value.na{color:var(--vw-text-faint);font-size:20px}.vw-pop-lead-help b{color:var(--vw-text);font-weight:600}.vw-pop-lead-help{color:var(--vw-text-dim);font-size:13px;line-height:1.45}.vw-pop-metrics{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.vw-pop-metric{border:1px solid var(--vw-line);border-radius:var(--vw-radius-sm);background:var(--vw-bg);grid-template-rows:auto auto auto;grid-template-columns:1fr auto;gap:1px 12px;padding:8px 12px;display:grid}.vw-pm-label{color:var(--vw-text-dim);letter-spacing:.02em;text-transform:uppercase;font-size:12px;font-weight:600}.vw-pm-val{font-family:var(--vw-display);letter-spacing:-.015em;text-align:right;font-variant-numeric:tabular-nums;color:var(--vw-text);grid-area:1/2/span 2;font-size:20px;font-weight:600}.vw-pop-metric.fav-home .vw-pm-val{color:var(--vw-home-accent)}.vw-pop-metric.fav-target .vw-pm-val{color:var(--vw-accent)}.vw-pop-metric.na .vw-pm-val{color:var(--vw-text-faint);align-self:center;font-size:14px}.vw-pm-note{color:var(--vw-text-dim);grid-column:1;font-size:11.5px}.vw-pm-bar{background:var(--vw-line);border-radius:2px;grid-column:1/-1;height:3px;margin-top:6px;overflow:hidden}.vw-pm-bar-fill{background:var(--vw-accent);border-radius:2px;height:100%;transition:width .3s}.vw-pop-metric.fav-home .vw-pm-bar-fill{background:var(--vw-home-accent)}.vw-pop-foot{border-top:1px solid var(--vw-line);justify-content:space-around;align-items:center;gap:8px;margin-top:12px;padding-top:12px;display:flex}.vw-pf-col{text-align:center}.vw-pf-abbr{font-family:var(--vw-mono);color:var(--vw-text-faint);letter-spacing:.05em;font-size:11px}.vw-pf-pop{font-family:var(--vw-display);color:var(--vw-text);font-size:15px;font-weight:600}.vw-pf-vs{color:var(--vw-text-faint);font-size:12px}.vw-legend{background:var(--vw-surface);border:1px solid var(--vw-line);border-radius:var(--vw-radius);padding:20px;position:sticky;top:20px}.vw-legend-inner{flex-direction:column;gap:20px;display:flex}.vw-legend-section+.vw-legend-section{border-top:1px solid var(--vw-line);padding-top:18px}.vw-ls-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--vw-text-faint);margin-bottom:8px;font-size:11px;font-weight:600}.vw-ls-home-name{font-family:var(--vw-display);letter-spacing:-.02em;color:var(--vw-home-accent);margin-bottom:12px;font-size:22px;font-weight:600}.vw-ls-home-row{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.vw-ls-home-row>div{background:var(--vw-bg);text-align:left;border-radius:8px;padding:8px 10px}.vw-ls-stat{font-family:var(--vw-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:18px;font-weight:600}.vw-ls-cap{color:var(--vw-text-faint);letter-spacing:.05em;text-transform:uppercase;margin-top:2px;font-size:10px}.vw-legend-section.hint{background:color-mix(in oklab, var(--vw-accent) 7%, var(--vw-bg));border:1px dashed color-mix(in oklab, var(--vw-accent) 35%, var(--vw-line));border-radius:var(--vw-radius-sm);gap:12px;padding:12px;display:flex}.vw-legend-section.hint+.vw-legend-section{border-top:1px solid var(--vw-line);padding-top:18px}.vw-hint-dot{background:var(--vw-accent);width:10px;height:10px;box-shadow:0 0 0 4px color-mix(in oklab, var(--vw-accent) 20%, transparent);border-radius:50%;flex-shrink:0;margin-top:5px}.vw-hint-title{font-size:14px;font-weight:600}.vw-hint-sub{color:var(--vw-text-dim);margin-top:2px;font-size:12px}.vw-rank-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.vw-rank-list li{cursor:pointer;border-radius:6px;grid-template-columns:22px 1fr auto;align-items:center;gap:10px;padding:6px 8px;font-size:13px;transition:background .12s;display:grid}.vw-rank-list li:hover{background:var(--vw-bg)}.vw-rk-idx{font-family:var(--vw-mono);color:var(--vw-text-faint);text-align:right;font-size:11px}.vw-rk-name{color:var(--vw-text)}.vw-rk-val{font-family:var(--vw-display);font-variant-numeric:tabular-nums;color:var(--vw-accent);font-weight:600}.vw-rank-list.low .vw-rk-val{color:var(--vw-text-dim)}.vw-bottom-sheet{background:var(--vw-surface);z-index:50;border-top-left-radius:18px;border-top-right-radius:18px;max-height:80vh;animation:.2s ease-out sheet-up;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -20px 50px -10px #0003}.vw-sheet-handle{background:var(--vw-line-strong);border-radius:3px;width:42px;height:5px;margin:10px auto 4px}.vw-modal-scrim{z-index:100;background:#0a0c1280;place-items:center;padding:20px;animation:.15s fade-in;display:grid;position:fixed;inset:0}.vw-modal{background:var(--vw-surface);border-radius:var(--vw-radius);border:1px solid var(--vw-line);width:100%;max-width:560px;max-height:85vh;overflow-y:auto}.vw-modal-head{border-bottom:1px solid var(--vw-line);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.vw-modal-head h2{font-family:var(--vw-display);letter-spacing:-.015em;margin:0;font-size:20px;font-weight:600}.vw-icon-btn{cursor:pointer;width:32px;height:32px;color:var(--vw-text-dim);background:0 0;border:none;border-radius:8px;font-size:22px}.vw-icon-btn:hover{background:var(--vw-line);color:var(--vw-text)}.vw-modal-body{color:var(--vw-text-dim);padding:18px 22px 22px;font-size:14px;line-height:1.6}.vw-modal-body p{margin:0 0 12px}.vw-modal-body b{color:var(--vw-text);font-weight:600}.vw-modal-body code{font-family:var(--vw-mono);background:var(--vw-bg);border-radius:4px;padding:2px 6px;font-size:12px}.vw-modal-body ul{margin:4px 0 14px;padding-left:18px}.vw-modal-body li{margin-bottom:4px}.vw-modal-body .vw-subtle{color:var(--vw-text-faint);font-size:12px}.vw-footer{border-top:1px solid var(--vw-line);color:var(--vw-text-faint);flex-wrap:wrap;gap:8px;padding:14px 0 8px;font-size:12px;display:flex}@media (width<=820px){.vw-app{padding:14px 14px 8px}.vw-topbar{padding-bottom:12px}.vw-brand-sub,.vw-btn-lbl{display:none}.vw-main{grid-template-columns:1fr;gap:14px;padding:12px 0}.vw-legend{padding:16px;position:static}.vw-map-wrap{min-height:300px;padding:12px}.vw-year-row{flex-direction:column;align-items:stretch;gap:6px}.vw-year-slider{-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.vw-year-slider::-webkit-scrollbar{display:none}.vw-control-row{gap:8px}.vw-home-pill{flex:1;min-width:0}.vw-home-pill-action{padding:5px 10px;font-size:11px}.vw-pop{padding-bottom:24px}.vw-footer{flex-direction:column;gap:2px}}@media (width<=480px){.vw-app{padding-left:14px;padding-right:14px}.vw-ls-home-row{grid-template-columns:repeat(2,1fr)}.vw-pop-lead-value{font-size:30px}.vw-pop-title{font-size:17px}.vw-control-row{flex-direction:column;align-items:stretch;gap:8px}.vw-home-pill{gap:10px;padding:8px 8px 8px 14px}.vw-home-pill-value{font-size:16px}.vw-mapmode-toggle{width:100%}.vw-mapmode-toggle button{text-align:center;flex:1}.vw-year-label{min-width:unset}.vw-year-btn{padding:6px 10px;font-size:12px}}.vw-hp-scrim{justify-content:center;align-items:center;display:flex}.vw-hp-modal{flex-direction:column;gap:0;width:min(460px,100vw - 32px);max-height:min(600px,100dvh - 48px);display:flex}.vw-hp-sub{color:var(--vw-text-dim);margin:0 0 14px;padding:0 24px;font-size:14px}.vw-hp-search{border:1px solid var(--vw-line-strong);border-radius:var(--vw-radius-sm);background:var(--vw-bg);width:calc(100% - 48px);color:var(--vw-text);font:inherit;outline:none;margin:0 24px 12px;padding:9px 12px;font-size:14px;display:block}.vw-hp-search:focus{border-color:var(--vw-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--vw-accent) 15%, transparent)}.vw-hp-list{flex:1;margin:0;padding:0 12px 16px;list-style:none;overflow-y:auto}.vw-hp-state{border-radius:var(--vw-radius-sm);cursor:pointer;text-align:left;width:100%;color:var(--vw-text);font:inherit;background:0 0;border:none;align-items:center;gap:10px;padding:8px 12px;transition:background .1s;display:flex}.vw-hp-state:hover{background:color-mix(in srgb, var(--vw-accent) 8%, transparent);color:var(--vw-accent)}.vw-hp-abbr{font-family:var(--vw-mono);color:var(--vw-text-faint);flex-shrink:0;width:28px;font-size:12px;font-weight:600}.vw-hp-state:hover .vw-hp-abbr{color:var(--vw-accent)}.vw-hp-name{font-size:14px;font-weight:500}
