.diag-article { max-width: 1120px; padding-block: 26px 56px; }
.diag-hero { max-width: 940px; margin: 24px auto 30px; text-align: center; }
.diag-hero h1 { font-size: clamp(34px, 5.2vw, 62px); line-height: 1.1; margin: 16px 0 18px; }
.diag-deck { font: 24px/1.4 var(--serif); max-width: 780px; margin: 0 auto 22px; }
.diag-hero .perex { max-width: 810px; margin-inline: auto; font-size: 19px; line-height: 1.7; }
.diag-byline { font-size: 14px; color: var(--muted); margin-top: 22px; }
.diag-cover { margin: 24px 0 30px; }
.diag-cover img { width: 100%; height: auto; border: 1px solid var(--line); }
.diag-cover figcaption { max-width: 810px; margin: 12px auto 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.diag-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-bottom: 30px; }
.diag-summary > div { padding: 20px; background: #f8f0df; border: 1px solid var(--line); border-top: 3px solid var(--wine); min-width: 0; }
.diag-summary strong { display: block; font: bold 21px/1.3 var(--serif); margin-bottom: 8px; }
.diag-summary p { font-size: 15px; line-height: 1.6; }
.diag-layout { display: grid; grid-template-columns: 190px minmax(0,750px); gap: 42px; justify-content: space-between; align-items: start; }
.diag-toc { position: sticky; top: 24px; border-top: 3px solid var(--wine); padding-top: 14px; font-size: 15px; }
.diag-toc ol { padding: 0; margin: 10px 0; list-style: none; }
.diag-toc a { display: block; padding: 10px 0; min-height: 44px; border-bottom: 1px solid var(--line); text-decoration: none; }
.diag-toc a:hover { text-decoration: underline; color: var(--wine); }
.diag-prose { min-width: 0; font-size: 19px; line-height: 1.8; overflow-wrap: break-word; }
.diag-prose p { margin: 0 0 20px; }
.diag-section { padding: 28px 0 12px; border-top: 1px solid var(--line); }
.diag-prose .diag-chapter { color: var(--wine-dark); font: bold 12px/1.6 var(--mono); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 9px; }
.diag-prose h2 { font-size: clamp(28px,3vw,36px); margin-bottom: 22px; line-height: 1.2; }
.diag-prose h3 { font-size: 22px; margin: 28px 0 12px; }
.diag-prose a { overflow-wrap: anywhere; }
.diag-prose .source-ref { font-size: 14px; white-space: nowrap; color: var(--wine-dark); }
.diag-aside, .diag-comment { background: #f8efdd; border-left: 4px solid var(--bronze); padding: 20px 24px; margin: 24px 0 !important; font-size: 17px; line-height: 1.7; }
.diag-aside h3 { margin-top: 0; }
.diag-aside p:last-child { margin-bottom: 0; }
.diag-ownership { margin: 30px 0; padding: 24px; border: 1px solid var(--line); background: #f7eedb; }
.diag-ownership figcaption { text-align: center; }
.diag-ownership figcaption strong { display: block; font: bold 22px/1.4 var(--serif); }
.diag-ownership figcaption span, .diag-ownership > p { display: block; font-size: 14px; line-height: 1.6; margin-top: 12px; }
.diag-ownership ol { list-style: none; padding: 0; margin: 20px auto; max-width: 500px; }
.diag-ownership li { position: relative; padding: 12px; text-align: center; border: 1px solid var(--line); background: #fff8ec; margin-bottom: 26px; }
.diag-ownership li:last-child { margin-bottom: 0; }
.diag-ownership li:not(:last-child)::after { content: '↓'; position: absolute; top: 100%; left: calc(50% - 8px); line-height: 26px; color: var(--muted); }
.diag-ownership .diag-lux { border-left: 4px solid var(--wine); background: #f2e4d5; }
.diag-ownership li strong { display: block; font-size: 17px; line-height: 1.5; }
.diag-ownership li span { display: block; font-size: 14px; line-height: 1.5; }
.diag-steps { padding-left: 25px; margin: 25px 0; }
.diag-steps li { padding: 0 0 16px 8px; }
.diag-timeline { list-style: none; padding: 0; margin: 28px 0; }
.diag-timeline li { position: relative; display: grid; grid-template-columns: 125px minmax(0,1fr); gap: 18px; padding: 0 0 25px 20px; border-left: 2px solid var(--line); }
.diag-timeline li::before { content: ''; position: absolute; left: -6px; top: 9px; width: 10px; height: 10px; border-radius: 50%; background: var(--wine); }
.diag-timeline time { color: var(--wine-dark); font: bold 14px/1.6 var(--sans); padding-top: 3px; }
.diag-timeline h3 { font: bold 18px/1.4 var(--sans); margin: 0 0 8px; }
.diag-timeline p { font-size: 16px; line-height: 1.65; margin: 0; }
.diag-timeline .diag-future { border-left-style: dashed; }
.diag-interest { padding: 24px; border-block: 2px solid var(--bronze); margin: 26px 0; background: #f8efdd; }
.diag-interest .diag-interest-value { font: 24px/1.6 var(--serif); margin-bottom: 10px; }
.diag-interest p:last-child { font-size: 14px; line-height: 1.6; margin: 0; }
.diag-positions { display: grid; gap: 12px; margin-bottom: 26px; }
.diag-positions article { padding: 18px 22px; border: 1px solid var(--line); background: #f7eedb; }
.diag-positions h3 { margin: 0 0 8px; }
.diag-positions p { margin: 0; font-size: 17px; }
.diag-satire { margin-top: 20px; padding: 28px; border: 1px solid var(--line); border-top: 4px solid var(--wine); background: #f4e7cc; }
.diag-satire .diag-punchline { color: var(--wine-dark); font: 26px/1.45 var(--serif); margin-bottom: 0; }
.diag-promise { margin-top: 32px; padding: 26px; border: 1px solid var(--line); background: #faf2e1; }
.diag-promise h2 { font-size: 28px; margin-top: 10px; }
.diag-promise p { font-size: 17px; }
.diag-sources { margin-top: 34px; }
.diag-sources ol { padding-left: 24px; font-size: 15px; line-height: 1.65; }
.diag-sources li { padding: 12px 0 14px 6px; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
.diag-sources li:target { background: #fff3ce; outline: 2px solid var(--bronze); outline-offset: 3px; }
.diag-sources small { display: block; font-size: 14px; color: var(--muted); }
.diag-prose .diag-method { font-size: 14px; color: var(--muted); }
@media(max-width: 900px) {
 .diag-layout { display: block; }
 .diag-toc { position: static; margin-bottom: 24px; }
 .diag-toc ol { display: flex; flex-wrap: wrap; gap: 0 20px; }
 .diag-prose { max-width: 750px; margin-inline: auto; }
}
@media(max-width: 600px) {
 .diag-article { padding-top: 18px; }
 .diag-hero { text-align: left; }
 .diag-deck { font-size: 22px; }
 .diag-hero .perex, .diag-prose { font-size: 18px; }
 .diag-summary { grid-template-columns: 1fr; gap: 10px; }
 .diag-summary > div { padding: 15px 18px; }
 .diag-summary strong { margin-bottom: 5px; }
 .diag-timeline li { grid-template-columns: 1fr; gap: 7px; }
 .diag-satire, .diag-promise, .diag-ownership, .diag-aside, .diag-comment, .diag-interest { padding: 18px; }
 .diag-interest .diag-interest-value { font-size: 22px; }
}
