@font-face{font-family:FundingSerif;src:local("Georgia")}*{box-sizing:border-box}html{color-scheme:light}body{margin:0;background:#f4f5f1;color:#243d35;font-family:"Avenir Next","Segoe UI",sans-serif;font-size:16px;line-height:1.55}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button{border:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #a77420;outline-offset:4px}button:disabled{opacity:.5;cursor:default}a{color:inherit}button{transition:background .15s,transform .15s}button:hover{filter:brightness(.96)}button:active{transform:translateY(1px)}.page{max-width:1260px;margin:auto;padding:32px 38px 24px}.masthead{display:flex;justify-content:space-between;align-items:center;padding-bottom:25px;border-bottom:1px solid #d7dfd8;gap:20px}.brand{font-weight:700;font-size:19px;display:flex;align-items:center;gap:11px;text-decoration:none;letter-spacing:.03em}.brand-mark{display:grid;place-items:center;width:37px;height:40px;background:#234b3c;color:#f0d38a;border-radius:11px 3px 11px 3px;font-family:Georgia,serif;font-size:28px}.brand-name{margin-left:12px;font-size:14px;font-weight:500;letter-spacing:0;color:#5b7066}.header-actions{display:flex;align-items:center;gap:20px}.language{display:flex;border:1px solid #cad6cc;border-radius:7px;padding:3px}.language button{background:transparent;padding:6px 10px;font-size:13px;border-radius:4px;color:#506459}.language .active{background:#234b3c;color:#fff}.quiet{background:transparent;color:#355146;padding:6px 1px;font-size:14px}.page-heading{display:flex;justify-content:space-between;gap:30px;align-items:end;padding:30px 0 26px}.eyebrow{font-size:11px;letter-spacing:.13em;font-weight:700;margin:0 0 5px;color:#65756c}h1,h2,p{margin-top:0}h1{font-family:FundingSerif,Georgia,serif;font-size:39px;line-height:1.15;font-weight:400;letter-spacing:-.035em;margin-bottom:0}h2{font-size:18px;line-height:1.4;font-weight:650;margin:0}.document-date{max-width:215px;text-align:right;color:#718078;font-size:12px;line-height:1.6}.workspace{display:grid;grid-template-columns:.82fr 1.18fr;gap:22px;align-items:start}.panel{background:#fff;border:1px solid #dbe2da;border-radius:14px}.enrollment,.funding{padding:26px}.section-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:23px}.section-number{font-size:12px;color:#839187;letter-spacing:.05em}.count-line{display:flex;gap:20px;align-items:center}.count-line>strong{font-family:Georgia,serif;font-size:78px;font-weight:400;line-height:1.08;letter-spacing:-.07em}.count-line>div{display:flex;flex-direction:column;font-size:14px}.status{color:#8d6425;font-size:12px;margin-top:4px}.count-date{font-size:14px;color:#69796f;margin:19px 0 25px}.grade-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:25px}.grade{border-radius:9px;padding:12px 4px;text-align:center;background:#f3f6f1;border:1px solid #e5e9e1}.grade:nth-child(n+5):nth-child(-n+8){background:#f4f5ed}.grade:nth-child(n+9){background:#f7f3ea}.grade small{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#6d776d;display:block}.grade strong{font-family:Georgia,serif;font-size:29px;line-height:1.6;font-weight:400}.outline{background:#fff;border:1px solid #bccbc1;border-radius:7px;padding:11px 13px;font-size:14px;color:#294c3c}.full{width:100%}.enrollment-note{display:flex;gap:11px;margin-top:24px}.enrollment-note p{font-size:13px;color:#69796f;margin:0}.note-line{width:3px;flex-shrink:0;background:#ddc68d;border-radius:4px}.scope-tabs{display:flex;background:#eef2ec;padding:4px;border-radius:8px;margin-bottom:18px;gap:4px}.scope-tabs button{flex:1;padding:10px 8px;border-radius:5px;background:transparent;font-size:14px;color:#516758;font-weight:600}.scope-tabs .active{background:#fff;color:#234b3c;box-shadow:0 1px 4px #21352512}.target-card{background:#234b3c;color:#fff;padding:23px 24px 20px;border-radius:10px}.target-label{display:flex;gap:15px;align-items:center;justify-content:space-between;font-size:13px;color:#dae5dc;line-height:1.5}.tag{font-size:10px;letter-spacing:.04em;white-space:nowrap;color:#e5ce94;border:1px solid #67816b;border-radius:4px;padding:3px 6px}.target-amount{display:flex;align-items:center;gap:17px;padding:14px 0 17px}.target-amount strong{font-family:Georgia,serif;font-size:62px;line-height:1.05;letter-spacing:-.055em;font-weight:400;color:#f9e4ae}.target-amount>span{font-size:12px;line-height:1.4;color:#d5e1d6;max-width:95px}.target-footer{border-top:1px solid #52715e;padding-top:13px;display:flex;flex-wrap:wrap;gap:7px 20px;justify-content:space-between;font-size:12px;color:#e2eadf}.context{font-size:13px;color:#5e7467;margin:11px 0 20px}.model-controls{display:grid;grid-template-columns:1fr 1.2fr;gap:25px}.model-controls label>span,.field-label{display:block;font-size:13px;color:#586e61;margin-bottom:7px}.model-controls select{width:100%;border:1px solid #cad6cc;background:#fff;padding:9px 10px;border-radius:7px;color:#294c3c;font-size:14px}.stepper{display:flex;border:1px solid #cad6cc;border-radius:7px;overflow:hidden;height:43px}.stepper button{width:38px;background:#f4f6f1;color:#234b3c;font-size:19px}.stepper input{width:100%;min-width:0;text-align:center;border:0;border-inline:1px solid #e3e8e0;color:#234b3c;font-weight:650;font-size:17px;-moz-appearance:textfield}.stepper input::-webkit-inner-spin-button{appearance:none}.model-origin{font-size:12px;color:#788679;margin:9px 0 20px}.experiment{border-top:1px solid #e3e8e0;padding-top:19px}.fee-heading{display:flex;justify-content:space-between;align-items:center;font-size:14px}.fee-heading span{font-size:21px;font-weight:650}.experiment input[type=range]{accent-color:#416748;width:100%;margin:19px 0 15px;height:6px;cursor:pointer}.fee-presets{display:flex;gap:7px;flex-wrap:wrap}.fee-presets button{background:#f2f5ed;border:1px solid #dde4d7;border-radius:6px;padding:6px 10px;color:#4a5f4d;font-size:12px}.fee-presets button.active{background:#e0e9d8;border-color:#77936b;color:#234b3c}.fee-presets #break-even{margin-left:auto;background:transparent;border-color:transparent;font-weight:650;padding-right:0}.result{margin-top:19px;background:#faf1e9;color:#9a472a;padding:14px 17px;border-radius:8px;display:flex;justify-content:space-between;align-items:center;gap:15px}.result span{display:block;font-size:12px}.result strong{font-family:Georgia,serif;font-size:30px;letter-spacing:-.025em;font-weight:400}.result.positive{background:#eef5e8;color:#396333}.money-panel{margin-top:22px;padding:24px 26px}.money-title{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.money-title>span{font-size:14px;color:#6c7e70}.later-note{padding:23px 6px;display:flex;gap:20px;align-items:start}.note-badge{white-space:nowrap;color:#796332;font-size:10px;letter-spacing:.05em;border:1px solid #d5c49e;border-radius:4px;padding:4px 7px;margin-top:3px}.later-note p{color:#657467;font-size:13px;line-height:1.75;margin:0}.later-note b{font-weight:600;color:#3f5848}.explanation{border-top:1px solid #d7dfd5;padding:17px 3px}.explanation summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;list-style:none;font-size:14px;font-weight:600;gap:20px}.explanation summary::-webkit-details-marker{display:none}.explanation[open] summary>span:last-child{transform:rotate(45deg)}.details-body{padding:22px 0 0;font-size:14px;color:#617263;max-width:900px}.details-body p{margin-bottom:17px}.details-body li{padding-left:7px}.details-body ol{padding-left:22px}.formula{padding:17px 20px;background:#eaf0e4;border-radius:6px;line-height:1.8;margin:20px 0;color:#294c3c;font-variant-numeric:tabular-nums}.check{display:flex;gap:10px;align-items:start;margin:20px 0 9px;color:#294c3c}.check input{accent-color:#234b3c;width:18px;height:18px}.source-caution{border-left:3px solid #cfb777;padding-left:13px}footer{border-top:1px solid #d7dfd5;display:flex;justify-content:space-between;gap:20px;align-items:center;padding-top:18px;color:#7c897d;font-size:11px}footer button{font-size:12px!important}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:12px 22px;border-radius:8px;background:#234b3c;color:#fff;box-shadow:0 5px 30px #243f3226;z-index:5;font-size:14px;max-width:90vw}.grade-inputs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:15px 0}.grade-inputs label{font-size:12px}.grade-inputs input{display:block;width:100%;border:1px solid #cad6cc;padding:7px;border-radius:5px;color:#294c3c}#grade-form{border-top:1px solid #e1e8dc;margin-top:20px;padding-top:16px}#grade-form p{font-size:13px;color:#6c7b6f}#count-asof{border:1px solid #cad6cc;padding:8px;border-radius:5px;color:#294c3c;width:100%}.form-actions{display:flex;gap:18px}.primary{background:#234b3c;color:#fff;padding:10px 14px;border-radius:6px;font-size:14px}#grade-form #grade-error{color:#a54123}.language-ja h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:32px;letter-spacing:0}.language-ja .target-amount strong{font-size:58px}.language-ja .target-label{font-size:12px}.language-ja .target-label .tag{font-size:10px}.language-ja .brand-name{font-size:12px}[hidden]{display:none!important}@media(max-width:1000px){.page{padding:25px}.workspace{grid-template-columns:.85fr 1.15fr;gap:16px}.enrollment,.funding{padding:20px}.target-card{padding:19px}.target-amount strong{font-size:52px}.target-label{align-items:start;flex-direction:column;gap:8px}.target-amount{gap:14px}.model-controls{gap:15px}.brand-name{display:none}.fee-presets #break-even{margin-left:0}.target-footer{font-size:11px}.grade-grid{gap:7px}.grade small{font-size:10px}.money-bars{gap:20px}}@media(max-width:720px){.page{padding:19px 16px}.masthead{padding-bottom:18px}.header-actions{gap:16px}.page-heading{padding:25px 0 20px;display:block}h1{font-size:33px}.document-date{display:block;max-width:none;text-align:left;margin-top:12px;font-size:11px}.workspace{grid-template-columns:1fr;gap:18px}.enrollment,.funding{padding:23px}.count-line>strong{font-size:65px}.count-date{margin:14px 0 19px}.grade-grid{grid-template-columns:repeat(6,1fr);gap:7px;margin-bottom:20px}.grade{padding:8px 2px}.grade strong{font-size:24px}.grade small{font-size:9px}.section-top{margin-bottom:20px}.target-label{flex-direction:row;align-items:center}.target-amount strong{font-size:60px}.target-footer{font-size:12px}.money-panel{padding:21px}.money-bars{grid-template-columns:1fr;gap:23px}.money-title{align-items:start}.money-title>span{font-size:12px;text-align:right}.money-title h2{font-size:17px}.later-note{display:block;padding:24px 3px}.note-badge{display:inline-block;margin:0 0 10px}.later-note p{font-size:13px}.details-body{font-size:14px}.language-ja h1{font-size:29px}.language-ja .target-amount strong{font-size:56px}}@media(max-width:380px){.page{padding:15px 10px}.enrollment,.funding{padding:18px}.target-card{padding:17px}.target-amount strong{font-size:50px}.target-label{flex-direction:column;align-items:start}.grade-grid{grid-template-columns:repeat(4,1fr)}.scope-tabs button{font-size:13px}.language-ja .target-amount strong{font-size:48px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}@media print{.page{max-width:none;padding:0}.header-actions,#share,#reset,.fee-presets,#grade-form{display:none}.workspace{grid-template-columns:1fr 1.3fr}.panel{break-inside:avoid}.target-card{-webkit-print-color-adjust:exact;print-color-adjust:exact}.explanation{break-inside:avoid}}

/* Readable labels and resilient figures across languages and narrow screens. */
.grade small{font-size:13px;letter-spacing:0}.target-label{font-size:14px}.target-amount>span{font-size:14px}.target-amount strong{font-size:clamp(2.4rem,4.4vw,3.875rem);overflow-wrap:anywhere}.target-amount{flex-wrap:wrap}.context,.model-controls label>span,.field-label,.fee-presets button,.enrollment-note p,.later-note p,.target-footer,.money-legend span{font-size:14px}.model-origin,.count-date,.status{font-size:13px}.target-label .tag{font-size:12px}.brand-name{font-size:14px}.eyebrow{font-size:12px}.note-badge{font-size:12px}.result span{font-size:14px}.grade-inputs label{font-size:14px}.fee-presets #break-even{margin-left:0}.target-footer{line-height:1.6}.money-title .eyebrow{font-size:12px}.grade small{font-size:14px}.language-ja .target-label{font-size:14px}.language-ja .target-label .tag{font-size:12px}.language-ja .target-amount strong{font-size:clamp(2.4rem,4.4vw,3.875rem)}
@media(max-width:1000px){.grade-grid{grid-template-columns:repeat(3,1fr)}.target-amount strong{font-size:clamp(2rem,5.5vw,3.25rem)}}
@media(max-width:720px){.funding{order:-1}.grade-grid{grid-template-columns:repeat(4,1fr)}.grade small{font-size:13px}.target-label{align-items:start;flex-direction:column}.target-amount strong,.language-ja .target-amount strong{font-size:clamp(2rem,12vw,3.7rem)}.target-footer{font-size:14px}.scope-tabs button{font-size:14px}.enrollment-note p{font-size:14px}.money-title{flex-wrap:wrap}.money-legend span{font-size:13px}}

/* The balance illustration follows the live annual result. */
.seesaw{--balance-color:#967235;--balance-tint:#faf6ed;margin:20px 0 0;padding:16px 16px 12px;background:var(--balance-tint);border:1px solid #eee5d5;border-radius:10px;color:var(--balance-color);transition:background .4s,color .4s,border-color .4s}
.seesaw[data-state=deficit]{--balance-color:#b34939;--balance-tint:#fcf2ef;border-color:#efdcd7}
.seesaw[data-state=surplus]{--balance-color:#396b4c;--balance-tint:#f0f6ed;border-color:#dbe8d4}
.seesaw figcaption{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:14px}.seesaw figcaption>span{color:#5b6d60}.seesaw figcaption strong{font-size:13px;font-weight:650}
.seesaw-scene{display:block;width:100%;height:auto;max-height:245px;overflow:visible;margin:0 auto}.seesaw-ground{stroke:#d7d9cb;stroke-width:2;stroke-linecap:round}.seesaw-reference{stroke:currentColor;stroke-opacity:.18;stroke-width:1.5;stroke-dasharray:4 5}.seesaw-pivot{fill:#e6d5aa;stroke:#be9d58;stroke-width:1.5;stroke-linejoin:round}.seesaw-board{stroke:currentColor;stroke-width:9;stroke-linecap:round}.seesaw-center-mark{stroke:#fff;stroke-opacity:.8;stroke-width:2}.seesaw-pin{fill:#ae8740;stroke:#f9edcd;stroke-width:1.5}.walker-limbs{stroke:currentColor;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;fill:none}.walker-body{stroke:currentColor;stroke-width:15;stroke-linecap:round}.walker-head{fill:var(--balance-tint);stroke:currentColor;stroke-width:3.5}.seesaw>p{font-size:14px;text-align:center;margin:0;line-height:1.5}.seesaw>.exact-fee-note{font-size:12px;color:#727566;margin-top:8px}.result.balanced{background:#f5f0e3;color:#806029}.fee-presets #break-even.active{background:#f1e5c8;border-color:#b99a53;color:#795c2b}
@media(max-width:720px){.seesaw{padding:14px 10px 12px}.seesaw figcaption{font-size:13px}.seesaw-scene{min-height:165px}.seesaw>p{font-size:13px}.fee-heading{gap:10px}.fee-heading span{font-size:19px}}
@media(prefers-reduced-motion:reduce){.seesaw{transition:none}}

/* Teacher pay: a shared contribution, with the fee consequence kept beside it. */
.community-panels{display:grid;gap:22px;min-width:0}.teacher-panel{padding:22px 25px 24px;background:#fffef8;min-width:0}.teacher-intro{display:flex;align-items:center;gap:15px;margin-bottom:17px}.teacher-portrait{width:104px;height:104px;object-fit:contain;flex-shrink:0}.teacher-intro h2{font-size:20px;line-height:1.3}.teacher-intro p{font-size:14px;color:#65715c;line-height:1.5;margin:8px 0 0}.teacher-panel .field-label{font-size:14px;color:#435b4c}.raise-input{display:flex;align-items:center;gap:7px;font-size:24px;color:#274c3c;font-weight:600}.raise-input input{font:inherit;color:inherit;min-width:0;width:150px;border:1px solid #c7d1bf;background:#fff;border-radius:7px;padding:7px 9px;font-variant-numeric:tabular-nums}.raise-input>span:last-child{font-size:14px;color:#63745e;font-weight:400}.teacher-panel input[type=range]{accent-color:#416748;width:100%;margin:22px 0 17px;height:6px;cursor:pointer}.raise-presets{display:flex;gap:6px;flex-wrap:wrap}.raise-presets button{background:#f1f3e9;border:1px solid #d9e0cb;border-radius:6px;color:#41583f;padding:7px 9px;font-size:14px}.raise-presets button.active{background:#264e3a;color:#fff;border-color:#264e3a}.teacher-impact{margin-top:22px;border-block:1px solid #dbe1cc;padding:16px 0 13px}.teacher-impact>span{font-size:14px;color:#56694e}.teacher-fee-comparison{display:flex;align-items:center;gap:12px;margin:5px 0 8px;flex-wrap:wrap;line-height:1.3;font-variant-numeric:tabular-nums}.teacher-fee-comparison>span:first-child{font-family:Georgia,serif;font-size:25px;color:#778172}.teacher-fee-comparison strong{font-family:Georgia,serif;font-size:34px;font-weight:400;color:#234b3c}.teacher-fee-comparison .comparison-arrow{font-size:20px;color:#8b916f}.teacher-impact p{font-size:14px;color:#4a654c;margin:0;line-height:1.55}.teacher-cost{margin:15px 0 7px;font-size:14px;font-weight:600;color:#36573f}.teacher-assumption{font-size:14px;color:#7a612d;line-height:1.55;margin:0 0 14px}.employer-details{font-size:14px;color:#4e654e}.employer-details summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px}.employer-details label{display:block;margin:15px 0 7px}.employer-input{display:flex;align-items:center;gap:8px}.employer-input input{width:88px;max-width:100%;border:1px solid #bdcab5;border-radius:6px;font-size:16px;padding:7px;color:#264e3a;background:white}.employer-details p{font-size:13px;margin:10px 0}.teacher-footnote{font-size:13px;color:#71806b;line-height:1.6;margin:16px 0 0}.funding{min-width:0}
@media(max-width:680px){.teacher-panel{padding:20px}.teacher-intro{gap:13px}.teacher-portrait{width:92px;height:92px}.teacher-intro h2{font-size:19px}.teacher-fee-comparison{gap:9px}.raise-presets button{flex:1;white-space:nowrap;font-size:13px;padding:8px 6px}.teacher-fee-comparison strong{font-size:32px}.raise-input input{width:140px}}

/* One combined answer, with comparisons and accounting detail on demand. */
.funding .section-top{margin-bottom:8px}.funding h2{font-size:22px}
.scope-description{font-size:14px;line-height:1.6;color:#596d60;margin-bottom:20px}
.target-label{flex-direction:column;align-items:flex-start;gap:10px;font-size:16px}.language-ja .target-label{font-size:16px}
.target-label .tag{white-space:normal;font-size:13px;letter-spacing:0}
.estimate-note{font-size:14px;font-weight:600;color:#355146;margin:12px 0 5px}
.context{font-size:14px;line-height:1.6;margin:0 0 20px}.model-controls{grid-template-columns:minmax(0,1fr);max-width:290px}
.model-origin{font-size:14px;color:#5c7062;line-height:1.6}
.fee-presets #break-even{background:#234b3c;color:#fff;border:1px solid #234b3c;padding:8px 12px;margin-left:0}
.fee-presets button{min-height:42px}.seesaw figcaption{align-items:flex-start;flex-wrap:wrap}.seesaw figcaption strong{font-size:14px;max-width:100%}
.seesaw .result{margin:0 0 8px;padding:0;background:transparent;color:inherit;border-radius:0}
.seesaw .result strong{display:block;font-family:inherit;font-size:clamp(24px,3vw,34px);font-weight:600;letter-spacing:-.025em;overflow-wrap:anywhere}
.seesaw .result svg{flex-shrink:0}.seesaw>p{font-size:14px;text-align:left}
.budget-note{font-size:13px;color:#647266;margin:12px 0 0;line-height:1.6}
.teacher-impact>strong{display:block;font-size:36px;font-family:Georgia,serif;font-weight:400;line-height:1.3;margin:6px 0 10px;color:#234b3c;font-variant-numeric:tabular-nums}
.teacher-impact p{font-size:16px;line-height:1.6}.teacher-cost{font-weight:500}
.cost-breakdown{margin-top:26px}.cost-breakdown>.details-body{max-width:none}.cost-breakdown .money-panel{margin:0;padding:0 0 25px}



.year-control{display:block;max-width:360px;color:#294c3c}.year-control>span{display:block;font-size:14px;margin-bottom:8px}.year-control select{font-size:16px;color:#294c3c;border:1px solid #bccbc1;border-radius:7px;padding:10px;background:#fff;width:100%}
.year-help{font-size:14px;margin:10px 0 0}.details-body .later-note{padding:22px 0 0}.exact-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 20px}.exact-controls span{font-size:14px}.exact-controls #break-even.active{background:#f1e5c8;border-color:#b99a53}
.explanation summary{font-size:16px;min-height:32px}.details-body{line-height:1.7}.money-legend span{font-size:14px}.money-bars>div{min-width:0}.bar-label{flex-wrap:wrap;gap:4px 16px}.money-title{flex-wrap:wrap}
@media(max-width:720px){.target-label{flex-direction:column;align-items:flex-start}.seesaw figcaption{font-size:14px}.result strong{font-size:28px}.model-controls{max-width:none}.seesaw-scene{max-height:205px}.teacher-impact p{font-size:16px}.money-legend{gap:10px}}

/* A quiet preview until loan and land details are available. */
.future-costs{min-width:0;overflow:hidden}
.future-costs summary{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:72px;padding:21px 25px;cursor:pointer;list-style:none;color:#355146;font-size:16px;font-weight:600;line-height:1.55}
.future-costs summary::-webkit-details-marker{display:none}
.future-toggle{font-size:24px;font-weight:400;flex-shrink:0;line-height:1;transition:transform .2s}
.future-costs[open] .future-toggle{transform:rotate(45deg)}
.future-costs-body{padding:0 25px 24px}
.future-school{display:block;width:100%;height:auto;max-width:320px;aspect-ratio:4/3;object-fit:contain;margin:0 auto 18px}
.future-savings-label{font-size:14px;line-height:1.6;color:#617263;margin:0 0 7px;padding-top:18px;border-top:1px solid #dbe2da}
.future-awaiting{font-size:18px;font-weight:600;line-height:1.5;color:#355146;margin:0}
@media(max-width:680px){.future-costs summary{padding:20px}.future-costs-body{padding:0 20px 22px}}

/* Proportional pictograms: the filled circle area represents annual yen. */
.money-panel{--circle-unit:156px}
.money-title{margin-bottom:12px}.money-title h2{font-family:Georgia,serif;font-size:28px;font-weight:400;color:#294c3c}
.language-ja .money-title h2{font-family:inherit;font-size:23px}
.details-body .flow-scenario{font-size:14px;color:#294c3c;margin:0 0 5px;font-weight:600}
.details-body .flow-guide{font-size:14px;margin:0 0 23px;color:#647568}
.money-flow{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.flow-group{min-width:0;padding:22px 18px 25px;border:1px solid #d8e3d4;border-radius:12px;background:#fbfcf8}
.flow-out{background:#fdfaf5;border-color:#e9dfcd}
.flow-heading{padding:0 3px 15px;border-bottom:1px solid #dce5d7}
.flow-out .flow-heading{border-color:#e9dfcd}
.flow-heading h3{font-size:15px;font-weight:600;margin:0 0 4px;color:#426b50}
.flow-out .flow-heading h3{color:#906031}
.flow-heading h3>span:first-child{font-size:22px;vertical-align:-1px;margin-right:5px}
.flow-heading>strong{display:block;font-size:26px;line-height:1.3;font-weight:600;color:#294c3c;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.flow-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:20px 0 0;padding:0;list-style:none}
.flow-out .flow-items{grid-template-columns:repeat(2,minmax(0,1fr))}
.details-body .flow-item{min-width:0;padding:0;text-align:center;display:flex;flex-direction:column;align-items:center}
.flow-circle-stage{display:flex;align-items:center;justify-content:center;height:var(--circle-unit);width:100%;margin-bottom:17px}
.flow-circle{display:grid;place-items:center;width:calc(var(--circle-unit) * var(--ratio));height:calc(var(--circle-unit) * var(--ratio));border-radius:50%;background:#426b50;color:#fff;flex-shrink:0}
.flow-circle svg{display:block;width:57%;height:57%}
.flow-other .flow-circle{background:#b7c99e;color:#304b35}
.flow-building-income .flow-circle{background:#718c94;color:#fff}
.flow-operations .flow-circle{background:#ad753d;color:#fff}
.flow-buildings .flow-circle{background:#e0c084;color:#62451f}
.flow-value{font-size:16px;font-weight:650;color:#294c3c;line-height:1.4;font-variant-numeric:tabular-nums;white-space:nowrap;max-width:100%}
.flow-name{display:block;font-size:14px;line-height:1.5;margin:7px 0 0;color:#536958;max-width:190px;overflow-wrap:anywhere}
.flow-result{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:15px;padding:17px 21px;border-radius:9px;background:#f9ece5;color:#97432e;font-size:15px}
.flow-result strong{font-size:25px;line-height:1.3;font-weight:600;letter-spacing:-.03em;white-space:nowrap;font-variant-numeric:tabular-nums}
.flow-result[data-state=balanced]{background:#f2efdf;color:#78632b}
.flow-result[data-state=surplus]{background:#eaf1e3;color:#396333}
.details-body .flow-footnote{font-size:13px;line-height:1.6;margin:13px 2px 0;color:#69796b}
@media(max-width:1050px) and (min-width:721px){.money-panel{--circle-unit:112px}.flow-group{padding:18px 13px 21px}.flow-value{font-size:14px}.flow-name{font-size:13px}}
@media(max-width:720px){.money-panel{--circle-unit:clamp(76px,25vw,138px)}.money-flow{grid-template-columns:1fr;gap:14px}.flow-group{padding:19px 13px 23px}.flow-heading>strong{font-size:25px}.flow-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 14px}.flow-heading h3{margin:0}.flow-items{margin-top:18px}.flow-circle-stage{margin-bottom:14px}.flow-value{font-size:14px}.flow-name{font-size:13px}.flow-result{flex-wrap:wrap;padding:16px}.flow-result strong{font-size:25px}.money-title h2{font-size:27px}}
@media(max-width:360px){.flow-value{font-size:12px}.flow-name{font-size:12px}.flow-group{padding-inline:9px}.flow-items{gap:5px}}
/* Fit long exact yen amounts without changing the pictogram scale. */
.flow-item{container-type:inline-size}
.flow-value{font-size:16px;font-size:min(var(--flow-font,16px),calc(150cqw / var(--digits)))}
@media(max-width:1050px){.flow-item{--flow-font:14px}}
@media(max-width:360px){.flow-item{--flow-font:12px}}

/* Lead with the current fee; keep the required estimate secondary. */
.target-footer{flex-direction:column;align-items:flex-start;gap:8px}
.required-fee-label{font-size:14px;line-height:1.5;color:#e2eadf}
.required-fee-amount{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 9px;font-size:14px}
.required-fee-amount strong{font-size:26px;font-weight:600;color:#fff;font-variant-numeric:tabular-nums;line-height:1.3}
.required-fee-amount>span{font-size:13px;color:#d5e1d6}
.target-footer .tag{font-size:12px;white-space:normal;margin:2px 0 4px}
#target-increase{font-size:13px;color:#d5e1d6}
.fee-heading{flex-wrap:wrap;gap:5px 15px;align-items:baseline}
.fee-heading label{font-size:14px}

/* One brief celebration when the scenario starts covering its costs. */
.seesaw-cheer{pointer-events:none}
.walker-happy-face{fill:currentColor}
.walker-happy-face path{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.walker-happy-face .walker-cheek{fill:#dc8e73;opacity:.6}
#teacher-title{text-wrap:balance}
.seesaw-cheer rect,.seesaw-cheer path{fill:#fff5d5;stroke:#b29553;stroke-width:1.5;stroke-linejoin:round}
.seesaw-cheer rect{stroke-width:1.5}
.seesaw-cheer text{fill:#365b3e;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:22px;font-weight:700}
html[lang=en] .seesaw-cheer text{font-family:inherit;font-size:19px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.intake-options{font-size:14px;color:#496350;margin:0 0 22px;border:1px solid #dbe2da;border-radius:8px;padding:12px 14px}.intake-options summary{cursor:pointer;line-height:1.6}.intake-options label{display:block;margin:16px 0 8px}.intake-options input{width:100%;max-width:140px;border:1px solid #bccbc1;border-radius:6px;padding:9px 12px;color:#234b3c}.intake-options p{margin:12px 0 0;font-size:14px;line-height:1.6}.restore-projection{display:block;text-decoration:underline;margin:-10px 0 15px;text-align:left}.status{color:#526f5c}

.teacher-portrait{mix-blend-mode:multiply}

/* A clear starting point and controls for trying a scenario. */
.planning-overview{display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px 28px;background:#eaf0e5;border:1px solid #d4dfce;border-radius:12px;padding:20px 24px}
.enrollment-journey{display:flex;align-items:center;gap:28px}.enrollment-journey>div{display:flex;flex-direction:column;gap:3px}.enrollment-journey>div>span{color:#546951;font-size:13px}.enrollment-journey strong{font:400 40px/1.15 Georgia,serif;color:#234b3c;font-variant-numeric:tabular-nums}.journey-arrow{font-size:26px;color:#79936b}.planning-overview .year-control{margin:0;min-width:230px}.planning-overview .year-control span{display:block;font-size:13px;margin-bottom:6px}.planning-overview .year-control select{width:100%;min-height:46px;background:#fff}.planning-overview>p{grid-column:1/-1;margin:0;font-size:13px;color:#576e53}.scenario-note{font-size:14px;color:#596e60;margin:14px 0 24px}
.fee-stepper{display:flex;gap:10px;margin-top:12px;align-items:stretch}.fee-stepper>button{flex:0 0 50px;min-height:52px;border:1px solid #bdcebd;background:#eff4e9;border-radius:8px;font-size:25px;color:#234b3c}.fee-entry{display:flex;align-items:center;gap:5px;min-width:0;flex:1;border:1px solid #bccbc1;background:#fff;border-radius:8px;padding:0 12px}.fee-entry>span{font-size:20px;color:#687c6a}.fee-entry input{width:100%;min-width:0;font-size:26px;font-weight:650;color:#234b3c;border:0;background:transparent;padding:7px 0;font-variant-numeric:tabular-nums}.fee-input-help{font-size:12px;color:#647564;line-height:1.6;margin:10px 0 0}.stepper{height:46px}.stepper button{min-width:44px}.fee-presets button,.raise-presets button,.language button{min-height:44px}.fee-presets #break-even{padding:8px 12px;border:1px solid #b8c9af;background:#eaf0e1;color:#234b3c;margin-left:0}
.teacher-impact .teacher-fee-comparison{display:grid;grid-template-columns:1fr auto 1.25fr;align-items:center;gap:10px;margin:0;padding:0;border:0}.teacher-fee-comparison>div{min-width:0;display:flex;flex-direction:column;gap:7px}.teacher-impact .teacher-fee-comparison span{font-size:12px;line-height:1.5}.teacher-impact .teacher-fee-comparison strong{font-size:clamp(20px,2.1vw,27px);margin:0;line-height:1.3;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.teacher-impact .teacher-impact-arrow{font-size:20px;color:#7a8e64}.teacher-impact>p{margin:16px 0 0}
.mobile-result{display:none}
@media(max-width:850px){.planning-overview{gap:15px}.enrollment-journey{gap:18px}.planning-overview .year-control{min-width:200px}}
@media(max-width:720px){.planning-overview{padding:18px;grid-template-columns:1fr}.enrollment-journey{justify-content:space-between;gap:12px}.enrollment-journey>div{flex:1}.enrollment-journey>div:last-child{text-align:right}.enrollment-journey>div>span{font-size:12px}.planning-overview .year-control{width:100%;max-width:none}.planning-overview>p{font-size:12px}.scenario-note{font-size:13px;margin-bottom:20px}.teacher-impact .teacher-fee-comparison strong{font-size:26px}.page{padding-bottom:calc(128px + env(safe-area-inset-bottom,0px))}.mobile-result{display:grid;grid-template-columns:.85fr 1.15fr;gap:12px;position:fixed;z-index:4;bottom:0;left:0;right:0;padding:13px max(18px,env(safe-area-inset-right,0px)) calc(13px + env(safe-area-inset-bottom,0px));border-top:1px solid #d5dfd1;background:#fffffff5;box-shadow:0 -4px 18px #243d3510;backdrop-filter:blur(12px);color:#294c3c}.mobile-result>div{display:flex;flex-direction:column;min-width:0}.mobile-result-outcome{text-align:right}.mobile-result span{font-size:11px;line-height:1.5;color:#627366}.mobile-result strong{font-size:clamp(15px,4.5vw,20px);font-weight:650;line-height:1.6;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.mobile-result[data-state=deficit] .mobile-result-outcome strong{color:#ab4435}.mobile-result[data-state=surplus] .mobile-result-outcome strong{color:#396b4c}.mobile-result[data-state=balanced] .mobile-result-outcome strong{color:#806029}.toast{bottom:calc(105px + env(safe-area-inset-bottom,0px))}.keyboard-open .mobile-result{display:none}}
@media(max-width:360px){.teacher-impact .teacher-fee-comparison{grid-template-columns:1fr;gap:12px}.teacher-impact .teacher-impact-arrow{display:none}.teacher-fee-comparison>div+span+div{border-top:1px solid #d8e0cf;padding-top:12px}.fee-stepper{gap:6px}.fee-stepper>button{flex-basis:44px}.fee-entry{padding:0 8px}.fee-entry input{font-size:23px}}

.enrollment-journey>div>span>small{display:block;font-size:11px;white-space:nowrap;margin-top:2px;color:#71836c}
