/* Desktop portfolio typography. Loaded after each case's visual styles.
   Narrative 16 / supporting copy 14 / labels 12. Artwork and embedded demos
   keep their own typography. Section widths and column layouts stay in their
   original case styles. */
body.portfolio-case {
  --portfolio-text-font: "PingFang SC", -apple-system, BlinkMacSystemFont, "Microsoft YaHei", sans-serif;
  --portfolio-h1-size: 64px;
  --portfolio-h2-size: 44px;
  --portfolio-h3-size: 28px;
  --portfolio-lead-size: 20px;
  --portfolio-body-size: 16px;
  --portfolio-small-size: 14px;
  --portfolio-meta-size: 12px;
  font-family: var(--portfolio-text-font);
  font-size: var(--portfolio-body-size);
  font-weight: 400;
  line-height: 1.8;
}
body.portfolio-case h1 { font-size: var(--portfolio-h1-size); font-weight: 700; line-height: 1.1; }
body.portfolio-case h2 { font-size: var(--portfolio-h2-size); font-weight: 700; line-height: 1.25; }
body.portfolio-case h3 { font-size: var(--portfolio-h3-size); font-weight: 600; line-height: 1.4; }
body.portfolio-case :is(.chapter__head, .section-intro, .chapter-head) h2 { font-size: var(--portfolio-h2-size); font-weight: 700; line-height: 1.25; }
body.portfolio-case :is(.hero-lead, .hero__lead, .portfolio-lead) { font-size: 20px; line-height: 1.7; }
body.portfolio-case :is(.eyebrow, .kicker, .case-kicker, .chapter-no, .chapter__index, .scene__index) { font-size: 12px; font-weight: 600; line-height: 1.5; }
body.portfolio-case .arch-index a { font-size: 12px; }
body.portfolio-case .portfolio-footer__inner { font-size: 12px; }

/* Guangdong Rural Credit */
body.portfolio-case--grc .chapter-head h2,
body.portfolio-case--grc .stage-heading h2,
body.portfolio-case--grc .chart-intro-heading h2 { font-size: 44px; line-height: 1.2; font-weight: 700; }

body.portfolio-case--grc .context-intro-row h3,
body.portfolio-case--grc .route-summary h3,
body.portfolio-case--grc .visual-notes h3,
body.portfolio-case--grc .evidence-summary h3 { font-size: 22px; line-height: 1.4; font-weight: 600; }

body.portfolio-case--grc .stage-copy h3,
body.portfolio-case--grc .stage-case-heading h3,
body.portfolio-case--grc .chart-intro-classification h3,
body.portfolio-case--grc .chart-panel-copy h3,
body.portfolio-case--grc .chart-panel--fusion .chart-panel-copy h3 { font-size: 28px; line-height: 1.4; font-weight: 600; }

body.portfolio-case--grc .stage-copy h4 { font-size: 20px; line-height: 1.5; font-weight: 600; }

body.portfolio-case--grc .hero-description,
body.portfolio-case--grc .context-intro-row p,
body.portfolio-case--grc .stage-copy>p:last-child { font-size: 16px; line-height: 1.85; }

body.portfolio-case--grc figcaption,
body.portfolio-case--grc .hero-role,
body.portfolio-case--grc .chapter-footnote,
body.portfolio-case--grc .graph-footnote { font-size: 14px; line-height: 1.7; }

body.portfolio-case--grc .stage-eyebrow,
body.portfolio-case--grc .stage-tab-number,
body.portfolio-case--grc .hero-project>span,
body.portfolio-case--grc .hero-role>span,
body.portfolio-case--grc .stage-scroll-cue { font-size: 12px; line-height: 1.5; }

@media (max-height:760px) {
  body.portfolio-case--grc { --portfolio-h2-size:36px; }
  body.portfolio-case--grc :is(.chapter-head,.stage-heading,.chart-intro-heading) h2 { font-size:36px; }
  body.portfolio-case--grc :is(.stage-copy,.stage-case-heading,.chart-intro-classification,.chart-panel-copy) h3,
  body.portfolio-case--grc .chart-panel--fusion .chart-panel-copy h3 { font-size:26px; }
}

/* UnionPay IOC */
body.portfolio-case--ioc .scene__head h2 { font-size: 36px; line-height: 1.3; font-weight: 600; }

body.portfolio-case--ioc .chapter__intro,
body.portfolio-case--ioc .scene__copy,
body.portfolio-case--ioc .method__note,
body.portfolio-case--ioc .tensions p,
body.portfolio-case--ioc .method-stage__notes p,
body.portfolio-case--ioc .scene-stage__explain p,
body.portfolio-case--ioc .closing__factor p { font-size: 16px; line-height: 1.8; }

body.portfolio-case--ioc .closing__factor h3 { font-size: 22px; line-height: 1.4; font-weight: 600; }

body.portfolio-case--ioc .hero__facts span,
body.portfolio-case--ioc .path-model__node,
body.portfolio-case--ioc .path-media-shell .scene-stage__tab small,
body.portfolio-case--ioc .scene-stage__note,
body.portfolio-case--ioc .film-outline p,
body.portfolio-case--ioc .film-chapters button,
body.portfolio-case--ioc .screen figcaption,
body.portfolio-case--ioc .method-stage figcaption,
body.portfolio-case--ioc .scene-stage__visual figcaption,
body.portfolio-case--ioc .video-caption { font-size: 14px; line-height: 1.7; }

body.portfolio-case--ioc .path-media-shell .scene-stage__tab strong,
body.portfolio-case--ioc .film-outline strong { font-size: 20px; line-height: 1.4; font-weight: 600; }

body.portfolio-case--ioc .hero__facts b,
body.portfolio-case--ioc .hero__scroll,
body.portfolio-case--ioc .tensions b,
body.portfolio-case--ioc .method-stage figcaption b,
body.portfolio-case--ioc .method-stage__notes b,
body.portfolio-case--ioc .path-model__row--head,
body.portfolio-case--ioc .path-model__path b,
body.portfolio-case--ioc .scene-stage__tab span,
body.portfolio-case--ioc .scene-stage__visual figcaption b,
body.portfolio-case--ioc .scene-stage__explain b,
body.portfolio-case--ioc .scene-stage__note b,
body.portfolio-case--ioc .film-outline b,
body.portfolio-case--ioc .video-caption b,
body.portfolio-case--ioc .closing__factor b,
body.portfolio-case--ioc .scene-stage__count { font-size: 12px; line-height: 1.5; font-weight: 600; }

/* Image annotation platform */
body.portfolio-case--image .case-hero__content>p:not(.case-kicker):not(.case-hero__credit) { font-size: 20px; line-height: 1.7; }

body.portfolio-case--image .template-gap h3,
body.portfolio-case--image .template-gap__question p { font-size: 28px; line-height: 1.4; font-weight: 600; font-family: var(--portfolio-text-font); }

body.portfolio-case--image .role-route h3 { font-size: 22px; line-height: 1.4; font-weight: 600; }

body.portfolio-case--image .feature h3,
body.portfolio-case--image .role-state__heading h3 { font-size: 28px; line-height: 1.4; font-weight: 600; }

body.portfolio-case--image .template-gap>div>p:not(.case-kicker),
body.portfolio-case--image .overview-copy>p:not(.case-kicker),
body.portfolio-case--image .feature__copy>p:not(.feature__change),
body.portfolio-case--image .feature__task-intro p,
body.portfolio-case--image .feature__annotation-head p,
body.portfolio-case--image .validation__head>p:not(.case-kicker),
body.portfolio-case--image .outcome__lead,
body.portfolio-case--image .outcome__grid li { font-size: 16px; line-height: 1.8; }

body.portfolio-case--image .case-hero__facts dd,
body.portfolio-case--image .case-hero__credit,
body.portfolio-case--image .goal-strip p,
body.portfolio-case--image .legacy-modules p,
body.portfolio-case--image .template-gap__question small,
body.portfolio-case--image .analysis-path p,
body.portfolio-case--image .role-route p,
body.portfolio-case--image .role-route li,
body.portfolio-case--image .role-state p,
body.portfolio-case--image .structure-map__note,
body.portfolio-case--image .structure-map__branches p,
body.portfolio-case--image .structure-map__branches li,
body.portfolio-case--image .decision-notes dd,
body.portfolio-case--image .validation-route p,
body.portfolio-case--image .operation-guide li p,
body.portfolio-case--image .operation-guide__note,
body.portfolio-case--image .stats-note p,
body.portfolio-case--image .outcome__credit { font-size: 14px; line-height: 1.7; }

body.portfolio-case--image .goal-strip b,
body.portfolio-case--image .analysis-path b,
body.portfolio-case--image .role-state b,
body.portfolio-case--image .structure-map__branches b,
body.portfolio-case--image .validation-route b { font-size: 20px; line-height: 1.4; font-weight: 600; }

body.portfolio-case--image .prototype-evidence figcaption,
body.portfolio-case--image .legacy-prototype figcaption,
body.portfolio-case--image .overview-stage figcaption,
body.portfolio-case--image .feature figcaption,
body.portfolio-case--image .task-pair figcaption,
body.portfolio-case--image .review-frames figcaption,
body.portfolio-case--image .video-actions,
body.portfolio-case--image .operation-guide summary { font-size: 14px; line-height: 1.7; }

body.portfolio-case--image .case-hero__facts dt,
body.portfolio-case--image .goal-strip span,
body.portfolio-case--image .legacy-modules span,
body.portfolio-case--image .prototype-evidence figcaption span,
body.portfolio-case--image .template-gap__question span,
body.portfolio-case--image .analysis-path span,
body.portfolio-case--image .analysis-path em,
body.portfolio-case--image .role-route article>span,
body.portfolio-case--image .role-state li>span,
body.portfolio-case--image .role-state em,
body.portfolio-case--image .overview-path small,
body.portfolio-case--image .feature__copy>span,
body.portfolio-case--image .feature__task-intro>span,
body.portfolio-case--image .feature__annotation-head>span,
body.portfolio-case--image .decision-notes dt,
body.portfolio-case--image .feature__change,
body.portfolio-case--image .validation-route span,
body.portfolio-case--image .operation-guide summary span { font-size: 12px; line-height: 1.5; font-weight: 600; }

body.portfolio-case--image .screen-callouts span { font-size: 12px; line-height: 1.4; font-weight: 600; }

/* QuantSOP */
body.portfolio-case--quant h1 .sub { font-size: 28px; line-height: 1.4; font-weight: 600; }

body.portfolio-case--quant .t-col h3,
body.portfolio-case--quant .decision h3,
body.portfolio-case--quant .dq-body h3 { font-size: 22px; line-height: 1.4; font-weight: 600; }

body.portfolio-case--quant .gov-caps .gc span,
body.portfolio-case--quant .d-method .m-chain { font-size: 20px; line-height: 1.5; font-weight: 600; }

body.portfolio-case--quant .hero-about,
body.portfolio-case--quant .lede,
body.portfolio-case--quant .role-lead,
body.portfolio-case--quant .why-sim,
body.portfolio-case--quant .t-col p,
body.portfolio-case--quant .d-tension,
body.portfolio-case--quant .d-call,
body.portfolio-case--quant .d-method,
body.portfolio-case--quant .layer p,
body.portfolio-case--quant .arch-note,
body.portfolio-case--quant .condition p,
body.portfolio-case--quant .loop-sentence,
body.portfolio-case--quant .cap-table .ct-row>div,
body.portfolio-case--quant .sign li { font-size: 16px; line-height: 1.8; }

body.portfolio-case--quant .hero-env,
body.portfolio-case--quant .dossier .not,
body.portfolio-case--quant .role-head p,
body.portfolio-case--quant .role-col li,
body.portfolio-case--quant .summary .stmt .stmt-note,
body.portfolio-case--quant .gov-caps .gc p,
body.portfolio-case--quant .run-status .rs-note,
body.portfolio-case--quant .ev-tally .tally-note,
body.portfolio-case--quant .before-q li,
body.portfolio-case--quant .t-col .t-foot,
body.portfolio-case--quant .t-after .resp-list li,
body.portfolio-case--quant .decision .d-q,
body.portfolio-case--quant .d-trade>div,
body.portfolio-case--quant .ho-row,
body.portfolio-case--quant .ho-caption,
body.portfolio-case--quant .d-method .m-seq-note,
body.portfolio-case--quant .human-band p,
body.portfolio-case--quant .flow-note,
body.portfolio-case--quant .tl-node p,
body.portfolio-case--quant .ev-blocked-banner .ev-cn,
body.portfolio-case--quant .ev-switch .ev-sw-note,
body.portfolio-case--quant .response-row p,
body.portfolio-case--quant .dq-end,
body.portfolio-case--quant .raw-note,
body.portfolio-case--quant .ev-step p,
body.portfolio-case--quant .ev-end p,
body.portfolio-case--quant .portfolio-phase-note { font-size: 14px; line-height: 1.7; }

body.portfolio-case--quant .fnode h4,
body.portfolio-case--quant .flow-main .fnode h4,
body.portfolio-case--quant .tl-node h4,
body.portfolio-case--quant .ticket h4,
body.portfolio-case--quant .ev-step h4,
body.portfolio-case--quant .sign h4 { font-size: 16px; line-height: 1.4; font-weight: 600; }

body.portfolio-case--quant .fnode p,
body.portfolio-case--quant .fcell-tag p { font-size: 14px; line-height: 1.6; }

body.portfolio-case--quant .fnode.n-blocked .b-desc { font-size: 12px; line-height: 1.5; font-weight: 600; }

body.portfolio-case--quant .hero-q3-label,
body.portfolio-case--quant .hero-meta .seal,
body.portfolio-case--quant .tag,
body.portfolio-case--quant .dossier-head,
body.portfolio-case--quant .dossier-head .stamp,
body.portfolio-case--quant .dossier-foot,
body.portfolio-case--quant .hero-toc a,
body.portfolio-case--quant .hero-toc a b,
body.portfolio-case--quant .my-act b,
body.portfolio-case--quant .role-tag,
body.portfolio-case--quant .r-label,
body.portfolio-case--quant .gov-caps .gc b,
body.portfolio-case--quant .run-status .rs-tag,
body.portfolio-case--quant .rs-stat span,
body.portfolio-case--quant .sec-num,
body.portfolio-case--quant .t-col .t-label,
body.portfolio-case--quant .decision .d-tag,
body.portfolio-case--quant .d-trade span,
body.portfolio-case--quant .d-stance,
body.portfolio-case--quant .ho-tag,
body.portfolio-case--quant .ho-seq,
body.portfolio-case--quant .ho-row span,
body.portfolio-case--quant .layer .l-num,
body.portfolio-case--quant .layer .l-badge,
body.portfolio-case--quant .machine-head,
body.portfolio-case--quant .path-tag b,
body.portfolio-case--quant .flow-legend,
body.portfolio-case--quant .fnode .who,
body.portfolio-case--quant .fcell-tag b,
body.portfolio-case--quant .fc-label,
body.portfolio-case--quant .tl-node .tl-time,
body.portfolio-case--quant .dq-head,
body.portfolio-case--quant .badge-blocked,
body.portfolio-case--quant .ev-event span,
body.portfolio-case--quant .ev-sw-label,
body.portfolio-case--quant .condition span,
body.portfolio-case--quant .response-row span,
body.portfolio-case--quant .ticket span,
body.portfolio-case--quant .raw-kicker,
body.portfolio-case--quant .raw-head p,
body.portfolio-case--quant .raw-file,
body.portfolio-case--quant .raw-foot,
body.portfolio-case--quant .raw-foot span,
body.portfolio-case--quant .ev-step .ev-num,
body.portfolio-case--quant .cap-table .ct-row.ct-head,
body.portfolio-case--quant .cap-table .ct-row.ct-head>div,
body.portfolio-case--quant .sign .s-role,
body.portfolio-case--quant .sign .s-line { font-size: 12px; line-height: 1.5; font-weight: 600; }

body.portfolio-case--quant .dossier dd .dd-en,
body.portfolio-case--quant .dossier dd .dd-proof { font-size: 12px; line-height: 1.6; }

/* Bangyang education */
body.portfolio-case--bangyang .chapter-head .intro { font-size: 16px; line-height: 1.8; }

body.portfolio-case--bangyang .chapter-head .intro.portfolio-lead { font-size: 20px; line-height: 1.7; }

body.portfolio-case--bangyang .backend-phase-head h3,
body.portfolio-case--bangyang .problem-list h3,
body.portfolio-case--bangyang .upgrade-grid h3,
body.portfolio-case--bangyang .timeline h3 { font-size: 22px; line-height: 1.4; font-weight: 600; }

body.portfolio-case--bangyang .story-description h3,
body.portfolio-case--bangyang .surface-case-intro h3,
body.portfolio-case--bangyang .delivery-process-head h3 { font-size: 28px; line-height: 1.4; font-weight: 600; }

body.portfolio-case--bangyang .evolution-line p,
body.portfolio-case--bangyang .annotation-list li,
body.portfolio-case--bangyang .boundary-flow article p,
body.portfolio-case--bangyang .design-focus-rail p,
body.portfolio-case--bangyang .compact-shift p,
body.portfolio-case--bangyang .mini-map-head>p,
body.portfolio-case--bangyang .module-design-proof p,
body.portfolio-case--bangyang .upgrade-grid p,
body.portfolio-case--bangyang .delivery-line>div p,
body.portfolio-case--bangyang .timeline p,
body.portfolio-case--bangyang .surface-case-intro>div:last-child>p,
body.portfolio-case--bangyang .crm-surface-copy p { font-size: 16px; line-height: 1.8; }

body.portfolio-case--bangyang .hero-meta dt,
body.portfolio-case--bangyang .role-boundary,
body.portfolio-case--bangyang .hero-note,
body.portfolio-case--bangyang .map-note,
body.portfolio-case--bangyang .architecture-figure figcaption,
body.portfolio-case--bangyang .evidence figcaption,
body.portfolio-case--bangyang .status-row>button,
body.portfolio-case--bangyang .manual-hint,
body.portfolio-case--bangyang .interaction-tip,
body.portfolio-case--bangyang .old-evidence .footnote,
body.portfolio-case--bangyang .family-foot,
body.portfolio-case--bangyang .result-footnote,
body.portfolio-case--bangyang .evidence-note,
body.portfolio-case--bangyang .hero-terminal-copy p,
body.portfolio-case--bangyang .compact-timeline span,
body.portfolio-case--bangyang .screen-annotation-key span,
body.portfolio-case--bangyang .boundary-task-list,
body.portfolio-case--bangyang .governance-layer p,
body.portfolio-case--bangyang .module-capabilities li,
body.portfolio-case--bangyang .blueprint-decisions p { font-size: 14px; line-height: 1.7; }

body.portfolio-case--bangyang .lane-track p,
body.portfolio-case--bangyang .platform-track p,
body.portfolio-case--bangyang .business-systems p,
body.portfolio-case--bangyang .governance-system p,
body.portfolio-case--bangyang .governance-system span,
body.portfolio-case--bangyang .touchpoint-track article span,
body.portfolio-case--bangyang .blueprint-foundation p,
body.portfolio-case--bangyang .mini-map-label span,
body.portfolio-case--bangyang .mini-entry-items small,
body.portfolio-case--bangyang .mini-support-items small,
body.portfolio-case--bangyang .mini-core-track>button small,
body.portfolio-case--bangyang .mini-stage-flow small,
body.portfolio-case--bangyang .family-module-tabs em { font-size: 14px; line-height: 1.6; }

body.portfolio-case--bangyang .lane-label b,
body.portfolio-case--bangyang .portal-entry b,
body.portfolio-case--bangyang .stage-kicker b,
body.portfolio-case--bangyang .touchpoint-row>header b,
body.portfolio-case--bangyang .touchpoint-track article b,
body.portfolio-case--bangyang .blueprint-foundation b,
body.portfolio-case--bangyang .blueprint-decisions b,
body.portfolio-case--bangyang .surface-screen-index b,
body.portfolio-case--bangyang .mini-stage-flow b { font-size: 16px; line-height: 1.4; font-weight: 600; }

body.portfolio-case--bangyang .stage-tag,
body.portfolio-case--bangyang .stage-output small,
body.portfolio-case--bangyang .service-transfer span,
body.portfolio-case--bangyang .lane-label small,
body.portfolio-case--bangyang .lane-track span,
body.portfolio-case--bangyang .portal-entry span,
body.portfolio-case--bangyang .stage-kicker span,
body.portfolio-case--bangyang .case-framing small,
body.portfolio-case--bangyang .evolution-stage-change small,
body.portfolio-case--bangyang .evolution-example i,
body.portfolio-case--bangyang .evolution-line .evolution-source,
body.portfolio-case--bangyang .system-portal small,
body.portfolio-case--bangyang .architecture-connector,
body.portfolio-case--bangyang .governance-system small,
body.portfolio-case--bangyang .business-flow small,
body.portfolio-case--bangyang .decision-proof span,
body.portfolio-case--bangyang .name-rule,
body.portfolio-case--bangyang .subsystem-name-proof>small,
body.portfolio-case--bangyang .flow-step>span,
body.portfolio-case--bangyang .design-focus-rail small,
body.portfolio-case--bangyang .story-switch button span,
body.portfolio-case--bangyang .shift-decisions span,
body.portfolio-case--bangyang .loop-bridge small,
body.portfolio-case--bangyang .mini-map-label small,
body.portfolio-case--bangyang .mini-visual-card>span,
body.portfolio-case--bangyang .mini-visual-card>small,
body.portfolio-case--bangyang .mini-visual-card>em,
body.portfolio-case--bangyang .mini-loopback,
body.portfolio-case--bangyang .learning-map-feedback,
body.portfolio-case--bangyang .module-capabilities small,
body.portfolio-case--bangyang .module-design-proof small,
body.portfolio-case--bangyang .family-module-tabs span,
body.portfolio-case--bangyang .evidence-led-delivery small,
body.portfolio-case--bangyang .evidence-led-delivery a,
body.portfolio-case--bangyang .hero-proof-card small,
body.portfolio-case--bangyang .hero-proof-card em,
body.portfolio-case--bangyang .hero-task-summary small,
body.portfolio-case--bangyang .blueprint-side-label small,
body.portfolio-case--bangyang .journey-strip li i,
body.portfolio-case--bangyang .journey-strip li span,
body.portfolio-case--bangyang .touchpoint-row>header small,
body.portfolio-case--bangyang .touchpoint-row>header span,
body.portfolio-case--bangyang .touchpoint-track article small,
body.portfolio-case--bangyang .blueprint-foundation>span,
body.portfolio-case--bangyang .blueprint-decisions article>span,
body.portfolio-case--bangyang .hero-terminal header span,
body.portfolio-case--bangyang .hero-terminal header em,
body.portfolio-case--bangyang .hero-data-link b,
body.portfolio-case--bangyang .hero-data-link small,
body.portfolio-case--bangyang .surface-screen-index>span,
body.portfolio-case--bangyang .surface-screen-index small,
body.portfolio-case--bangyang .crm-surface-copy small { font-size: 12px; line-height: 1.5; font-weight: 600; }

body.portfolio-case--bangyang #family .mini-stage-flow span { font-size: 12px; line-height: 1.5; font-weight: 600; }

body.portfolio-case--bangyang #family .mini-stage-flow small,
body.portfolio-case--bangyang #family .family-demo-exit p { font-size: 14px; line-height: 1.6; }

body.portfolio-case--bangyang .hero-terminal-copy { height:auto; min-height:112px; }
/* Remaining interaction labels and compact diagram headings. */
body.portfolio-case--image .operation-guide li b { font-size:16px; line-height:1.5; font-weight:600; }
body.portfolio-case--image .operation-guide li b::before { font-size:12px; }
body.portfolio-case--quant :is(.path-tag,.raw-foot span) { font-size:12px; line-height:1.5; }
body.portfolio-case--quant :is(.ho-status,.ev-event p) { font-size:16px; line-height:1.6; font-weight:600; }
body.portfolio-case--quant :is(.ev-switch .ev-sw-on,.ev-switch .ev-sw-off,.t-after .resp-list li b) { font-size:14px; line-height:1.6; }
body.portfolio-case--bangyang :is(.lane-track,.platform-track,.business-systems,.governance-system) h3 { font-size:20px; line-height:1.4; font-weight:600; }
body.portfolio-case--bangyang :is(.permission-switch button b,.story-switch button b,.design-focus-rail b,.flow-step strong,.compact-shift strong) { font-size:16px; line-height:1.5; font-weight:600; }
body.portfolio-case--bangyang :is(.permission-switch button span,.ui-marker,.status,.wecom-save-toast,.compact-shift small,.loop-bridge>span,.learning-map-axis span,.upgrade-grid span,.delivery-line>div span,.result-strip b,.compact-timeline span b) { font-size:12px; line-height:1.5; }
body.portfolio-case--bangyang .hero-meta dd { font-size:16px; line-height:1.7; }
body.portfolio-case--bangyang .name-rule { font-size:14px; line-height:1.7; }
/* Narrative paragraphs revealed by the final source audit. */
body.portfolio-case--bangyang :is(.blueprint-head>p,.real-evidence-head p,.design-case-label p,.delivery-notes p,.delivery-process-head>p) { font-size:16px; line-height:1.8; }
body.portfolio-case--bangyang :is(.design-case-label b,.blueprint-head b,.delivery-notes b) { font-size:20px; line-height:1.4; font-weight:600; }
body.portfolio-case--bangyang :is(.design-case-label > span,.blueprint-head small) { font-size:12px; line-height:1.5; }
body.portfolio-case--quant :is(.dossier dd .dd-proof,.d-stance,.raw-head p,.raw-foot p) { font-size:14px; line-height:1.7; }
body.portfolio-case--quant :is(.closing-sub,.foot-flex .foot-meta) { font-size:12px; line-height:1.6; }
@media (min-height:761px) {
  body.portfolio-case--grc .stage-chapter { --stage-heading-height:calc(18px + 18px + var(--grc-chapter-title-size)*1.2); }
}

/* Keep dates aligned with the timeline arrows after the common type rules load. */
body.portfolio-case--bangyang .compact-timeline-track > span > b { line-height:20px; }
body.portfolio-case .portfolio-mark__brand span,
body.portfolio-case .portfolio-footer__brand { font-size:12px; line-height:1.5; }
