/* Original white / deep green / lime palette. Reading layout is defined once here. */
:root{
 --ink:#173b32;--body:#293f36;--muted:#687a70;--green:#047857;--blue:#047857;
 --teal:#047857;--mint:#047857;--lime:#d5f36b;--yellow:#d5f36b;
 --copper:#ae551c;--line:#dde7e0;--pale:#edf5ef;--paper:#fff;
 --student-paper:#fff;--teacher-paper:#edf7f1;--teacher-line:#b9d6c7;
}
body{background:#fff;color:var(--body)}
/* Let Japanese prose fill the available line instead of balancing phrases. */
h1,h2,h3,h4,h5,p,dd,dt,li,a,span,.bubble{word-break:normal;line-break:strict;text-wrap:wrap;overflow-wrap:break-word}
.chapter-title-row h1,.course-intro h1{max-width:100%}
.avatar{background-image:url('/assets/consultant-portraits.png')}
.avatar.supporting-portrait{background-image:url('/assets/manufacturing-team.png');background-size:200% 200%}
.avatar.morikawa{background-position:0 0}.avatar.ono{background-position:100% 0}
.avatar.takahashi{background-position:0 100%}.avatar.inoue{background-position:100% 100%}
.avatar.counter-portrait{background-image:url('/assets/logistics-tanaka.png');background-size:cover;background-position:center}
.dialogue-role{font-size:.875rem;font-weight:600;line-height:1.6;color:#486957;margin:0 0 8px}
.dialogue .speaker-name{font-size:.875rem;line-height:1.5}
.dialogue.voice-morikawa .bubble,.dialogue.voice-ono .bubble,.dialogue.voice-takahashi .bubble,.dialogue.voice-tanaka .bubble{--teacher-paper:#f4f8ed;--teacher-line:#ccdcbc}
.case-scene{margin:24px 0 8px;padding:8px 0 0}
.case-location{display:flex;align-items:baseline;gap:10px;margin:0 0 22px;color:var(--green);font-size:.875rem;line-height:1.8;font-weight:650}
.case-location:before{content:"";flex:0 0 20px;height:2px;background:var(--green);align-self:center}
.case-narration,.article .case-narration{font-size:1rem;line-height:2;margin:0 0 1.25rem;color:var(--body)}
.case-narration:last-child{margin-bottom:0}
.case-topic>.story-explanation{margin-top:26px;margin-bottom:26px}
.case-resolution{margin:32px 0 30px;padding:24px 0 0;border-top:1px solid var(--line)}
.case-reentry{font-size:.875rem;line-height:1.9;color:var(--muted);margin:12px 0 28px}
.case-scene>.dialogue:last-child,.case-resolution>.dialogue:last-child{margin-bottom:0}
.story-introduction small{display:block;line-height:1.9}
.site-header,.sidebar,.sidebar.open{background:#fff;opacity:1;backdrop-filter:none;border-color:var(--line)}
.brand,.brand-accent{color:var(--ink)}.brand-accent{color:var(--green)}
.brand-mark{background:var(--ink);color:var(--lime)}.brand small{color:var(--muted)}
.menu-button,.nav-close{color:var(--ink);background:#fff;border-color:#cfded5;border-radius:12px;min-height:44px}
.menu-button{align-items:center;justify-content:center;gap:7px}.menu-button svg{vertical-align:middle;flex:none;margin-right:6px}
.header-links,.all-chapters{color:#4c685b}.progress-track{background:#e5eee7}.progress-fill{background:var(--green)}
.eyebrow,.progress-label{color:var(--green)}.course-intro em{color:var(--green)}
.primary-link,.continue-reading span{background:var(--green);color:white;box-shadow:none}.primary-link:hover{background:#056446}
.home-opening{background:#f0f7ed;border:1px solid #d5e5d4;box-shadow:none}
.chapter-pill{background:var(--green);color:#fff;border:0;border-radius:8px}
.chapter-card,.chapter-card.ready,.coming-panel{background:#fff;border:1px solid var(--line);box-shadow:none}
.chapter-card.ready{background:#edf5e9;border-color:#a3c9a2}.chapter-card.ready:hover{background:#e4f0dd}
.ready .chapter-number,.ready .card-bottom,.ready .chapter-category,.chapter-card.ready h2{color:var(--ink)}
.ready .chapter-status{background:var(--lime);color:var(--ink);border:0}.ready p,.card-counts{color:#4a6756}
.ready .card-bottom{border-color:#c8dbc4}.chapter-outline{background:#fff;border-color:var(--line)}
.chapter-outline>summary,.section-map a>span{color:var(--green)}
.section-start{background:#edf5e9;border:1px solid #d2e2ce}.section-no,.section-subject{color:var(--green)}
.mini-index a{background:#fff;border-color:#d5e3d8;color:#43614f}.toc a.active{background:#eaf5e4;color:var(--green)}
.story-introduction{background:#fff;border-color:var(--line)}.story-introduction strong{color:var(--green)}
.story-bridge{border-color:#c9e393;color:#4a644d}.scene-setting,.story-explanation>p{color:var(--body)}
.article h3,.article h4{color:var(--ink)}.article-meta{color:#68806d}.article strong{color:var(--ink);background:linear-gradient(transparent 72%,#dff2a5 72%)}
/* A face and its speech occupy the SAME row; the tail points to the face's centre. */
.dialogue,.dialogue.student,.dialogue.teacher{
 display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:12px;row-gap:0;
 align-items:start;margin:26px 0;
}
.dialogue.teacher{grid-template-columns:minmax(0,1fr) 44px}
.dialogue .speaker,.dialogue.teacher .speaker{
 display:flex;flex-direction:column;justify-content:flex-start;align-items:center;
 width:44px;gap:5px;margin:0;padding:0;font-size:.8125rem;line-height:1.5;color:var(--ink);grid-column:1;grid-row:1;
}
.dialogue.teacher .speaker{grid-column:2}
.dialogue .avatar,.dialogue.teacher .avatar{width:44px;height:44px;border:2px solid #c9dfd0;box-shadow:none;order:0}
.dialogue .speaker>span:last-child{white-space:nowrap}
.dialogue .bubble,.dialogue.student .bubble,.dialogue.teacher .bubble{
 --bubble-fill:var(--student-paper);--bubble-stroke:#d7e3d9;
 grid-column:2;grid-row:1;width:auto;min-width:0;max-width:none;margin:0;
 --tail-top:11px;padding:16px 20px;background:var(--bubble-fill);border:0;
 border-radius:12px;box-shadow:0 2px 8px #183c2d05;position:relative;color:var(--body);
}
.dialogue.teacher .bubble{grid-column:1;--bubble-fill:var(--teacher-paper);--bubble-stroke:var(--teacher-line)}
.dialogue .bubble:before{
 content:"";display:block;position:absolute;inset:0;width:auto;height:auto;
 background:none;border:1px solid var(--bubble-stroke);border-radius:inherit;transform:none;pointer-events:none;
 clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 calc(var(--tail-top) + 21px),2px calc(var(--tail-top) + 21px),2px calc(var(--tail-top) + 1px),0 calc(var(--tail-top) + 1px));
}
.dialogue.teacher .bubble:before{transform:scaleX(-1)}
.dialogue .bubble-tail{
 display:block;position:absolute;width:14px;height:22px;max-width:none;
 left:-12.5px;right:auto;top:var(--tail-top);bottom:auto;transform:none;overflow:visible;
}
.dialogue.teacher .bubble-tail{left:auto;right:-12.5px;transform:scaleX(-1)}
.bubble-tail path{fill:var(--bubble-fill);stroke:var(--bubble-stroke);stroke-width:1;stroke-linejoin:round}
.dialogue .bubble p{margin:0;font-size:1rem;line-height:1.9}.dialogue .bubble p+p{margin-top:13px}
/* Figures retain relationships. Explanatory text sits below dense comparisons. */
.figure{background:#fff;border:1px solid var(--line);box-shadow:none;border-radius:16px;margin:28px 0}
.figure-top{background:#f1f7ed;color:var(--ink);border-bottom:1px solid var(--line);border-radius:15px 15px 0 0;align-items:flex-start;gap:10px;padding:18px 20px 14px}
.figure-top>span:last-child{padding-top:2px}.fig-number{background:var(--green);color:#fff;border:0;flex:none}
.diagram-unified,.diagram-mobile{padding:20px}.diagram-desktop{padding:20px 12px 12px}
.figure figcaption{border-color:var(--line);background:#f7faf5;color:var(--muted);border-radius:0 0 15px 15px;font-size:.875rem;padding:16px 20px}
.story-svg{width:100%;height:auto;display:block;font-family:var(--sans)}.diagram-desktop>.story-svg{max-width:480px;margin:auto}.diagram-mobile>.story-svg{max-width:420px;margin:auto}
.diagram-toggle{background:#fff;border-color:#bfd3c3;color:var(--green);border-radius:10px}.diagram-toggle[aria-pressed=true]{background:#e0f2ad;color:var(--ink)}
.diagram-footnote{font-size:.875rem!important;color:var(--muted);line-height:1.9;margin:16px 0 0!important}
.matrix-axis-labels{display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:space-between;color:#466450;font-size:.875rem;margin-bottom:12px}
.quadrant-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:6px}
.quadrant-table .row-axis{width:2.3rem}
.quadrant-table th{font-size:.875rem;font-weight:650;line-height:1.6;text-align:center;color:#43664e;padding:5px 0;vertical-align:middle}
.quadrant-table th[scope=row]{word-break:normal;overflow-wrap:normal}
.quadrant-table td.quadrant{border:1px solid #c7dcca;border-radius:10px;text-align:center;padding:14px 9px;vertical-align:middle;height:124px;background:#eef6e8}
.quadrant-table td.q-1{background:#e1f2b7}.quadrant-table td.q-2{background:#f3f7ef}.quadrant-table td.q-3{background:#e1efe5}
.quadrant>div{display:grid;justify-items:center;gap:6px}
.quadrant b{font-size:1.125rem;line-height:1.6;font-weight:750;color:var(--ink);background:none}
.quadrant b>span{display:block}.quadrant-letter{font-size:1.875rem;font-weight:750;line-height:1.2;color:var(--green)}
.diagram-key{margin:18px 0 0;padding:0;border-top:1px solid var(--line)}
.diagram-key>div{display:grid;grid-template-columns:minmax(100px,34%) minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid #e5ede6}
.diagram-key dt{font-size:.9375rem;line-height:1.75;font-weight:650;color:#42664b}
.diagram-key dd{margin:0;font-size:.9375rem;line-height:1.8;color:var(--body)}
.paired-head,.paired-row{display:grid;grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);gap:9px;align-items:center}
.paired-head{font-size:1rem;text-align:center;color:var(--green);margin-bottom:10px}
.paired-row{margin:9px 0}.paired-row>div{border:1px solid #d2e1d4;background:#f4f9f0;border-radius:10px;padding:15px 10px;text-align:center;height:100%;display:flex;flex-direction:column;justify-content:center;gap:4px}
.paired-row>div:last-child{background:#eaf4ed}.paired-row b{font-size:1.0625rem;color:var(--ink)}.paired-row small{font-size:.875rem;line-height:1.7;overflow-wrap:normal;color:#5f7864}
.paired-row svg{width:24px;height:24px;color:#649975}
.overview-map{display:grid;gap:10px}.overview-2{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.overview-map>div{border:1px solid #cfe0d2;background:#f0f7ea;border-radius:11px;padding:18px 8px;display:grid;text-align:center;align-content:center;gap:7px}
.overview-map span{font-size:1.125rem;font-weight:750;color:var(--green)}.overview-map b{font-size:1rem;line-height:1.75;color:var(--ink)}.overview-3 span{font-size:.9375rem}.overview-3 b{font-size:1.125rem}
.bsc-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(72px,auto));gap:10px;position:relative;margin:5px 0}
.bsc-lines{position:absolute;inset:0;width:100%;height:100%;color:#96ba9b;z-index:0}
.bsc-map>div{position:relative;z-index:1;background:#edf5e8;border:1px solid #ccdfce;border-radius:10px;padding:14px 6px;display:grid;place-items:center;text-align:center;font-size:1rem;line-height:1.65;font-weight:650;color:var(--ink)}
.bsc-north{grid-area:1/2}.bsc-west{grid-area:2/1}.bsc-center{grid-area:2/2;background:var(--green)!important;color:white!important}.bsc-east{grid-area:2/3}.bsc-south{grid-area:3/2}
.correlation-map>svg{display:block;width:100%;height:auto}.scale-labels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;text-align:center;font-size:.9375rem;color:var(--ink);line-height:1.75}
.adoption-map>svg{width:100%;height:auto;display:block}.adoption-key{padding-left:25px;margin:10px 0 0}.adoption-key li{padding:9px 0;font-size:.9375rem;line-height:1.8;border-bottom:1px solid #e3ece3}.adoption-key li::marker{color:var(--green);font-weight:700}.adoption-key b{float:right;margin-left:10px;color:var(--green)}
/* Generic sibling nodes stay siblings rather than becoming a linear process. */
.m-grid,.m-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.m-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.m-node,.m-frame,.m-branch{border-color:#d5e3d7;background:#fff}.m-node.focus{background:var(--green);border-color:var(--green)}.m-node.focus>span{color:#eaf6ef}
.m-grid .m-node{padding:13px 10px}.m-grid .m-node b{font-size:1rem}.m-grid .m-node>span{font-size:.875rem;color:#587261}
.m-axis,.m-arrow{color:#4f775c}.m-barrier{background:#f5f6dc;border-color:#b9c879;color:#6c722e}
.m-vrio-row>b{background:var(--green)}.m-vrio-row .yes{background:#e1f2aa;color:var(--ink)}.m-vrio-row .no{background:#ecf2eb;color:#667b69}
.terms{background:#fff;border-color:var(--line)}.term{border-color:#e3ece5}.term dt{color:#386c4a}.term dt small{color:#66836e}.term dd{color:var(--body)}
.reading-note,.reading-note.warm{background:#f3f8e4;border-color:#d7e5b8;border-left:3px solid #a4c755;border-radius:12px}.reading-note>b{color:#607a2e}.reading-note p{color:var(--body)}
.concept-comparison{margin:27px 0}.comparison-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.comparison-pair>div{display:grid;align-content:start;text-align:center;gap:8px;padding:19px 14px;background:#eef6e8;border:1px solid #d0e0ca;border-radius:12px}
.comparison-pair>div:last-child{background:#e6f1eb}.comparison-pair b{font-size:1.125rem;line-height:1.65;color:var(--green)}.comparison-pair span{font-size:1rem;line-height:1.75;color:var(--body)}
.comparison-details{margin-top:20px}.comparison-details>section{padding:15px 0;border-bottom:1px solid var(--line)}.comparison-details h4{margin:5px 0 12px}.comparison-details p{margin-bottom:0}.compare-tag{color:#63806a;font-size:.8125rem}
.table-wrap.preserve-table .desktop-table{display:block}.table-wrap.preserve-table .mobile-table{display:none}.data-table{background:#fff;border-color:var(--line)}.data-table th,.data-record h5{background:#ecf5e7;color:var(--ink)}.data-table td,.data-table th{border-color:var(--line)}.data-table tr.highlight td{background:#edf7cd}
.reflection{background:#eef6e4;border:1px solid #d7e7c8;box-shadow:none}.reflection summary small,.reflection summary span{color:var(--green)}.reflection p{border-color:#d2e3bd}.chapter-finish{border-color:#c5dda8}.next-chapter{background:#f4f9ed;border-color:#d9e6cf}.site-footer{border-color:var(--line)}
/* Interactive money flows: outgoing and return arrows terminate at their nodes. */
.diagram-segments{display:flex;gap:6px;padding:4px;margin:0 0 18px;background:#edf4e8;border-radius:11px}
.diagram-segments button{flex:1;min-width:0;background:transparent;border:1px solid transparent;border-radius:8px;padding:9px 8px;min-height:44px;font-size:.875rem;color:#45644d}
.diagram-segments button[aria-pressed=true]{background:#fff;border-color:#c5d9c7;color:var(--green);font-weight:700}
.exchange-node{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;text-align:center;min-height:84px;padding:17px 20px;background:#fff;border:1px solid #cbdccf;border-radius:13px;color:var(--ink)}
.exchange-node strong,.convergence-result strong{font-size:1.25rem;background:none}.node-caption{font-size:.875rem;line-height:1.7;color:#5a7762}
.company-node{background:var(--green);border-color:var(--green);color:#fff}.company-node strong{color:#fff}.company-node .node-caption{color:#ddf3e6}
.exchange-bridge{position:relative;min-height:160px;display:grid}.exchange-bridge>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.exchange-labels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:20px 13%;align-items:center}
.flow-label{text-align:center;position:relative;line-height:1.75;display:grid;justify-items:center;gap:5px;color:var(--green)}.flow-label>span{width:24px;height:24px;display:grid;place-items:center;background:#e1efda;border-radius:50%;font-size:.75rem}.flow-label b{font-size:1rem}.flow-label small{font-size:.8125rem;color:#597261}
.flow-back{color:var(--copper)}.flow-back>span{background:#f7e6d8}.flow-out,.flow-back{transition:opacity .18s}.flow-selected-out svg .flow-back,.flow-selected-back svg .flow-out{opacity:.24}.flow-selected-out .flow-label.flow-out b,.flow-selected-back .flow-label.flow-back b{text-decoration:underline;text-underline-offset:5px}
.article .diagram-reading{margin:17px 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:.875rem;line-height:1.9;color:#53705b}
.convergence-sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.convergence-source{background:#f4f9ef;border:1px solid #cddfce;border-top:3px solid var(--green);border-radius:12px;padding:17px 10px;display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;line-height:1.75}.convergence-source.seeds{border-top-color:var(--copper);background:#faf5e9}.convergence-source>span{color:var(--green);font-size:.875rem;font-weight:700}.convergence-source.seeds>span{color:var(--copper)}.convergence-source strong{font-size:1rem;background:none}.convergence-source small{font-size:.875rem;color:#607666}.convergence-connectors{width:100%;height:90px;display:block}.convergence-result{padding:18px;background:#e3f2d0;border:1px solid #c3dbae;border-radius:12px;text-align:center;display:grid;gap:4px;line-height:1.8}.convergence-result>span{font-size:.875rem;color:#506f47}
@media(max-width:760px){
 .diagram-unified,.diagram-mobile{padding:16px 13px}.figure-top{padding:16px 15px 12px}.figure figcaption{padding:14px 15px}
 .quadrant-table{border-spacing:4px}.quadrant-table .row-axis{width:1.8rem}.quadrant-table td.quadrant{padding:12px 5px;height:116px}.quadrant b{font-size:1rem}.quadrant-letter{font-size:1.7rem}
 .diagram-key>div{grid-template-columns:1fr;gap:4px;padding:11px 0}.diagram-key dt,.diagram-key dd{font-size:.9375rem}
 .paired-head,.paired-row{grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);gap:5px}.paired-row>div{padding:14px 5px}.paired-row svg{width:18px}.paired-row small{font-size:.8125rem}
 .bsc-map{gap:6px;grid-template-rows:repeat(3,minmax(68px,auto))}.bsc-map>div{padding:10px 4px;font-size:.875rem}
 .comparison-pair{gap:9px}.comparison-pair>div{padding:15px 9px}.comparison-pair b{font-size:1rem}.comparison-pair span{font-size:.9375rem}
 .preserve-table .data-table{font-size:.875rem}.preserve-table .data-table th{font-size:.8125rem}.preserve-table .data-table th,.preserve-table .data-table td{padding:10px 6px}
 .exchange-node{gap:4px;flex-direction:column}.exchange-labels{grid-template-columns:1fr;padding:17px 17%;gap:16px}.flow-label{grid-template-columns:24px minmax(0,1fr);column-gap:8px;text-align:left;justify-items:start}.flow-label>span{grid-row:1/3}.flow-label b,.flow-label small{grid-column:2}
}
@media(max-width:560px){
 .reader-main{padding-left:16px;padding-right:16px}.dialogue,.dialogue.student,.dialogue.teacher{grid-template-columns:42px minmax(0,1fr);column-gap:10px;margin:24px 0}.dialogue.teacher{grid-template-columns:minmax(0,1fr) 42px}
 .dialogue .speaker,.dialogue.teacher .speaker{width:42px;font-size:.8125rem}.dialogue .avatar,.dialogue.teacher .avatar{width:42px;height:42px}
 .dialogue .bubble,.dialogue.student .bubble,.dialogue.teacher .bubble{padding:14px 15px}.dialogue .bubble p{font-size:1rem;line-height:1.9}
 .dialogue .bubble,.dialogue.teacher .bubble{--tail-top:10px}
 .overview-3{gap:5px}.overview-3>div{padding:15px 4px}.overview-3 span{font-size:.8125rem}.overview-3 b{font-size:1rem}
 .quadrant-table th{font-size:.8125rem}.matrix-axis-labels{font-size:.8125rem;gap:7px}.paired-head{font-size:.9375rem}.paired-row b{font-size:1rem}
}
@media(max-width:350px){.reader-main{padding-left:13px;padding-right:13px}.dialogue .bubble,.dialogue.teacher .bubble{padding:13px 12px}.quadrant-table td.quadrant{height:108px}.overview-map{gap:6px}.overview-map>div{padding-left:5px;padding-right:5px}}
@media(prefers-reduced-motion:reduce){.flow-out,.flow-back{transition:none}:root{scroll-behavior:auto}}
@media(forced-colors:active){.bubble,.exchange-node,.convergence-source,.quadrant-table td{border-color:CanvasText}.bubble-tail path{fill:Canvas;stroke:CanvasText}.exchange-bridge svg path,.convergence-connectors path{stroke:CanvasText}}
@media print{.bubble-tail{display:none}.dialogue .bubble{box-shadow:none}.dialogue .bubble:before{clip-path:none}.diagram-segments{display:none}.relation-matrix,.paired-map,.bsc-map{break-inside:avoid}}
