:root{--ink: #1B2A4A;--teal: #2F6F74;--ochre: #C4A35A;--paper: #F4F2EC;--card: #FFFFFF;--ink-2: #4A5A6E;--ink-3: #6E7C8E;--rule: #D8DEDA;--rule-strong: #B4BEB8;--in-fill: #2E8B9B;--in-text: #10505E;--out-fill: #C98A4B;--out-text: #8A4E17;--link: #2F6F74;--link-hover: #1D4E52;--focus: #C4A35A;--font-text: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "Noto Sans JP", sans-serif;--font-num: "IBM Plex Mono", ui-monospace, monospace;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-6: 24px;--sp-8: 32px;--sp-12: 48px;--sp-16: 64px}@font-face{font-family:IBM Plex Mono;src:url(/fonts/plex-mono-400.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0025,U+002B,U+002D,U+002E,U+0030-0039}@font-face{font-family:IBM Plex Mono;src:url(/fonts/plex-mono-600.woff2) format("woff2");font-weight:600;font-display:swap;unicode-range:U+0025,U+002B,U+002D,U+002E,U+0030-0039}*,*:before,*:after{box-sizing:border-box}html{font-size:17px;-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-text);line-height:1.8}.site-header{background:var(--card);border-bottom:2px solid var(--teal);position:sticky;top:0;z-index:100}.site-header-inner{max-width:960px;margin:0 auto;padding:0 var(--sp-4);height:64px;display:flex;align-items:center}.site-logo{display:inline-flex;flex-wrap:wrap;align-items:center;column-gap:8px;row-gap:1px;text-decoration:none;color:var(--ink);flex-shrink:0}.site-logo:hover{color:var(--ink);text-decoration:none}.site-logo svg{flex-shrink:0;display:block;width:15px;height:20px}.site-logo-name{font-size:18px;font-weight:700;letter-spacing:.04em;line-height:1.2}.site-logo-tag{flex-basis:100%;padding-left:23px;font-size:12px;font-weight:400;color:#1b2a4ab3;line-height:1.2}.header-nav{display:none;gap:var(--sp-6);margin-left:auto}.header-nav a{font-size:14px;color:var(--ink-2);text-decoration:none}.header-nav a:hover{color:var(--teal)}.hamburger{display:flex;flex-direction:column;justify-content:center;gap:5px;margin-left:auto;width:36px;height:36px;background:none;border:none;cursor:pointer;padding:6px;border-radius:4px}.hamburger span{display:block;height:2px;background:var(--ink);border-radius:1px;transition:opacity .15s}.hamburger:hover span{background:var(--teal)}[hidden]{display:none!important}.mobile-menu{background:var(--card);border-top:1px solid var(--rule);padding:var(--sp-2) var(--sp-4) var(--sp-3);display:flex;flex-direction:column}.mobile-menu a{font-size:15px;color:var(--ink-2);text-decoration:none;padding:var(--sp-2) 0;border-bottom:1px solid var(--rule)}.mobile-menu a:last-child{border-bottom:none}.mobile-menu a:hover{color:var(--teal)}@media(min-width:768px){.site-header-inner{height:56px}.site-logo svg{width:18px;height:24px}.site-logo-tag{flex-basis:auto;padding-left:0;font-size:14px;align-self:flex-end;padding-bottom:2px}.header-nav{display:flex}.hamburger{display:none}}.page-wrap{max-width:720px;margin:0 auto;padding:0 var(--sp-4)}.site-nav{padding:var(--sp-3) 0;font-size:14px;color:var(--ink-3)}.site-nav a{color:var(--teal);text-decoration:none}.site-nav a:hover{text-decoration:underline}.site-footer{margin-top:var(--sp-16);padding:var(--sp-6) var(--sp-4) var(--sp-8);border-top:1px solid var(--ochre);text-align:center}.footer-name{font-size:16px;font-weight:700;color:var(--ink);margin:0 0 var(--sp-1)}.footer-tagline{font-size:13px;color:var(--ink-3);margin:0 0 var(--sp-3)}.footer-nav{font-size:13px;color:var(--ink-3)}.footer-nav a{color:var(--ink-3);text-decoration:none}.footer-nav a:hover{color:var(--teal)}.footer-nav span{margin:0 var(--sp-2);color:var(--rule-strong)}h1{font-size:24px;line-height:1.4;font-weight:700;margin:var(--sp-6) 0 var(--sp-4)}h1 span{font-size:16px;font-weight:400;color:var(--ink-2);margin-left:var(--sp-2)}h2{font-size:20px;line-height:1.5;font-weight:700;margin:var(--sp-6) 0 var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--rule)}h3{font-size:17px;font-weight:700;margin:var(--sp-4) 0 var(--sp-2)}a{color:var(--link)}a:hover{color:var(--link-hover)}a:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:2px}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}table{border-collapse:collapse;width:100%;font-size:15px}th,td{padding:var(--sp-2) var(--sp-3);text-align:left;border-bottom:1px solid var(--rule);vertical-align:top}thead th{background:var(--card);border-bottom:2px solid var(--rule-strong);font-size:14px;color:var(--ink-2);white-space:nowrap}tbody tr:last-child td,tbody tr:last-child th{border-bottom:none}th[scope=row]{font-weight:400;color:var(--ink)}section{margin:var(--sp-8) 0}section:first-of-type{margin-top:var(--sp-6)}small,.caption{font-size:14px;line-height:1.7;color:var(--ink-3)}details{font-size:14px;color:var(--ink-2)}summary{cursor:pointer;color:var(--link);list-style:none;display:inline}summary::-webkit-details-marker{display:none}summary:before{content:"▸ ";font-size:11px}details[open] summary:before{content:"▾ "}.ad-slot{min-height:280px;display:grid;place-items:center;background:var(--card);border:1px solid var(--rule);margin:var(--sp-8) 0}.flowbar{display:inline-flex;align-items:center;gap:var(--sp-2);white-space:nowrap}.flowbar-track{position:relative;width:80px;height:8px;background:var(--rule);border-radius:2px;flex-shrink:0}.flowbar-fill{position:absolute;top:0;height:100%;border-radius:1px}.flowbar-pos{background:var(--in-fill)}.flowbar-neg{background:var(--out-fill)}.flowbar-axis{position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;transform:translate(-50%);background:var(--ink-3)}.flowbar-val{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:14px;min-width:6ch}.city-pop{margin:var(--sp-1) 0 var(--sp-4);font-size:15px;color:var(--ink-2)}.iv{margin:var(--sp-2) 0 var(--sp-4)}.iv-score{display:flex;align-items:center;gap:var(--sp-3);margin:0 0 var(--sp-1);line-height:1}.iv-val{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-weight:600;font-size:2rem;line-height:1;color:var(--ink)}.iv-rank{margin:0 0 var(--sp-2);font-size:14px;color:var(--ink-2)}.iv-details{margin-top:var(--sp-2);font-size:14px;color:var(--ink-2)}.iv-narratives{margin:var(--sp-1) 0 var(--sp-2);padding-left:var(--sp-6);font-size:14px;color:var(--ink-2)}.search-wrap{position:relative;max-width:480px;margin:0 auto var(--sp-6)}.search-input{width:100%;padding:var(--sp-3) var(--sp-4);font-size:16px;font-family:var(--font-text);border:1.5px solid var(--rule-strong);border-radius:6px;background:var(--card);color:var(--ink);outline:none;transition:border-color .15s}.search-input::placeholder{color:var(--ink-3)}.search-input:focus{border-color:var(--ochre);box-shadow:0 0 0 3px #c4a35a26}.search-candidates{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--card);border:1.5px solid var(--rule-strong);border-radius:6px;box-shadow:0 4px 16px #0000001a;z-index:200;max-height:320px;overflow-y:auto}.search-candidate{display:block;width:100%;padding:var(--sp-3) var(--sp-4);font-size:15px;font-family:var(--font-text);color:var(--ink);background:none;border:none;border-bottom:1px solid var(--rule);text-align:left;cursor:pointer;text-decoration:none}.search-candidate:last-child{border-bottom:none}.search-candidate:hover,.search-candidate.active{background:var(--paper);color:var(--teal)}.search-no-result{padding:var(--sp-3) var(--sp-4);font-size:14px;color:var(--ink-3)}.regions-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-3);margin-top:var(--sp-3)}.region-card{background:var(--card);border-left:4px solid var(--teal);border-radius:4px;padding:var(--sp-3) var(--sp-4)}.region-card-name{font-size:1.125rem;font-weight:700;color:var(--ink);margin:.35rem 0 var(--sp-1)}.region-prefs{font-size:13px;color:var(--ink-2);line-height:1.9}.region-prefs a{color:var(--ink-2);text-decoration:none}.region-prefs a:hover{color:var(--teal);text-decoration:underline}@media(min-width:600px){.regions-grid{grid-template-columns:repeat(3,1fr)}}.home-lead{text-align:center;margin:var(--sp-6) 0 var(--sp-3)}.home-lead h1{font-size:20px;line-height:1.5;font-weight:700;color:var(--ink);margin:0 0 var(--sp-2)}.home-total{font-size:14px;color:var(--ink-3);margin:0}@media(min-width:768px){html{font-size:17px}.page-wrap{padding:0 var(--sp-8)}section{margin:var(--sp-8) 0}}
