
  :root {
    color-scheme: light dark;
    --paper: #f9f7f2;
    --ink: #232019;
    --muted: #6d675c;
    --rule: #d8d2c6;
    --rule-strong: #b9b1a2;
    --accent: #355a4d;
    --wash: #f1ede4;
  }
  @media (prefers-color-scheme: dark) {
    :root {
      --paper: #17181a;
      --ink: #dedad1;
      --muted: #9b968b;
      --rule: #34363a;
      --rule-strong: #4c4f55;
      --accent: #9dc4b4;
      --wash: #1e2023;
    }
  }
  * { box-sizing: border-box; }
  html { background: var(--paper); color: var(--ink); }
  body {
    margin: 0;
    padding: 0 1.25rem 4rem;
    font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Charter, "Bitstream Charter", Georgia, "Noto Serif", serif;
    font-size: 1.125rem;
    line-height: 1.6;
    text-wrap: pretty;
    -webkit-font-smoothing: antialiased;
  }
  .page { margin: 0 auto; }

  /* Masthead and title */
  .masthead {
    display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
    padding: 1.6rem 0 1rem;
    border-bottom: 1px solid var(--rule-strong);
    font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted);
  }
  .masthead a { color: inherit; text-decoration: none; }
  .masthead a:hover { color: var(--ink); }
  @media (max-width: 600px) { .masthead .city { display: none; } }
  header.title { padding: 3.5rem 0 2.5rem; }
  h1 {
    font-weight: 400; font-size: clamp(2.1rem, 5.5vw, 2.75rem);
    line-height: 1.1; letter-spacing: -.01em; margin: 0 0 .8rem; text-wrap: balance;
  }
  h1 .keep-together { white-space: nowrap; }
  @media (max-width: 360px) { h1 { font-size: 1.9rem; } }
  .lead { font-size: 1.2rem; line-height: 1.55; }

  /* Hero */
  figure { margin: 0; }
  .hero { margin: 2.2rem 0 2.6rem; }
  .hero-svg { width: 100%; height: auto; display: block; margin-bottom: 2rem; }
  .hero-svg.narrow { display: none; max-width: 24rem; margin-inline: auto; }
  @media (max-width: 600px) { .hero-svg.wide { display: none; } .hero-svg.narrow { display: block; } }
  .actions { display: flex; flex-wrap: wrap; gap: .6rem 1rem; margin: 0 0 .4rem; }
  .actions a { display: inline-block; padding: .45rem .95rem; border: 1px solid var(--rule-strong); color: var(--ink); text-decoration: none; font-size: .95rem; }
  .actions a.primary { background: var(--accent); border-color: var(--accent); color: var(--paper); }
  .actions a:hover { border-color: var(--ink); }
  .actions a.primary:hover { filter: brightness(1.08); }
  h3 em { font-style: normal; font-weight: 600; }

  /* Sections */
  section { padding: 2.6rem 0 0; margin-top: 2.6rem; border-top: 1px solid var(--rule); }
  h2 {
    font-weight: 600; font-size: 1.15rem; letter-spacing: 0; text-transform: none;
    color: var(--ink); margin: 0 0 1.4rem;
  }
  h3 { font-weight: 400; font-style: italic; font-size: 1.2rem; margin: 1.8rem 0 .5rem; }
  p, ul, ol { margin: 0 0 1.1rem; }
  ul, ol { padding-left: 1.3rem; }
  li { margin-bottom: .55rem; padding-left: .2rem; }
  li::marker { color: var(--muted); }
  a { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: color-mix(in srgb, var(--accent) 45%, transparent); }
  a:hover { text-decoration-color: currentColor; }
  a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
  cite { font-style: normal; }
  i { font-style: italic; }
  .num { font-variant-numeric: tabular-nums oldstyle-nums; }
  .note { font-size: .95rem; color: var(--muted); }

  .concern-domains { margin: 1.2rem 0; }
  .concern-domains summary { cursor: pointer; color: var(--accent); }
  .concern-domains ul { margin-top: .8rem; }

  /* Archival examples: short excerpts first, complete responses on request */
  .response-example { margin: 1.4rem 0; padding: 1.15rem 1.3rem; background: var(--wash); border-left: 2px solid var(--accent); }
  .response-example figcaption { font-size: .95rem; color: var(--muted); margin-bottom: .65rem; }
  .response-example blockquote, .archive-example blockquote { margin: .7rem 0 1rem; font-size: 1.08rem; line-height: 1.55; }
  .response-example > p:last-child, .archive-example > p:last-child { margin-bottom: 0; }
  .archive-example { margin: 1.2rem 0; }
  .archive-example summary { cursor: pointer; color: var(--accent); }
  .archive-example summary:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
  .archive-example[open] summary { margin-bottom: .7rem; }
  .response-example .archive-example { margin-bottom: 1rem; }
  @media (max-width: 600px) { .response-example { padding: 1rem; } }

  /* Offer */
  .offer {
    margin: 1.6rem 0 1.4rem; padding: 1.5rem 1.6rem;
    border: 1px solid var(--rule-strong); background: var(--wash);
  }
  .offer p:last-child { margin-bottom: 0; }
  .offer .email { font-size: 1.25rem; }
  .offer .email a { color: var(--ink); }

  /* Table */
  table { border-collapse: collapse; width: 100%; margin: 1.4rem 0 .7rem; font-size: .98rem; }
  caption { text-align: left; font-style: italic; color: var(--muted); padding: 0 0 .6rem; caption-side: top; }
  th, td { text-align: left; padding: .55rem .6rem .55rem 0; vertical-align: top; border-bottom: 1px solid var(--rule); }
  th { font-weight: 400; font-size: .86rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); border-bottom: 1px solid var(--rule-strong); }
  td:first-child { white-space: nowrap; }
  th:last-child, td:last-child { padding-right: 0; }
  td:first-child { font-style: italic; }
  @media (max-width: 600px) {
    table { font-size: .9rem; }
    th, td { padding-right: .4rem; }
    td:first-child { white-space: normal; }
  }

  footer { margin-top: 4rem; padding-top: 1.2rem; border-top: 1px solid var(--rule-strong); font-size: .9rem; color: var(--muted); line-height: 1.5; }

  /* Shared navigation and reading layout. */
  [id] { scroll-margin-top: 5rem; }
  .site-nav { position: sticky; top: 0; z-index: 20; background: var(--paper); border-bottom: 1px solid var(--rule-strong); padding: .75rem 0; display: flex; gap: .5rem 1.2rem; overflow-x: auto; white-space: nowrap; font-size: .92rem; }
  .site-nav a { text-decoration: none; flex: 0 0 auto; }
  .site-nav a[aria-current="page"] { color: var(--ink); font-weight: 600; }
  .skip-link { position: absolute; left: -10000px; }
  .skip-link:focus { left: 1rem; top: .3rem; z-index: 30; background: var(--paper); }
  .title .eyebrow { color: var(--muted); font-size: .88rem; margin-bottom: .7rem; }
  .hero { margin: 1.6rem 0; }
  .hero-svg { margin-bottom: .5rem; }
  .page-header { padding-bottom: 0 !important; }
  .page-header + section { margin-top: 1.6rem; }
  .page-header + h2 { margin-top: 1.6rem; }
  section:first-child { margin-top: 0; }
  table { overflow-wrap: anywhere; }
  code { font-size: .88em; overflow-wrap: anywhere; }
  .local-nav { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin: 1rem 0 1.5rem; font-size: .95rem; }
  .compact-example { font-size: 1rem; }
  .compact-example blockquote { font-size: 1rem; margin: .3rem 0 .7rem; }
  .compact-example p { margin-bottom: .35rem; }
  @media (max-width: 600px) {
    body { font-size: 1.06rem; }
    header.title { padding-top: 2rem; }
    .site-nav { gap: 1rem; font-size: .86rem; }
    .lead { font-size: 1.12rem; }
    section { margin-top: 1.8rem; padding-top: 1.8rem; }
  }

  .framework-svg text { font-family: inherit; fill: var(--ink); }
  .framework-wash { fill: var(--accent); opacity: .09; }
  .framework-axis { fill: none; stroke: var(--muted); stroke-width: 1; }
  .framework-label { font-size: 16px; }
  .framework-detail { font-size: 14px; fill: var(--muted) !important; }
  .framework-axis-label { font-size: 15px; }
  @media (max-width: 600px) {
    .site-nav { flex-wrap: wrap; overflow-x: visible; gap: .35rem 1rem; }
    [id] { scroll-margin-top: 6rem; }
    .framework-label { font-size: 14px; }
    .framework-detail { font-size: 13px; }
    .framework-axis-label { font-size: 13px; }
  }

  .result-preview { margin: 1rem 0; }
  .result-preview dt { font-weight: 600; margin-top: .65rem; }
  .result-preview dd { margin: .15rem 0 0; }
  .setup-instructions summary { cursor: pointer; color: var(--accent); margin: .8rem 0; }

  .evidence-figure { margin: 1.5rem 0 1.8rem; padding: 1rem 0; border-block: 1px solid var(--rule); }
  .evidence-figure img { display: block; width: 100%; height: auto; }
  .evidence-figure figcaption { font-size: .95rem; color: var(--muted); margin-top: .9rem; }
  .concern-domains[open] summary { margin-bottom: .8rem; }
  .table-scroll { overflow-x: auto; margin: 1rem 0; }
  .table-scroll:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
  .form-comparison { min-width: 590px; }
  .form-comparison thead th { text-transform: none; letter-spacing: normal; }
  .form-comparison tbody th { color: var(--ink); font-size: 1rem; text-transform: none; letter-spacing: normal; white-space: nowrap; }
  .form-comparison th, .form-comparison td { width: 20%; }

  @media (max-width: 600px) {
    .form-comparison { min-width: 0; display: block; }
    .form-comparison caption { display: block; }
    .form-comparison thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .form-comparison tbody { display: block; }
    .form-comparison tr { display: block; padding: .6rem 0; border-top: 1px solid var(--rule-strong); }
    .form-comparison tbody th { display: block; width: 100%; font-weight: 600; border: 0; padding: .25rem 0 .5rem; }
    .form-comparison td { display: flex; justify-content: space-between; gap: 1rem; width: 100%; padding: .3rem 0; border: 0; text-align: right; }
    .form-comparison td::before { content: attr(data-label); text-align: left; color: var(--muted); }
  }

/* Fusion-to-freedom table: themes read as text, words wrap only at spaces */
.movements { overflow-wrap: normal; }
.movements th[scope="row"] { font-size: .98rem; letter-spacing: normal; text-transform: none; color: var(--ink); border-bottom: 1px solid var(--rule); }
.criterion-name { display: block; font-size: .8rem; color: var(--muted); }

/* Scorer comparison: wrapped row labels, three narrow value columns */
.model-comparison tbody th { white-space: normal; border-bottom-color: var(--rule); }
@media (min-width: 601px) {
  .model-comparison th, .model-comparison td { width: 18%; }
  .model-comparison th:first-child { width: 46%; }
}

/* Concern Preservation judgments: row headers read as text, like the first column of a list */
.judgments tbody th { font-size: .98rem; font-style: italic; letter-spacing: normal; text-transform: none; color: var(--ink); border-bottom: 1px solid var(--rule); white-space: nowrap; }
@media (max-width: 600px) { .judgments tbody th { white-space: normal; } }

/* Research overview and clear study choices, October 2026. */
body { padding-inline: clamp(1.25rem, 3vw, 3rem); }
.page { max-width: 80rem; width: 100%; }
main p, main > section > ul, main > section > ol { max-width: 90ch; }
header.title { padding: 2.8rem 0 1.4rem; }
h1 { font-size: clamp(2.1rem, 4.5vw, 3.2rem); max-width: none; }
h1 .keep-together { white-space: normal; }
.title-abbreviation { font-size: .65em; color: var(--accent); white-space: nowrap; }
h2 { color: var(--accent); font-size: clamp(1.5rem, 2.6vw, 1.9rem); line-height: 1.25; margin-bottom: 1.25rem; }
h3 { color: var(--accent); font-size: 1.3rem; font-weight: 600; font-style: normal; line-height: 1.3; }
section { margin-top: 2.5rem; padding-top: 2.5rem; }
.title .eyebrow, .eyebrow { font-size: .9rem; font-weight: 600; color: var(--accent); }
.lead { max-width: 90ch; }
.eligibility-line { font-size: 1rem; margin-top: .9rem; color: var(--muted); }
.actions { margin: 1.15rem 0; align-items: stretch; }
.actions a, .button { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: .7rem 1.1rem; border: 1px solid var(--accent); border-radius: .25rem; font: inherit; font-size: 1rem; font-weight: 600; line-height: 1.35; color: var(--accent); background: transparent; text-decoration: none; cursor: pointer; text-align: center; overflow-wrap: anywhere; }
.actions a.primary, .button.primary { background: var(--accent); color: var(--paper); }
.button:hover { border-color: var(--ink); }
:is(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.assessment-grid, .pricing-grid, .benefit-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; margin: 1.4rem 0; }
.assessment-card, .price-card, .option-card, .benefit-card { min-width: 0; padding: 1.5rem; border: 1px solid var(--rule-strong); border-radius: .35rem; background: var(--wash); }
.assessment-card { border-top: 4px solid var(--accent); }
.assessment-card h2 { font-size: 1.55rem; }
.assessment-card h2 span { font-size: .8em; }
.assessment-card p:last-child, .option-card p:last-child { margin-bottom: 0; }
.benefit-card { background: transparent; }
.benefit-card h3, .price-card h3, .option-card h3 { margin-top: 0; }
.benefit-card p { font-size: 1.05rem; }
.benefit-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
.hero { max-width: 50rem; margin: 2rem auto; }
.hero figcaption { font-size: 1rem; color: var(--muted); max-width: 68ch; margin-inline: auto; }
.option-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.15rem; margin: 1.5rem 0 2rem; }
.option-card { display: flex; flex-direction: column; }
.option-card h3 { font-size: 1.8rem; }
.option-card > .button { margin-top: auto; }
.option-card p, .option-card .button { font-size: 1rem; }
.option-card .actions { display: grid; gap: .7rem; margin-top: auto; margin-bottom: 0; }
.option-purpose { font-weight: 600; min-height: 3em; }
.compact-options .option-purpose { min-height: 0; }
.price-card .price { font-size: 2.5rem; font-weight: 600; color: var(--accent); line-height: 1.2; margin: 1rem 0; }
.price span { display: block; font-size: 1rem; font-weight: 400; color: var(--ink); margin-top: .5rem; }
.separate-service { background: transparent; border-style: dashed; }
.separate-panel { border: 1px solid var(--rule-strong); border-left: 4px solid var(--accent); padding: 1.4rem; margin-top: 2rem; }
.separate-panel h3 { margin-top: 0; }
.deliverables { background: var(--wash); border-left: 4px solid var(--accent); padding: 1.5rem; }
.deliverables p:last-child { margin-bottom: 0; }
.disclosure { border-top: 1px solid var(--rule); padding: 0; margin: 1rem 0; }
.disclosure > summary { cursor: pointer; color: var(--accent); font-weight: 600; min-height: 48px; padding: 1rem .2rem; line-height: 1.4; }
.disclosure-body { padding: .3rem .2rem .5rem; }
.benefit-card .disclosure { margin-bottom: 0; }
.benefit-card .disclosure summary { font-size: 1rem; }
.table-scroll { width: 100%; max-width: 100%; margin: 1.5rem 0; }
.enquiry-form { max-width: 58rem; padding: 1.5rem; border: 1px solid var(--rule-strong); background: var(--wash); border-radius: .35rem; margin-bottom: 1.25rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.5rem; }
.enquiry-form label { display: block; margin-bottom: 1rem; font-size: 1rem; font-weight: 600; }
.enquiry-form input, .enquiry-form select, .enquiry-form textarea { display: block; width: 100%; min-width: 0; min-height: 48px; margin-top: .4rem; padding: .7rem; background: var(--paper); color: var(--ink); border: 1px solid var(--rule-strong); border-radius: .2rem; font: inherit; font-weight: 400; }
.enquiry-form textarea { resize: vertical; }
.field-error { display: block; font-size: .95rem; margin-top: .3rem; }
[aria-invalid="true"] { border-width: 2px !important; border-color: var(--ink) !important; }
#enquiry-draft { margin-top: 1.5rem; }
a[href^="mailto:"] { overflow-wrap: anywhere; }
[hidden] { display: none !important; }
@media (max-width: 850px) {
  .option-grid { grid-template-columns: 1fr; }
  .option-purpose { min-height: 0; }
  .option-card .actions { display: flex; }
}
@media (max-width: 650px) {
  .assessment-grid, .pricing-grid, .benefit-grid, .form-grid { grid-template-columns: 1fr; }
  .assessment-card, .price-card, .option-card, .benefit-card, .enquiry-form { padding: 1.15rem; }
  .actions > a { flex: 1 1 auto; }
  .title .actions { display: grid; }
  .site-nav { white-space: normal; }
  .table-scroll { margin-left: 0; }
  .page-header + section { margin-top: 1.3rem; }
}
@media print {
  .site-nav, .actions, .enquiry-form { display: none !important; }
  details > :not(summary) { display: block !important; }
  .assessment-grid, .pricing-grid, .option-grid, .benefit-grid { display: block; }
  .assessment-card, .price-card, .option-card, .benefit-card { break-inside: avoid; margin-bottom: 1rem; }
}

/* Overview composition: diagram beside the introduction on desktop. */
.overview-title > .hero { max-width: 34rem; }
@media (min-width: 80rem) {
  header.overview-title { display: grid; grid-template-columns: minmax(0, 1fr) 34rem; column-gap: 3.5rem; align-items: start; }
  header.overview-title > * { grid-column: 1 / -1; }
  header.overview-title > :is(.eyebrow, .actions, .eligibility-line, .lead) { grid-column: 1; max-width: none; }
  header.overview-title > .hero { grid-column: 2; grid-row: 2 / 6; margin: .3rem 0 0; max-width: none; }
  .overview-title .hero figcaption { margin-inline: 0; }
  .overview-title .eligibility-line { margin-top: 0; }
}
@media print { header.overview-title { display: block; } }

/* Method cards followed by three findings, without stretching short cards. */
.benefit-grid { align-items: start; }
.benefit-card p { max-width: 100ch; }
@media (min-width: 1180px) {
  .benefit-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .benefit-grid > .benefit-card { grid-column: span 3; }
  .benefit-grid > .benefit-card:nth-child(n+3) { grid-column: span 2; }
}

/* Shared measures for article pages and study materials. */
:root { --reading-width: 60rem; }
.page.reading-page { max-width: var(--reading-width); }
.reading-page main :is(p, ul, ol, .lead, .note) { max-width: none; }
.reading-page main :is(.table-scroll, table, .response-example, .evidence-figure) { max-width: 100%; margin-inline: 0; }
.evidence-figure img { max-width: 660px; margin-inline: auto; }
.reading-page .hero { max-width: 34rem; margin: 2rem auto; }
.reading-page main > h2 { margin-top: 2.4rem; }
.reading-page main > header + h2 { margin-top: 0; }
.study-page .lead,
.study-page main > section > p,
.study-page #sentence-completions > :is(.table-scroll, .disclosure, .separate-panel),
.study-page main > section:not(#pricing):not(#sentence-completions) { max-width: var(--reading-width); }
.study-page :is(.deliverables, .separate-panel, .enquiry-form) { max-width: 100%; }
.study-page main > section:not(#pricing):not(#sentence-completions) :is(p, ul, ol) { max-width: none; }
