/* Common reading rules for cases 01–04. Product artwork and demonstrations stay untouched. */
body.portfolio-case .project-facts { --facts-line:rgba(37,39,43,.16); --facts-label:#62656c; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin:32px 0 0; padding:24px 0; border-top:1px solid var(--facts-line); border-bottom:1px solid var(--facts-line); }
body.portfolio-case .project-facts > div { min-width:0; }
body.portfolio-case .project-facts dt { margin:0 0 8px; font-family:inherit; font-size:12px; font-weight:600; line-height:1.5; color:var(--facts-label); }
body.portfolio-case .project-facts dd { margin:0; font-family:inherit; font-size:14px; line-height:1.7; color:inherit; }
body.portfolio-case--ioc .project-facts,
body.portfolio-case--image .project-facts,
body.portfolio-case--grc .project-facts { --facts-line:rgba(225,235,245,.22); --facts-label:#c7cbd2; color:#e7e7ea; }
body.portfolio-case--image .project-facts { max-width:900px; }
/* A chapter always reads label → heading → introduction. */
body.portfolio-case--bangyang .chapter-head,
body.portfolio-case--ioc .chapter__head,
body.portfolio-case--grc .chapter-head,
body.portfolio-case--grc .stage-heading,
body.portfolio-case--grc .chart-intro-heading { display:grid; grid-template-columns:minmax(0,1fr); gap:0; align-items:start; }
body.portfolio-case--ioc .chapter__head > div { min-width:0; }
body.portfolio-case--bangyang .chapter-head .chapter-no,
body.portfolio-case--ioc .chapter__head .chapter__index,
body.portfolio-case--grc :is(.chapter-head,.stage-heading,.chart-intro-heading) > .eyebrow { margin:0 0 16px; padding:0; font-size:12px; line-height:1.5; }
body.portfolio-case--bangyang .chapter-head h2,
body.portfolio-case--ioc .chapter__head h2,
body.portfolio-case--grc :is(.chapter-head,.stage-heading,.chart-intro-heading) h2 { max-width:none; margin:0 0 16px; }
body.portfolio-case--bangyang .chapter-head .intro,
body.portfolio-case--ioc .chapter__head .chapter__intro,
body.portfolio-case--grc .chapter-head > p:not(.eyebrow),
body.portfolio-case--grc .chart-intro-lead { max-width:none; margin:0; font-size:16px; line-height:1.8; }
/* Captions name the image; long explanations use the body-text rhythm. */
body.portfolio-case--bangyang .evidence figcaption,
body.portfolio-case--ioc :is(.method-stage__full,.scene-stage__visual) figcaption,
body.portfolio-case--grc .entry-demo figcaption { font-size:14px; line-height:1.7; }
body.portfolio-case--grc .chart-case-explanation { margin-top:16px; font-size:16px; line-height:1.8; text-align:left; }
body.portfolio-case--ioc .scene-stage__explain { padding-top:24px; }
body.portfolio-case--ioc .scene-stage__explain p { max-width:none; font-size:16px; line-height:1.8; }
@media(max-width:900px) {
 body.portfolio-case .project-facts { grid-template-columns:1fr; gap:16px; }
 body.portfolio-case .project-facts > div { display:grid; grid-template-columns:80px minmax(0,1fr); gap:16px; align-items:baseline; }
 body.portfolio-case .project-facts dt { margin:0; }
}
