:root {
  --sc-canvas: #f2f4ef;
  --sc-surface: #e4eae1;
  --sc-ink: #1a1a1a;
  --sc-ink-soft: #40523c;
  --sc-accent: #2d5a27;
  --sc-accent-ink: #f2f4ef;
  --sc-font-display: "DM Serif Display", Georgia, serif;
  --sc-font-text: "Instrument Sans", sans-serif;
  --sc-font-mono: var(--sc-font-text);
  --gutter: clamp(28px, 4.8vw, 84px);
  --section-space: clamp(48px, 6vw, 96px);
}
html { scroll-behavior: auto; }
body { font-size: 18px; }
h1, h2, p, dl, dd { margin: 0; }
h1, h2 { font-family: var(--sc-font-display); font-weight: 400; letter-spacing: -.025em; text-wrap: balance; }
h1 { font-size: clamp(48px, 4.7vw, 76px); line-height: 1.07; }
h1 em { font-style: italic; color: #2d5a27; }
h2 { font-size: clamp(38px, 4.2vw, 64px); line-height: 1.09; }
p { line-height: 1.62; text-wrap: pretty; max-width: 48ch; }
p + p { margin-top: 24px; }
a { overflow-wrap: anywhere; text-underline-offset: 5px; }
.njl-copy { opacity: 1; pointer-events: auto; will-change: auto; }
/* Every text block has an opaque ground. Only decorative paths move. */
.grounds { position: fixed; inset: 0; z-index: -1; background: #2d5a27; pointer-events: none; }
.paper-ground { position: absolute; inset: 0 50% 0 0; background: #f2f4ef; }
.paper, .plain { --sc-ink: #1a1a1a; --sc-ink-soft: #40523c; color: var(--sc-ink); background: #f2f4ef; }
.green, .contact, .site-footer {
  --sc-ink: #f2f4ef; --sc-ink-soft: #d4e2ce;
  color: var(--sc-ink); background: #2d5a27; font-weight: 500; letter-spacing: 0;
}
.green :focus-visible, .contact :focus-visible, .site-footer :focus-visible { outline-color: #f2f4ef; }
.spread { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 70svh; }
.side { position: relative; padding: var(--section-space) var(--gutter); display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.side h2 + p { margin-top: 32px; }
.text-link { display: inline-flex; align-items: center; gap: 16px; min-height: 48px; margin-top: 32px; font-size: 16px; font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.text-link svg, .contact-link svg { width: 24px; height: 24px; flex: 0 0 24px; fill: none; stroke: currentColor; stroke-width: 1.5; transition: transform 160ms var(--sc-ease-out); }
a:active { transform: translateY(1px); }
@media (hover: hover) and (pointer: fine) {
  .text-link:hover svg, .contact-link:hover svg { transform: translateX(4px); }
  a:hover { text-decoration-thickness: 2px; }
}
.skip-link { position: absolute; top: 8px; left: var(--gutter); padding: 12px; background: #f2f4ef; color: #1a1a1a; z-index: 50; transform: translateY(-200%); }
.skip-link:focus { transform: none; }
.site-header { position: absolute; inset: 0 0 auto; z-index: 30; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
.wordmark { width: fit-content; padding: 32px var(--gutter); font-family: var(--sc-font-display); font-size: 28px; letter-spacing: -.025em; text-decoration: none; color: #1a1a1a; }
.wordmark span { color: #2d5a27; }
.site-header nav { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; padding: 24px var(--gutter); color: #f2f4ef; background: #2d5a27; font-size: 14px; font-weight: 600; }
.site-header nav a { display: flex; align-items: center; min-height: 44px; text-decoration-thickness: 1px; }
.site-header nav :focus-visible { outline-color: #f2f4ef; }
.opening { min-height: 100svh; }
.opening .side { overflow: clip; padding-top: 160px; padding-bottom: 100px; }
.opening-copy, .opening-review { position: relative; z-index: 2; }
.opening-copy { background: #f2f4ef; }
.opening-review { background: #2d5a27; }
.opening-copy p { margin-top: 32px; max-width: 30ch; }
.opening-copy p.credential { margin-top: 16px; max-width: 46ch; font-size: 16px; line-height: 1.5; color: #40523c; }
.statement { font-family: var(--sc-font-display); font-size: clamp(32px, 3.2vw, 48px); line-height: 1.22; letter-spacing: -.02em; font-weight: 400; }
.hero-plane { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; fill: none; stroke-width: 1; z-index: 1; }
.plane-far { stroke: #c6d1c1; }
.plane-mid { stroke: #6d8f63; }
.plane-near { stroke: #9fba93; }
.argument-seam { position: fixed; top: 108px; bottom: 0; left: 50%; width: 1px; z-index: 25; background: #9bb58f; pointer-events: none; }
.seam-track { position: absolute; inset: 0 auto 32px -1px; width: 3px; background: #9bb58f; }
.seam-fill { display: block; height: 100%; background: #e5efdf; transform-origin: top; transform: scaleY(0); }
.assessment .paper { justify-content: flex-start; }
.check + .check { margin-top: 28px; }
.check dt { font-family: var(--sc-font-display); font-weight: 400; font-size: 26px; line-height: 1.2; margin-bottom: 8px; }
.check dd { max-width: 48ch; line-height: 1.62; text-wrap: pretty; }
.plain { position: relative; z-index: 26; padding: var(--section-space) var(--gutter); }
.reading { max-width: 1000px; margin-inline: auto; }
.reading h2 { max-width: 24ch; }
.reading h2 + p { margin-top: 32px; max-width: 62ch; }
.slip-list { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px 64px; margin: 40px 0 0; padding-left: 22px; }
.slip-list li { padding-left: 6px; line-height: 1.62; max-width: 38ch; text-wrap: pretty; }
.peak-spread { min-height: 75svh; }
.sc-stage .peak-spread { height: 100%; min-height: 0; }
.review-terms { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 8px; font-size: 15px; line-height: 1.5; }
.review-terms span { border-bottom: 1px solid #9bb58f; padding-bottom: 12px; }
.gathering { display: block; width: 100%; height: auto; max-height: 180px; margin: 18px 0 32px; fill: none; stroke: #d4e2ce; stroke-width: 1.3; }
.gather-paths path { stroke-dasharray: 1; stroke-dashoffset: 0; }
.finding-rule { stroke-width: 2; }
.report-copy { font-size: 20px; line-height: 1.65; }
.findings-page { position: relative; z-index: 26; padding: 48px var(--gutter) 32px; }
.findings-action { max-width: 1320px; margin-inline: auto; }
.report + .jared .side { padding-top: 48px; }
.findings-table { width: 100%; max-width: 1320px; margin-inline: auto; border-collapse: collapse; table-layout: fixed; font-size: 17px; }
.findings-table caption { text-align: left; caption-side: top; padding-bottom: 24px; font-size: 16px; line-height: 1.6; color: #40523c; }
.findings-table th, .findings-table td { text-align: left; vertical-align: top; padding: 24px 20px; border-bottom: 1px solid #9bb58f; line-height: 1.6; overflow-wrap: anywhere; }
.findings-table thead th { border-top: 1px solid #9bb58f; color: #40523c; font-size: 15px; font-weight: 600; padding-block: 16px; }
.findings-table th:first-child { width: 13%; padding-left: 0; }
.findings-table th:nth-child(2) { width: 29%; }
.findings-table th:nth-child(3) { width: 28%; }
.findings-table th:nth-child(4) { width: 30%; }
.findings-table td:last-child { padding-right: 0; }
.findings-table tbody th { font-weight: 600; color: #2d5a27; }
.process .reading { max-width: 64ch; }
.process .steps { max-width: none; }
.steps { max-width: 64ch; padding-left: 28px; margin: 40px 0 0; }
.steps li { padding: 20px 0 20px 12px; border-top: 1px solid #9bb58f; line-height: 1.62; text-wrap: pretty; }
.steps li::marker { font-variant-numeric: tabular-nums; font-weight: 600; color: #2d5a27; }
.disclosure { min-height: 40svh; }
.support, .workshops, .jared { min-height: 65svh; }
.jared h2 { font-size: clamp(38px, 4.2vw, 64px); max-width: none; }
.profile-links { display: flex; flex-wrap: wrap; gap: 4px 24px; margin-top: 28px; font-size: 16px; }
.profile-links a { display: flex; align-items: center; min-height: 44px; }
.practice { position: relative; z-index: 26; padding: 40px var(--gutter); }
.practice-copy { max-width: 72ch; margin-inline: auto; font-size: 17px; }
.practice-copy p { max-width: none; line-height: 1.62; }
.practice-copy a { display: inline-flex; align-items: center; min-height: 44px; margin-top: 8px; }
.contact { position: relative; }
.contact-curtain { display: none; }
.contact-layout { position: relative; z-index: 1; padding: 72px var(--gutter); min-height: 70svh; display: flex; align-items: center; }
.contact-body { max-width: 64ch; margin-inline: auto; background: #2d5a27; }
.contact-body h2 { font-size: clamp(36px, 3.3vw, 48px); margin-bottom: 28px; }
.contact-body p { max-width: 62ch; }
.contact-secondary { margin-top: 28px; font-size: 16px; }
.contact-secondary p + p { margin-top: 16px; }
.contact-link { display: inline-flex; align-items: center; gap: 24px; min-height: 56px; margin-top: 32px; font-size: 23px; text-decoration: underline; text-underline-offset: 8px; }
/* Pin only when both columns fit. The text carries green through the curtain. */
.njl-motion .contact-curtain { display: block; position: absolute; inset: 0 50% 0 0; background: #f2f4ef; transform-origin: left; }
.njl-motion .contact-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); height: 100%; min-height: 0; padding: 72px 0; }
.njl-motion .contact-body { grid-column: 2; margin: 0; padding: 16px var(--gutter); max-width: none; }
.site-footer { position: relative; z-index: 26; padding: 32px var(--gutter); border-top: 1px solid #9bb58f; display: flex; align-items: center; flex-wrap: wrap; gap: 8px 32px; font-size: 16px; }
.site-footer a { min-height: 44px; display: flex; align-items: center; }
.site-footer .footer-mark { font-family: var(--sc-font-display); font-size: 24px; margin-right: auto; text-decoration: none; }
@media (min-width: 701px) {
  .spread + .spread, .spread + .report { border-top: 1px solid #9bb58f; }
}
@media (max-width: 1100px) and (min-width: 701px) {
  :root { --gutter: 32px; }
  h1 { font-size: 50px; }
  .site-header nav { gap: 4px 12px; font-size: 13px; }
  .review-terms { font-size: 14px; }
}
/* Row cards retain the table's caption, column headers, and reading order. */
@media (max-width: 1000px) {
  .findings-table, .findings-table tbody, .findings-table tr { display: block; width: 100%; }
  .findings-table caption { display: block; width: 100%; max-width: 62ch; }
  .findings-table thead { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .findings-table tr { padding: 24px 0; border-top: 1px solid #9bb58f; }
  .findings-table tbody th, .findings-table tbody td, .findings-table tbody th:first-child { display: grid; grid-template-columns: 5rem minmax(0, 1fr); gap: 16px; width: 100%; padding: 8px 0; border: 0; font-size: 16px; }
  .findings-table tbody th::before, .findings-table tbody td::before { content: attr(data-label); color: #40523c; font-size: 14px; font-weight: 600; }
  .findings-table tbody th:first-child { padding-top: 0; }
  .findings-table tr:last-child { border-bottom: 1px solid #9bb58f; }
}
@media (max-width: 700px) {
  :root { --gutter: 24px; --section-space: 40px; }
  body { font-size: 16px; }
  .grounds, .argument-seam { display: none; }
  .spread { display: flex; flex-direction: column; min-height: 0; }
  .side { padding: 40px var(--gutter); }
  .paper.side { border-bottom: 1px solid #9bb58f; }
  h1 { font-size: clamp(36px, 10vw, 48px); line-height: 1.08; max-width: 14ch; }
  h2 { font-size: 36px; max-width: 20ch; }
  .site-header { display: block; padding: 20px var(--gutter) 0; background: #f2f4ef; }
  .wordmark { padding: 0; font-size: 24px; }
  .site-header nav { padding: 8px 0 12px; flex-wrap: wrap; gap: 0 8px; font-size: 13px; color: #1a1a1a; background: #f2f4ef; }
  .site-header nav :focus-visible { outline-color: #2d5a27; }
  .opening .paper { padding-top: 180px; padding-bottom: 36px; }
  .opening .green { padding-top: 40px; padding-bottom: 48px; }
  .opening-copy p { margin-top: 20px; max-width: 32ch; }
  .opening-copy p.credential { font-size: 14px; }
  .text-link { margin-top: 20px; font-size: 15px; gap: 12px; }
  .statement { font-size: 30px; max-width: 20ch; }
  .hero-plane { opacity: .5; }
  .check + .check { margin-top: 24px; }
  .check dt { font-size: 25px; }
  .reading h2 + p { margin-top: 24px; }
  .slip-list { grid-template-columns: minmax(0, 1fr); gap: 20px; margin-top: 28px; }
  .slip-list li { max-width: none; }
  .review-terms { font-size: 13px; gap: 8px; }
  .review-terms span { padding-bottom: 6px; }
  .gathering { max-height: 112px; margin: 12px 0 24px; }
  .report-copy { font-size: 17px; }
  .findings-page { padding-top: 32px; padding-bottom: 24px; }
  .report + .jared .side { padding-top: 40px; }
  .findings-table tbody th, .findings-table tbody td, .findings-table tbody th:first-child { grid-template-columns: 4.5rem minmax(0, 1fr); gap: 12px; }
  .steps { margin-top: 28px; padding-left: 24px; }
  .steps li { padding: 16px 0 16px 8px; }
  .jared h2 { font-size: 36px; max-width: none; }
  .profile-links { margin-top: 20px; gap: 4px 20px; }
  .practice { padding-block: 32px; }
  .practice-copy { font-size: 16px; }
  .contact-layout { min-height: 0; padding: 48px var(--gutter); }
  .contact-body h2 { font-size: 36px; }
  .contact-link { font-size: 21px; min-height: 48px; margin-top: 24px; }
  .site-footer { display: block; padding-block: 24px; }
  .site-footer .footer-mark { font-size: 24px; }
}
@media (max-width: 360px) {
  :root { --gutter: 20px; }
  .site-header nav { gap: 0 8px; font-size: 13px; }
  .opening .paper { padding-top: 196px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .argument-seam { display: none; }
  .gather-paths path { stroke-dashoffset: 0 !important; }
  .hero-plane, .contact-body, .contact-curtain { transform: none !important; }
}
