/* Portfolio editorial contract v1.1. Load LAST, after project composition styles.
   Exact editorial selectors only: product screens, geometry and controls are excluded. */
:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]){
 --pe-font:'General Sans','Carleen Preview Sans',Arial,sans-serif;
 --pe-ink:#262927;--pe-muted:#59625D;
 --pe-page-title:48px;--pe-opening:20px;--pe-chapter:32px;
 --pe-subheading:24px;--pe-body:18px;--pe-attribution:16px;
 --pf-chapter-gap:120px;--pf-subsection-gap:80px;--pf-paragraph-gap:24px;
 --pf-heading-copy-gap:28px;--pf-first-subheading-gap:32px;--pf-visual-gap:36px;
 --pe-repeat-visual-gap:32px;--pe-caption-gap:10px;
}
/* Keep the same centered reading column without narrowing product interiors. */
#judi-project-preview .pj-main,
#lucid-case-preview[data-project-detail] .page > main,
[data-project-detail].page > main{width:100%;max-width:900px;margin-left:auto;margin-right:auto;min-width:0}

:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) :is(.pj-section,.story[data-pd-section],[data-pd-section],[data-pd-more]){margin-top:var(--pf-chapter-gap)}

:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) :is(.pj-section,.story[data-pd-section],[data-pd-section]) > h2,
#lucid-case-preview[data-project-detail] .pivot-story > h2{
 font:500 var(--pe-chapter)/1.25 var(--pe-font);letter-spacing:-.6px;margin:0;color:var(--pe-ink);
}

/* A parent process heading and its numbered steps share the 24px subheading role. */
:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) :is(.pj-subsection-heading,.pj-stage-heading,.pj-workflow-stage,.pj-demo-intro,.pj-direction-heading,.pj-ai-direction-heading,.p01-figure-heading,.p01-section-divider,.adoption-mobile,.subsection,.direction-heading,.role-copy) > :is(h3,h4),
#lucid-case-preview[data-project-detail] .concept-summary h3,
#judi-project-preview .pj-stage-number{
 font:500 var(--pe-subheading)/1.35 var(--pe-font);letter-spacing:-.3px;margin-top:0;margin-bottom:0;color:var(--pe-ink);
}
#judi-project-preview .pj-stage-number{color:var(--pe-muted)}

:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) :is(.pj-copy,[data-pd-copy]),
#lucid-case-preview[data-project-detail] :is(.story[data-pd-section],.subsection,.p01-section-divider,.p01-figure-heading,.adoption-mobile) > p,
#lucid-case-preview[data-project-detail] .concept-summary p,
#judi-project-preview :is(.pj-direction-rationale,.pj-ai-rationale) p,
[data-project-detail].page .direction-copy p,
[data-project-detail].page .role-copy > p{
 font:400 var(--pe-body)/1.65 var(--pe-font);max-width:none;color:var(--pe-ink);
}
:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) :is(.pj-copy,[data-pd-copy]){margin-top:var(--pf-paragraph-gap)}

/* Each new editorial subsection/stage has exactly one preceding gap. */
#judi-project-preview :is(.pj-subsection,.pj-workflow-stage,.pj-demo-intro,.pj-final-heading),
#lucid-case-preview[data-project-detail] .story > .subsection,
#lucid-case-preview[data-project-detail] .p01-section-divider,
#lucid-case-preview[data-project-detail] .p01-section-divider > :is(.p01-exploration,.subsection),
#lucid-case-preview[data-project-detail] .p01-exploration + .p01-exploration,
#lucid-case-preview[data-project-detail] .adoption-mobile,
[data-project-detail].page .chapter .subsection{
 margin-top:var(--pf-subsection-gap);margin-bottom:0;
}
#lucid-case-preview[data-project-detail] .p01-exploration{margin-bottom:0}
/* Render hosts are the siblings; the figure is nested inside each host. */
#lucid-case-preview[data-project-detail] .p01-section-divider > [data-p01-figure]{display:flow-root;margin:var(--pf-subsection-gap) 0 0}
#lucid-case-preview[data-project-detail] .p01-section-divider > [data-p01-figure] > .p01-exploration{margin:0}
#lucid-case-preview[data-project-detail] .p01-section-divider > #p01-ai-demo{display:flow-root;margin:var(--pf-subsection-gap) 0 0}
#lucid-case-preview[data-project-detail] .p01-figure-heading{display:block;gap:0;margin-top:0;margin-bottom:var(--pf-visual-gap)}
#lucid-case-preview[data-project-detail] .concept-layout.stack{gap:var(--pf-subsection-gap)}
#lucid-case-preview[data-project-detail] .concept-layout.stack .concept-article{margin-top:0;margin-bottom:0}

#judi-project-preview .pj-section > h2 + .pj-subsection,
:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) :is(.pj-section,.story[data-pd-section],[data-pd-section]) > h2 + h3{
 margin-top:var(--pf-first-subheading-gap);
}
#judi-project-preview .pj-final-design > .pj-subsection-heading + .pj-workflow-stage{margin-top:var(--pf-first-subheading-gap)}

/* Text belongs to its heading, including nested steps and final demo introductions. */
:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) :is(.pj-section,.story[data-pd-section],[data-pd-section],.subsection,.adoption-mobile,.p01-section-divider,.p01-figure-heading) > :is(h2,h3,h4) + :is(p,.pj-copy,[data-pd-copy]),
#judi-project-preview .pj-subsection-heading + .pj-copy,
#judi-project-preview .pj-stage-heading + .pj-copy,
#judi-project-preview .pj-workflow-stage > .pj-copy,
#judi-project-preview .pj-demo-intro > .pj-copy{
 margin-top:var(--pf-heading-copy-gap);margin-bottom:0;
}
#lucid-case-preview[data-project-detail] :is(.story[data-pd-section],.subsection,.adoption-mobile,.p01-section-divider) > p + p{margin-top:var(--pf-paragraph-gap)}

#judi-project-preview :is(.pj-micro-slot,.pj-interactive-slot,.pj-subsection > .pj-figure),
#lucid-case-preview[data-project-detail] .subsection > :is(figure,.media,[data-pd-visual],[data-p01-demo]),
[data-project-detail].page .subsection > [data-pd-visual]{margin-top:var(--pf-visual-gap)}
#judi-project-preview .pj-figure + .pj-figure{margin-top:var(--pe-repeat-visual-gap)}

/* Design reasoning remains substantive body text, including its short labels. */
#judi-project-preview :is(.pj-direction-rationale,.pj-ai-rationale) > div > h5,
[data-project-detail].page .direction-copy > div > h4{
 font:500 var(--pe-body)/1.65 var(--pe-font);color:var(--pe-ink);margin:0;
}
#lucid-case-preview[data-project-detail] .concept-summary strong{font-weight:500}
#judi-project-preview :is(.pj-direction-rationale,.pj-ai-rationale) > div > h5 + p,
[data-project-detail].page .direction-copy > div > h4 + p{margin-top:10px}

/* Explicit attribution rule beats figure, citation and standalone-note variations. */
:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) :is([data-pd-attribution],[data-pd-role="attribution"]),
#lucid-case-preview[data-project-detail] figure.quote-note > figcaption,
#lucid-case-preview[data-project-detail] figure.quote-note.standalone-note > figcaption{
 display:block;font:500 var(--pe-attribution)/1.5 var(--pe-font);font-style:normal;
 color:var(--pe-ink);letter-spacing:normal;margin:24px 0 0 34px;padding:0;
}
:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) :is([data-pd-attribution],[data-pd-role="attribution"]) *,
#lucid-case-preview[data-project-detail] figure.quote-note > figcaption *{
 font:inherit;color:inherit;letter-spacing:inherit;
}

#judi-project-preview .pj-figure > figcaption,
#lucid-case-preview[data-project-detail] :is(.diagram,.onboarding-source,.original-roadmap,.p01-exploration) > figcaption,
[data-project-detail].page .media-block > figcaption{
 font:400 13px/1.5 var(--pe-font);color:var(--pe-muted);margin-top:var(--pe-caption-gap);
}

@media(max-width:480px){
 :is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]){
  --pe-page-title:34px;--pe-opening:18px;--pe-chapter:28px;--pe-subheading:22px;--pe-body:17px;
  --pf-chapter-gap:80px;--pf-subsection-gap:56px;--pf-visual-gap:32px;--pe-repeat-visual-gap:24px;
 }
}
/* Opening roles and nested demo title: explicit hosts defeat legacy specificity. */
#judi-project-preview #overview > h1,
#lucid-case-preview[data-project-detail] [data-pd-opening] > h1,
.page[data-project-detail] [data-pd-opening] > h1{font:600 var(--pe-page-title)/1.12 var(--pe-font)}
#judi-project-preview #overview > .pj-description,
#lucid-case-preview[data-project-detail] [data-pd-opening] > .description,
.page[data-project-detail] [data-pd-opening] > .description{font:400 var(--pe-opening)/1.55 var(--pe-font)}
#judi-project-preview .pj-contribution > :is(.pj-value,.pj-contribution-detail),
#lucid-case-preview[data-project-detail] [data-pd-contribution] .value,
.page[data-project-detail] [data-pd-contribution] > .value{font:400 16px/1.55 var(--pe-font)}
#lucid-case-preview[data-project-detail] .p01-section-divider > .subsection > h4{font:500 var(--pe-subheading)/1.35 var(--pe-font);letter-spacing:-.3px;margin:0}
#lucid-case-preview[data-project-detail] .p01-section-divider > .subsection > p{font:400 var(--pe-body)/1.65 var(--pe-font);margin:var(--pf-heading-copy-gap) 0 0}

/* v1.4 shared opening metrics: explicit editorial hooks never reach product KPIs. */
:where(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]){
 --pe-metric-accent:var(--project-metric-accent,var(--pe-ink));
 --pe-metric-number:48px;--pe-metric-unit:30px;--pe-metric-label:19px;--pe-metric-note:14px;
}
#judi-project-preview{--pe-metric-accent:#0B6B63}
#lucid-case-preview[data-project-detail]{--pe-metric-accent:#635DFF}
:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) [data-pd-metric]{min-width:0;border:0;padding:0;background:none;box-shadow:none}
:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) [data-pd-metric] > [data-pd-metric-value]{display:block;font:500 var(--pe-metric-number)/1.12 var(--pe-font);letter-spacing:-1.8px;color:var(--pe-metric-accent);margin:0;white-space:nowrap}
:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) [data-pd-metric-value] > [data-pd-metric-unit]{font:500 var(--pe-metric-unit)/1.12 var(--pe-font);letter-spacing:-1px;color:inherit}
:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) [data-pd-metric] > [data-pd-metric-label]{display:block;font:500 var(--pe-metric-label)/1.3 var(--pe-font);letter-spacing:-.3px;color:var(--pe-ink);margin:14px 0 0}
:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) [data-pd-metric] > [data-pd-metric-note]{display:block;font:400 var(--pe-metric-note)/1.55 var(--pe-font);letter-spacing:normal;color:var(--pe-ink);margin:8px 0 0}
:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) [data-pd-snapshot] > h2{font:500 var(--pe-chapter)/1.25 var(--pe-font);letter-spacing:-.6px;color:var(--pe-ink);margin:0}
:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) [data-pd-snapshot-item] > h3{font:500 var(--pe-subheading)/1.35 var(--pe-font);letter-spacing:-.3px;color:var(--pe-ink);margin:0}
:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) [data-pd-snapshot-label]{display:block;font:500 13px/1.5 var(--pe-font);color:var(--pe-muted);margin:0 0 8px}
:is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) [data-pd-snapshot-outcome]{font:400 var(--pe-body)/1.65 var(--pe-font);color:var(--pe-ink);margin:12px 0 0;max-width:none}
@media(max-width:600px){
 :is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]){--pe-metric-number:40px}
 :is(#judi-project-preview,#lucid-case-preview[data-project-detail],[data-project-detail]) [data-pd-metric] > [data-pd-metric-label]{margin-top:10px}
}
