/* Agent 04 — page compositions only. Shared font-face declarations belong to candidate.css.
   Newsreader headings; locally available Optima, then the coordinator's Tenor Sans alias.
   Every selector is scoped to ed-. No assets, stock footage, animation or JS dependency. */
.ed-page {
  --ed-ink: #06100c;
  --ed-paper: #f4f0e8;
  --ed-reading: var(--tc-sans, "Terrae Flare", Optima, "Tenor Sans", "Tenor Sans Web", sans-serif);
  --ed-heading: var(--tc-serif, "Terrae Times", Newsreader, "Times New Roman", serif);
  --ed-gutter: clamp(24px, 5.7vw, 96px);
  margin: 0;
  background: var(--ed-paper);
  color: var(--ed-ink);
  font: 400 clamp(16px, 1.15vw, 19px)/1.65 var(--ed-reading);
  font-synthesis: none;
  font-kerning: normal;
  overflow-wrap: break-word;
}
.ed-page *, .ed-page *::before, .ed-page *::after { box-sizing: border-box; }
.ed-page :is(h1, h2, h3, p, figure) { margin-block: 0; }
.ed-page :is(a, summary) { color: inherit; }
.ed-page :is(a, summary):focus-visible { outline: 2px solid currentColor; outline-offset: 6px; }
.ed-page :is([id]) { scroll-margin-block-start: 2rem; }
.ed-page :is(.tc-paper) { background: var(--ed-paper); color: var(--ed-ink); }
.ed-page :is(.tc-ink) { background: var(--ed-ink); color: var(--ed-paper); }
.ed-panel { padding: clamp(50px, 7vw, 112px) var(--ed-gutter); }
.ed-skip { position: absolute; top: 12px; left: 12px; z-index: 20; padding: 12px 18px; transform: translateY(-180%); background: var(--ed-paper); color: var(--ed-ink); }
.ed-skip:focus { transform: none; }
.ed-header { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 24px; padding: 18px var(--ed-gutter); border-bottom: 1px solid currentColor; }
.ed-brand { display: inline-flex; align-items: center; justify-content: center; min-width: 48px; min-height: 48px; }
.ed-mark { display: block; width: 48px; height: 48px; }
.ed-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 22px; margin-left: 0; }
.ed-nav a, .ed-languages a, .ed-footer-nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; line-height: 1.4; text-decoration: none; text-underline-offset: 7px; }
.ed-nav a[aria-current], .ed-languages a[aria-current], .ed-footer-nav a[aria-current] { text-decoration: underline; text-decoration-thickness: 1px; }
.ed-nav a:hover, .ed-languages a:hover, .ed-footer-nav a:hover { text-decoration: underline; }
.ed-languages { display: flex; gap: 4px; }
.ed-languages a { min-width: 38px; justify-content: center; letter-spacing: .05em; }
.ed-breadcrumb { margin-block-end: clamp(32px, 4vw, 68px); font-size: 13px; }
.ed-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 8px 18px; list-style: none; padding: 0; margin: 0; }
.ed-breadcrumb li + li::before { content: "/"; margin-inline-end: 18px; }
.ed-breadcrumb a { display: inline-block; padding-block: 8px; text-underline-offset: 4px; }
.ed-eyebrow { font: 400 12px/1.6 var(--ed-reading); letter-spacing: .16em; text-transform: uppercase; }
.ed-title { margin-block-start: 20px !important; max-width: 20ch; font: 300 clamp(42px, 6.2vw, 96px)/1.05 var(--ed-heading); letter-spacing: -.02em; text-wrap: balance; }
.ed-heading { max-width: 25ch; font: 300 clamp(29px, 3.2vw, 50px)/1.13 var(--ed-heading); letter-spacing: -.01em; text-wrap: balance; }
.ed-lead { max-width: 53ch; margin-block-start: 30px !important; font: 400 clamp(18px, 1.6vw, 24px)/1.55 var(--ed-reading); text-wrap: pretty; }
.ed-copy { max-width: 62ch; text-wrap: pretty; }
.ed-copy p, .ed-copy + .ed-copy { margin-block-start: 24px; }
.ed-caption { font: 400 13px/1.65 var(--ed-reading); }
.ed-number { margin-block-end: 22px !important; font: 400 13px/1.5 var(--ed-reading); letter-spacing: .16em; }
.ed-link { display: inline-flex; align-items: center; gap: 22px; min-height: 48px; margin-block-start: 28px; padding-block: 8px; text-decoration: none; border-bottom: 1px solid currentColor; }
.ed-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.ed-house-hero { padding-block-end: clamp(70px, 9vw, 140px); }
.ed-house-hero .ed-lead { margin-inline-start: min(12vw, 170px); }
.ed-origin { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: center; gap: clamp(36px, 7vw, 130px); }
.ed-colophon { padding-block: 36px; border-block: 1px solid currentColor; }
.ed-date { font: 300 clamp(80px, 11vw, 168px)/1.05 var(--ed-heading); letter-spacing: -.055em; }
.ed-colophon .ed-caption { margin-block-start: 22px; }
.ed-geography, .ed-purpose-intro { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(36px, 7vw, 130px); align-items: start; }
.ed-geography { padding-block-start: 0; }
.ed-city-title { max-width: 12ch; }
.ed-purposes { border-top: 1px solid currentColor; }
.ed-vocations { padding: 0; margin: 56px 0 0; list-style: none; }
.ed-vocations li { border-top: 1px solid currentColor; }
.ed-vocations li:last-child { border-bottom: 1px solid currentColor; }
.ed-vocation { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: baseline; gap: 24px; padding-block: 25px; text-decoration: none; letter-spacing: normal; border: 0; }
.ed-vocation-name { font: 300 clamp(25px, 2.6vw, 40px)/1.2 var(--ed-heading); }
.ed-vocation .ed-caption { justify-self: end; }
.ed-vocation:hover .ed-vocation-name { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 8px; }
.ed-vocation-current .ed-vocation-name { border-inline-start: 2px solid currentColor; padding-inline-start: 16px; }
.ed-exchange { padding: clamp(54px, 7vw, 108px) var(--ed-gutter); }
.ed-exchange .ed-heading, .ed-correspondence .ed-heading { margin-block: 22px 24px; }
.ed-role-hero { padding-block-end: 0; min-height: 0; display: block; overflow: visible; }
.ed-role-hero .ed-title { max-width: 20ch; }
.ed-role-index { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin-block-start: 56px; border-block: 1px solid currentColor; padding-block: 18px; }
.ed-index-link { display: flex; gap: 16px; align-items: baseline; padding-block: 8px; text-decoration: none; font-size: 14px; }
.ed-index-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.ed-triptych { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 4vw, 70px); margin-block-start: 30px; }
.ed-responsibility { min-width: 0; }
.ed-responsibility + .ed-responsibility { border-inline-start: 1px solid currentColor; padding-inline-start: clamp(24px, 3vw, 48px); }
.ed-role-number { font: 300 clamp(70px, 7vw, 112px)/1 var(--ed-heading); margin-block-end: 30px !important; }
.ed-responsibility .ed-heading { font-size: clamp(29px, 2.7vw, 42px); min-height: 3.4em; }
.ed-responsibility .ed-copy { margin-block-start: 26px; }
.ed-letter { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(40px, 6vw, 100px); align-items: start; }
.ed-page .ed-relations-hero { display: block; min-height: 0; padding: 0; overflow: visible; }
.ed-relations-hero .ed-title { font-size: clamp(42px, 5.2vw, 80px); }
.ed-correspondence { padding: clamp(28px, 3.4vw, 54px); margin-top: 0; }
.ed-correspondence .ed-heading { font-size: clamp(30px, 3vw, 44px); }
.ed-correspondence .ed-copy { font-size: 16px; }
.ed-correspondence .ed-caption { margin-block-start: 24px; }
.ed-correspondence .ed-external { margin-block-start: 12px; }
.ed-correspondence .ed-link { font-size: 16px; }
.ed-principles { padding-block-start: 0; }
.ed-principle { display: grid; grid-template-columns: 48px minmax(0, .8fr) minmax(0, 1.2fr); gap: 30px; padding-block: 38px; border-top: 1px solid currentColor; }
.ed-principle .ed-heading { font-size: clamp(28px, 2.7vw, 42px); }
.ed-faq { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: clamp(38px, 7vw, 120px); }
.ed-faq-heading .ed-heading { margin-block-start: 22px; }
.ed-question { border-top: 1px solid currentColor; }
.ed-question:last-child { border-bottom: 1px solid currentColor; }
.ed-question summary { cursor: pointer; padding: 26px 8px 26px 0; font: 400 clamp(17px, 1.35vw, 21px)/1.5 var(--ed-reading); }
.ed-question summary::marker { font-size: .8em; }
.ed-question[open] summary { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.ed-question .ed-copy { padding: 0 0 28px 22px; font-size: 16px; }
.ed-next { padding-block: 40px; }
.ed-next-link { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 30px; align-items: center; text-decoration: none; letter-spacing: normal; border: 0; }
.ed-next-link > :not(.ed-next-arrow) { grid-column: 1; }
.ed-next-title { font: 300 clamp(32px, 4vw, 58px)/1.15 var(--ed-heading); }
.ed-next-link:hover .ed-next-title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 8px; }
.ed-next-arrow { grid-column: 2; grid-row: 1 / 4; font-size: 34px; }
.ed-footer { padding-block: 40px; }
.ed-footer-nav { display: flex; flex-wrap: wrap; gap: 0 28px; }
.ed-footer-note { display: flex; flex-wrap: wrap; gap: 14px 40px; justify-content: space-between; padding-top: 26px; margin-top: 26px; border-top: 1px solid currentColor; font-size: 12px; }
.ed-page .ed-link:hover { gap: 22px; }
.ed-page .ed-vocation:hover { gap: 24px; }
.ed-page .ed-index-link:hover { gap: 16px; }
.ed-page .ed-next-link:hover { gap: 10px 30px; }
@media (min-width: 1500px) {
  .ed-page { --ed-gutter: max(5.7vw, calc((100vw - 1280px) / 2)); }
}
@media (max-width: 1100px) {
  .ed-header { grid-template-columns: auto 1fr; gap: 12px 28px; }
  .ed-languages { justify-self: end; grid-column: 2; grid-row: 1; }
  .ed-nav { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; }
  .ed-letter { grid-template-columns: minmax(0, 1fr); }
  .ed-correspondence { max-width: 760px; width: 100%; }
  .ed-correspondence .ed-copy { max-width: 60ch; }
  .ed-triptych { grid-template-columns: minmax(0, 1fr); gap: 38px; }
  .ed-responsibility { display: grid; grid-template-columns: 100px minmax(0, 1fr); column-gap: 32px; }
  .ed-responsibility + .ed-responsibility { border-inline-start: 0; border-top: 1px solid currentColor; padding-inline-start: 0; padding-block-start: 38px; }
  .ed-role-number { grid-row: 1 / 3; }
  .ed-responsibility .ed-heading { min-height: 0; }
  .ed-responsibility .ed-copy { grid-column: 2; }
}
@media (max-width: 700px) {
  .ed-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
  .ed-nav a { font-size: 12px; }
  .ed-house-hero .ed-lead { margin-inline-start: 0; }
  .ed-origin, .ed-geography, .ed-purpose-intro, .ed-faq { grid-template-columns: minmax(0, 1fr); gap: 34px; }
  .ed-colophon { max-width: 400px; }
  .ed-city-title { max-width: 18ch; }
  .ed-vocation { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .ed-page .ed-vocation:hover { gap: 12px; }
  .ed-vocation .ed-caption { justify-self: start; }
  .ed-role-index { grid-template-columns: minmax(0, 1fr); gap: 4px; margin-block-start: 38px; }
  .ed-responsibility { grid-template-columns: minmax(0, 1fr); }
  .ed-role-number { grid-row: auto; font-size: 64px; }
  .ed-responsibility .ed-copy { grid-column: 1; }
  .ed-principle { grid-template-columns: 30px minmax(0, 1fr); gap: 20px; }
  .ed-principle .ed-copy { grid-column: 2; }
  .ed-principle .ed-number { margin-top: 8px; }
  .ed-correspondence { padding: 28px 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .ed-page { scroll-behavior: auto; }
  .ed-page *, .ed-page *::before, .ed-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  .ed-page { font-size: 11pt; }
  .ed-page :is(.tc-ink, .tc-paper) { color: #06100c; background: #f4f0e8; }
  .ed-panel, .ed-exchange { padding: 24px; }
  .ed-header, .ed-footer { padding: 20px 24px; }
}
