/* Companion pages share the established paper, ink and oak design. Scoped to
   these two routes; the approved homepage and material header are untouched. */
/* Reuse the homepage's continuous, non-tiling papyrus and its light veils.
   Component panels retain their own legibility surfaces. */
.companion-page, .paper-page {
  --paper-image: url("/assets/paper-void-1672.webp");
  min-height: 100vh;
  background-color: #faf7f0;
  background-image: linear-gradient(90deg, transparent, rgba(255,253,248,.18) 28%, rgba(255,253,248,.18) 72%, transparent), linear-gradient(rgba(255,253,248,.5), rgba(255,253,248,.5)), var(--paper-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
@media (max-width: 1200px) { .companion-page, .paper-page { --paper-image: url("/assets/paper-void-1200.webp"); } }
@media (max-width: 600px) { .companion-page, .paper-page { --paper-image: url("/assets/paper-void-800.webp"); } }
@media (forced-colors: active) { .companion-page, .paper-page { background: Canvas; color: CanvasText; } }
.companion-page .interior { padding-block: clamp(2.5rem,6vw,5rem); }
.companion-page .interior :is(h1,h2) { font-weight: 550; line-height: 1.16; }
.companion-page .interior :is(h1,h2) em { font-family: inherit; font-style: normal; font-weight: 400; }
.companion-page .interior h1 { font-size: clamp(2.5rem,4.5vw,4.5rem); }
.companion-page .interior :is(p,li) { line-height: 1.75; }
.companion-page .interior .lede { max-width: 55ch; color: #4b5563; }
.companion-intro { display: grid; grid-template-columns: 1.04fr 1fr; gap: clamp(2rem,5vw,4rem); align-items: center; }
.companion-intro > * { min-width: 0; }
.companion-art { margin: 0; padding: .625rem; background: #ece8df; border: 1px solid #cbb67b; box-shadow: 0 10px 24px #07182b0d; }
.companion-art img { width: 100%; height: auto; }
.companion-art figcaption { padding: .75rem .25rem .15rem; font-size: .75rem; color: #4b5563; }
.companion-page .section-navigation { padding: 1rem 0; margin-top: 2.5rem; border-block: 1px solid #d5d4cd; gap: .25rem 2rem; }
.companion-page .section-navigation a { display: inline-flex; align-items: center; min-height: 48px; font-size: .9375rem; }
.companion-page .interior-grid { gap: clamp(1.5rem,6vw,5rem); }
.companion-page .interior-grid > * { min-width: 0; }
.companion-page .status-panel { border-left: 3px solid #a48b58; background: #ece8df; }
.companion-page .tool-card { background: #fffdf8; border: 1px solid #d5d4cd; padding: 1.5rem; min-width: 0; }
.companion-page .tool-card h3 { font-size: 1.5rem; }
.companion-page .tool-card .text-link { align-self: start; margin-bottom: 1rem; }
.companion-page .tool-card .tool-status { display: block; }
.companion-page .related { padding-top: clamp(2rem,4vw,3.5rem); margin-top: clamp(3rem,6vw,5rem); }
.companion-page .text-link { display: inline-flex; align-items: center; min-height: 48px; font-size: 1rem; }
.companion-page .section-label { margin-bottom: 1.5rem; }
.companion-page .site-footer nav a { display: inline-flex; align-items: center; min-height: 48px; }
.companion-page .footer-brand { font-family: inherit; font-size: 1rem; }
.companion-page .interior :is(a,button,textarea,label,h1,h2,h3) { overflow-wrap: anywhere; }
.brief-intro { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem,6vw,5rem); }
.companion-page .project-brief { background: #fffdf8; border: 1px solid #d5d4cd; padding: clamp(1.25rem,4vw,3rem); }
.brief-disclosure { border-top: 1px solid #d5d4cd; margin-top: 1rem; }
.brief-disclosure summary { padding: 1.25rem .125rem; cursor: pointer; font-weight: 600; min-height: 48px; }
.brief-disclosure summary:focus-visible { outline: 3px solid #175db0; outline-offset: 3px; }
.brief-fields { display: grid; gap: 1.5rem; padding-top: .75rem; }
.brief-field label { display: flex; align-items: baseline; gap: .75rem; font-weight: 600; font-size: 1.125rem; }
.brief-field p { margin: .5rem 0 .75rem; color: #4b5563; }
.brief-field textarea,.brief-result textarea { width: 100%; min-width: 0; max-width: 100%; padding: 1rem; border: 1px solid #8b877e; border-radius: 2px; color: #07182b; background: #fffdf8; resize: vertical; font: inherit; line-height: 1.7; scroll-margin-block: 2rem; }
.brief-field textarea:focus-visible,.brief-result textarea:focus-visible { outline: 3px solid #175db0; outline-offset: 3px; }
.brief-field textarea[aria-invalid="true"] { border: 2px solid #964422; }
.brief-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; margin-top: 1.25rem; }
.brief-actions[hidden],.brief-result[hidden] { display: none; }
.text-button { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; border: 1px solid #a48b58; border-radius: 2px; padding: .625rem 1rem; background: transparent; color: #0b2347; cursor: pointer; font: inherit; }
.text-button:hover { background: #ece8df; }
.brief-status { margin: 1rem 0 0; min-height: 1.75em; font-size: .9375rem; }
.brief-result { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid #d5d4cd; }
.brief-result > label { display: block; font-weight: 600; margin-bottom: .75rem; }
.brief-result > .quiet { margin-top: .75rem; }
.project-brief .quiet { font-size: .875rem; }
.applications-intro { padding: clamp(2rem,5vw,4rem); background: linear-gradient(100deg,#fffdf8ee,#fffdf8b8); border: 1px solid #d5d4cd; }
.applications-intro h1 { max-width: 19ch; }
.applications-intro .lede { margin-bottom: 0; }
.application-routes > section { padding: 2rem; border: 1px solid #d5d4cd; background: #fffdf8; }
.application-routes > .status-panel { background: #ece8df; border-left: 3px solid #a48b58; }
.application-village { display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(1.5rem,6vw,5rem); align-items: start; }
.application-village h2 { grid-row: 1 / 3; }
.application-village > .text-link { justify-self: start; }
@media (max-width: 800px) {
 .companion-intro,.brief-intro,.application-village { grid-template-columns: minmax(0,1fr); }
 .companion-page .interior h1 { font-size: clamp(2.5rem,8.5vw,3.5rem); }
 .companion-page .section-navigation { gap: .25rem 1.25rem; margin-top: 2rem; }
 .companion-page .section-navigation a { font-size: .875rem; }
 .companion-art { max-width: 40rem; }
 .applications-intro { padding: 1.5rem; }
 .application-routes > section { padding: 1.5rem; }
 .application-village h2 { grid-row: auto; }
 .companion-page .status-panel .button { white-space: normal; text-align: left; }
}
@media (max-width: 360px) {
 .brief-actions { flex-direction: column; align-items: stretch; }
 .brief-actions > * { width: 100%; justify-content: center; }
 .companion-page .project-brief { padding: 1rem; }
}
@media (forced-colors: active) {
 .companion-art,.applications-intro,.companion-page .status-panel,.companion-page .tool-card,.project-brief,.text-button,.brief-field textarea,.brief-result textarea { background: Canvas; color: CanvasText; border-color: CanvasText; }
 .brief-field textarea[aria-invalid="true"] { border-color: Highlight; }
}
/* Keep an unavailable download hidden even though normal text links are flex. */
.companion-page [data-brief-download][hidden] { display: none; }

/* Open resource collection; no fabricated inventory or download action. */
.companion-page .village-resource-list { margin-top:1.75rem; }
.companion-page .village-resource-row + .village-resource-row { border-top:0; }
.companion-page .village-resource-row { display:grid; grid-template-columns:minmax(0,2.6fr) minmax(5rem,.55fr) minmax(0,1fr); gap:2rem; padding-block:1.75rem; border-block:1px solid #bda77d; color:#0b2347; }
.companion-page .village-resource-summary h3 { margin:0 0 .75rem; font-size:clamp(1.25rem,2vw,1.6rem); line-height:1.35; letter-spacing:-.02em; }
.companion-page .village-resource-summary p { margin:0; max-width:58ch; }
.companion-page .village-resource-format { margin:0; }
.companion-page .village-resource-format dt { font-size:.75rem; font-weight:650; letter-spacing:.08em; margin:0 0 .5rem; }
.companion-page .village-resource-format dd { margin:0; }
.companion-page .village-resource-access { margin:0; display:grid; gap:.75rem; }
.companion-page .village-resource-access dt { margin:0 0 .5rem; font-size:.875rem; font-weight:650; line-height:1.5; }
.companion-page .village-resource-access dd { margin:0; font-size:.875rem; color:#526071; }
@media(max-width:800px) { .companion-page .village-resource-row { grid-template-columns:minmax(0,1fr); gap:1.25rem; padding-block:1.5rem; } .companion-page .village-resource-format { display:flex; align-items:baseline; gap:.75rem; } .companion-page .village-resource-format dt { margin:0; } .companion-page .village-resource-access { max-width:35ch; } }
@media(forced-colors:active) { .companion-page .village-resource-row { color:CanvasText; border-color:CanvasText; } .companion-page .village-resource-access dd { color:CanvasText; } }
