/* One reading surface per case: context, direct sources, then the room's question. */
.discussion { grid-template-columns: minmax(320px, .9fr) minmax(420px, 1.2fr); }
.context { padding-top: 18px; }
/* Pull quotes remain part of the reading surface, with a source for each excerpt. */
.context-quotes { margin: 22px 0 0; padding: 2px 0 2px 18px; border-left: 2px solid var(--ornament); }
.context-quote { margin: 0; }
.context-quote + .context-quote { margin-top: 18px; }
.context-quote blockquote { margin: 0; }
.context-quote blockquote p { margin: 0; color: var(--ink); font: italic 19px/1.4 var(--serif); }
.context-quote:first-child blockquote p { font-size: 23px; }
.context-quote figcaption { margin-top: 8px; font: 11px/1.4 var(--sans); color: var(--muted); }
.context-quote cite { font-style: normal; }
.context-quote a { color: inherit; text-decoration-color: var(--moulding); text-underline-offset: 3px; }
.context-quote a:hover { color: var(--ink); text-decoration-color: currentColor; }
@media (min-width:1700px) {
  .context-quote blockquote p { font-size: 23px; }
  .context-quote:first-child blockquote p { font-size: 27px; }
  .context-quote figcaption { font-size: 13px; }
}
@media (max-height:780px) and (min-width:1001px) {
  .context-quotes { margin-top: 16px; padding-left: 15px; }
  .context-quote + .context-quote { margin-top: 12px; }
  .context-quote blockquote p { font-size: 18px; line-height: 1.35; }
  .context-quote:first-child blockquote p { font-size: 21px; }
  .context-quote figcaption { margin-top: 6px; }
}
.discussion-points { margin: 16px 0 0; padding-left: 20px; color: var(--ink); font-size: 17px; line-height: 1.4; }
.discussion-points li + li { margin-top: 7px; }
.discussion-points li::marker { color: var(--muted); }
.source-list { width: 100%; margin-top: 22px; }
.risk-sources { width: 100%; margin-top: 25px; }
.risk-sources h3 { color: var(--ink); font-weight: 500; }
.risk-sources .source-list { margin-top: 10px; }
@media (min-width:1001px) {
  body:not(.focus-mode) .discussion:has(.risk-sources) .question-card { align-self: start; min-height: 440px; position: sticky; top: 24px; }
}
.source-link {
  display: grid; grid-template-columns: minmax(0, 1fr) auto 20px; gap: 12px;
  align-items: center; padding: 11px 0;
  border-top: 1px solid var(--line);
  text-decoration: none; color: var(--ink); font-size: 15px; line-height: 1.35;
}
.source-link:last-child { border-bottom: 1px solid var(--line); }
.source-title { text-decoration: underline; text-decoration-color: var(--moulding); text-underline-offset: 4px; }
.source-format { font: 10px/1.3 var(--sans); color: var(--muted); letter-spacing: .5px; text-transform: uppercase; }
.source-arrow { color: var(--accent); font-size: 18px; line-height: 1; text-align: right; }
.source-link:hover { color: var(--accent); }
.source-link:hover .source-title { text-decoration-color: currentColor; }
.discussion-footer { display: flex; align-items: center; gap: 30px; border-top: 1px solid var(--line); padding-top: 14px; }
.context-primer { flex: 1; margin: 0; max-width: 1050px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.context-primer .eyebrow { display: inline; margin-right: 12px; font-size: 9px; color: var(--ink); }
.focus-mode .discussion-footer { display: none; }
.map-links { padding: 0; color: var(--ink); font: inherit; text-decoration: underline; text-underline-offset: 4px; }
:root[data-theme] .links-nav { position: sticky; top: 0; z-index: 3; background: var(--paper); }
.links-shell { padding: 38px 4.3vw 60px; }
.links-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 42px; }
.links-heading h1 { font: 400 clamp(44px, 4vw, 68px)/1.05 var(--serif); margin: 9px 0 14px; letter-spacing: -1px; }
.links-heading p { color: var(--muted); font-size: 17px; line-height: 1.5; }
.links-heading>.eyebrow { padding-bottom: 5px; white-space: nowrap; }
.showcase-shell { min-height: calc(100svh - 204px); padding-top: 28px; padding-bottom: 36px; }
.showcase-shell .links-heading { margin-bottom: 24px; }
.showcase-shell .links-heading h1 { font-size: clamp(36px, 3.2vw, 54px); margin-bottom: 0; }
.showcase-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 20px; }
.showcase-entry { position: relative; min-width: 0; padding: clamp(22px, 2vw, 32px); border: 1px solid var(--line); background: var(--soft); }
.showcase-entry>.eyebrow { margin-bottom: 12px; }
.showcase-entry h2 { font-weight: 400; }
.showcase-title { display: inline-grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 16px; max-width: 100%; font: 400 clamp(28px, 2.4vw, 40px)/1.2 var(--serif); color: var(--ink); text-decoration: none; }
.showcase-title:hover { color: var(--accent); }
.showcase-name { text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: var(--moulding); text-underline-offset: 8px; }
.showcase-title:hover .showcase-name { text-decoration-color: currentColor; }
.showcase-arrow { font-family: var(--sans); font-size: .65em; }
.showcase-logo { display: grid; place-items: center; width: 58px; height: 58px; border: 1px solid #827b7230; border-radius: 5px; box-shadow: inset 0 0 0 4px #ffffff26; }
.showcase-logo--vora { background: #e5d1d5; }
.showcase-logo--spiral { background: #d9dfeb; }
.showcase-logo--hoseki { background: #ede4c6; }
.showcase-logo--bumbei { background: #f0e2bc; }
.showcase-logo img { display: block; width: 42px; height: 42px; object-fit: contain; filter: saturate(.65); opacity: .85; }
.showcase-logo--hoseki img { width: 38px; height: 38px; }
@media (max-width:600px) {
  .showcase-title { gap: 12px; }
  .showcase-logo { width: 58px; height: 58px; }
  .showcase-logo img { width: 42px; height: 42px; }
  .showcase-logo--hoseki img { width: 38px; height: 38px; }
}
.showcase-summary { margin-top: 16px; color: var(--muted); font-size: clamp(17px, 1.25vw, 21px); line-height: 1.55; }
.showcase-feature { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); column-gap: 36px; align-items: center; align-content: center; }
.showcase-feature>.eyebrow { grid-column: 1; grid-row: 1; }
.showcase-feature>h2 { grid-column: 1; grid-row: 2; }
.showcase-feature>.showcase-summary { grid-column: 2; grid-row: 1 / span 2; margin-top: 0; }
@media (max-width:760px) {
  .showcase-grid { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; }
  .showcase-feature { display: block; }
  .showcase-feature>.showcase-summary { margin-top: 16px; }
}
.links-section { border-top: 1px solid var(--line); padding-top: 24px; margin-top: 36px; }
.links-section-heading { display: flex; align-items: baseline; gap: 16px; margin-bottom: 24px; }
.links-numeral { min-width: 36px; color: var(--muted); font: 400 23px/1 var(--serif); }
.links-section-heading h2 { font: 400 34px/1.15 var(--serif); }
.links-section-heading>.eyebrow { margin-left: auto; font-size: 10px; }
.links-table { width: 100%; border-collapse: collapse; table-layout: fixed; text-align: left; }
.links-title-column { width: 40%; }
.links-table th { font-weight: 400; }
.links-table thead th { padding: 0 0 14px; font: 500 10px/1.4 var(--sans); color: var(--muted); letter-spacing: 1.5px; text-transform: uppercase; }
.links-case-heading th { padding: 24px 0 12px; border-top: 1px solid var(--line); color: var(--muted); font: 500 13px/1.5 var(--sans); }
.links-entry>th,.links-entry>td { padding: 20px 0; border-top: 1px solid var(--line); vertical-align: top; }
.links-entry>th { padding-right: 48px; }
.links-table .source-link { display: inline-flex; align-items: baseline; gap: 12px; padding: 0; border: 0; font-size: 18px; line-height: 1.4; }
.links-table .source-title { overflow-wrap: anywhere; }
.links-table .source-arrow { flex-shrink: 0; }
.links-table .source-format { display: block; margin-top: 8px; }
.link-summary { color: var(--muted); font-size: 17px; line-height: 1.6; overflow-wrap: anywhere; }
@media (min-width:1700px) {
  .discussion-points { font-size: 21px; }
  .links-table .source-link { font-size: 22px; }
  .link-summary { font-size: 21px; }
  .links-case-heading th { font-size: 16px; }
}
@media (max-width:700px) {
  .links-table,.links-table tbody,.links-table tr,.links-table th,.links-table td { display: block; width: 100%; }
  .links-table colgroup { display: none; }
  .links-table thead { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .links-entry { padding: 20px 0; border-top: 1px solid var(--line); }
  .links-entry>th,.links-entry>td { padding: 0; border: 0; }
  .links-entry>.link-summary { margin-top: 12px; }
}
@media (max-width:600px) {
  .links-shell { padding: 30px 5vw 45px; }
  .links-heading { align-items: flex-start; flex-direction: column; gap: 16px; margin-bottom: 30px; }
  .links-section-heading h2 { font-size: 29px; }
}
@media (min-width:1700px) {
  .source-link { font-size: 19px; padding: 13px 0; }
  .source-format { font-size: 11px; }
  .context-primer { font-size: 16px; max-width: 1400px; }
  .context-primer .eyebrow { font-size: 11px; }
}
@media (max-height:780px) and (min-width:1001px) {
  .discussion-points { margin-top: 12px; font-size: 16px; line-height: 1.35; }
  .discussion-points li + li { margin-top: 5px; }
  .context:has(.discussion-points) .source-list { margin-top: 12px; }
  .context:has(.discussion-points) .source-link { padding-top: 7px; padding-bottom: 7px; }
  .topic-shell { gap: 16px; padding-top: 18px; padding-bottom: 16px; }
  .context { padding-top: 14px; }
  .context h2 { margin: 13px 0; font-size: 31px; }
  .context .capsule { font-size: 17px; line-height: 1.45; }
  .source-list { margin-top: 16px; }
  .source-link { font-size: 14px; padding: 9px 0; }
  .source-format { font-size: 9px; }
  .risk-sources { margin-top: 20px; }
  .risk-sources .source-list { margin-top: 8px; }
  body:not(.focus-mode) .discussion:has(.risk-sources) .question-card { min-height: 370px; }
  .context-primer { font-size: 12px; }
  .discussion-footer { padding-top: 12px; }
}
@media (max-width:1000px) {
  .discussion { grid-template-columns: minmax(0, 1fr); }
  .source-list { max-width: 100%; }
  .discussion-footer { align-items: flex-start; }
}
@media (max-width:600px) {
  .source-link { gap: 9px; grid-template-columns: minmax(0,1fr) auto 20px; font-size: 14px; padding: 12px 0; }
  .source-format { font-size: 9px; letter-spacing: 0; }
  .discussion-footer { flex-direction: column; gap: 16px; }
}
@media print {
  .source-link { color: black; }
}
