/* ==========================================================================
   article.css — shared by estimating-image.html and art-papers.html (2026-10-22).
   Loaded after styles.css; never changes index/variant pages. Same tokens, same grid.
   ========================================================================== */

/* ---------- language switch EN / DE ----------
   Blocks carry data-lang="en|de"; the page root carries data-lang (set in <head> before paint).
   Wrappers are display:contents so they never break the 12-column grid. */
.lang-blk { display: contents; }
html[data-lang="en"] body [data-lang="de"],
html[data-lang="de"] body [data-lang="en"] { display: none !important; }
.toggle [data-setlang] { cursor: pointer; }
.toggle [data-setlang][aria-current] { text-decoration: underline; text-underline-offset: .2em; }
.toggle [aria-disabled="true"] { color: var(--c-mute); cursor: not-allowed; }

/* ---------- head block ---------- */
.a-head { padding-top: var(--s2); padding-bottom: var(--s2); row-gap: 0; }
.a-head .hero__label { grid-row: auto; }
.a-head__title { grid-column: 1 / span 10; padding-top: var(--s2); }
.a-head__title.t-display { font-size: calc(var(--fs-h1) * 2); line-height: calc(var(--base) * 6); letter-spacing: var(--ls-hero); text-wrap: balance; text-decoration: underline; text-decoration-thickness: .025em; text-underline-offset: .06em; } /* chapter-opener scale (144 px), wraps, never fitted */
@media (max-width: 1024px) { .a-head__title { grid-column: 1 / -1; } .a-head__title.t-display { line-height: calc(var(--base) * 4); } }
.outro__credits span { max-width: 42em; }
.a-head__sub { grid-column: 1 / span 8; padding-top: var(--s2); }
.a-head__meta { grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; padding-top: var(--s2); row-gap: var(--s1); }
.a-head__byline { grid-column: 1 / span 6; border-top: var(--rule); padding-top: 8px; }
.a-head__attr { grid-column: 7 / -1; border-top: var(--rule); padding-top: 8px; display: grid; gap: var(--s1); align-content: start; }
.a-head__note { grid-column: 1 / span 6; }
.a-head__xlink { grid-column: 7 / -1; }
.a-head__xlink a, .a-xlink a { border-bottom: 1px solid currentColor; }
@media (max-width: 1024px) {
  .a-head__sub, .a-head__byline, .a-head__attr, .a-head__note, .a-head__xlink { grid-column: 1 / -1; }
}

/* ---------- chapter body: long text under the heading, right half (Obys: text block on exact columns) ---------- */
.article .principle__body { grid-column: 7 / span 6; grid-row: 3; margin-top: var(--s2); max-width: 62ch; }
.article .principle__body p:not(.t-label) { hanging-punctuation: first; }
@media (max-width: 1024px) { .article .principle__body { grid-column: 2 / -1; grid-row: auto; } }
@media (max-width: 640px)  { .article .principle__body { grid-column: 1 / -1; } }
.article .principle__body em { font-style: italic; }

/* quotation status tag + source refs (data register) */
.qstatus { font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: var(--ls-label); color: var(--c-mute); white-space: nowrap; }
.section--dark .qstatus { color: #9A9A9A; }
.qstatus[data-status="verified"] { color: inherit; }
.ref { font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: var(--ls-label); white-space: nowrap; }
.ref:hover { background: var(--c-accent); color: #000; text-decoration: none; }
code { font-family: var(--font-mono); font-size: inherit; letter-spacing: 0; overflow-wrap: anywhere; }
/* label-size text blocks keep the audit's 85-character measure (42.5 em) */
.a-head .t-label p, .a-head p.t-label, .pull__src, .sources li > span, .rows.quotes .src, .paper__meta p, .paper__meta dd, .figcaps li, .unverified li, .principle__body p.t-label { max-width: 42em; }

/* pull-quote = one .rows entry */
.rows.pull { margin-block: var(--s1); }
.rows.pull li { display: grid; gap: 8px; padding-block: var(--s1); }
.pull__q { font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: var(--ls-h2); }

/* image blocks: variants of .map */
.map--strip figure { aspect-ratio: auto; }
.map--strip figure img { height: auto; object-fit: contain; }
.map--auto figure { aspect-ratio: auto; }
.map--auto figure img { height: auto; object-fit: contain; }
.map--pair figure.f-portrait { grid-column: 5 / span 3; aspect-ratio: 9 / 19.5; }
.map--pair figure.f-portrait img { object-position: top; }
.map--pair figure.f-wide { grid-column: 8 / -1; grid-row: 1; }
@media (max-width: 1024px) {
  .map--pair figure.f-portrait { grid-column: 1 / span 4; grid-row: 1; }
  .map--pair figure.f-wide { grid-column: 1 / -1; grid-row: 2; }
  .map--pair .caption { grid-row: 3; }
  .map + .map--strip { padding-top: var(--s1); }
}
@media (max-width: 640px) { .map--pair figure.f-portrait { grid-column: 1 / span 3; } }

/* thesis 13 (one .theses row, DE + EN) */
.article .theses { margin-top: var(--s2); }
.theses .thesis h3 .en { display: block; margin-top: 8px; text-transform: none; color: var(--c-mute); }
.section--dark .theses .thesis h3 .en { color: #9A9A9A; }
.theses .thesis p + p { margin-top: var(--s1); }

/* appendix quotes: .rows entries (quote / source) */
.rows.quotes { grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; margin-top: var(--s2); }
.rows.quotes li { grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; row-gap: 8px; padding-block: var(--s1); }
.rows.quotes .q { grid-column: 3 / span 6; max-width: 62ch; }
.rows.quotes .src { grid-column: 10 / -1; }
.rows.quotes .n { grid-column: 1 / span 2; }
@media (max-width: 1024px) { .rows.quotes .n { grid-column: 1 / span 1; } .rows.quotes .q, .rows.quotes .src { grid-column: 2 / -1; } }
@media (max-width: 640px)  { .rows.quotes li > * { grid-column: 1 / -1 !important; } }
.notes { grid-column: 3 / span 6; display: grid; gap: var(--s1); margin-top: var(--s2); max-width: 62ch; }
@media (max-width: 1024px) { .notes { grid-column: 2 / -1; } }
@media (max-width: 640px)  { .notes { grid-column: 1 / -1; } }

/* sources */
.sources { grid-column: 3 / -1; margin-top: var(--s2); }
.sources li { display: grid; grid-template-columns: 6em minmax(0, 1fr); column-gap: var(--gutter); border-top: var(--rule); padding-block: 8px 6px; overflow-wrap: anywhere; }
.sources li:last-child { border-bottom: var(--rule); }
.sources li:target { background: color-mix(in srgb, var(--c-accent) 35%, transparent); }
.sources .sid { font-variant-numeric: tabular-nums; }
.sources a { border-bottom: 1px solid currentColor; }
.unverified { grid-column: 3 / -1; margin-top: var(--s2); display: grid; gap: 8px; }
.unverified ul li { border-top: var(--rule); padding-block: 8px 6px; }
@media (max-width: 1024px) { .sources, .unverified { grid-column: 1 / -1; } }
@media (max-width: 640px)  { .sources li { grid-template-columns: 1fr; } }

/* ---------- art papers ---------- */
.paper .principle__body { grid-column: 7 / span 6; grid-row: 3; margin-top: var(--s2); max-width: 62ch; }
@media (max-width: 1024px) { .paper .principle__body { grid-column: 2 / -1; grid-row: auto; } }
@media (max-width: 640px)  { .paper .principle__body { grid-column: 1 / -1; } }
.paper__meta { min-width: 0; grid-column: 1 / span 5; grid-row: 3; margin-top: var(--s2); display: grid; gap: var(--s1); align-content: start; }
.paper__meta .specs { display: block; }
.paper__meta .specs > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); column-gap: var(--gutter); border-top: var(--rule); padding: 8px 0 6px; overflow-wrap: anywhere; }
.paper__meta .specs > div:last-child { border-bottom: var(--rule); }
.paper__thumb { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); column-gap: var(--gutter); align-items: end; }
.paper__thumb img { width: 100%; height: auto; border: var(--rule); }
.paper__links { display: grid; gap: 4px; }
.paper__links a { border-bottom: 1px solid currentColor; width: fit-content; max-width: 100%; overflow-wrap: anywhere; }
@media (max-width: 1024px) { .paper__meta { grid-column: 1 / -1; grid-row: auto; } }
.paper__sub { margin-bottom: var(--s1); }
/* figure rows: several printed figures side by side, uncropped */
.map figure.figrow { aspect-ratio: auto; display: flex; gap: var(--gutter); align-items: flex-start; flex-wrap: wrap; background: none; }
.map figure.figrow img { height: auto; width: auto; max-width: 100%; max-height: 70vh; flex: 1 1 0; min-width: 0; object-fit: contain; }
@media (max-width: 640px) { .map figure.figrow img { flex-basis: 100%; max-height: none; } }
.map .caption ol.figcaps li { border-top: var(--rule); padding: 8px 0 6px; }
.map .caption ol.figcaps li:last-child { border-bottom: var(--rule); }
