:root{font-family:Noto Sans JP,Inter,system-ui,sans-serif;color:#1a2744;background:#f5f5f0;font-synthesis:none;font-size:14px;line-height:1.65}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:44px;padding:8px 16px;border:1px solid #ced2d6;border-radius:8px;color:#1a2744;background:#fff;font-weight:600;transition:background .15s,border-color .15s}button:hover{background:#f0f3f5;border-color:#1a2744}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #b74724;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:36px;letter-spacing:-.035em;line-height:1.35;margin:8px 0 16px}h2{font-size:24px;letter-spacing:-.025em;line-height:1.4;margin-bottom:16px}h3{font-size:16px;line-height:1.5;margin:8px 0 16px}p{color:#4b5563}small{font-size:14px;color:#596171}main{max-width:1248px;margin:auto;padding:0 24px}.topbar{display:flex;align-items:center;gap:24px;min-height:88px;padding:16px max(24px,calc((100vw - 1200px)/2));background:#fff;border-bottom:1px solid #e0e2df}.brand{display:flex;gap:16px;align-items:center;color:#1a2744;text-decoration:none;font-size:20px;font-weight:800;white-space:nowrap}.brand small{display:block;font-size:14px;letter-spacing:.12em;font-weight:500}.brand-icon{border:2px solid #1a2744;border-radius:16px 16px 4px;width:56px;height:56px;display:grid;place-items:center;font-size:22px;background:#faf4ed}.edition{font-size:14px;color:#596171;margin-left:auto}.help-button{background:#1a2744;color:#fff;border-color:#1a2744}.help-button:hover{background:#243556}.hero{display:flex;justify-content:space-between;align-items:center;gap:32px;padding:48px 0 32px}.eyebrow{font-size:14px;font-weight:700;letter-spacing:.14em;color:#9a4128;margin-bottom:8px}.month-control{display:flex;align-items:stretch;flex-direction:column;text-align:center;min-width:240px;gap:8px}.month{font-size:20px;font-weight:700}.month small{display:block;font-weight:400}.primary{background:#e8734a;border-color:#e8734a;color:#17243c}.primary:hover{background:#f09070}.next{display:flex;align-items:center;justify-content:space-between;font-size:18px;padding:16px 24px}.next span{font-size:24px}.mobile-break{display:none}.tabs{display:flex;border-bottom:1px solid #d1d1cc;gap:8px;overflow-x:auto}.tabs button{border:0;border-radius:8px 8px 0 0;background:transparent;white-space:nowrap;padding:16px 24px}.tabs button.active{background:#1a2744;color:#fff}.status-line{min-height:48px;font-size:14px;color:#596171;padding:12px 0}section{margin-bottom:48px}.village-overview{border-radius:16px;background:#ebece4;padding:32px;display:grid;grid-template-columns:1fr 1.1fr;gap:32px;align-items:center}.section-intro p{max-width:400px}.legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:24px;color:#394558}.legend span{display:flex;align-items:center;gap:8px}.legend i{width:10px;height:10px;border-radius:50%;background:#1a2744}.legend i.unemployed{background:#bd4d28}.legend i.retired{background:#598077}.legend i.dependent{background:#716593}.people-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:0}.person{min-height:44px;border:0;border-radius:8px;background:transparent;padding:0;position:relative;display:flex;align-items:center;flex-direction:column;justify-content:center;color:#263c59}.person>span:first-child{font-size:13px;line-height:13px}.person-body{width:13px;height:14px;border-radius:6px 6px 3px 3px;background:currentColor;margin-top:1px}.person.unemployed{color:#b74724}.person.retired{color:#507c70}.person.dependent{color:#716593}.person:hover{background:#d9dcd2;transform:translateY(-2px)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.section-heading h2{margin-bottom:0}.section-heading p:not(.eyebrow){margin-top:16px}.pill{padding:8px 16px;border-radius:24px;background:#e8ecee;white-space:nowrap;font-weight:600}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric{padding:24px;background:#fff;border:1px solid #e3e5e0;border-radius:12px;display:flex;flex-direction:column;gap:8px}.metric h3{color:#4b5563;margin:0;font-size:14px;font-weight:500}.metric strong{font-size:25px;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.metric small{font-size:14px}.metric:first-child{border-top:3px solid #e8734a}.two-col{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:start}.panel{background:#fff;padding:24px;border:1px solid #e3e5e0;border-radius:12px;min-width:0;box-shadow:0 1px 2px #1a274408}.chart-select{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.chart-select button{font-size:14px;min-height:40px;padding:8px 12px;background:#f7f8f5;border-color:transparent}.chart-select button.selected,.selected{background:#e4eaf0!important;border-color:#58708c!important}.chart{width:100%;min-width:0}.note{font-size:14px;line-height:1.7;margin-top:16px;color:#596171}.empty{padding:24px 0}.explain-value{font-size:28px;font-weight:700;color:#1a2744}.explain-value small{font-weight:400}dl{margin:16px 0}.pair{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid #eceee9}.pair dt{color:#596171;font-size:14px}.pair dd{margin:0;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.news{list-style:none;padding:0;margin:16px 0}.news li{position:relative;padding:16px 0 16px 24px;border-bottom:1px solid #eceee9}.news li:before{content:"";position:absolute;left:0;top:25px;width:7px;height:7px;border-radius:50%;background:#b74724}.event{padding:8px 16px;background:#fff0e9;border-radius:8px;margin:8px 0}.resident-layout{display:grid;grid-template-columns:1.45fr 1fr;gap:24px;align-items:start}.resident-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.resident-card{display:flex;align-items:center;flex-direction:column;gap:8px;padding:16px 8px;font-size:14px}.resident-card small{font-size:14px;font-weight:400;white-space:nowrap}.avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#e4eaf0;color:#1a2744}.avatar.unemployed{background:#f8e0d5;color:#88351c}.avatar.retired{background:#dcece4;color:#355a4d}.avatar.dependent{background:#e7e0f0;color:#5b497c}.resident-detail{position:sticky;top:24px}.resident-detail h3{margin-top:24px}.market-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.market-grid .panel{padding:24px 16px}.market-price{font-size:20px;display:block}.firm-list{display:flex;flex-direction:column;gap:8px}.firm-list button{display:flex;align-items:center;justify-content:space-between;text-align:left;gap:8px;padding:16px}.firm-list small{display:block;font-weight:400;margin-top:4px}.policy-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.policy label{display:flex;justify-content:space-between;align-items:center;font-size:18px;font-weight:700;gap:16px}.policy label strong{font-size:20px}.policy input{width:100%;min-height:44px;accent-color:#b74724;margin:16px 0 0}.policy p{margin:16px 0}.range-ends{display:flex;justify-content:space-between;font-size:14px;color:#596171}.button-row{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.field{display:flex;flex-direction:column;gap:8px;margin:16px 0;font-weight:600}select,input[type=number]{background:#fff;border:1px solid #b7bec6;border-radius:8px;padding:8px 12px;min-height:44px;color:#1a2744;max-width:100%}.checkbox{display:flex;align-items:center;gap:8px;min-height:44px;margin:16px 0}.checkbox input{width:20px;height:20px;accent-color:#1a2744}.confirm{padding:16px;background:#fff0e9;margin-top:16px;border-radius:8px}.save-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0}.save-slot{border:1px solid #e3e5e0;background:#fafbf8;border-radius:8px;padding:16px}.save-slot button{display:block;width:100%;margin-top:8px}.glossary{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}details{background:#fff;border:1px solid #e3e5e0;border-radius:8px;padding:16px 24px}summary{cursor:pointer;font-weight:600;min-height:44px;display:list-item;align-content:center}details p{margin:16px 0}footer{border-top:1px solid #d1d1cc;padding:32px 0 48px;display:flex;justify-content:space-between;gap:24px}footer p{font-size:14px}@media(max-width:1000px){.edition{display:none}.help-button{margin-left:auto}.metrics,.market-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.two-col{grid-template-columns:1fr 1fr}.resident-list{grid-template-columns:repeat(3,minmax(0,1fr))}.village-overview{grid-template-columns:1fr;gap:24px}.section-intro p{max-width:unset}.people-grid{max-width:560px;width:100%;margin:auto}.resident-layout{grid-template-columns:1fr 1fr}.metric strong{font-size:23px}}@media(max-width:720px){main{padding:0 16px}.topbar{padding:16px}.hero{padding:32px 0;align-items:flex-start;flex-direction:column;gap:24px}h1{font-size:30px}.hero>div:first-child{width:100%}.month-control{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;width:100%;gap:8px 16px}.month-control>small{width:100%;text-align:right}.month{font-size:18px;text-align:left}.next{min-width:180px;padding:12px 16px}.tabs button{padding:12px 16px}.village-overview{padding:24px 16px}.metrics,.market-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{padding:16px}.metric strong{font-size:21px}.two-col,.policy-grid,.glossary{grid-template-columns:1fr}.panel{padding:24px 16px}.section-heading{align-items:flex-start;flex-wrap:wrap}.section-heading .pill{font-size:14px}.resident-layout{display:flex;flex-direction:column-reverse}.resident-detail{position:static;width:100%}.resident-list{grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.resident-card small{white-space:normal}.save-grid{grid-template-columns:1fr}.save-slot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.save-slot h3{width:100%;margin:0}.save-slot button{width:auto;flex:1}.market-grid .pair{display:block}.market-grid dd{text-align:left}.brand{font-size:17px;gap:8px}.brand-icon{width:48px;height:48px}.brand small{font-size:14px}.help-button{padding:8px 12px}footer{flex-direction:column}section{margin-bottom:40px}}@media(max-width:390px){.mobile-break{display:block}.resident-list{grid-template-columns:repeat(3,minmax(0,1fr))}.person{min-height:44px}.village-overview{padding:24px 8px}.metric strong{font-size:19px}.month-control .next{min-width:156px}.market-price{font-size:17px}.policy label{font-size:16px}.policy label strong{font-size:17px}.topbar{gap:8px}.brand small{font-size:12px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}.mode-chip{display:inline-block;margin-top:16px;padding:8px 16px;background:#e0ecf5;border-radius:9999px;color:#1a2744;font-weight:700}.challenge-strip{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:24px 32px;background:#fff;border:1px solid #e3e5e0;border-left:4px solid #e8734a;border-radius:12px}.challenge-strip h2{margin-bottom:4px}.challenge-strip .note{width:100%;margin-top:0}.challenge-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.challenge-actions strong{font-size:24px;min-width:96px;text-align:center}.mode-picker{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.mode-picker button{min-width:96px}.leaderboard .mode-picker{margin-bottom:8px}.leaderboard details{margin-top:24px}.ranking-list{margin-top:24px;border:1px solid #e3e5e0;border-radius:8px;overflow:hidden}.ranking-head,.ranking-row{display:grid;grid-template-columns:72px minmax(140px,1fr) 120px 80px;gap:16px;align-items:center;padding:12px 16px}.ranking-head{background:#e8ecee;font-weight:700}.ranking-row{border-top:1px solid #eceee9}.ranking-row:nth-child(2n){background:#fafbf8}.auth-form{display:flex;align-items:flex-end;flex-wrap:wrap;gap:16px;margin:16px 0}.auth-form .field{margin:0}.auth-form input{background:#fff;border:1px solid #b7bec6;border-radius:8px;padding:8px 12px;min-height:44px;max-width:100%;min-width:240px}.auth-status{display:flex;justify-content:space-between;gap:16px;align-items:center}@media(max-width:720px){.challenge-strip{padding:24px 16px}.challenge-actions{width:100%}.ranking-head,.ranking-row{grid-template-columns:40px minmax(92px,1fr) 90px 60px;gap:8px;padding:12px 8px;font-size:12px}.mode-picker button{flex:1}}
