@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&family=Noto+Sans+JP:wght@400;500;600;700;800;900&display=swap');
:root{--page:#f5f3ec;--paper:#fffdf8;--ink:#173d39;--ink-2:#62716a;--rule:#dcded3;--indigo:#22584f;--indigo-soft:#e5eee5;--kiso:#28675a;--jissen:#bf532f;--chukyu:#426d83;--jokyu:#756044;--sans:'DM Sans','Noto Sans JP',sans-serif;--serif:'Noto Sans JP',sans-serif;--orange:#d45c36;--lime:#dcf08b;--mint:#a4c4b4;--display:'Manrope',var(--sans)}
body{font-family:var(--sans);background:var(--page);color:var(--ink);line-height:1.95}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--orange);outline-offset:4px}::selection{background:#dce995;color:#173d39}.wrap{max-width:1540px;grid-template-columns:250px minmax(0,1fr)}.main{padding:0 60px 80px;min-width:0}.side{padding:34px 24px;background:var(--page);font-size:14px}.brand{font-size:15px;letter-spacing:-.03em}.nav-part>ul a{font-size:12px;padding:5px 0 5px 8px}.nav-part-link{font-size:14px;font-weight:700}.prose{max-width:850px}.prose h2{font-size:27px;font-weight:800;letter-spacing:-.045em;margin:80px 0 26px;padding-bottom:18px}.prose h3{font-size:19px;font-weight:700;margin-top:38px}.prose p,.prose li{font-size:15px;line-height:2.05}.prose blockquote{border-left:3px solid #428170;border-radius:0;background:#e9eee4;padding:22px 26px}.tbl{border-radius:0;border-left:0;border-right:0}.prose th{background:#e9eee4}.prose td,.prose th{padding:14px}.bridge{border-radius:0;background:#ecefe5;border:0;border-top:1px solid #b6c8bc;padding:24px}.part{padding-top:86px}.part-head{border-top-width:2px;padding-top:25px}.part-label{font-size:12px;letter-spacing:.15em}.part-title{font-size:38px;font-weight:800;letter-spacing:-.06em}.part-meta{font-size:12px}.foot{max-width:850px}
.mast{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--rule);padding:24px 0;font:11px var(--display);letter-spacing:.16em}.mast b{letter-spacing:.02em;font-size:14px}.mast i{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--orange);margin-right:7px}.hero-new{padding:58px 0 0;position:relative;max-width:1000px}.edition{font:11px var(--display);letter-spacing:.18em;color:var(--ink-2);display:flex;align-items:center;gap:12px}.edition:before{content:'';width:30px;height:1px;background:var(--orange)}.hero-new h1{font-size:clamp(44px,5.4vw,78px);font-weight:800;line-height:1.27;letter-spacing:-.075em;margin:27px 0 25px;position:relative;z-index:1}.hero-new h1 em{color:var(--orange);font-style:normal}.hero-deck{display:flex;gap:40px;align-items:flex-start;justify-content:space-between}.hero-deck p{font-size:14px;line-height:2;max-width:390px;margin:0}.pill-link{display:inline-flex;gap:28px;align-items:center;border-radius:99px;background:var(--ink);color:#fffdf8;text-decoration:none;padding:14px 24px;font-size:12px;white-space:nowrap}.pill-link:hover{background:#2d6258}.hero-art{margin:32px -18px 0;position:relative}.hero-art img{display:block;width:100%;max-height:510px;object-fit:cover;mix-blend-mode:multiply;border-radius:4px}.hero-art figcaption{display:flex;justify-content:space-between;font:10px var(--display);color:var(--ink-2);letter-spacing:.15em;padding:14px 18px;border-bottom:1px solid var(--rule)}.chapter-route{display:grid;grid-template-columns:repeat(4,1fr);margin:35px 0 0;gap:20px}.chapter-route a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule);padding:0 0 18px}.chapter-route span{font:11px var(--display);color:var(--orange);display:block;margin-bottom:12px}.chapter-route b{font-size:14px;display:block}.chapter-route small{font-size:11px;color:var(--ink-2)}.hero-note{font-size:11px;color:var(--ink-2);margin:22px 0 0}
.plate{margin:42px 0 52px;padding:34px 34px 26px;background:var(--paper);border:1px solid #dcded3;border-radius:3px;position:relative;overflow:hidden;line-height:1.6;break-inside:avoid}.plate-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:28px}.plate-kicker{font:10px var(--display);letter-spacing:.15em;display:flex;align-items:center;gap:9px}.plate-kicker:before{content:'';width:6px;height:6px;background:var(--orange);border-radius:50%}.plate-no{font:11px var(--display);color:var(--ink-2)}.plate figcaption{font-size:clamp(23px,2.8vw,33px);font-weight:800;letter-spacing:-.055em;line-height:1.4;margin-bottom:12px}.plate .intro{font-size:13px;color:var(--ink-2);line-height:1.9;max-width:560px;margin:0 0 28px}.plate .caption{font-size:11px;line-height:1.9;border-top:1px solid var(--rule);padding-top:17px;margin:25px 0 0;color:var(--ink-2)}.plate .caption b{color:var(--ink)}.plate.dark{background:#173d39;color:#faf8ed;border-color:#173d39}.dark .intro,.dark .caption,.dark .plate-no{color:#b5cbc0}.dark .caption{border-color:#36554c}.dark .caption b{color:#e5f2b9}.dark .plate-kicker:before{background:var(--lime)}
.diagram{display:block;width:100%;height:auto;overflow:visible}.diagram text{font-family:var(--sans);fill:var(--ink)}.diagram .en{font-family:var(--display);font-size:10px;letter-spacing:2px}.diagram .label{font-size:15px;font-weight:700}.diagram .detail{font-size:11px;fill:#62716a}.diagram .big{font-family:var(--display);font-size:34px;font-weight:700}.diagram .line{fill:none;stroke:#b3c6ba;stroke-width:2}.diagram .money-line{fill:none;stroke:var(--orange);stroke-width:3}.diagram .return-line{fill:none;stroke:#77a797;stroke-width:3}.flow-dot{fill:var(--orange)}.return-dot{fill:#dcf08b}.diagram .baseline{stroke:#d6dbcd;stroke-width:1}.dark .diagram text{fill:#f5f3e8}.dark .diagram .detail{fill:#b5cbc0}
.segmented{display:inline-flex;padding:4px;background:#e9ede3;gap:3px;border-radius:99px;margin-bottom:23px}.segmented button{border:0;background:transparent;border-radius:99px;padding:9px 17px;color:#476359;font-size:12px}.segmented button[aria-pressed=true]{background:var(--ink);color:#fff}.phase-note{font-size:13px!important;min-height:50px;margin-top:12px!important}.money-scene [data-phase]{transition:opacity .3s}.money-scene[data-current=buy] [data-phase=repay],.money-scene[data-current=repay] [data-phase=buy]{display:none}
.capital-layout{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}.capital-stack{height:280px;display:flex;flex-direction:column;gap:5px;transform:skewY(-7deg);padding:20px 0}.capital-layer{position:relative;display:flex;align-items:center;justify-content:space-between;padding:14px 22px;box-shadow:9px 9px 0 #10362f;min-height:45px}.capital-layer:nth-child(1){background:#dcef98;flex:55;color:#173d39}.capital-layer:nth-child(2){background:#cd7750;flex:10;color:#fff}.capital-layer:nth-child(3){background:#94b6a5;flex:35;color:#173d39}.capital-layer b{font:700 26px var(--display)}.capital-layer span{font-size:11px}.capital-key{padding-left:15px;border-left:1px solid #456259}.capital-key div{padding:15px 0;border-bottom:1px solid #36554c}.capital-key div:last-child{border:0}.capital-key b{font-size:13px;display:block}.capital-key small{font-size:11px;color:#b5cbc0}.capital-key i{font-style:normal;color:var(--lime);font-size:10px;margin-right:8px}.large-total{font:600 58px var(--display);letter-spacing:-.06em;line-height:1}.large-total small{font:12px var(--sans);margin-left:9px}
.mini-series{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.mini-series>div{border-top:2px solid var(--ink);padding-top:15px}.mini-series .tag{font:10px var(--display);letter-spacing:.1em;color:var(--orange)}.mini-series b{display:block;font-size:14px;margin:9px 0}.mini-series p{font-size:11px;margin:8px 0;color:var(--ink-2);line-height:1.8}.mini-series svg{width:100%;height:90px;margin:12px 0}.mini-series .tiny-icon{height:64px;width:64px;stroke:var(--ink);fill:none;stroke-width:1.6}.process-line{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:35px}.process-line>div{border-top:1px solid #8b9e88;padding-top:22px;position:relative}.process-line>div:before{content:'';width:9px;height:9px;border-radius:50%;background:var(--orange);position:absolute;top:-5px;left:0}.process-line .step{font:600 48px var(--display);color:#94ad9b;line-height:1;margin-bottom:14px}.process-line b{display:block;font-size:14px}.process-line small{font-size:11px;line-height:1.8;display:block;margin-top:10px;color:var(--ink-2)}
.lab{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;margin:28px 0}.lab-controls label{font-size:12px;display:flex;justify-content:space-between;gap:10px;margin-bottom:8px}.lab-controls output{font-family:var(--display);font-weight:700;color:var(--orange)}input[type=range]{display:block;width:100%;accent-color:var(--orange);height:28px;margin:12px 0 24px;cursor:pointer}.metric-value{font:600 68px var(--display);letter-spacing:-.07em;line-height:1.15}.metric-value small{font:14px var(--sans);letter-spacing:0;margin-left:8px}.metric-label{font-size:11px;color:var(--ink-2);margin-bottom:8px}.gauge{height:12px;background:#e4e8db;border-radius:20px;margin:15px 0;position:relative;overflow:hidden}.gauge-fill{height:100%;width:88%;background:#517d66;transition:width .15s,background .15s;border-radius:20px}.gauge-limit{position:absolute;left:90%;top:0;bottom:0;border-right:2px solid #1c463c}.lab-result{background:#edf0e4;padding:24px;border-radius:3px}.result-state{font-size:12px!important;line-height:1.7!important;margin:15px 0 0!important}.lab.is-risk .metric-value{color:#b34c32}.lab.is-risk .gauge-fill{background:#bd6545}.under-gauge{font-size:10px;display:flex;justify-content:space-between;color:var(--ink-2)}.chart-wrap{position:relative}.chart-key{display:flex;gap:18px;font-size:10px;margin:12px 0 20px}.chart-key span:before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:#2e6556;margin-right:6px}.chart-key span:last-child:before{background:#cf6b42}.chart-note{display:flex;align-items:center;gap:15px;background:#eff1e6;padding:16px 20px}.chart-note strong{font:600 34px var(--display);color:var(--orange)}.chart-note span{font-size:12px}.swap-equation{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:18px;font:600 25px var(--display)}.swap-equation span{padding:10px 14px;border-bottom:2px solid #ced3c3}.swap-equation .cancel{color:#98a39a;text-decoration:line-through}.swap-equation b{color:var(--orange)}
.gallery{max-width:1160px;margin:auto;padding:0 44px 80px}.gallery .mast{margin-bottom:50px}.gallery-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:25px}.gallery h1{font-size:clamp(42px,6vw,76px);letter-spacing:-.065em;font-weight:800;line-height:1.22;margin:0}.gallery h1 em{font-style:normal;color:var(--orange)}.gallery-intro p{font-size:13px;max-width:280px;line-height:2}.gallery-art{width:100%;display:block;max-height:480px;object-fit:cover;mix-blend-mode:multiply;margin:25px 0 45px}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.gallery-grid .plate{margin:0}.gallery-grid .plate.wide{grid-column:1/-1}.gallery-grid .plate:not(.wide) .lab{grid-template-columns:1fr;gap:8px}.gallery-grid .plate:not(.wide) .capital-layout{gap:18px}.gallery-grid .plate:not(.wide) .mini-series{gap:12px}.gallery-grid .plate:not(.wide) figcaption{font-size:26px}.gallery-grid .plate:not(.wide) .mini-series b{font-size:12px}.gallery-grid .plate:not(.wide) .process-line{gap:12px}.gallery-bottom{display:flex;justify-content:center;padding:50px 0 0}.reading-progress{position:fixed;left:0;top:0;z-index:20;height:3px;background:var(--orange);width:0;pointer-events:none}
@media(min-width:901px){.plate{margin-left:-10px;margin-right:-10px}}
@media(max-width:1100px){.main{padding:0 32px 70px}.wrap{grid-template-columns:210px minmax(0,1fr)}.side{padding:25px 18px}.hero-deck{gap:20px;flex-wrap:wrap}.plate{padding:27px}.gallery-grid{grid-template-columns:1fr}.gallery-grid .plate.wide{grid-column:auto}.gallery-grid .plate:not(.wide) .lab{grid-template-columns:1fr 1fr}.gallery-grid .plate:not(.wide) .mini-series b{font-size:14px}}
@media(max-width:900px){.wrap{display:block}.main{padding:0 30px 70px}.side{padding:12px 30px;border:0}.side details summary{font-family:var(--sans);font-size:12px;background:transparent;border:1px solid var(--rule);border-radius:99px;padding:6px 16px}.hero-new{padding-top:40px}.hero-new h1{font-size:58px}.mast{padding:16px 0}.prose{max-width:none}.hero-art{margin-left:-15px;margin-right:-15px}}
@media(max-width:580px){.main{padding:0 20px 55px}.side{padding:12px 20px 0}.mast{font-size:9px;letter-spacing:.08em}.mast b{font-size:12px}.hero-new h1{font-size:44px}.hero-deck p{font-size:13px}.hero-new{padding-top:30px}.hero-art{margin-top:20px}.hero-art img{height:280px;object-fit:cover}.hero-art figcaption{font-size:8px}.chapter-route{grid-template-columns:1fr 1fr;gap:20px}.hero-note{font-size:10px}.part{padding-top:60px}.part-title{font-size:30px}.prose h2{font-size:23px;margin-top:55px}.prose h3{font-size:18px}.prose p,.prose li{font-size:14px}.plate{padding:23px 18px;margin:30px 0 38px}.plate figcaption{font-size:25px}.plate .intro{font-size:12px}.plate-top{margin-bottom:22px}.plate-kicker{font-size:9px;letter-spacing:.1em}.capital-layout{gap:18px;grid-template-columns:1fr}.capital-stack{height:245px;margin:0 10px}.capital-key{border-left:0;padding-left:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.capital-key div{border-bottom:0;border-top:1px solid #36554c;padding:12px 0}.capital-key b{font-size:11px}.capital-key small{font-size:10px}.large-total{font-size:49px}.mini-series{grid-template-columns:1fr;gap:23px}.mini-series>div{display:grid;grid-template-columns:1fr 115px;column-gap:15px}.mini-series svg{grid-column:2;grid-row:1/5;margin:0;height:90px}.mini-series .tiny-icon{height:55px;width:55px;justify-self:center;margin-top:12px}.mini-series p{margin:0}.mini-series b{margin:5px 0}.process-line{grid-template-columns:1fr;gap:20px}.process-line>div{display:grid;grid-template-columns:55px 1fr;gap:2px 14px;padding-top:16px}.process-line .step{grid-row:1/3;font-size:35px;margin:0}.process-line small{grid-column:2;margin-top:3px}.process-line b{font-size:13px}.lab{grid-template-columns:1fr;gap:8px}.metric-value{font-size:56px}.lab-result{padding:20px}.lab-controls input{margin-bottom:18px}.swap-equation{font-size:18px;gap:6px;flex-wrap:wrap}.swap-equation span{padding:7px}.gallery{padding:0 18px 50px}.gallery .mast{margin-bottom:30px}.gallery-intro{display:block}.gallery h1{font-size:45px}.gallery-intro p{max-width:100%;font-size:12px}.gallery-art{margin:15px 0 28px;height:250px}.gallery-grid{gap:20px}.gallery-grid .plate:not(.wide) .lab{grid-template-columns:1fr}.gallery-grid .plate:not(.wide) .mini-series b{font-size:14px}.chart-note{gap:12px;padding:12px}.chart-note strong{font-size:28px}.chart-note span{font-size:11px}.diagram .detail{font-size:13px}.diagram .label{font-size:17px}.diagram .en{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.flow-dot,.return-dot{display:none}}
.mobile-flow{display:none}.diagram-frame{width:100%}.mobile-flow text{font-family:var(--sans);fill:var(--ink)}.mobile-flow .label{font-size:16px;font-weight:700}.mobile-flow .detail{font-size:12px;fill:#62716a}.mobile-flow .money-line{stroke:var(--orange);fill:none;stroke-width:2}.mobile-flow .return-line{stroke:#77a797;fill:none;stroke-width:2}
@media(max-width:580px){.mobile-flow{display:block;width:100%;height:auto}.money-scene>.diagram-frame{display:none}.diagram-frame{overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:10px}.diagram-frame .diagram{min-width:540px}.diagram-frame:after{content:'← 左右に動かして図を見る →';display:block;font-size:10px;color:var(--ink-2);margin-top:8px}.dark .diagram-frame:after{color:#b5cbc0}.swap-equation{font-size:14px}}
@media print{.plate{break-inside:avoid;box-shadow:none}.segmented,.lab-controls,.reading-progress{display:none}.main{padding:0}.dark{print-color-adjust:exact;-webkit-print-color-adjust:exact}.gallery-grid{display:block}.hero-art img{max-height:300px}}

/* Long-form chapter navigation should reach its destination immediately. */
html{scroll-behavior:auto}
.money-scene>.diagram-frame:after{display:none}
/* Keep multi-column learning tables readable within their own scroll area. */
.tbl{max-width:100%;overscroll-behavior-x:contain}
@media(max-width:600px){.prose .tbl table{min-width:620px}.tbl:focus-visible{outline:2px solid var(--orange);outline-offset:3px}}

.hero-phrase{white-space:nowrap}
@media(max-width:580px){.hero-phrase{display:block}.hero-phrase+br{display:none}}

/* Comfortable reading sizes for the long-form textbook and its diagrams. */
.prose p,.prose li{font-size:19px;line-height:1.95}
.prose h2{font-size:30px;line-height:1.55}
.prose h3{font-size:23px;line-height:1.6}
.prose h4{font-size:20px}
.prose table{font-size:17px;line-height:1.8}
.prose td,.prose th{padding:16px}
.nav-part>ul a{font-size:15px;line-height:1.65;padding-top:7px;padding-bottom:7px}
.nav-part-link,.brand{font-size:17px}
.hero-deck p{font-size:18px}.pill-link{font-size:16px}
.chapter-route b{font-size:17px}.chapter-route small,.part-meta,.hero-note,.foot p{font-size:15px;line-height:1.85}
.hero-art figcaption{font-size:12px;letter-spacing:.04em;gap:12px;flex-wrap:wrap}
.plate .intro,.plate .caption{font-size:16px;line-height:1.9;max-width:none}
.phase-note{font-size:17px!important;line-height:1.85!important}
.segmented{flex-wrap:wrap;border-radius:24px}.segmented button{font-size:16px;padding:11px 16px}
.plate-kicker,.plate-no{font-size:12px}.plate-top{flex-wrap:wrap}
.capital-key b,.mini-series b,.gallery-grid .plate:not(.wide) .mini-series b,.process-line b{font-size:17px}
.capital-key small,.capital-layer span,.mini-series p,.process-line small{font-size:15px;line-height:1.85}
.lab-controls label,.metric-label,.chart-note span{font-size:16px}
.result-state{font-size:16px!important;line-height:1.85!important}
.under-gauge,.chart-key{font-size:14px;gap:12px;flex-wrap:wrap}
.gallery-intro p{font-size:17px}
.diagram-frame{overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:12px}
.diagram-frame .diagram{min-width:720px}
.diagram .label{font-size:18px}.diagram .detail{font-size:15px}.diagram .en{font-size:12px}
.mobile-flow .label{font-size:19px}.mobile-flow .detail{font-size:16px}
@media(max-width:900px){.side details summary{font-size:16px;padding:9px 18px}}
@media(max-width:600px){
 .prose p,.prose li{font-size:18px;line-height:1.95}
 .prose h2{font-size:26px}.prose h3{font-size:22px}
 .prose .tbl table{min-width:720px;font-size:17px}
 .prose blockquote{padding:18px}.bridge{padding:20px}
 .hero-deck p{font-size:17px}.hero-note{font-size:15px}
 .plate{padding:24px 16px}.plate figcaption{font-size:27px}
 .plate .intro,.plate .caption{font-size:16px}
 .segmented{display:flex}.segmented button{flex:1;padding:10px 8px;font-size:15px;white-space:nowrap}
 .capital-key{grid-template-columns:1fr}.capital-key div{padding:12px 0}
 .mini-series>div{display:block}.mini-series svg{height:100px;max-width:220px;margin:12px 0}
 .mini-series .tiny-icon{margin-bottom:10px}
 .diagram-frame:after{font-size:14px}
 .chart-note{flex-wrap:wrap}.swap-equation{font-size:17px}
}
