/* Chapter 09 only. Load after the existing lesson and shared styles. */
body:is(.solid-lesson,.solid-practice,.solid-toc){
  --bg:#f5f8f7;--paper:#fffefd;--ink:#344d48;--muted:#647c76;
  --green:#427b6c;--deep:#35695e;--line:#dce7e1;--soft:#f0f7f3;
  --ch3-text:var(--ink);--ch3-accent:var(--green);--ch3-border:var(--line);
  --ch3-soft:var(--soft);--ch3-muted:var(--muted);
  --title-teal:var(--green);--title-ink:var(--ink);--title-muted:var(--muted);
  --solid-sans:'Yu Gothic','Hiragino Kaku Gothic ProN','Noto Sans CJK JP','Noto Sans JP',sans-serif;
  --solid-serif:'Yu Mincho','Hiragino Mincho ProN','Noto Serif CJK JP',serif;
  margin:0;background:radial-gradient(ellipse at 15% 0,#fffdf5,transparent 55%),var(--bg)!important;color:var(--ink);
  font-family:var(--solid-sans)!important;font-size:16px;font-weight:500;line-height:1.8;
  color-scheme:light;
}
body:is(.solid-lesson,.solid-practice,.solid-toc) *,
body:is(.solid-lesson,.solid-practice,.solid-toc) *::before,
body:is(.solid-lesson,.solid-practice,.solid-toc) *::after{box-sizing:border-box}
body:is(.solid-lesson,.solid-practice,.solid-toc) [hidden]{display:none!important}
body:is(.solid-lesson,.solid-practice,.solid-toc) :is(button,input,select,textarea){font-family:var(--solid-sans)!important;color:inherit}
body:is(.solid-lesson,.solid-practice,.solid-toc) :is(b,strong){font-weight:600!important}
body:is(.solid-lesson,.solid-practice,.solid-toc) :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #a38d61;outline-offset:4px}
body:is(.solid-lesson,.solid-practice,.solid-toc) :is(a,button,input){touch-action:manipulation;-webkit-tap-highlight-color:transparent}
body:is(.solid-lesson,.solid-practice,.solid-toc) :is(h1,h2,h3){color:var(--ink);font-family:var(--solid-serif)!important;font-weight:500!important;line-height:1.55!important}
body:is(.solid-lesson,.solid-practice,.solid-toc) h1{font-size:clamp(25px,3vw,32px)!important;letter-spacing:.03em!important;margin:4px 0 10px!important}
body:is(.solid-lesson,.solid-practice,.solid-toc) h2{font-size:22px}
body:is(.solid-lesson,.solid-practice,.solid-toc) h3{font-size:19px}
body:is(.solid-lesson,.solid-practice,.solid-toc) .eyebrow{color:var(--green)!important;font-size:12px!important;font-weight:500!important;line-height:1.6!important;letter-spacing:.08em!important;margin-bottom:7px!important}

/* One centered pair of navigation buttons, with the site's line icons. */
body:is(.solid-lesson,.solid-practice,.solid-toc) :is(.solid-top-nav,.global-top-nav,.practice-nav,.site-nav,.unified-top-nav-v56){display:flex!important;justify-content:center!important;align-items:center;gap:10px!important;flex-wrap:wrap;margin:14px auto 18px!important;padding:0 12px!important;background:transparent;border:0;box-shadow:none}
body:is(.solid-lesson,.solid-practice,.solid-toc) :is(.solid-top-nav,.global-top-nav,.practice-nav,.site-nav,.unified-top-nav-v56) a{display:inline-flex!important;align-items:center;justify-content:center;gap:8px;min-height:44px!important;min-width:126px;padding:8px 16px!important;border:1px solid #c7d7cd!important;border-radius:10px!important;background:var(--paper)!important;color:var(--green)!important;font-size:14px!important;font-weight:500!important;line-height:1.6!important;text-decoration:none!important;box-shadow:none!important;transform:none!important;white-space:nowrap}
body:is(.solid-lesson,.solid-practice,.solid-toc) :is(.solid-top-nav,.global-top-nav,.practice-nav,.site-nav,.unified-top-nav-v56) a:hover{background:#eef4ed!important;border-color:#a8c1b0!important}
body:is(.solid-lesson,.solid-practice,.solid-toc) .nav-icon{display:block;width:18px!important;height:18px!important;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
body.solid-lesson .brand{font-size:13px;color:var(--muted);text-align:center;margin:0 0 12px;letter-spacing:.04em}
body.solid-lesson .nav:empty{display:none!important}
body.solid-lesson .solid-skip-link{position:absolute;top:-100px;left:12px;z-index:10000;display:inline-flex;align-items:center;min-height:44px;padding:9px 16px;border:1px solid #c7d7cd;border-radius:10px;background:var(--paper);color:var(--deep);font-size:15px;line-height:1.7;text-decoration:none}
body.solid-lesson .solid-skip-link:focus{top:10px}

/* Keep existing model mechanics and stage dimensions intact. */
body.solid-lesson .wrap{width:min(980px,100%);max-width:980px!important;margin:0 auto;padding:0 18px 24px!important}
body.solid-lesson .card{background:var(--paper)!important;border:1px solid var(--line)!important;border-radius:18px!important;padding:22px!important;margin:0 0 16px!important;box-shadow:0 6px 22px #30484405!important;min-width:0}
body.solid-lesson :is(.lesson-hero,.solid-hero){text-align:center;padding:22px 25px!important}
body.solid-lesson :is(.sub,.note,.rotate-hint){color:var(--muted)!important;font-size:14px!important;font-weight:500!important;line-height:1.8!important}
body.solid-lesson .sub{margin:6px auto 0!important;max-width:760px}
body.solid-lesson .note{margin:12px 0 0!important}
body.solid-lesson .solid-keyboard-note{margin:9px 0 12px;color:var(--muted);font-size:13px;line-height:1.7;text-align:center}
body.solid-lesson :is(.count-status,.stack-status,.step-status,#layerStatus){font-size:13px!important;font-weight:500!important;line-height:1.7!important;color:var(--muted)!important;margin:10px 0 4px!important;letter-spacing:.03em}
body.solid-lesson .flow-guide{padding:10px 12px!important;margin:6px 0 12px!important;background:var(--soft);border-radius:10px;color:var(--muted)!important;font-size:14px!important;font-weight:500!important;line-height:1.8}
body.solid-lesson .quiz{gap:10px}
body.solid-lesson .q{padding:13px 14px!important;margin:10px 0!important;border:1px solid var(--line)!important;border-radius:12px!important;background:#f8faf5!important;min-width:0}
body.solid-lesson .qhead{display:flex;flex-wrap:wrap!important;align-items:center;gap:9px!important;min-height:44px!important}
body.solid-lesson .qtext{min-width:0!important;font-size:16px!important;font-weight:500!important;line-height:1.85!important;white-space:normal!important;color:var(--ink)!important;overflow-wrap:anywhere}
body.solid-lesson :is(.qhead,.q) > .qtext{flex:1 1 100%!important}
body.solid-lesson :is(.qanswer,.ans,.answer-feedback,.feedback){font-size:15px!important;font-weight:500!important;line-height:1.75!important;white-space:normal}
body.solid-lesson :is(.answer-feedback,.feedback).ok{color:var(--deep)}
body.solid-lesson :is(.answer-feedback,.feedback).ng{color:#9a663a}
body.solid-lesson :is(.answer-unit,.layer-chip,.layer-eq,.ab-legend,.surface-legend,.net-chip){font-size:14px!important;font-weight:500!important;line-height:1.7}
body.solid-lesson .stage{background:radial-gradient(ellipse at 50% 25%,#fffefa,#eff5ed);border-radius:14px}
body.solid-lesson :is(svg text,.face,.vertex){font-family:var(--solid-sans)!important;font-weight:500!important}

/* Override old 29–34px compact controls without changing hidden controls. */
body.solid-lesson button{min-height:44px!important;border:1px solid #c4d6ca!important;border-radius:10px!important;padding:8px 14px!important;background:var(--paper);color:var(--green);font-size:15px!important;font-weight:500!important;line-height:1.65!important;box-shadow:none!important}
body.solid-lesson button:hover{filter:none;transform:none;background:#eef4ed}
body.solid-lesson button:disabled{cursor:default;opacity:.5;transform:none!important}
body.solid-lesson :is(.controls,.face-pair-buttons,.unfold-controls,.problem-switch){gap:9px!important;margin-top:12px!important;flex-wrap:wrap}
body.solid-lesson :is(.controls,.problem-switch) button.active,
body.solid-lesson .step.active{background:#eaf2e8!important;border-color:#9ebfa7!important;color:var(--deep)!important}
body.solid-lesson :is(.check-answer,#checkAnswer,.flow-actions button,.solid-primary){background:var(--green)!important;border-color:var(--green)!important;color:#fffefa!important}
body.solid-lesson :is(.check-answer,#checkAnswer,.flow-actions button,.solid-primary):hover{background:var(--deep)!important}
body.solid-lesson :is(.challenge-answer,.q input,.answer-row input){width:108px!important;min-height:44px!important;height:44px!important;padding:7px 10px!important;margin-left:0;border:1px solid #afc8b8;border-radius:9px!important;background:white;font-size:18px!important;font-weight:500!important;line-height:1.4!important;text-align:center}
body.solid-lesson .lesson-quiz :is(.check-answer,.challenge-answer){height:44px!important;min-height:44px!important}
body.solid-lesson .lesson-quiz .check-answer{padding:8px 14px!important;font-size:15px!important;font-weight:500!important;line-height:1.65!important}
body.solid-lesson .challenge{gap:12px}
body.solid-lesson .row{flex-wrap:wrap;gap:9px;padding:13px 0;font-size:16px;line-height:1.8}
body.solid-lesson .row > span:first-child{flex:1 1 100%;min-width:0}
body.solid-lesson .controls{margin-bottom:10px!important}
body.solid-lesson .controls.model-tools{margin:7px 0 10px!important}
body.solid-lesson .lesson{margin-top:20px;padding-top:18px;border-color:var(--line)}
body.solid-lesson .steps{gap:9px}
body.solid-lesson .step.locked{background:#f4f5ef!important;border-color:var(--line)!important;color:#8a9b90!important}
body.solid-lesson :is(.lesson-step,.visual-step,.answer-label,.unfold-title,.mini-title){font-size:15px!important;font-weight:500!important;line-height:1.7!important}
body.solid-lesson :is(.formula,.answer){font-size:19px!important;font-weight:500!important;line-height:1.8!important;overflow-wrap:anywhere}
body.solid-lesson .formula{margin:15px auto 0!important;padding:12px 14px!important;background:#f0f5ed;border-radius:12px}
body.solid-lesson :is(.explain,.step-result,.method-summary,.surface-summary,.summary-box,.keypoint,.answer-box){font-size:16px!important;font-weight:500!important;line-height:1.85!important;padding:14px 16px!important;margin-top:15px!important;border-radius:12px!important}
body.solid-lesson :is(.explain,.step-result,.summary-box){background:var(--soft);color:var(--ink)!important}
body.solid-lesson :is(.calc-card,.chip){font-size:15px!important;font-weight:500!important;line-height:1.8!important;padding:13px 14px!important}
body.solid-lesson .calc-card :is(.name,b){font-size:15px!important;font-weight:600!important}
body.solid-lesson .calc-card .eq{font-size:18px!important;font-weight:500!important}
body.solid-lesson :is(.calc-card small,.surface-summary small,.mini-note,.mini-legend,.net-note,.dim-note,.removed-legend){font-size:13px!important;font-weight:500!important;line-height:1.7!important;color:var(--muted)}
body.solid-lesson .mini-section{padding:13px!important;background:var(--paper)!important;border-color:var(--line)}
body.solid-lesson .mini-note{margin-top:8px}
body.solid-lesson .mini-legend{gap:9px;margin-top:7px}
body.solid-lesson :is(.chapter-pager,.pager){display:flex;justify-content:center;align-items:center;gap:10px!important;flex-wrap:wrap;margin:20px auto 10px!important}
body.solid-lesson :is(.chapter-pager,.pager) :is(a,span){min-height:44px!important;padding:8px 14px!important;font-size:14px!important;font-weight:500!important;line-height:1.7;border-radius:10px!important;background:var(--paper);color:var(--green);border-color:var(--line);text-decoration:none}
body.solid-lesson .lesson-review{width:calc(100% - 36px);max-width:944px;margin:24px auto 28px;padding:22px 25px;background:var(--soft);border-color:var(--line);font-family:var(--solid-sans);font-size:16px;line-height:1.8}
body.solid-lesson .lesson-review h2{font-family:var(--solid-serif);font-size:21px}
body.solid-lesson .lesson-review p{font-size:15px;line-height:1.85}
body.solid-lesson .lesson-review a{font-weight:500;font-size:14px}
body.solid-lesson footer{font-size:13px!important;color:var(--muted);line-height:1.8;margin:20px 0 12px!important;text-align:center}

/* Optional layout hooks: opt in only after identifying each card in HTML. */
body.solid-lesson .solid-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,1fr);gap:18px;align-items:start;width:min(1180px,100%);max-width:1180px!important}
body.solid-lesson .solid-layout > .card{margin:0!important}
body.solid-lesson .solid-hero{grid-column:1/-1;grid-row:1}
body.solid-lesson .solid-model{grid-column:1;grid-row:2/span 2}
body.solid-lesson .solid-problem{grid-column:2;grid-row:2}
body.solid-lesson .solid-work{grid-column:2;grid-row:3}
body.solid-lesson .solid-review{grid-column:1/-1}
body.solid-lesson .solid-layout > :is(footer,.chapter-pager,.pager,.lesson-review){grid-column:1/-1}

/* Opaque faces in face-count mode; edge/vertex modes expose the rear marks. */
body.solid-lesson-01 .face{background:#d4e8da;color:var(--deep);border-color:#71998c}
body.solid-lesson-01 .face.top{background:#e8f2e8}
body.solid-lesson-01 .face.right{background:#b9d6c6}
body.solid-lesson-01 .face.left{background:#c5dfcf}
body.solid-lesson-01 .face.back{background:#b5d0bf}
body.solid-lesson-01 .face.bottom{background:#b9d0be}
body.solid-lesson-01 .face.on{background:#f0dc98}
body.solid-lesson-01:is([data-count-mode="edges"],[data-count-mode="verts"]) .face{opacity:.18}
body.solid-lesson-01[data-count-mode="faces"] .face{opacity:1}

/* The tank keeps its true proportions; its cross-section sits underneath. */
body.solid-lesson-07 .visual-row{grid-template-columns:minmax(0,1fr)!important;gap:12px!important}
body.solid-lesson-07 .visual-row > .stage{height:auto!important;min-height:0!important;aspect-ratio:660/370!important}
body.solid-lesson-07 .mini-section{width:100%;max-width:420px;margin:0 auto}
body.solid-lesson-07 .mini-section svg{width:min(100%,320px)!important;max-width:320px;max-height:none!important;height:auto!important;margin:0 auto}
body.solid-lesson-07 .tank-svg :is(.svg-dim,.inner-dim,#depthMark) text{font-size:17px!important;fill:var(--deep)}
body.solid-lesson-07 .tank-svg .thickness text{font-size:17px!important;fill:#8a7046}
body.solid-lesson-07 .mini-section :is(.mini-red,.mini-dim) text{font-size:17px!important}
body.solid-lesson-07 .mini-section .mini-red text{fill:#927443}
body.solid-lesson-07 .mini-section .mini-dim text{fill:var(--deep)}

/* The worksheet uses the same reading rhythm and paper surfaces. */
body.solid-practice .practice-shell{max-width:1000px;padding:0 18px 40px}
body.solid-practice :is(.practice-header,.question,.start-guide,.practice-record,.bottom-summary){border-color:var(--line);border-radius:18px;background:var(--paper);padding:24px;box-shadow:0 6px 22px #30484405}
body.solid-practice :is(.start-guide,.review-note,.answer-summary){background:var(--soft)}
body.solid-practice .question{margin:22px 0}
body.solid-practice .question-head{gap:13px;margin-bottom:16px}
body.solid-practice .question-number{font-size:18px;font-weight:500;min-width:44px;min-height:44px;background:var(--soft);color:var(--green)}
body.solid-practice :is(.question-level,.small-note,.question-directions,.number-entry-help,.diagram-help){font-size:14px;line-height:1.8;color:var(--muted)}
body.solid-practice :is(.prompt,.solution-body,.answer-summary,.explanation-steps){font-size:16px;line-height:1.85}
body.solid-practice :is(.button,.actions button,.jump-links a,.solution summary){min-height:44px;font-size:15px;font-weight:500;line-height:1.7}
body.solid-practice .button{border-radius:10px;background:var(--paper);border-color:#c4d6ca}
body.solid-practice .button.primary{background:var(--green);border-color:var(--green);color:var(--paper)}
body.solid-practice .answer-field label{font-size:15px;font-weight:500;line-height:1.7}
body.solid-practice .answer-field :is(input,select){min-height:44px;font-size:17px;background:white}
body.solid-practice :is(.field-hint,.answer-unit,.check-feedback){font-size:14px;font-weight:500;line-height:1.8}
body.solid-practice :is(.count-diagram,.wall-parts,.pillar-plan){font-family:var(--solid-sans)}
body.solid-practice .count-figure{background:#fffefa;border-color:var(--line);padding:14px 12px 0}
body.solid-practice figcaption{font-weight:500}
body.solid-practice .page-footer{font-size:13px;color:var(--muted)}

/* Directory changes remain local to Chapter 09 when .solid-toc is present. */
body.solid-toc .toc-shell{width:min(1000px,calc(100% - 36px))}
body.solid-toc :is(.toc-hero,.lesson-card,.print-entry){background:var(--paper);border-color:var(--line);box-shadow:0 6px 22px #30484405}
body.solid-toc :is(.lesson-meta,.level,.toc-footer p){font-size:12px}
body.solid-toc .lesson-title{font-family:var(--solid-serif);font-size:19px;line-height:1.6;font-weight:500}
body.solid-toc .lesson-description{font-size:14px;line-height:1.8;color:var(--muted)}
body.solid-toc .lesson-card{gap:17px;padding:20px;min-height:140px}
body.solid-toc :is(.hero-lead,.learning-route,.chapter-check){line-height:1.85}
body.solid-toc .print-actions a{min-height:44px;font-size:15px;font-weight:500}
body.solid-toc .print-actions a.primary{background:var(--green);border-color:var(--green);color:var(--paper)}

@media(max-width:900px){
  body.solid-lesson .solid-layout{display:flex;flex-direction:column;gap:14px}
  body.solid-lesson .solid-layout > .card{width:100%}
  body.solid-lesson .solid-hero{order:0}
  body.solid-lesson .solid-problem{order:1}
  body.solid-lesson .solid-model{order:2}
  body.solid-lesson .solid-work{order:3}
  body.solid-lesson .solid-review{order:4}
  body.solid-lesson .solid-layout > footer{order:5}
}
@media(max-width:820px){
  body.solid-lesson .solid-layout{grid-template-columns:minmax(0,1.15fr) minmax(310px,1fr);gap:14px}
  body.solid-lesson .solid-layout > .card{padding:18px!important}
}
@media(max-width:700px){
  body:is(.solid-lesson,.solid-practice,.solid-toc) h1{font-size:25px!important;line-height:1.55!important}
  body:is(.solid-lesson,.solid-practice,.solid-toc) h2{font-size:21px}
  body:is(.solid-lesson,.solid-practice,.solid-toc) :is(.solid-top-nav,.global-top-nav,.practice-nav,.site-nav,.unified-top-nav-v56){gap:8px!important;margin:12px auto 16px!important}
  body:is(.solid-lesson,.solid-practice,.solid-toc) :is(.solid-top-nav,.global-top-nav,.practice-nav,.site-nav,.unified-top-nav-v56) a{padding:8px 13px!important;min-width:120px;font-size:14px!important}
  body.solid-lesson .wrap{padding:0 12px 22px!important}
  body.solid-lesson .card{padding:18px 16px!important;margin-bottom:14px!important;border-radius:16px!important}
  body.solid-lesson :is(.lesson-hero,.solid-hero){padding:21px 18px!important}
  body.solid-lesson .solid-layout{display:flex;flex-direction:column;gap:14px}
  body.solid-lesson .solid-layout > .card{width:100%;padding:18px 16px!important}
  body.solid-lesson .solid-hero{order:0}
  body.solid-lesson .solid-problem{order:1}
  body.solid-lesson .solid-model{order:2}
  body.solid-lesson .solid-work{order:3}
  body.solid-lesson .solid-review{order:4}
  body.solid-lesson :is(.calc-cards,.calc-panels){gap:10px}
  body.solid-lesson .calc-cards{grid-template-columns:1fr!important}
  body.solid-lesson :is(.explain,.step-result,.method-summary,.surface-summary,.summary-box,.keypoint,.answer-box){padding:13px 14px!important;font-size:15px!important}
  body.solid-lesson .lesson-review{width:calc(100% - 24px);padding:20px 18px}
  body.solid-practice .practice-shell{padding:0 12px 36px}
  body.solid-practice :is(.practice-header,.question,.start-guide,.practice-record,.bottom-summary){padding:19px 16px;border-radius:16px}
  body.solid-toc .toc-shell{width:calc(100% - 24px)}
  body.solid-toc .lesson-card{padding:17px 16px;min-height:128px}
}
@media(prefers-reduced-motion:reduce){
  body:is(.solid-lesson,.solid-practice,.solid-toc) :is(button,a,.calc-card,.calc-step){transition:none!important}
}
@media print{
  body:is(.solid-lesson,.solid-practice,.solid-toc){background:white!important;color:#000}
  body.solid-lesson :is(.solid-top-nav,.global-top-nav,.unified-top-nav-v56,.chapter-pager,.pager,.controls,.lesson-review){display:none!important}
  body.solid-lesson .card{box-shadow:none!important;break-inside:avoid}
  body.solid-lesson .solid-layout{display:block}
}

/* v155: matte blocks, a lit rim and a separate ground shadow preserve CSS 3D. */
body.solid-lesson-01 .stage{position:relative}
body.solid-lesson-01 .stage::before{content:"";position:absolute;left:50%;bottom:38px;width:230px;height:26px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(ellipse,#557b6333,#557b6314 45%,transparent 72%);filter:blur(5px);pointer-events:none}
body.solid-lesson-01 .face{background:linear-gradient(135deg,#b9d8c6,#79ad92);border-color:#638a71;box-shadow:inset 0 1px 0 #ffffffb3,inset 1px 0 0 #ffffff59}
body.solid-lesson-01 .face.top{background:linear-gradient(145deg,#f2f7ed,#c5dfcf)}
body.solid-lesson-01 .face.right{background:linear-gradient(145deg,#80ae97,#527f69)}
body.solid-lesson-01 .face.left{background:linear-gradient(145deg,#a6ccb6,#739c80)}
body.solid-lesson-01 .face.back{background:linear-gradient(145deg,#97bda5,#68916f)}
body.solid-lesson-01 .face.bottom{background:linear-gradient(145deg,#70947a,#4a715d)}
body.solid-lesson-01 .face.on{background:linear-gradient(145deg,#f9eab0,#e5c66c);border-color:#b3964e}
body.solid-lesson-01 .edge{background:#61836d}
body.solid-lesson-01 .edge.on{background:#d3a642}
